diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 000000000..cf1ef94c1 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,2 @@ +# Admins must approve changes to docs-next repository +/docs/ @opentelekomcloud/ac-content-reviewer diff --git a/.github/workflows/automerge.yaml b/.github/workflows/automerge.yaml new file mode 100644 index 000000000..3146e77b5 --- /dev/null +++ b/.github/workflows/automerge.yaml @@ -0,0 +1,42 @@ +name: automerge + +on: + pull_request: + types: + - labeled + - unlabeled + - synchronize + - opened + - edited + - ready_for_review + - reopened + - unlocked + pull_request_review: + types: + - submitted + check_suite: + types: + - completed + status: {} + +jobs: + automerge: + runs-on: ubuntu-latest + if: > + contains(github.event.pull_request.labels.*.name, 'gate') + environment: github + steps: + - name: Create GitHub App Token + id: app-token + uses: actions/create-github-app-token@v1 + with: + app-id: ${{ secrets.APP_ID }} + private-key: ${{ secrets.APP_KEY }} + + - id: automerge + name: automerge + uses: pascalgn/automerge-action@v0.16.3 + env: + GITHUB_TOKEN: ${{ steps.app-token.outputs.token }} + MERGE_LABELS: "gate" + MERGE_METHOD: "squash" diff --git a/.github/workflows/preview.yaml b/.github/workflows/build-publish-ephemeral.yaml similarity index 78% rename from .github/workflows/preview.yaml rename to .github/workflows/build-publish-ephemeral.yaml index 5c409d82e..3bd31fdb2 100644 --- a/.github/workflows/preview.yaml +++ b/.github/workflows/build-publish-ephemeral.yaml @@ -1,4 +1,4 @@ -name: pull-requests-preview-deployment +name: Manage Pull Request Preview Instances on: pull_request: @@ -11,13 +11,16 @@ on: concurrency: preview-${{ github.ref }} jobs: - deploy-preview: - environment: pull-requests-preview + deploy-ephemeral-preview: + name: Deploy or Remove Ephemeral Preview + environment: + name: pull-requests-preview + url: 'https://${{ github.repository_owner }}.github.io${{ vars.DOCUSAURUS_BASE_URL }}pr-${{ github.event.pull_request.number }}' runs-on: ubuntu-20.04 steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Get Commit Hash id: commit_hash diff --git a/.github/workflows/build-publish-production.yaml b/.github/workflows/build-publish-production.yaml new file mode 100644 index 000000000..cbf818cea --- /dev/null +++ b/.github/workflows/build-publish-production.yaml @@ -0,0 +1,135 @@ +name: Build and Deploy Production Docker Images + +on: + push: + tags: + - "v*.*.*" + workflow_dispatch: + +jobs: + build-stable: + name: Build Production Artifacts + environment: + name: stable + runs-on: ubuntu-latest + outputs: + image_version: ${{ env.IMAGE_SEMVER }} + commit_hash: ${{ steps.export_commit_hash.outputs.commit_hash }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup NodeJS + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + + - name: Install NodeJS Dependencies + run: npm install + + - name: Get Commit Hash + id: commit_hash + uses: prompt/actions-commit-hash@v3 + + - name: Build Version Tag + id: build_version_tag + run: echo "IMAGE_SEMVER=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV + + - name: Export Commit Hash + id: export_commit_hash + run: echo "commit_hash=${{ steps.commit_hash.outputs.short }}" >> $GITHUB_OUTPUT + + - name: Build Container Image Metadata + id: meta + uses: docker/metadata-action@v5 + with: + # list of Docker images to use as base name for tags + images: | + ${{ vars.REGISTRY }}/${{ vars.REGISTRY_ORG }}/${{ vars.IMG_NAME }} + # generate Docker tags based on the following events/attributes + tags: | + type=semver,pattern=v{{major}}.{{minor}}.{{patch}} + type=raw,value=latest + + + - name: Build App + env: + REACT_APP_VERSION: ${{ env.IMAGE_SEMVER }} + REACT_APP_DOCS_NEXT_HOST: ${{ vars.DOCS_NEXT_HOST }} + REACT_APP_DOCS_NEXT_ORG: ${{ vars.DOCS_NEXT_ORG }} + REACT_APP_DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }} + REACT_APP_TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }} + REACT_APP_TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }} + REACT_APP_TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }} + REACT_APP_TYPESENSE_API_KEY: ${{ secrets.TYPESENSE_SEARCH_KEY }} + UMAMI_WEBSITE_ID: ${{ vars.UMAMI_WEBSITE_ID }} + UMAMI_ANALYTICS_DOMAIN: ${{ vars.UMAMI_ANALYTICS_DOMAIN }} + UMAMI_DATAHOST_URL: ${{ vars.UMAMI_DATAHOST_URL }} + UMAMI_DATA_DOMAIN: ${{ vars.UMAMI_DATA_DOMAINS }} + run: npm run build + + - name: Login to Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.REGISTRY }} + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Setup Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3.7.1 + + - name: Build and Push (Docker Image) + id: docker_build + uses: docker/build-push-action@v6.9.0 + with: + context: ./ + file: ./Dockerfile + provenance: false + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + annotations: ${{ steps.meta.outputs.annotations }} + + update-helm-charts: + needs: [build-stable] + environment: stable + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + # - name: Create GitHub App Token + # id: app-token + # uses: actions/create-github-app-token@v1 + # with: + # app-id: ${{ secrets.APP_ID }} + # private-key: ${{ secrets.APP_KEY }} + - name: Checkout Charts Repo + uses: actions/checkout@v4 + with: + repository: "${{ vars.DOCS_NEXT_CHARTS_ORG }}/${{ vars.DOCS_NEXT_CHARTS_REPO }}" + token: ${{ secrets.DOCS_NEXT_TOKEN }} + - name: Commit Changes + env: + image: ${{ vars.REGISTRY }}/${{ vars.REGISTRY_ORG }}/${{ vars.IMG_NAME }} + tag: ${{ needs.build-stable.outputs.image_version }} + run: | + git config --global user.name 'otcbot' + git config --global user.email 'otc_ecosystem_squad@t-systems.com' + sed -i 's|^version: .*|version: 0.3.${{github.run_number}}|' ./charts/docusaurus/Chart.yaml + sed -i 's|^appVersion: .*|appVersion: ${{ env.tag }}|' ./charts/docusaurus/Chart.yaml + sed -i 's|^tag: .*|tag: ${{ env.tag }}|' ./charts/docusaurus/values-prod.yaml + sed -i 's|^image: .*|image: ${{ env.image }}|' ./charts/docusaurus/values-prod.yaml + git commit -am "Automatic commit from GitHub Actions triggered by action ${{github.run_number}}" + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + env: + remote_pr_branch: 'release/production-${{ needs.build-stable.outputs.image_version }}' + with: + title: ${{ env.remote_pr_branch }} + token: ${{ secrets.DOCS_NEXT_TOKEN }} + branch: ${{ env.remote_pr_branch }} + \ No newline at end of file diff --git a/.github/workflows/build-publish-staging.yaml b/.github/workflows/build-publish-staging.yaml new file mode 100644 index 000000000..6402a4781 --- /dev/null +++ b/.github/workflows/build-publish-staging.yaml @@ -0,0 +1,133 @@ +name: Build and Deploy Staging Docker Images + +on: + push: + branches: + - main + paths-ignore: + - '**/README.md' + - '**/CONTRIBUTING.md' + - '**/CONFIGURATION.md' + - '**/.devcontainer/**' + - "**/.github/workflows/**" + workflow_dispatch: + +jobs: + build-preview: + name: Build Staging Artifacts + environment: + name: preview + runs-on: ubuntu-latest + outputs: + image_version: ${{ steps.build_image_tag.outputs.image_version }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup NodeJS + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + + - name: Install NodeJS Dependencies + run: npm install + + - name: Get Commit Hash + id: commit_hash + uses: prompt/actions-commit-hash@v3 + + - name: Get Current Date + id: date + run: echo "today=$(date +'%Y%m%d')" >> $GITHUB_OUTPUT + + - name: Build Image Tag + id: build_image_tag + run: echo "image_version=${{ steps.date.outputs.today }}.${{github.run_number}}.0-${{ steps.commit_hash.outputs.short }}" >> $GITHUB_OUTPUT + + - name: Build Container Image Metadata + id: meta + uses: docker/metadata-action@v5 + with: + images: | + ${{ vars.REGISTRY }}/${{ vars.REGISTRY_ORG }}/${{ vars.IMG_NAME }} + tags: | + type=raw,value=${{ steps.build_image_tag.outputs.image_version }} + + - name: Build App + env: + REACT_APP_VERSION: ${{ steps.build_image_tag.outputs.image_version }} + REACT_APP_DOCS_NEXT_HOST: ${{ vars.DOCS_NEXT_HOST }} + REACT_APP_DOCS_NEXT_ORG: ${{ vars.DOCS_NEXT_ORG }} + REACT_APP_DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }} + REACT_APP_TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }} + REACT_APP_TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }} + REACT_APP_TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }} + REACT_APP_TYPESENSE_API_KEY: ${{ secrets.TYPESENSE_SEARCH_KEY }} + UMAMI_WEBSITE_ID: ${{ vars.UMAMI_WEBSITE_ID }} + UMAMI_ANALYTICS_DOMAIN: ${{ vars.UMAMI_ANALYTICS_DOMAIN }} + UMAMI_DATAHOST_URL: ${{ vars.UMAMI_DATAHOST_URL }} + UMAMI_DATA_DOMAIN: ${{ vars.UMAMI_DATA_DOMAINS }} + run: npm run build + + - name: Login to Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.REGISTRY }} + username: ${{ secrets.REGISTRY_USER }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - name: Setup Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v3.7.1 + + - name: Build and Push (Docker Image) + id: docker_build + uses: docker/build-push-action@v6.9.0 + with: + context: ./ + file: ./Dockerfile + provenance: false + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + annotations: ${{ steps.meta.outputs.annotations }} + + update-helm-charts: + needs: [build-preview] + environment: preview + runs-on: ubuntu-latest + permissions: + contents: write + pull-requests: write + + steps: + # - name: Create GitHub App Token + # id: app-token + # uses: actions/create-github-app-token@v1 + # with: + # app-id: ${{ secrets.APP_ID }} + # private-key: ${{ secrets.APP_KEY }} + - name: Checkout Charts Repo + uses: actions/checkout@v4 + with: + repository: "${{ vars.DOCS_NEXT_CHARTS_ORG }}/${{ vars.DOCS_NEXT_CHARTS_REPO }}" + token: ${{ secrets.DOCS_NEXT_TOKEN }} + - name: Commit Changes + env: + image: ${{ vars.REGISTRY }}/${{ vars.REGISTRY_ORG }}/${{ vars.IMG_NAME }} + tag: ${{ needs.build-preview.outputs.image_version }} + run: | + git config --global user.name 'otcbot' + git config --global user.email 'otc_ecosystem_squad@t-systems.com' + sed -i 's|^tag: .*|tag: ${{ env.tag }}|' ./charts/docusaurus/values-stg.yaml + sed -i 's|^image: .*|image: ${{ env.image }}|' ./charts/docusaurus/values-stg.yaml + git commit -am "Automatic commit from GitHub Actions triggered by action ${{github.run_number}}" + - name: Create Pull Request + uses: peter-evans/create-pull-request@v7 + env: + remote_pr_branch: 'release/staging-${{ needs.build-preview.outputs.image_version }}' + with: + title: ${{ env.remote_pr_branch }} + token: ${{ secrets.DOCS_NEXT_TOKEN }} + branch: ${{ env.remote_pr_branch }} diff --git a/.github/workflows/check.yaml b/.github/workflows/check.yaml new file mode 100644 index 000000000..cc096e543 --- /dev/null +++ b/.github/workflows/check.yaml @@ -0,0 +1,23 @@ +name: check + +on: + pull_request: + branches: [ '*' ] + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Use Node.js + uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + cache: 'yarn' + + - name: Install dependencies + run: yarn install + + - name: Run typecheck + run: yarn lint diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml deleted file mode 100644 index 353d8166e..000000000 --- a/.github/workflows/release.yaml +++ /dev/null @@ -1,184 +0,0 @@ -name: build-and-release - -on: - push: - branches: - - main - paths-ignore: - - '**/README.md' - - '**/CONTRIBUTING.md' - - '**/CONFIGURATION.md' - - '**/.devcontainer/devcontainer.json' - - '**/.devcontainer/.env' - - '**/.github/workflows/preview.yaml' - -jobs: - build-preview: - environment: preview - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup NodeJS - uses: actions/setup-node@v2 - with: - node-version: 18 # Use Node.js 18 here - - - name: Install Dependencies - run: npm install - - - name: Get Commit Hash - id: commit_hash - uses: prompt/actions-commit-hash@v3 - - - name: Build App - env: - REACT_APP_VERSION: ${{ vars.APP_VERSION }}.${{github.run_number}}-${{ steps.commit_hash.outputs.short }}-preview - REACT_APP_DOCS_NEXT_HOST: ${{ vars.DOCS_NEXT_HOST }} - REACT_APP_DOCS_NEXT_ORG: ${{ vars.DOCS_NEXT_ORG }} - REACT_APP_DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }} - REACT_APP_TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }} - REACT_APP_TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }} - REACT_APP_TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }} - REACT_APP_TYPESENSE_API_KEY: ${{ secrets.TYPESENSE_SEARCH_KEY }} - UMAMI_WEBSITE_ID: ${{ vars.UMAMI_WEBSITE_ID }} - UMAMI_ANALYTICS_DOMAIN: ${{ vars.UMAMI_ANALYTICS_DOMAIN }} - UMAMI_DATAHOST_URL: ${{ vars.UMAMI_DATAHOST_URL }} - UMAMI_DATA_DOMAIN: ${{ vars.UMAMI_DATA_DOMAINS }} - run: npm run build - - - name: Login to Quay.io - uses: docker/login-action@v3 - with: - registry: quay.io - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Setup Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - - - uses: docker/setup-buildx-action@v3 - - name: Build and Push (Docker Image) - id: docker_build - uses: docker/build-push-action@v2 - with: - context: ./ - file: ./Dockerfile - push: true - tags: | - ${{ vars.DOCKERHUB_REGISTRY }}/${{ vars.DOCKERHUB_USERNAME }}/${{ vars.IMG_NAME }}:${{ vars.APP_VERSION }}.${{github.run_number}}-${{ steps.commit_hash.outputs.short }}-preview - - build-stable: - environment: stable - runs-on: ubuntu-latest - - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Setup NodeJS - uses: actions/setup-node@v2 - with: - node-version: 18 # Use Node.js 18 here - - - name: Install Dependencies - run: npm install - - - name: Get Commit Hash - id: commit_hash - uses: prompt/actions-commit-hash@v3 - - - name: Build App - env: - REACT_APP_VERSION: ${{ vars.APP_VERSION }}.${{github.run_number}}-${{ steps.commit_hash.outputs.short }}-stable - REACT_APP_DOCS_NEXT_HOST: ${{ vars.DOCS_NEXT_HOST }} - REACT_APP_DOCS_NEXT_ORG: ${{ vars.DOCS_NEXT_ORG }} - REACT_APP_DOCUSAURUS_BASE_URL: ${{ vars.DOCUSAURUS_BASE_URL }} - REACT_APP_TYPESENSE_PROTOCOL: ${{ vars.TYPESENSE_PROTOCOL }} - REACT_APP_TYPESENSE_HOST: ${{ vars.TYPESENSE_HOST }} - REACT_APP_TYPESENSE_PORT: ${{ vars.TYPESENSE_PORT }} - REACT_APP_TYPESENSE_API_KEY: ${{ secrets.TYPESENSE_SEARCH_KEY }} - UMAMI_WEBSITE_ID: ${{ vars.UMAMI_WEBSITE_ID }} - UMAMI_ANALYTICS_DOMAIN: ${{ vars.UMAMI_ANALYTICS_DOMAIN }} - UMAMI_DATAHOST_URL: ${{ vars.UMAMI_DATAHOST_URL }} - UMAMI_DATA_DOMAIN: ${{ vars.UMAMI_DATA_DOMAINS }} - run: npm run build - - - name: Login to Quay.io - uses: docker/login-action@v3 - with: - registry: quay.io - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Setup Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - - - uses: docker/setup-buildx-action@v3 - - name: Build and Push (Docker Image) - id: docker_build - uses: docker/build-push-action@v2 - with: - context: ./ - file: ./Dockerfile - push: true - tags: | - ${{ vars.DOCKERHUB_REGISTRY }}/${{ vars.DOCKERHUB_USERNAME }}/${{ vars.IMG_NAME }}:latest - ${{ vars.DOCKERHUB_REGISTRY }}/${{ vars.DOCKERHUB_USERNAME }}/${{ vars.IMG_NAME }}:${{ vars.APP_VERSION }}.${{github.run_number}}-${{ steps.commit_hash.outputs.short }}-stable - - # - name: Image Digest - # run: echo ${{ steps.docker_build.outputs.digest }} - - update-helm-charts: - needs: [build-preview, build-stable] - environment: preview - runs-on: ubuntu-latest - - steps: - - name: Get Commit Hash - id: commit_hash - uses: prompt/actions-commit-hash@v3 - - - name: Show Commit Hash Digest - run: echo ${{ steps.commit_hash.outputs.short }} - - - name: Configure Git User as GitHub Actions Bot - run: | - git config --global user.name 'github-actions[bot]' - git config --global user.email 'github-actions[bot]@users.noreply.github.com' - - - name: Checkout - uses: actions/checkout@v4 - with: - repository: "${{ vars.DOCS_NEXT_CHARTS_ORG }}/${{ vars.DOCS_NEXT_CHARTS_REPO }}" - token: ${{ secrets.DOCS_NEXT_CHARTS_TOKEN }} - - - name: Update Charts and Commit Changes - id: update_charts - env: - image: ${{ vars.DOCKERHUB_REGISTRY }}\/${{ vars.DOCKERHUB_USERNAME }}\/${{ vars.IMG_NAME }} - run: | - # docusaurus - sed -i 's/^version: .*/version: ${{ vars.APP_VERSION }}.${{github.run_number}}/' ./charts/docusaurus/Chart.yaml - sed -i 's/^appVersion: .*/appVersion: ${{ vars.APP_VERSION }}.${{github.run_number}}-${{ steps.commit_hash.outputs.short }}/' ./charts/docusaurus/Chart.yaml - sed -i 's/^tag: .*/tag: ${{ vars.APP_VERSION }}.${{github.run_number}}-${{ steps.commit_hash.outputs.short }}/' ./charts/docusaurus/values.yaml - sed -i 's/^image: .*/image: ${{ env.image }}/' ./charts/docusaurus/values.yaml - cat ./charts/docusaurus/Chart.yaml - echo "" - echo "---" - echo "" - cat ./charts/docusaurus/values.yaml - # commit and push - git commit -am "Automatic commit from GitHub Actions triggered by action #${{github.run_number}}" - git remote set-url origin https://${{ secrets.DOCS_NEXT_CHARTS_TOKEN }}@github.com/${{ vars.DOCS_NEXT_CHARTS_ORG }}/${{ vars.DOCS_NEXT_CHARTS_REPO }}.git - git push origin main - - - - - - \ No newline at end of file diff --git a/blog/2019-05-28-first-blog-post.md b/blog/2019-05-28-first-blog-post.md deleted file mode 100644 index 02f3f81bd..000000000 --- a/blog/2019-05-28-first-blog-post.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -slug: first-blog-post -title: First Blog Post -authors: - name: Gao Wei - title: Docusaurus Core Team - url: https://github.com/wgao19 - image_url: https://github.com/wgao19.png -tags: [hola, docusaurus] ---- - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/blog/2019-05-29-long-blog-post.md b/blog/2019-05-29-long-blog-post.md deleted file mode 100644 index 26ffb1b1f..000000000 --- a/blog/2019-05-29-long-blog-post.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -slug: long-blog-post -title: Long Blog Post -authors: endi -tags: [hello, docusaurus] ---- - -This is the summary of a very long blog post, - -Use a `` comment to limit blog post size in the list view. - - - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet - -Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet diff --git a/blog/2021-08-01-mdx-blog-post.mdx b/blog/2021-08-01-mdx-blog-post.mdx deleted file mode 100644 index c04ebe323..000000000 --- a/blog/2021-08-01-mdx-blog-post.mdx +++ /dev/null @@ -1,20 +0,0 @@ ---- -slug: mdx-blog-post -title: MDX Blog Post -authors: [slorber] -tags: [docusaurus] ---- - -Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/). - -:::tip - -Use the power of React to create interactive blog posts. - -```js - -``` - - - -::: diff --git a/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg b/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg deleted file mode 100644 index 11bda0928..000000000 Binary files a/blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg and /dev/null differ diff --git a/blog/2021-08-26-welcome/index.md b/blog/2021-08-26-welcome/index.md deleted file mode 100644 index 9455168f1..000000000 --- a/blog/2021-08-26-welcome/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -slug: welcome -title: Welcome -authors: [slorber, yangshun] -tags: [facebook, hello, docusaurus] ---- - -[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog). - -Simply add Markdown files (or folders) to the `blog` directory. - -Regular blog authors can be added to `authors.yml`. - -The blog post date can be extracted from filenames, such as: - -- `2019-05-30-welcome.md` -- `2019-05-30-welcome/index.md` - -A blog post folder can be convenient to co-locate blog post images: - -![Docusaurus Plushie](./docusaurus-plushie-banner.jpeg) - -The blog supports tags as well! - -**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config. diff --git a/blog/authors.yml b/blog/authors.yml deleted file mode 100644 index bcb299156..000000000 --- a/blog/authors.yml +++ /dev/null @@ -1,17 +0,0 @@ -endi: - name: Endilie Yacop Sucipto - title: Maintainer of Docusaurus - url: https://github.com/endiliey - image_url: https://github.com/endiliey.png - -yangshun: - name: Yangshun Tay - title: Front End Engineer @ Facebook - url: https://github.com/yangshun - image_url: https://github.com/yangshun.png - -slorber: - name: Sébastien Lorber - title: Docusaurus maintainer - url: https://sebastienlorber.com - image_url: https://github.com/slorber.png diff --git a/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy.md b/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy.md index 4e9e5ab55..d6941c790 100644 --- a/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy.md +++ b/docs/best-practices/storage/object-storage-service/accessing-obs-through-an-nginx-reverse-proxy.md @@ -6,8 +6,8 @@ tags: [storage, obs, reverse-proxy, nginx] # Accessing OBS Through an NGINX Reverse Proxy -Generally, you can access OBS using a bucket's access domain name [for -example](https://**bucketname**.obs.eu-de.otc.t-systems.com) +Generally, you can access OBS using a bucket's access domain name (for +example, **https://`bucketname`.obs.eu-de.otc.t-systems.com**) provided by OBS or using a user-defined domain name bound to an OBS bucket. @@ -34,11 +34,7 @@ actual domain name or IP address of OBS is hidden. proxy](/img/docs/best-practices/storage/object-storage-service/en-us_image_0273872842.png) ## Prerequisites - -- You have known the region and access domain name of the bucket. For - example, the access domain name of a bucket in the eu-de region is - `nginx-obs.obs.eu-de.otc.t-systems.com`. To obtain the - information, see [Querying Basic Information of a +- You know the region and access domain name of the bucket. For example, the access domain name of a bucket named `nginx-obs` in the **eu-de** region is `nginx-obs.obs.eu-de.otc.t-systems.com`. To obtain the information, see [Querying Basic Information of a Bucket](https://docs.otc.t-systems.com/object-storage-service/umn/obs_browser_operation_guide/managing_buckets/viewing_basic_information_of_a_bucket.html). - You have a Linux ECS **in the same region**. CentOS is used here as an example. For details, see [Creating an @@ -110,9 +106,12 @@ b. Press the *i* key to go to the edit mode and modify the | Parameter | Description | | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | server_name | IP address that provides the reverse proxy service. It is the fixed IP address that is exposed to end users for access. Enter the EIP of the ECS where the NGINX reverse proxy service is deployed. | - | proxy_pass | IP address of the proxied server. Enter the OBS bucket access domain name required in [Prerequisites](#prerequisites). The domain name must start with http:// or https://.

Example: [https://nginx-obs.obs.eu-de.otc.t-systems.com](https://nginx-obs.obs.eu-de.otc.t-systems.com) **Note**: When you use an API, SDK, or obsutil for calling, set this parameter to the region domain name. The following is an example: `obs.eu-de.otc.t-systems.com` | - | proxy_buffering | Whether to enable the proxy buffer. The value can be `on` or `off`. If this parameter is set to on, Nginx stores the response returned by the backend in a buffer and then sends the data to the client. If this parameter is set to off, Nginx sends the response to the client as soon as it receives the data from the backend. Default value: `on`

Example: `proxy_buffering off` | + | proxy_pass | IP address of the proxied server. Enter the OBS bucket access domain name required in [Prerequisites](#prerequisites). The domain name must start with http:// or https://.

Example: [https://nginx-obs.obs.eu-de.otc.t-systems.com](https://nginx-obs.obs.eu-de.otc.t-systems.com)| + | proxy_buffering | Whether to enable the proxy buffer. The value can be `on` or `off`. If this parameter is set to on, Nginx stores the response returned by the backend in a buffer and then sends the data to the client. If this parameter is set to off, Nginx sends the response to the client as soon as it receives the data from the backend. Default value: `on`

Example: `proxy_buffering off` | +:::note +When you use an API, SDK, or obsutil for calling, set **proxy_pass** to the region domain name. The following is an example: `obs.eu-de.otc.t-systems.com`. +::: c. Press the *ESC* key and enter *:wq* to save the configuration and exit. @@ -157,11 +156,107 @@ c. In the navigation pane, choose *Permissions* -> *Bucket d. Click *Create*. -e. Choose a policy configuration method you like. *Visual Editor* - is used here. +e. Choose a policy configuration method you like. *Visual Editor* is used here. + +![*Figure 3* ](/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png) f. Configure the following parameters. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Table 2 + Bucket policy parameters +
ParameterDescription
Policy NameEnter a policy name.
Policy contentEffectSelect Allow.
Principal +
    +
  • To select All accounts enter *.
  • +
+
Resources +
    +
  • + Method 1: +
      +
    • Select Entire bucket (including the objects in it).
    • +
    +
  • +
  • + Method 2: +
      +
    • Select Current bucket and Specified objects.
    • +
    • Set the resource path to * to indicate all objects in the bucket.
    • +
    +
  • +
+
Actions +
    +
  • Choose Customize.
  • +
  • Select Get* and List*.
  • +
+
Conditions (Optional) +
    +
  • Key: Select SourceIp.
  • +
  • Condition Operator: Select IpAddress
  • +
  • + Value: +
      +
    • +

      If the ECS uses a public DNS, the value is as follows:

      +

      Elastic IP address of the ECS

      +
    • +
    • +

      If the ECS uses a Open Telekom Cloud private DNS, the value is as follows:

      +

      100.64.0.0/10,214.0.0.0/7,Private IP address of the ECS

      +
    • +
    +
  • +
+
+ + +:::note +In conditions you can click **Add** to configure IP addresses (CIDR blocks). +IP addresses in the range starting with **100** or **214** are for ECSs to access OBS through an internal network. +::: + g. Click *Create*. ## Verifying the reverse proxy configuration @@ -172,5 +267,5 @@ configuration is successful. For example, visit `http://**ECS EIP**/otc.jpg`. -![*Figure 3* Using a fixed IP address to access OBS +![*Figure 4* Using a fixed IP address to access OBS resources](/img/docs/best-practices/storage/object-storage-service/en-us_image_0273876194.png) \ No newline at end of file diff --git a/docs/blueprints/by-industry/aerospace/_category_.json b/docs/blueprints/by-industry/aerospace/_category_.json new file mode 100644 index 000000000..58f5669b5 --- /dev/null +++ b/docs/blueprints/by-industry/aerospace/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Aerospace", + "link": { + "type": "doc", + "id": "Aerospace" + } +} \ No newline at end of file diff --git a/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services.md b/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services.md new file mode 100644 index 000000000..c3a679130 --- /dev/null +++ b/docs/blueprints/by-industry/aerospace/cloud-satellite-data-mundi-web-services.md @@ -0,0 +1,65 @@ +--- +id: cloud-satellite-data-mundi-web-services +title: "Mundi Web Services: New Business from Space" +tags: [aerospace, by-industry, esa, geoservices] +--- + +# Mundi Web Services: New Business from Space + +The [European Space Agency's](https://www.esa.int/) (ESA) [Copernicus](https://www.esa.int/Applications/Observing_the_Earth/Copernicus) program fulfills the mandate of the European Union to place a series of sentinel earth observation satellites in orbit that transmit about 20 terabytes of images to Earth every day. By now, the previously available satellites have generated several petabytes of data, giving users inside and outside the EU new glimpses from the cosmos. This data is made accessible in a cloud-based manner via Mundi Web Services. The aim is to promote new geo-based business models. + +The EU makes its Earth observation data available free of charge with the intention of creating new business models and applications for mainly European users: from students and software providers, to large corporations and the public sector. + +[Mundi Web Services](#about-mundi-web-services) makes European satellite data accessible for new business models + +## New Geo-Based Business Models + +This brings with it a wealth of new applications in target markets such as agriculture and forestry, energy, environment, climate, insurance, and disaster control. For example, satellite observations can be used to register the use of agricultural land and, as a result, better allocate EU funds, quickly identify environmentally relevant changes, and take action as well as optimize the use of mineral and energy resources. + +Mundi Web Services is a platform on which users can directly use preconfigured geoservices. However, it also offers new geoservice providers the option of offering their services on the market. Mundi Web Services' great strength? All necessary components to implement new geo-based business ideas are already integrated. This includes constantly updated data from the Sentinel satellites as well as historical data from the American Landsat program, geoservice applications, and flexible IT resources from the Open Telekom Cloud. As the computing capacities for the evaluations and the data are on the same technical platform, tedious copying processes are no longer necessary. In addition, Mundi allows specific selection of the data that is relevant for the respective analysis. + +## Benefits for the Customer + +* Complete toolbox for easy launch of new geo-based services +* Simplification of existing processes, e.g. for claims settlement or subsidy allocation +* IT capacities as a complete service +* Usage-dependent costs for IT resources in temporary projects + +## Dynamic IT is Essential for Geoservices + +Access to the data has so far been complex, expensive, and tedious. Users always had to download complete data sets comprising several gigabytes or even terabytes from a central repository before they could start their evaluations. New potential geoservice providers with limited IT resources could not benefit from the data. The Copernicus program is also not yet very well known to the business community or the general public. + +Computing resources are the be-all and end-all for geoservices. To perform further analysis, the original data, usually images at different frequency intervals and on different technical bases (e.g. with optical, thermal or radar sensors), must first be processed - a stage referred to pre-processing. One action in this regard is to normalize images so that they can be compared with one other. In the second stage, the actual processing (which also requires a large amount of computing resources), the data prepared in this way is processed using mathematical models. This creates business-relevant results that can help decision-makers. So far, such statements have been made under the auspices of projects that were set up specifically for the respective application. + +Mundi Web Services makes using earth observation data for business purposes more professional. Geoservices "made in Europe" receive a basis on which they can develop new business models and offer them as web services on the international market. End users are given the opportunity to deploy geoservices as needed. Mundi has the right infrastructure foundation in the form of the Open Telekom Cloud. The resources from the cloud are optimal for temporary high-load calculations and adapt to the desired requirements of users. If a user wants faster results, they can speed up the evaluation with additional capacities. Depending on the speed, customers only pay for the resources that are actually used. + +## The Challenge + +* Provision of a platform for the use of geo-based services +* Integration of services, data, and usage-dependent computing/storage capacities for efficient use of satellite data +* Support of new geo-based business models "made in Europe" +* Optimization of existing processes (e.g. in administrative units) + +## The Aim: Easier Use of Satellite Data + +Mundi Web Services is the answer to these challenges. It simplifies the access and use of satellite data. Mundi Web Services is a consortium led by Atos. T-Systems is another established ICT player on-board; it adds its Open Telekom Cloud and its experience with modern ICT service models into the mix. Experienced providers from the geoservice segment, such as the Italian e-geos, the Austrian EOX, the French Thales Aliena Space, the German GAF, and the German Aerospace Center (DLR), contribute technical expertise and applications. + +## The Solution + +* Mundi Web Services as an integrated platform +* Data and computing capacity over the same infrastructure +* Open Telekom Cloud as a source for scalable IT resources +* Marketplace for geoservices + +## About Mundi Web Services + +[Mundi Web Services](https://mundiwebservices.com/) is a consortium led by Atos. The consortium works on behalf of the European Union and the European Space Agency ESA. The consortium partners are T-Systems, Thales Alenia Space, DLR, e-geos, EOX, GAF AG, Sinergise, and Spacemetric. + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/cloud-satellite-data-mundi-web-services). +* [Download](https://www.t-systems.com/resource/blob/13730/46910b6a621ed206cec05cf6a04c0011/DL-Flyer-C-Dias-Plattform-ESA-Mundi-t-systems-en-09-2019.pdf) our reference flyer. + +::: diff --git a/docs/blueprints/by-industry/education/index.md b/docs/blueprints/by-industry/aerospace/index.md similarity index 93% rename from docs/blueprints/by-industry/education/index.md rename to docs/blueprints/by-industry/aerospace/index.md index 6933daf72..d51430ebe 100644 --- a/docs/blueprints/by-industry/education/index.md +++ b/docs/blueprints/by-industry/aerospace/index.md @@ -1,9 +1,9 @@ --- -id: Education -title: Education +id: Aerospace +title: Aerospace --- -# Education +# Aerospace The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic diff --git a/docs/blueprints/by-industry/automotive/_category_.json b/docs/blueprints/by-industry/automotive/_category_.json deleted file mode 100644 index 1618e3413..000000000 --- a/docs/blueprints/by-industry/automotive/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Automotive", - "link": { - "type": "doc", - "id": "Automotive" - } -} \ No newline at end of file diff --git a/docs/blueprints/by-industry/education/_category_.json b/docs/blueprints/by-industry/education/_category_.json deleted file mode 100644 index 3171d6f5e..000000000 --- a/docs/blueprints/by-industry/education/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Education", - "link": { - "type": "doc", - "id": "Education" - } -} \ No newline at end of file diff --git a/docs/blueprints/by-industry/finance/cloud-euvic.md b/docs/blueprints/by-industry/finance/cloud-euvic.md new file mode 100644 index 000000000..9a4b60bd2 --- /dev/null +++ b/docs/blueprints/by-industry/finance/cloud-euvic.md @@ -0,0 +1,48 @@ +--- +id: cloud-euvic +title: "EUVIC: Cloud-Based Credit Portal for SaarLB" +tags: [finance, by-industry] +--- + +# EUVIC: Cloud-Based Credit Portal for SaarLB + +The software company [EUVIC](#about-euvic-gmbh) has developed a portal which enables business customers' credit requests to be processed interactively and at a considerably faster rate. Since customer data is particularly sensitive, the renowned software company used the Open Telekom Cloud to develop and operate the credit portal. "*T-Systems' servers are located in highly secure, multi-certified data centers in Germany,*" says Daniel Piecha of EUVIC. With the cloud solution, the Landesbank meets the strict regulations of the financial supervisory authority and the European General Data Protection Regulation (GDPR). Only authorized employees of the bank have unencrypted access to the data in the system. In addition, a neutral third party company reviewed the security concept and certified the cloud solution – after a penetration test – as having a very high level of security. + +EUVIC develops customer portal for SaarLB and meets strict security requirements using the Open Telekom Cloud. + +## Benefits for the Customer + +* Server locations for the Open Telekom Cloud in Germany offer IT security and optimum data protection. As a result, the Open Telekom Cloud is widely accepted in the sensitive financial sector +* Demand-based use and payment (pay-per-use principle) +* The solution can be extended by private cloud instances (hybrid solution) +* The company can automatically launch development environments with the Cloud Container Engine (CCE) – including programming tools and scripting languages +* Open cloud base: OpenStack protects against vendor lock-in + +### Bank Relies on Solution from the Ccloud + +Banking and the cloud – for a long time they did not seem to go together. But an increasing number of financial institutions have come to see the cloud as a pioneer for flexibility, agility, and innovation. With a new B2B credit portal from the cloud, Landesbank SaarLB now wants to offer its business customers better service – and at the same time provide optimum protection for customer data. And that's why service provider EUVIC uses the Open Telekom Cloud for the portal. + +### More Agility with the Cloud + +The credit portal was ready for use in just four months. Now EUVIC is gradually expanding the credit portal with additional components. Based on Kubernetes, the Cloud Container Engine (CCE) within the Open Telekom Cloud supports them in this. "A great tool that helps us with the development, testing, operation, and maintenance of the applications," says Daniel Piecha. This enables developers to set up, deploy, cluster, and scale cloud containers automatically, quickly, and easily. + +### Innovative Thanks to OpenStack + +The OpenStack concept of T-Systems' cloud solution has also been well received by EUVIC. Daniel Piecha: "*This concept gives us access to the innovations of the global open source community.*" In addition, the open architecture protects against becoming dependent on a single provider. + +In fact, banks and savings banks prefer to process sensitive data on servers within their own company. But here too, the Open Telekom Cloud performs well – as a hybrid variant. So, EUVIC can also offer its customers hybrid scenarios in the future. The advantage: the private and public instances can be operated on identical hardware and software components. This means that all parts of the solution are fully compatible with one another – and Telekom offers the same support for all configurations. + +## About EUVIC GmbH + +[EUVIC GmbH](http://euvic.de/en/index.html) is an internationally active software development company and is always in demand when sophisticated full-stack software solutions are required. Around 1,800 specialists look after more than a thousand customers in 24 countries at present. The company based in Leverkusen offers special expertise in full-stack software development, cloud-based software solutions, mobile apps, e-commerce, and big data. + + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/cloud-euvic). +* [Download](https://www.t-systems.com/resource/blob/289024/fbd7957fa9892be51f94181e94475678/DL-Flyer-Sichere-Cloud-fuers-Banking-t-systems-en-10-2020.pdf) our reference flyer. + +::: + diff --git a/docs/blueprints/by-industry/finance/cloud-particulate.md b/docs/blueprints/by-industry/finance/cloud-particulate.md new file mode 100644 index 000000000..0b14ed0ea --- /dev/null +++ b/docs/blueprints/by-industry/finance/cloud-particulate.md @@ -0,0 +1,66 @@ +--- +id: cloud-particulate +title: "Particulate: Donation Platform on Open Telekom Cloud" +tags: [finance, by-industry] +--- + +# Particulate: Donation Platform on Open Telekom Cloud + +Around 5,000 people in the Rhine-Main region are already so-called “Radgeber” or cyclist donors: Together with the start-up [Particulate Solutions](#about-particulate-solutions-gmbh), Deutsche Bahn (DB) has developed the platform, which allows every cyclist participating in the campaign to become a donor. The technology for the platform is based on the Open Telekom Cloud, Telekom's public cloud offering. + +## Digital Donation Currency: Cyclists Collect SocialCoins + +When booking a rental bike via Deutsche Bahn’s Call-a-Bike app, cyclists receive 100 so-called *SocialCoins* – a fictitious donation currency created by the Koblenz-based start-up. Cyclists can distribute the SocialCoins to selected projects via the app with just a few clicks. As soon as the donation target is reached, Deutsche Bahn will transfer the amount to the project. So far, about 12,000 euros have been collected in less than three months. + +### Donation Platforms as a Marketing Tool + +The rental bike donation platform is by no means the start-up’s only project. The three founders, Stefan Pandorf, Stephanie Henn and Stefan Fink, want to combine marketing with social commitment and they plan to do so across many industries. “*We offer companies an effective marketing tool and harness the entrepreneurial potential of donations,*” says Pandorf. “*After all, social engagement and sustainability are becoming more and more important in marketing. Many customers are increasingly choosing a company that is socially engaged when purchasing a product.*” For example, a bank can attract new customers by giving them SocialCoins instead of a certain amount of funds when they open an account. On the bank's platform, the customer can redeem the coins for specific projects, such as a fundraising campaign for new jerseys for a football club or the expansion of a playground. That amount is then paid out by the bank. + +## Data Protection and Data Security as Top Priority + +All data is stored in the secure and inexpensive Object Based Storage (OBS). “*The partnership with Deutsche Telekom is always a winning argument for our customers,*” says Pandorf. “*Deutsche Telekom simply has a good reputation when it comes to data protection and data security. This helps us a lot when it comes to marketing our idea.*” And if questions ever arise about the architecture of the Open Telekom Cloud, the start-up can get in touch with a competent Deutsche Telekom contact person at any time. + +## Customer Benefits + +* The platform is always deliverable, regardless of the number of customers. +* Thanks to auto-scaling, there are always enough IT resources available. +* More than 600 requests per second are possible. +* High data protection and data security are guaranteed. +* Own servers become obsolete. +* Contact persons of the Telekom are always available. + +## Secure Data Storage in the Cloud + + +Many of Particulate's customers come from the energy or financial sector. “*That's why our customers always ask first about data protection and data security,*” says Pandorf. Initially, the Koblenz-based company worked with the German cloud provider ProfitBricks and tested the infrastructure of Amazon Web Services (AWS). But due to the high expectations of customers regarding the secure storage of their data, Particulate looked for another solution that could meet these requirements. “*In addition, we needed a solution that we could scale flexibly, for example, if the number of those accessing the platform suddenly increased sharply,*” says Pandorf. The founders got to know about the Open Telekom Cloud through Deutsche Telekom's TechBoost program. + +There are already plans to expand the platform. Particulate not only wants to extend the project with Deutsche Bahn to the whole of Germany. The start-up also wants to approach other large international companies in the future with a view to developing other donation platforms in the Open Telekom Cloud. + +## The Challenge + +* It was too expensive and inflexible to use its own servers. +* The start-up was therefore looking for a secure, flexibly scalable cloud solution for the white-label platforms. +* An important factor was the secure storage of the data. +* Particular Solutions needed flexible scalability for fluctuating traffic. +* The system should be reliable and stable. + +## The Solution + +* Particulate uses IT capacity from the Open Telekom Cloud as part of the TechBoost program. +* Open Stack provides many ready-made solutions. +* The data storage takes place in the safe and favorable Object Based Storage (OBS). +* As user access increases, the auto-scaling service automatically posts resources. + +## About Particulate Solutions GmbH + +The Koblenz-based start-up [Particulate](https://particulate.de/) and its approximately 30 employees offers companies donation platforms with their own corporate design in order to distribute donations more fairly and transparently. The solution went online in 2012. Corporate Social Responsibility has become an important factor when making a purchase decision. + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/particulate). +* [Download](https://www.t-systems.com/resource/blob/155260/6cc35e38595813aea929fbf1ea7b92f0/DL-Flyer-Particulate-Solution-GmbH-T-Systems-EN-06-2020.pdf) our reference flyer. + +::: + diff --git a/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger.md b/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger.md new file mode 100644 index 000000000..9942ed5ed --- /dev/null +++ b/docs/blueprints/by-industry/government/kirchheim-unter-teck-bundesmessenger.md @@ -0,0 +1,47 @@ +--- +id: kirchheim-unter-teck-bundesmessenger +title: Sovereign Digitalization for the City of Kirchheim unter Teck +tags: [government, bundesmessenger, by-industry] +--- + +# Sovereign Digitalization for the City of Kirchheim unter Teck + +The City of [Kirchheim unter Teck](#about-the-city-of-kirchheim-unter-teck) uses the [BundesMessenger](https://docs.bundesmessenger.info/de/start/overview/) from the Open Telekom Cloud. Kirchheim unter Teck has recognized the value of digitalization when it comes to mastering the challenges the city faces. With its strong focus on sovereign IT solutions, T-Systems proved to be the right partner for driving the digitalization of government administration forward in Kirchheim unter Teck. + +## BundesMessenger from Open Telekom Cloud + +### The Challenge + +* Utilize the potential of digitalization for modern, real-time communication in government +* Strict requirements for security +* The solution must be modern and satisfy sovereignty aspects + +### The Solution + +* [BundesMessenger](https://docs.bundesmessenger.info/de/start/overview/) open-source software from [BWI](https://www.bwi.de/) offers secure, encrypted communication (as a device-independent app) +* The software is offered **exclusively** to public institutions (community approach) +* T-Systems provides the BundesMessenger as SaaS from the Open Telekom Cloud +* The SaaS is enriched with managed services (including updates and new releases) +* T-Systems offers additional integration options for using internal IAM systems for user administration + +### Customer Benefits + +* Modern, real-time communication with an enhanced user experience +* Easy availability +* Maximum sovereignty and data security +* Transparent, usage-based costs + +## About the City of Kirchheim unter Teck + +[Kirchheim unter Teck](https://www.kirchheim-teck.de/3134), a county seat in the foothills of the Swabian Mountains, is part of the greater Stuttgart region. The city is home to more than 40,000 residents. It serves as a middle center to the surrounding communities. + + + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/kirchheim-unter-teck-bundesmessenger-from-the-open-telekom-cloud). +* [Download](https://www.t-systems.com/resource/blob/996990/1d7b18cc88658bdea4e3a96b32fc5a52/DL-Flyer-City-of-Kirchheim-Managed-BundesMessenge-T-Systems-EN-06-2024.pdf) our reference flyer. + +::: diff --git a/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app.md b/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app.md new file mode 100644 index 000000000..52504f6d2 --- /dev/null +++ b/docs/blueprints/by-industry/healthcare/brain-plus-german-cloud-for-dementia-therapy-app.md @@ -0,0 +1,43 @@ +--- +id: brain-plus-german-cloud-for-dementia-therapy-app +title: Open Telekom Cloud for Dementia Therapy App +tags: [healthcare, by-industry] +--- + +# Open Telekom Cloud for Dementia Therapy App + +To meet the strict guidelines for the German digital health market, the team from [Brain+](#about-brain) wanted to provide the backend for its app from a German cloud, and Brain+ chose the Open Telekom Cloud. In addition to that, with a growing focus on the UK market, Open Telekom Cloud can provide a framework allowing the team to scale to the UK and later to the rest of Europe. + + + +## The Challenge + +* Dementia therapy app, released in a first product version in Denmark and Germany +* Laying the foundations for acceptance as a digital health application (DiGA) +* Meeting data security and data protection requirements in the cloud + +## The Solution + +* Transferring the backend to the [Open Telekom Cloud](https://www.t-systems.com/de/en/cloud-services/solutions/public-cloud/open-telekom-cloud) +* Content Management System operated from the Open Telekom Cloud, using relational database service, elastic cloud server, elastic volume storage, caching, and backup +* Full scalability and compliance with regulatory framework conditions + +## Customer Benefits + +* Open Telekom Cloud enables Brain+ to expand into Germany with its offerings and tap into the market potential for dementia +* The platform allows Brain+ to deliver the services they offer in compliance with German regulatory requirements for health apps +* Open Telekom Cloud offers full scalability for further business growth, fully supporting cloud-native technologies and expansion into other markets such as the UK +* Support as an Open Telekom Cloud Circle Partner + +## About Brain+ + +Copenhagen-based scale-up [Brain+](http://www.brain-plus.com/) assists CST therapists with an in-house developed app called [CST-Therapist Companion](https://www.brain-plus.com/cst-therapist-companion-advancing/). The app is based on the latest scientific findings and supports conducting CST sessions by providing materials for exercises (from a content management system) to shorten preparation time and facilitate consistent delivery of the therapy. Furthermore, it organizes the flow of individual sessions. This app gives the therapist a comprehensive tool that manages, facilitates, and optimizes CST-based dementia therapy. + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/brain-plus-german-cloud-for-dementia-therapy-app). +* [Download](https://www.t-systems.com/resource/blob/700758/24b458b6be64c54cb4d3159ba0280c69/DL-Flyer-Brain-Plus-OTC-T-Systems-EN-03-2024.pdf) our reference flyer. + +::: diff --git a/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud.md b/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud.md new file mode 100644 index 000000000..27960dbce --- /dev/null +++ b/docs/blueprints/by-industry/healthcare/fuse-ai-open-telekom-cloud.md @@ -0,0 +1,59 @@ +--- +id: fuse-ai-open-telekom-cloud +title: "Fuse-AI: e-Health from the Cloud" +tags: [healthcare, by-industry, artificial-intelligence, ai] +--- + +# Fuse-AI: e-Health from the Cloud + +[Fuse-AI](#about-fuse-ai) is making medical diagnosis easier with artificial intelligence. A second opinion from the Open Telekom Cloud saves radiologists time, improves the quality of their diagnoses and reduces costs. The Hamburg-based entrepreneurs founded their start-up in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. “*The biggest advantage is the improved quality of a diagnosis,*” says Maximilian Waschka, one of the four Fuse-AI founders. “*Our algorithm helps radiologists notice abnormalities on thousands of images more reliably.*” The start-up estimates that its e-health solution can save health insurers at least 10 percent of the costs associated with MRI examinations. + +“*In the future, we will help to detect many common illnesses much more quickly, comprehensively, and reliably with the help of the Open Telekom Cloud,*" says Sabrina Reimers-Kipping, PhD biochemist and co-founder of Fuse-AI. “*Not only does this reduce the workload of the doctor and the costs for the healthcare system, it also increases the chances of recovery for the patients. Because the earlier diseases are detected, the better the chance of a recovery.*” + +## Benefits for the Customer + +* Flexibly scalable resources enable the artificial intelligence to do detailed data analysis at any time of the day.  +* Doctors and patients trust the solution thanks to the Open Telekom Cloud, which is known as a secure platform offering the highest levels of data privacy and data protection. +* With Deutsche Telekom as their partner, the founders of the start-up are able to establish a sustainable market foothold more quickly. + +## A Second Opinion Thanks to AI + +Radiologists don’t have an easy job: Each day, they have to analyze several thousand x-rays and other tomographic images. A single MRI (magnetic resonance imagery) scan creates around 2,000 pictures. A diagnosis requires the utmost concentration, from the first to final image. After all, any mistake could have life-threatening consequences. + +The founders of the start-up Fuse-AI want to ease this challenge with their innovative electronic health (e-health for short) solution. They have developed artificial intelligence that helps doctors detect cancer. “*The goal is to give radiologists a computer-assisted second opinion that makes their job easier,*” says Waschka. + +## The Challenge + +* To analyze large amounts of data from MRI scans the founders need flexibly scalable processing resources. +* The young northern German entrepreneurs searched for a provider offering secure, reliable and flexible IT capacity. + +### Cloud-Assisted Diagnosis Help + +The northern German start-up relies on IT resources from the Open Telekom Cloud for its extensive medical analysis. The MRI scans are sent encrypted via the Internet to Deutsche Telekom’s highly secure data centers in the eastern German state of Saxony-Anhalt, where they are then analyzed. The intelligent algorithm notes any abnormalities, adds metadata to the images and then sends it back to the radiologist’s computer system. The doctor can then use the notes and metadata to make a faster and more accurate diagnosis. +The four entrepreneurs submitted their idea to TechBoost, Deutsche Telekom’s program for promising start-ups with software-based business models, and were accepted. Since then, the company has benefited from €100,000 worth of IT resources from the Open Telekom Cloud. “*The Open Telekom Cloud is a wonderful instrument giving us both the flexibility and scalability necessary to realize this kind of solution,*” says Dirk Schäfer, a machine learning expert and co-founder of Fuse-AI. + +### Cloud-Assisted Skin Cancer Diagnosis + +But detecting carcinomas on MRI scans is just the beginning. Fuse-AI is already planning to expand into other solutions. The company’s founders have developed together with dermatologists a so-called digital dermatoscope to make skin cancer detection faster and more accurate. The principle is the same with MRI scans: The dermatoscope photographs the skin’s surface of a patient. An intelligent algorithm in the cloud then analyzes the images and the system alerts the physician to any abnormalities it discovers. + +## The Solution + +* The start-up now has scalable IT resources available all the time from the Open Telekom Cloud. +* The company uses certified, highly secure data centers located in Germany. +* TCDP 1.0 certification attests that the Open Telekom Cloud already conforms to the EU’s General Data Protection Regulation (GDPR). + + ![Infographic](https://www.t-systems.com/resource/image/170888/ratio3x2/1440/960/3b17e291f8a5491c3fa97eba9be7a435/FA23A3FF3A7E664AAA9B62ADB2E073FF/im-ref-fuse-ai-infographic.png "Infographic") + +## About Fuse-AI + +[Fuse-AI](https://fuse-ai.de/) applies big data analytics to medical diagnosis. The Hamburg-based startup was founded in 2015 and developed artificial intelligence that can detect indications of cancer – such as carcinomas – on MRI scan and assess whether a tumor is benign or malignant. And that doesn’t just save doctors time. The start-up’s artificial intelligence analyzes MRI scans, notes possible carcinomas and assesses whether a tumor is benign or malignant – it’s a second medical opinion from the Open Telekom Cloud. That makes a radiologist’s job easier, saves time, improves the quality of a diagnosis and reduces healthcare costs. + + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/fuse-ai-open-telekom-cloud). +* [Download](https://www.t-systems.com/resource/blob/170894/b87be365511a2bd88d33b32568489572/DL-Flyer-Fuse-AI-T-Systems-EN-06-2020.pdf) our reference flyer. + +::: diff --git a/docs/blueprints/by-industry/index.md b/docs/blueprints/by-industry/index.md index 6ddb50c2e..f74b7dff0 100644 --- a/docs/blueprints/by-industry/index.md +++ b/docs/blueprints/by-industry/index.md @@ -6,10 +6,6 @@ sidebar_position: 3 # By Industry -Welcome to the Open Telekom Cloud Architecture Center Best Practices. -Here we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that -enhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as -efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance -to ensure robust system performance. This section serves as a valuable resource for architects and developers -to implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud -infrastructure. +Here you can find guidance for implementing solutions on Open Telekom Cloud tailored to the specific needs of various sectors. Solutions focus on ensuring data security, real-time analytics, and compliance with industry regulations, while also prioritizing high availability, data protection, and meeting strict regulatory requirements. Architectures are designed to support secure data management, facilitate efficient service delivery, and enable secure information exchange. + +Additionally, the category covers cloud solutions that foster innovation, support research and development, and leverage advanced technologies such as AI. It also provides architectures for scalable content delivery, low-latency streaming, and high-performance workloads, as well as solutions to optimize customer experiences, e-commerce platforms, and inventory management. Architectures for high-capacity networks and scalability are also included to ensure continuity and efficiency. This category provides reference architectures, case studies, and step-by-step guides to help organizations deploy tailored cloud solutions that meet the unique operational and regulatory requirements of their sectors. \ No newline at end of file diff --git a/docs/blueprints/by-industry/innovation/_category_.json b/docs/blueprints/by-industry/innovation/_category_.json new file mode 100644 index 000000000..c813a39c4 --- /dev/null +++ b/docs/blueprints/by-industry/innovation/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Innovation", + "link": { + "type": "doc", + "id": "Innovation" + } +} \ No newline at end of file diff --git a/docs/blueprints/by-industry/automotive/index.md b/docs/blueprints/by-industry/innovation/index.md similarity index 93% rename from docs/blueprints/by-industry/automotive/index.md rename to docs/blueprints/by-industry/innovation/index.md index 2fce1a1ae..29ad8fc5a 100644 --- a/docs/blueprints/by-industry/automotive/index.md +++ b/docs/blueprints/by-industry/innovation/index.md @@ -1,9 +1,9 @@ --- -id: Automotive -title: Automotive +id: Innovation +title: Innovation --- -# Automotive +# Innovation The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic diff --git a/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud.md b/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud.md new file mode 100644 index 000000000..a79970239 --- /dev/null +++ b/docs/blueprints/by-industry/innovation/xelera-open-telekom-cloud.md @@ -0,0 +1,52 @@ +--- +id: xelera-open-telekom-cloud +title: "Xelera: Middleware Ignites the Application Turbo" +tags: [innovation, by-industry, fpga] +--- + +# Xelera: Middleware Ignites the Application Turbo + +The founders of Hessian start-up [Xelera](#about-xelera) have developed middleware that greatly accelerates data processing. The best thing: Computing-intensive algorithms are processed in freely programmable circuits, so-called Field Programmable Gate Arrays (FPGAs). These are hardware cards that can be individually programmed depending on the intended use. In this way, they process tasks within a server considerably faster than standard hardware and thus considerably accelerate applications. + +“*However, most companies don’t have the necessary know-how to use FPGAs profitably. Individual configuration also costs a lot of time and money,*” says Xelera founder Dr. Felix Winterstein. The hardware-independent solution from Xelera, on the other hand, is simply booked by companies as a service. There’s no need for specialist knowledge about programming hardware cards. With the Xelera solution, companies can accelerate their processes by up to a factor of 100, depending on the application. + +## The Benefits + +* Spontaneous implementation of individual customer requirements possible at any time +* No in-depth FPGA know-how required on the user side thanks to ready-to-use FPGA middleware from the Open Telekom Cloud +* Up to 100-fold acceleration of applications +* Demand-led FPGA usage, pay-as-you-go + +### FPGA: Freely Programmable Circuits as Accelerators + +What do blockchain, artificial intelligence and self-driving cars have in common? According to Gartner, they are all among the top IT trends of 2019 – and they all require enormous computing capacities. That isn’t just something that has existed since 2019 – even conventional processes in companies require ever more powerful IT resources that can perform computing operations more and more quickly. + +### Big Data Analytics During your Coffee Break + +“*More and more processes are running in real time, whether it's manufacturing, transport, logistics, automotive or services. In addition, there are all the sectors that deal directly with end customers, such as retail,*” says Xelera co-founder Andreas Duffner. That translates into a lot of potential work for the Xelera suite, which shows its strengths in areas such as Edge Computing and IoT applications. For example, the control of industrial robots often results in excessively high latencies. With the help of the Xelera accelerator, these delays can be significantly reduced. + +## The Challenge + +* Growing market demand for extremely powerful IT for a wide variety of applications +* Purchasing own FPGA cards for hardware acceleration extremely expensive and mostly not cost-effective +* Necessity of specialist knowledge for the use of FPGA +* Limited offer of ready-to-use FPGA solutions from the cloud + +### FPGA Flavors on Open Telekom Cloud + +Companies book Xelera's middleware as a service and operate it in their own data center – or in the [Open Telekom Cloud](https://open-telekom-cloud.com/en/products-services/elastic-cloud-server). To make the most of the potential of its middleware as an application accelerator, Xelera relies on the fp1c.2xlarge FPGA flavor and the e2.3xlarge large memory flavor from Deutsche Telekom's [Elastic Cloud Server offering](https://open-telekom-cloud.com/en/products-services/elastic-cloud-server). "*The capacities from the Open Telekom Cloud allow us to set up our accelerator quickly in the cloud and configure it according to the customer's application scenario, for example accelerating standard databases such as SAP,*" says Dr. Felix Winterstein. + +The Open Telekom Cloud was the start-up’s first choice due to its multi-certified and GDPR-compliant data centers in Germany. Xelera relies on Telekom's fast network for the connection and thus obtains the best possible connectivity with very low latencies for business-critical real-time applications. + +With its middleware, the start-up now accelerates processes in a wide range of areas – from market forecasts or risk calculations in the financial sector to real-time analysis of customer behavior in the retail sector and genome analyses in medicine. It’s a solution with great potential that doesn’t interest the start-up’s customers: Xelera recently qualified for [Deutsche Telekom's TechBoost start-up program](https://telekomhilft.telekom.de/t5/TechBoost-EN/ct-p/TechBoost_en). + +## The Solution + +* Xelera middleware with interface to the Open Telekom Cloud +* Use of FPGA flavors from the Elastic Cloud Server offering (fp1c.2xlarge as well as large memory flavor e2.3xlarge) +* Planned use of additional flavors and Object Based Storage (OBS) +* High level of data protection due to multiple certified data centers in Germany + +## About Xelera + +Field Programmable Gate Arrays (FPGAs) are [Xelera](https://xelera.io/)'s main focus: The start-up has developed middleware that shortens application computing times by up to a factor 100 – ideal for real-time analysis or the control of industrial robots. To do so, the Hesse-based company uses resources from the Open Telekom Cloud. diff --git a/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-production.md b/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-production.md new file mode 100644 index 000000000..bf1861651 --- /dev/null +++ b/docs/blueprints/by-industry/media/ufa-adopts-full-cloud-workflow-in-film-production.md @@ -0,0 +1,59 @@ +--- +id: ufa-adopts-full-cloud-workflow-in-film-productionpp +title: UFA Adopts Full-Cloud Workflow in Film Production +tags: [media, by-industry] +--- + +# UFA Adopts Full-Cloud Workflow in Film Production + +[UFA](#about-ufa-gmbh) opts for the Open Telekom Cloud. Delivery vans commuting by road to transport hard disks will soon be a thing of the past. + +What might at first seem trivial actually has a big impact: because the digitized distribution process not only saves UFA a lot of money, it also protects the environment. Previously, at the end of each day of shooting, courier services and production drivers transported the raw material on hard disks between locations all over Germany and the post-production facilities by road. "*These are tens of thousands of kilometers that we want to eliminate in the future with our new full-cloud workflow. It also increases overall efficiency and production speed,*" says Ernst Feiler, Technology Director at UFA, "*And that’s all without our employees having to change the way they work.*” + +That’s because, after every shoot, the crew plugs the storage media from the film cameras into a network-attached storage (NAS). Previously, the NAS was then picked up by a courier and taken to Potsdam. In the future, however, the NAS systems can simply stay put at locations with suitable connectivity – and transfer the data into the Open Telekom Cloud via the internet. + +## Long-Term Goal: Digitizing the Entire Value Chain + +The film industry is undergoing one of its biggest upheavals since the invention of color television. With more and more people consuming video content on the screens they carry around with them, the value chain is increasingly moving to where the audience is already: the cloud. It’s a development that UFA GmbH is well aware of: The German market leader in film and television production has already been digitizing its value chain for the past 10 years. + +The Potsdam-based company’s next step is to distribute raw material via the cloud. Film material that is shot at different locations during production – such as at outside locations or film studios located far away – is currently still transported to the relevant post-production sites by courier. In the future, some of that data will be automatically transferred directly to the Open Telekom Cloud via the internet. All those involved in the process, such as the editors who turn the material into finished clips, will then have access to it. + +## Lower Costs with Open Telekom Cloud + +Why doesn't UFA send the film material directly to the production headquarters via the internet? Quite simply because the company would then need their own storage capacities, which would not be freely scalable. That would involve having to purchase, store and maintain bulky IT hardware. In the Open Telekom Cloud, on the other hand, UFA will be using low-cost object-based storage (OBS) from now on. The data stored there can be classified at different levels: "cold" for occasional access over a year, "warm" for monthly data access and "standard" for more frequent access. The less frequent the access, the cheaper the storage. + +The full-cloud workflow is currently being tested as part of a proof of concept (PoC). In the long term, Technology Director Feiler plans to move the film production’s entire value chain to the cloud. "*Deutsche Telekom will certainly also be our partner for future cloud projects,*" says Feiler. "*Because we can expect reliable, fast and highly available technology from them. And, what's more, they are competent partners at eye level who reliably meet any legal requirements of the GDPR.*" + +## The Challenge + +* Previously, vans transported film material across Germany between the filming location, headquarters and archive. +* Although this was customary practice in the industry, it was slow and also caused high transport costs. +* For this reason, the entire workflow had to be digitized and automated without changing the employees’ workflow. + +## The Solution + +* A fully automated cloud workflow with S3-compatible object storage in the Open Telekom Cloud. +* Film crews transfer their footage to a network-attached storage (NAS) system. From there it is transferred to the cloud via the internet. +* For that, Deutsche Telekom relies on widely-used standards. This ensures low costs and less complexity compared to individual software and hardware. + +## Customer Benefits + +UFA: “Tens of thousands of kilometers saved thanks to the cloud” + +* Transports between filming locations, headquarters and archive are reduced. This saves time and money. +* Post-production teams have access to raw material from anywhere and can work with it directly. +* Finished video material is automatically archived in the cloud. +* UFA is currently testing the process in a proof of concept (PoC). + +## About UFA GmbH + +[UFA](http://www.ufa.de/) is one of the best-known entertainment brands in the world and market leader in film and television production in Germany. Founded more than 100 years ago, UFA has developed into a comprehensive content specialist providing digital and multimedia content – to all major German broadcasters and other partners. + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/ufa). +* [Download](https://www.t-systems.com/resource/blob/138216/45bc1b68b95db72e1b9e094872e068e9/DL-Flyer-Success-Story-UFA-T-Systems-en-05-2020.pdf) our reference flyer. + +::: diff --git a/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud.md b/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud.md new file mode 100644 index 000000000..e96973f3e --- /dev/null +++ b/docs/blueprints/by-industry/retail/brodos-open-telekom-cloud.md @@ -0,0 +1,59 @@ +--- +id: brodos-open-telekom-cloud +title: Omnichannel Platform by brodos.net +tags: [retail, omnichannel, by-industry] +--- + +# Omnichannel Platform by brodos.net + +With the help of resources from the Open Telekom Cloud, [brodos.net](#about-brodosnet) is now in a position to meet every customer request spontaneously, because the container-based platform can now be scaled spontaneously in a matter of minutes. According to the company, brodos.net was able to increase the performance of its systems by around 40 percent. The availability of the Open Telekom Cloud is 99.95 percent. + +“*The most important criterion for us, however, is the trust that both we and our customers have in the platform,*” says Managing Director Udo Latino. “*We process sensitive customer data. It is therefore essential for us to use an IT platform that leaves no questions unanswered. With Telekom's public cloud solution, we are on the safe side in every respect.*” + +As a result, brodos.net is now prepared for any growth. The omnichannel platform is increasingly establishing itself on the market. More than 1,000 customers from various industries such as telecommunications, fashion, furniture, bikes and electronics are currently using brodos.net to access the omnichannel platform from the Open Telekom Cloud. “*Next, we will expand our platform to other industries and then, in a second step, to other European markets,*“ says Dingermann. “*With the scalable cloud resources we use, nothing stands in the way of further expansion.*” + +## Customer Benefits + +* 40 percent increase in computing performance +* 99.95 percent availability of cloud resources +* Simple, fast and efficient provision of containers +* Considerable trust of brodos.net customers thanks to the highest level of security +* Scalability creates the necessary basis for conquering new industries and markets + +## The Goal: Attract Customers from All Channels + +What are the three most important technology trends in retail? Artificial intelligence (69 percent), the cloud (34 percent) – and omnichannel (30 percent). This is at least the opinion of IT decision-makers from 90 retail companies in German-speaking countries, who were surveyed on the subject by the EHI Retail Institute at the beginning of 2019. “*In the future it will become increasingly important for companies to address customers on all channels in the right tone, with the right products and the right service,*” says Udo Latino, Managing Director of brodos.net. The company has developed a platform to help local retailers achieve exactly this. + +brodos.net is acutely aware of the growing need for these kinds of solutions: The demand for the platform has recently increased so much that the provider wanted to expand its IT with flexibly scalable resources. + +## The Challenge + +* Delivery of the solution from on-premises IT resources +* Potential for higher growth of the omnichannel platform should be increased +* Looking for a flexible, scalable cloud solution that allows developers to work with docker containers +* Highest standards of data security and data protection due to sensitive customer data + +### More Scope for Growth + +brodos.net initially operated the omnichannel platform exclusively in its own private data center to ensure maximum IT security and data protection. In order to meet the growing demand, brodos.net was looking for a way to be more flexible. “W*e wanted to expand our IT so that it could adapt flexibly and spontaneously to business development at any time without compromising security,*” said Felix Dingermann, Managing Director of Business Development at brodos.net. + +That's why the Bavarian company was looking for a cloud provider that could provide IT resources at the highest level of security and data protection. They found this at Telekom: brodos.net now hosts its omnichannel platform in the Open Telekom Cloud, Telekom's public cloud offering. For this purpose, the company uses virtual machines in the Elastic Cloud Server (ECS) category, the Relational Database Service (RDS), Object Storage Service (OBS) and the Elastic Load Balancer (ELB). For the further development of the platform, the software experts at brodos.net also rely on the container framework of the Open Telekom Cloud – the Cloud Container Engine. “*This is simply a question of convenience and efficiency,*” says Felix Dingermann. “*We could certainly have implemented our own container framework. But that would have taken a lot of effort.*” + +## The Solution + +* Hosting of the omnichannel platform in the Open Telekom Cloud from highly secure German data centers in Biere and Magdeburg +* Use of Elastic Cloud Server (ECS), Relational Database Service (RDS), Object Storage Service (OBS) and Elastic Load Balancer (ELB) +* Developers rely on Cloud Container Engine (CCE) + +## About brodos.net + +[brodos.net](https://brodos.net/omnichannel/) helps local retailers with digitalization: The company offers an omnichannel platform with a solution for every touchpoint – from editable online shops to e-mail marketing tools to digital store shelves. In the future, the company plans to offer its platform not only in German-speaking countries, but throughout Europe. + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/brodos-open-telekom-cloud). +* [Download](https://www.t-systems.com/resource/blob/148928/807c50e64dcfc1a6d8f81d86818f0892/DL-Flyer-Brodos-T-Systems-EN-05-2020.pdf) our reference flyer. + +::: \ No newline at end of file diff --git a/docs/blueprints/by-industry/telecoms/_category_.json b/docs/blueprints/by-industry/telecoms/_category_.json new file mode 100644 index 000000000..040da3984 --- /dev/null +++ b/docs/blueprints/by-industry/telecoms/_category_.json @@ -0,0 +1,7 @@ +{ + "label": "Telecommunications", + "link": { + "type": "doc", + "id": "Telecommunications" + } +} \ No newline at end of file diff --git a/docs/blueprints/by-industry/telecoms/fiber-factory.md b/docs/blueprints/by-industry/telecoms/fiber-factory.md new file mode 100644 index 000000000..cee78e2bf --- /dev/null +++ b/docs/blueprints/by-industry/telecoms/fiber-factory.md @@ -0,0 +1,58 @@ +--- +id: fiber-factory +title: "Fiber-Factory: Accelerated Grid Expansion" +tags: [telecommunications, by-industry] +--- + +# Fiber-Factory: Accelerated Grid Expansion + +More than 33 million households in Germany can access speeds of over 50 MBit/s, thanks to Telekom's fiber optic expansion. This enables people to work from home, streaming, and business line connectivity. Now Telekom is planning to expand the network for up to two million more households each year starting in 2021. This involved extensive construction measures. In order to plan these more efficiently, secure resources from the Open Telekom Cloud are providing support. + +## Benefits for the Customer + +* Faster calculation of potential routes for fiber optic expansion with time savings of up to 75 percent +* Automation of the entire planning process +* Greater transparency around the duration and costs of the expansion +* Nationwide standardized procedure +* Accelerated authorization procedures + +### High Degree of Automation + +Several thousand planners from Fiber Factory, a division of Deutsche Telekom Technik GmbH, are responsible for the planning of up to two million new fiber optic connections nationwide per year. Until now, planning required a lot of time and manual effort, and was therefore prone to errors. Deutsche Telekom Technik GmbH was looking for a highly automated and standardized solution for efficient, cost-effective planning. "*Our ambitious schedule calls for us to bring 15 times more fiber to the home connections online each year than we have in the past. This cannot be achieved without automated processes,*" says Niko Gitzen, Senior Expert at Fiber Factory. + +### AI-Based Process Optimizes Calculation + +In order to position new routes in an optimal fashion, DT Technik GmbH works with a geodata infrastructure (GDI) that incorporates data from cadastres, aerial photographs and images of the expansion area from the T-Surface Car. The customer can flexibly use IT resources from the Open Telekom Cloud for the operation of the GDI, the processing of the large volumes of data and the rapid creation of new expansion plans. "*We operate our geodata infrastructure in Deutsche Telekom's public cloud solution. We prepare and process all the data collected from the T-Surface Cars and link it to other information there. The results form the basis for the planning process of the fiber optic expansion,*" says Tobias Frechen, System Architect at Deutsche Telekom IT GmbH. + +## The Challenge + +* A manual approach and inconsistent planning standards for laying fiber optic networks meant a great deal of effort and high costs +* Geodata infrastructure (GDI) is set to automate planning in conjunction with artificial intelligence (AI) +* Secure storage and ultra-rapid analysis of geodata such as aerial photographs, point clouds from laser scanners and images from digital cameras +* Capacity constraints: storing and processing the large volumes of data in the company's data center would be too cost-intensive + +## The Solution + +* Automation of the planning process using the Open Telekom Cloud +* GDPR-compliant data processing and storage +* Dynamic usage thanks to the pay-as-you-go model + +### Automated Planning Made Easy + +The T-Surface Car collects photos and 3D point clouds of up to 500 gigabytes for each expansion area, which are uploaded to a bucket of the Object Storage Service (OBS) in the Open Telekom Cloud. An artificial neural network (ANN) from Fraunhofer IPM is used to evaluate the survey vehicle's data, and classifies it according to 30 surface and object types. In order to classify them, DT Technik GmbH scales horizontally with twenty GPU VMs in the Open Telekom Cloud. In the process, Fraunhofer IPM has already trained the ANN with over 90,000 photos and it can thus be used as a docker container in the planning process. This enables more efficient use of system resources. + +In addition to the information from the T-Surface Car, the Open Telekom Cloud also contains cadastral data, information about Telekom networks already installed in the expansion area, and images from the European Space Agency's (ESA) Sentinel earth observation satellites. They are used to calculate the exact surface structure of the expansion area. A process that is automated in the Open Telekom Cloud using multiple graphics processing units (GPUs). The resulting two-dimensional images show how and where fiber optic routes can best be laid. + +### Three Times as Fast, Thanks to Open Telekom Cloud + +Planners have been actively working with the cloud solution since 2020. Expansion costs can be calculated much more accurately and quickly with the AI-based process in the Open Telekom Cloud. Automation enables planning times to be reduced by up to 75 percent. New routes are calculated automatically, and the planners can work more quickly, move virtually through the roads themselves using 2D or 3D models and take measurements. For example, whether a sidewalk is wide enough for a power distribution box. "*This site protection has to be approved by the local authorities. For this, a form is automatically created in the GDI,*" says Tobias Frechen. This way, all documents for fiber optic expansion can be made available to the municipalities digitally in the future. + + +## See Also + +:::info Additional Information + +* Read the whole success story [here](https://www.t-systems.com/de/en/success-stories/cloud-and-infrastructure/fiber-factory). +* [Download](https://www.t-systems.com/resource/blob/388280/00f912430705e453e79081c2bc3d5ff1/DL-Flyer-FTTH-Factory-T-Systems-EN-01-2021.pdf) our reference flyer. + +::: diff --git a/docs/blueprints/by-industry/telecoms/index.md b/docs/blueprints/by-industry/telecoms/index.md new file mode 100644 index 000000000..80043aa19 --- /dev/null +++ b/docs/blueprints/by-industry/telecoms/index.md @@ -0,0 +1,13 @@ +--- +id: Telecommunications +title: Telecommunications +--- + +# Telecommunications + +The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting +appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic +workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal +utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects +and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications +in the Open Telekom Cloud environment. diff --git a/docs/blueprints/by-use-case/analytics/index.md b/docs/blueprints/by-use-case/analytics/index.md index a7d875630..8fa206111 100644 --- a/docs/blueprints/by-use-case/analytics/index.md +++ b/docs/blueprints/by-use-case/analytics/index.md @@ -5,9 +5,4 @@ title: Analytics # Analytics -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for designing, deploying, and managing scalable analytics solutions on Open Telekom Cloud. Topics include data ingestion, transformation, and storage; real-time and batch processing architectures; tools for data visualization and business intelligence; and leveraging machine learning for predictive analytics. Here are also provided architectural patterns, case studies, and reference implementations to help organizations derive actionable insights from their data while ensuring security, cost-efficiency, and performance. diff --git a/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce.md b/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce.md index 2ce1e7d4d..d0e28f7ac 100644 --- a/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce.md +++ b/docs/blueprints/by-use-case/analytics/umami/deploy-umami-cce.md @@ -1,7 +1,7 @@ --- id: deploy-umami-cce title: Deploy Umami on CCE -tags: [umami, analytics, web-analytics, cce, postgresql, zalando-postgres-operator] +tags: [umami, analytics, cce, postgresql, zalando-postgres-operator] --- # Deploy Umami on CCE diff --git a/docs/blueprints/by-use-case/analytics/umami/overview.md b/docs/blueprints/by-use-case/analytics/umami/overview.md index e3112cbe5..99b7350a7 100644 --- a/docs/blueprints/by-use-case/analytics/umami/overview.md +++ b/docs/blueprints/by-use-case/analytics/umami/overview.md @@ -1,7 +1,7 @@ --- id: umami title: Umami -tags: [umami, analytics, web-analytics, gdpr] +tags: [umami, analytics, gdpr] --- # Umami diff --git a/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs.md b/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs.md index 6a0801cf8..9b0a77e4f 100644 --- a/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs.md +++ b/docs/blueprints/by-use-case/analytics/umami/using-rds-postgresql-to-setup-umami-on-ecs.md @@ -1,7 +1,7 @@ --- id: using-rds-postgresql-to-setup-umami-on-ecs title: Using RDS for PostgreSQL to Set Up Umami on ECS -tags: [umami, analytics, web-analytics, ecs, rds, postgresql] +tags: [umami, analytics, ecs, rds, postgresql] --- # Using RDS for PostgreSQL to Set Up Umami on ECS diff --git a/docs/blueprints/by-use-case/computing/index.md b/docs/blueprints/by-use-case/computing/index.md index d40bf7214..f928d443a 100644 --- a/docs/blueprints/by-use-case/computing/index.md +++ b/docs/blueprints/by-use-case/computing/index.md @@ -5,9 +5,4 @@ title: Computing # Computing -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for building and managing computing solutions on Open Telekom Cloud. Topics include virtual machines, containerization, serverless computing, and high-performance computing architectures. Here are also provided recommendations for workload optimization, auto-scaling, and cost management, enabling organizations to efficiently handle diverse computing demands while maintaining reliability, security, and scalability. \ No newline at end of file diff --git a/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce.md b/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce.md index 6295eac83..56e3061e6 100644 --- a/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce.md +++ b/docs/blueprints/by-use-case/devops/ci-devtron-swr-cce.md @@ -1,7 +1,7 @@ --- id: ci-devtron-swr-cce title: Build a CI/CD Pipeline with Devtron, SWR and CCE -tags: [devops, ci, cd, ci-cd, devtron, swr, cce] +tags: [devops, ci, cd, cicd, devtron, swr, cce] --- # Build a CI/CD Pipeline with Devtron, SWR and CCE diff --git a/docs/blueprints/by-use-case/devops/crossplane/_category_.json b/docs/blueprints/by-use-case/devops/crossplane/_category_.json deleted file mode 100644 index aeb14756d..000000000 --- a/docs/blueprints/by-use-case/devops/crossplane/_category_.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "label": "Crossplane", - "link": { - "type": "doc", - "id": "crossplane" - } -} \ No newline at end of file diff --git a/docs/blueprints/by-use-case/devops/crossplane/overview.md b/docs/blueprints/by-use-case/devops/crossplane/overview.md deleted file mode 100644 index 4a6a2ae25..000000000 --- a/docs/blueprints/by-use-case/devops/crossplane/overview.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -id: crossplane -title: Crossplane -tags: [crossplane, devops, platform-engineering, cce, infrastructure] ---- - -# Crossplane - -[Crossplane](https://www.crossplane.io/) is an open-source Kubernetes add-on that extends Kubernetes' functionality by enabling it to manage infrastructure resources. It allows Kubernetes to serve as a control plane for provisioning and managing infrastructure such as databases, cloud services, and other external systems, similar to how it manages containerized applications. - -## Overview - -### Key Features - -1. **Infrastructure as Code**: Crossplane allows users to define and manage infrastructure using Kubernetes-native declarative configurations (YAML files), promoting consistency and version control. - -2. **Composability**: Crossplane enables users to create reusable infrastructure components, which can be composed into higher-level abstractions. This makes it easier to manage complex infrastructure setups. - -3. **Extensibility**: It supports a wide range of cloud providers (like AWS, GCP, Azure & Open Telekom Cloud) and on-premises environments. Users can extend Crossplane by writing their own custom resource definitions (CRDs) and controllers. - -4. **Seamless Integration**: By integrating with Kubernetes, Crossplane leverages Kubernetes' existing ecosystem, including its API, RBAC, and ecosystem tools, to provide a unified management interface. - -5. **Cross-Provider Portability**: Crossplane abstracts the underlying infrastructure provider details, allowing for easier migration and multi-cloud strategies. It offers a consistent API regardless of the provider. - -### How Crossplane Works - -- **Custom Resource Definitions (CRDs)**: Crossplane defines CRDs for various infrastructure resources (like databases, storage, networking, etc.). These CRDs extend Kubernetes' API to manage non-container resources. - -- **Controllers**: Crossplane controllers watch for changes to these CRDs and take actions to ensure that the current state matches the desired state, provisioning and managing resources as needed. - -- **Providers**: Crossplane uses providers to interact with specific cloud services or infrastructure resources. Providers encapsulate the logic for managing resources on different platforms. - -### Use Cases - -- **Cloud Resource Management**: Provision and manage cloud resources such as databases, virtual machines, and networking components using Kubernetes-native tools. -- **Hybrid Cloud Deployments**: Manage resources across multiple clouds and on-premises environments from a single control plane. -- **DevOps Automation**: Automate the lifecycle management of infrastructure alongside application deployment processes. - -Crossplane essentially brings the principles of Kubernetes orchestration to infrastructure management, enabling a more unified and streamlined approach to handling both application and infrastructure resources within the same ecosystem. - -:::note -You can read more in the official [Crossplane Documentation](https://docs.crossplane.io/v1.16/). -::: - -## Installing Crossplane - -:::note -In order to execute the rest of the blueprint, an existing CCE Cluster is necessary. -::: - -We are going to install Crossplane using the official Helm chart: - -```bash -helm repo add crossplane-stable https://charts.crossplane.io/stable -helm repo update - -helm install crossplane \ ---namespace crossplane-system \ ---create-namespace crossplane-stable/crossplane -``` - -After installing, the Helm chart will create two deployments in the `crossplane-system` namespace to deploy the Crossplane pods: - -```shell -kubectl get deployments -n crossplane-system - -NAME READY UP-TO-DATE AVAILABLE AGE -crossplane 1/1 1 1 8m13s -crossplane-rbac-manager 1/1 1 1 8m13s -``` - -## Installing Open Telekom Cloud Crossplane Provider - -Open Telekom Cloud comes with its own Crossplane provider ([provider-opentelekomcloud](https://github.com/opentelekomcloud/provider-opentelekomcloud)) that is built using [Upjet](https://github.com/crossplane/upjet) code generation tools and exposes XRM-conformant managed resources for the Open Telekom Cloud API. - -Deploy with `kubectl apply -f` the following manifests: - -1. Installing the Provider - - ```yaml title="provider.yaml" - apiVersion: pkg.crossplane.io/v1 - kind: Provider - metadata: - name: provider-opentelekomcloud - spec: - package: xpkg.upbound.io/opentelekomcloud/provider-opentelekomcloud:v0.1.0 - ``` - -2. Installing the Provider Credentials - - Pass the Open Telekom Cloud credentials as a Kubernetes `Secret`: - - ```yaml title="provider-creds.yaml" - apiVersion: v1 - kind: Secret - metadata: - name: provider-opentelekomcloud-creds - namespace: crossplane-system - type: Opaque - stringData: - credentials: | - { - "user_name": "${user_name}", - "password": "${password}", - "auth_url": "https://iam.eu-de.otc.t-systems.com/v3", - "domain_name": "OTC00000000001000XXXXX", - "tenant_name": "${tenant_name}", - "swauth": "false", - "allow_reauth": "true", - "max_retries": "2", - "max_backoff_retries": "6", - "backoff_retry_timeout": "60", - "insecure": "false" - } - ``` - - :::note - Fill in `user_name`, `password`, `domain_name` and `tenant_name` with your organization's values. - ::: - -3. Installing the Provider Configuration - - ```yaml title="provider-config.yaml" - apiVersion: opentelekomcloud.crossplane.io/v1beta1 - kind: ProviderConfig - metadata: - name: default - spec: - credentials: - source: Secret - secretRef: - name: provider-opentelekomcloud-creds - namespace: crossplane-system - key: credentials - ``` - -:::note -After a couple of minutes the `Provider` will deploy the necessary `Pod`s and `CRD`s of the Crossplane Provider for Open Telekom Cloud. -::: diff --git a/docs/blueprints/by-use-case/devops/index.md b/docs/blueprints/by-use-case/devops/index.md index 806edc2fb..818e9b1ea 100644 --- a/docs/blueprints/by-use-case/devops/index.md +++ b/docs/blueprints/by-use-case/devops/index.md @@ -5,9 +5,4 @@ title: DevOps # DevOps -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for implementing DevOps methodologies on Open Telekom Cloud. Topics include CI/CD pipelines, infrastructure as code, container orchestration, and monitoring tools. Here are also provided strategies for automating workflows, improving collaboration between development and operations teams, and optimizing deployment processes to achieve faster delivery cycles and maintain high-quality software. diff --git a/docs/blueprints/by-use-case/hybrid/_category_.json b/docs/blueprints/by-use-case/hybrid/_category_.json index ef822871d..112995aa9 100644 --- a/docs/blueprints/by-use-case/hybrid/_category_.json +++ b/docs/blueprints/by-use-case/hybrid/_category_.json @@ -1,7 +1,7 @@ { - "label": "Hybrid", + "label": "Hybrid & MultiCloud", "link": { "type": "doc", - "id": "Hybrid" + "id": "HybridAndMultiCloud" } } \ No newline at end of file diff --git a/docs/blueprints/by-use-case/hybrid/index.md b/docs/blueprints/by-use-case/hybrid/index.md index 3c4107bd8..2cb16e2c3 100644 --- a/docs/blueprints/by-use-case/hybrid/index.md +++ b/docs/blueprints/by-use-case/hybrid/index.md @@ -1,13 +1,8 @@ --- -id: Hybrid -title: Hybrid +id: HybridAndMultiCloud +title: Hybrid & MultiCloud --- -# Hybrid +# Hybrid & MultiCloud -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for designing and managing hybrid and multicloud solutions on Open Telekom Cloud. Topics include integration across on-premises, Open Telekom Cloud, and other cloud providers; workload distribution; data synchronization; and cross-cloud governance. Here are also provided architectural patterns, tools, and strategies to help organizations achieve flexibility, scalability, and resilience while maintaining security and compliance across diverse cloud environments. diff --git a/docs/blueprints/by-use-case/index.md b/docs/blueprints/by-use-case/index.md index b296a8b31..af8b52c5d 100644 --- a/docs/blueprints/by-use-case/index.md +++ b/docs/blueprints/by-use-case/index.md @@ -6,10 +6,6 @@ sidebar_position: 2 # By Use Case -Welcome to the Open Telekom Cloud Architecture Center Best Practices. -Here we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that -enhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as -efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance -to ensure robust system performance. This section serves as a valuable resource for architects and developers -to implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud -infrastructure. +Here you can find guidance for implementing solutions on Open Telekom Cloud based on a wide range of use cases. Topics include containerized applications and orchestration with tools like Kubernetes, microservices architectures for building scalable and resilient systems, and DevOps practices for automating workflows and streamlining collaboration between development and operations teams. + +Additional topics cover disaster recovery strategies to ensure business continuity, big data processing for handling large-scale data analysis, AI and machine learning workloads for building intelligent applications, high-performance computing for resource-intensive tasks, serverless architectures for event-driven computing, and automation to optimize resource management and deployment processes. Here are also provided reference architectures, step-by-step guides, and real-world case studies to help organizations efficiently design, deploy, and scale cloud solutions tailored to their unique operational needs and business objectives. diff --git a/docs/blueprints/by-use-case/migration/index.md b/docs/blueprints/by-use-case/migration/index.md index d32ecb53e..d8cfb9ad8 100644 --- a/docs/blueprints/by-use-case/migration/index.md +++ b/docs/blueprints/by-use-case/migration/index.md @@ -5,9 +5,4 @@ title: Migration # Migration -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for planning and executing migrations to Open Telekom Cloud. Topics include migration strategies, tools for workload and data transfer, application modernization, and minimizing downtime during transitions. Here are also provided step-by-step approaches, case studies, and recommendations to ensure a smooth migration process while maintaining security, performance, and cost efficiency. diff --git a/docs/blueprints/by-use-case/networking/index.md b/docs/blueprints/by-use-case/networking/index.md index 7533cccd6..c88af8ef4 100644 --- a/docs/blueprints/by-use-case/networking/index.md +++ b/docs/blueprints/by-use-case/networking/index.md @@ -5,9 +5,4 @@ title: Networking # Networking -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for designing and managing networking solutions on Open Telekom Cloud. Topics include network architecture, virtual private clouds (VPCs), load balancing, VPNs, and network security. Here are also provided strategies for optimizing network performance, ensuring high availability, and implementing secure and scalable connectivity across different cloud environments. diff --git a/docs/blueprints/by-use-case/observability/index.md b/docs/blueprints/by-use-case/observability/index.md index 71365a9b9..3dd979ba7 100644 --- a/docs/blueprints/by-use-case/observability/index.md +++ b/docs/blueprints/by-use-case/observability/index.md @@ -5,9 +5,4 @@ title: Observability # Observability -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for implementing observability solutions on Open Telekom Cloud. Topics include monitoring, logging, tracing, and metrics collection for cloud-native applications and infrastructure. Here are also provided strategies and tools for gaining deep insights into system performance, detecting anomalies, ensuring operational efficiency, and maintaining high availability across environments. diff --git a/docs/blueprints/by-use-case/security/authentik/3_authentik-as-identity-provider-iam.md b/docs/blueprints/by-use-case/security/authentik/3_authentik-as-identity-provider-iam.md index 2246c41c3..1603f07bc 100644 --- a/docs/blueprints/by-use-case/security/authentik/3_authentik-as-identity-provider-iam.md +++ b/docs/blueprints/by-use-case/security/authentik/3_authentik-as-identity-provider-iam.md @@ -3,7 +3,7 @@ id: authentik-as-identity-provider-iam title: Authentik as an Identity Provider for IAM tags: [security, oauth2, iam, authentik] --- -# Connecting Authentik with IAM for Login +# Authentik as an Identity Provider for IAM This guide will walk you through the process of integrating authentik, with Identity and Access Management (IAM) of Open Telekom Cloud using OAuth 2.0. diff --git a/docs/blueprints/by-use-case/security/cce-vault.md b/docs/blueprints/by-use-case/security/cce-vault.md index 0bf986ff4..23d1d8170 100644 --- a/docs/blueprints/by-use-case/security/cce-vault.md +++ b/docs/blueprints/by-use-case/security/cce-vault.md @@ -1,7 +1,7 @@ --- id: cce-vault title: Secrets management with CCE and Hashicorp Vault -tags: [cce, vault, hashicorp, security] +tags: [cce, vault, hashicorp, secrets] --- # Secrets management with CCE and Hashicorp Vault diff --git a/docs/blueprints/by-use-case/security/index.md b/docs/blueprints/by-use-case/security/index.md index 05009c618..f14f7ccab 100644 --- a/docs/blueprints/by-use-case/security/index.md +++ b/docs/blueprints/by-use-case/security/index.md @@ -5,9 +5,4 @@ title: Security # Security -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for implementing robust security solutions on Open Telekom Cloud. Topics include identity and access management, data encryption, network security, and compliance frameworks. Here are also provided strategies for safeguarding applications, securing workloads, and ensuring regulatory compliance, all while maintaining a strong security posture across cloud environments. diff --git a/docs/blueprints/by-use-case/security/keycloak/cce-keycloak.md b/docs/blueprints/by-use-case/security/keycloak/cce-keycloak.md index ad0231fc6..6c097e4f1 100644 --- a/docs/blueprints/by-use-case/security/keycloak/cce-keycloak.md +++ b/docs/blueprints/by-use-case/security/keycloak/cce-keycloak.md @@ -1,7 +1,7 @@ --- id: cce-keycloak title: Deploy Keycloak on CCE -tags: [cce, keycloak, security, rds, postgresql, ingress, nginx-ngress, externaldns, dns] +tags: [cce, keycloak, security, rds, postgresql, ingress, nginx-ingress, externaldns, dns] --- # Deploy Keycloak on CCE diff --git a/docs/blueprints/by-use-case/storage/index.md b/docs/blueprints/by-use-case/storage/index.md index d3a2897ff..f1a538624 100644 --- a/docs/blueprints/by-use-case/storage/index.md +++ b/docs/blueprints/by-use-case/storage/index.md @@ -5,9 +5,4 @@ title: Storage # Storage -The Computing section offers essential insights for optimizing computing resources. Discover guidelines for selecting -appropriate instance types, managing virtual machines efficiently, and leveraging auto-scaling capabilities for dynamic -workloads. Learn best practices for designing resilient and high-performance computing architectures, ensuring optimal -utilization of resources while maintaining cost-effectiveness. This section serves as a comprehensive guide for architects -and developers to fine-tune their computing strategies, enhancing the overall efficiency and reliability of applications -in the Open Telekom Cloud environment. +In this category, you can find guidance for designing and managing storage solutions on Open Telekom Cloud. Topics include block storage, object storage, file storage, and data backup strategies. Here are also provided recommendations for optimizing storage performance, ensuring data durability, and implementing cost-efficient storage architectures that meet the needs of various workloads. diff --git a/docs/blueprints/index.md b/docs/blueprints/index.md index f6fc4bf2e..b22d500b2 100644 --- a/docs/blueprints/index.md +++ b/docs/blueprints/index.md @@ -6,10 +6,6 @@ sidebar_position: 1 # Blueprints -Welcome to the Open Telekom Cloud Architecture Center Best Practices. -Here we provide crucial guidelines for optimizing cloud-based solutions with emphasis to architectural principles that -enhance reliability, scalability, and security. Explore our recommended strategies for resource management, such as -efficient utilization of compute and storage resources. Gain insights into designing for high availability and fault tolerance -to ensure robust system performance. This section serves as a valuable resource for architects and developers -to implement cloud solutions that align with industry best practices and maximize the benefits of the public cloud -infrastructure. +Welcome to the Open Telekom Cloud Architecture Center Best Practices. This section offers comprehensive guidance for designing and implementing cloud solutions tailored to various use cases and industries. Here you can find pre-built architectures and reference models for a wide range of scenarios, such as disaster recovery, big data processing, AI/ML workloads, microservices, DevOps, and automation. These blueprints provide organizations with step-by-step guides, architectural patterns, and real-world case studies, helping them quickly deploy cloud solutions that address specific operational needs and optimize workflows while ensuring scalability, security, and cost-efficiency. + +Additionally, *Blueprints* are organized into two key areas: "Blueprints by Use Cases" and "Blueprints by Industry." The former focuses on general-purpose solutions that address common business and technical challenges, while the latter provides industry-specific architectures that meet the unique regulatory and operational requirements of sectors such as aerospace, finance, government, healthcare, and telecommunications. By leveraging these blueprints, organizations can accelerate their cloud adoption, improve operational efficiency, and ensure their solutions are optimized for performance, security, and compliance across diverse environments. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 3dff3850f..a35b6fc70 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -40,7 +40,7 @@ const config: Config = { // showLastUpdateAuthor: true, // showLastUpdateTime: true, breadcrumbs: true, - exclude: ['**/by-industry/**', '**/caf/**', '**/crossplane/**'] + // exclude: ['**/by-industry/**', '**/caf/**', '**/crossplane/**'] }, theme: { @@ -165,10 +165,10 @@ const config: Config = { label: 'Webinars', href: 'https://www.youtube.com/watch?v=U-x2gEy3968&list=PLS60dhorR-hgQ5n5L1boEQh0oVD-_k75p', }, - { - label: 'Medium', - href: 'https://medium.com', - }, + // { + // label: 'Medium', + // href: 'https://medium.com', + // }, ], }, { @@ -218,7 +218,7 @@ const config: Config = { ], }, ], - copyright: `© T-Systems International GmbH ${new Date().getFullYear()} (v` + process.env.REACT_APP_VERSION + `)`, + copyright: `© T-Systems International GmbH ${new Date().getFullYear()} (` + process.env.REACT_APP_VERSION + `)`, }, prism: { theme: prismThemes.oneDark, diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 000000000..1c7bad2a6 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,17 @@ +import globals from "globals"; +import tseslint from "typescript-eslint"; +import pluginReact from "eslint-plugin-react"; + + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + { + files: ["**/*.{js,mjs,cjs,ts,jsx,tsx}"], + languageOptions: { globals: globals.browser }, + }, + { + ignores: [".docusaurus/*"], + }, + ...tseslint.configs.recommended, + pluginReact.configs.flat["jsx-runtime"], +]; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index bb18e6eac..8e95bbdb2 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,10 @@ "@docusaurus/module-type-aliases": "^3.4.0", "@docusaurus/tsconfig": "^3.4.0", "@docusaurus/types": "^3.4.0", + "@typescript-eslint/eslint-plugin": "^8.13.0", + "@typescript-eslint/parser": "^8.13.0", + "eslint": "^9.14.0", + "eslint-plugin-react": "^7.37.2", "typescript": "~5.5.2" }, "engines": { @@ -2746,6 +2750,143 @@ "npm": ">= 6.14.0" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "devOptional": true, + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "devOptional": true, + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz", + "integrity": "sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==", + "devOptional": true, + "dependencies": { + "@eslint/object-schema": "^2.1.4", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz", + "integrity": "sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==", + "devOptional": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz", + "integrity": "sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==", + "devOptional": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "devOptional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "devOptional": true, + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "devOptional": true + }, + "node_modules/@eslint/js": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz", + "integrity": "sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==", + "devOptional": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz", + "integrity": "sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==", + "devOptional": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz", + "integrity": "sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw==", + "devOptional": true, + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@floating-ui/core": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz", @@ -2781,6 +2922,67 @@ "@hapi/hoek": "^9.0.0" } }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "devOptional": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "devOptional": true, + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "devOptional": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "devOptional": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "devOptional": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, "node_modules/@jest/schemas": { "version": "29.6.3", "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", @@ -3395,9 +3597,9 @@ } }, "node_modules/@types/estree": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", - "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==" }, "node_modules/@types/estree-jsx": { "version": "1.0.5", @@ -3672,6 +3874,212 @@ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz", "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==" }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz", + "integrity": "sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg==", + "dev": true, + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/type-utils": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz", + "integrity": "sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz", + "integrity": "sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz", + "integrity": "sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "8.13.0", + "@typescript-eslint/utils": "8.13.0", + "debug": "^4.3.4", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz", + "integrity": "sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng==", + "dev": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz", + "integrity": "sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/visitor-keys": "8.13.0", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz", + "integrity": "sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ==", + "dev": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.13.0", + "@typescript-eslint/types": "8.13.0", + "@typescript-eslint/typescript-estree": "8.13.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz", + "integrity": "sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "8.13.0", + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/structured-clone": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", @@ -3850,9 +4258,9 @@ } }, "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "bin": { "acorn": "bin/acorn" }, @@ -4060,11 +4468,47 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, + "node_modules/array-includes": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", + "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -4073,25 +4517,119 @@ "node": ">=8" } }, - "node_modules/astring": { - "version": "1.8.6", - "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", - "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", - "bin": { - "astring": "bin/astring" + "node_modules/array.prototype.findlast": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz", + "integrity": "sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/at-least-node": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", - "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "node_modules/array.prototype.flat": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", + "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, "engines": { - "node": ">= 4.0.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.flatmap": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", + "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array.prototype.tosorted": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz", + "integrity": "sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-shim-unscopables": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/astring": { + "version": "1.8.6", + "resolved": "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz", + "integrity": "sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg==", + "bin": { + "astring": "bin/astring" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "engines": { + "node": ">= 4.0.0" } }, "node_modules/autoprefixer": { @@ -4130,6 +4668,21 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/axios": { "version": "1.7.2", "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", @@ -5399,6 +5952,57 @@ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" }, + "node_modules/data-view-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", + "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", + "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/data-view-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", + "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/debounce": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz", @@ -5465,6 +6069,12 @@ "node": ">=4.0.0" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "devOptional": true + }, "node_modules/deepmerge": { "version": "4.3.1", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", @@ -5667,6 +6277,18 @@ "node": ">=6" } }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/docusaurus-theme-search-typesense": { "version": "0.20.0", "resolved": "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.20.0.tgz", @@ -5843,109 +6465,551 @@ "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", "engines": { - "node": ">= 4" + "node": ">= 4" + } + }, + "node_modules/emoticon": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", + "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.16.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", + "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-abstract": { + "version": "1.23.3", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz", + "integrity": "sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "data-view-buffer": "^1.0.1", + "data-view-byte-length": "^1.0.1", + "data-view-byte-offset": "^1.0.0", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "es-set-tostringtag": "^2.0.3", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "hasown": "^2.0.2", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", + "is-callable": "^1.2.7", + "is-data-view": "^1.0.1", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.3", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", + "is-weakref": "^1.0.2", + "object-inspect": "^1.13.1", + "object-keys": "^1.1.1", + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.2", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.9", + "string.prototype.trimend": "^1.0.8", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.6", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-iterator-helpers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", + "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.3", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.4", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "iterator.prototype": "^1.1.3", + "safe-array-concat": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-module-lexer": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", + "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + }, + "node_modules/es-object-atoms": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz", + "integrity": "sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-shim-unscopables": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", + "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "dev": true, + "dependencies": { + "hasown": "^2.0.0" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-goat": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", + "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "9.14.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.14.0.tgz", + "integrity": "sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==", + "devOptional": true, + "dependencies": { + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.18.0", + "@eslint/core": "^0.7.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "9.14.0", + "@eslint/plugin-kit": "^0.2.0", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.0", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.3", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-react": { + "version": "7.37.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", + "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.8", + "array.prototype.findlast": "^1.2.5", + "array.prototype.flatmap": "^1.3.2", + "array.prototype.tosorted": "^1.1.4", + "doctrine": "^2.1.0", + "es-iterator-helpers": "^1.1.0", + "estraverse": "^5.3.0", + "hasown": "^2.0.2", + "jsx-ast-utils": "^2.4.1 || ^3.0.0", + "minimatch": "^3.1.2", + "object.entries": "^1.1.8", + "object.fromentries": "^2.0.8", + "object.values": "^1.2.0", + "prop-types": "^15.8.1", + "resolve": "^2.0.0-next.5", + "semver": "^6.3.1", + "string.prototype.matchall": "^4.0.11", + "string.prototype.repeat": "^1.0.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7" + } + }, + "node_modules/eslint-plugin-react/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint-plugin-react/node_modules/resolve": { + "version": "2.0.0-next.5", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz", + "integrity": "sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/eslint-plugin-react/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" } }, - "node_modules/emoticon": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/emoticon/-/emoticon-4.0.1.tgz", - "integrity": "sha512-dqx7eA9YaqyvYtUhJwT4rC1HIp82j5ybS1/vQ42ur+jBe17dJMwZE4+gvL1XadSFfxaPFFGt3Xsw+Y8akThDlw==", + "node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "devOptional": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" + "url": "https://opencollective.com/eslint" } }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" + "node_modules/eslint/node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "devOptional": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/enhanced-resolve": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz", - "integrity": "sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA==", + "node_modules/eslint/node_modules/eslint-scope": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", + "devOptional": true, "dependencies": { - "graceful-fs": "^4.2.4", - "tapable": "^2.2.0" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=10.13.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "devOptional": true, "engines": { - "node": ">=0.12" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://opencollective.com/eslint" } }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dependencies": { - "is-arrayish": "^0.2.1" + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "devOptional": true, + "engines": { + "node": ">=4.0" } }, - "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "devOptional": true, "dependencies": { - "get-intrinsic": "^1.2.4" + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" }, "engines": { - "node": ">= 0.4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/es-errors": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", - "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "devOptional": true, + "dependencies": { + "is-glob": "^4.0.3" + }, "engines": { - "node": ">= 0.4" + "node": ">=10.13.0" } }, - "node_modules/es-module-lexer": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz", - "integrity": "sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw==" + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "devOptional": true }, - "node_modules/escalade": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", - "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "devOptional": true, + "dependencies": { + "p-locate": "^5.0.0" + }, "engines": { - "node": ">=6" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escape-goat": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-4.0.0.tgz", - "integrity": "sha512-2Sd4ShcWxbx6OY1IHyla/CVNwvg7XwZVoXZHcSu9w9SReNP1EzzD5T8NWKIR38fIqEns9kDWKUQTXXAmlDrdPg==", + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "devOptional": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "devOptional": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } }, - "node_modules/escape-string-regexp": { + "node_modules/eslint/node_modules/path-exists": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "devOptional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "devOptional": true, "engines": { "node": ">=10" }, @@ -5953,16 +7017,33 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/espree": { + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", + "devOptional": true, "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=8.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "devOptional": true, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -5977,6 +7058,27 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", + "devOptional": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "devOptional": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -6279,6 +7381,12 @@ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "devOptional": true + }, "node_modules/fast-url-parser": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", @@ -6329,6 +7437,18 @@ "node": ">=0.4.0" } }, + "node_modules/file-entry-cache": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", + "devOptional": true, + "dependencies": { + "flat-cache": "^4.0.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/file-loader": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz", @@ -6480,6 +7600,25 @@ "flat": "cli.js" } }, + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "devOptional": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.4" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "devOptional": true + }, "node_modules/follow-redirects": { "version": "1.15.6", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", @@ -6499,6 +7638,15 @@ } } }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/fork-ts-checker-webpack-plugin": { "version": "6.5.3", "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz", @@ -6720,6 +7868,33 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", @@ -6762,6 +7937,23 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/get-symbol-description": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/github-slugger": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz", @@ -6867,6 +8059,22 @@ "node": ">=4" } }, + "node_modules/globalthis": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", @@ -6937,6 +8145,12 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -6990,6 +8204,15 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -7031,6 +8254,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-yarn": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz", @@ -7658,6 +8896,20 @@ "resolved": "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz", "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==" }, + "node_modules/internal-slot": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "dev": true, + "dependencies": { + "es-errors": "^1.3.0", + "hasown": "^2.0.0", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -7704,11 +8956,54 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==" }, + "node_modules/is-async-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz", + "integrity": "sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -7720,6 +9015,34 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", @@ -7742,6 +9065,36 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-data-view": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", + "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "dev": true, + "dependencies": { + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-decimal": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz", @@ -7781,6 +9134,18 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz", + "integrity": "sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -7789,6 +9154,21 @@ "node": ">=8" } }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -7824,6 +9204,30 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-npm": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz", @@ -7843,6 +9247,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", @@ -7897,6 +9316,22 @@ "@types/estree": "*" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-regexp": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", @@ -7913,6 +9348,33 @@ "node": ">=6" } }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-stream": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", @@ -7924,11 +9386,96 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakset": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", + "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-wsl": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", @@ -7966,6 +9513,22 @@ "node": ">=0.10.0" } }, + "node_modules/iterator.prototype": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", + "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "dev": true, + "dependencies": { + "define-properties": "^1.2.1", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "reflect.getprototypeof": "^1.0.4", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/jest-util": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", @@ -8072,6 +9635,12 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "devOptional": true + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -8094,6 +9663,21 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/jsx-ast-utils": { + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz", + "integrity": "sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.6", + "array.prototype.flat": "^1.3.1", + "object.assign": "^4.1.4", + "object.values": "^1.1.6" + }, + "engines": { + "node": ">=4.0" + } + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -8149,6 +9733,19 @@ "node": ">=6" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "devOptional": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lilconfig": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz", @@ -8215,6 +9812,12 @@ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "devOptional": true + }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -10544,6 +12147,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "devOptional": true + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -10660,15 +12269,64 @@ "node": ">= 0.4" } }, - "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "node_modules/object.assign": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "dependencies": { + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.entries": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz", + "integrity": "sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.fromentries": { + "version": "2.0.8", + "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", + "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "dev": true, "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.7", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -10747,6 +12405,23 @@ "opener": "bin/opener-bin.js" } }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "devOptional": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/p-cancelable": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz", @@ -11097,6 +12772,15 @@ "node": ">=4" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { "version": "8.4.38", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", @@ -11665,6 +13349,15 @@ "postcss": "^8.4.31" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "devOptional": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/pretty-error": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz", @@ -12208,6 +13901,27 @@ "node": ">=6.0.0" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz", + "integrity": "sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.1", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "globalthis": "^1.0.3", + "which-builtin-type": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regenerate": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", @@ -12237,6 +13951,24 @@ "@babel/runtime": "^7.8.4" } }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz", + "integrity": "sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexpu-core": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz", @@ -12676,6 +14408,30 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", + "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "get-intrinsic": "^1.2.4", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -12695,6 +14451,23 @@ } ] }, + "node_modules/safe-regex-test": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", + "is-regex": "^1.1.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -12987,6 +14760,21 @@ "node": ">= 0.4" } }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -13313,6 +15101,91 @@ "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, + "node_modules/string.prototype.matchall": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", + "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.4", + "gopd": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.7", + "regexp.prototype.flags": "^1.5.2", + "set-function-name": "^2.0.2", + "side-channel": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.repeat": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz", + "integrity": "sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", + "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.0", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", + "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/stringify-entities": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz", @@ -13667,11 +15540,35 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/ts-api-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", + "integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", + "dev": true, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "typescript": ">=4.2.0" + } + }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "devOptional": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-fest": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", @@ -13714,6 +15611,79 @@ "node": ">= 0.6" } }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz", + "integrity": "sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -13822,6 +15792,21 @@ "@babel/runtime": "^7.17.2" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/undici-types": { "version": "5.26.5", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", @@ -14671,6 +16656,91 @@ "node": ">= 8" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz", + "integrity": "sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w==", + "dev": true, + "dependencies": { + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.0.5", + "is-finalizationregistry": "^1.0.2", + "is-generator-function": "^1.0.10", + "is-regex": "^1.1.4", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.0.2", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.15" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/which-collection": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", + "dev": true, + "dependencies": { + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz", + "integrity": "sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", @@ -14690,6 +16760,15 @@ "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz", "integrity": "sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ==" }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", diff --git a/package.json b/package.json index 7d309fa9a..783b37223 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,8 @@ "serve": "docusaurus serve --host 0.0.0.0 --port 80", "write-translations": "docusaurus write-translations", "write-heading-ids": "docusaurus write-heading-ids", - "typecheck": "tsc" + "typecheck": "tsc", + "lint": "eslint" }, "dependencies": { "@dipakparmar/docusaurus-plugin-umami": "^2.1.6", @@ -30,7 +31,13 @@ "@docusaurus/module-type-aliases": "^3.4.0", "@docusaurus/tsconfig": "^3.4.0", "@docusaurus/types": "^3.4.0", - "typescript": "~5.5.2" + "@typescript-eslint/eslint-plugin": "^8.13.0", + "@typescript-eslint/parser": "^8.13.0", + "eslint": "^9.14.0", + "eslint-plugin-react": "^7.37.2", + "globals": "^15.12.0", + "typescript": "~5.5.2", + "typescript-eslint": "^8.13.0" }, "browserslist": { "production": [ diff --git a/src/components/HomepageAskAQuestion/index.tsx b/src/components/HomepageAskAQuestion/index.tsx index 936c090ee..ab7a5b03f 100644 --- a/src/components/HomepageAskAQuestion/index.tsx +++ b/src/components/HomepageAskAQuestion/index.tsx @@ -1,21 +1,9 @@ import clsx from 'clsx'; -import Heading from '@theme/Heading'; import styles from './styles.module.css'; export default function HomepageAskAQuestion(): JSX.Element { return ( - //
- {/* */}

diff --git a/src/components/HomepageAskAQuestion/styles.module.css b/src/components/HomepageAskAQuestion/styles.module.css index 693587131..9392b37f0 100644 --- a/src/components/HomepageAskAQuestion/styles.module.css +++ b/src/components/HomepageAskAQuestion/styles.module.css @@ -5,6 +5,7 @@ border-radius: 2rem; color: black; overflow: hidden; + height: 100%; } html[data-theme='dark'] .item { @@ -13,6 +14,13 @@ html[data-theme='dark'] .item { border-radius: 2rem; color: white; overflow: hidden; + height: 100%; +} + +@media (max-width: 996px) { + .item { + margin-top: 2rem; + } } .item__inner { diff --git a/src/components/HomepageContribute/index.tsx b/src/components/HomepageContribute/index.tsx index 11200d276..d00746ef1 100644 --- a/src/components/HomepageContribute/index.tsx +++ b/src/components/HomepageContribute/index.tsx @@ -1,9 +1,9 @@ import clsx from 'clsx'; -import Heading from '@theme/Heading'; import styles from './styles.module.css'; import useBaseUrl from '@docusaurus/useBaseUrl'; export default function HomepageContribute(): JSX.Element { + return ( //
@@ -21,16 +21,6 @@ export default function HomepageContribute(): JSX.Element {

- {/* */}
//
); diff --git a/src/components/HomepageContribute/styles.module.css b/src/components/HomepageContribute/styles.module.css index 693587131..c21810a6e 100644 --- a/src/components/HomepageContribute/styles.module.css +++ b/src/components/HomepageContribute/styles.module.css @@ -5,6 +5,7 @@ border-radius: 2rem; color: black; overflow: hidden; + height: 100%; } html[data-theme='dark'] .item { @@ -13,6 +14,7 @@ html[data-theme='dark'] .item { border-radius: 2rem; color: white; overflow: hidden; + height: 100%; } .item__inner { diff --git a/src/components/HomepageFeaturedServices/index.tsx b/src/components/HomepageFeaturedServices/index.tsx index c6066fcbc..3404ff6ec 100644 --- a/src/components/HomepageFeaturedServices/index.tsx +++ b/src/components/HomepageFeaturedServices/index.tsx @@ -1,5 +1,4 @@ import clsx from 'clsx'; -import Heading from '@theme/Heading'; import styles from './styles.module.css'; import FeaturedServices from '../ServiceCallouts/FeaturedServices'; import NewServices from '../ServiceCallouts/NewServices'; diff --git a/src/components/HomepageFeatures/index.tsx b/src/components/HomepageFeatures/index.tsx index 9497b4d4c..492d6b81a 100644 --- a/src/components/HomepageFeatures/index.tsx +++ b/src/components/HomepageFeatures/index.tsx @@ -3,6 +3,10 @@ import Heading from '@theme/Heading'; import styles from './styles.module.css'; import useBaseUrl from '@docusaurus/useBaseUrl'; +import BestPracticesSvg from '@site/static/img/best-practices.svg'; +import BlueprintsSvg from '@site/static/img/blueprints.svg'; +// import CafSvg from '@site/static/img/caf.svg'; + type FeatureItem = { title: string; Svg: React.ComponentType>; @@ -13,7 +17,7 @@ type FeatureItem = { const FeatureList: FeatureItem[] = [ { title: 'Best Practices', - Svg: require('@site/static/img/best-practices.svg').default, + Svg: BestPracticesSvg, description: ( <> Explore the recommended strategies for resource management, such as @@ -25,7 +29,7 @@ const FeatureList: FeatureItem[] = [ }, { title: 'Blueprints', - Svg: require('@site/static/img/blueprints.svg').default, + Svg: BlueprintsSvg, description: ( <> Discover tailored out-of-the-box solutions and @@ -35,54 +39,41 @@ const FeatureList: FeatureItem[] = [ ), link: '/docs/blueprints' }, - { - title: 'Cloud Adoption Framework', - Svg: require('@site/static/img/caf.svg').default, - description: ( - <> - The Cloud Adoption Framework provides a structured approach for organizations to transition their business to - Open Telekom Cloud. It covers various stages such as strategy, planning, readiness, migration, governance, and management. - - ), - link: '/caf' - }, + // { + // title: 'Cloud Adoption Framework', + // Svg: CafSvg, + // description: ( + // <> + // The Cloud Adoption Framework provides a structured approach for organizations to transition their business to + // Open Telekom Cloud. It covers various stages such as strategy, planning, readiness, migration, governance, and management. + // + // ), + // link: '/caf' + // }, ]; function Feature({ title, Svg, description, link }: FeatureItem) { return ( - //
- //
- // - //
- //
- // {title} - //

{description}

- // {/* - // Get Started - // */} - //
- //
-
- -
-
- -
-
- {/*

{title}

*/} - {title} - - {description} - - {/* +
+ +
+
+ +
+
+ {/*

{title}

*/} + {title} + + {description} + + {/* Get Started */}
- - ); + ); } export default function HomepageFeatures(): JSX.Element { diff --git a/src/components/HomepageNewServices/index.tsx b/src/components/HomepageNewServices/index.tsx index 0fc1dccb1..54be2af58 100644 --- a/src/components/HomepageNewServices/index.tsx +++ b/src/components/HomepageNewServices/index.tsx @@ -1,5 +1,4 @@ import clsx from 'clsx'; -import Heading from '@theme/Heading'; import styles from './styles.module.css'; import NewServices from '../ServiceCallouts/NewServices'; import useBaseUrl from '@docusaurus/useBaseUrl'; diff --git a/src/components/ServiceCallouts/ApplicationServices/index.tsx b/src/components/ServiceCallouts/ApplicationServices/index.tsx index 573bbd237..11d7062fe 100644 --- a/src/components/ServiceCallouts/ApplicationServices/index.tsx +++ b/src/components/ServiceCallouts/ApplicationServices/index.tsx @@ -1,32 +1,34 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import AomSvg from '@site/static/img/services/aom.svg' +import ApigSvg from '@site/static/img/services/apig.svg' +import DmsSvg from '@site/static/img/services/DMS.svg' +import SmnSvg from '@site/static/img/services/SMN.svg' + + const calloutsList: Callout[] = [ { title: "AOM", text: "Application Operations Management", link: "/docs/tags/aom", - icon: require('@site/static/img/services/aom.svg').default, + icon: AomSvg, }, { title: "APIG", text: "API Gateway", link: "/docs/tags/apig", - icon: require('@site/static/img/services/apig.svg').default, + icon: ApigSvg, }, { title: "DMS", text: "Distributed Message Service", link: "/docs/tags/dms", - icon: require('@site/static/img/services/DMS.svg').default, + icon: DmsSvg, }, { title: "SMN", text: "Simple Message Notification", link: "/docs/tags/smn", - icon: require('@site/static/img/services/SMN.svg').default, + icon: SmnSvg, }, ]; diff --git a/src/components/ServiceCallouts/ComputingServices/index.tsx b/src/components/ServiceCallouts/ComputingServices/index.tsx index fe7aff04d..e998d6765 100644 --- a/src/components/ServiceCallouts/ComputingServices/index.tsx +++ b/src/components/ServiceCallouts/ComputingServices/index.tsx @@ -1,44 +1,48 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; -var calloutsList: Callout[] = [ +import AsSvg from '@site/static/img/services/AS.svg' +import BmsSvg from '@site/static/img/services/BMS.svg' +import DhsSvg from '@site/static/img/services/DeH.svg' +import EcsSvg from '@site/static/img/services/ECS.svg' +import FgsSvg from '@site/static/img/services/fg.svg' +import ImsSvg from '@site/static/img/services/IMS.svg' + +const calloutsList: Callout[] = [ { title: "AS", text: "Auto Scaling", link: "/docs/tags/as", - icon: require('@site/static/img/services/AS.svg').default, + icon: AsSvg, }, { title: "BMS", text: "Bare Metal Services", link: "/docs/tags/bms", - icon: require('@site/static/img/services/BMS.svg').default, + icon: BmsSvg, }, { title: "DHS", text: "Dedicated Host", link: "/docs/tags/dhs", - icon: require('@site/static/img/services/DeH.svg').default, + icon: DhsSvg, }, { title: "ECS", text: "Elastic Cloud Server", link: "/docs/tags/ecs", - icon: require('@site/static/img/services/ECS.svg').default, + icon: EcsSvg, }, { title: "FGS", text: "FunctionGraph", link: "/docs/tags/functiongraph", - icon: require('@site/static/img/services/fg.svg').default, + icon: FgsSvg, }, { title: "IMS", text: "Image Management Service", link: "/docs/tags/ims", - icon: require('@site/static/img/services/IMS.svg').default, + icon: ImsSvg, }, ]; diff --git a/src/components/ServiceCallouts/ContainerServices/index.tsx b/src/components/ServiceCallouts/ContainerServices/index.tsx index 14759aa41..fd48ca51a 100644 --- a/src/components/ServiceCallouts/ContainerServices/index.tsx +++ b/src/components/ServiceCallouts/ContainerServices/index.tsx @@ -1,32 +1,34 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import AsmSvg from '@site/static/img/services/asm.svg' +import CceSvg from '@site/static/img/services/CCE.svg' +import CciSvg from '@site/static/img/services/cci.svg' +import SwrSvg from '@site/static/img/services/swr.svg' + + const calloutsList: Callout[] = [ { title: "ASM", text: "Application Service Mesh", link: "/docs/tags/asm", - icon: require('@site/static/img/services/asm.svg').default, + icon: AsmSvg, }, { title: "CCE", text: "Cloud Container Engine", link: "/docs/tags/cce", - icon: require('@site/static/img/services/CCE.svg').default, + icon: CceSvg, }, { title: "CCI", text: "Serverless Container Engine", link: "/docs/tags/cci", - icon: require('@site/static/img/services/cci.svg').default, + icon: CciSvg, }, { title: "SWR", text: "Software Repository for Containers", link: "/docs/tags/swr", - icon: require('@site/static/img/services/swr.svg').default, + icon: SwrSvg, }, ]; diff --git a/src/components/ServiceCallouts/DataAnalysisServices/index.tsx b/src/components/ServiceCallouts/DataAnalysisServices/index.tsx index 5dd9f0cb1..c55d12abd 100644 --- a/src/components/ServiceCallouts/DataAnalysisServices/index.tsx +++ b/src/components/ServiceCallouts/DataAnalysisServices/index.tsx @@ -1,56 +1,62 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import CssSvg from '@site/static/img/services/CSS.svg' +import DatarartsSvg from '@site/static/img/services/dataarts_studio.svg' +import DisSvg from '@site/static/img/services/DIS.svg' +import DliSvg from '@site/static/img/services/dli.svg' +import DwsSvg from '@site/static/img/services/DWS.svg' +import ModelartsSvg from '@site/static/img/services/ma.svg' +import MrsSvg from '@site/static/img/services/mapReduce-MRS.svg' +import OcrSvg from '@site/static/img/services/ocr.svg' + + const calloutsList: Callout[] = [ { title: "CSS", text: "Cloud Search Service", link: "/docs/tags/css", - icon: require('@site/static/img/services/CSS.svg').default, + icon: CssSvg, }, { title: "DataArts Studio", text: "Data Operations Platform", link: "/docs/tags/data-arts", - icon: require('@site/static/img/services/dataarts_studio.svg').default, + icon: DatarartsSvg, }, { title: "DIS", text: "Data Ingestion Service", link: "/docs/tags/dis", - icon: require('@site/static/img/services/DIS.svg').default, + icon: DisSvg, }, { title: "DLI", text: "Data Lake Insight", link: "/docs/tags/dli", - icon: require('@site/static/img/services/dli.svg').default, + icon: DliSvg, }, { title: "DWS", text: "Data Warehouse Service", link: "/docs/tags/dws", - icon: require('@site/static/img/services/DWS.svg').default, + icon: DwsSvg, }, { title: "ModelArts", text: "Development Platform for AI", link: "/docs/tags/model-arts", - icon: require('@site/static/img/services/ma.svg').default, + icon: ModelartsSvg, }, { title: "MRS", text: "MapReduce Service", link: "/docs/tags/mrs", - icon: require('@site/static/img/services/mapReduce-MRS.svg').default, + icon: MrsSvg, }, { title: "OCR", text: "Optical Character Recognition", link: "/docs/tags/ocr", - icon: require('@site/static/img/services/ocr.svg').default, + icon: OcrSvg, }, ]; diff --git a/src/components/ServiceCallouts/DatabaseServices/index.tsx b/src/components/ServiceCallouts/DatabaseServices/index.tsx index f2a7d9e15..d95304b3a 100644 --- a/src/components/ServiceCallouts/DatabaseServices/index.tsx +++ b/src/components/ServiceCallouts/DatabaseServices/index.tsx @@ -1,56 +1,62 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import DcsSvg from '@site/static/img/services/DCS-redis.svg' +import DdmSvg from '@site/static/img/services/ddm.svg' +import DdsSvg from '@site/static/img/services/DDS.svg' +import DrsSvg from '@site/static/img/services/drs.svg' +import GaussdbmysqlSvg from '@site/static/img/services/gaussdb_mysql.svg' +import GaussdbnosqlSvg from '@site/static/img/services/gaussdb_nosql.svg' +import RdsSvg from '@site/static/img/services/RDS .svg' +import GeminidbSvg from '@site/static/img/services/RDS .svg' + + const calloutsList: Callout[] = [ { title: "DCS", text: "Distributed Cache Service", link: "/docs/tags/dcs", - icon: require('@site/static/img/services/DCS-redis.svg').default, + icon: DcsSvg }, { title: "DDM", text: "Distributed Database Middleware", link: "/docs/tags/ddm", - icon: require('@site/static/img/services/ddm.svg').default, + icon: DdmSvg }, { title: "DDS", text: "Document Database Service", link: "/docs/tags/dds", - icon: require('@site/static/img/services/DDS.svg').default, + icon: DdsSvg }, { title: "DRS", text: "Data Replication Service", link: "/docs/tags/drs", - icon: require('@site/static/img/services/drs.svg').default, + icon: DrsSvg }, { title: "GaussDB for MySQL", text: "Enterprise-Class Distributed Database", link: "/docs/tags/gaussdb-mysql", - icon: require('@site/static/img/services/gaussdb_mysql.svg').default, + icon: GaussdbmysqlSvg }, { title: "GaussDB NoSQL", text: "Distributed NoSQL Database Service ", link: "/docs/tags/model-arts", - icon: require('@site/static/img/services/gaussdb_nosql.svg').default, + icon: GaussdbnosqlSvg }, { title: "GeminiDB", text: "Distributed, Multi-Model NoSQL Database Service", link: "/docs/tags/gemini-db", - icon: require('@site/static/img/services/RDS .svg').default, + icon: GeminidbSvg }, { title: "RDS", text: "Relational Database Service", link: "/docs/tags/rds", - icon: require('@site/static/img/services/RDS .svg').default, + icon: RdsSvg }, ]; diff --git a/src/components/ServiceCallouts/FeaturedServices/index.tsx b/src/components/ServiceCallouts/FeaturedServices/index.tsx index e44e4d0f8..5da61d627 100644 --- a/src/components/ServiceCallouts/FeaturedServices/index.tsx +++ b/src/components/ServiceCallouts/FeaturedServices/index.tsx @@ -1,62 +1,69 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from '../callout'; - var calloutsList: Callout[] = [ +import VpcSvg from '@site/static/img/services/VPC.svg' +import EcsSvg from '@site/static/img/services/ECS.svg' +import ObsSvg from '@site/static/img/services/OBS.svg' +import IamSvg from '@site/static/img/services/IAM.svg' +import ElbSvg from '@site/static/img/services/ELB.svg' +import DmsSvg from '@site/static/img/services/DMS.svg' +import CceSvg from '@site/static/img/services/CCE.svg' +import SwrSvg from '@site/static/img/services/swr.svg' +import CcSvg from '@site/static/img/services/cc.svg' + + const calloutsList: Callout[] = [ { title: "VPC", text: "Virtual Private Cloud", link: "/docs/tags/vpc", - icon: require('@site/static/img/services/VPC.svg').default, + icon: VpcSvg }, { title: "ECS", text: "Elastic Cloud Server", link: "/docs/tags/ecs", - icon: require('@site/static/img/services/ECS.svg').default, + icon: EcsSvg }, { title: "OBS", text: "Object Storage Service", link: "/docs/tags/obs", - icon: require('@site/static/img/services/OBS.svg').default, + icon: ObsSvg }, { title: "IAM", text: "Identity & Access Management", link: "/docs/tags/iam", - icon: require('@site/static/img/services/IAM.svg').default, + icon: IamSvg }, { title: "ELB", text: "Elastic Load Balancing", link: "/docs/tags/elb", - icon: require('@site/static/img/services/ELB.svg').default, + icon: ElbSvg }, { title: "DMS", text: "Distributed Message Service", link: "/docs/tags/dms", - icon: require('@site/static/img/services/DMS.svg').default, + icon: DmsSvg }, { title: "CCE", text: "Cloud Container Engine", link: "/docs/tags/cce", - icon: require('@site/static/img/services/CCE.svg').default, + icon: CceSvg }, { - title: "SWR", - text: "Software Repository for Containers", - link: "/docs/tags/swr", - icon: require('@site/static/img/services/swr.svg').default, + title: "SWR", + text: "Software Repository for Containers", + link: "/docs/tags/swr", + icon: SwrSvg }, { title: "Cloud Create", text: "Multi-Cloud Management Platform", link: "/docs/tags/cloud-create", - icon: require('@site/static/img/services/cc.svg').default, + icon: CcSvg }, ]; diff --git a/src/components/ServiceCallouts/ManagementServices/index.tsx b/src/components/ServiceCallouts/ManagementServices/index.tsx index bbdb290b2..93d7d3b40 100644 --- a/src/components/ServiceCallouts/ManagementServices/index.tsx +++ b/src/components/ServiceCallouts/ManagementServices/index.tsx @@ -1,56 +1,62 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import ApmSvg from '@site/static/img/services/apm.svg' +import CesSvg from '@site/static/img/services/CES.svg' +import ConfigSvg from '@site/static/img/services/rms.svg' +import CtsSvg from '@site/static/img/services/CTS.svg' +import LtsSvg from '@site/static/img/services/LTS.svg' +import RmsSvg from '@site/static/img/services/rms.svg' +import TmsSvg from '@site/static/img/services/TMS.svg' +import CcSvg from '@site/static/img/services/cc.svg' + + const calloutsList: Callout[] = [ { title: "APM", text: "Application Performance Management", link: "/docs/tags/apm", - icon: require('@site/static/img/services/apm.svg').default, + icon: ApmSvg }, { title: "Cloud Create", text: "Multi-Cloud Management Platform", link: "/docs/tags/cloud-create", - icon: require('@site/static/img/services/cc.svg').default, + icon: CcSvg }, { title: "CloudEye", text: "Multi-Dimensional Monitoring Platform", link: "/docs/tags/cloudeye", - icon: require('@site/static/img/services/CES.svg').default, + icon: CesSvg }, { title: "Config", text: "Continuously Evaluate Resource Configuration", link: "/docs/tags/config", - icon: require('@site/static/img/services/rms.svg').default, + icon: ConfigSvg }, { title: "CTS", text: "Cloud Trace Service", link: "/docs/tags/cts", - icon: require('@site/static/img/services/CTS.svg').default, + icon: CtsSvg }, { title: "LTS", text: "Log Tank Service", link: "/docs/tags/lts", - icon: require('@site/static/img/services/LTS.svg').default, + icon: LtsSvg }, { title: "RMS", text: "Resource Management Service ", link: "/docs/tags/rms", - icon: require('@site/static/img/services/rms.svg').default, + icon: RmsSvg }, { title: "TMS", text: "Tag Management Service", link: "/docs/tags/rds", - icon: require('@site/static/img/services/TMS.svg').default, + icon: TmsSvg }, ]; diff --git a/src/components/ServiceCallouts/NetworkingServices/index.tsx b/src/components/ServiceCallouts/NetworkingServices/index.tsx index 5d9cef72a..0ead41ee4 100644 --- a/src/components/ServiceCallouts/NetworkingServices/index.tsx +++ b/src/components/ServiceCallouts/NetworkingServices/index.tsx @@ -1,74 +1,83 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import DcSvg from '@site/static/img/services/DC_DirectConnect.svg' +import DnsSvg from '@site/static/img/services/DNS.svg' +import EipSvg from '@site/static/img/services/IP-EIP.svg' +import ElbSvg from '@site/static/img/services/ELB.svg' +import ErSvg from '@site/static/img/services/er.svg' +import NatgwSvg from '@site/static/img/services/nat-nat-gateway.svg' +import PlasSvg from '@site/static/img/services/plas.svg' +import SmgSvg from '@site/static/img/services/smg.svg' +import VpcSvg from '@site/static/img/services/VPC.svg' +import VpcepSvg from '@site/static/img/services/Vpc Endpoint.svg' +import VpnSvg from '@site/static/img/services/VPN.svg' + + const calloutsList: Callout[] = [ { title: "Direct Connect", text: "Dedicated Network Connection", link: "/docs/tags/direct-connect", - icon: require('@site/static/img/services/DC_DirectConnect.svg').default, + icon: DcSvg }, { title: "DNS", text: "Domain Name Service", link: "/docs/tags/dns", - icon: require('@site/static/img/services/DNS.svg').default, + icon: DnsSvg }, { title: "EIP", text: "Elastic IP", link: "/docs/tags/eip", - icon: require('@site/static/img/services/IP-EIP.svg').default, + icon: EipSvg }, { title: "ELB", text: "Elastic Load Balancing", link: "/docs/tags/elb", - icon: require('@site/static/img/services/ELB.svg').default, + icon: ElbSvg }, { title: "Enterprise Router", text: "Cloud Router Service", link: "/docs/tags/enterprise-router", - icon: require('@site/static/img/services/er.svg').default, + icon: ErSvg }, { title: "NATGW", text: "NAT Gateway", link: "/docs/tags/natgw", - icon: require('@site/static/img/services/nat-nat-gateway.svg').default, + icon: NatgwSvg }, { title: "PLAS", text: "Private Link Access Service", link: "/docs/tags/plas", - icon: require('@site/static/img/services/plas.svg').default, + icon: PlasSvg }, { title: "Secure Mail Gateway", text: "Anti-Spam & Anti-Junk Outgoing Email Traffic", link: "/docs/tags/smg", - icon: require('@site/static/img/services/smg.svg').default, + icon: SmgSvg }, { title: "VPC", text: "Virtual Private Cloud", link: "/docs/tags/vpc", - icon: require('@site/static/img/services/VPC.svg').default, + icon: VpcSvg }, { title: "VPCEP", text: "Virtual Private Cloud Endpoint", link: "/docs/tags/vpcep", - icon: require('@site/static/img/services/Vpc Endpoint.svg').default, + icon: VpcepSvg }, { title: "VPN", text: "Virtual Private Network", link: "/docs/tags/vpn", - icon: require('@site/static/img/services/VPN.svg').default, + icon: VpnSvg }, ]; diff --git a/src/components/ServiceCallouts/NewServices/index.tsx b/src/components/ServiceCallouts/NewServices/index.tsx index 757c8ee25..f5f048a95 100644 --- a/src/components/ServiceCallouts/NewServices/index.tsx +++ b/src/components/ServiceCallouts/NewServices/index.tsx @@ -1,44 +1,48 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from '../callout'; - var calloutsList: Callout[] = [ +import AsmSvg from '@site/static/img/services/asm.svg' +import CciSvg from '@site/static/img/services/cci.svg' +import ConfigSvg from '@site/static/img/services/rms.svg' +import OcrSvg from '@site/static/img/services/ocr.svg' +import FgSvg from '@site/static/img/services/fg.svg' +import GeminidbSvg from '@site/static/img/services/RDS .svg' + + const calloutsList: Callout[] = [ { title: "ASM", text: "Application Service Mesh (Istio-Based)", link: "https://docs.otc.t-systems.com/application-service-mesh/index.html", - icon: require('@site/static/img/services/asm.svg').default, + icon: AsmSvg }, { title: "CCI", text: "Serverless Container Engine", link: "https://docs.otc.t-systems.com/cloud-container-instance/index.html", - icon: require('@site/static/img/services/cci.svg').default, + icon: CciSvg }, { title: "Config", text: "Continuously Evaluate Resource Configuration", link: "https://docs.otc.t-systems.com/config/index.html", - icon: require('@site/static/img/services/rms.svg').default, + icon: ConfigSvg }, { title: "OCR", text: "Optical Character Recognition", link: "https://docs.otc.t-systems.com/optical-character-recognition/index.html", - icon: require('@site/static/img/services/ocr.svg').default, + icon: OcrSvg }, { title: "FGS", text: "FunctionGraph", link: "https://docs.otc.t-systems.com/function-graph/index.html", - icon: require('@site/static/img/services/fg.svg').default, + icon: FgSvg }, { title: "GeminiDB", text: "Distributed, Multi-Model NoSQL Database Service", link: "https://docs.otc.t-systems.com/geminidb/index.html", - icon: require('@site/static/img/services/RDS .svg').default, + icon: GeminidbSvg }, ]; diff --git a/src/components/ServiceCallouts/SecurityServices/index.tsx b/src/components/ServiceCallouts/SecurityServices/index.tsx index b36b9dfb7..46ff47e3f 100644 --- a/src/components/ServiceCallouts/SecurityServices/index.tsx +++ b/src/components/ServiceCallouts/SecurityServices/index.tsx @@ -1,50 +1,55 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import AntiddosSvg from '@site/static/img/services/Anti-DDoS.svg' +import DbssSvg from '@site/static/img/services/dbss.svg' +import HssSvg from '@site/static/img/services/hss.svg' +import IamSvg from '@site/static/img/services/IAM.svg' +import KmsSvg from '@site/static/img/services/Security-KMS.svg' +import WafSvg from '@site/static/img/services/web-WAF.svg' +import DwafSvg from '@site/static/img/services/web-WAF.svg' + + const calloutsList: Callout[] = [ { title: "Anti-DDoS", text: "Anti-DDoS Traffic Cleaning Service", link: "/docs/tags/anti-ddos", - icon: require('@site/static/img/services/Anti-DDoS.svg').default, + icon: AntiddosSvg }, { title: "DDS", text: "Database Security Service", link: "/docs/tags/dss", - icon: require('@site/static/img/services/dbss.svg').default, + icon: DbssSvg }, { title: "HSS", text: "Host Security Service", link: "/docs/tags/hss", - icon: require('@site/static/img/services/hss.svg').default, + icon: HssSvg }, { title: "IAM", text: "Identity & Access Management", link: "/docs/tags/iam", - icon: require('@site/static/img/services/IAM.svg').default, + icon: IamSvg }, { title: "KMS", text: "Key Management Service", link: "/docs/tags/kms", - icon: require('@site/static/img/services/Security-KMS.svg').default, + icon: KmsSvg }, { title: "WAF", text: "Web Application Firewall", link: "/docs/tags/waf", - icon: require('@site/static/img/services/web-WAF.svg').default, + icon: WafSvg }, { title: "Dedicated WAF", text: "Dedicated Web Application Firewall", link: "/docs/tags/dedicated-waf", - icon: require('@site/static/img/services/web-WAF.svg').default, + icon: DwafSvg }, ]; diff --git a/src/components/ServiceCallouts/StorageServices/index.tsx b/src/components/ServiceCallouts/StorageServices/index.tsx index 23ea68f35..5769a1e05 100644 --- a/src/components/ServiceCallouts/StorageServices/index.tsx +++ b/src/components/ServiceCallouts/StorageServices/index.tsx @@ -1,50 +1,55 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './../callout'; - var calloutsList: Callout[] = [ +import CbrSvg from '@site/static/img/services/CBR.svg' +import CsbsSvg from '@site/static/img/services/CSBS.svg' +import EvsSvg from '@site/static/img/services/EVS.svg' +import ObsSvg from '@site/static/img/services/OBS.svg' +import SdrsSvg from '@site/static/img/services/sdrs.svg' +import SfsSvg from '@site/static/img/services/SFS.svg' +import VbsSvg from '@site/static/img/services/VBS.svg' + + const calloutsList: Callout[] = [ { title: "CBR", text: "Cloud Backup & Recovery", link: "/docs/tags/cbr", - icon: require('@site/static/img/services/CBR.svg').default, + icon: CbrSvg }, { title: "CSBS", text: "Cloud Server Backup Service", link: "/docs/tags/csbs", - icon: require('@site/static/img/services/CSBS.svg').default, + icon: CsbsSvg }, { title: "EVS", text: "Elastic Volume Service", link: "/docs/tags/evs", - icon: require('@site/static/img/services/EVS.svg').default, + icon: EvsSvg }, { title: "OBS", text: "Object Storage Service", link: "/docs/tags/obs", - icon: require('@site/static/img/services/OBS.svg').default, + icon: ObsSvg }, { title: "SDRS", text: "Storage Disaster Recovery Service", link: "/docs/tags/sdrs", - icon: require('@site/static/img/services/sdrs.svg').default, + icon: SdrsSvg }, { title: "SFS", text: "Scalable File Service", link: "/docs/tags/sfs", - icon: require('@site/static/img/services/SFS.svg').default, + icon: SfsSvg }, { title: "VBS", text: "Volume Backup Service", link: "/docs/tags/vbs", - icon: require('@site/static/img/services/VBS.svg').default, + icon: VbsSvg }, ]; diff --git a/src/components/ServiceCallouts/callout.tsx b/src/components/ServiceCallouts/callout.tsx index 92ff2d8f8..12ec7b56c 100644 --- a/src/components/ServiceCallouts/callout.tsx +++ b/src/components/ServiceCallouts/callout.tsx @@ -1,37 +1,29 @@ -import { - ClockIcon, - CogIcon, - CubeTransparentIcon, - RectangleGroupIcon, - RectangleStackIcon, - ShareIcon, - SparklesIcon, - UsersIcon, -} from "@heroicons/react/24/outline"; import clsx from "clsx"; -import React from "react"; import styles from "./styles.modules.css"; +import { ComponentType, SVGProps } from 'react'; import useBaseUrl from '@docusaurus/useBaseUrl'; + export interface Callout { title: string; text?: string; link: string; - icon: (props: React.ComponentProps<"svg">) => JSX.Element; -} + // icon: (props: React.ComponentProps<"svg">) => JSX.Element; + icon: ComponentType>; +} function Callout(props: Callout): JSX.Element { return ( -
+
-

-

-
- +
+

{props.text}

@@ -52,7 +44,7 @@ export default function ServiceCallouts({ callouts }: ServiceCalloutsProps): JSX
{callouts.map((c) => (
- +
))}
diff --git a/src/components/ServiceCallouts/index.tsx b/src/components/ServiceCallouts/index.tsx index 691d5d9b2..8d3e2676a 100644 --- a/src/components/ServiceCallouts/index.tsx +++ b/src/components/ServiceCallouts/index.tsx @@ -1,22 +1,21 @@ -import clsx from 'clsx'; -import Heading from '@theme/Heading'; -import styles from './styles.module.css'; import ServiceCallouts, { Callout } from './callout'; - var calloutsList: Callout[] = [ - { - title: "ttt", +import DnsSvg from '@site/static/img/services/DNS.svg' + +const calloutsList: Callout[] = [ + { + title: "ttt", + text: "Application Operations Management", + link: "/docs/best-practices/building-highly-available-web-server-clusters-with-keepalived", + icon: DnsSvg + }, + { + title: "yyy", text: "Application Operations Management", link: "/docs/best-practices/building-highly-available-web-server-clusters-with-keepalived", - icon: require('@site/static/img/services/DNS.svg').default, + icon: DnsSvg }, - { - title: "yyy", - text: "Application Operations Management", - link: "/docs/best-practices/building-highly-available-web-server-clusters-with-keepalived", - icon: require('@site/static/img/services/DNS.svg').default, - }, - ]; +]; export default function BestPractices(): JSX.Element { return ( diff --git a/src/pages/index.tsx b/src/pages/index.tsx index b7578683e..d37ae666f 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,38 +1,36 @@ import clsx from 'clsx'; -import Link from '@docusaurus/Link'; import useDocusaurusContext from '@docusaurus/useDocusaurusContext'; import Layout from '@theme/Layout'; import HomepageFeatures from '@site/src/components/HomepageFeatures'; -import Heading from '@theme/Heading'; -import { useColorMode, useThemeConfig } from '@docusaurus/theme-common'; +// import Heading from '@theme/Heading'; +// import { useThemeConfig } from '@docusaurus/theme-common'; import useBaseUrl from '@docusaurus/useBaseUrl'; -import styles from './index.module.css'; +// import styles from './index.module.css'; import HomepageFeaturedServices from '../components/HomepageFeaturedServices'; import HomepageAskAQuestion from '../components/HomepageAskAQuestion'; import HomepageContribute from '../components/HomepageContribute'; -import HomepageNewServices from '../components/HomepageNewServices'; -function HomepageHeader() { - const { siteConfig } = useDocusaurusContext(); - const navbarStyle = useThemeConfig().navbar.style; - var buttonVariant = navbarStyle === 'dark' ? "primary" : "secondary-white" - return ( -
-
- - {siteConfig.title} - -

Open Telekom Cloud {siteConfig.tagline}

-
- - Get Started - -
-
-
- ); -} +// function HomepageHeader() { +// const { siteConfig } = useDocusaurusContext(); +// const navbarStyle = useThemeConfig().navbar.style; +// const buttonVariant = navbarStyle === 'dark' ? "primary" : "secondary-white" +// return ( +//
+//
+// +// {siteConfig.title} +// +//

Open Telekom Cloud {siteConfig.tagline}

+//
+// +// Get Started +// +//
+//
+//
+// ); +// } export default function Home(): JSX.Element { const { siteConfig } = useDocusaurusContext(); diff --git a/src/theme/DocTagDocListPage/index.tsx b/src/theme/DocTagDocListPage/index.tsx index 8ac3ce9d6..e0bda86ac 100644 --- a/src/theme/DocTagDocListPage/index.tsx +++ b/src/theme/DocTagDocListPage/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import clsx from 'clsx'; import Link from '@docusaurus/Link'; import { diff --git a/src/theme/Footer/Copyright/index.tsx b/src/theme/Footer/Copyright/index.tsx index a33814b4f..88b1442d7 100644 --- a/src/theme/Footer/Copyright/index.tsx +++ b/src/theme/Footer/Copyright/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import type { Props } from '@theme/Footer/Copyright'; export default function FooterCopyright({ copyright }: Props): JSX.Element { diff --git a/src/theme/Footer/Layout/index.tsx b/src/theme/Footer/Layout/index.tsx index afe8d5be8..0503e0029 100644 --- a/src/theme/Footer/Layout/index.tsx +++ b/src/theme/Footer/Layout/index.tsx @@ -1,11 +1,9 @@ -import React from 'react'; import clsx from 'clsx'; import type { Props } from '@theme/Footer/Layout'; export default function FooterLayout({ style, links, - logo, copyright, }: Props): JSX.Element { return ( diff --git a/src/theme/Footer/LinkItem/index.tsx b/src/theme/Footer/LinkItem/index.tsx index 65047723c..20ba6db41 100644 --- a/src/theme/Footer/LinkItem/index.tsx +++ b/src/theme/Footer/LinkItem/index.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import Link from '@docusaurus/Link'; import useBaseUrl from '@docusaurus/useBaseUrl'; import isInternalUrl from '@docusaurus/isInternalUrl'; diff --git a/src/theme/Footer/Links/MultiColumn/index.tsx b/src/theme/Footer/Links/MultiColumn/index.tsx index f8f7b34f0..24d8688f0 100644 --- a/src/theme/Footer/Links/MultiColumn/index.tsx +++ b/src/theme/Footer/Links/MultiColumn/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import LinkItem from '@theme/Footer/LinkItem'; import type {Props} from '@theme/Footer/Links/MultiColumn'; @@ -10,7 +9,7 @@ function ColumnLinkItem({item}: {item: ColumnItemType}) {
  • ) : ( diff --git a/src/theme/Footer/Links/Simple/index.tsx b/src/theme/Footer/Links/Simple/index.tsx index 65744e4e6..cb8da4357 100644 --- a/src/theme/Footer/Links/Simple/index.tsx +++ b/src/theme/Footer/Links/Simple/index.tsx @@ -11,7 +11,7 @@ function SimpleLinkItem({item}: {item: Props['links'][number]}) { ) : ( diff --git a/src/theme/Footer/Links/index.tsx b/src/theme/Footer/Links/index.tsx index d9ec3db74..be1f27776 100644 --- a/src/theme/Footer/Links/index.tsx +++ b/src/theme/Footer/Links/index.tsx @@ -1,5 +1,3 @@ -import React from 'react'; - import {isMultiColumnFooterLinks} from '@docusaurus/theme-common'; import FooterLinksMultiColumn from '@theme/Footer/Links/MultiColumn'; import FooterLinksSimple from '@theme/Footer/Links/Simple'; diff --git a/src/theme/Footer/Logo/index.tsx b/src/theme/Footer/Logo/index.tsx index f778e35cc..ecc4c1e1f 100644 --- a/src/theme/Footer/Logo/index.tsx +++ b/src/theme/Footer/Logo/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import clsx from 'clsx'; import Link from '@docusaurus/Link'; import {useBaseUrlUtils} from '@docusaurus/useBaseUrl'; diff --git a/src/theme/Navbar/ColorModeToggle/index.tsx b/src/theme/Navbar/ColorModeToggle/index.tsx index 241b35a34..53f5337cb 100644 --- a/src/theme/Navbar/ColorModeToggle/index.tsx +++ b/src/theme/Navbar/ColorModeToggle/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import {useThemeConfig} from '@docusaurus/theme-common'; import ColorModeToggle from '@theme/ColorModeToggle'; import type {Props} from '@theme/Navbar/ColorModeToggle'; diff --git a/src/theme/Navbar/Content/index.tsx b/src/theme/Navbar/Content/index.tsx index f8bf21e1d..a76943209 100644 --- a/src/theme/Navbar/Content/index.tsx +++ b/src/theme/Navbar/Content/index.tsx @@ -1,4 +1,4 @@ -import React, {type ReactNode} from 'react'; +import {type ReactNode} from 'react'; import {useThemeConfig, ErrorCauseBoundary} from '@docusaurus/theme-common'; import { splitNavbarItems, diff --git a/src/theme/Navbar/Layout/index.tsx b/src/theme/Navbar/Layout/index.tsx index e5ef87d0d..16cad75d1 100644 --- a/src/theme/Navbar/Layout/index.tsx +++ b/src/theme/Navbar/Layout/index.tsx @@ -1,4 +1,4 @@ -import React, { type ComponentProps } from 'react'; +import { type ComponentProps } from 'react'; import clsx from 'clsx'; import { useThemeConfig } from '@docusaurus/theme-common'; import { @@ -23,7 +23,7 @@ function NavbarBackdrop(props: ComponentProps<'div'>) { export default function NavbarLayout({ children }: Props): JSX.Element { const { - navbar: { hideOnScroll, style, title }, + navbar: { hideOnScroll, style }, } = useThemeConfig(); const mobileSidebar = useNavbarMobileSidebar(); const { navbarRef, isNavbarVisible } = useHideableNavbar(hideOnScroll); diff --git a/src/theme/Navbar/Logo/index.tsx b/src/theme/Navbar/Logo/index.tsx index 327d7a18b..b76eb1bd0 100644 --- a/src/theme/Navbar/Logo/index.tsx +++ b/src/theme/Navbar/Logo/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import Logo from '@theme/Logo'; export default function NavbarLogo(): JSX.Element { diff --git a/src/theme/Navbar/MobileSidebar/Header/index.tsx b/src/theme/Navbar/MobileSidebar/Header/index.tsx index d1f1659bb..d22533865 100644 --- a/src/theme/Navbar/MobileSidebar/Header/index.tsx +++ b/src/theme/Navbar/MobileSidebar/Header/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import {translate} from '@docusaurus/Translate'; import NavbarColorModeToggle from '@theme/Navbar/ColorModeToggle'; diff --git a/src/theme/Navbar/MobileSidebar/Layout/index.tsx b/src/theme/Navbar/MobileSidebar/Layout/index.tsx index 6107f5105..b48facf39 100644 --- a/src/theme/Navbar/MobileSidebar/Layout/index.tsx +++ b/src/theme/Navbar/MobileSidebar/Layout/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import clsx from 'clsx'; import {useNavbarSecondaryMenu} from '@docusaurus/theme-common/internal'; import type {Props} from '@theme/Navbar/MobileSidebar/Layout'; diff --git a/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx b/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx index db30be497..cdbc2af00 100644 --- a/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx +++ b/src/theme/Navbar/MobileSidebar/PrimaryMenu/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import {useThemeConfig} from '@docusaurus/theme-common'; import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import NavbarItem, {type Props as NavbarItemConfig} from '@theme/NavbarItem'; diff --git a/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx b/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx index 757f59673..8cd337d98 100644 --- a/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx +++ b/src/theme/Navbar/MobileSidebar/SecondaryMenu/index.tsx @@ -1,4 +1,4 @@ -import React, {type ComponentProps} from 'react'; +import {type ComponentProps} from 'react'; import {useThemeConfig} from '@docusaurus/theme-common'; import {useNavbarSecondaryMenu} from '@docusaurus/theme-common/internal'; import Translate from '@docusaurus/Translate'; diff --git a/src/theme/Navbar/MobileSidebar/Toggle/index.tsx b/src/theme/Navbar/MobileSidebar/Toggle/index.tsx index 9691f103c..f5ca1e043 100644 --- a/src/theme/Navbar/MobileSidebar/Toggle/index.tsx +++ b/src/theme/Navbar/MobileSidebar/Toggle/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import {useNavbarMobileSidebar} from '@docusaurus/theme-common/internal'; import {translate} from '@docusaurus/Translate'; import IconMenu from '@theme/Icon/Menu'; diff --git a/src/theme/Navbar/MobileSidebar/index.tsx b/src/theme/Navbar/MobileSidebar/index.tsx index 484b319b9..710ccb32b 100644 --- a/src/theme/Navbar/MobileSidebar/index.tsx +++ b/src/theme/Navbar/MobileSidebar/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import { useLockBodyScroll, useNavbarMobileSidebar, diff --git a/src/theme/Navbar/Search/index.tsx b/src/theme/Navbar/Search/index.tsx index 788b3f1cd..83630e010 100644 --- a/src/theme/Navbar/Search/index.tsx +++ b/src/theme/Navbar/Search/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import clsx from 'clsx'; import type {Props} from '@theme/Navbar/Search'; diff --git a/src/theme/Navbar/index.tsx b/src/theme/Navbar/index.tsx index a9b61f1ee..146a5c634 100644 --- a/src/theme/Navbar/index.tsx +++ b/src/theme/Navbar/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import NavbarLayout from '@theme/Navbar/Layout'; import NavbarContent from '@theme/Navbar/Content'; diff --git a/src/theme/NotFound/Content/index.tsx b/src/theme/NotFound/Content/index.tsx index 10659e12d..d925c2795 100644 --- a/src/theme/NotFound/Content/index.tsx +++ b/src/theme/NotFound/Content/index.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import clsx from 'clsx'; import Translate from '@docusaurus/Translate'; import type {Props} from '@theme/NotFound/Content'; diff --git a/src/theme/Root.js b/src/theme/Root.js index aac5b08e8..59b6e16c3 100644 --- a/src/theme/Root.js +++ b/src/theme/Root.js @@ -1,4 +1,3 @@ -import React from 'react'; import { defineCustomElements } from '@telekom/scale-components/loader'; import '@telekom/scale-components/dist/scale-components/scale-components.css'; diff --git a/static/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png b/static/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png new file mode 100644 index 000000000..2cbd28be3 Binary files /dev/null and b/static/img/docs/best-practices/storage/object-storage-service/policy-visual-editor.png differ diff --git a/yarn.lock b/yarn.lock index a1a21202b..41ef557a8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -103,7 +103,7 @@ "@algolia/requester-common" "4.24.0" "@algolia/transporter" "4.24.0" -"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@4.24.0": +"@algolia/client-search@4.24.0": version "4.24.0" resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.24.0.tgz" integrity sha512-uRW6EpNapmLAD0mW47OXqTP8eiIx5F6qN9/x/7HHO6owL3N1IXqydGwW5nhDFBrV+ldouro2W1VX3XlcUXEFCA== @@ -195,7 +195,7 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.24.4.tgz" integrity sha512-vg8Gih2MLK+kOkHJp4gBEIkyaIi00jgWot2D9QOmmfLC8jINSOzmCLta6Bvz/JSBCqnegV0L80jhxkol5GWNfQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.0.0-0 || ^8.0.0-0 <8.0.0", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.21.3", "@babel/core@^7.23.3", "@babel/core@^7.4.0 || ^8.0.0-0 <8.0.0": +"@babel/core@^7.21.3", "@babel/core@^7.23.3": version "7.24.4" resolved "https://registry.npmjs.org/@babel/core/-/core-7.24.4.tgz" integrity sha512-MBVlMXP+kkl5394RBLSxxk/iLTeVGuXTV3cIDXavPpMMqnSnt6apKgan/U8O3USWZCWZT/TbgfEpKa4uMgN4Dg== @@ -1189,7 +1189,7 @@ core-js-pure "^3.30.2" regenerator-runtime "^0.14.0" -"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.17.2", "@babel/runtime@^7.22.6", "@babel/runtime@^7.23.2", "@babel/runtime@^7.8.4": +"@babel/runtime@^7.1.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.12.13", "@babel/runtime@^7.12.5", "@babel/runtime@^7.22.6", "@babel/runtime@^7.8.4": version "7.24.4" resolved "https://registry.npmjs.org/@babel/runtime/-/runtime-7.24.4.tgz" integrity sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA== @@ -1265,7 +1265,7 @@ "@docsearch/css" "3.6.0" algoliasearch "^4.19.1" -"@docusaurus/core@^3.4.0", "@docusaurus/core@3.4.0": +"@docusaurus/core@3.4.0", "@docusaurus/core@^3.4.0": version "3.4.0" resolved "https://registry.npmjs.org/@docusaurus/core/-/core-3.4.0.tgz" integrity sha512-g+0wwmN2UJsBqy2fQRQ6fhXruoEa62JDeEa5d8IdTJlMoaDaEDfHh7WjwGRn4opuTQWpjAwP/fbcgyHKlE+64w== @@ -1387,7 +1387,7 @@ vfile "^6.0.1" webpack "^5.88.1" -"@docusaurus/module-type-aliases@^3.4.0", "@docusaurus/module-type-aliases@3.4.0": +"@docusaurus/module-type-aliases@3.4.0", "@docusaurus/module-type-aliases@^3.4.0": version "3.4.0" resolved "https://registry.npmjs.org/@docusaurus/module-type-aliases/-/module-type-aliases-3.4.0.tgz" integrity sha512-A1AyS8WF5Bkjnb8s+guTDuYmUiwJzNrtchebBHpc0gz0PyHJNMaybUlSrmJjHVcGrya0LKI4YcR3lBDQfXRYLw== @@ -1623,7 +1623,7 @@ resolved "https://registry.npmjs.org/@docusaurus/tsconfig/-/tsconfig-3.4.0.tgz" integrity sha512-0qENiJ+TRaeTzcg4olrnh0BQ7eCxTgbYWBnWUeQDc84UYkt/T3pDNnm3SiQkqPb+YQ1qtYFlC0RriAElclo8Dg== -"@docusaurus/types@*", "@docusaurus/types@^3.4.0", "@docusaurus/types@3.4.0": +"@docusaurus/types@3.4.0", "@docusaurus/types@^3.4.0": version "3.4.0" resolved "https://registry.npmjs.org/@docusaurus/types/-/types-3.4.0.tgz" integrity sha512-4jcDO8kXi5Cf9TcyikB/yKmz14f2RZ2qTRerbHAsS+5InE9ZgSLBNLsewtFTcTOXSVcbU3FoGOzcNWAmU1TR0A== @@ -1692,6 +1692,64 @@ dependencies: "@stencil/core" "^2.3.0" +"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": + version "4.4.1" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz" + integrity sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": + version "4.12.1" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz" + integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== + +"@eslint/config-array@^0.18.0": + version "0.18.0" + resolved "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.18.0.tgz" + integrity sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw== + dependencies: + "@eslint/object-schema" "^2.1.4" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/core@^0.7.0": + version "0.7.0" + resolved "https://registry.npmjs.org/@eslint/core/-/core-0.7.0.tgz" + integrity sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw== + +"@eslint/eslintrc@^3.1.0": + version "3.1.0" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.1.0.tgz" + integrity sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ== + dependencies: + ajv "^6.12.4" + debug "^4.3.2" + espree "^10.0.1" + globals "^14.0.0" + ignore "^5.2.0" + import-fresh "^3.2.1" + js-yaml "^4.1.0" + minimatch "^3.1.2" + strip-json-comments "^3.1.1" + +"@eslint/js@9.14.0": + version "9.14.0" + resolved "https://registry.npmjs.org/@eslint/js/-/js-9.14.0.tgz" + integrity sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg== + +"@eslint/object-schema@^2.1.4": + version "2.1.4" + resolved "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.4.tgz" + integrity sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ== + +"@eslint/plugin-kit@^0.2.0": + version "0.2.2" + resolved "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.2.tgz" + integrity sha512-CXtq5nR4Su+2I47WPOlWud98Y5Lv8Kyxp2ukhgFx/eW6Blm18VXJO5WuQylPugRo8nbluoi6GvvxBLqHcvqUUw== + dependencies: + levn "^0.4.1" + "@floating-ui/core@^1.0.0": version "1.6.0" resolved "https://registry.npmjs.org/@floating-ui/core/-/core-1.6.0.tgz" @@ -1724,6 +1782,34 @@ dependencies: "@hapi/hoek" "^9.0.0" +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.6" + resolved "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz" + integrity sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw== + dependencies: + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.3.0" + +"@humanwhocodes/module-importer@^1.0.1": + version "1.0.1" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" + integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== + +"@humanwhocodes/retry@^0.3.0": + version "0.3.1" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz" + integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== + +"@humanwhocodes/retry@^0.4.0": + version "0.4.1" + resolved "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz" + integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== + "@jest/schemas@^29.6.3": version "29.6.3" resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" @@ -1832,7 +1918,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1971,7 +2057,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "8.1.0" "@svgr/babel-plugin-transform-svg-component" "8.0.0" -"@svgr/core@*", "@svgr/core@8.1.0": +"@svgr/core@8.1.0": version "8.1.0" resolved "https://registry.npmjs.org/@svgr/core/-/core-8.1.0.tgz" integrity sha512-8QqtOQT5ACVlmsvKOJNEaWmRPmcojMOzCz4Hs2BGG/toAp/K38LcsMRyLp349glq5AzJbCEeimEoxaX6v/fLrA== @@ -2120,10 +2206,10 @@ dependencies: "@types/estree" "*" -"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz" - integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== +"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.5", "@types/estree@^1.0.6": + version "1.0.6" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz" + integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": version "4.19.0" @@ -2203,7 +2289,7 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/json-schema@*", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": +"@types/json-schema@*", "@types/json-schema@^7.0.15", "@types/json-schema@^7.0.4", "@types/json-schema@^7.0.5", "@types/json-schema@^7.0.8", "@types/json-schema@^7.0.9": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -2300,7 +2386,7 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0", "@types/react@>=16": +"@types/react@*": version "18.2.79" resolved "https://registry.npmjs.org/@types/react/-/react-18.2.79.tgz" integrity sha512-RwGAGXPl9kSXwdNTafkOEuFrTBD5SA2B3iEB96xi8+xu5ddUa/cpvyVCSNn+asgLCTHkb5ZxN8gbuibYJi4s1w== @@ -2380,12 +2466,93 @@ dependencies: "@types/yargs-parser" "*" +"@typescript-eslint/eslint-plugin@8.13.0", "@typescript-eslint/eslint-plugin@^8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz" + integrity sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.13.0" + "@typescript-eslint/type-utils" "8.13.0" + "@typescript-eslint/utils" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" + graphemer "^1.4.0" + ignore "^5.3.1" + natural-compare "^1.4.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/parser@8.13.0", "@typescript-eslint/parser@^8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.13.0.tgz" + integrity sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ== + dependencies: + "@typescript-eslint/scope-manager" "8.13.0" + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/typescript-estree" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" + debug "^4.3.4" + +"@typescript-eslint/scope-manager@8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz" + integrity sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA== + dependencies: + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" + +"@typescript-eslint/type-utils@8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz" + integrity sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA== + dependencies: + "@typescript-eslint/typescript-estree" "8.13.0" + "@typescript-eslint/utils" "8.13.0" + debug "^4.3.4" + ts-api-utils "^1.3.0" + +"@typescript-eslint/types@8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.13.0.tgz" + integrity sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng== + +"@typescript-eslint/typescript-estree@8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz" + integrity sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g== + dependencies: + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" + debug "^4.3.4" + fast-glob "^3.3.2" + is-glob "^4.0.3" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^1.3.0" + +"@typescript-eslint/utils@8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.13.0.tgz" + integrity sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@typescript-eslint/scope-manager" "8.13.0" + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/typescript-estree" "8.13.0" + +"@typescript-eslint/visitor-keys@8.13.0": + version "8.13.0" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz" + integrity sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw== + dependencies: + "@typescript-eslint/types" "8.13.0" + eslint-visitor-keys "^3.4.3" + "@ungap/structured-clone@^1.0.0": version "1.2.0" resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -"@webassemblyjs/ast@^1.12.1", "@webassemblyjs/ast@1.12.1": +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz" integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== @@ -2486,7 +2653,7 @@ "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@^1.12.1", "@webassemblyjs/wasm-parser@1.12.1": +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": version "1.12.1" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz" integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== @@ -2529,7 +2696,7 @@ acorn-import-assertions@^1.9.0: resolved "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.0.0: +acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -2539,10 +2706,10 @@ acorn-walk@^8.0.0: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.2.tgz" integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.0.0, acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: - version "8.11.3" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz" - integrity sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg== +acorn@^8.0.0, acorn@^8.0.4, acorn@^8.14.0, acorn@^8.7.1, acorn@^8.8.2: + version "8.14.0" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz" + integrity sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA== address@^1.0.1, address@^1.1.2: version "1.2.2" @@ -2564,12 +2731,7 @@ ajv-formats@^2.1.1: dependencies: ajv "^8.0.0" -ajv-keywords@^3.4.1: - version "3.5.2" - resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv-keywords@^3.5.2: +ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== @@ -2581,7 +2743,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.5, ajv@^6.9.1: +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2591,7 +2753,7 @@ ajv@^6.12.2, ajv@^6.12.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2608,7 +2770,7 @@ algoliasearch-helper@^3.10.0, algoliasearch-helper@^3.13.3: dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^4.18.0, algoliasearch@^4.19.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6": +algoliasearch@^4.18.0, algoliasearch@^4.19.1: version "4.24.0" resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.24.0.tgz" integrity sha512-bf0QV/9jVejssFBmz2HQLxUadxk574t4iwjCKp5E7NBzwKkrDEhKPISIIjAU/p6K5qDx3qoeh4+26zWN1jmw3g== @@ -2695,16 +2857,93 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-buffer-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz" + integrity sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg== + dependencies: + call-bind "^1.0.5" + is-array-buffer "^3.0.4" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== +array-includes@^3.1.6, array-includes@^3.1.8: + version "3.1.8" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz" + integrity sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + is-string "^1.0.7" + array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +array.prototype.findlast@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/array.prototype.findlast/-/array.prototype.findlast-1.2.5.tgz" + integrity sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-shim-unscopables "^1.0.2" + +array.prototype.flat@^1.3.1: + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" + integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.flatmap@^1.3.2: + version "1.3.2" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" + integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-shim-unscopables "^1.0.0" + +array.prototype.tosorted@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/array.prototype.tosorted/-/array.prototype.tosorted-1.1.4.tgz" + integrity sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" + +arraybuffer.prototype.slice@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz" + integrity sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A== + dependencies: + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.2.1" + get-intrinsic "^1.2.3" + is-array-buffer "^3.0.4" + is-shared-array-buffer "^1.0.2" + astring@^1.8.0: version "1.8.6" resolved "https://registry.npmjs.org/astring/-/astring-1.8.6.tgz" @@ -2732,6 +2971,13 @@ autoprefixer@^10.4.14, autoprefixer@^10.4.19: picocolors "^1.0.0" postcss-value-parser "^4.2.0" +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + axios@^1.6.0: version "1.7.2" resolved "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz" @@ -2872,6 +3118,13 @@ brace-expansion@^1.1.7: balanced-match "^1.0.0" concat-map "0.0.1" +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" @@ -2879,7 +3132,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0, "browserslist@>= 4.21.0": +browserslist@^4.0.0, browserslist@^4.18.1, browserslist@^4.21.10, browserslist@^4.22.2, browserslist@^4.23.0: version "4.23.0" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz" integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== @@ -2922,7 +3175,7 @@ cacheable-request@^10.2.8: normalize-url "^8.0.0" responselike "^3.0.0" -call-bind@^1.0.5, call-bind@^1.0.7: +call-bind@^1.0.2, call-bind@^1.0.5, call-bind@^1.0.6, call-bind@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz" integrity sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w== @@ -3142,16 +3395,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colord@^2.9.3: version "2.9.3" resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" @@ -3360,7 +3613,7 @@ cosmiconfig@^8.1.3, cosmiconfig@^8.3.5: parse-json "^5.2.0" path-type "^4.0.0" -cross-spawn@^7.0.3: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -3529,32 +3782,52 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz" integrity sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw== +data-view-buffer@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz" + integrity sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz" + integrity sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +data-view-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz" + integrity sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-data-view "^1.0.1" + debounce@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz" integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== -debug@^2.6.0: +debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@4: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - decode-named-character-reference@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz" @@ -3574,6 +3847,11 @@ deep-extend@^0.6.0: resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@^0.1.3: + version "0.1.4" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deepmerge@^4.2.2, deepmerge@^4.3.1: version "4.3.1" resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" @@ -3605,7 +3883,7 @@ define-lazy-prop@^2.0.0: resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.2.1: +define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -3633,16 +3911,16 @@ delayed-stream@~1.0.0: resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + dequal@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz" @@ -3695,6 +3973,13 @@ dns-packet@^5.2.2: dependencies: "@leichtgewicht/ip-codec" "^2.0.1" +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + docusaurus-theme-search-typesense@^0.20.0: version "0.20.0" resolved "https://registry.npmjs.org/docusaurus-theme-search-typesense/-/docusaurus-theme-search-typesense-0.20.0.tgz" @@ -3867,6 +4152,58 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.17.5, es-abstract@^1.22.1, es-abstract@^1.22.3, es-abstract@^1.23.0, es-abstract@^1.23.1, es-abstract@^1.23.2, es-abstract@^1.23.3: + version "1.23.3" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.3.tgz" + integrity sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A== + dependencies: + array-buffer-byte-length "^1.0.1" + arraybuffer.prototype.slice "^1.0.3" + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + data-view-buffer "^1.0.1" + data-view-byte-length "^1.0.1" + data-view-byte-offset "^1.0.0" + es-define-property "^1.0.0" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + es-set-tostringtag "^2.0.3" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.4" + get-symbol-description "^1.0.2" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + hasown "^2.0.2" + internal-slot "^1.0.7" + is-array-buffer "^3.0.4" + is-callable "^1.2.7" + is-data-view "^1.0.1" + is-negative-zero "^2.0.3" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.3" + is-string "^1.0.7" + is-typed-array "^1.1.13" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.5" + regexp.prototype.flags "^1.5.2" + safe-array-concat "^1.1.2" + safe-regex-test "^1.0.3" + string.prototype.trim "^1.2.9" + string.prototype.trimend "^1.0.8" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.2" + typed-array-byte-length "^1.0.1" + typed-array-byte-offset "^1.0.2" + typed-array-length "^1.0.6" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.15" + es-define-property@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz" @@ -3874,16 +4211,69 @@ es-define-property@^1.0.0: dependencies: get-intrinsic "^1.2.4" -es-errors@^1.3.0: +es-errors@^1.2.1, es-errors@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz" integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== +es-iterator-helpers@^1.1.0: + version "1.2.0" + resolved "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz" + integrity sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.3" + es-errors "^1.3.0" + es-set-tostringtag "^2.0.3" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" + globalthis "^1.0.4" + gopd "^1.0.1" + has-property-descriptors "^1.0.2" + has-proto "^1.0.3" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + iterator.prototype "^1.1.3" + safe-array-concat "^1.1.2" + es-module-lexer@^1.2.1: version "1.5.0" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.0.tgz" integrity sha512-pqrTKmwEIgafsYZAGw9kszYzmagcE/n4dbgwGWLEXg7J4QFJVQRBld8j3Q3GNez79jzxZshq0bcT962QHOghjw== +es-object-atoms@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.0.0.tgz" + integrity sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw== + dependencies: + es-errors "^1.3.0" + +es-set-tostringtag@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz" + integrity sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ== + dependencies: + get-intrinsic "^1.2.4" + has-tostringtag "^1.0.2" + hasown "^2.0.1" + +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== + dependencies: + hasown "^2.0.0" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + escalade@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz" @@ -3914,6 +4304,30 @@ escape-string-regexp@^5.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== +eslint-plugin-react@^7.37.2: + version "7.37.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz#cd0935987876ba2900df2f58339f6d92305acc7a" + integrity sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w== + dependencies: + array-includes "^3.1.8" + array.prototype.findlast "^1.2.5" + array.prototype.flatmap "^1.3.2" + array.prototype.tosorted "^1.1.4" + doctrine "^2.1.0" + es-iterator-helpers "^1.1.0" + estraverse "^5.3.0" + hasown "^2.0.2" + jsx-ast-utils "^2.4.1 || ^3.0.0" + minimatch "^3.1.2" + object.entries "^1.1.8" + object.fromentries "^2.0.8" + object.values "^1.2.0" + prop-types "^15.8.1" + resolve "^2.0.0-next.5" + semver "^6.3.1" + string.prototype.matchall "^4.0.11" + string.prototype.repeat "^1.0.0" + eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" @@ -3922,11 +4336,86 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" +eslint-scope@^8.2.0: + version "8.2.0" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz" + integrity sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A== + dependencies: + esrecurse "^4.3.0" + estraverse "^5.2.0" + +eslint-visitor-keys@^3.4.3: + version "3.4.3" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" + integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== + +eslint-visitor-keys@^4.2.0: + version "4.2.0" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz" + integrity sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw== + +eslint@^9.14.0: + version "9.14.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.14.0.tgz#534180a97c00af08bcf2b60b0ebf0c4d6c1b2c95" + integrity sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g== + dependencies: + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.18.0" + "@eslint/core" "^0.7.0" + "@eslint/eslintrc" "^3.1.0" + "@eslint/js" "9.14.0" + "@eslint/plugin-kit" "^0.2.0" + "@humanfs/node" "^0.16.6" + "@humanwhocodes/module-importer" "^1.0.1" + "@humanwhocodes/retry" "^0.4.0" + "@types/estree" "^1.0.6" + "@types/json-schema" "^7.0.15" + ajv "^6.12.4" + chalk "^4.0.0" + cross-spawn "^7.0.2" + debug "^4.3.2" + escape-string-regexp "^4.0.0" + eslint-scope "^8.2.0" + eslint-visitor-keys "^4.2.0" + espree "^10.3.0" + esquery "^1.5.0" + esutils "^2.0.2" + fast-deep-equal "^3.1.3" + file-entry-cache "^8.0.0" + find-up "^5.0.0" + glob-parent "^6.0.2" + ignore "^5.2.0" + imurmurhash "^0.1.4" + is-glob "^4.0.0" + json-stable-stringify-without-jsonify "^1.0.1" + lodash.merge "^4.6.2" + minimatch "^3.1.2" + natural-compare "^1.4.0" + optionator "^0.9.3" + text-table "^0.2.0" + +espree@^10.0.1, espree@^10.3.0: + version "10.3.0" + resolved "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz" + integrity sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg== + dependencies: + acorn "^8.14.0" + acorn-jsx "^5.3.2" + eslint-visitor-keys "^4.2.0" + esprima@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== +esquery@^1.5.0: + version "1.6.0" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz" + integrity sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg== + dependencies: + estraverse "^5.1.0" + esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" @@ -3939,7 +4428,7 @@ estraverse@^4.1.1: resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.2.0: +estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== @@ -4099,7 +4588,7 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0: +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.0, fast-glob@^3.3.2: version "3.3.2" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== @@ -4115,6 +4604,11 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@^2.0.6: + version "2.0.6" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + fast-url-parser@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz" @@ -4150,7 +4644,14 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" -file-loader@*, file-loader@^6.2.0: +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== + dependencies: + flat-cache "^4.0.0" + +file-loader@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== @@ -4214,16 +4715,36 @@ find-up@^6.3.0: locate-path "^7.1.0" path-exists "^5.0.0" +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== + dependencies: + flatted "^3.2.9" + keyv "^4.5.4" + flat@^5.0.2: version "5.0.2" resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== +flatted@^3.2.9: + version "3.3.1" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz" + integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw== + follow-redirects@^1.0.0, follow-redirects@^1.15.6: version "1.15.6" resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz" integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + fork-ts-checker-webpack-plugin@^6.5.0: version "6.5.3" resolved "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz" @@ -4315,17 +4836,37 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== +fsevents@~2.3.2: + version "2.3.3" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== + function-bind@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + version "1.2.3" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-intrinsic@^1.1.3, get-intrinsic@^1.2.4: +get-intrinsic@^1.1.3, get-intrinsic@^1.2.1, get-intrinsic@^1.2.3, get-intrinsic@^1.2.4: version "1.2.4" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz" integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ== @@ -4346,6 +4887,15 @@ get-stream@^6.0.0, get-stream@^6.0.1: resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +get-symbol-description@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz" + integrity sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg== + dependencies: + call-bind "^1.0.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + github-slugger@^1.5.0: version "1.5.0" resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz" @@ -4358,7 +4908,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-parent@^6.0.1: +glob-parent@^6.0.1, glob-parent@^6.0.2: version "6.0.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== @@ -4410,6 +4960,24 @@ globals@^11.1.0: resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== +globals@^14.0.0: + version "14.0.0" + resolved "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== + +globals@^15.12.0: + version "15.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.12.0.tgz#1811872883ad8f41055b61457a130221297de5b5" + integrity sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ== + +globalthis@^1.0.3, globalthis@^1.0.4: + version "1.0.4" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== + dependencies: + define-properties "^1.2.1" + gopd "^1.0.1" + globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" @@ -4457,15 +5025,20 @@ got@^12.1.0: p-cancelable "^3.0.0" responselike "^3.0.0" +graceful-fs@4.2.10: + version "4.2.10" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -graceful-fs@4.2.10: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== gray-matter@^4.0.3: version "4.0.3" @@ -4489,6 +5062,11 @@ handle-thing@^2.0.0: resolved "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + has-flag@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" @@ -4506,22 +5084,29 @@ has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: dependencies: es-define-property "^1.0.0" -has-proto@^1.0.1: +has-proto@^1.0.1, has-proto@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz" integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q== -has-symbols@^1.0.3: +has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-tostringtag@^1.0.0, has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== + dependencies: + has-symbols "^1.0.3" + has-yarn@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/has-yarn/-/has-yarn-3.0.0.tgz" integrity sha512-IrsVwUHhEULx3R8f/aA8AHuEzAorplsab/v8HBzEiIukwq5i/EC+xmOW+HfP1OaDP+2JkgT1yILHN2O3UFIbcA== -hasown@^2.0.0: +hasown@^2.0.0, hasown@^2.0.1, hasown@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz" integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== @@ -4763,16 +5348,6 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -4784,6 +5359,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -4834,7 +5419,7 @@ icss-utils@^5.0.0, icss-utils@^5.1.0: resolved "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz" integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0, ignore@^5.2.4, ignore@^5.3.1: version "5.3.1" resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz" integrity sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw== @@ -4851,7 +5436,7 @@ immer@^9.0.7: resolved "https://registry.npmjs.org/immer/-/immer-9.0.21.tgz" integrity sha512-bc4NBHqOqSfRW7POMkHd51LvClaeMXpm8dx0e8oE2GORbq5aRK7Bxl4FyzVLdGtLmvLKL7BTDBG5ACQm4HWjTA== -import-fresh@^3.1.0, import-fresh@^3.3.0: +import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -4887,7 +5472,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4897,16 +5482,16 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - ini@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inline-style-parser@0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" @@ -4917,6 +5502,15 @@ inline-style-parser@0.2.3: resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.2.3.tgz" integrity sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g== +internal-slot@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz" + integrity sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g== + dependencies: + es-errors "^1.3.0" + hasown "^2.0.0" + side-channel "^1.0.4" + interpret@^1.0.0: version "1.4.0" resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" @@ -4929,16 +5523,16 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -ipaddr.js@^2.0.1: - version "2.2.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" - integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== +ipaddr.js@^2.0.1: + version "2.2.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz" + integrity sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA== + is-alphabetical@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.1.tgz" @@ -4952,11 +5546,33 @@ is-alphanumerical@^2.0.0: is-alphabetical "^2.0.0" is-decimal "^2.0.0" +is-array-buffer@^3.0.4: + version "3.0.4" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz" + integrity sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-async-function@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/is-async-function/-/is-async-function-2.0.0.tgz" + integrity sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA== + dependencies: + has-tostringtag "^1.0.0" + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" @@ -4964,6 +5580,19 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + is-ci@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz" @@ -4978,6 +5607,20 @@ is-core-module@^2.13.0: dependencies: hasown "^2.0.0" +is-data-view@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz" + integrity sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w== + dependencies: + is-typed-array "^1.1.13" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + is-decimal@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.1.tgz" @@ -4998,12 +5641,26 @@ is-extglob@^2.1.1: resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.0.2.tgz" + integrity sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw== + dependencies: + call-bind "^1.0.2" + is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: +is-generator-function@^1.0.10: + version "1.0.10" + resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz" + integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== + dependencies: + has-tostringtag "^1.0.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -5023,11 +5680,28 @@ is-installed-globally@^0.4.0: global-dirs "^3.0.0" is-path-inside "^3.0.2" +is-map@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== + is-npm@^6.0.0: version "6.0.0" resolved "https://registry.npmjs.org/is-npm/-/is-npm-6.0.0.tgz" integrity sha512-JEjxbSmtPSt1c8XTkVrlujcXdKV1/tvuQ7GwKcAlyiVLeYFQ2VHat8xfrDJsIkhCdF/tZ7CiIR3sy141c6+gPQ== +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" @@ -5077,6 +5751,14 @@ is-reference@^3.0.0: dependencies: "@types/estree" "*" +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-regexp@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz" @@ -5087,16 +5769,69 @@ is-root@^2.1.0: resolved "https://registry.npmjs.org/is-root/-/is-root-2.1.0.tgz" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== +is-set@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.2, is-shared-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz" + integrity sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg== + dependencies: + call-bind "^1.0.7" + is-stream@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz" + integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + dependencies: + which-typed-array "^1.1.14" + is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.3: + version "2.0.3" + resolved "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz" + integrity sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" @@ -5109,16 +5844,21 @@ is-yarn-global@^0.4.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.4.1.tgz" integrity sha512-/kppl+R+LO5VmhYSEWARUFjodS25D68gvj8W7z0I7OWhUla5xWu8KL6CtB2V0R6yqhnRgbcaREMr4EEM6htLPQ== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -5129,6 +5869,17 @@ isobject@^3.0.1: resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== +iterator.prototype@^1.1.3: + version "1.1.3" + resolved "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz" + integrity sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ== + dependencies: + define-properties "^1.2.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + reflect.getprototypeof "^1.0.4" + set-function-name "^2.0.1" + jest-util@^29.7.0: version "29.7.0" resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" @@ -5226,6 +5977,11 @@ json-schema-traverse@^1.0.0: resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" + integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== + json5@^2.1.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" @@ -5240,7 +5996,17 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" -keyv@^4.5.3: +"jsx-ast-utils@^2.4.1 || ^3.0.0": + version "3.3.5" + resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.3.5.tgz" + integrity sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ== + dependencies: + array-includes "^3.1.6" + array.prototype.flat "^1.3.1" + object.assign "^4.1.4" + object.values "^1.1.6" + +keyv@^4.5.3, keyv@^4.5.4: version "4.5.4" resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== @@ -5277,6 +6043,14 @@ leven@^3.1.0: resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@^0.4.1: + version "0.4.1" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" + integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== + dependencies: + prelude-ls "^1.2.1" + type-check "~0.4.0" + lilconfig@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.2.tgz" @@ -5338,6 +6112,11 @@ lodash.memoize@^4.1.2: resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== + lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" @@ -6084,7 +6863,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -"mime-db@>= 1.43.0 < 2": +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -6094,40 +6873,14 @@ mime-db@~1.33.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@2.1.18: +mime-types@2.1.18, mime-types@^2.1.12, mime-types@~2.1.17: version "2.1.18" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: mime-db "~1.33.0" -mime-types@^2.1.27: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@^2.1.31: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@~2.1.24: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6167,13 +6920,20 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2: +minimatch@3.1.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^9.0.4: + version "9.0.5" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== + dependencies: + brace-expansion "^2.0.1" + minimist@^1.2.0: version "1.2.8" resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" @@ -6212,6 +6972,11 @@ nanoid@^3.3.7: resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz" integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" + integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== + negotiator@0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" @@ -6299,7 +7064,7 @@ object-keys@^1.1.1: resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.0: +object.assign@^4.1.0, object.assign@^4.1.4, object.assign@^4.1.5: version "4.1.5" resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== @@ -6309,6 +7074,34 @@ object.assign@^4.1.0: has-symbols "^1.0.3" object-keys "^1.1.1" +object.entries@^1.1.8: + version "1.1.8" + resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.8.tgz" + integrity sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" + +object.values@^1.1.6, object.values@^1.2.0: + version "1.2.0" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz" + integrity sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz" @@ -6354,6 +7147,18 @@ opener@^1.5.2: resolved "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== +optionator@^0.9.3: + version "0.9.4" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz" + integrity sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g== + dependencies: + deep-is "^0.1.3" + fast-levenshtein "^2.0.6" + levn "^0.4.1" + prelude-ls "^1.2.1" + type-check "^0.4.0" + word-wrap "^1.2.5" + p-cancelable@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-3.0.0.tgz" @@ -6538,13 +7343,6 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" @@ -6555,6 +7353,13 @@ path-to-regexp@2.2.1: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz" integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" @@ -6593,6 +7398,11 @@ pkg-up@^3.1.0: dependencies: find-up "^3.0.0" +possible-typed-array-names@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz" + integrity sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q== + postcss-calc@^9.0.1: version "9.0.1" resolved "https://registry.npmjs.org/postcss-calc/-/postcss-calc-9.0.1.tgz" @@ -6873,7 +7683,7 @@ postcss-zindex@^6.0.2: resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-6.0.2.tgz" integrity sha512-5BxW9l1evPB/4ZIc+2GobEBoKC+h8gPGCMi+jxsYvd2x0mjq7wazk6DrP71pStqxE9Foxh5TVnonbWpFZzXaYg== -"postcss@^7.0.0 || ^8.0.1", postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.2, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.31, postcss@^8.4.33, postcss@^8.4.38: +postcss@^8.4.21, postcss@^8.4.24, postcss@^8.4.26, postcss@^8.4.33, postcss@^8.4.38: version "8.4.38" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz" integrity sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A== @@ -6882,6 +7692,11 @@ postcss-zindex@^6.0.2: picocolors "^1.0.0" source-map-js "^1.2.0" +prelude-ls@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" + integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== + pretty-error@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/pretty-error/-/pretty-error-4.0.0.tgz" @@ -6921,7 +7736,7 @@ prompts@^2.4.2: kleur "^3.0.3" sisteransi "^1.0.5" -prop-types@^15.6.2, prop-types@^15.7.2: +prop-types@^15.6.2, prop-types@^15.7.2, prop-types@^15.8.1: version "15.8.1" resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz" integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== @@ -7001,21 +7816,16 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - range-parser@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + raw-body@2.5.2: version "2.5.2" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz" @@ -7066,7 +7876,7 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", react-dom@^18.0.0, react-dom@^18.3.1, "react-dom@>= 16.8.0 < 19.0.0": +react-dom@^18.3.1: version "18.3.1" resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz" integrity sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw== @@ -7112,7 +7922,7 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@6.0.0": +"react-loadable@npm:@docusaurus/react-loadable@6.0.0": version "6.0.0" resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-6.0.0.tgz" integrity sha512-YMMxTUQV/QFSnbgrP3tjDzLHRg7vsbMn8e9HAa8o/1iXoiomo48b7sk/kkmWEuWNDPJVlKSJRB6Y2fHqdJk+SQ== @@ -7139,7 +7949,7 @@ react-router-dom@^5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@^5.3.4, react-router@>=5, react-router@5.3.4: +react-router@5.3.4, react-router@^5.3.4: version "5.3.4" resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== @@ -7154,7 +7964,7 @@ react-router@^5.3.4, react-router@>=5, react-router@5.3.4: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react@*, "react@^16.13.1 || ^17.0.0 || ^18.0.0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", react@^18.0.0, react@^18.3.1, "react@>= 16.8.0 < 19.0.0", react@>=15, react@>=16, react@>=16.0.0: +react@^18.3.1: version "18.3.1" resolved "https://registry.npmjs.org/react/-/react-18.3.1.tgz" integrity sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ== @@ -7209,6 +8019,19 @@ recursive-readdir@^2.2.2: dependencies: minimatch "^3.0.5" +reflect.getprototypeof@^1.0.4: + version "1.0.6" + resolved "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.6.tgz" + integrity sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.1" + es-errors "^1.3.0" + get-intrinsic "^1.2.4" + globalthis "^1.0.3" + which-builtin-type "^1.1.3" + regenerate-unicode-properties@^10.1.0: version "10.1.1" resolved "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.1.tgz" @@ -7233,6 +8056,16 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" +regexp.prototype.flags@^1.5.2: + version "1.5.3" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.3.tgz" + integrity sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-errors "^1.3.0" + set-function-name "^2.0.2" + regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.3.2.tgz" @@ -7411,6 +8244,15 @@ resolve@^1.1.6, resolve@^1.14.2: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@^2.0.0-next.5: + version "2.0.0-next.5" + resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.5.tgz" + integrity sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA== + dependencies: + is-core-module "^2.13.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + responselike@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/responselike/-/responselike-3.0.0.tgz" @@ -7457,20 +8299,34 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== +safe-array-concat@^1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz" + integrity sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q== + dependencies: + call-bind "^1.0.7" + get-intrinsic "^1.2.4" + has-symbols "^1.0.3" + isarray "^2.0.5" -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.3: + version "1.0.3" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz" + integrity sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw== + dependencies: + call-bind "^1.0.6" + es-errors "^1.3.0" + is-regex "^1.1.4" "safer-buffer@>= 2.1.2 < 3": version "2.1.2" @@ -7489,25 +8345,16 @@ scheduler@^0.23.2: dependencies: loose-envify "^1.1.0" -schema-utils@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.1: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" -schema-utils@^3.2.0: +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -7526,20 +8373,6 @@ schema-utils@^4.0.0, schema-utils@^4.0.1: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -"search-insights@>= 1 < 3": - version "2.14.0" - resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.14.0.tgz" - integrity sha512-OLN6MsPMCghDOqlCtsIsYgtsC0pnwVTyT9Mu6A3ewOj1DxvzZF6COrn2g86E/c05xbktB0XN04m/t1Z+n+fTGw== - section-matter@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" @@ -7573,7 +8406,7 @@ semver@^6.3.1: resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4: +semver@^7.3.2, semver@^7.3.5, semver@^7.3.7, semver@^7.5.4, semver@^7.6.0: version "7.6.0" resolved "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz" integrity sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg== @@ -7655,6 +8488,16 @@ set-function-length@^1.2.1: gopd "^1.0.1" has-property-descriptors "^1.0.2" +set-function-name@^2.0.1, set-function-name@^2.0.2: + version "2.0.2" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== + dependencies: + define-data-property "^1.1.4" + es-errors "^1.3.0" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.2" + setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz" @@ -7703,7 +8546,7 @@ shelljs@^0.8.5: interpret "^1.0.0" rechoir "^0.6.2" -side-channel@^1.0.4: +side-channel@^1.0.4, side-channel@^1.0.6: version "1.0.6" resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz" integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA== @@ -7794,7 +8637,7 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0: +source-map@^0.6.0, source-map@~0.6.0: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -7804,11 +8647,6 @@ source-map@^0.7.0: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -source-map@~0.6.0: - version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - space-separated-tokens@^2.0.0: version "2.0.2" resolved "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz" @@ -7847,16 +8685,16 @@ srcset@^4.0.0: resolved "https://registry.npmjs.org/srcset/-/srcset-4.0.0.tgz" integrity sha512-wvLeHgcVHKO8Sc/H/5lkGreJQVeYMm9rlmt8PuR1xE31rIuXhuzznUUqAt8MqLhB3MqJdFzlNAfpcWnxiFUcPw== -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + std-env@^3.0.1: version "3.7.0" resolved "https://registry.npmjs.org/std-env/-/std-env-3.7.0.tgz" @@ -7867,30 +8705,7 @@ stencil-inline-svg@^1.0.1: resolved "https://registry.npmjs.org/stencil-inline-svg/-/stencil-inline-svg-1.1.0.tgz" integrity sha512-couT89xzsoycwHOIAgnl3WBpXaVRQ3ZlUBINo7HsT/AtWaFW9cxGlAzsK2JzkzxK7yUuoeIpdH2fNlvuH06DRg== -string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -string-width@^4.1.0: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -7908,6 +8723,74 @@ string-width@^5.0.1, string-width@^5.1.2: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string.prototype.matchall@^4.0.11: + version "4.0.11" + resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz" + integrity sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.4" + gopd "^1.0.1" + has-symbols "^1.0.3" + internal-slot "^1.0.7" + regexp.prototype.flags "^1.5.2" + set-function-name "^2.0.2" + side-channel "^1.0.6" + +string.prototype.repeat@^1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-1.0.0.tgz" + integrity sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trim@^1.2.9: + version "1.2.9" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz" + integrity sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.0" + es-object-atoms "^1.0.0" + +string.prototype.trimend@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz" + integrity sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + stringify-entities@^4.0.0: version "4.0.4" resolved "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.4.tgz" @@ -8108,11 +8991,23 @@ trough@^2.0.0: resolved "https://registry.npmjs.org/trough/-/trough-2.2.0.tgz" integrity sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw== +ts-api-utils@^1.3.0: + version "1.4.0" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz" + integrity sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ== + tslib@^2.0.3, tslib@^2.4.0, tslib@^2.6.0: version "2.6.2" resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== +type-check@^0.4.0, type-check@~0.4.0: + version "0.4.0" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" + integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== + dependencies: + prelude-ls "^1.2.1" + type-fest@^1.0.1: version "1.4.0" resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" @@ -8131,6 +9026,50 @@ type-is@~1.6.18: media-typer "0.3.0" mime-types "~2.1.24" +typed-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz" + integrity sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ== + dependencies: + call-bind "^1.0.7" + es-errors "^1.3.0" + is-typed-array "^1.1.13" + +typed-array-byte-length@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz" + integrity sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-byte-offset@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz" + integrity sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + +typed-array-length@^1.0.6: + version "1.0.6" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.6.tgz" + integrity sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g== + dependencies: + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-proto "^1.0.3" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz" @@ -8138,7 +9077,16 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -"typescript@>= 2.7", typescript@>=4.9.5, typescript@~5.5.2: +typescript-eslint@^8.13.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.13.0.tgz#c7d92cc06188176c7d0e3825e10305b9c22fb102" + integrity sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw== + dependencies: + "@typescript-eslint/eslint-plugin" "8.13.0" + "@typescript-eslint/parser" "8.13.0" + "@typescript-eslint/utils" "8.13.0" + +typescript@~5.5.2: version "5.5.2" resolved "https://registry.npmjs.org/typescript/-/typescript-5.5.2.tgz" integrity sha512-NcRtPEOsPFFWjobJEtfihkLCZCXZt/os3zf8nTxjVH3RvTSxjrCamJpbExGvYOF+tFHc3pA65qpdwPbzjohhew== @@ -8174,6 +9122,16 @@ typesense@^1.7.2: axios "^1.6.0" loglevel "^1.8.1" +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + undici-types@~5.26.4: version "5.26.5" resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" @@ -8285,7 +9243,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz" integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -8493,7 +9451,7 @@ webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.88.1, "webpack@>= 4", "webpack@>=4.41.1 || 5.x", webpack@>=5, "webpack@3 || 4 || 5": +webpack@^5.88.1: version "5.91.0" resolved "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz" integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== @@ -8533,7 +9491,7 @@ webpackbar@^5.0.2: pretty-time "^1.1.0" std-env "^3.0.1" -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== @@ -8547,6 +9505,56 @@ websocket-extensions@>=0.1.1: resolved "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-builtin-type@^1.1.3: + version "1.1.4" + resolved "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.1.4.tgz" + integrity sha512-bppkmBSsHFmIMSl8BO9TbsyzsvGjVoppt8xUiGzwiu/bhDCGxnpOKCxgqj6GuyHE0mINMDecBFPlOm2hzY084w== + dependencies: + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.0.5" + is-finalizationregistry "^1.0.2" + is-generator-function "^1.0.10" + is-regex "^1.1.4" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.2" + which-typed-array "^1.1.15" + +which-collection@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-typed-array@^1.1.14, which-typed-array@^1.1.15: + version "1.1.15" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.15.tgz" + integrity sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.7" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.2" + which@^1.3.1: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" @@ -8573,6 +9581,11 @@ wildcard@^2.0.0: resolved "https://registry.npmjs.org/wildcard/-/wildcard-2.0.1.tgz" integrity sha512-CC1bOL87PIWSBhDcTrdeLo6eGT7mCFtrg0uIJtqJUFyK+eJnzl8A1niH56uu7KMa5XFrtiV+AQuHO3n7DsHnLQ== +word-wrap@^1.2.5: + version "1.2.5" + resolved "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"