diff --git a/.env b/.env deleted file mode 100644 index 1d5cb571e..000000000 --- a/.env +++ /dev/null @@ -1,25 +0,0 @@ -################################################################################# -# Catena-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - -VITE_APP_NAME=Product Passport Application -VITE_BASE_URL=http://localhost:8080 diff --git a/.github/dependabot.yaml b/.github/dependabot.yaml index e39ac137c..592653553 100644 --- a/.github/dependabot.yaml +++ b/.github/dependabot.yaml @@ -59,7 +59,7 @@ updates: - package-ecosystem: "docker" target-branch: main - directory: / + directory: ./dpp-frontend/ labels: - "dependabot" - "docker" diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml index 2c9e89366..373fb1cfe 100644 --- a/.github/workflows/eslint.yml +++ b/.github/workflows/eslint.yml @@ -48,6 +48,7 @@ jobs: - name: Install ESLint run: | + cd dpp-frontend npm install eslint@8.10.0 --legacy-peer-deps npm install @microsoft/eslint-formatter-sarif@2.1.7 --legacy-peer-deps diff --git a/.github/workflows/helm-test.yaml b/.github/workflows/helm-test.yaml index 909a91bff..8db045804 100644 --- a/.github/workflows/helm-test.yaml +++ b/.github/workflows/helm-test.yaml @@ -73,7 +73,7 @@ jobs: id: build-frontend uses: docker/build-push-action@v3 with: - context: . + context: dpp-frontend push: true tags: ${{ env.REGISTRY }}/${{ env.FRONTEND_IMAGE}}:${{ env.TAG }} diff --git a/.github/workflows/publish-dpp-backend-docker-image.yml b/.github/workflows/publish-dpp-backend-docker-image.yml index bc3131c3c..9330345dc 100644 --- a/.github/workflows/publish-dpp-backend-docker-image.yml +++ b/.github/workflows/publish-dpp-backend-docker-image.yml @@ -48,7 +48,8 @@ env: IMAGE_NAMESPACE: 'tractusx' jobs: - build: + build-on-docker: + if: github.repository == 'eclipse-tractusx/digital-product-pass' runs-on: ubuntu-latest permissions: packages: write @@ -59,17 +60,13 @@ jobs: with: ref: ${{ github.ref }} - - name: Setup Java - uses: ./.github/actions/setup-java - - # Build actions for GHCR registry - - name: Docker meta for GHCR - id: meta-for-ghcr - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + # Build actions for docker hub registry + - name: Docker meta + id: meta-for-dockerhub uses: docker/metadata-action@v5 with: images: | - ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }} + ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} tags: | type=ref,event=branch type=ref,event=pr @@ -77,43 +74,64 @@ jobs: type=semver,pattern={{major}} type=semver,pattern={{major}}.{{minor}} - # Login against GHCR registry + # Login against docker registry # https://github.com/docker/login-action - - name: Log into GHCR registry - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + - name: Log into a Docker registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} # Build Java code with Maven - - name: Build dpp backend with maven for GHCR registry - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + - name: Build dpp backend with maven run: | cd dpp-backend/digitalproductpass mvn -B clean install - + # Build and push Docker image with Buildx # https://github.com/docker/build-push-action - - name: Build and push backend for GHCR registry - id: build-and-push-backend-ghcr - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + - name: Build and push backend + id: build-and-push-backend-dockerhub uses: docker/build-push-action@v5 with: context: dpp-backend/digitalproductpass push: true - tags: ${{ steps.meta-for-ghcr.outputs.tags }}, ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }}:latest - labels: ${{ steps.meta-for-ghcr.outputs.labels }} + tags: ${{ steps.meta-for-dockerhub.outputs.tags }}, ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta-for-dockerhub.outputs.labels }} - # Build actions for docker hub registry - - name: Docker meta for Docker Hub - id: meta-for-dockerhub - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + # https://github.com/peter-evans/dockerhub-description + # Important step to push image description to DockerHub + - name: Update Docker Hub description + uses: peter-evans/dockerhub-description@v4 + with: + # readme-filepath defaults to toplevel README.md, Only necessary if you have a dedicated file with your 'Notice for docker images' + readme-filepath: docs/notice.md + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + + build-on-ghcr: + if: github.repository != 'eclipse-tractusx/digital-product-pass' + runs-on: ubuntu-latest + permissions: + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + - name: Setup Java + uses: ./.github/actions/setup-java + + # Build actions for GHCR registry + - name: Docker meta + id: meta-for-ghcr uses: docker/metadata-action@v5 with: images: | - ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }} tags: | type=ref,event=branch type=ref,event=pr @@ -121,42 +139,28 @@ jobs: type=semver,pattern={{major}} type=semver,pattern={{major}}.{{minor}} - # Login against docker registry + # Login against GHCR registry # https://github.com/docker/login-action - - name: Log into a Docker registry - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + - name: Log into GHCR registry uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_HUB_USER }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} # Build Java code with Maven - - name: Build dpp backend with maven for Docker Hub - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + - name: Build dpp backend with maven run: | cd dpp-backend/digitalproductpass mvn -B clean install - + # Build and push Docker image with Buildx # https://github.com/docker/build-push-action - - name: Build and push backend for Docker Hub - id: build-and-push-backend-dockerhub - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + - name: Build and push backend + id: build-and-push-backend-ghcr uses: docker/build-push-action@v5 with: context: dpp-backend/digitalproductpass push: true - tags: ${{ steps.meta-for-dockerhub.outputs.tags }}, ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest - labels: ${{ steps.meta-for-dockerhub.outputs.labels }} - - # https://github.com/peter-evans/dockerhub-description - # Important step to push image description to DockerHub - - name: Update Docker Hub description - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} - uses: peter-evans/dockerhub-description@v4 - with: - # readme-filepath defaults to toplevel README.md, Only necessary if you have a dedicated file with your 'Notice for docker images' - readme-filepath: docs/notice.md - username: ${{ secrets.DOCKER_HUB_USER }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} - repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + tags: ${{ steps.meta-for-ghcr.outputs.tags }}, ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta-for-ghcr.outputs.labels }} diff --git a/.github/workflows/publish-dpp-frontend-docker-image.yml b/.github/workflows/publish-dpp-frontend-docker-image.yml index 2d3b06057..b2b9e4869 100644 --- a/.github/workflows/publish-dpp-frontend-docker-image.yml +++ b/.github/workflows/publish-dpp-frontend-docker-image.yml @@ -49,26 +49,21 @@ env: REPO_URL: ${{ github.server_url }}/${{ github.repository }} jobs: - build: - + build-on-docker: + if: github.repository == 'eclipse-tractusx/digital-product-pass' runs-on: ubuntu-latest permissions: packages: write steps: - - name: Checkout repository - uses: actions/checkout@v4 - with: - ref: ${{ github.ref }} - - # Build actions for GHCR registry - - name: Docker meta for GHCR - id: meta-for-ghcr - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + # Build actions for docker hub registry + - name: Docker meta + id: meta-for-dockerhub uses: docker/metadata-action@v5 with: + context: dpp-frontend images: | - ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }} + ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} tags: | type=ref,event=branch type=ref,event=pr @@ -76,38 +71,59 @@ jobs: type=semver,pattern={{major}} type=semver,pattern={{major}}.{{minor}} - # Login against GHCR registry + # Login against docker registry # https://github.com/docker/login-action - - name: Log into GHCR registry - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + - name: Log into a Docker registry uses: docker/login-action@v3 with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} # Build and push Docker image with Buildx # https://github.com/docker/build-push-action - - name: Build and push frontend for GHCR registry - id: build-and-push-frontend-ghcr - if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} + - name: Build and push frontend + id: build-and-push-frontend-dockerhub uses: docker/build-push-action@v5 with: + context: dpp-frontend push: true - tags: ${{ steps.meta-for-ghcr.outputs.tags }}, ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }}:latest - labels: ${{ steps.meta-for-ghcr.outputs.labels }} + tags: ${{ steps.meta-for-dockerhub.outputs.tags }}, ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta-for-dockerhub.outputs.labels }} build-args: | REPO_COMMIT_ID=${{ env.COMMIT_SHA }} REPO_ENDPOINT_URL=${{ env.REPO_URL }} - # Build actions for docker hub registry - - name: Docker meta for Docker Hub - id: meta-for-dockerhub - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + + # https://github.com/peter-evans/dockerhub-description + # Important step to push image description to DockerHub + - name: Update Docker Hub description + uses: peter-evans/dockerhub-description@v4 + with: + # readme-filepath defaults to toplevel README.md, Only necessary if you have a dedicated file with your 'Notice for docker images' + readme-filepath: docs/notice.md + username: ${{ secrets.DOCKER_HUB_USER }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + + build-on-ghcr: + if: github.repository != 'eclipse-tractusx/digital-product-pass' + runs-on: ubuntu-latest + permissions: + packages: write + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + ref: ${{ github.ref }} + + # Build actions for GHCR registry + - name: Docker meta + id: meta-for-ghcr uses: docker/metadata-action@v5 with: images: | - ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} + ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }} tags: | type=ref,event=branch type=ref,event=pr @@ -115,38 +131,26 @@ jobs: type=semver,pattern={{major}} type=semver,pattern={{major}}.{{minor}} - # Login against docker registry + # Login against GHCR registry # https://github.com/docker/login-action - - name: Log into a Docker registry - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + - name: Log into GHCR registry uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_HUB_USER }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} # Build and push Docker image with Buildx # https://github.com/docker/build-push-action - - name: Build and push frontend for Docker Hub - id: build-and-push-frontend-dockerhub - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} + - name: Build and push frontend for GHCR registry + id: build-and-push-frontend-ghcr uses: docker/build-push-action@v5 with: + context: dpp-frontend push: true - tags: ${{ steps.meta-for-dockerhub.outputs.tags }}, ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }}:latest - labels: ${{ steps.meta-for-dockerhub.outputs.labels }} + tags: ${{ steps.meta-for-ghcr.outputs.tags }}, ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.IMAGE_NAME }}:latest + labels: ${{ steps.meta-for-ghcr.outputs.labels }} build-args: | REPO_COMMIT_ID=${{ env.COMMIT_SHA }} REPO_ENDPOINT_URL=${{ env.REPO_URL }} - - # https://github.com/peter-evans/dockerhub-description - # Important step to push image description to DockerHub - - name: Update Docker Hub description - if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} - uses: peter-evans/dockerhub-description@v4 - with: - # readme-filepath defaults to toplevel README.md, Only necessary if you have a dedicated file with your 'Notice for docker images' - readme-filepath: docs/notice.md - username: ${{ secrets.DOCKER_HUB_USER }} - password: ${{ secrets.DOCKER_HUB_TOKEN }} - repository: ${{ env.IMAGE_NAMESPACE }}/${{ env.IMAGE_NAME }} diff --git a/.github/workflows/release-helm-charts.yml b/.github/workflows/release-helm-charts.yml index 2903e59d5..289134b7a 100644 --- a/.github/workflows/release-helm-charts.yml +++ b/.github/workflows/release-helm-charts.yml @@ -56,9 +56,8 @@ jobs: - name: Install Helm Repos run: | - helm repo add product-edc https://catenax-ng.github.io/product-edc + helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev helm repo add bitnami https://charts.bitnami.com/bitnami - helm repo add cx-backend-service https://denisneuling.github.io/cx-backend-service - name: Run chart-releaser uses: helm/chart-releaser-action@v1.4.1 diff --git a/.github/workflows/sonar-scan.yaml b/.github/workflows/sonar-scan.yaml deleted file mode 100644 index 958f760ee..000000000 --- a/.github/workflows/sonar-scan.yaml +++ /dev/null @@ -1,114 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - -name: "Sonar Cloud Analyze" -on: - push: - branches: - - 'main' - - pull_request: - types: [ opened, reopened, synchronize ] - -env: - JAVA_VERSION: 17 - -jobs: - check-secrets-sonar-cloud: - runs-on: ubuntu-latest - outputs: - secrets-available: ${{ steps.secrets-exists.outputs.available }} - steps: - - name: Check for Secrets availability - id: secrets-exists - shell: bash - ## Check if the secrets are available in the environment - ## Check if the secrets are available in the environment - run: | - if [ "${{ secrets.GITHUB_TOKEN }}" != '' ] && [ "${{ secrets.SONAR_TOKEN }}" != '' ]; then - echo "available=true" >> $GITHUB_OUTPUT; - echo "Secrets are available at this environment!" - else - echo "available=false" >> $GITHUB_OUTPUT; - echo "No secrets are available at this environment!" - fi - sonarCloud: - needs: [ check-secrets-sonar-cloud ] - if: needs.check-secrets-sonar-cloud.outputs.secrets-available == 'true' ## Require that the secrets are available - name: sonarCloud - runs-on: ubuntu-latest - - # strategy: - # matrix: - # node-version: [ 16.x ] - - steps: - - uses: actions/checkout@v3 - with: - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - - - name: Cache SonarCloud packages - uses: actions/cache@v3 - with: - path: ~/.sonar/cache - key: ${{ runner.os }}-sonar - restore-keys: ${{ runner.os }}-sonar - - - uses: actions/setup-java@v3 - with: - java-version: '${{ env.JAVA_VERSION }}' - distribution: 'adopt' - - - name: Build and analyze Java Code - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: | - cd dpp-backend/digitalproductpass - mvn -B install org.sonarsource.scanner.maven:sonar-maven-plugin:sonar - - # cannot scan frontend component in one sonar cloud project where backend is also running, because frontend implemented in different technology - # - name: Use Node.js ${{ matrix.node-version }} - # uses: actions/setup-node@v3 - # with: - # node-version: ${{ matrix.node-version }} - - # - name: Run npm install - # run: npm install --legacy-peer-deps - - # - name: Analyze Frontend Code - # uses: sonarsource/sonarcloud-github-action@master - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - - - - - - - - - - - diff --git a/.github/workflows/trivy.yml b/.github/workflows/trivy.yml index 28f111c70..46ace24c9 100644 --- a/.github/workflows/trivy.yml +++ b/.github/workflows/trivy.yml @@ -71,7 +71,7 @@ jobs: output: "trivy-results1.sarif" severity: "CRITICAL,HIGH" args: "--ignorefile .trivyignore" - skip-dirs: "deployment/infrastructure/edc-consumer,deployment/infrastructure/edc-provider,deployment/infrastructure/edc-provider/data-service,deployment/infrastructure/registry" # skip scanning external images. + skip-dirs: "deployment/infrastructure/data-consumer/edc-consumer,deployment/infrastructure/data-provider/edc-provider,deployment/infrastructure/data-provider/edc-provider/data-service,deployment/infrastructure/data-provider/registry" # skip scanning external images. - name: Upload Trivy scan results to GitHub Security tab uses: github/codeql-action/upload-sarif@v3 @@ -93,13 +93,17 @@ jobs: - name: Build frontend image from Dockerfile - GHCR id: build-docker-frontend-ghcr if: ${{ github.repository != 'eclipse-tractusx/digital-product-pass' }} - run: docker build -t ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.FRONTEND_IMAGE_NAME }}:latest . + run: | + cd dpp-frontend + docker build -t ${{ env.REGISTRY }}/${{ github.repository }}/${{ env.FRONTEND_IMAGE_NAME }}:latest . # Build action for docker hub registry - name: Build frontend image from Dockerfile - Docker Hub id: build-docker-frontend-dockerhub if: ${{ github.repository == 'eclipse-tractusx/digital-product-pass' }} - run: docker build -t ${{ env.IMAGE_NAMESPACE }}/${{ env.FRONTEND_IMAGE_NAME }}:latest . + run: | + cd dpp-frontend + docker build -t ${{ env.IMAGE_NAMESPACE }}/${{ env.FRONTEND_IMAGE_NAME }}:latest . - name: Run Trivy vulnerability scanner - GHCR id: run-trivy-vulnerability-scanner-frontend-ghcr diff --git a/.gitignore b/.gitignore index 0aa8b366c..3c7f878e0 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,9 @@ __pycache__/ node_modules dist +# MOCK asset files +MOCK/ + # local env files .env.local .env.*.local @@ -148,6 +151,11 @@ dmypy.json .pytype/ cython_debug/ +# mvn wrapper +.mvn/ +mvnw +mvnw.cmd + # Chart dependencies **/charts/*.tgz diff --git a/CHANGELOG.md b/CHANGELOG.md index fbbccf1a7..f9fa9ba8e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,6 +28,22 @@ The changelog format is based on [Keep a Changelog](https://keepachangelog.com/e ## [Unreleased] +### Updated +- Refactored workflows where required +- Moved frontend source files into dpp-frontend directory +- Made data-service chart independent from the edc-provider chart +- Renamed Keycloak to IAM +- Re-organized data-consumer and data-provider artifacts +- Re-organized directory strcuture for docs and deployment folders +- Updated documentation references where required +- Updated infrastructure guide + +### Deleted +- Deleted unused files/directories/docs/images + - Removed environment-specific values files from helm charts + - Removed docker directory + + ## [released] ## [v2.2.0] - 26-03-2024 @@ -786,4 +802,4 @@ The changelog format is based on [Keep a Changelog](https://keepachangelog.com/e ### Updated - Optimized the reponsive from the application - Optimized the passport display -- Updated components with Vuetify 3, making the application more stable. \ No newline at end of file +- Updated components with Vuetify 3, making the application more stable. diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 763a8395c..6f539428c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -120,7 +120,7 @@ The *{commit comment}* should briefely describe the relevant content/reason of t The branching approach is based on the gitflow workflow: [https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow) -![Branching Strategy](./Branching_strategy.PNG) +![Branching Strategy](./docs/media/branchingStrategy.png) Due to the restriction, that only "Eclipse Committer" can work directly on tractus-x, we extended gitflow with a "forked branch". This enables everybody to fork their own repository and contribute in a structured manner. diff --git a/INSTALL.md b/INSTALL.md index c07c5cff5..892b3fe1c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0 --> -

  Digital Product Pass Application

+

  Digital Product Pass Application

# Application Installation @@ -189,7 +189,7 @@ npm run serve #### Method 2: With Docker -The following environment variables must be set in [build and deploy](./buildAndDeploy.sh) script: +The following environment variables must be set in [build and deploy](./dpp-frontend/buildAndDeploy.sh) script: - PASS_VERSION - APP_VERSION diff --git a/README.md b/README.md index 814aea15d..023ef6333 100644 --- a/README.md +++ b/README.md @@ -54,81 +54,73 @@ Here is a preview from the DPP App UI, where we visualize a test battery passpor To get started you can have a look into our documentation: -| Name | Description | -| ---------------------------------------------------------------- |-------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [Arc42](./docs/arc42/Arc42.md) | Main Architecture Document (Arc42) of Digital Product Pass Application | -| [Administration Guide](./docs/admin%20guide/Admin_Guide.md) | Administration Guide explaining the infrastructure and how to configure the application | -| [Data Retrieval Guide](./docs/data%20retrieval%20guide/DataRetrievalGuide.md) | Guide on how to retrieve data from the Catena-X Network as the Digital Product Pass | -| [Backend Documentation](./dpp-backend/digitalproductpass/README.md) | Backend documentation Product Passport App | -| [Deployment in Hotel Budapest](./deployment/README.md) | Technical Guide - Deployment in ArgoCD Hotel Budapest (integration environment) | -| [Docker Overview](./docker/README.md) | Overview on general docker commands | -| [Keycloak Overview](./deployment/local/docker/Keycloak/README.md) | This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. | -| [Short Introduction into the project](./docs/GETTING-STARTED.md) | Digital Product Pass App infrastructure, helm installation guide, technical usage guide | -| [Code Scaning with Kics and Trivy](./docs/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github | -| [Release Guidelines](./docs/RELEASE.md) | Digital Product Pass App Release Guide | -| [Secret Management](./docs/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | -| [Cypress Overview](./docs/cypress/CYPRESS.md) | Documentation for Battery Passport App E2E Cypress test | -| [End User Manual](./docs/user%20manual/User%20Manual%20Product%20Viewer%20App.md) | End User Manual Product Viewer App | -| [Postman Overview](./deployment/local/postman//README.md) | Technical guide depicts the battery pass end-to-end API calls through the postman REST client | -| [Changelog](./CHANGELOG.md) | Changelog | -| [Helm Charts](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass) | Project's Helm Charts | - - +| Name | Description | +| ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | --- | +| [Arc42](./docs/arc42/Arc42.md) | Main Architecture Document (Arc42) of Digital Product Pass Application | +| [Administration Guide](./docs/admin%20guide/AdminGuide.md) | Administration Guide explaining the infrastructure and how to configure the application | +| [Data Retrieval Guide](./docs/data%20retrieval%20guide/DataRetrievalGuide.md) | Guide on how to retrieve data from the Catena-X Network as the Digital Product Pass | +| [Backend Documentation](./dpp-backend/digitalproductpass/README.md) | Backend documentation Product Passport App | +| [Deployment in Argo CD](./deployment/README.md) | Technical Guide - Deployment in ArgoCD - integration environment | +| [Docker Overview](./deployment/local/iam/README.md) | Overview on general docker commands | +| [Keycloak Overview](./deployment/local/iam/README.md) | This guide describes how to setup a keycloak instance in local docker forcontainer and import existing realm.json file. | +| [Short Introduction into the project](./docs/GETTING-STARTED.md) | Digital Product Pass App infrastructure, helm installation guide, technical usage guide | +| [Code Scaning with Kics and Trivy](./docs/infrastructure%20as%20code/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github | +| [Release Guidelines](./docs/RELEASE.md) | Digital Product Pass App Release Guide | +| [Secret Management](./docs/secrets%20management/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | | +| [End User Manual](./docs/user%20manual/UserManual.md) | End User Manual Product Viewer App | +| [Postman Overview](./deployment/local/postman//README.md) | Technical guide depicts the battery pass end-to-end API calls through the postman REST client | +| [Changelog](./CHANGELOG.md) | Changelog | +| [Helm Charts](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass) | Project's Helm Charts | ## Base Images -| Language | Container Base Image | -| :------- | :------------------- | -| Java / JVM based | [Eclipse Temurin](https://hub.docker.com/_/eclipse-temurin) | -| JS frontends | [Node.JS](https://hub.docker.com/_/node)
[Nginx](https://hub.docker.com/r/nginxinc/nginx-unprivileged) | - + +| Language | Container Base Image | +| :--------------- | :----------------------------------------------------------------------------------------------------------- | +| Java / JVM based | [Eclipse Temurin](https://hub.docker.com/_/eclipse-temurin) | +| JS frontends | [Node.JS](https://hub.docker.com/_/node)
[Nginx](https://hub.docker.com/r/nginxinc/nginx-unprivileged) | ## Installation + For installing the Digital Product Pass Application please consult our [Intallation Guide](./INSTALL.md). ## License [Apache-2.0](https://raw.githubusercontent.com/eclipse-tractusx/digital-product-pass/main/LICENSE) - ## Notice for Docker image DockerHub: -- https://hub.docker.com/r/tractusx/digital-product-pass-frontend -- https://hub.docker.com/r/tractusx/digital-product-pass-backend + +- https://hub.docker.com/r/tractusx/digital-product-pass-frontend +- https://hub.docker.com/r/tractusx/digital-product-pass-backend **Base images:** -- DockerHub: - - Node: https://hub.docker.com/_/node - - Nginxinc/nginx-unprivileged: https://hub.docker.com/r/nginxinc/nginx-unprivileged - - Eclipse Temurin: https://hub.docker.com/_/eclipse-temurin -- Dockerfiles: - - [node:lts-alpine](https://github.com/nodejs/docker-node) - - [nginxinc/nginx-unprivileged:stable-alpine](https://github.com/nginxinc/docker-nginx-unprivileged/blob/main/Dockerfile-alpine.template) - - [eclipse-temurin:19-alpine](https://github.com/adoptium/containers) +- DockerHub: + + - Node: https://hub.docker.com/_/node + - Nginxinc/nginx-unprivileged: https://hub.docker.com/r/nginxinc/nginx-unprivileged + - Eclipse Temurin: https://hub.docker.com/_/eclipse-temurin -- GitHub project: - - Node: https://github.com/docker-library/repo-info/tree/master/repos/node - - nginxinc/docker-nginx-unprivileged: https://github.com/nginxinc/docker-nginx-unprivileged - - Eclipse Temurin: https://github.com/docker-library/repo-info/tree/master/repos/eclipse-temurin +- Dockerfiles: + - [node:lts-alpine](https://github.com/nodejs/docker-node) + - [nginxinc/nginx-unprivileged:stable-alpine](https://github.com/nginxinc/docker-nginx-unprivileged/blob/main/Dockerfile-alpine.template) + - [eclipse-temurin:19-alpine](https://github.com/adoptium/containers) +- GitHub project: + - Node: https://github.com/docker-library/repo-info/tree/master/repos/node + - nginxinc/docker-nginx-unprivileged: https://github.com/nginxinc/docker-nginx-unprivileged + - Eclipse Temurin: https://github.com/docker-library/repo-info/tree/master/repos/eclipse-temurin [contributors-shield]: https://img.shields.io/github/contributors/eclipse-tractusx/digital-product-pass.svg?style=for-the-badge - [contributors-url]: https://github.com/eclipse-tractusx/digital-product-pass/graphs/contributors - [stars-shield]: https://img.shields.io/github/stars/eclipse-tractusx/digital-product-pass.svg?style=for-the-badge - [stars-url]: https://github.com/eclipse-tractusx/digital-product-pass/stargazers - [license-shield]: https://img.shields.io/github/license/eclipse-tractusx/digital-product-pass.svg?style=for-the-badge - [license-url]: https://github.com/eclipse-tractusx/digital-product-pass/blob/main/LICENSE - [release-shield]: https://img.shields.io/github/v/release/eclipse-tractusx/digital-product-pass.svg?style=for-the-badge - [release-url]: https://github.com/eclipse-tractusx/digital-product-pass/releases diff --git a/cypress.config.js b/cypress.config.js deleted file mode 100644 index 2d46c56b3..000000000 --- a/cypress.config.js +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - - -// eslint-disable-next-line no-undef -const { defineConfig } = require('cypress') - -// eslint-disable-next-line no-undef -module.exports = defineConfig({ - e2e: { - baseUrl: 'https://materialpass.beta.demo.catena-x.net/', - }, -}) diff --git a/cypress/e2e/sign-in/e2e.cy.js b/cypress/e2e/sign-in/e2e.cy.js deleted file mode 100644 index fc5051a15..000000000 --- a/cypress/e2e/sign-in/e2e.cy.js +++ /dev/null @@ -1,46 +0,0 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/* eslint-disable no-undef */ -describe("e2e test", () => { - before(() => { - cy.visit("https://materialpass.beta.demo.catena-x.net/"); - cy.get(".search").type("CX-test"); // typing company name - cy.get(".CX_Test_Access").click(); // btn click - }); - it("Sign in and battery select", () => { - - cy.get('#username').type("company 2 user"); // typing username - cy.get('#password').type("changeme"); // typing password - cy.get('#kc-login').click(); // btn click - cy.get('#input-4').type("NCR186850B"); // typing battery ID - cy.get('#search-btn').click(); // btn click - cy.wait(30000); // timeout for loading - cy.get('[data-cy="battery-id"]'); // 1. General information first field check - cy.get('.mdi-battery-charging').click(15, 40, { force: true }); // btn click - cy.get('[data-cy="state-of-charge"]'); // 2. Product condition first field check - cy.get('.mdi-flask-empty-outline').click(15, 40, { force: true }); // btn click - cy.get('[data-cy="electrolyte-composition"]'); // 3. Cell chemistry first field check - cy.get('[data-cy="footer"]'); // Footer check - }); -}); diff --git a/cypress/fixtures/users/user.json b/cypress/fixtures/users/user.json deleted file mode 100644 index b13f3f6a9..000000000 --- a/cypress/fixtures/users/user.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "username": "mustermann@test-recycler.de", - "password": "mustermann" -} diff --git a/cypress/support/commands.js b/cypress/support/commands.js deleted file mode 100644 index 242092a05..000000000 --- a/cypress/support/commands.js +++ /dev/null @@ -1,61 +0,0 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -// *********************************************** -// This example commands.js shows you how to -// create various custom commands and overwrite -// existing commands. -// -// For more comprehensive examples of custom -// commands please read more here: -// https://on.cypress.io/custom-commands -// *********************************************** -// -// -// -- This is a parent command -- -// Cypress.Commands.add('login', (email, password) => { ... }) -// -// -// -- This is a child command -- -// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... }) -// -// -// -- This is a dual command -- -// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... }) -// -// -// -- This will overwrite an existing command -- -// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... }) -import 'cypress-keycloak'; - -// eslint-disable-next-line no-undef -Cypress.Commands.overwrite('login', (originalFn) => { - originalFn({ - root: 'http://localhost:8088', - realm: 'CX-Central', - username: '', - password: '', - client_id: 'Cl13-CX-Battery', - redirect_uri: 'http%3A%2F%2Flocalhost%3A8080%2F&state=95c36428-3a44-42cb-954d-d3dd1687f6a2&response_mode=fragment&response_type=code&scope=openid&nonce=46198261-b6a4-4502-a00d-11f4cb5d3760', - }); -}); diff --git a/cypress/support/e2e.js b/cypress/support/e2e.js deleted file mode 100644 index cb0b1f54b..000000000 --- a/cypress/support/e2e.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -// *********************************************************** -// This example support/e2e.js is processed and -// loaded automatically before your test files. -// -// This is a great place to put global configuration and -// behavior that modifies Cypress. -// -// You can change the location of this file or turn off -// automatically serving support files with the -// 'supportFile' configuration option. -// -// You can read more here: -// https://on.cypress.io/configuration -// *********************************************************** - -// Import commands.js using ES2015 syntax: -import './commands'; - -// Alternatively you can use CommonJS syntax: -// require('./commands') diff --git a/cypress/videos/e2e.cy.js.mp4 b/cypress/videos/e2e.cy.js.mp4 deleted file mode 100644 index f29385de7..000000000 Binary files a/cypress/videos/e2e.cy.js.mp4 and /dev/null differ diff --git a/deployment/README.md b/deployment/README.md index cfc68b48f..ba19e72e9 100644 --- a/deployment/README.md +++ b/deployment/README.md @@ -21,18 +21,19 @@ SPDX-License-Identifier: Apache-2.0 --> -## Technical Guide - Deployment in ArgoCD Hotel Budapest - +## Technical Guide - Deployment in Argo CD > [Getting Started Documentation](../docs/GETTING-STARTED.md) -This document describes the battery pass application deployment steps in hotel budapest using helm charts. In order to deploy the app components, the following artifacts are required. +This document describes the battery pass application deployment steps in using helm charts. In order to deploy the app components, the following artifacts are required. + +> **NOTE**: This tutorial demonstrates the deployment of the application on Argo CD infrastructure. It is assumed that the infrastructure is already configured. Further documentation about the Argo CD. [What is Argo CD platform?](http://argo-cd.readthedocs.io/en/stable) -- Link to the Integration environment: [ArgoCD Hotel Budapest INT - Product Material Passport](https://argo.int.demo.catena-x.net) +- Link to the Integration environment: [ArgoCD - Product Material Passport](https://argo.int.demo.catena-x.net) -- [edc-consumer](./infrastructure/edc-consumer) +- [edc-consumer](./infrastructure/data-consumer/edc-consumer) -- [edc-provider](./infrastructure/edc-provider) +- [edc-provider](./infrastructure/data-provider/edc-provider) - [digital-product-pass](../charts/digital-product-pass) - dpp-frontend @@ -50,7 +51,7 @@ Fill out the following required fields. - **Project:** project-material-pass - **Source:** Git repository where the application artifacts are stored (https://github.com/eclipse-tractusx/digital-product-pass) - **Revision:** select branch or a tag -- **Path:** The path to the deployment (possible values: deployment/infrastructure/edc-consumer, deployment/infrastructure/edc-provider, charts/digital-product-pass) +- **Path:** The path to the deployment (possible values: deployment/infrastructure/data-consumer/edc-consumer, deployment/infrastructure/data-provider/edc-provider, charts/digital-product-pass) - **Cluster URL:** https://kubernetes.default.svc - **Namespace:** product-material-pass - **Plugin:** argocd-vault-plugin-helm-args @@ -61,23 +62,23 @@ Fill out the following required fields. Click on 'Create' button -![Create New App](./images/create-app.png) -![Select Valut Plugin](./images/create-app-with-plugin.png) +![Create New App](./media/create-app.png) +![Select Valut Plugin](./media/create-app-with-plugin.png) - Go inside the application and sync it. It would take some time to get synced. -![Sync App](./images/sync-app.png) +![Sync App](./media/sync-app.png) -![Sync App](./images/sync-pod.png) +![Sync App](./media/sync-pod.png) -![Consumer frontend and backend pods](./images/running-pods.png) +![Consumer frontend and backend pods](./media/running-pods.png) - Go to the individual logs tab Frontend logs: -![Consumer frontend logs](./images/frontend-logs.png) +![Consumer frontend logs](./media/frontend-logs.png) Backend logs: -![Consumer backend logs](./images/backend-logs.png) +![Consumer backend logs](./media/backend-logs.png) If everything works fine then the application is deployed... @@ -101,17 +102,17 @@ In the end, the frontend should be accessible at https://dpp.int.demo.catena-x.n #### Example Screenshots: -![Company Selection Page](./images/company-selection.png) +![Company Selection Page](./media/company-selection.png) -![Login Page](./images/login.png) +![Login Page](./media/login.png) -![QR Code Scanner](./images/dashboard.png) +![QR Code Scanner](./media/dashboard.png) -![QR Code Scanner](./images/passport-scan.png) +![QR Code Scanner](./media/passport-scan.png) -![Battery Passport - General Information](./images/product-passport.png) +![Battery Passport - General Information](./media/product-passport.png) -![Drill down components](./images/components.png) +![Drill down components](./media/components.png) ##### Consumer-Backend: @@ -121,7 +122,7 @@ The consumer backend is a Java based spring boot application which implements th [Central Swagger Hub](https://app.swaggerhub.com/apis/eclipse-tractusx-bot/digital-product-pass/2.0.1) -![Swagger UI](./images/swagger.png) +![Swagger UI](./media/swagger.png)
diff --git a/deployment/infrastructure/edc-consumer/Chart.yaml b/deployment/infrastructure/data-consumer/edc-consumer/Chart.yaml similarity index 100% rename from deployment/infrastructure/edc-consumer/Chart.yaml rename to deployment/infrastructure/data-consumer/edc-consumer/Chart.yaml diff --git a/deployment/infrastructure/edc-consumer/README.md b/deployment/infrastructure/data-consumer/edc-consumer/README.md similarity index 100% rename from deployment/infrastructure/edc-consumer/README.md rename to deployment/infrastructure/data-consumer/edc-consumer/README.md diff --git a/deployment/infrastructure/edc-consumer/values-int.yaml b/deployment/infrastructure/data-consumer/edc-consumer/values-int.yaml similarity index 100% rename from deployment/infrastructure/edc-consumer/values-int.yaml rename to deployment/infrastructure/data-consumer/edc-consumer/values-int.yaml diff --git a/deployment/infrastructure/edc-consumer/values.yaml b/deployment/infrastructure/data-consumer/edc-consumer/values.yaml similarity index 100% rename from deployment/infrastructure/edc-consumer/values.yaml rename to deployment/infrastructure/data-consumer/edc-consumer/values.yaml diff --git a/deployment/infrastructure/edc-provider/data-service/.helmignore b/deployment/infrastructure/data-provider/data-service/.helmignore similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/.helmignore rename to deployment/infrastructure/data-provider/data-service/.helmignore diff --git a/deployment/infrastructure/edc-provider/data-service/Chart.yaml b/deployment/infrastructure/data-provider/data-service/Chart.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/Chart.yaml rename to deployment/infrastructure/data-provider/data-service/Chart.yaml diff --git a/deployment/infrastructure/edc-provider/data-service/README.md b/deployment/infrastructure/data-provider/data-service/README.md similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/README.md rename to deployment/infrastructure/data-provider/data-service/README.md diff --git a/deployment/infrastructure/edc-provider/data-service/templates/_helpers.tpl b/deployment/infrastructure/data-provider/data-service/templates/_helpers.tpl similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/templates/_helpers.tpl rename to deployment/infrastructure/data-provider/data-service/templates/_helpers.tpl diff --git a/deployment/infrastructure/edc-provider/data-service/templates/deployment.yaml b/deployment/infrastructure/data-provider/data-service/templates/deployment.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/templates/deployment.yaml rename to deployment/infrastructure/data-provider/data-service/templates/deployment.yaml diff --git a/deployment/infrastructure/edc-provider/data-service/templates/ingress.yaml b/deployment/infrastructure/data-provider/data-service/templates/ingress.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/templates/ingress.yaml rename to deployment/infrastructure/data-provider/data-service/templates/ingress.yaml diff --git a/deployment/infrastructure/edc-provider/data-service/templates/service.yaml b/deployment/infrastructure/data-provider/data-service/templates/service.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/templates/service.yaml rename to deployment/infrastructure/data-provider/data-service/templates/service.yaml diff --git a/deployment/infrastructure/edc-provider/data-service/values.yaml b/deployment/infrastructure/data-provider/data-service/values.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/data-service/values.yaml rename to deployment/infrastructure/data-provider/data-service/values.yaml diff --git a/deployment/infrastructure/edc-provider/Chart.yaml b/deployment/infrastructure/data-provider/edc-provider/Chart.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/Chart.yaml rename to deployment/infrastructure/data-provider/edc-provider/Chart.yaml diff --git a/deployment/infrastructure/edc-provider/README.md b/deployment/infrastructure/data-provider/edc-provider/README.md similarity index 100% rename from deployment/infrastructure/edc-provider/README.md rename to deployment/infrastructure/data-provider/edc-provider/README.md diff --git a/deployment/infrastructure/edc-provider/values-int.yaml b/deployment/infrastructure/data-provider/edc-provider/values-int.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/values-int.yaml rename to deployment/infrastructure/data-provider/edc-provider/values-int.yaml diff --git a/deployment/infrastructure/edc-provider/values.yaml b/deployment/infrastructure/data-provider/edc-provider/values.yaml similarity index 100% rename from deployment/infrastructure/edc-provider/values.yaml rename to deployment/infrastructure/data-provider/edc-provider/values.yaml diff --git a/deployment/infrastructure/registry/Chart.yaml b/deployment/infrastructure/data-provider/registry/Chart.yaml similarity index 100% rename from deployment/infrastructure/registry/Chart.yaml rename to deployment/infrastructure/data-provider/registry/Chart.yaml diff --git a/deployment/infrastructure/registry/README.md b/deployment/infrastructure/data-provider/registry/README.md similarity index 100% rename from deployment/infrastructure/registry/README.md rename to deployment/infrastructure/data-provider/registry/README.md diff --git a/deployment/infrastructure/registry/values.yaml b/deployment/infrastructure/data-provider/registry/values.yaml similarity index 100% rename from deployment/infrastructure/registry/values.yaml rename to deployment/infrastructure/data-provider/registry/values.yaml diff --git a/deployment/infrastructure/edc-consumer/values-beta.yaml b/deployment/infrastructure/edc-consumer/values-beta.yaml deleted file mode 100644 index e69de29bb..000000000 diff --git a/deployment/infrastructure/edc-provider/data-service/values-beta.yaml b/deployment/infrastructure/edc-provider/data-service/values-beta.yaml deleted file mode 100644 index 68d066db6..000000000 --- a/deployment/infrastructure/edc-provider/data-service/values-beta.yaml +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - ---- -# Default values for backend. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -image: - # -- Which container image to use - repository: ghcr.io/catenax-ng/catenax-at-home/provider-backend-service - # -- [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use - pullPolicy: IfNotPresent - # -- Overrides the image tag whose default is the chart appVersion - tag: "0.0.1" - # -- Image pull secret to create to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) -imagePullSecrets: [] - -# -- Overrides the charts name -nameOverride: "" - -# -- Overrides the releases full name -fullnameOverride: "data-service" - -service: - # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. - type: ClusterIP - # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service) to expose the running application on a set of Pods as a network service. - port: 8080 - -container: - port: 80 - -ingress: - enabled: true - className: "nginx" - annotations: - #kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - hosts: - - host: materialpass.beta.demo.catena-x.net - paths: - - path: /provider_backend(/|$)(.*) - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - materialpass.beta.demo.catena-x.net diff --git a/deployment/infrastructure/edc-provider/data-service/values-dev.yaml b/deployment/infrastructure/edc-provider/data-service/values-dev.yaml deleted file mode 100644 index 1c85493dd..000000000 --- a/deployment/infrastructure/edc-provider/data-service/values-dev.yaml +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - ---- -# Default values for backend. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -image: - # -- Which container image to use - repository: ghcr.io/catenax-ng/catenax-at-home/provider-backend-service - # -- [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use - pullPolicy: IfNotPresent - # -- Overrides the image tag whose default is the chart appVersion - tag: "0.0.1" - # -- Image pull secret to create to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) -imagePullSecrets: [] - -# -- Overrides the charts name -nameOverride: "" - -# -- Overrides the releases full name -fullnameOverride: "data-service" - -service: - # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. - type: ClusterIP - # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service) to expose the running application on a set of Pods as a network service. - port: 8080 - -container: - port: 80 - -ingress: - enabled: true - className: "nginx" - annotations: - #kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - hosts: - - host: materialpass.dev.demo.catena-x.net - paths: - - path: /provider_backend(/|$)(.*) - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - materialpass.dev.demo.catena-x.net diff --git a/deployment/infrastructure/edc-provider/data-service/values-int.yaml b/deployment/infrastructure/edc-provider/data-service/values-int.yaml deleted file mode 100644 index 0cdc489e1..000000000 --- a/deployment/infrastructure/edc-provider/data-service/values-int.yaml +++ /dev/null @@ -1,74 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - ---- -# Default values for backend. -# This is a YAML-formatted file. -# Declare variables to be passed into your templates. - -replicaCount: 1 - -image: - # -- Which container image to use - repository: ghcr.io/catenax-ng/catenax-at-home/provider-backend-service - # -- [Kubernetes image pull policy](https://kubernetes.io/docs/concepts/containers/images/#image-pull-policy) to use - pullPolicy: IfNotPresent - # -- Overrides the image tag whose default is the chart appVersion - tag: "0.0.1" - # -- Image pull secret to create to [obtain the container image from private registries](https://kubernetes.io/docs/concepts/containers/images/#using-a-private-registry) -imagePullSecrets: [] - -# -- Overrides the charts name -nameOverride: "" - -# -- Overrides the releases full name -fullnameOverride: "data-service" - -service: - # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types) to expose the running application on a set of Pods as a network service. - type: ClusterIP - # -- [Service type](https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service) to expose the running application on a set of Pods as a network service. - port: 8080 - -container: - port: 80 - -ingress: - enabled: true - className: "nginx" - annotations: - #kubernetes.io/ingress.class: nginx - # kubernetes.io/tls-acme: "true" - nginx.ingress.kubernetes.io/force-ssl-redirect: "true" - nginx.ingress.kubernetes.io/ssl-passthrough: "false" - nginx.ingress.kubernetes.io/rewrite-target: /$2 - nginx.ingress.kubernetes.io/backend-protocol: "HTTP" - hosts: - - host: materialpass.int.demo.catena-x.net - paths: - - path: /provider_backend(/|$)(.*) - pathType: Prefix - tls: - - secretName: tls-secret - hosts: - - materialpass.int.demo.catena-x.net diff --git a/deployment/local/docker/README.md b/deployment/local/docker/README.md deleted file mode 100644 index 88e369aaa..000000000 --- a/deployment/local/docker/README.md +++ /dev/null @@ -1,61 +0,0 @@ - - -## General Docker commands - -### Build Image -```bash -docker build -t : . -``` - -### Run Container -```bash -docker run -p : --name -d : -``` - -### Tag Image -```bash -docker tag : /: -``` - -### Push Image -```bash -docker push /: -``` - -### Stop Container -```bash -docker stop ; -``` - -### Remove Container -```bash -docker rm ; -``` - -### Java Remote Debugging: -Add this parameter when running docker run: - -```bash --e "JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000" -p 8000:8000 -``` diff --git a/deployment/local/docker/Keycloak/README.md b/deployment/local/iam/README.md similarity index 64% rename from deployment/local/docker/Keycloak/README.md rename to deployment/local/iam/README.md index 460ded132..6b8665fd2 100644 --- a/deployment/local/docker/Keycloak/README.md +++ b/deployment/local/iam/README.md @@ -21,9 +21,9 @@ SPDX-License-Identifier: Apache-2.0 --> -# Local Keycloak Setup +# Identity Access Management (IAM) Setup -This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. +This guide describes how to setup a IAM instance locally using docker container and import existing realm.json file. ## Launch keycloak docker container @@ -56,7 +56,7 @@ After importing the realm, the users need to be created manually. Install the keycloak plugin for vuejs app from ```npm install keycloak-js``` -The keycloak configurations are defined in [src/services/service.const.js](../../../src/services/service.const.js) and [src/services/Authentication.js](../../../src/services/Authentication.js) files for different deployment environments. +The keycloak configurations are defined in [dpp-frontend/src/services/service.const.js](../../../dpp-frontend/src/services/service.const.js). ### Build and run the app @@ -64,3 +64,43 @@ The keycloak configurations are defined in [src/services/service.const.js](../.. npm install --legacy-peer-deps npm run serve ``` + + +## General Docker commands + +### Build Image +```bash +docker build -t : . +``` + +### Run Container +```bash +docker run -p : --name -d : +``` + +### Tag Image +```bash +docker tag : /: +``` + +### Push Image +```bash +docker push /: +``` + +### Stop Container +```bash +docker stop ; +``` + +### Remove Container +```bash +docker rm ; +``` + +### Java Remote Debugging: +Add this parameter when running docker run: + +```bash +-e "JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:8000" -p 8000:8000 +``` diff --git a/deployment/local/docker/Keycloak/realm.json b/deployment/local/iam/realm.json similarity index 100% rename from deployment/local/docker/Keycloak/realm.json rename to deployment/local/iam/realm.json diff --git a/deployment/local/scripts/init-values.sh b/deployment/local/testing/init-values.sh similarity index 97% rename from deployment/local/scripts/init-values.sh rename to deployment/local/testing/init-values.sh index 08be43e4e..abf73c793 100644 --- a/deployment/local/scripts/init-values.sh +++ b/deployment/local/testing/init-values.sh @@ -31,10 +31,10 @@ set -o nounset SET_VALUES=$1 GITHUB_TOKEN=$2 VAULT_ADDRESS=$3 -DPP_VALUES_FILE="./../../../charts/digital-product-pass/values-dev.yaml" -EDC_CONSUMER_VALUES_FILE="./../../infrastructure/edc-consumer/values.yaml" -EDC_PROVIDER_VALUES_FILE="./../../infrastructure/edc-provider/values.yaml" -REGISTRY_VALUES_FILE="./../../infrastructure/registry/values.yaml" +DPP_VALUES_FILE="./../../../charts/digital-product-pass/values.yaml" +EDC_CONSUMER_VALUES_FILE="./../../infrastructure/data-consumer/edc-consumer/values.yaml" +EDC_PROVIDER_VALUES_FILE="./../../infrastructure/data-provider/edc-provider/values.yaml" +REGISTRY_VALUES_FILE="./../../infrastructure/data-provider/registry/values.yaml" export GH_TOKEN=${GITHUB_TOKEN} export VAULT_ADDR=${VAULT_ADDRESS} diff --git a/deployment/images/backend-logs.png b/deployment/media/backend-logs.png similarity index 100% rename from deployment/images/backend-logs.png rename to deployment/media/backend-logs.png diff --git a/deployment/images/company-selection.png b/deployment/media/company-selection.png similarity index 100% rename from deployment/images/company-selection.png rename to deployment/media/company-selection.png diff --git a/deployment/images/components.png b/deployment/media/components.png similarity index 100% rename from deployment/images/components.png rename to deployment/media/components.png diff --git a/deployment/images/create-app-with-plugin.png b/deployment/media/create-app-with-plugin.png similarity index 100% rename from deployment/images/create-app-with-plugin.png rename to deployment/media/create-app-with-plugin.png diff --git a/deployment/images/create-app.png b/deployment/media/create-app.png similarity index 100% rename from deployment/images/create-app.png rename to deployment/media/create-app.png diff --git a/deployment/images/dashboard.png b/deployment/media/dashboard.png similarity index 100% rename from deployment/images/dashboard.png rename to deployment/media/dashboard.png diff --git a/deployment/images/electrochemical-properties.png b/deployment/media/electrochemical-properties.png similarity index 100% rename from deployment/images/electrochemical-properties.png rename to deployment/media/electrochemical-properties.png diff --git a/deployment/images/frontend-logs.png b/deployment/media/frontend-logs.png similarity index 100% rename from deployment/images/frontend-logs.png rename to deployment/media/frontend-logs.png diff --git a/deployment/images/general-information.png b/deployment/media/general-information.png similarity index 100% rename from deployment/images/general-information.png rename to deployment/media/general-information.png diff --git a/deployment/images/login.png b/deployment/media/login.png similarity index 100% rename from deployment/images/login.png rename to deployment/media/login.png diff --git a/deployment/images/passport-scan.png b/deployment/media/passport-scan.png similarity index 100% rename from deployment/images/passport-scan.png rename to deployment/media/passport-scan.png diff --git a/deployment/images/product-passport.png b/deployment/media/product-passport.png similarity index 100% rename from deployment/images/product-passport.png rename to deployment/media/product-passport.png diff --git a/deployment/images/running-pods.png b/deployment/media/running-pods.png similarity index 100% rename from deployment/images/running-pods.png rename to deployment/media/running-pods.png diff --git a/deployment/images/swagger.png b/deployment/media/swagger.png similarity index 100% rename from deployment/images/swagger.png rename to deployment/media/swagger.png diff --git a/deployment/images/sync-app.png b/deployment/media/sync-app.png similarity index 100% rename from deployment/images/sync-app.png rename to deployment/media/sync-app.png diff --git a/deployment/images/sync-pod.png b/deployment/media/sync-pod.png similarity index 100% rename from deployment/images/sync-pod.png rename to deployment/media/sync-pod.png diff --git a/docs/GETTING-STARTED.md b/docs/GETTING-STARTED.md index aa1b48e6d..346642de6 100644 --- a/docs/GETTING-STARTED.md +++ b/docs/GETTING-STARTED.md @@ -23,7 +23,7 @@ # Digital Product Passport Guide -> [CatenaX Introduction](https://catena-x.net/en/angebote/edc-die-zentrale-komponente-fuer-die) +> [CatenaX Introduction](https://catena-x.net) ## Application Infrastructure @@ -67,7 +67,7 @@ minikube start --cpus 4 --memory 8096 minikube addons enable ingress ``` -The secrets/credentials for all components are stored in CX Hashicorp vault (a CatenaX shared service). There is a argocd-vault-plugin which retrieves secrets when it comes to INT or DEV, but the plugin does not work locally as we are not using argocd to deploy the apps in localhost. Therefore, the secrets variables in configurations need to be substituted with their actual values and security must also be ensured during the substitution process. To achieve this, a shell script is used to set/unset [init-values.sh](../deployment/local/scripts/init-values.sh) in required components as needed. +The secrets/credentials for all components are stored in CX Hashicorp vault (a CatenaX shared service). There is a argocd-vault-plugin which retrieves secrets when it comes to INT or DEV, but the plugin does not work locally as we are not using argocd to deploy the apps in localhost. Therefore, the secrets variables in configurations need to be substituted with their actual values and security must also be ensured during the substitution process. To achieve this, a shell script is used to set/unset [init-values.sh](../deployment/local/testing/init-values.sh) in required components as needed. > Prerequisite: Prior to run the scripts, the values for the follwoing environment variables should be placed in the script. @@ -78,7 +78,7 @@ __Script Environment Variables:__ ```bash # Navigate to working directory -cd ../deployment/local/scripts +cd ../deployment/local/testing # set values for local run # ./init-values.sh <0 or 1> @@ -104,16 +104,16 @@ cd ../deployment/local/scripts * Description: This component consists of different services which are described in the [Connector Setup](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/charts/tractusx-connector). * __Controlplane__ & __Dataplane__ - * [Helm Chart](../deployment/infrastructure/edc-consumer) hosted locally + * [Helm Chart](../deployment/infrastructure/data-consumer/edc-consumer) hosted locally ```bash # Navigate to the working directory -cd ../deployment/infrastructure/edc-consumer +cd ../deployment/infrastructure/data-consumer/edc-consumer # Update chart dependencies helm dependency update . # install helm chart named edc-consumer -helm install edc-consumer . --values=./values-dev.yaml +helm install edc-consumer . -f ./values.yaml # optional: remove/uninstall helm chart helm uninstall edc-consumer @@ -148,17 +148,17 @@ Integration (INT) deployment available through postman: [https://dpp.int.demo.ca * Description: This component consists of different services which are described in the [Connector Setup](https://github.com/eclipse-tractusx/tractusx-edc/tree/main/charts/tractusx-connector). * __Controlplane__ & __Dataplane__ - * [Helm Chart](../deployment/infrastructure/edc-provider) hosted locally + * [Helm Chart](../deployment/infrastructure/data-provider/edc-provider) hosted locally ```bash # Navigate to the working directory -cd ../deployment/infrastructure/edc-provider +cd ../deployment/infrastructure/data-provider/edc-provider # Update chart dependencies helm dependency update . # install helm chart named edc-provider -helm install edc-provider . --values=./values-dev.yaml +helm install edc-provider . -f ./values.yaml # optional: remove/uninstall helm chart helm uninstall edc-provider @@ -198,7 +198,7 @@ Link to the Integration (INT) environment: [https://dpp.int.demo.catena-x.net/pr - Reference docs: - [INSTALL.md](../INSTALL.md) - - [Productpass backend](../backend/digitalproductpass/readme.md) + - [Productpass backend](../dpp-backend/digitalproductpass/README.md) Link to the Integration (INT) environment: [https://dpp.int.demo.catena-x.net](https://dpp.int.demo.catena-x.net/) @@ -262,7 +262,7 @@ The __Digital Product Passport Uer Interface__ will make this process accessible __Note:__ Adjust the URLs according to the _local_ (`http://localhost:port/`) or _integration_ (`https://dpp.int.demo.catena-x.net/`) environments. -- [Documentation of EDC Data Transfer](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/docs/samples/Transfer%20Data.md) +- [Documentation of EDC Data Transfer](https://github.com/eclipse-tractusx/tractusx-edc/blob/main/docs/usage/management-api-walkthrough/06_transferprocesses.md) - [End-to-End Use Case](https://catenax-ng.github.io/docs/guides/catenax-at-home#end-to-end-use-case) diff --git a/docs/README.md b/docs/README.md index 05f1cf870..75995fae6 100644 --- a/docs/README.md +++ b/docs/README.md @@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0 --> -

  Digital Product Pass Documentation

+

  Digital Product Pass Documentation

Welcome to the documentation section, below you will find all the necesary docs of interest for undestanding the DPP application. @@ -49,15 +49,13 @@ Welcome to the documentation section, below you will find all the necesary docs - [NOTICE](#notice) - # Business Statement and Application Use Case > **Note**: *IMPORTANT!* Before you start with the architecture docs **please take a look at the business context** from the application use case. In this way you will be able to understand much better the further documentation. - | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Business Statement](./business%20statement/Business%20Statement.md) | Business Context from the Application | +| [Business Statement](./business%20statement/BusinessStatement.md) | Business Context from the Application | # Application User Interface Preview @@ -65,37 +63,32 @@ Here you can find some application screenshots that will help you to visualize a ## Passport Search View -![Search View](./arc42/GraphicQRCodeView.png) - +![Search View](./arc42/media/GraphicQRCodeView.png) ## Passport General Information View -![General Info View](./arc42/GraphicBatteryPassportViewGeneralInfo.png) - - +![General Info View](./arc42/media/GraphicBatteryPassportViewGeneralInfo.png) ## User Interface Documentation If you need an extra guideline to understand the application user interface please check the user manual: - | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [User Manual](./user%20manual/User%20Manual%20Product%20Viewer%20App.md) | User Manual explaining the user interface | - +| [User Manual](./user%20manual/UserManual.md) | User Manual explaining the user interface | # Architecture Documentation ## Scope + For understating the achitecture first take a look at the following diagram: -![Application Scope](./arc42/GraphicSystemScopeandContext.jpg) +![Application Scope](./arc42/media/dataRetrieval/digitalProductPassContext.drawio.svg) -Here you can see that the Digital Product Pass Application is located between the consumer and the data provider. It should be provided by the Consumer and conected to a EDC. At the moment the DPP is hosted by Catena-X and is connected to a [test EDC Consumer](../deployment/infrastructure/edc-consumer/), which is maintained by the Eclipse Foundation and can be found in the [Eclipse Tractus-X EDC Repository](https://github.com/eclipse-tractusx/tractusx-edc). +Here you can see that the Digital Product Pass Application is located between the consumer and the data provider. It should be provided by the Consumer and conected to a EDC. At the moment the DPP is hosted by Catena-X and is connected to a [test EDC Consumer](../deployment/infrastructure/data-consumer/edc-consumer/), which is maintained by the Eclipse Foundation and can be found in the [Eclipse Tractus-X EDC Repository](https://github.com/eclipse-tractusx/tractusx-edc). The [Arc42](./arc42/Arc42.md) documentation is the main architecture guide you can read in order to have a overview from the application and get to know more about the system. - ## Documents of Interest Here are all the docs you need to understand the architecture and arhitecture configurations: @@ -103,29 +96,24 @@ Here are all the docs you need to understand the architecture and arhitecture co | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Arc42](./arc42/Arc42.md) | Main architecture document of the Digital Product Pass Application | -| [Administration Guide](./admin%20guide/Admin_Guide.md) | Administration Guide explaining the infrastructure and how to configure the application - +| [Administration Guide](./admin%20guide/AdminGuide.md) | Administration Guide explaining the infrastructure and how to configure the application # User and Technical User Changelogs + | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Technical User Changelog](../CHANGELOG.md) | Documentation containing all the release changes at a technical level. -| [User Changelog](./RELEASE_USER.md) | Resumed released changes from the application without getting into so much technical detail. - +| [User Changelog](./RELEASE_USER.md) | Resumed released changes from the application without getting into so much technical detail. # Technical Documentation - ## Backend Documentation - You can find the backend documentation at the following location: - - | Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Backend Documentation](./dpp-backend/digitalproductpass/readme.md) | Backend documentation Product Passport App +| [Backend Documentation](./dpp-backend/digitalproductpass/readme.md) | Backend documentation Product Passport App ## Infrastructure Documentation @@ -133,12 +121,9 @@ Here you will find the Infrastructure documentation for the Digital Product Pass Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Getting Started Introduction](./GETTING-STARTED.md) | Digital Product Pass application infrastructure, installation guide, technical usage guide -| [Deployment in Hotel Budapest](../deployment/README.md) | Technical Guide - Deployment in ArgoCD Hotel Budapest (integration environment) | -| [Docker Overview](../docker/README.md) | Overview on general docker commands | - - - +| [Getting Started Introduction](./GETTING-STARTED.md) | Digital Product Pass application infrastructure, installation guide, technical usage guide +| [Deployment in Argo CD](../deployment/README.md) | Technical Guide - Deployment in ArgoCD - integration environment | +| [Docker Overview](../deployment/local/iam/README.md) | Overview on general docker commands | # Security Documentation @@ -146,11 +131,9 @@ Here you can find the main security documentatin for the Digital Product Pass Ap Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Keycloak Overview](../deployment/local/docker/Keycloak/README.md) | This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. [Code Scaning with Kics and Trivy](./IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github | -| [Secret Management](./SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | - - - +| [Keycloak Overview](../deployment/local/iam/README.md) | This guide describes how to setup a keycloak instance in local docker container and import existing realm.json file. | +[Code Scaning with Kics and Trivy](./infrastructure%20as%20code/IaC.md) | Infrastructure As Code (IaC) with KICS intends to find security vulnerabilities by scanning the code and upload results to the security dashboard in github +| [Secret Management](./secrets%20management/SECRETS_MANAGEMENT.md) | Secrets management with CX HashiCorp Vault and ArgoCD Vault Plugin (AVP) - client credentials, database passwords, access tokens | # Testing Documentation @@ -158,33 +141,25 @@ Here you can find the test (End to End, etc.) documentation for the Digital Prod Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | - [Cypress Overview](./cypress/CYPRESS.md) | Documentation for Battery Passport App E2E Cypress test - + [Cypress Overview](./cypress/CYPRESS.md) | Documentation for Battery Passport App E2E Cypress test # Release Guidelines Documentation - Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -[Release Guidelines](./RELEASE.md) | Product Battery Pass Consumer App Release Guide - - +[Release Guidelines](./RELEASE.md) | Product Battery Pass Consumer App Release Guide # API Documentation - Here you can find the API documentation, there is a postman collection with the workflow that our application is following to retrive the data: - ## Postman Collection + Name | Description | | ---------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | | [Postman Overview](../deployment/local/postman/README.md) | Technical guide depicts the battery pass end-to-end API calls through the postman REST client | - - -## Swagger Documetation - +## Swagger Documetation Additionally we have a open swagger documentation at the following URL: @@ -192,7 +167,6 @@ Additionally we have a open swagger documentation at the following URL: https://dpp.int.demo.catena-x.net/swagger-ui/index.html - You can also deploy the application using the [deployment guidelines](./GETTING-STARTED.md), which will be deployed at:
@@ -201,7 +175,6 @@ You can also deploy the application using the [deployment guidelines](./GETTING-
 
 > **Note**: The port can vary if you change the port at the configuration.
 
-
 ## NOTICE
 
 This work is licensed under the [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0).
@@ -209,4 +182,4 @@ This work is licensed under the [Apache-2.0](https://www.apache.org/licenses/LIC
 - SPDX-License-Identifier: Apache-2.0
 - SPDX-FileCopyrightText: 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA
 - SPDX-FileCopyrightText: 2023, 2024 Contributors to the Eclipse Foundation
-- Source URL: https://github.com/eclipse-tractusx/digital-product-pass
+- Source URL: 
diff --git a/docs/RELEASE.md b/docs/RELEASE.md
index adacfe824..11e70d733 100644
--- a/docs/RELEASE.md
+++ b/docs/RELEASE.md
@@ -22,7 +22,7 @@
 -->
 
 
- Product Battery Pass Consumer App Release Guide + Product Battery Pass Consumer App Release Guide

Product Battery Pass Consumer App Release Guide

@@ -39,8 +39,8 @@ Helm chart released: - [digital-product-pass](../charts/digital-product-pass/Chart.yaml) Aditional Helm charts of below components can be found in *deployment/infrastructure* folder. -- [edc-consumer](../deployment/infrastructure/edc-consumer/Chart.yaml) -- [edc-provider](../deployment/infrastructure/edc-provider/Chart.yaml) +- [edc-consumer](../deployment/infrastructure/data-consumer/edc-consumer/Chart.yaml) +- [edc-provider](../deployment/infrastructure/data-provider/edc-provider/Chart.yaml) In order to update helm charts, please update helm chart version and related dependencies from *version* property in *Chart.yaml file* for the above components. In addition, if there are changes to application version, the *appVersion* property also needs to be changed. diff --git a/docs/admin guide/Admin_Guide.md b/docs/admin guide/AdminGuide.md similarity index 95% rename from docs/admin guide/Admin_Guide.md rename to docs/admin guide/AdminGuide.md index 03eba602a..f2afec541 100644 --- a/docs/admin guide/Admin_Guide.md +++ b/docs/admin guide/AdminGuide.md @@ -23,7 +23,7 @@ # Product Passport Administrator Guide Documentation -![C-X Logo](./CXLogo.png) +![C-X Logo](./media/CXLogo.png) Version: v2.1
Latest Revision 04 Jan, 2024 @@ -35,7 +35,7 @@ Latest Revision 04 Jan, 2024 - [Introduction](#introduction) - [Getting Started Guide](#getting-started-guide) - [Deployment Configuration](#deployment-configuration) - - [Local Keycloak Configuration](#local-keycloak-configuration) + - [Local IAM Configuration](#local-iam-configuration) - [Consumer Backend Configuration](#consumer-backend-configuration) - [Backend Application Configuration](#backend-application-configuration) - [Spring Boot Configuration](#spring-boot-configuration) @@ -90,7 +90,7 @@ All the information about deploying you can find in this resource: | ---- | -------- | ---- | | Technical Guide for Development | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/README.md](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/README.md) | -## Local Keycloak Configuration +## Local IAM Configuration All the authentication and authorization is managed by Catena-X IAM, however there is a possibility to configure a local Keycloak Instance for testing and development purposes. @@ -101,12 +101,12 @@ Additionally two test users shall be created and the correct roles shall be assi **User 1:** "company 1 user" (OEM, Dismantler) **User 2:** "company 2 user" (Recycler) -Follow the [Local Keycloak Setup Guide](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/docker/Keycloak/README.md) in order to set up the users, and their passwords correctly: +Follow the [Local IAM Setup Guide](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/iam/README.md) in order to set up the users, and their passwords correctly: | Name | Location | Link | | ---- | -------- | ---- | -| Local Keycloak Setup Guide | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/docker/Keycloak/README.md](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/docker/Keycloak/README.md) | -| Realm Configuration File | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/docker/Keycloak/realm.json](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/docker/Keycloak/realm.json) | +| Local IAM Setup Guide | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/iam/README.md](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/iam/README.md) | +| Realm Configuration File | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/iam/realm.json](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/local/iam/realm.json) | All the values for the helm charts are configured for each environment and set up in the Product Passport Application source code: @@ -115,8 +115,9 @@ All the values for the helm charts are configured for each environment and set u | ---- | -------- | ---- | | Helm Charts Main Directory | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts) | | Digital Product Pass | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/charts/digital-product-pass) | -| EDC Consumer Helm Charts | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/edc-consumer](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/edc-consumer) | -| MOCK EDC Provider Helm Charts | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/edc-provider](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/edc-provider) | +| EDC Consumer Helm Charts | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/data-consumer/edc-consumer](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/data-consumer/edc-consumer) | +| MOCK EDC Provider Helm Charts | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/data-provider/edc-provider](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/data-provider/edc-provider) | +| MOCK Provider Backend Helm Charts | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/data-provider/data-service](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/deployment/infrastructure/data-provider/data-service) | ## Consumer Backend Configuration @@ -170,7 +171,7 @@ In order to set up the secret management please follow this guide: | Name | Location | Link | | ---- | -------- | ---- | -| Secrets Management Documentation | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/SECRETS_MANAGEMENT.md](https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/SECRETS_MANAGEMENT.md) | +| Secrets Management Documentation | GitHub | [https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/secrets%20management/SECRETS_MANAGEMENT.md](https://github.com/eclipse-tractusx/digital-product-pass/blob/main/docs/secrets%20management/SECRETS_MANAGEMENT.md) | ## EDC Provider Configuration diff --git a/docs/admin guide/CXLogo.png b/docs/admin guide/media/CXLogo.png similarity index 100% rename from docs/admin guide/CXLogo.png rename to docs/admin guide/media/CXLogo.png diff --git a/docs/arc42/Arc42.md b/docs/arc42/Arc42.md index 27f86f892..c1bdda044 100644 --- a/docs/arc42/Arc42.md +++ b/docs/arc42/Arc42.md @@ -394,7 +394,7 @@ Swagger Documentation: [https://dpp.int.demo.catena-x.net/swagger-ui/index.html] The Item Relationship Service [IRS] (**[tractusx/item-relationship-service](https://github.com/eclipse-tractusx/item-relationship-service)**) is responsible for providing the drill down functionality the Digital Product Pass application needs for finding the children of the current passports. -The IRS ([charts reference implementation](../../deployment/infrastructure/edc-consumer/Chart.yaml)) is deployed and attached to the EDC Consumer so that it can search in the network for the children of an specific `globalAssetId` and a `BPN`. +The IRS ([charts reference implementation](../../deployment/infrastructure/data-consumer/edc-consumer/Chart.yaml)) is deployed and attached to the EDC Consumer so that it can search in the network for the children of an specific `globalAssetId` and a `BPN`. > **NOTE**: The IRS Functionality can be deactivated by setting the following configuration at the `values.yaml` file to false: `backend.configuration.irs.enabled` or by setting the attribute `children` to false when the `/api/contract/search` API is called. @@ -512,7 +512,7 @@ Alternatively (or additionally) you can use a table. The title of the table is t ##### Kubernetes Container platform (gardener) -* Hotel Budapest (Development, Integration and Beta Environments) +* Argo CD infrastructure (Integration environment) * Namespace: * product-material-pass @@ -536,7 +536,7 @@ Alternatively (or additionally) you can use a table. The title of the table is t * [ARC42 Documentation](./Arc42.md) * [GitHub Documentation](https://github.com/eclipse-tractusx/digital-product-pass/tree/main/docs) -* [Administration Guide](../admin%20guide/Admin_Guide.md) +* [Administration Guide](../admin%20guide/AdminGuide.md) * [API Documentation (Swagger)](https://app.swaggerhub.com/apis/eclipse-tractusx-bot/digital-product-pass) * [Data Retrieval Guide](../data%20retrieval%20guide/DataRetrievalGuide.md) @@ -663,7 +663,7 @@ The primary battery passport application components are: There are different levels categorized concerning the application resources deployed for a specific tool: -**Scope & Context:** A top-level defines the application runtime environment where application artifacts are deployed and running in a remote Kubernetes cluster in Argo CD (Hotel Budapest - INT) through helm charts. The deployed components are: "materialpass-edc" which refers to the consumer connector and "battery passport consumer application" refers to the consumer frontend (UI) application. +**Scope & Context:** A top-level defines the application runtime environment where application artifacts are deployed and running in a remote Kubernetes cluster in Argo CD through helm charts. The deployed components are: "materialpass-edc" which refers to the consumer connector and "battery passport consumer application" refers to the consumer frontend (UI) application. **Level 1:** this level defines a deep dive into each deployment artifact: materialpass-edc, and digital-product-pass (consumer-ui and consumer-backend). In this layer, Kubernetes and helm resources are utilized using umbrella helm charts, consisting of some dependencies (container images) which are fetched from the GitHub registries. diff --git a/docs/arc42/media/intrastructure/DeployementView.drawio.svg b/docs/arc42/media/intrastructure/DeployementView.drawio.svg index 79d9cc2a6..35ada17df 100644 --- a/docs/arc42/media/intrastructure/DeployementView.drawio.svg +++ b/docs/arc42/media/intrastructure/DeployementView.drawio.svg @@ -1,4 +1,4 @@ -
NGINX ingress controller
NGINX ingress control...
User
User
Kubernetes service
Kubernetes service
Kubernetes Node
Kubernetes Node
CX HashiCorp Vault
CX HashiCorp Vault
Secret: Registry Auth
Secret: Registry Auth
Secret: EDC Oauth
Secret: EDC Oauth
Battery Passport consumer app
Battery Passport con...
Pod
Pod
materialpass-edc
materialpass-edc
edc-dataplane service
edc-dataplane service
edc-controlplane service
edc-controlplane serv...
consumer-backend service
consumer-backend serv...
Kubernetes Node
Kubernetes Node
consumer-backend
consumer-backend
Pod
Pod
edc-dataplane
edc-dataplane
Pod
Pod
edc-controlplane
edc-controlplane
Pod
Pod
Argo CD - INT (Hotel Budapest)
Argo CD - INT (Hotel Budapest)
Kubernetes Node
Kubernetes Node
Consumer Backend
Consumer Backend
Pod
Pod
Text is not SVG - cannot display
\ No newline at end of file +
NGINX ingress controller
NGINX ingress control...
User
User
Kubernetes service
Kubernetes service
Kubernetes Node
Kubernetes Node
CX HashiCorp Vault
CX HashiCorp Vault
Secret: Registry Auth
Secret: Registry Auth
Secret: EDC Oauth
Secret: EDC Oauth
Battery Passport consumer app
Battery Passport con...
Pod
Pod
materialpass-edc
materialpass-edc
edc-dataplane service
edc-dataplane service
edc-controlplane service
edc-controlplane serv...
consumer-backend service
consumer-backend serv...
Kubernetes Node
Kubernetes Node
consumer-backend
consumer-backend
Pod
Pod
edc-dataplane
edc-dataplane
Pod
Pod
edc-controlplane
edc-controlplane
Pod
Pod
Argo CD
Argo CD
Kubernetes Node
Kubernetes Node
Consumer Backend
Consumer Backend
Pod
Pod
Text is not SVG - cannot display
diff --git a/docs/arc42/media/intrastructure/GraphicBulidingBlockView.drawio.svg b/docs/arc42/media/intrastructure/GraphicBulidingBlockView.drawio.svg index 75f3591cb..17b422c07 100644 --- a/docs/arc42/media/intrastructure/GraphicBulidingBlockView.drawio.svg +++ b/docs/arc42/media/intrastructure/GraphicBulidingBlockView.drawio.svg @@ -1,4 +1,4 @@ -
consumer-ui
consumer-ui
materialpass-edc
materialpass-edc
Scope & Context
Scope & Context
Level 1
Level 1
Level 2
Level 2
Level 3
Level 3
Github Container Registry (ghcr)
Github Containe...
GitHub Repository: eclipse-tractusx/digital-product-pass
GitHub Repository: ec...
Build pipeline
Build pipeline
Application source code + build artifacts
Application source code + b...
ArgoCD (Hotel Budapest)
ArgoCD (Hotel Budapest)
Deployment Artifacts
(Kubernetes & Helm resources)
Deployment Artifacts...
Application Runtime Environment
Application Runtime Environment
Source Control (GitHub)
Source Control (GitHub)
Development
Development
Product-edc
ghcr
Product-edc...
Pushed to source control repository by developer
Pushed to source con...
Triggers build pipeline to upload docker images (CI pipeline)
Triggers build pipel...
Publishes container images onto the ghcr
Publishes container im...
Quality Gates checks
Quality Gates checks
Triggers jobs to verify quality gates requirements
Triggers jobs to veri...
Pull container images from the product-edc ghcr
Pull container image...
Backend Service
Backend Service
Controlplane
Controlplane
Dataplane
Dataplane
Postgres
Postgres
Chart dependencies
Chart dependencies
Pull container images from the battery pass ghcr
Pull container images from...
EDC consumer umbrella helm chart
EDC consumer umbrell...
materialpass-edc
(Consumer EDC)
materialpass-edc...
Battery passport consumer application
Battery passport consumer applic...
Consumer-Backend
Consumer-Backend
consumer-backend
consumer-backend
GitHub Repository: catenax-ng/tx-digital-product-pass
GitHub Repository: cat...
Pull Request (PR) to main branch
Pull Request (PR...
Approve PR &
merge code by release manager
Approve PR &...
Create PR by developers
Create PR by...
Text is not SVG - cannot display
\ No newline at end of file +
consumer-ui
consumer-ui
materialpass-edc
materialpass-edc
Scope & Context
Scope & Context
Level 1
Level 1
Level 2
Level 2
Level 3
Level 3
Github Container Registry (ghcr)
Github Containe...
GitHub Repository: eclipse-tractusx/digital-product-pass
GitHub Repository: ec...
Build pipeline
Build pipeline
Application source code + build artifacts
Application source code + b...
ArgoCD
ArgoCD
Deployment Artifacts
(Kubernetes & Helm resources)
Deployment Artifacts...
Application Runtime Environment
Application Runtime Environment
Source Control (GitHub)
Source Control (GitHub)
Development
Development
Product-edc
ghcr
Product-edc...
Pushed to source control repository by developer
Pushed to source con...
Triggers build pipeline to upload docker images (CI pipeline)
Triggers build pipel...
Publishes container images onto the ghcr
Publishes container im...
Quality Gates checks
Quality Gates checks
Triggers jobs to verify quality gates requirements
Triggers jobs to veri...
Pull container images from the product-edc ghcr
Pull container image...
Backend Service
Backend Service
Controlplane
Controlplane
Dataplane
Dataplane
Postgres
Postgres
Chart dependencies
Chart dependencies
Pull container images from the battery pass ghcr
Pull container images from...
EDC consumer umbrella helm chart
EDC consumer umbrell...
materialpass-edc
(Consumer EDC)
materialpass-edc...
Battery passport consumer application
Battery passport consumer applic...
Consumer-Backend
Consumer-Backend
consumer-backend
consumer-backend
GitHub Repository: catenax-ng/tx-digital-product-pass
GitHub Repository: cat...
Pull Request (PR) to main branch
Pull Request (PR...
Approve PR &
merge code by release manager
Approve PR &...
Create PR by developers
Create PR by...
Text is not SVG - cannot display
diff --git a/docs/business statement/Business Statement.md b/docs/business statement/BusinessStatement.md similarity index 95% rename from docs/business statement/Business Statement.md rename to docs/business statement/BusinessStatement.md index f11b6e3d0..56d444745 100644 --- a/docs/business statement/Business Statement.md +++ b/docs/business statement/BusinessStatement.md @@ -1,96 +1,96 @@ - - -# Digital Product Passport Application - ->Some links might not be accesible as they lead to a private confluence. If you need access please reach out to the dev Team and request what information you need for what reason. - -The Product Passport Application enables the user to retrieve detailed information for a given product. The product can be looked up via ID or via a QR Code which is printed on the product. - -This first version of the Product Passport Application is focusing exclusively on the battery: - -*"The Battery Passport is the key instrument to develop a sustainable and circular battery value chain delivering on 10 principles by monitoring the sustainability performance based on data Understandable, Standardized, Accurate, Differentiating, Auditable, Comprehensive and providing the insights to trigger improvement action. The Battery Passport is will be the cornerstone for the Digital Product Passport. -The Passport itself is defined by the usage of Catena-X shared services, a standardized data model and an application which will enable stakeholders to access the relevant data."* - -## Persona: - -The Viewer App can be used from different personas: - -* Supplier -* Car Producer -* Battery Producer -* Recycler -* Dismantler -* Authority -* Public (e.g.: end user / consumer) - -For each persona it is defined which data field can be viewed from whom. Some of these data fields are required by regulator. - -## End User Benefit Statements: - -* The Battery Passport is the key instrument to develop a sustainable and circular battery value chain and fullfilling regulatory requirements -* Based on the Digital Product Passport companies, like supplier, car producer, battery producer, recycler, dismantler and consumer, can make better decisions on how to develop, build, maintain, operate, recycle or dismantle the product. -* User of the battery pass viewer app, leverage the interoperability and data souveranity standards of Catana-X and receive the standardized product data set in a simple way. - -## Business problem: - -Regulatory forces to make specific information accesible to a specific audience. The flow to recieve this information is shown below. - -![Business Problem](./GraphBusinessProblem.svg) - -## App Provider Commitment - -BMW, BASF and Henkel have jointly decided to initiate and drive the topic of data exchange via digital product passports. Agreements for joint developments exists. - -## Architecture Functional Cut between Apps and Network - -![Architecture Functional Cut](./GraphArchitectureFunctionalCut.svg) - -## Business Semantic Alignment - -The business semantic alignment is limited to the business domain sustainability. The main goal of this app is to visualize the product pass and in the first step the battery pass. The data model for the battery pass was developed within the material pass team and is a candidate for standardization. Other data models are currently not neccesary. - -## Mapping against Catena-X Architecture Framework - -The Product Passport Viewer App is using the following standardization candidates: - -* Battery Passport -* Digital Product Passport -* Transmission Passport - -The following candidates are not yet implemented: - -* Sealant Passport, Tire Passport -* E-Drive -* Material Passport - - - -## NOTICE - -This work is licensed under the [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). - -- SPDX-License-Identifier: Apache-2.0 -- SPDX-FileCopyrightText: 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -- SPDX-FileCopyrightText: 2023, 2024 Contributors to the Eclipse Foundation -- Source URL: https://github.com/eclipse-tractusx/digital-product-pass + + +# Digital Product Passport Application + +>Some links might not be accesible as they lead to a private confluence. If you need access please reach out to the dev Team and request what information you need for what reason. + +The Product Passport Application enables the user to retrieve detailed information for a given product. The product can be looked up via ID or via a QR Code which is printed on the product. + +This first version of the Product Passport Application is focusing exclusively on the battery: + +*"The Battery Passport is the key instrument to develop a sustainable and circular battery value chain delivering on 10 principles by monitoring the sustainability performance based on data Understandable, Standardized, Accurate, Differentiating, Auditable, Comprehensive and providing the insights to trigger improvement action. The Battery Passport is will be the cornerstone for the Digital Product Passport. +The Passport itself is defined by the usage of Catena-X shared services, a standardized data model and an application which will enable stakeholders to access the relevant data."* + +## Persona: + +The Viewer App can be used from different personas: + +* Supplier +* Car Producer +* Battery Producer +* Recycler +* Dismantler +* Authority +* Public (e.g.: end user / consumer) + +For each persona it is defined which data field can be viewed from whom. Some of these data fields are required by regulator. + +## End User Benefit Statements: + +* The Battery Passport is the key instrument to develop a sustainable and circular battery value chain and fullfilling regulatory requirements +* Based on the Digital Product Passport companies, like supplier, car producer, battery producer, recycler, dismantler and consumer, can make better decisions on how to develop, build, maintain, operate, recycle or dismantle the product. +* User of the battery pass viewer app, leverage the interoperability and data souveranity standards of Catana-X and receive the standardized product data set in a simple way. + +## Business problem: + +Regulatory forces to make specific information accesible to a specific audience. The flow to recieve this information is shown below. + +![Business Problem](./media/graphBusinessProblem.svg) + +## App Provider Commitment + +BMW, BASF and Henkel have jointly decided to initiate and drive the topic of data exchange via digital product passports. Agreements for joint developments exists. + +## Architecture Functional Cut between Apps and Network + +![Architecture Functional Cut](./media/graphArchitectureFunctionalCut.svg) + +## Business Semantic Alignment + +The business semantic alignment is limited to the business domain sustainability. The main goal of this app is to visualize the product pass and in the first step the battery pass. The data model for the battery pass was developed within the material pass team and is a candidate for standardization. Other data models are currently not neccesary. + +## Mapping against Catena-X Architecture Framework + +The Product Passport Viewer App is using the following standardization candidates: + +* Battery Passport +* Digital Product Passport +* Transmission Passport + +The following candidates are not yet implemented: + +* Sealant Passport, Tire Passport +* E-Drive +* Material Passport + + + +## NOTICE + +This work is licensed under the [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). + +- SPDX-License-Identifier: Apache-2.0 +- SPDX-FileCopyrightText: 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA +- SPDX-FileCopyrightText: 2023, 2024 Contributors to the Eclipse Foundation +- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/docs/business statement/GraphArchitectureFunctionalCut.svg b/docs/business statement/media/graphArchitectureFunctionalCut.svg similarity index 100% rename from docs/business statement/GraphArchitectureFunctionalCut.svg rename to docs/business statement/media/graphArchitectureFunctionalCut.svg diff --git a/docs/business statement/GraphBusinessProblem.svg b/docs/business statement/media/graphBusinessProblem.svg similarity index 100% rename from docs/business statement/GraphBusinessProblem.svg rename to docs/business statement/media/graphBusinessProblem.svg diff --git a/docs/cypress/CYPRESS.md b/docs/cypress/CYPRESS.md deleted file mode 100644 index ab4596e04..000000000 --- a/docs/cypress/CYPRESS.md +++ /dev/null @@ -1,60 +0,0 @@ - - -# Cypress test - -This is the documentation for Battery Passport App E2E Cypress test. - -## Steps to perform the test with Cypress GUI - -1. npm run cypress:open -2. Choose E2E testing - ![GUI-start](./GUI-start.png) -

- -3. Choose browser - Electron - ![GUI-browser](./GUI-browser.png) -

- -4. Choose specs - e2e - ![GUI-specs](./GUI-specs.png) -

- -5. DOcumentation of passing test on local env - ![GUI-passing](./GUI-passing.png) -

- -## Steps tested - -![test](./test.png) -

- - -## NOTICE - -This work is licensed under the [Apache-2.0](https://www.apache.org/licenses/LICENSE-2.0). - -- SPDX-License-Identifier: Apache-2.0 -- SPDX-FileCopyrightText: 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -- SPDX-FileCopyrightText: 2023 Contributors to the Eclipse Foundation -- Source URL: https://github.com/eclipse-tractusx/digital-product-pass diff --git a/docs/cypress/GUI-browser.png b/docs/cypress/GUI-browser.png deleted file mode 100644 index 1d6f60957..000000000 Binary files a/docs/cypress/GUI-browser.png and /dev/null differ diff --git a/docs/cypress/GUI-passing.png b/docs/cypress/GUI-passing.png deleted file mode 100644 index f360cf02c..000000000 Binary files a/docs/cypress/GUI-passing.png and /dev/null differ diff --git a/docs/cypress/GUI-specs.png b/docs/cypress/GUI-specs.png deleted file mode 100644 index df8d18f1a..000000000 Binary files a/docs/cypress/GUI-specs.png and /dev/null differ diff --git a/docs/cypress/GUI-start.png b/docs/cypress/GUI-start.png deleted file mode 100644 index 52f4ac3cc..000000000 Binary files a/docs/cypress/GUI-start.png and /dev/null differ diff --git a/docs/cypress/test.png b/docs/cypress/test.png deleted file mode 100644 index f4d3b4c77..000000000 Binary files a/docs/cypress/test.png and /dev/null differ diff --git a/docs/data retrieval guide/DataRetrievalGuide.md b/docs/data retrieval guide/DataRetrievalGuide.md index 8b4b4b15d..4925ee7a8 100644 --- a/docs/data retrieval guide/DataRetrievalGuide.md +++ b/docs/data retrieval guide/DataRetrievalGuide.md @@ -21,7 +21,7 @@ SPDX-License-Identifier: Apache-2.0 --> -# ![C-X Logo](../catena-x-logo.svg) Catena-X Data Retrieval Guide +# ![C-X Logo](../media/catenaxLogo.svg) Catena-X Data Retrieval Guide | Version | v1.0 | | ------- | ---- | diff --git a/docs/IaC.md b/docs/infrastructure as code/IaC.md similarity index 97% rename from docs/IaC.md rename to docs/infrastructure as code/IaC.md index 965965ed6..b8498873d 100644 --- a/docs/IaC.md +++ b/docs/infrastructure as code/IaC.md @@ -30,7 +30,7 @@ To integrate KICS into a repository, please see its [documentation](https://cate Since, it is triggered via nnightly build daily, the below output is taken from one of the jobs history. -![IaC with KICS](./IaC_kics.png) +![IaC with KICS](./media/kics.png) Complete history can be seen [here](https://github.com/catenax-ng/product-battery-passport-consumer-app/actions/workflows/kics.yml) @@ -46,7 +46,7 @@ To integrate Trivy into a repository, please see its [documentation](https://cat Since, it is triggered as a build every night, the below output is taken from one of the jobs history. -![Scan containers with Trivy](./container_scan_trivy.png) +![Scan containers with Trivy](./media/trivy.png) Complete history can be seen [here](https://github.com/catenax-ng/product-battery-passport-consumer-app/actions/workflows/trivy.yml) diff --git a/docs/IaC_kics.png b/docs/infrastructure as code/media/kics.png similarity index 100% rename from docs/IaC_kics.png rename to docs/infrastructure as code/media/kics.png diff --git a/docs/container_scan_trivy.png b/docs/infrastructure as code/media/trivy.png similarity index 100% rename from docs/container_scan_trivy.png rename to docs/infrastructure as code/media/trivy.png diff --git a/Branching_strategy.PNG b/docs/media/branchingStrategy.png similarity index 100% rename from Branching_strategy.PNG rename to docs/media/branchingStrategy.png diff --git a/docs/catena-x-logo.svg b/docs/media/catenaxLogo.svg similarity index 100% rename from docs/catena-x-logo.svg rename to docs/media/catenaxLogo.svg diff --git a/docs/SECRETS_MANAGEMENT.md b/docs/secrets management/SECRETS_MANAGEMENT.md similarity index 98% rename from docs/SECRETS_MANAGEMENT.md rename to docs/secrets management/SECRETS_MANAGEMENT.md index 293daf581..157d173a7 100644 --- a/docs/SECRETS_MANAGEMENT.md +++ b/docs/secrets management/SECRETS_MANAGEMENT.md @@ -64,7 +64,7 @@ To use a vault and create new secret, please look here: [how to-use vault create ### Using Docker -If consumer frontend is run using docker, the following environment variables must be set in [build and deploy script](../buildAndDeploy.sh): +If consumer frontend is run using docker, the following environment variables must be set in [build and deploy script](../../dpp-frontend/buildAndDeploy.sh): - PASS_VERSION - APP_VERSION diff --git a/docs/user manual/User Manual Product Viewer App.md b/docs/user manual/UserManual.md similarity index 93% rename from docs/user manual/User Manual Product Viewer App.md rename to docs/user manual/UserManual.md index 646642bf6..643053056 100644 --- a/docs/user manual/User Manual Product Viewer App.md +++ b/docs/user manual/UserManual.md @@ -55,7 +55,7 @@ After opening the Digital Product Pass Viewer application on your computer or ph In case the user is not allowed to login because the Authorization configuration is enabled the user will received this error: -![Not Authorized](./images/NotAuthorized.png) +![Not Authorized](./media/notAuthorized.png) It can be because of two complementary causes: - The user has not the same BPN number as the EDC connector @@ -74,7 +74,7 @@ After logging in, you will be forwarded to the application's main menu. Here you 2. [Adjust Settings and see Profile Information](#settings-and-profile-information) 3. [Access the Catena-X Helpdesk](#catena-x-helpdesk) -![Main Menu](./images/MainMenu.png) +![Main Menu](./media/mainMenu.png)

### Search for a Product Passport @@ -92,14 +92,14 @@ Both options can be found in the center of the [Main Menu's](#main-menu) screen *Please make sure that the camera permissions must be turned on from the browser, otherwise the QR code cannot be scanned and you have to use the Id manually (1a) as an alternative to retrieve the passport* -![Scan Passport](./images/ScanPassport.png) +![Scan Passport](./media/scanPassport.png)

### Settings and Profile Information Clicking on the blue avatar icon in the upper right corner of the [Main Menu](#main-menu) (2) opens a drop-down menu containing your profile information and language settings. In this tab you find your specific user information and assigned role (is any) within Catena-X (4), you can sign out from your account (5) or change the applications's language (6) as shown in the below screenshot. Currently. the application supports two different languages: English (EN) as a default language and German (DE) as a second language. -![Profile Information](./images/UserProfile.png) +![Profile Information](./media/userProfile.png)

### Catena-X Helpdesk @@ -119,20 +119,20 @@ If Autosign setting is enabled, the first contract policy is always choosen as s The passport is shown to the user as shown in a [Passport Page](#passport-page).

-![Loading Product Pass](./images/LoadingPass.png) +![Loading Product Pass](./media/loadingPass.png)

#### Disable Autosign: This feature requires user action. If disabled, the contract policy must be choosen by the user from the popup menu during the loading process.

-![Before Contract Policy Selection](./images/BeforePolicySelection.png) +![Before Contract Policy Selection](./media/beforePolicySelection.png)

The sign feature basically signs the contract policy before the contract negotiation is done. The right contract policy must be selected by the user, otherwise the contract negotiation is aborted and user is returned back to the [Main Menu](#main-menu).

-![Agree Contract policy](./images/AgreePolicy.png) +![Agree Contract policy](./media/agreePolicy.png)

#### Agree Contract @@ -153,27 +153,27 @@ In case the user want to see more details from the policy, it can be done by cli *The contract policy is always checked against the defined asset Id in a target field*

-![View Contract Policy](./images/ViewPolicy.png) +![View Contract Policy](./media/viewPolicy.png)

The user accepts the right contract policy, and click on the **Agree** button which resumes the remaining negotiation and data transfer steps. In the end, the passport data is retrieved and displays to the user [Passport Page](#passport-page).

-![After Contract Policy Selection](./images/AfterPolicySelection.png) +![After Contract Policy Selection](./media/afterPolicySelection.png)

#### Decline Contract If a user is not permitted to accept a particular policy from his company, the contract policy can be declined in this case. The user will be redirected to the [Main Menu](#main-menu).

-![Decline Contract Policy](./images/DeclinePolicy.png) +![Decline Contract Policy](./media/declinePolicy.png)

#### Deprecated Aspect Models In case the application is not able to visualize the model version because it is deprecated, the user will see the following error. The user shall search for another passport in this case because it can not be visualized.

-![Aspect Model Not Supported](./images/AspectNotSupported.png) +![Aspect Model Not Supported](./media/aspectNotSupported.png)

#### Passport Page @@ -181,7 +181,7 @@ In case the application is not able to visualize the model version because it is Here the application shows the digital passport of a product after going through all necessary steps, that have been made in previous sections.

-![Product Pass](./images/ProductPassport.png) +![Product Pass](./media/productPassport.png)

Hereby, the information is divided into the following sections: @@ -206,14 +206,14 @@ Each category can be accessed by clicking on its heading in the selection bar to The application is capable to retrieve the information from the product's child components (if any) that can be seen in the Components section of the passport (11). Once the passport is loaded and displayed to the screen, the drilling down process of the requested product gets started (12) and retrieves the available information from the first level (depth: 1) of the child components. Ths process might take a while to complete (around 4-5 minutes) as it searches the relevant components from the IRS tool.

-![IRS Job](./images/IRSJob.png) +![IRS Job](./media/irsJob.png)

In the below figure, the product battery contains one child component (13) named as battery module and its passport can be accessed by clicking the small external arrow (14).

-![Drill Down Components](./images/IRS.png) +![Drill Down Components](./media/irs.png)

diff --git a/docs/user manual/images/AfterPolicySelection.png b/docs/user manual/media/afterPolicySelection.png similarity index 100% rename from docs/user manual/images/AfterPolicySelection.png rename to docs/user manual/media/afterPolicySelection.png diff --git a/docs/user manual/images/AgreePolicy.png b/docs/user manual/media/agreePolicy.png similarity index 100% rename from docs/user manual/images/AgreePolicy.png rename to docs/user manual/media/agreePolicy.png diff --git a/docs/user manual/images/AspectNotSupported.png b/docs/user manual/media/aspectNotSupported.png similarity index 100% rename from docs/user manual/images/AspectNotSupported.png rename to docs/user manual/media/aspectNotSupported.png diff --git a/docs/user manual/images/BeforePolicySelection.png b/docs/user manual/media/beforePolicySelection.png similarity index 100% rename from docs/user manual/images/BeforePolicySelection.png rename to docs/user manual/media/beforePolicySelection.png diff --git a/docs/user manual/images/DeclinePolicy.png b/docs/user manual/media/declinePolicy.png similarity index 100% rename from docs/user manual/images/DeclinePolicy.png rename to docs/user manual/media/declinePolicy.png diff --git a/docs/user manual/images/IRS.png b/docs/user manual/media/irs.png similarity index 100% rename from docs/user manual/images/IRS.png rename to docs/user manual/media/irs.png diff --git a/docs/user manual/images/IRSJob.png b/docs/user manual/media/irsJob.png similarity index 100% rename from docs/user manual/images/IRSJob.png rename to docs/user manual/media/irsJob.png diff --git a/docs/user manual/images/LoadingPass.png b/docs/user manual/media/loadingPass.png similarity index 100% rename from docs/user manual/images/LoadingPass.png rename to docs/user manual/media/loadingPass.png diff --git a/docs/user manual/images/MainMenu.png b/docs/user manual/media/mainMenu.png similarity index 100% rename from docs/user manual/images/MainMenu.png rename to docs/user manual/media/mainMenu.png diff --git a/docs/user manual/images/NotAuthorized.png b/docs/user manual/media/notAuthorized.png similarity index 100% rename from docs/user manual/images/NotAuthorized.png rename to docs/user manual/media/notAuthorized.png diff --git a/docs/user manual/images/ProductPassport.png b/docs/user manual/media/productPassport.png similarity index 100% rename from docs/user manual/images/ProductPassport.png rename to docs/user manual/media/productPassport.png diff --git a/docs/user manual/images/ScanPassport.png b/docs/user manual/media/scanPassport.png similarity index 100% rename from docs/user manual/images/ScanPassport.png rename to docs/user manual/media/scanPassport.png diff --git a/docs/user manual/images/UserProfile.png b/docs/user manual/media/userProfile.png similarity index 100% rename from docs/user manual/images/UserProfile.png rename to docs/user manual/media/userProfile.png diff --git a/docs/user manual/images/ViewPolicy.png b/docs/user manual/media/viewPolicy.png similarity index 100% rename from docs/user manual/images/ViewPolicy.png rename to docs/user manual/media/viewPolicy.png diff --git a/dpp-backend/digitalproductpass/.mvn/wrapper/maven-wrapper.properties b/dpp-backend/digitalproductpass/.mvn/wrapper/maven-wrapper.properties deleted file mode 100644 index b74bf7fcd..000000000 --- a/dpp-backend/digitalproductpass/.mvn/wrapper/maven-wrapper.properties +++ /dev/null @@ -1,2 +0,0 @@ -distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.8.6/apache-maven-3.8.6-bin.zip -wrapperUrl=https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar diff --git a/dpp-backend/digitalproductpass/deploy.sh b/dpp-backend/digitalproductpass/deploy.sh deleted file mode 100644 index e6365630f..000000000 --- a/dpp-backend/digitalproductpass/deploy.sh +++ /dev/null @@ -1,51 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - -echo "[INFO] Starting build..." -echo "[INFO] Checking for docker daemon and opened containers..." -if (! docker stats --no-stream ); - then - printf "\n******* [DEPLOY FAILED] ******************\n" - printf "[ERROR] Your Docker Daemon is not up, please open your docker app!" - printf "\n*****************************************" - exit -1 -fi -printf "\n[INFO] Docker Daemon is up... " - -version=${1} - -if [ -z "$version" ]; -then - echo "[ERROR] Please indicate the deployment version: deploy.sh " - exit -1 -fi - -echo "[INFO] Building docker image for version: $version..." -docker build -t ghcr.io/catenax-ng/tx-digital-product-pass/product-pass-consumer-backend:$version . - -echo "[INFO] Tagging docker image version: $version..." -docker tag ghcr.io/catenax-ng/tx-digital-product-pass/product-pass-consumer-backend:$version ghcr.io/catenax-ng/product-battery-passport-consumer-app/product-pass-consumer-backend:$version - -echo "[INFO] Pushing docker image to repo: $version..." -docker push ghcr.io/catenax-ng/tx-digital-product-pass/product-pass-consumer-backend:$version - diff --git a/dpp-backend/digitalproductpass/mvnw b/dpp-backend/digitalproductpass/mvnw deleted file mode 100644 index fb521615c..000000000 --- a/dpp-backend/digitalproductpass/mvnw +++ /dev/null @@ -1,340 +0,0 @@ -#!/bin/sh -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - - -# ---------------------------------------------------------------------------- -# Licensed to the Apache Software Foundation (ASF) under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ASF licenses this file -# to you under the Apache License, Version 2.0 (the -# "License"); you may not use this file except in compliance -# with the License. You may obtain KeycloakLogoutHandler.java copy of the License at -# -# https://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, -# software distributed under the License is distributed on an -# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -# KIND, either express or implied. See the License for the -# specific language governing permissions and limitations -# under the License. -# ---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------------- -# Maven Start Up Batch script -# -# Required ENV vars: -# ------------------ -# JAVA_HOME - location of KeycloakLogoutHandler.java JDK home dir -# -# Optional ENV vars -# ----------------- -# M2_HOME - location of maven2's installed home dir -# MAVEN_OPTS - parameters passed to the Java VM when running Maven -# e.g. to debug Maven itself, use -# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -# MAVEN_SKIP_RC - flag to disable loading of mavenrc files -# ---------------------------------------------------------------------------- - -if [ -z "$MAVEN_SKIP_RC" ] ; then - - if [ -f /usr/local/etc/mavenrc ] ; then - . /usr/local/etc/mavenrc - fi - - if [ -f /etc/mavenrc ] ; then - . /etc/mavenrc - fi - - if [ -f "$HOME/.mavenrc" ] ; then - . "$HOME/.mavenrc" - fi - -fi - -# OS specific support. $var _must_ be set to either true or false. -cygwin=false; -darwin=false; -mingw=false -case "`uname`" in - CYGWIN*) cygwin=true ;; - MINGW*) mingw=true;; - Darwin*) darwin=true - # Use /usr/libexec/java_home if available, otherwise fall back to /Library/Java/Home - # See https://developer.apple.com/library/mac/qa/qa1170/_index.html - if [ -z "$JAVA_HOME" ]; then - if [ -x "/usr/libexec/java_home" ]; then - export JAVA_HOME="`/usr/libexec/java_home`" - else - export JAVA_HOME="/Library/Java/Home" - fi - fi - ;; -esac - -if [ -z "$JAVA_HOME" ] ; then - if [ -r /etc/gentoo-release ] ; then - JAVA_HOME=`java-config --jre-home` - fi -fi - -if [ -z "$M2_HOME" ] ; then - ## resolve links - $0 may be KeycloakLogoutHandler.java link to maven's home - PRG="$0" - - # need this for relative symlinks - while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG="`dirname "$PRG"`/$link" - fi - done - - saveddir=`pwd` - - M2_HOME=`dirname "$PRG"`/.. - - # make it fully qualified - M2_HOME=`cd "$M2_HOME" && pwd` - - cd "$saveddir" - # echo Using m2 at $M2_HOME -fi - -# For Cygwin, ensure paths are in UNIX format before anything is touched -if $cygwin ; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --unix "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --unix "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --unix "$CLASSPATH"` -fi - -# For Mingw, ensure paths are in UNIX format before anything is touched -if $mingw ; then - [ -n "$M2_HOME" ] && - M2_HOME="`(cd "$M2_HOME"; pwd)`" - [ -n "$JAVA_HOME" ] && - JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`" -fi - -if [ -z "$JAVA_HOME" ]; then - javaExecutable="`which javac`" - if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then - # readlink(1) is not available as standard on Solaris 10. - readLink=`which readlink` - if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then - if $darwin ; then - javaHome="`dirname \"$javaExecutable\"`" - javaExecutable="`cd \"$javaHome\" && pwd -P`/javac" - else - javaExecutable="`readlink -f \"$javaExecutable\"`" - fi - javaHome="`dirname \"$javaExecutable\"`" - javaHome=`expr "$javaHome" : '\(.*\)/bin'` - JAVA_HOME="$javaHome" - export JAVA_HOME - fi - fi -fi - -if [ -z "$JAVACMD" ] ; then - if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - else - JAVACMD="`\\unset -f command; \\command -v java`" - fi -fi - -if [ ! -x "$JAVACMD" ] ; then - echo "Error: JAVA_HOME is not defined correctly." >&2 - echo " We cannot execute $JAVACMD" >&2 - exit 1 -fi - -if [ -z "$JAVA_HOME" ] ; then - echo "Warning: JAVA_HOME environment variable is not set." -fi - -CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher - -# traverses directory structure from process work directory to filesystem root -# first directory with .mvn subdirectory is considered project base directory -find_maven_basedir() { - - if [ -z "$1" ] - then - echo "Path not specified to find_maven_basedir" - return 1 - fi - - basedir="$1" - wdir="$1" - while [ "$wdir" != '/' ] ; do - if [ -d "$wdir"/.mvn ] ; then - basedir=$wdir - break - fi - # workaround for JBEAP-8937 (on Solaris 10/Sparc) - if [ -d "${wdir}" ]; then - wdir=`cd "$wdir/.."; pwd` - fi - # end of workaround - done - echo "${basedir}" -} - -# concatenates all lines of KeycloakLogoutHandler.java file -concat_lines() { - if [ -f "$1" ]; then - echo "$(tr -s '\n' ' ' < "$1")" - fi -} - -BASE_DIR=`find_maven_basedir "$(pwd)"` -if [ -z "$BASE_DIR" ]; then - exit 1; -fi - -########################################################################################## -# Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -# This allows using the maven wrapper in projects that prohibit checking in binary data. -########################################################################################## -if [ -r "$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found .mvn/wrapper/maven-wrapper.jar" - fi -else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Couldn't find .mvn/wrapper/maven-wrapper.jar, downloading it ..." - fi - if [ -n "$MVNW_REPOURL" ]; then - jarUrl="$MVNW_REPOURL/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" - else - jarUrl="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.0/maven-wrapper-3.1.0.jar" - fi - while IFS="=" read key value; do - case "$key" in (wrapperUrl) jarUrl="$value"; break ;; - esac - done < "$BASE_DIR/.mvn/wrapper/maven-wrapper.properties" - if [ "$MVNW_VERBOSE" = true ]; then - echo "Downloading from: $jarUrl" - fi - wrapperJarPath="$BASE_DIR/.mvn/wrapper/maven-wrapper.jar" - if $cygwin; then - wrapperJarPath=`cygpath --path --windows "$wrapperJarPath"` - fi - - if command -v wget > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found wget ... using wget" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - wget "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - else - wget --http-user=$MVNW_USERNAME --http-password=$MVNW_PASSWORD "$jarUrl" -O "$wrapperJarPath" || rm -f "$wrapperJarPath" - fi - elif command -v curl > /dev/null; then - if [ "$MVNW_VERBOSE" = true ]; then - echo "Found curl ... using curl" - fi - if [ -z "$MVNW_USERNAME" ] || [ -z "$MVNW_PASSWORD" ]; then - curl -o "$wrapperJarPath" "$jarUrl" -f - else - curl --user $MVNW_USERNAME:$MVNW_PASSWORD -o "$wrapperJarPath" "$jarUrl" -f - fi - - else - if [ "$MVNW_VERBOSE" = true ]; then - echo "Falling back to using Java to download" - fi - javaClass="$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.java" - # For Cygwin, switch paths to Windows format before running javac - if $cygwin; then - javaClass=`cygpath --path --windows "$javaClass"` - fi - if [ -e "$javaClass" ]; then - if [ ! -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Compiling MavenWrapperDownloader.java ..." - fi - # Compiling the Java class - ("$JAVA_HOME/bin/javac" "$javaClass") - fi - if [ -e "$BASE_DIR/.mvn/wrapper/MavenWrapperDownloader.class" ]; then - # Running the downloader - if [ "$MVNW_VERBOSE" = true ]; then - echo " - Running MavenWrapperDownloader.java ..." - fi - ("$JAVA_HOME/bin/java" -cp .mvn/wrapper MavenWrapperDownloader "$MAVEN_PROJECTBASEDIR") - fi - fi - fi -fi -########################################################################################## -# End of extension -########################################################################################## - -export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-"$BASE_DIR"} -if [ "$MVNW_VERBOSE" = true ]; then - echo $MAVEN_PROJECTBASEDIR -fi -MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS" - -# For Cygwin, switch paths to Windows format before running java -if $cygwin; then - [ -n "$M2_HOME" ] && - M2_HOME=`cygpath --path --windows "$M2_HOME"` - [ -n "$JAVA_HOME" ] && - JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"` - [ -n "$CLASSPATH" ] && - CLASSPATH=`cygpath --path --windows "$CLASSPATH"` - [ -n "$MAVEN_PROJECTBASEDIR" ] && - MAVEN_PROJECTBASEDIR=`cygpath --path --windows "$MAVEN_PROJECTBASEDIR"` -fi - -# Provide KeycloakLogoutHandler.java "standardized" way to retrieve the CLI args that will -# work with both Windows and non-Windows executions. -MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@" -export MAVEN_CMD_LINE_ARGS - -WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -exec "$JAVACMD" \ - $MAVEN_OPTS \ - $MAVEN_DEBUG_OPTS \ - -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \ - "-Dmaven.home=${M2_HOME}" \ - "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \ - ${WRAPPER_LAUNCHER} $MAVEN_CONFIG "$@" diff --git a/dpp-backend/digitalproductpass/mvnw.cmd b/dpp-backend/digitalproductpass/mvnw.cmd deleted file mode 100644 index 4c07acf39..000000000 --- a/dpp-backend/digitalproductpass/mvnw.cmd +++ /dev/null @@ -1,205 +0,0 @@ -rem Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -rem Copyright (c) 2022, 2023 Contributors to the CatenaX (ng) GitHub Organisation. - -rem Licensed under the Apache License, Version 2.0 (the "License"); -rem you may not use this file except in compliance with the License. -rem You may obtain a copy of the License at -rem -rem http://www.apache.org/licenses/LICENSE-2.0 -rem -rem Unless required by applicable law or agreed to in writing, software -rem distributed under the License is distributed on an "AS IS" BASIS, -rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -rem See the License for the specific language governing permissions and -rem limitations under the License. -rem -rem SPDX-License-Identifier: Apache-2.0 - -@REM ---------------------------------------------------------------------------- -@REM Licensed to the Apache Software Foundation (ASF) under one -@REM or more contributor license agreements. See the NOTICE file -@REM distributed with this work for additional information -@REM regarding copyright ownership. The ASF licenses this file -@REM to you under the Apache License, Version 2.0 (the -@REM "License"); you may not use this file except in compliance -@REM with the License. You may obtain a copy of the License at -@REM -@REM https://www.apache.org/licenses/LICENSE-2.0 -@REM -@REM Unless required by applicable law or agreed to in writing, -@REM software distributed under the License is distributed on an -@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@REM KIND, either express or implied. See the License for the -@REM specific language governing permissions and limitations -@REM under the License. -@REM ---------------------------------------------------------------------------- - -@REM ---------------------------------------------------------------------------- -@REM Maven Start Up Batch script -@REM -@REM Required ENV vars: -@REM JAVA_HOME - location of a JDK home dir -@REM -@REM Optional ENV vars -@REM M2_HOME - location of maven2's installed home dir -@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands -@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a keystroke before ending -@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven -@REM e.g. to debug Maven itself, use -@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files -@REM ---------------------------------------------------------------------------- - -@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on' -@echo off -@REM set title of command window -title %0 -@REM enable echoing by setting MAVEN_BATCH_ECHO to 'on' -@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO% - -@REM set %HOME% to equivalent of $HOME -if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%") - -@REM Execute a user defined script before this one -if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre -@REM check for pre script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_pre.bat" call "%USERPROFILE%\mavenrc_pre.bat" %* -if exist "%USERPROFILE%\mavenrc_pre.cmd" call "%USERPROFILE%\mavenrc_pre.cmd" %* -:skipRcPre - -@setlocal - -set ERROR_CODE=0 - -@REM To isolate internal variables from possible post scripts, we use another setlocal -@setlocal - -@REM ==== START VALIDATION ==== -if not "%JAVA_HOME%" == "" goto OkJHome - -echo. -echo Error: JAVA_HOME not found in your environment. >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -:OkJHome -if exist "%JAVA_HOME%\bin\java.exe" goto init - -echo. -echo Error: JAVA_HOME is set to an invalid directory. >&2 -echo JAVA_HOME = "%JAVA_HOME%" >&2 -echo Please set the JAVA_HOME variable in your environment to match the >&2 -echo location of your Java installation. >&2 -echo. -goto error - -@REM ==== END VALIDATION ==== - -:init - -@REM Find the project base dir, i.e. the directory that contains the folder ".mvn". -@REM Fallback to current working directory if not found. - -set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR% -IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir - -set EXEC_DIR=%CD% -set WDIR=%EXEC_DIR% -:findBaseDir -IF EXIST "%WDIR%"\.mvn goto baseDirFound -cd .. -IF "%WDIR%"=="%CD%" goto baseDirNotFound -set WDIR=%CD% -goto findBaseDir - -:baseDirFound -set MAVEN_PROJECTBASEDIR=%WDIR% -cd "%EXEC_DIR%" -goto endDetectBaseDir - -:baseDirNotFound -set MAVEN_PROJECTBASEDIR=%EXEC_DIR% -cd "%EXEC_DIR%" - -:endDetectBaseDir - -IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig - -@setlocal EnableExtensions EnableDelayedExpansion -for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a -@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS% - -:endReadAdditionalConfig - -SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe" -set WRAPPER_JAR="%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.jar" -set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain - -set DOWNLOAD_URL="https://repo.maven.apache.org/maven2/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" - -FOR /F "usebackq tokens=1,2 delims==" %%A IN ("%MAVEN_PROJECTBASEDIR%\.mvn\wrapper\maven-wrapper.properties") DO ( - IF "%%A"=="wrapperUrl" SET DOWNLOAD_URL=%%B -) - -@REM Extension to allow automatically downloading the maven-wrapper.jar from Maven-central -@REM This allows using the maven wrapper in projects that prohibit checking in binary data. -if exist %WRAPPER_JAR% ( - if "%MVNW_VERBOSE%" == "true" ( - echo Found %WRAPPER_JAR% - ) -) else ( - if not "%MVNW_REPOURL%" == "" ( - SET DOWNLOAD_URL="%MVNW_REPOURL%/org/apache/maven/wrapper/maven-wrapper/3.1.1/maven-wrapper-3.1.1.jar" - ) - if "%MVNW_VERBOSE%" == "true" ( - echo Couldn't find %WRAPPER_JAR%, downloading it ... - echo Downloading from: %DOWNLOAD_URL% - ) - - powershell -Command "&{"^ - "$webclient = new-object System.Net.WebClient;"^ - "if (-not ([string]::IsNullOrEmpty('%MVNW_USERNAME%') -and [string]::IsNullOrEmpty('%MVNW_PASSWORD%'))) {"^ - "$webclient.Credentials = new-object System.Net.NetworkCredential('%MVNW_USERNAME%', '%MVNW_PASSWORD%');"^ - "}"^ - "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; $webclient.DownloadFile('%DOWNLOAD_URL%', '%WRAPPER_JAR%')"^ - "}" - if "%MVNW_VERBOSE%" == "true" ( - echo Finished downloading %WRAPPER_JAR% - ) -) -@REM End of extension - -@REM Provide a "standardized" way to retrieve the CLI args that will -@REM work with both Windows and non-Windows executions. -set MAVEN_CMD_LINE_ARGS=%* - -%MAVEN_JAVA_EXE% ^ - %JVM_CONFIG_MAVEN_PROPS% ^ - %MAVEN_OPTS% ^ - %MAVEN_DEBUG_OPTS% ^ - -classpath %WRAPPER_JAR% ^ - "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" ^ - %WRAPPER_LAUNCHER% %MAVEN_CONFIG% %* -if ERRORLEVEL 1 goto error -goto end - -:error -set ERROR_CODE=1 - -:end -@endlocal & set ERROR_CODE=%ERROR_CODE% - -if not "%MAVEN_SKIP_RC%"=="" goto skipRcPost -@REM check for post script, once with legacy .bat ending and once with .cmd ending -if exist "%USERPROFILE%\mavenrc_post.bat" call "%USERPROFILE%\mavenrc_post.bat" -if exist "%USERPROFILE%\mavenrc_post.cmd" call "%USERPROFILE%\mavenrc_post.cmd" -:skipRcPost - -@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on' -if "%MAVEN_BATCH_PAUSE%"=="on" pause - -if "%MAVEN_TERMINATE_CMD%"=="on" exit %ERROR_CODE% - -cmd /C exit /B %ERROR_CODE% diff --git a/dpp-backend/digitalproductpass/openapi/product-passport-consumer-backend.json b/dpp-backend/digitalproductpass/openapi/product-passport-consumer-backend.json deleted file mode 100644 index 6ea556f6f..000000000 --- a/dpp-backend/digitalproductpass/openapi/product-passport-consumer-backend.json +++ /dev/null @@ -1,546 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "Product Passport Consumer Backend", - "description": "The openapi documentation for Product Passport Consumer Backend", - "version": "1.0" - }, - "servers": [ - { - "url": "http://localhost:8080", - "description": "localhost" - }, - { - "url": "https://dpp.int.demo.catena-x.net", - "description": "CatenaX-Integration" - }, - { - "url": "https://materialpass.dev.demo.catena-x.net/backend-service", - "description": "CatenaX-Development" - }, - { - "url": "https://materialpass.int.demo.catena-x.net/consumer" - } - ], - "paths": { - "/health": { - "get": { - "tags": ["default"], - "summary": "Returns the backend health status", - "operationId": "health", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/auth": { - "get": { - "tags": ["auth-controller"], - "summary": "Returns user logged in details", - "operationId": "index", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/auth/token": { - "get": { - "tags": ["auth-controller"], - "summary": "Returns access token", - "operationId": "getToken", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/auth/logout": { - "get": { - "tags": ["auth-controller"], - "summary": "Performs logout operation against backend service", - "operationId": "logout", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/auth/login": { - "get": { - "tags": ["auth-controller"], - "summary": "Performs authentication against backend service", - "operationId": "login", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/auth/check": { - "get": { - "tags": ["auth-controller"], - "summary": "Checks the user logged in status", - "operationId": "check", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/api/passport/{version}/{assetId}": { - "get": { - "tags": ["api-controller"], - "summary": "Returns versioned product passport by asset Id", - "operationId": "getPassport", - "parameters": [ - { - "name": "assetId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "version", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "idType", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "Battery_ID_DMC_Code" - } - }, - { - "name": "index", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - }, - "security": [ - { - "API-Key": null - } - ] - } - }, - "/api/data/submodel/{assetId}": { - "get": { - "tags": ["data-controller"], - "summary": "Returns asset submodel by asset Id", - "operationId": "getSubmodel", - "parameters": [ - { - "name": "assetId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - { - "name": "idType", - "in": "query", - "required": false, - "schema": { - "type": "string", - "default": "Battery_ID_DMC_Code" - } - }, - { - "name": "index", - "in": "query", - "required": false, - "schema": { - "type": "integer", - "format": "int32", - "default": 0 - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - }, - "security": [ - { - "API-Key": null - } - ] - } - }, - "/api/data/passport/{transferId}": { - "get": { - "tags": ["data-controller"], - "summary": "Returns product passport by transfer process Id", - "operationId": "getPassport_1", - "parameters": [ - { - "name": "transferId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - }, - "security": [ - { - "API-Key": null - } - ] - } - }, - "/api/data/catalog": { - "get": { - "tags": ["data-controller"], - "summary": "Returns contract offers catalog", - "operationId": "getCatalog", - "parameters": [ - { - "name": "providerUrl", - "in": "query", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - }, - "security": [ - { - "OAuth2": ["openid", "profile", "email"] - } - ] - } - }, - "/api/contracts/{assetId}": { - "get": { - "tags": ["api-controller"], - "summary": "Returns contracts by asset Id", - "operationId": "getContract", - "parameters": [ - { - "name": "assetId", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - ], - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - }, - "security": [ - { - "API-Key": null - } - ] - } - }, - "/": { - "get": { - "tags": ["app-controller"], - "summary": "Returns backend service status", - "operationId": "index_1", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - }, - "/error": { - "get": { - "tags": ["error-response-controller"], - "operationId": "handleError", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - }, - "put": { - "tags": ["error-response-controller"], - "operationId": "handleError_3", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - }, - "post": { - "tags": ["error-response-controller"], - "operationId": "handleError_2", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - }, - "delete": { - "tags": ["error-response-controller"], - "operationId": "handleError_5", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - }, - "options": { - "tags": ["error-response-controller"], - "operationId": "handleError_6", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - }, - "head": { - "tags": ["error-response-controller"], - "operationId": "handleError_1", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - }, - "patch": { - "tags": ["error-response-controller"], - "operationId": "handleError_4", - "responses": { - "200": { - "description": "OK", - "content": { - "*/*": { - "schema": { - "$ref": "#/components/schemas/Response" - } - } - } - } - } - } - } - }, - "security": [ - { - "API-Key": null - } - ], - "components": { - "schemas": { - "Response": { - "type": "object", - "properties": { - "message": { - "type": "string" - }, - "status": { - "type": "integer", - "format": "int32" - }, - "statusText": { - "type": "string" - }, - "data": { - "type": "object" - } - } - } - }, - "securitySchemes": { - "Bearer": { - "type": "http", - "scheme": "bearer" - }, - "API-Key": { - "type": "apiKey", - "in": "header", - "name": "X-Api-Key" - }, - "OpenID": { - "type": "openIdConnect", - "openIdConnectUrl": "https://example.com/.well-known/openid-configuration" - }, - "OAuth2": { - "type": "oauth2", - "flows": { - "authorizationCode": { - "authorizationUrl": "https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/auth", - "tokenUrl": "https://centralidp.dev.demo.catena-x.net/auth/realms/CX-Central/protocol/openid-connect/token", - "scopes": { - "openid": "openid", - "profile": "profile", - "email": "email" - } - } - } - } - } - } -} diff --git a/.eslintrc.js b/dpp-frontend/.eslintrc.js similarity index 96% rename from .eslintrc.js rename to dpp-frontend/.eslintrc.js index 9d257114d..22a902ba3 100644 --- a/.eslintrc.js +++ b/dpp-frontend/.eslintrc.js @@ -1,43 +1,43 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -// eslint-disable-next-line no-undef -module.exports = { - "env": { - "browser": true, - "es2021": true - }, - "extends": [ - "eslint:recommended", - "plugin:vue/essential" - ], - "parserOptions": { - "ecmaVersion": 12, - "sourceType": "module" - }, - "plugins": [ - "vue" - ], - "rules": { - } -}; +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +// eslint-disable-next-line no-undef +module.exports = { + "env": { + "browser": true, + "es2021": true + }, + "extends": [ + "eslint:recommended", + "plugin:vue/essential" + ], + "parserOptions": { + "ecmaVersion": 12, + "sourceType": "module" + }, + "plugins": [ + "vue" + ], + "rules": { + } +}; diff --git a/.nginx/nginx.conf b/dpp-frontend/.nginx/nginx.conf similarity index 100% rename from .nginx/nginx.conf rename to dpp-frontend/.nginx/nginx.conf diff --git a/Dockerfile b/dpp-frontend/Dockerfile similarity index 100% rename from Dockerfile rename to dpp-frontend/Dockerfile diff --git a/buildAndDeploy.sh b/dpp-frontend/buildAndDeploy.sh similarity index 100% rename from buildAndDeploy.sh rename to dpp-frontend/buildAndDeploy.sh diff --git a/entrypoint.sh b/dpp-frontend/entrypoint.sh similarity index 100% rename from entrypoint.sh rename to dpp-frontend/entrypoint.sh diff --git a/index.html b/dpp-frontend/index.html similarity index 97% rename from index.html rename to dpp-frontend/index.html index ec54af8e9..4d7b6b819 100644 --- a/index.html +++ b/dpp-frontend/index.html @@ -1,48 +1,48 @@ - - - - - - - - - - - - Digital Product Passport Application - - - -
- - - + + + + + + + + + + + + Digital Product Passport Application + + + +
+ + + diff --git a/jsconfig.json b/dpp-frontend/jsconfig.json similarity index 95% rename from jsconfig.json rename to dpp-frontend/jsconfig.json index d17d8534e..8d0fbd6f8 100644 --- a/jsconfig.json +++ b/dpp-frontend/jsconfig.json @@ -1,12 +1,12 @@ -{ - "compilerOptions": { - "target": "es5", - "module": "esnext", - "baseUrl": "/passport", - "moduleResolution": "node", - "paths": { - "@/*": ["src/*"] - }, - "lib": ["esnext", "dom", "dom.iterable", "scripthost"] - } -} +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "/passport", + "moduleResolution": "node", + "paths": { + "@/*": ["src/*"] + }, + "lib": ["esnext", "dom", "dom.iterable", "scripthost"] + } +} diff --git a/package-lock.json b/dpp-frontend/package-lock.json similarity index 97% rename from package-lock.json rename to dpp-frontend/package-lock.json index 688702680..63b48996b 100644 --- a/package-lock.json +++ b/dpp-frontend/package-lock.json @@ -1,5522 +1,5522 @@ -{ - "name": "digital-product-pass-frontend", - "version": "2.2.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "digital-product-pass-frontend", - "version": "2.2.0", - "dependencies": { - "@mdi/font": "5.9.55", - "@popperjs/core": "^2.11.2", - "@vitejs/plugin-vue": "^4.0.0", - "axios": ">=1.6.7", - "clipboard": "^2.0.11", - "core-js": "^3.8.3", - "crypto-js": "^4.2.0", - "eslint-config-prettier": "^8.5.0", - "keycloak-js": "^19.0.1", - "path": "^0.12.7", - "popper.js": "^1.16.1", - "rimraf": "^4.1.2", - "vite": ">=4.5.2", - "vite-plugin-vuetify": "^1.0.2", - "vue": "^3.2.47", - "vue-chartjs": "^5.3.0", - "vue-i18n": "9.2.2", - "vue-router": "^4.0.13", - "vue3-json-viewer": "^2.2.2", - "vue3-qrcode-reader": "^0.0.1", - "vuetify": "^3.1.4", - "vuex": "^4.0.2", - "vuex-persistedstate": "^4.1.0", - "webfontloader": "^1.0.0" - }, - "devDependencies": { - "eslint": "^7.32.0", - "eslint-plugin-vue": "^9.9.0", - "rollup-plugin-visualizer": "^5.9.0", - "sass": "^1.58.0", - "vue-tsc": "^1.0.24" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "cpu": [ - "arm" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "cpu": [ - "loong64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "cpu": [ - "mips64el" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "cpu": [ - "ppc64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "cpu": [ - "riscv64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "cpu": [ - "s390x" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/eslintrc/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "dependencies": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - }, - "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "node_modules/@intlify/core-base": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", - "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", - "dependencies": { - "@intlify/devtools-if": "9.2.2", - "@intlify/message-compiler": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/devtools-if": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", - "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", - "dependencies": { - "@intlify/shared": "9.2.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/message-compiler": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", - "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", - "dependencies": { - "@intlify/shared": "9.2.2", - "source-map": "0.6.1" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/shared": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", - "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", - "engines": { - "node": ">= 14" - } - }, - "node_modules/@intlify/vue-devtools": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", - "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", - "dependencies": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2" - }, - "engines": { - "node": ">= 14" - } - }, - "node_modules/@mdi/font": { - "version": "5.9.55", - "license": "Apache-2.0" - }, - "node_modules/@popperjs/core": { - "version": "2.11.2", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/@vitejs/plugin-vue": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", - "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==", - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "peerDependencies": { - "vite": "^4.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@volar/language-core": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.24.tgz", - "integrity": "sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==", - "dev": true, - "dependencies": { - "@volar/source-map": "1.0.24", - "muggle-string": "^0.1.0" - } - }, - "node_modules/@volar/source-map": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz", - "integrity": "sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==", - "dev": true, - "dependencies": { - "muggle-string": "^0.1.0" - } - }, - "node_modules/@volar/typescript": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.24.tgz", - "integrity": "sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.0.24" - } - }, - "node_modules/@volar/vue-language-core": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz", - "integrity": "sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==", - "dev": true, - "dependencies": { - "@volar/language-core": "1.0.24", - "@volar/source-map": "1.0.24", - "@vue/compiler-dom": "^3.2.45", - "@vue/compiler-sfc": "^3.2.45", - "@vue/reactivity": "^3.2.45", - "@vue/shared": "^3.2.45", - "minimatch": "^5.1.1", - "vue-template-compiler": "^2.7.14" - } - }, - "node_modules/@volar/vue-language-core/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/@volar/vue-language-core/node_modules/minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@volar/vue-typescript": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz", - "integrity": "sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==", - "dev": true, - "dependencies": { - "@volar/typescript": "1.0.24", - "@volar/vue-language-core": "1.0.24" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", - "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", - "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", - "dependencies": { - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", - "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", - "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", - "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/devtools-api": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", - "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" - }, - "node_modules/@vue/reactivity": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", - "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", - "dependencies": { - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/reactivity-transform": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", - "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "dependencies": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", - "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", - "dependencies": { - "@vue/reactivity": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", - "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", - "dependencies": { - "@vue/runtime-core": "3.2.47", - "@vue/shared": "3.2.47", - "csstype": "^2.6.8" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", - "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", - "dependencies": { - "@vue/compiler-ssr": "3.2.47", - "@vue/shared": "3.2.47" - }, - "peerDependencies": { - "vue": "3.2.47" - } - }, - "node_modules/@vue/shared": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" - }, - "node_modules/@vuetify/loader-shared": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@vuetify/loader-shared/-/loader-shared-1.7.1.tgz", - "integrity": "sha512-kLUvuAed6RCvkeeTNJzuy14pqnkur8lTuner7v7pNE/kVhPR97TuyXwBSBMR1cJeiLiOfu6SF5XlCYbXByEx1g==", - "dependencies": { - "find-cache-dir": "^3.3.2", - "upath": "^2.0.1" - }, - "peerDependencies": { - "vue": "^3.0.0", - "vuetify": "^3.0.0-beta.4" - } - }, - "node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": 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/ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "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/axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", - "dependencies": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "node_modules/base64-js": { - "version": "1.5.1", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callforth": { - "version": "0.3.1", - "license": "MIT" - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "dependencies": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "node_modules/cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "node_modules/core-js": { - "version": "3.21.1", - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "node_modules/de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "node_modules/debug": { - "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" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "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==", - "dev": true - }, - "node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "dependencies": { - "ansi-colors": "^4.1.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "dependencies": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.2.1", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "8.5.0", - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-plugin-vue": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", - "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", - "dev": true, - "dependencies": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.3.5", - "vue-eslint-parser": "^9.0.1", - "xml-name-validator": "^4.0.0" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^2.0.0" - }, - "engines": { - "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=5" - } - }, - "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==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "dependencies": { - "eslint-visitor-keys": "^1.1.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/eslint/node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/eslint/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/eslint/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/eslint/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/eslint/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/eslint/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==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/eslint/node_modules/globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/eslint/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "dependencies": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/espree/node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": 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==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/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/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "license": "MIT" - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "dependencies": { - "flat-cache": "^3.0.4" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" - } - }, - "node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "dependencies": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "dependencies": { - "delegate": "^3.1.2" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true, - "bin": { - "he": "bin/he" - } - }, - "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/immutable": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", - "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", - "dev": true - }, - "node_modules/import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "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", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "license": "MIT" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/keycloak-js": { - "version": "19.0.1", - "license": "Apache-2.0", - "dependencies": { - "base64-js": "^1.5.1", - "js-sha256": "^0.9.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "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==", - "dev": true - }, - "node_modules/lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "dependencies": { - "sourcemap-codec": "^1.4.8" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "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" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/muggle-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", - "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", - "dev": true - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "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==", - "dev": true - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0" - }, - "funding": { - "url": "https://github.com/fb55/nth-check?sponsor=1" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/open": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", - "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", - "dev": true, - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": 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.3" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path": { - "version": "0.12.7", - "license": "MIT", - "dependencies": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.0.0", - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/popper.js": { - "version": "1.16.1", - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/popperjs" - } - }, - "node_modules/postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "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==", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/rimraf": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", - "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", - "bin": { - "rimraf": "dist/cjs/src/bin.js" - }, - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=14.18.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/rollup-plugin-visualizer": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz", - "integrity": "sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==", - "dev": true, - "dependencies": { - "open": "^8.4.0", - "picomatch": "^2.3.1", - "source-map": "^0.7.4", - "yargs": "^17.5.1" - }, - "bin": { - "rollup-plugin-visualizer": "dist/bin/cli.js" - }, - "engines": { - "node": ">=14" - }, - "peerDependencies": { - "rollup": "2.x || 3.x" - }, - "peerDependenciesMeta": { - "rollup": { - "optional": true - } - } - }, - "node_modules/rollup-plugin-visualizer/node_modules/source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/rtcpeerconnection-shim": { - "version": "1.2.15", - "license": "BSD-3-Clause", - "dependencies": { - "sdp": "^2.6.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" - } - }, - "node_modules/sass": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", - "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", - "dev": true, - "dependencies": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/sdp": { - "version": "2.12.0", - "license": "MIT" - }, - "node_modules/select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" - }, - "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/shvl": { - "version": "2.0.3", - "license": "MIT" - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-js": { - "version": "1.0.2", - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "license": "MIT" - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "dependencies": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/table/node_modules/ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/table/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/table/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/table/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/table/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "node_modules/table/node_modules/slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" - } - }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "node_modules/tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "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==", - "dev": true, - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/util": { - "version": "0.10.4", - "license": "MIT", - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "license": "ISC" - }, - "node_modules/v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "node_modules/vite": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", - "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", - "dependencies": { - "esbuild": "^0.18.10", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - }, - "peerDependencies": { - "@types/node": ">= 14", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vite-plugin-vuetify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vite-plugin-vuetify/-/vite-plugin-vuetify-1.0.2.tgz", - "integrity": "sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==", - "dependencies": { - "@vuetify/loader-shared": "^1.7.1", - "debug": "^4.3.3", - "upath": "^2.0.1" - }, - "engines": { - "node": ">=12" - }, - "peerDependencies": { - "vite": "^2.7.0 || ^3.0.0 || ^4.0.0", - "vuetify": "^3.0.0-beta.4" - } - }, - "node_modules/vue": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", - "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", - "dependencies": { - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-sfc": "3.2.47", - "@vue/runtime-dom": "3.2.47", - "@vue/server-renderer": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "node_modules/vue-chartjs": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.0.tgz", - "integrity": "sha512-8XqX0JU8vFZ+WA2/knz4z3ThClduni2Nm0BMe2u0mXgTfd9pXrmJ07QBI+WAij5P/aPmPMX54HCE1seWL37ZdQ==", - "peerDependencies": { - "chart.js": "^4.1.1", - "vue": "^3.0.0-0 || ^2.7.0" - } - }, - "node_modules/vue-eslint-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", - "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", - "dev": true, - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "dependencies": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vue-eslint-parser/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/vue-i18n": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", - "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", - "dependencies": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2", - "@vue/devtools-api": "^6.2.1" - }, - "engines": { - "node": ">= 14" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, - "node_modules/vue-router": { - "version": "4.0.13", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/posva" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "dependencies": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "node_modules/vue-tsc": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.24.tgz", - "integrity": "sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==", - "dev": true, - "dependencies": { - "@volar/vue-language-core": "1.0.24", - "@volar/vue-typescript": "1.0.24" - }, - "bin": { - "vue-tsc": "bin/vue-tsc.js" - }, - "peerDependencies": { - "typescript": "*" - } - }, - "node_modules/vue3-json-viewer": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", - "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", - "dependencies": { - "clipboard": "^2.0.10" - }, - "peerDependencies": { - "vue": "^3.2.0" - } - }, - "node_modules/vue3-qrcode-reader": { - "version": "0.0.1", - "license": "MIT", - "dependencies": { - "callforth": "^0.3.1", - "core-js": "^3.6.5", - "vue": "^3.0.0", - "webrtc-adapter": "7.7.0" - } - }, - "node_modules/vuetify": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.4.tgz", - "integrity": "sha512-6ERm2a0bJyMLjmRKTifN501o3MsCVp9agtoZsORw1b3X29ycTdXOJdRMEADaDSv59dBWwUVv3WqHcWzCG4Gwfw==", - "engines": { - "node": "^12.20 || >=14.13" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/johnleider" - }, - "peerDependencies": { - "vite-plugin-vuetify": "^1.0.0-alpha.12", - "vue": "^3.2.0", - "vue-i18n": "^9.0.0", - "webpack-plugin-vuetify": "^2.0.0-alpha.11" - }, - "peerDependenciesMeta": { - "vite-plugin-vuetify": { - "optional": true - }, - "vue-i18n": { - "optional": true - }, - "webpack-plugin-vuetify": { - "optional": true - } - } - }, - "node_modules/vuex": { - "version": "4.0.2", - "license": "MIT", - "dependencies": { - "@vue/devtools-api": "^6.0.0-beta.11" - }, - "peerDependencies": { - "vue": "^3.0.2" - } - }, - "node_modules/vuex-persistedstate": { - "version": "4.1.0", - "license": "MIT", - "dependencies": { - "deepmerge": "^4.2.2", - "shvl": "^2.0.3" - }, - "peerDependencies": { - "vuex": "^3.0 || ^4.0.0-rc" - } - }, - "node_modules/vuex-persistedstate/node_modules/deepmerge": { - "version": "4.2.2", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webfontloader": { - "version": "1.6.28", - "license": "Apache-2.0" - }, - "node_modules/webrtc-adapter": { - "version": "7.7.0", - "license": "BSD-3-Clause", - "dependencies": { - "rtcpeerconnection-shim": "^1.2.15", - "sdp": "^2.12.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">=3.10.0" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "node_modules/xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, - "engines": { - "node": ">=12" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "dependencies": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, - "engines": { - "node": ">=12" - } - } - }, - "dependencies": { - "@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", - "dev": true - }, - "@babel/highlight": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", - "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", - "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" - }, - "@esbuild/android-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", - "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", - "optional": true - }, - "@esbuild/android-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", - "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", - "optional": true - }, - "@esbuild/android-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", - "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", - "optional": true - }, - "@esbuild/darwin-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", - "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", - "optional": true - }, - "@esbuild/darwin-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", - "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", - "optional": true - }, - "@esbuild/freebsd-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", - "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", - "optional": true - }, - "@esbuild/freebsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", - "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", - "optional": true - }, - "@esbuild/linux-arm": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", - "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", - "optional": true - }, - "@esbuild/linux-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", - "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", - "optional": true - }, - "@esbuild/linux-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", - "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", - "optional": true - }, - "@esbuild/linux-loong64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", - "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", - "optional": true - }, - "@esbuild/linux-mips64el": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", - "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", - "optional": true - }, - "@esbuild/linux-ppc64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", - "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", - "optional": true - }, - "@esbuild/linux-riscv64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", - "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", - "optional": true - }, - "@esbuild/linux-s390x": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", - "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", - "optional": true - }, - "@esbuild/linux-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", - "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", - "optional": true - }, - "@esbuild/netbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", - "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", - "optional": true - }, - "@esbuild/openbsd-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", - "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", - "optional": true - }, - "@esbuild/sunos-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", - "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", - "optional": true - }, - "@esbuild/win32-arm64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", - "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", - "optional": true - }, - "@esbuild/win32-ia32": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", - "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", - "optional": true - }, - "@esbuild/win32-x64": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", - "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", - "optional": true - }, - "@eslint/eslintrc": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", - "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", - "dev": true, - "requires": { - "ajv": "^6.12.4", - "debug": "^4.1.1", - "espree": "^7.3.0", - "globals": "^13.9.0", - "ignore": "^4.0.6", - "import-fresh": "^3.2.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "strip-json-comments": "^3.1.1" - }, - "dependencies": { - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "@humanwhocodes/config-array": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", - "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", - "dev": true, - "requires": { - "@humanwhocodes/object-schema": "^1.2.0", - "debug": "^4.1.1", - "minimatch": "^3.0.4" - } - }, - "@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true - }, - "@intlify/core-base": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", - "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", - "requires": { - "@intlify/devtools-if": "9.2.2", - "@intlify/message-compiler": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2" - } - }, - "@intlify/devtools-if": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", - "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", - "requires": { - "@intlify/shared": "9.2.2" - } - }, - "@intlify/message-compiler": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", - "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", - "requires": { - "@intlify/shared": "9.2.2", - "source-map": "0.6.1" - } - }, - "@intlify/shared": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", - "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" - }, - "@intlify/vue-devtools": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", - "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", - "requires": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2" - } - }, - "@mdi/font": { - "version": "5.9.55" - }, - "@popperjs/core": { - "version": "2.11.2" - }, - "@vitejs/plugin-vue": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", - "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==" - }, - "@volar/language-core": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.24.tgz", - "integrity": "sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==", - "dev": true, - "requires": { - "@volar/source-map": "1.0.24", - "muggle-string": "^0.1.0" - } - }, - "@volar/source-map": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz", - "integrity": "sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==", - "dev": true, - "requires": { - "muggle-string": "^0.1.0" - } - }, - "@volar/typescript": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.24.tgz", - "integrity": "sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==", - "dev": true, - "requires": { - "@volar/language-core": "1.0.24" - } - }, - "@volar/vue-language-core": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz", - "integrity": "sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==", - "dev": true, - "requires": { - "@volar/language-core": "1.0.24", - "@volar/source-map": "1.0.24", - "@vue/compiler-dom": "^3.2.45", - "@vue/compiler-sfc": "^3.2.45", - "@vue/reactivity": "^3.2.45", - "@vue/shared": "^3.2.45", - "minimatch": "^5.1.1", - "vue-template-compiler": "^2.7.14" - }, - "dependencies": { - "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, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", - "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "@volar/vue-typescript": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz", - "integrity": "sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==", - "dev": true, - "requires": { - "@volar/typescript": "1.0.24", - "@volar/vue-language-core": "1.0.24" - } - }, - "@vue/compiler-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", - "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", - "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", - "requires": { - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "@vue/compiler-sfc": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", - "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-ssr": "3.2.47", - "@vue/reactivity-transform": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7", - "postcss": "^8.1.10", - "source-map": "^0.6.1" - } - }, - "@vue/compiler-ssr": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", - "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", - "requires": { - "@vue/compiler-dom": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "@vue/devtools-api": { - "version": "6.5.1", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", - "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" - }, - "@vue/reactivity": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", - "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", - "requires": { - "@vue/shared": "3.2.47" - } - }, - "@vue/reactivity-transform": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", - "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", - "requires": { - "@babel/parser": "^7.16.4", - "@vue/compiler-core": "3.2.47", - "@vue/shared": "3.2.47", - "estree-walker": "^2.0.2", - "magic-string": "^0.25.7" - } - }, - "@vue/runtime-core": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", - "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", - "requires": { - "@vue/reactivity": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "@vue/runtime-dom": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", - "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", - "requires": { - "@vue/runtime-core": "3.2.47", - "@vue/shared": "3.2.47", - "csstype": "^2.6.8" - } - }, - "@vue/server-renderer": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", - "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", - "requires": { - "@vue/compiler-ssr": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "@vue/shared": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", - "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" - }, - "@vuetify/loader-shared": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@vuetify/loader-shared/-/loader-shared-1.7.1.tgz", - "integrity": "sha512-kLUvuAed6RCvkeeTNJzuy14pqnkur8lTuner7v7pNE/kVhPR97TuyXwBSBMR1cJeiLiOfu6SF5XlCYbXByEx1g==", - "requires": { - "find-cache-dir": "^3.3.2", - "upath": "^2.0.1" - } - }, - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "dev": true - }, - "acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true - }, - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ansi-colors": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", - "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "1.6.7", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", - "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", - "requires": { - "follow-redirects": "^1.15.4", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "base64-js": { - "version": "1.5.1" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "callforth": { - "version": "0.3.1" - }, - "callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "dependencies": { - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - } - } - }, - "clipboard": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", - "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", - "requires": { - "good-listener": "^1.2.2", - "select": "^1.1.2", - "tiny-emitter": "^2.0.0" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "core-js": { - "version": "3.21.1" - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "crypto-js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", - "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "csstype": { - "version": "2.6.21", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", - "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" - }, - "de-indent": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", - "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", - "dev": true - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "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==", - "dev": true - }, - "define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "delegate": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", - "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" - }, - "doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "requires": { - "esutils": "^2.0.2" - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "enquirer": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", - "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", - "dev": true, - "requires": { - "ansi-colors": "^4.1.1" - } - }, - "esbuild": { - "version": "0.18.20", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", - "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", - "requires": { - "@esbuild/android-arm": "0.18.20", - "@esbuild/android-arm64": "0.18.20", - "@esbuild/android-x64": "0.18.20", - "@esbuild/darwin-arm64": "0.18.20", - "@esbuild/darwin-x64": "0.18.20", - "@esbuild/freebsd-arm64": "0.18.20", - "@esbuild/freebsd-x64": "0.18.20", - "@esbuild/linux-arm": "0.18.20", - "@esbuild/linux-arm64": "0.18.20", - "@esbuild/linux-ia32": "0.18.20", - "@esbuild/linux-loong64": "0.18.20", - "@esbuild/linux-mips64el": "0.18.20", - "@esbuild/linux-ppc64": "0.18.20", - "@esbuild/linux-riscv64": "0.18.20", - "@esbuild/linux-s390x": "0.18.20", - "@esbuild/linux-x64": "0.18.20", - "@esbuild/netbsd-x64": "0.18.20", - "@esbuild/openbsd-x64": "0.18.20", - "@esbuild/sunos-x64": "0.18.20", - "@esbuild/win32-arm64": "0.18.20", - "@esbuild/win32-ia32": "0.18.20", - "@esbuild/win32-x64": "0.18.20" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "eslint": { - "version": "7.32.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", - "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", - "dev": true, - "requires": { - "@babel/code-frame": "7.12.11", - "@eslint/eslintrc": "^0.4.3", - "@humanwhocodes/config-array": "^0.5.0", - "ajv": "^6.10.0", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "enquirer": "^2.3.5", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^5.1.1", - "eslint-utils": "^2.1.0", - "eslint-visitor-keys": "^2.0.0", - "espree": "^7.3.1", - "esquery": "^1.4.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", - "functional-red-black-tree": "^1.0.1", - "glob-parent": "^5.1.2", - "globals": "^13.6.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "js-yaml": "^3.13.1", - "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.0.4", - "natural-compare": "^1.4.0", - "optionator": "^0.9.1", - "progress": "^2.0.0", - "regexpp": "^3.1.0", - "semver": "^7.5.3", - "strip-ansi": "^6.0.0", - "strip-json-comments": "^3.1.0", - "table": "^6.0.9", - "text-table": "^0.2.0", - "v8-compile-cache": "^2.0.3" - }, - "dependencies": { - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "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==", - "dev": true - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globals": { - "version": "13.20.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", - "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", - "dev": true, - "requires": { - "type-fest": "^0.20.2" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true - } - } - }, - "eslint-config-prettier": { - "version": "8.5.0" - }, - "eslint-plugin-vue": { - "version": "9.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", - "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", - "dev": true, - "requires": { - "eslint-utils": "^3.0.0", - "natural-compare": "^1.4.0", - "nth-check": "^2.0.1", - "postcss-selector-parser": "^6.0.9", - "semver": "^7.5.3", - "vue-eslint-parser": "^9.0.1", - "xml-name-validator": "^4.0.0" - }, - "dependencies": { - "eslint-utils": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", - "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^2.0.0" - } - } - } - }, - "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==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" - } - }, - "eslint-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", - "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", - "dev": true, - "requires": { - "eslint-visitor-keys": "^1.1.0" - }, - "dependencies": { - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "eslint-visitor-keys": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true - }, - "espree": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", - "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", - "dev": true, - "requires": { - "acorn": "^7.4.0", - "acorn-jsx": "^5.3.1", - "eslint-visitor-keys": "^1.3.0" - }, - "dependencies": { - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", - "dev": true - } - } - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esquery": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", - "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, - "requires": { - "estraverse": "^5.1.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "estree-walker": { - "version": "2.0.2" - }, - "esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true - }, - "fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true - }, - "file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, - "requires": { - "flat-cache": "^3.0.4" - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "flat-cache": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", - "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, - "requires": { - "flatted": "^3.1.0", - "rimraf": "^3.0.2" - }, - "dependencies": { - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "flatted": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", - "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", - "dev": true - }, - "follow-redirects": { - "version": "1.15.4", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", - "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "optional": true - }, - "functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "good-listener": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", - "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", - "requires": { - "delegate": "^3.1.2" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", - "dev": true - }, - "immutable": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", - "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", - "dev": true - }, - "import-fresh": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, - "requires": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - } - }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-docker": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", - "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "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", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "requires": { - "is-docker": "^2.0.0" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "js-sha256": { - "version": "0.9.0" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "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==", - "dev": true - }, - "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==", - "dev": true - }, - "keycloak-js": { - "version": "19.0.1", - "requires": { - "base64-js": "^1.5.1", - "js-sha256": "^0.9.0" - } - }, - "levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "requires": { - "p-locate": "^4.1.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "dev": true - }, - "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==", - "dev": true - }, - "lodash.truncate": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", - "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "magic-string": { - "version": "0.25.9", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", - "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", - "requires": { - "sourcemap-codec": "^1.4.8" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "requires": { - "semver": "^7.5.3" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "muggle-string": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", - "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", - "dev": true - }, - "nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" - }, - "natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "open": { - "version": "8.4.1", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", - "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", - "dev": true, - "requires": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - } - }, - "optionator": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", - "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, - "requires": { - "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.3" - } - }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "requires": { - "p-try": "^2.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "requires": { - "p-limit": "^2.2.0" - } - }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" - }, - "parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "requires": { - "callsites": "^3.0.0" - } - }, - "path": { - "version": "0.12.7", - "requires": { - "process": "^0.11.1", - "util": "^0.10.3" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "picocolors": { - "version": "1.0.0" - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "requires": { - "find-up": "^4.0.0" - } - }, - "popper.js": { - "version": "1.16.1" - }, - "postcss": { - "version": "8.4.33", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", - "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", - "requires": { - "nanoid": "^3.3.7", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-selector-parser": { - "version": "6.0.11", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", - "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true - }, - "process": { - "version": "0.11.10" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "punycode": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", - "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", - "dev": true - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "regexpp": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "require-from-string": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", - "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true - }, - "resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true - }, - "rimraf": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", - "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==" - }, - "rollup": { - "version": "3.29.4", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", - "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", - "requires": { - "fsevents": "~2.3.2" - } - }, - "rollup-plugin-visualizer": { - "version": "5.9.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz", - "integrity": "sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==", - "dev": true, - "requires": { - "open": "^8.4.0", - "picomatch": "^2.3.1", - "source-map": "^0.7.4", - "yargs": "^17.5.1" - }, - "dependencies": { - "source-map": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", - "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true - } - } - }, - "rtcpeerconnection-shim": { - "version": "1.2.15", - "requires": { - "sdp": "^2.6.0" - } - }, - "sass": { - "version": "1.58.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", - "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, - "sdp": { - "version": "2.12.0" - }, - "select": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", - "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shvl": { - "version": "2.0.3" - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "source-map-js": { - "version": "1.0.2" - }, - "sourcemap-codec": { - "version": "1.4.8" - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "table": { - "version": "6.8.1", - "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", - "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", - "dev": true, - "requires": { - "ajv": "^8.0.1", - "lodash.truncate": "^4.4.2", - "slice-ansi": "^4.0.0", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1" - }, - "dependencies": { - "ajv": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", - "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", - "dev": true, - "requires": { - "fast-deep-equal": "^3.1.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.2.2" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true - }, - "slice-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", - "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - } - } - } - }, - "text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true - }, - "tiny-emitter": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", - "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "requires": { - "prelude-ls": "^1.2.1" - } - }, - "upath": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", - "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==" - }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "requires": { - "punycode": "^2.1.0" - } - }, - "util": { - "version": "0.10.4", - "requires": { - "inherits": "2.0.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.3" - } - } - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "v8-compile-cache": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", - "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true - }, - "vite": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", - "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", - "requires": { - "esbuild": "^0.18.10", - "fsevents": "~2.3.2", - "postcss": "^8.4.27", - "rollup": "^3.27.1" - } - }, - "vite-plugin-vuetify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/vite-plugin-vuetify/-/vite-plugin-vuetify-1.0.2.tgz", - "integrity": "sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==", - "requires": { - "@vuetify/loader-shared": "^1.7.1", - "debug": "^4.3.3", - "upath": "^2.0.1" - } - }, - "vue": { - "version": "3.2.47", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", - "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", - "requires": { - "@vue/compiler-dom": "3.2.47", - "@vue/compiler-sfc": "3.2.47", - "@vue/runtime-dom": "3.2.47", - "@vue/server-renderer": "3.2.47", - "@vue/shared": "3.2.47" - } - }, - "vue-chartjs": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.0.tgz", - "integrity": "sha512-8XqX0JU8vFZ+WA2/knz4z3ThClduni2Nm0BMe2u0mXgTfd9pXrmJ07QBI+WAij5P/aPmPMX54HCE1seWL37ZdQ==" - }, - "vue-eslint-parser": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", - "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", - "dev": true, - "requires": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.5.3" - }, - "dependencies": { - "eslint-scope": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", - "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, - "requires": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - } - }, - "eslint-visitor-keys": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true - }, - "espree": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", - "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", - "dev": true, - "requires": { - "acorn": "^8.8.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.3.0" - } - }, - "estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true - } - } - }, - "vue-i18n": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", - "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", - "requires": { - "@intlify/core-base": "9.2.2", - "@intlify/shared": "9.2.2", - "@intlify/vue-devtools": "9.2.2", - "@vue/devtools-api": "^6.2.1" - } - }, - "vue-router": { - "version": "4.0.13", - "requires": { - "@vue/devtools-api": "^6.0.0" - } - }, - "vue-template-compiler": { - "version": "2.7.14", - "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", - "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", - "dev": true, - "requires": { - "de-indent": "^1.0.2", - "he": "^1.2.0" - } - }, - "vue-tsc": { - "version": "1.0.24", - "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.24.tgz", - "integrity": "sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==", - "dev": true, - "requires": { - "@volar/vue-language-core": "1.0.24", - "@volar/vue-typescript": "1.0.24" - } - }, - "vue3-json-viewer": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", - "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", - "requires": { - "clipboard": "^2.0.10" - } - }, - "vue3-qrcode-reader": { - "version": "0.0.1", - "requires": { - "callforth": "^0.3.1", - "core-js": "^3.6.5", - "vue": "^3.0.0", - "webrtc-adapter": "7.7.0" - } - }, - "vuetify": { - "version": "3.1.4", - "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.4.tgz", - "integrity": "sha512-6ERm2a0bJyMLjmRKTifN501o3MsCVp9agtoZsORw1b3X29ycTdXOJdRMEADaDSv59dBWwUVv3WqHcWzCG4Gwfw==" - }, - "vuex": { - "version": "4.0.2", - "requires": { - "@vue/devtools-api": "^6.0.0-beta.11" - } - }, - "vuex-persistedstate": { - "version": "4.1.0", - "requires": { - "deepmerge": "^4.2.2", - "shvl": "^2.0.3" - }, - "dependencies": { - "deepmerge": { - "version": "4.2.2" - } - } - }, - "webfontloader": { - "version": "1.6.28" - }, - "webrtc-adapter": { - "version": "7.7.0", - "requires": { - "rtcpeerconnection-shim": "^1.2.15", - "sdp": "^2.12.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "xml-name-validator": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", - "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } - } -} +{ + "name": "digital-product-pass-frontend", + "version": "2.2.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "digital-product-pass-frontend", + "version": "2.2.0", + "dependencies": { + "@mdi/font": "5.9.55", + "@popperjs/core": "^2.11.2", + "@vitejs/plugin-vue": "^4.0.0", + "axios": ">=1.6.7", + "clipboard": "^2.0.11", + "core-js": "^3.8.3", + "crypto-js": "^4.2.0", + "eslint-config-prettier": "^8.5.0", + "keycloak-js": "^19.0.1", + "path": "^0.12.7", + "popper.js": "^1.16.1", + "rimraf": "^4.1.2", + "vite": ">=4.5.2", + "vite-plugin-vuetify": "^1.0.2", + "vue": "^3.2.47", + "vue-chartjs": "^5.3.0", + "vue-i18n": "9.2.2", + "vue-router": "^4.0.13", + "vue3-json-viewer": "^2.2.2", + "vue3-qrcode-reader": "^0.0.1", + "vuetify": "^3.1.4", + "vuex": "^4.0.2", + "vuex-persistedstate": "^4.1.0", + "webfontloader": "^1.0.0" + }, + "devDependencies": { + "eslint": "^7.32.0", + "eslint-plugin-vue": "^9.9.0", + "rollup-plugin-visualizer": "^5.9.0", + "sass": "^1.58.0", + "vue-tsc": "^1.0.24" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "dependencies": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "dependencies": { + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "dependencies": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==", + "engines": { + "node": ">= 14" + } + }, + "node_modules/@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/@mdi/font": { + "version": "5.9.55", + "license": "Apache-2.0" + }, + "node_modules/@popperjs/core": { + "version": "2.11.2", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", + "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==", + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^4.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@volar/language-core": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.24.tgz", + "integrity": "sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==", + "dev": true, + "dependencies": { + "@volar/source-map": "1.0.24", + "muggle-string": "^0.1.0" + } + }, + "node_modules/@volar/source-map": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz", + "integrity": "sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==", + "dev": true, + "dependencies": { + "muggle-string": "^0.1.0" + } + }, + "node_modules/@volar/typescript": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.24.tgz", + "integrity": "sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.0.24" + } + }, + "node_modules/@volar/vue-language-core": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz", + "integrity": "sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==", + "dev": true, + "dependencies": { + "@volar/language-core": "1.0.24", + "@volar/source-map": "1.0.24", + "@vue/compiler-dom": "^3.2.45", + "@vue/compiler-sfc": "^3.2.45", + "@vue/reactivity": "^3.2.45", + "@vue/shared": "^3.2.45", + "minimatch": "^5.1.1", + "vue-template-compiler": "^2.7.14" + } + }, + "node_modules/@volar/vue-language-core/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/@volar/vue-language-core/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@volar/vue-typescript": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz", + "integrity": "sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==", + "dev": true, + "dependencies": { + "@volar/typescript": "1.0.24", + "@volar/vue-language-core": "1.0.24" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "dependencies": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "dependencies": { + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "dependencies": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "dependencies": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "dependencies": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + }, + "peerDependencies": { + "vue": "3.2.47" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "node_modules/@vuetify/loader-shared": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@vuetify/loader-shared/-/loader-shared-1.7.1.tgz", + "integrity": "sha512-kLUvuAed6RCvkeeTNJzuy14pqnkur8lTuner7v7pNE/kVhPR97TuyXwBSBMR1cJeiLiOfu6SF5XlCYbXByEx1g==", + "dependencies": { + "find-cache-dir": "^3.3.2", + "upath": "^2.0.1" + }, + "peerDependencies": { + "vue": "^3.0.0", + "vuetify": "^3.0.0-beta.4" + } + }, + "node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": 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/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "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/axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "dependencies": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/callforth": { + "version": "0.3.1", + "license": "MIT" + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.21.1", + "hasInstallScript": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "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" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "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==", + "dev": true + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "license": "MIT", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", + "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "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==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/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==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": 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==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/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/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "license": "MIT" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "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", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "license": "MIT" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/keycloak-js": { + "version": "19.0.1", + "license": "Apache-2.0", + "dependencies": { + "base64-js": "^1.5.1", + "js-sha256": "^0.9.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "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==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "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" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "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==", + "dev": true + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/open": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", + "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", + "dev": true, + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": 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.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path": { + "version": "0.12.7", + "license": "MIT", + "dependencies": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/popper.js": { + "version": "1.16.1", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "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==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/process": { + "version": "0.11.10", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", + "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==", + "bin": { + "rimraf": "dist/cjs/src/bin.js" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=14.18.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/rollup-plugin-visualizer": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz", + "integrity": "sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==", + "dev": true, + "dependencies": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "bin": { + "rollup-plugin-visualizer": "dist/bin/cli.js" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "rollup": "2.x || 3.x" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/rollup-plugin-visualizer/node_modules/source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/rtcpeerconnection-shim": { + "version": "1.2.15", + "license": "BSD-3-Clause", + "dependencies": { + "sdp": "^2.6.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } + }, + "node_modules/sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "dependencies": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + }, + "bin": { + "sass": "sass.js" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/sdp": { + "version": "2.12.0", + "license": "MIT" + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shvl": { + "version": "2.0.3", + "license": "MIT" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "license": "MIT" + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/table/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/table/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/table/node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "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==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util": { + "version": "0.10.4", + "license": "MIT", + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "license": "ISC" + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/vite": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "dependencies": { + "esbuild": "^0.18.10", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vuetify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vuetify/-/vite-plugin-vuetify-1.0.2.tgz", + "integrity": "sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==", + "dependencies": { + "@vuetify/loader-shared": "^1.7.1", + "debug": "^4.3.3", + "upath": "^2.0.1" + }, + "engines": { + "node": ">=12" + }, + "peerDependencies": { + "vite": "^2.7.0 || ^3.0.0 || ^4.0.0", + "vuetify": "^3.0.0-beta.4" + } + }, + "node_modules/vue": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "node_modules/vue-chartjs": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.0.tgz", + "integrity": "sha512-8XqX0JU8vFZ+WA2/knz4z3ThClduni2Nm0BMe2u0mXgTfd9pXrmJ07QBI+WAij5P/aPmPMX54HCE1seWL37ZdQ==", + "peerDependencies": { + "chart.js": "^4.1.1", + "vue": "^3.0.0-0 || ^2.7.0" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", + "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/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/vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "dependencies": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + }, + "engines": { + "node": ">= 14" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-router": { + "version": "4.0.13", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "node_modules/vue-tsc": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.24.tgz", + "integrity": "sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==", + "dev": true, + "dependencies": { + "@volar/vue-language-core": "1.0.24", + "@volar/vue-typescript": "1.0.24" + }, + "bin": { + "vue-tsc": "bin/vue-tsc.js" + }, + "peerDependencies": { + "typescript": "*" + } + }, + "node_modules/vue3-json-viewer": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", + "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", + "dependencies": { + "clipboard": "^2.0.10" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue3-qrcode-reader": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "callforth": "^0.3.1", + "core-js": "^3.6.5", + "vue": "^3.0.0", + "webrtc-adapter": "7.7.0" + } + }, + "node_modules/vuetify": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.4.tgz", + "integrity": "sha512-6ERm2a0bJyMLjmRKTifN501o3MsCVp9agtoZsORw1b3X29ycTdXOJdRMEADaDSv59dBWwUVv3WqHcWzCG4Gwfw==", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "vite-plugin-vuetify": "^1.0.0-alpha.12", + "vue": "^3.2.0", + "vue-i18n": "^9.0.0", + "webpack-plugin-vuetify": "^2.0.0-alpha.11" + }, + "peerDependenciesMeta": { + "vite-plugin-vuetify": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, + "node_modules/vuex": { + "version": "4.0.2", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.0.0-beta.11" + }, + "peerDependencies": { + "vue": "^3.0.2" + } + }, + "node_modules/vuex-persistedstate": { + "version": "4.1.0", + "license": "MIT", + "dependencies": { + "deepmerge": "^4.2.2", + "shvl": "^2.0.3" + }, + "peerDependencies": { + "vuex": "^3.0 || ^4.0.0-rc" + } + }, + "node_modules/vuex-persistedstate/node_modules/deepmerge": { + "version": "4.2.2", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webfontloader": { + "version": "1.6.28", + "license": "Apache-2.0" + }, + "node_modules/webrtc-adapter": { + "version": "7.7.0", + "license": "BSD-3-Clause", + "dependencies": { + "rtcpeerconnection-shim": "^1.2.15", + "sdp": "^2.12.0" + }, + "engines": { + "node": ">=6.0.0", + "npm": ">=3.10.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true, + "engines": { + "node": ">=12" + } + } + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "dev": true + }, + "@babel/highlight": { + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz", + "integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.22.20", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0" + } + }, + "@babel/parser": { + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==" + }, + "@esbuild/android-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.18.20.tgz", + "integrity": "sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==", + "optional": true + }, + "@esbuild/android-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz", + "integrity": "sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==", + "optional": true + }, + "@esbuild/android-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.18.20.tgz", + "integrity": "sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==", + "optional": true + }, + "@esbuild/darwin-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz", + "integrity": "sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==", + "optional": true + }, + "@esbuild/darwin-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz", + "integrity": "sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==", + "optional": true + }, + "@esbuild/freebsd-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz", + "integrity": "sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==", + "optional": true + }, + "@esbuild/freebsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz", + "integrity": "sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==", + "optional": true + }, + "@esbuild/linux-arm": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz", + "integrity": "sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==", + "optional": true + }, + "@esbuild/linux-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz", + "integrity": "sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==", + "optional": true + }, + "@esbuild/linux-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz", + "integrity": "sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==", + "optional": true + }, + "@esbuild/linux-loong64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz", + "integrity": "sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==", + "optional": true + }, + "@esbuild/linux-mips64el": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz", + "integrity": "sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==", + "optional": true + }, + "@esbuild/linux-ppc64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz", + "integrity": "sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==", + "optional": true + }, + "@esbuild/linux-riscv64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz", + "integrity": "sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==", + "optional": true + }, + "@esbuild/linux-s390x": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz", + "integrity": "sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==", + "optional": true + }, + "@esbuild/linux-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz", + "integrity": "sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==", + "optional": true + }, + "@esbuild/netbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz", + "integrity": "sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==", + "optional": true + }, + "@esbuild/openbsd-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz", + "integrity": "sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==", + "optional": true + }, + "@esbuild/sunos-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz", + "integrity": "sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==", + "optional": true + }, + "@esbuild/win32-arm64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz", + "integrity": "sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==", + "optional": true + }, + "@esbuild/win32-ia32": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz", + "integrity": "sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==", + "optional": true + }, + "@esbuild/win32-x64": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz", + "integrity": "sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==", + "optional": true + }, + "@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/core-base/-/core-base-9.2.2.tgz", + "integrity": "sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==", + "requires": { + "@intlify/devtools-if": "9.2.2", + "@intlify/message-compiler": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2" + } + }, + "@intlify/devtools-if": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/devtools-if/-/devtools-if-9.2.2.tgz", + "integrity": "sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==", + "requires": { + "@intlify/shared": "9.2.2" + } + }, + "@intlify/message-compiler": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/message-compiler/-/message-compiler-9.2.2.tgz", + "integrity": "sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==", + "requires": { + "@intlify/shared": "9.2.2", + "source-map": "0.6.1" + } + }, + "@intlify/shared": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + }, + "@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@intlify/vue-devtools/-/vue-devtools-9.2.2.tgz", + "integrity": "sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==", + "requires": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2" + } + }, + "@mdi/font": { + "version": "5.9.55" + }, + "@popperjs/core": { + "version": "2.11.2" + }, + "@vitejs/plugin-vue": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.0.0.tgz", + "integrity": "sha512-e0X4jErIxAB5oLtDqbHvHpJe/uWNkdpYV83AOG2xo2tEVSzCzewgJMtREZM30wXnM5ls90hxiOtAuVU6H5JgbA==" + }, + "@volar/language-core": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/language-core/-/language-core-1.0.24.tgz", + "integrity": "sha512-vTN+alJiWwK0Pax6POqrmevbtFW2dXhjwWiW/MW4f48eDYPLdyURWcr8TixO7EN/nHsUBj2udT7igFKPtjyAKg==", + "dev": true, + "requires": { + "@volar/source-map": "1.0.24", + "muggle-string": "^0.1.0" + } + }, + "@volar/source-map": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/source-map/-/source-map-1.0.24.tgz", + "integrity": "sha512-Qsv/tkplx18pgBr8lKAbM1vcDqgkGKQzbChg6NW+v0CZc3G7FLmK+WrqEPzKlN7Cwdc6XVL559Nod8WKAfKr4A==", + "dev": true, + "requires": { + "muggle-string": "^0.1.0" + } + }, + "@volar/typescript": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/typescript/-/typescript-1.0.24.tgz", + "integrity": "sha512-f8hCSk+PfKR1/RQHxZ79V1NpDImHoivqoizK+mstphm25tn/YJ/JnKNjZHB+o21fuW0yKlI26NV3jkVb2Cc/7A==", + "dev": true, + "requires": { + "@volar/language-core": "1.0.24" + } + }, + "@volar/vue-language-core": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/vue-language-core/-/vue-language-core-1.0.24.tgz", + "integrity": "sha512-2NTJzSgrwKu6uYwPqLiTMuAzi7fAY3yFy5PJ255bGJc82If0Xr+cW8pC80vpjG0D/aVLmlwAdO4+Ya2BI8GdDg==", + "dev": true, + "requires": { + "@volar/language-core": "1.0.24", + "@volar/source-map": "1.0.24", + "@vue/compiler-dom": "^3.2.45", + "@vue/compiler-sfc": "^3.2.45", + "@vue/reactivity": "^3.2.45", + "@vue/shared": "^3.2.45", + "minimatch": "^5.1.1", + "vue-template-compiler": "^2.7.14" + }, + "dependencies": { + "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, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + } + } + }, + "@volar/vue-typescript": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/@volar/vue-typescript/-/vue-typescript-1.0.24.tgz", + "integrity": "sha512-9a25oHDvGaNC0okRS47uqJI6FxY4hUQZUsxeOUFHcqVxZEv8s17LPuP/pMMXyz7jPygrZubB/qXqHY5jEu/akA==", + "dev": true, + "requires": { + "@volar/typescript": "1.0.24", + "@volar/vue-language-core": "1.0.24" + } + }, + "@vue/compiler-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.47.tgz", + "integrity": "sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.47.tgz", + "integrity": "sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==", + "requires": { + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.47.tgz", + "integrity": "sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-ssr": "3.2.47", + "@vue/reactivity-transform": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.47.tgz", + "integrity": "sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/devtools-api": { + "version": "6.5.1", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.1.tgz", + "integrity": "sha512-+KpckaAQyfbvshdDW5xQylLni1asvNSGme1JFs8I1+/H5pHEhqUKMEQD/qn3Nx5+/nycBq11qAEi8lk+LXI2dA==" + }, + "@vue/reactivity": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.47.tgz", + "integrity": "sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==", + "requires": { + "@vue/shared": "3.2.47" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.47.tgz", + "integrity": "sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.47", + "@vue/shared": "3.2.47", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.47.tgz", + "integrity": "sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==", + "requires": { + "@vue/reactivity": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/runtime-dom": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.47.tgz", + "integrity": "sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==", + "requires": { + "@vue/runtime-core": "3.2.47", + "@vue/shared": "3.2.47", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.47.tgz", + "integrity": "sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==", + "requires": { + "@vue/compiler-ssr": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "@vue/shared": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.47.tgz", + "integrity": "sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==" + }, + "@vuetify/loader-shared": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@vuetify/loader-shared/-/loader-shared-1.7.1.tgz", + "integrity": "sha512-kLUvuAed6RCvkeeTNJzuy14pqnkur8lTuner7v7pNE/kVhPR97TuyXwBSBMR1cJeiLiOfu6SF5XlCYbXByEx1g==", + "requires": { + "find-cache-dir": "^3.3.2", + "upath": "^2.0.1" + } + }, + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "dev": true + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "1.6.7", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.7.tgz", + "integrity": "sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA==", + "requires": { + "follow-redirects": "^1.15.4", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "callforth": { + "version": "0.3.1" + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "core-js": { + "version": "3.21.1" + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.2.0.tgz", + "integrity": "sha512-KALDyEYgpY+Rlob/iriUtjV6d5Eq+Y191A5g4UqLAi8CyGP9N1+FdVbkc1SxKc2r4YAYqG8JzO2KGL+AizD70Q==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "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==", + "dev": true + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "enquirer": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz", + "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==", + "dev": true, + "requires": { + "ansi-colors": "^4.1.1" + } + }, + "esbuild": { + "version": "0.18.20", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.20.tgz", + "integrity": "sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==", + "requires": { + "@esbuild/android-arm": "0.18.20", + "@esbuild/android-arm64": "0.18.20", + "@esbuild/android-x64": "0.18.20", + "@esbuild/darwin-arm64": "0.18.20", + "@esbuild/darwin-x64": "0.18.20", + "@esbuild/freebsd-arm64": "0.18.20", + "@esbuild/freebsd-x64": "0.18.20", + "@esbuild/linux-arm": "0.18.20", + "@esbuild/linux-arm64": "0.18.20", + "@esbuild/linux-ia32": "0.18.20", + "@esbuild/linux-loong64": "0.18.20", + "@esbuild/linux-mips64el": "0.18.20", + "@esbuild/linux-ppc64": "0.18.20", + "@esbuild/linux-riscv64": "0.18.20", + "@esbuild/linux-s390x": "0.18.20", + "@esbuild/linux-x64": "0.18.20", + "@esbuild/netbsd-x64": "0.18.20", + "@esbuild/openbsd-x64": "0.18.20", + "@esbuild/sunos-x64": "0.18.20", + "@esbuild/win32-arm64": "0.18.20", + "@esbuild/win32-ia32": "0.18.20", + "@esbuild/win32-x64": "0.18.20" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "requires": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.5.3", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "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==", + "dev": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globals": { + "version": "13.20.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.20.0.tgz", + "integrity": "sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "eslint-config-prettier": { + "version": "8.5.0" + }, + "eslint-plugin-vue": { + "version": "9.9.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.9.0.tgz", + "integrity": "sha512-YbubS7eK0J7DCf0U2LxvVP7LMfs6rC6UltihIgval3azO3gyDwEGVgsCMe1TmDiEkl6GdMKfRpaME6QxIYtzDQ==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.5.3", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "dependencies": { + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + } + } + } + }, + "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==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^1.1.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + }, + "espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "requires": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "dependencies": { + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "dependencies": { + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.4", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.4.tgz", + "integrity": "sha512-Cr4D/5wlrb0z9dgERpUL3LrmPKVDsETIJhaCMeDfuFYcqa5bldGV6wBsAN6X/vxlXQtFBMrXdXxdL8CbDTGniw==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "optional": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "requires": { + "delegate": "^3.1.2" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "immutable": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.2.4.tgz", + "integrity": "sha512-WDxL3Hheb1JkRN3sQkyujNlL/xRjAo3rJtaU5xeufUauG66JdMr32bLj4gF+vWl84DIA3Zxw7tiAjneYzRRw+w==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "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", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-sha256": { + "version": "0.9.0" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "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==", + "dev": true + }, + "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==", + "dev": true + }, + "keycloak-js": { + "version": "19.0.1", + "requires": { + "base64-js": "^1.5.1", + "js-sha256": "^0.9.0" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "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==", + "dev": true + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "requires": { + "semver": "^7.5.3" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "muggle-string": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/muggle-string/-/muggle-string-0.1.0.tgz", + "integrity": "sha512-Tr1knR3d2mKvvWthlk7202rywKbiOm4rVFLsfAaSIhJ6dt9o47W4S+JMtWhd/PW9Wrdew2/S2fSvhz3E2gkfEg==", + "dev": true + }, + "nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "open": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.1.tgz", + "integrity": "sha512-/4b7qZNhv6Uhd7jjnREh1NjnPxlTq+XNWPG88Ydkj5AILcA5m3ajvcg57pB24EQjKv0dK62XnDqk9c/hkIG5Kg==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "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.3" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "path": { + "version": "0.12.7", + "requires": { + "process": "^0.11.1", + "util": "^0.10.3" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "picocolors": { + "version": "1.0.0" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "requires": { + "find-up": "^4.0.0" + } + }, + "popper.js": { + "version": "1.16.1" + }, + "postcss": { + "version": "8.4.33", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz", + "integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==", + "requires": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-selector-parser": { + "version": "6.0.11", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz", + "integrity": "sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "process": { + "version": "0.11.10" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "rimraf": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.2.tgz", + "integrity": "sha512-BlIbgFryTbw3Dz6hyoWFhKk+unCcHMSkZGrTFVAx2WmttdBSonsdtRlwiuTbDqTKr+UlXIUqJVS4QT5tUzGENQ==" + }, + "rollup": { + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", + "requires": { + "fsevents": "~2.3.2" + } + }, + "rollup-plugin-visualizer": { + "version": "5.9.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz", + "integrity": "sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==", + "dev": true, + "requires": { + "open": "^8.4.0", + "picomatch": "^2.3.1", + "source-map": "^0.7.4", + "yargs": "^17.5.1" + }, + "dependencies": { + "source-map": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "dev": true + } + } + }, + "rtcpeerconnection-shim": { + "version": "1.2.15", + "requires": { + "sdp": "^2.6.0" + } + }, + "sass": { + "version": "1.58.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.58.0.tgz", + "integrity": "sha512-PiMJcP33DdKtZ/1jSjjqVIKihoDc6yWmYr9K/4r3fVVIEDAluD0q7XZiRKrNJcPK3qkLRF/79DND1H5q1LBjgg==", + "dev": true, + "requires": { + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" + } + }, + "sdp": { + "version": "2.12.0" + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + } + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shvl": { + "version": "2.0.3" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2" + }, + "sourcemap-codec": { + "version": "1.4.8" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "table": { + "version": "6.8.1", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", + "integrity": "sha512-Y4X9zqrCftUhMeH2EptSSERdVKt/nEdijTOacGD/97EKjhQ/Qs8RTlEGABSJNNN8lac9kheH+af7yAkEWlgneA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz", + "integrity": "sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util": { + "version": "0.10.4", + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3" + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "vite": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.2.tgz", + "integrity": "sha512-tBCZBNSBbHQkaGyhGCDUGqeo2ph8Fstyp6FMSvTtsXeZSPpSMGlviAOav2hxVTqFcx8Hj/twtWKsMJXNY0xI8w==", + "requires": { + "esbuild": "^0.18.10", + "fsevents": "~2.3.2", + "postcss": "^8.4.27", + "rollup": "^3.27.1" + } + }, + "vite-plugin-vuetify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/vite-plugin-vuetify/-/vite-plugin-vuetify-1.0.2.tgz", + "integrity": "sha512-MubIcKD33O8wtgQXlbEXE7ccTEpHZ8nPpe77y9Wy3my2MWw/PgehP9VqTp92BLqr0R1dSL970Lynvisx3UxBFw==", + "requires": { + "@vuetify/loader-shared": "^1.7.1", + "debug": "^4.3.3", + "upath": "^2.0.1" + } + }, + "vue": { + "version": "3.2.47", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.47.tgz", + "integrity": "sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==", + "requires": { + "@vue/compiler-dom": "3.2.47", + "@vue/compiler-sfc": "3.2.47", + "@vue/runtime-dom": "3.2.47", + "@vue/server-renderer": "3.2.47", + "@vue/shared": "3.2.47" + } + }, + "vue-chartjs": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/vue-chartjs/-/vue-chartjs-5.3.0.tgz", + "integrity": "sha512-8XqX0JU8vFZ+WA2/knz4z3ThClduni2Nm0BMe2u0mXgTfd9pXrmJ07QBI+WAij5P/aPmPMX54HCE1seWL37ZdQ==" + }, + "vue-eslint-parser": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.1.0.tgz", + "integrity": "sha512-NGn/iQy8/Wb7RrRa4aRkokyCZfOUWk19OP5HP6JEozQFX5AoS/t+Z0ZN7FY4LlmWc4FNI922V7cvX28zctN8dQ==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.5.3" + }, + "dependencies": { + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.1.tgz", + "integrity": "sha512-XwctdmTO6SIvCzd9810yyNzIrOrqNYV9Koizx4C/mRhf9uq0o4yHoCEU/670pOxOL/MSraektvSAji79kX90Vg==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, + "vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.2.2.tgz", + "integrity": "sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==", + "requires": { + "@intlify/core-base": "9.2.2", + "@intlify/shared": "9.2.2", + "@intlify/vue-devtools": "9.2.2", + "@vue/devtools-api": "^6.2.1" + } + }, + "vue-router": { + "version": "4.0.13", + "requires": { + "@vue/devtools-api": "^6.0.0" + } + }, + "vue-template-compiler": { + "version": "2.7.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.7.14.tgz", + "integrity": "sha512-zyA5Y3ArvVG0NacJDkkzJuPQDF8RFeRlzV2vLeSnhSpieO6LK2OVbdLPi5MPPs09Ii+gMO8nY4S3iKQxBxDmWQ==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.2.0" + } + }, + "vue-tsc": { + "version": "1.0.24", + "resolved": "https://registry.npmjs.org/vue-tsc/-/vue-tsc-1.0.24.tgz", + "integrity": "sha512-mmU1s5SAqE1nByQAiQnao9oU4vX+mSdsgI8H57SfKH6UVzq/jP9+Dbi2GaV+0b4Cn361d2ln8m6xeU60ApiEXg==", + "dev": true, + "requires": { + "@volar/vue-language-core": "1.0.24", + "@volar/vue-typescript": "1.0.24" + } + }, + "vue3-json-viewer": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", + "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", + "requires": { + "clipboard": "^2.0.10" + } + }, + "vue3-qrcode-reader": { + "version": "0.0.1", + "requires": { + "callforth": "^0.3.1", + "core-js": "^3.6.5", + "vue": "^3.0.0", + "webrtc-adapter": "7.7.0" + } + }, + "vuetify": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.1.4.tgz", + "integrity": "sha512-6ERm2a0bJyMLjmRKTifN501o3MsCVp9agtoZsORw1b3X29ycTdXOJdRMEADaDSv59dBWwUVv3WqHcWzCG4Gwfw==" + }, + "vuex": { + "version": "4.0.2", + "requires": { + "@vue/devtools-api": "^6.0.0-beta.11" + } + }, + "vuex-persistedstate": { + "version": "4.1.0", + "requires": { + "deepmerge": "^4.2.2", + "shvl": "^2.0.3" + }, + "dependencies": { + "deepmerge": { + "version": "4.2.2" + } + } + }, + "webfontloader": { + "version": "1.6.28" + }, + "webrtc-adapter": { + "version": "7.7.0", + "requires": { + "rtcpeerconnection-shim": "^1.2.15", + "sdp": "^2.12.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yargs": { + "version": "17.6.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", + "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "dev": true, + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "dev": true + } + } +} diff --git a/package.json b/dpp-frontend/package.json similarity index 96% rename from package.json rename to dpp-frontend/package.json index ddbec9e35..3446bdfe3 100644 --- a/package.json +++ b/dpp-frontend/package.json @@ -1,50 +1,50 @@ -{ - "name": "digital-product-pass-frontend", - "version": "2.2.0", - "private": true, - "scripts": { - "serve": "vite --host localhost", - "clean": "rimraf ./node_modules/.vite", - "build:analyze": "vite build --mode analyze", - "build:clean": "rimraf dist", - "lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src", - "preview": "vite preview", - "build": "vite build" - }, - "dependencies": { - "@mdi/font": "5.9.55", - "@popperjs/core": "^2.11.2", - "@vitejs/plugin-vue": "^4.0.0", - "axios": ">=1.6.7", - "clipboard": "^2.0.11", - "core-js": "^3.8.3", - "crypto-js": "^4.2.0", - "eslint-config-prettier": "^8.5.0", - "keycloak-js": "^19.0.1", - "path": "^0.12.7", - "popper.js": "^1.16.1", - "rimraf": "^4.1.2", - "vite": ">=4.5.2", - "vite-plugin-vuetify": "^1.0.2", - "vue": "^3.2.47", - "vue-chartjs": "^5.3.0", - "vue-i18n": "9.2.2", - "vue-router": "^4.0.13", - "vue3-json-viewer": "^2.2.2", - "vue3-qrcode-reader": "^0.0.1", - "vuetify": "^3.1.4", - "vuex": "^4.0.2", - "vuex-persistedstate": "^4.1.0", - "webfontloader": "^1.0.0" - }, - "devDependencies": { - "eslint": "^7.32.0", - "eslint-plugin-vue": "^9.9.0", - "rollup-plugin-visualizer": "^5.9.0", - "sass": "^1.58.0", - "vue-tsc": "^1.0.24" - }, - "overrides": { - "semver": "^7.5.3" - } -} +{ + "name": "digital-product-pass-frontend", + "version": "2.2.0", + "private": true, + "scripts": { + "serve": "vite --host localhost", + "clean": "rimraf ./node_modules/.vite", + "build:analyze": "vite build --mode analyze", + "build:clean": "rimraf dist", + "lint": "eslint --ext .js,.vue --ignore-path .gitignore --fix src", + "preview": "vite preview", + "build": "vite build" + }, + "dependencies": { + "@mdi/font": "5.9.55", + "@popperjs/core": "^2.11.2", + "@vitejs/plugin-vue": "^4.0.0", + "axios": ">=1.6.7", + "clipboard": "^2.0.11", + "core-js": "^3.8.3", + "crypto-js": "^4.2.0", + "eslint-config-prettier": "^8.5.0", + "keycloak-js": "^19.0.1", + "path": "^0.12.7", + "popper.js": "^1.16.1", + "rimraf": "^4.1.2", + "vite": ">=4.5.2", + "vite-plugin-vuetify": "^1.0.2", + "vue": "^3.2.47", + "vue-chartjs": "^5.3.0", + "vue-i18n": "9.2.2", + "vue-router": "^4.0.13", + "vue3-json-viewer": "^2.2.2", + "vue3-qrcode-reader": "^0.0.1", + "vuetify": "^3.1.4", + "vuex": "^4.0.2", + "vuex-persistedstate": "^4.1.0", + "webfontloader": "^1.0.0" + }, + "devDependencies": { + "eslint": "^7.32.0", + "eslint-plugin-vue": "^9.9.0", + "rollup-plugin-visualizer": "^5.9.0", + "sass": "^1.58.0", + "vue-tsc": "^1.0.24" + }, + "overrides": { + "semver": "^7.5.3" + } +} diff --git a/public/favicon.ico b/dpp-frontend/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to dpp-frontend/public/favicon.ico diff --git a/src/App.vue b/dpp-frontend/src/App.vue similarity index 95% rename from src/App.vue rename to dpp-frontend/src/App.vue index 48aa504cb..b8b4b0c3b 100644 --- a/src/App.vue +++ b/dpp-frontend/src/App.vue @@ -1,127 +1,127 @@ - - - - - - - + + + + + + + diff --git a/src/assets/plugins/vuetify.js b/dpp-frontend/src/assets/plugins/vuetify.js similarity index 97% rename from src/assets/plugins/vuetify.js rename to dpp-frontend/src/assets/plugins/vuetify.js index 68925ee20..0fed07f58 100644 --- a/src/assets/plugins/vuetify.js +++ b/dpp-frontend/src/assets/plugins/vuetify.js @@ -1,37 +1,37 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -// Styles -import '@mdi/font/css/materialdesignicons.css'; -import 'vuetify/styles'; -import * as components from 'vuetify/components'; -import * as directives from 'vuetify/directives'; -// Vuetify -import { createVuetify } from 'vuetify'; - -const vuetify = createVuetify({ - components, - directives, -}); - -export default vuetify; +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +// Styles +import '@mdi/font/css/materialdesignicons.css'; +import 'vuetify/styles'; +import * as components from 'vuetify/components'; +import * as directives from 'vuetify/directives'; +// Vuetify +import { createVuetify } from 'vuetify'; + +const vuetify = createVuetify({ + components, + directives, +}); + +export default vuetify; diff --git a/src/assets/plugins/webfontloader.js b/dpp-frontend/src/assets/plugins/webfontloader.js similarity index 100% rename from src/assets/plugins/webfontloader.js rename to dpp-frontend/src/assets/plugins/webfontloader.js diff --git a/src/assets/styles/components/general/contractModal.scss b/dpp-frontend/src/assets/styles/components/general/contractModal.scss similarity index 95% rename from src/assets/styles/components/general/contractModal.scss rename to dpp-frontend/src/assets/styles/components/general/contractModal.scss index 024b10feb..39bfe1c1d 100644 --- a/src/assets/styles/components/general/contractModal.scss +++ b/dpp-frontend/src/assets/styles/components/general/contractModal.scss @@ -1,230 +1,230 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - - .contract-modal { - justify-content: center; - align-items: center; - - .back-to-homepage { - margin: 5px 0; - } - - .decliner { - padding: 20px 80px 50px 80px; - } - - .content-container { - margin-top: 20px; - min-width: 500px; - - .policy-group-label { - margin-top: 15px; - font-weight: bolder; - word-break: break-word; - margin-bottom: 5px; - padding: 5px; - font-weight: bolder; - word-break: break-all; - width: 100%; - } - } - - .btn-background { - background-color: rgb(237, 240, 244); - width: 100%; - padding-bottom: 30px; - } - - .v-selection-control-group { - align-items: center; - padding: 0 40px; - } - - .v-selection-control { - padding-left: 10px; - } - - .details { - display: flex; - align-items: center; - width: 100%; - } - - .v-radio label { - opacity: 1 !important; - color: rgb(17, 17, 17); - } - - .v-radio .radio-label { - color: $catena-x-black !important; - cursor: pointer; - font-weight: 500; - } - - .contract-container { - border-radius: 20px; - word-break: break-word; - } - - .title-container { - width: fit-content; - font-size: 1.5em; - font-weight: 600; - width: 100%; - text-align: center; - padding-top: 56px; - } - - .details-btn { - margin: 20px; - color: $catena-x-blue; - } - - .json-viewer-container { - border: 1px solid lightgray; - border-radius: 5px; - margin-bottom: 50px; - word-break: break-word; - - .json-viewer { - min-width: 300px; - max-height: 50vh; - overflow: auto; - background-color: rgb(245, 245, 245); - } - } - - .contractid-title { - font-size: 14px; - font-weight: 500; - } - - .policy-container { - color: rgb(17, 17, 17) !important; - padding: 5px 15px 15px 15px !important; - - .attribute-operator { - padding: 10px 0; - max-height: 60%; - cursor: pointer; - font-weight: 800; - color: $catena-x-blue; - } - - .attribute-constraint { - word-break: break-all; - } - - .policy-container { - background-color: #fff; - border-radius: 10px; - border: solid 1px #dcdcdc; - - .policy-title { - font-size: 11px; - font-weight: 500; - color: rgb(17, 17, 17) !important; - } - - .policy-icon { - position: absolute; - right: 7px; - top: 7px; - color: #939393; - } - - .policy-icon-green { - color: #428c5b; - } - - .policy-label { - font-size: 12px; - font-weight: 500; - padding-bottom: 5px; - display: flex; - align-items: center; - } - - .policy-value { - font-size: 10px; - font-weight: 500; - padding-bottom: 5px; - word-wrap: break-word; - } - - .policy-second-value { - font-size: 10px; - font-weight: 500; - padding-bottom: 5px; - word-wrap: break-word; - } - - .policy-second-label { - font-size: 12px; - font-weight: 500; - padding-top: 12px; - } - - .policy-info-icon { - position: absolute; - right: 0; - bottom: 7px; - color: #0f71cb; - } - - .policy-info-icon:hover { - color: $catena-x-dark-blue; - cursor: pointer; - } - } - } - } - @media (max-width: 628px) { - .contract-modal { - .content-container { - width: 320px; - display: inline; - - .policy-group-label-mobile { - display: block; - } - } - } - } -.container-policy-selection { - @media (max-width: 628px) { - margin-top: 95px; - } - - @media (max-width: 375px) { - margin-top: 160px; - } - - -} - -@media (max-width: 628px) { - .container-policy-selection .contract-modal .v-selection-control-group { - padding: 0 !important; - } +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + + .contract-modal { + justify-content: center; + align-items: center; + + .back-to-homepage { + margin: 5px 0; + } + + .decliner { + padding: 20px 80px 50px 80px; + } + + .content-container { + margin-top: 20px; + min-width: 500px; + + .policy-group-label { + margin-top: 15px; + font-weight: bolder; + word-break: break-word; + margin-bottom: 5px; + padding: 5px; + font-weight: bolder; + word-break: break-all; + width: 100%; + } + } + + .btn-background { + background-color: rgb(237, 240, 244); + width: 100%; + padding-bottom: 30px; + } + + .v-selection-control-group { + align-items: center; + padding: 0 40px; + } + + .v-selection-control { + padding-left: 10px; + } + + .details { + display: flex; + align-items: center; + width: 100%; + } + + .v-radio label { + opacity: 1 !important; + color: rgb(17, 17, 17); + } + + .v-radio .radio-label { + color: $catena-x-black !important; + cursor: pointer; + font-weight: 500; + } + + .contract-container { + border-radius: 20px; + word-break: break-word; + } + + .title-container { + width: fit-content; + font-size: 1.5em; + font-weight: 600; + width: 100%; + text-align: center; + padding-top: 56px; + } + + .details-btn { + margin: 20px; + color: $catena-x-blue; + } + + .json-viewer-container { + border: 1px solid lightgray; + border-radius: 5px; + margin-bottom: 50px; + word-break: break-word; + + .json-viewer { + min-width: 300px; + max-height: 50vh; + overflow: auto; + background-color: rgb(245, 245, 245); + } + } + + .contractid-title { + font-size: 14px; + font-weight: 500; + } + + .policy-container { + color: rgb(17, 17, 17) !important; + padding: 5px 15px 15px 15px !important; + + .attribute-operator { + padding: 10px 0; + max-height: 60%; + cursor: pointer; + font-weight: 800; + color: $catena-x-blue; + } + + .attribute-constraint { + word-break: break-all; + } + + .policy-container { + background-color: #fff; + border-radius: 10px; + border: solid 1px #dcdcdc; + + .policy-title { + font-size: 11px; + font-weight: 500; + color: rgb(17, 17, 17) !important; + } + + .policy-icon { + position: absolute; + right: 7px; + top: 7px; + color: #939393; + } + + .policy-icon-green { + color: #428c5b; + } + + .policy-label { + font-size: 12px; + font-weight: 500; + padding-bottom: 5px; + display: flex; + align-items: center; + } + + .policy-value { + font-size: 10px; + font-weight: 500; + padding-bottom: 5px; + word-wrap: break-word; + } + + .policy-second-value { + font-size: 10px; + font-weight: 500; + padding-bottom: 5px; + word-wrap: break-word; + } + + .policy-second-label { + font-size: 12px; + font-weight: 500; + padding-top: 12px; + } + + .policy-info-icon { + position: absolute; + right: 0; + bottom: 7px; + color: #0f71cb; + } + + .policy-info-icon:hover { + color: $catena-x-dark-blue; + cursor: pointer; + } + } + } + } + @media (max-width: 628px) { + .contract-modal { + .content-container { + width: 320px; + display: inline; + + .policy-group-label-mobile { + display: block; + } + } + } + } +.container-policy-selection { + @media (max-width: 628px) { + margin-top: 95px; + } + + @media (max-width: 375px) { + margin-top: 160px; + } + + +} + +@media (max-width: 628px) { + .container-policy-selection .contract-modal .v-selection-control-group { + padding: 0 !important; + } } \ No newline at end of file diff --git a/src/assets/styles/components/general/dialog.scss b/dpp-frontend/src/assets/styles/components/general/dialog.scss similarity index 96% rename from src/assets/styles/components/general/dialog.scss rename to dpp-frontend/src/assets/styles/components/general/dialog.scss index 905efe0e7..6d7c3c132 100644 --- a/src/assets/styles/components/general/dialog.scss +++ b/dpp-frontend/src/assets/styles/components/general/dialog.scss @@ -1,54 +1,54 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.dialog-container { - position: relative; - min-width: 400px; - width: auto; - margin: auto; - .title-container { - display: flex; - font-size: 18px; - flex-direction: row; - align-items: center; - height: 68px; - } - .dialog-text { - margin: 5px 15px 15px 15px; - } - .close-btn-container { - position: absolute; - top: 4px; - right: 4px; - } - - .v-btn--block { - padding: 0 10px 0 20px; - } -} - -@media (max-width: 550px) { - .dialog-container { - width: 350px; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.dialog-container { + position: relative; + min-width: 400px; + width: auto; + margin: auto; + .title-container { + display: flex; + font-size: 18px; + flex-direction: row; + align-items: center; + height: 68px; + } + .dialog-text { + margin: 5px 15px 15px 15px; + } + .close-btn-container { + position: absolute; + top: 4px; + right: 4px; + } + + .v-btn--block { + padding: 0 10px 0 20px; + } +} + +@media (max-width: 550px) { + .dialog-container { + width: 350px; + } +} diff --git a/src/assets/styles/components/general/footer.scss b/dpp-frontend/src/assets/styles/components/general/footer.scss similarity index 95% rename from src/assets/styles/components/general/footer.scss rename to dpp-frontend/src/assets/styles/components/general/footer.scss index e318f5413..c6813f202 100644 --- a/src/assets/styles/components/general/footer.scss +++ b/dpp-frontend/src/assets/styles/components/general/footer.scss @@ -1,116 +1,116 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.footer-content { - position: absolute; - bottom: 0; - display: flex; - flex-direction: row; - min-height: 48px; - width: 94%; - text-align: center; - margin: 0 40px; - justify-content: flex-start; - align-items: flex-start; - - .links { - display: flex; - width: 60%; - justify-content: flex-start; - margin-bottom: 0; - margin-left: 0; - margin-right: auto; - padding: 10px 0; - } - - a { - font-size: 11px; - font-weight: 600; - text-decoration: none; - line-height: 1.42857; - letter-spacing: 0px; - margin: 0px 7px; - cursor: pointer; - color: #5a5d57; - } - - a:hover { - color: $catena-x-dark-blue; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - } - - #version { - font-size: 12px !important; - } - - .copyright-container { - display: flex; - justify-content: flex-end; - width: 40%; - .copyright { - padding: 14px 0; - font-size: 11px; - font-size: 11px; - font-weight: 600; - color: #5a5d57; - padding-bottom: 24px; - } - } -} - -@media (max-width: 1020px) { - .footer-content { - position: relative; - margin: 0; - flex-direction: column; - align-items: center; - - .links { - margin-left: auto; - width: auto; - } - } -} -// @media (max-width: 900px) { -// .footer-content { -// position: relative; -// margin: 0; -// } -// } -@media (max-width: 585px) { - .footer-content { - flex-direction: column; - align-items: center; - width: 100%; - .links { - margin-top: 15px; - margin-left: auto; - flex-direction: column; - } - a { - line-height: 3.42857; - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.footer-content { + position: absolute; + bottom: 0; + display: flex; + flex-direction: row; + min-height: 48px; + width: 94%; + text-align: center; + margin: 0 40px; + justify-content: flex-start; + align-items: flex-start; + + .links { + display: flex; + width: 60%; + justify-content: flex-start; + margin-bottom: 0; + margin-left: 0; + margin-right: auto; + padding: 10px 0; + } + + a { + font-size: 11px; + font-weight: 600; + text-decoration: none; + line-height: 1.42857; + letter-spacing: 0px; + margin: 0px 7px; + cursor: pointer; + color: #5a5d57; + } + + a:hover { + color: $catena-x-dark-blue; + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + } + + #version { + font-size: 12px !important; + } + + .copyright-container { + display: flex; + justify-content: flex-end; + width: 40%; + .copyright { + padding: 14px 0; + font-size: 11px; + font-size: 11px; + font-weight: 600; + color: #5a5d57; + padding-bottom: 24px; + } + } +} + +@media (max-width: 1020px) { + .footer-content { + position: relative; + margin: 0; + flex-direction: column; + align-items: center; + + .links { + margin-left: auto; + width: auto; + } + } +} +// @media (max-width: 900px) { +// .footer-content { +// position: relative; +// margin: 0; +// } +// } +@media (max-width: 585px) { + .footer-content { + flex-direction: column; + align-items: center; + width: 100%; + .links { + margin-top: 15px; + margin-left: auto; + flex-direction: column; + } + a { + line-height: 3.42857; + } + } +} diff --git a/src/assets/styles/components/general/header.scss b/dpp-frontend/src/assets/styles/components/general/header.scss similarity index 95% rename from src/assets/styles/components/general/header.scss rename to dpp-frontend/src/assets/styles/components/general/header.scss index 4f5f8996c..c1ec2b574 100644 --- a/src/assets/styles/components/general/header.scss +++ b/dpp-frontend/src/assets/styles/components/general/header.scss @@ -1,303 +1,303 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -@media (max-width: 585px) { - .header-container { - padding: 0px 14px 0 0px !important; - } -} - -.header-container { - position: fixed; - top: 0; - min-height: 85px; - display: flex; - width: 100%; - padding: 0 30px 0 12px; - background: rgb(254, 255, 254); - border-bottom: 1px solid lightgray; - z-index: 99999; - font-size: 14px !important; -} - -.menu-dropdown { - margin-top: 20px; - border-radius: 16px !important; - width: 256px; - padding: 0; - font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -} - -.logo-container { - padding-top: 18px; -} - -.logo { - height: 40px; -} - -.content { - display: flex; - align-items: center; - justify-content: center; -} - -.no-tabs { - display: none; -} - -.right-manu-wrapper { - width: 20%; - display: flex; - justify-content: flex-end; -} - -.code { - padding: 0; - margin: 0; -} - -.buttons { - cursor: pointer; -} - -.profile-menu-header { - background-color: rgb(243, 243, 243); - border-radius: 16px 16px 0 0; - padding: 16px 24px; - font-size: 14px; - font-weight: 500; - white-space: normal; - font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; -} - -.profile-container { - padding: 16px 0px 16px 16px !important; - .profile { - padding-bottom: 11px; - } -} - -.profile-menu-lang { - border-top: 1px solid #dcdcdc; - border-radius: 0 0 16px 16px; - padding: 16px 24px; - font-size: 14px; - font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - display: flex; - line-height: 1.42857; - .language { - color: $catena-x-blue; - margin: 0px 16px 0px 0px; - font-weight: 500; - cursor: pointer; - } - .active { - color: black; - border-bottom: 2px solid; - } -} - -.role { - font-size: 14px; - color: #888888; -} - -.menu-btn { - border-top: 1px solid #dcdcdc; - align-items: center; - cursor: pointer; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - height: 100%; - box-shadow: none !important; - width: 100%; - border-radius: 0px; - margin: 0; - display: flex; - justify-content: start; - padding: auto; - padding: 22px 20px; -} - -.menu-btn:hover { - background-color: rgba(15, 113, 203, 0.05); - color: $catena-x-dark-blue; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; -} - -.profile-text { - font-size: 14px; - cursor: pointer; - letter-spacing: 0px; - text-transform: initial; - font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-weight: 500; -} - -p { - font-size: 14px; - font-weight: 500; -} - -@media (max-width: 750px) { - .right-manu-wrapper { - display: none; - } - - .logo { - height: 35px; - left: 0; - } - - .header-container { - width: 100%; - margin: 0; - } -} - -.menu { - .v-btn__content { - text-decoration: none; - display: block; - font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 14px; - line-height: 1.42857; - letter-spacing: 0px; - text-transform: initial; - font-weight: 500; - } - - .v-btn.v-btn--density-default { - height: 40px; - } - - .v-btn--size-default { - padding: 1px; - margin: 0px 16px; - text-align: center; - width: auto; - } - - .ripple-background { - color: rgb(254, 255, 254); - } - - .v-slide-group-item--active { - .v-btn__content { - color: $catena-x-blue; - --v-border-color: 0, 0, 224; - --v-theme-on-surface: 13, 85, 175; - } - } - - display: flex; - align-items: center; -} - -.header { - padding: 15px 12px 16px 18px !important; - a:-webkit-any-link { - text-decoration: none !important; - } - - .v-btn { - --v-theme-on-surface: 13, 85, 175; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - padding-top: 2px; - } - - .v-btn__overlay { - background: none; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - } - - .v-btn__content { - text-transform: initial; - letter-spacing: 0px; - z-index: 1; - } - - .help-btn { - color: $catena-x-blue; - box-shadow: none; - height: 45px; - color: $catena-x-blue; - } - - .v-btn:hover { - .v-btn__content { - color: $catena-x-dark-blue; - } - - --v-hover-opacity: 1; - } - - .v-btn__content { - color: rgb(136, 136, 136); - } - - .ripple-background { - color: $catena-x-extra-light-blue; - } - - .help-container { - padding-right: 4px !important; - - .ripple-background { - color: rgb(90, 167, 255); - } - - --v-hover-opacity: 0.4; - - .v-btn__content { - color: $catena-x-blue; - } - - .v-btn:hover { - background: $catena-x-extra-light-blue; - - .v-btn__content { - color: $catena-x-dark-blue; - } - } - - .v-btn:active { - border: 2px solid $catena-x-blue; - } - - .v-btn { - border: 2px solid rgb(254, 255, 254); - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +@media (max-width: 585px) { + .header-container { + padding: 0px 14px 0 0px !important; + } +} + +.header-container { + position: fixed; + top: 0; + min-height: 85px; + display: flex; + width: 100%; + padding: 0 30px 0 12px; + background: rgb(254, 255, 254); + border-bottom: 1px solid lightgray; + z-index: 99999; + font-size: 14px !important; +} + +.menu-dropdown { + margin-top: 20px; + border-radius: 16px !important; + width: 256px; + padding: 0; + font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +} + +.logo-container { + padding-top: 18px; +} + +.logo { + height: 40px; +} + +.content { + display: flex; + align-items: center; + justify-content: center; +} + +.no-tabs { + display: none; +} + +.right-manu-wrapper { + width: 20%; + display: flex; + justify-content: flex-end; +} + +.code { + padding: 0; + margin: 0; +} + +.buttons { + cursor: pointer; +} + +.profile-menu-header { + background-color: rgb(243, 243, 243); + border-radius: 16px 16px 0 0; + padding: 16px 24px; + font-size: 14px; + font-weight: 500; + white-space: normal; + font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; +} + +.profile-container { + padding: 16px 0px 16px 16px !important; + .profile { + padding-bottom: 11px; + } +} + +.profile-menu-lang { + border-top: 1px solid #dcdcdc; + border-radius: 0 0 16px 16px; + padding: 16px 24px; + font-size: 14px; + font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + display: flex; + line-height: 1.42857; + .language { + color: $catena-x-blue; + margin: 0px 16px 0px 0px; + font-weight: 500; + cursor: pointer; + } + .active { + color: black; + border-bottom: 2px solid; + } +} + +.role { + font-size: 14px; + color: #888888; +} + +.menu-btn { + border-top: 1px solid #dcdcdc; + align-items: center; + cursor: pointer; + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + height: 100%; + box-shadow: none !important; + width: 100%; + border-radius: 0px; + margin: 0; + display: flex; + justify-content: start; + padding: auto; + padding: 22px 20px; +} + +.menu-btn:hover { + background-color: rgba(15, 113, 203, 0.05); + color: $catena-x-dark-blue; + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; +} + +.profile-text { + font-size: 14px; + cursor: pointer; + letter-spacing: 0px; + text-transform: initial; + font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-weight: 500; +} + +p { + font-size: 14px; + font-weight: 500; +} + +@media (max-width: 750px) { + .right-manu-wrapper { + display: none; + } + + .logo { + height: 35px; + left: 0; + } + + .header-container { + width: 100%; + margin: 0; + } +} + +.menu { + .v-btn__content { + text-decoration: none; + display: block; + font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 14px; + line-height: 1.42857; + letter-spacing: 0px; + text-transform: initial; + font-weight: 500; + } + + .v-btn.v-btn--density-default { + height: 40px; + } + + .v-btn--size-default { + padding: 1px; + margin: 0px 16px; + text-align: center; + width: auto; + } + + .ripple-background { + color: rgb(254, 255, 254); + } + + .v-slide-group-item--active { + .v-btn__content { + color: $catena-x-blue; + --v-border-color: 0, 0, 224; + --v-theme-on-surface: 13, 85, 175; + } + } + + display: flex; + align-items: center; +} + +.header { + padding: 15px 12px 16px 18px !important; + a:-webkit-any-link { + text-decoration: none !important; + } + + .v-btn { + --v-theme-on-surface: 13, 85, 175; + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + padding-top: 2px; + } + + .v-btn__overlay { + background: none; + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + } + + .v-btn__content { + text-transform: initial; + letter-spacing: 0px; + z-index: 1; + } + + .help-btn { + color: $catena-x-blue; + box-shadow: none; + height: 45px; + color: $catena-x-blue; + } + + .v-btn:hover { + .v-btn__content { + color: $catena-x-dark-blue; + } + + --v-hover-opacity: 1; + } + + .v-btn__content { + color: rgb(136, 136, 136); + } + + .ripple-background { + color: $catena-x-extra-light-blue; + } + + .help-container { + padding-right: 4px !important; + + .ripple-background { + color: rgb(90, 167, 255); + } + + --v-hover-opacity: 0.4; + + .v-btn__content { + color: $catena-x-blue; + } + + .v-btn:hover { + background: $catena-x-extra-light-blue; + + .v-btn__content { + color: $catena-x-dark-blue; + } + } + + .v-btn:active { + border: 2px solid $catena-x-blue; + } + + .v-btn { + border: 2px solid rgb(254, 255, 254); + } + } +} diff --git a/src/assets/styles/components/general/loading.scss b/dpp-frontend/src/assets/styles/components/general/loading.scss similarity index 95% rename from src/assets/styles/components/general/loading.scss rename to dpp-frontend/src/assets/styles/components/general/loading.scss index ce513b980..3d6d0336d 100644 --- a/src/assets/styles/components/general/loading.scss +++ b/dpp-frontend/src/assets/styles/components/general/loading.scss @@ -1,135 +1,135 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.loading-container { - position: relative; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - height: 100vh; - .title { - font-size: 24px; - } - .timeline-container { - width: 60vw; - padding: 0 0 0 18vw; - .text-caption-container { - width: 25vw; - line-break: anywhere; - } - } - .dpp-id-container { - display: flex; - flex-direction: column; - align-items: center; - margin-bottom: 34px; - width: 60vw; - - .dpp-id { - font-size: 20px; - font-weight: bold; - line-height: 56px; - } - } - - .stepper-step { - display: flex; - align-items: center; - } - - .stepper-circle { - position: absolute; - left: 650px; - width: 24px; - height: 24px; - border-radius: 50%; - background-color: #4caf50; - display: flex; - align-items: center; - justify-content: center; - margin-right: 16px; - } - - .stepper-circle.completed { - background-color: grey; - } - - .tick { - color: white; - font-size: 14px; - } - - .completed-step { - color: grey; - } - .loading-info { - display: flex; - flex-direction: column; - } - .stepper-line { - height: 2px; - background-color: #0f71cb; - transition: width 0.5s; - } - .step-status { - margin-top: 10px; - text-align: center; - } -} - -@media (max-width: 628px) { - .loading-container { - width: 90vw; - - .timeline-container { - padding: 0px; - width: 100vw; - .text-caption-container { - width: 50vw; - line-break: anywhere; - } - } - .step-title { - font-size: 16px; - } - .dpp-id-container { - width: 100vw; - text-align: center; - - .dpp-id { - font-size: 14px; - font-weight: bold; - line-height: 56px; - } - } - } -} - -@media (max-width: 300px) { - .loading-container { - .dpp-id-container { - margin-top: 50px; - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.loading-container { + position: relative; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + height: 100vh; + .title { + font-size: 24px; + } + .timeline-container { + width: 60vw; + padding: 0 0 0 18vw; + .text-caption-container { + width: 25vw; + line-break: anywhere; + } + } + .dpp-id-container { + display: flex; + flex-direction: column; + align-items: center; + margin-bottom: 34px; + width: 60vw; + + .dpp-id { + font-size: 20px; + font-weight: bold; + line-height: 56px; + } + } + + .stepper-step { + display: flex; + align-items: center; + } + + .stepper-circle { + position: absolute; + left: 650px; + width: 24px; + height: 24px; + border-radius: 50%; + background-color: #4caf50; + display: flex; + align-items: center; + justify-content: center; + margin-right: 16px; + } + + .stepper-circle.completed { + background-color: grey; + } + + .tick { + color: white; + font-size: 14px; + } + + .completed-step { + color: grey; + } + .loading-info { + display: flex; + flex-direction: column; + } + .stepper-line { + height: 2px; + background-color: #0f71cb; + transition: width 0.5s; + } + .step-status { + margin-top: 10px; + text-align: center; + } +} + +@media (max-width: 628px) { + .loading-container { + width: 90vw; + + .timeline-container { + padding: 0px; + width: 100vw; + .text-caption-container { + width: 50vw; + line-break: anywhere; + } + } + .step-title { + font-size: 16px; + } + .dpp-id-container { + width: 100vw; + text-align: center; + + .dpp-id { + font-size: 14px; + font-weight: bold; + line-height: 56px; + } + } + } +} + +@media (max-width: 300px) { + .loading-container { + .dpp-id-container { + margin-top: 50px; + } + } +} diff --git a/src/assets/styles/components/general/notFound.scss b/dpp-frontend/src/assets/styles/components/general/notFound.scss similarity index 97% rename from src/assets/styles/components/general/notFound.scss rename to dpp-frontend/src/assets/styles/components/general/notFound.scss index 9f2e924f7..254444f3a 100644 --- a/src/assets/styles/components/general/notFound.scss +++ b/dpp-frontend/src/assets/styles/components/general/notFound.scss @@ -1,88 +1,88 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.page-not-found { - height: 100vh !important; - word-break: break-word; - .title { - font-size: 24px; - color: rgb(17, 17, 17); - font-weight: 500; - } - .subTitle { - font-size: 18px; - } - .description { - font-size: 16px; - } - .btn { - display: inline-flex; - -webkit-box-align: center; - align-items: center; - -webkit-box-pack: center; - justify-content: center; - position: relative; - box-sizing: border-box; - -webkit-tap-highlight-color: transparent; - cursor: pointer; - user-select: none; - vertical-align: middle; - appearance: none; - text-decoration: none; - line-height: 1.5; - text-transform: none; - border-radius: 50px; - box-shadow: none; - font-size: 18px; - padding: 14px 24px; - height: 3em; - letter-spacing: 0; - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - } - .v-btn--variant-elevated { - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - background-color: $catena-x-blue !important; - } - .v-btn--variant-outlined { - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - color: $catena-x-blue; - } - .v-btn--variant-outlined:hover { - transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, - color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; - color: $catena-x-dark-blue; - } -} - -@media (max-width: 375px) { - .page-not-found { - margin-top: 0; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.page-not-found { + height: 100vh !important; + word-break: break-word; + .title { + font-size: 24px; + color: rgb(17, 17, 17); + font-weight: 500; + } + .subTitle { + font-size: 18px; + } + .description { + font-size: 16px; + } + .btn { + display: inline-flex; + -webkit-box-align: center; + align-items: center; + -webkit-box-pack: center; + justify-content: center; + position: relative; + box-sizing: border-box; + -webkit-tap-highlight-color: transparent; + cursor: pointer; + user-select: none; + vertical-align: middle; + appearance: none; + text-decoration: none; + line-height: 1.5; + text-transform: none; + border-radius: 50px; + box-shadow: none; + font-size: 18px; + padding: 14px 24px; + height: 3em; + letter-spacing: 0; + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + } + .v-btn--variant-elevated { + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + background-color: $catena-x-blue !important; + } + .v-btn--variant-outlined { + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + color: $catena-x-blue; + } + .v-btn--variant-outlined:hover { + transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, + color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms; + color: $catena-x-dark-blue; + } +} + +@media (max-width: 375px) { + .page-not-found { + margin-top: 0; + } +} diff --git a/src/assets/styles/components/general/recursiveTree.scss b/dpp-frontend/src/assets/styles/components/general/recursiveTree.scss similarity index 95% rename from src/assets/styles/components/general/recursiveTree.scss rename to dpp-frontend/src/assets/styles/components/general/recursiveTree.scss index 6793abc3e..606a32857 100644 --- a/src/assets/styles/components/general/recursiveTree.scss +++ b/dpp-frontend/src/assets/styles/components/general/recursiveTree.scss @@ -1,118 +1,118 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.recursive-tree { - ul { - list-style-type: none; - cursor: pointer; - } - li { - margin-left: 24px !important; - } - - .tile-container { - display: flex; - align-items: center; - .loading { - animation: rotate 3s infinite; - } - @keyframes rotate { - 100% { - transform: rotate(360deg); - } - } - .tile { - position: relative; - background-color: #f9f9f9; - border-radius: 10px; - padding: 15px 20px; - margin: 4px; - width: 400px; - - .counter { - background-color: #1bbc6c; - font-size: 12px; - color: #ffffff; - font-weight: bold; - padding: 2px 6px; - margin-left: 15px; - border-radius: 6px; - } - .label { - margin-bottom: 14px; - } - - .tile-id { - margin-top: 6px; - color: #939393; - line-break: anywhere; - } - .external-link { - position: absolute; - right: 14px; - top: 14px; - color: #0f71cb; - } - } - - .linked-tile { - background-color: #f4fbfd !important; - } - - .not-available { - background-color: #ffffff; - border: 1px solid #939393; - } - .icon-bg { - padding: 1px; - border-radius: 2px; - color: #ffffff; - margin-right: 4px; - } - .blue-bg { - background-color: #0f71cb; - } - .gray-bg { - background-color: #939393; - } - } -} -@media (max-width: 900px) { - .recursive-tree { - li { - margin-left: 8px !important; - } - } -} -@media (max-width: 450px) { - .recursive-tree { - li { - margin-left: 6px !important; - } - .tile-container { - .tile { - padding: 8px 20px; - } - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.recursive-tree { + ul { + list-style-type: none; + cursor: pointer; + } + li { + margin-left: 24px !important; + } + + .tile-container { + display: flex; + align-items: center; + .loading { + animation: rotate 3s infinite; + } + @keyframes rotate { + 100% { + transform: rotate(360deg); + } + } + .tile { + position: relative; + background-color: #f9f9f9; + border-radius: 10px; + padding: 15px 20px; + margin: 4px; + width: 400px; + + .counter { + background-color: #1bbc6c; + font-size: 12px; + color: #ffffff; + font-weight: bold; + padding: 2px 6px; + margin-left: 15px; + border-radius: 6px; + } + .label { + margin-bottom: 14px; + } + + .tile-id { + margin-top: 6px; + color: #939393; + line-break: anywhere; + } + .external-link { + position: absolute; + right: 14px; + top: 14px; + color: #0f71cb; + } + } + + .linked-tile { + background-color: #f4fbfd !important; + } + + .not-available { + background-color: #ffffff; + border: 1px solid #939393; + } + .icon-bg { + padding: 1px; + border-radius: 2px; + color: #ffffff; + margin-right: 4px; + } + .blue-bg { + background-color: #0f71cb; + } + .gray-bg { + background-color: #939393; + } + } +} +@media (max-width: 900px) { + .recursive-tree { + li { + margin-left: 8px !important; + } + } +} +@media (max-width: 450px) { + .recursive-tree { + li { + margin-left: 6px !important; + } + .tile-container { + .tile { + padding: 8px 20px; + } + } + } +} diff --git a/src/assets/styles/components/general/search.scss b/dpp-frontend/src/assets/styles/components/general/search.scss similarity index 96% rename from src/assets/styles/components/general/search.scss rename to dpp-frontend/src/assets/styles/components/general/search.scss index f3ae2f7aa..826e5e90a 100644 --- a/src/assets/styles/components/general/search.scss +++ b/dpp-frontend/src/assets/styles/components/general/search.scss @@ -1,126 +1,126 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.form { - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - font-size: 20px; - - .v-field__input { - font-size: 16px; - font-weight: 500; - padding-top: 10px; - } - .ripple-background { - color: $catena-x-light-blue; - } - - .v-btn__overlay { - background-color: white; - } - - .clear:hover { - color: $catena-x-blue; - } - .v-field--variant-filled .v-field__overlay { - background-color: none; - border-radius: none; - opacity: 0; - pointer-events: none; - transition: none; - position: initial; - width: 100%; - height: 100%; - } - - .v-field__outline { - display: none; - } - - .v-input__details { - display: none; - } - - .clear { - color: #444; - position: absolute; - right: 65px; - top: 26px; - } - - .v-btn--variant-elevated { - box-shadow: none; - } - - .input-form { - position: relative; - padding: 17px; - - .v-btn--variant-elevated, - .v-btn--variant-flat { - background: none; - } - } - .input { - width: 30vw; - height: 56px; - color: #444; - padding: 2px; - padding-left: 40px; - outline: none; - background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNhMGEwYTA7fS5jbHMtMntmaWxsOiNhMGEwYTA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PC9zdmc+Cg==); - background-repeat: no-repeat; - background-position: 16px center; - background-size: 24px 24px; - border: 1px solid #0f71cb; - border-radius: 8px; - background-color: #f4f7fa; - } - - .submit-btn { - margin-top: 30px; - height: 56px; - width: 185px; - font-size: 16px; - font-weight: 500; - color: #fff; - background: none; - border: none; - cursor: pointer; - } - - .icon { - padding-left: 20px; - } - - @media (max-width: 900px) { - .input { - width: 60vw; - } - .submit-btn { - margin-top: 15px; - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.form { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 20px; + + .v-field__input { + font-size: 16px; + font-weight: 500; + padding-top: 10px; + } + .ripple-background { + color: $catena-x-light-blue; + } + + .v-btn__overlay { + background-color: white; + } + + .clear:hover { + color: $catena-x-blue; + } + .v-field--variant-filled .v-field__overlay { + background-color: none; + border-radius: none; + opacity: 0; + pointer-events: none; + transition: none; + position: initial; + width: 100%; + height: 100%; + } + + .v-field__outline { + display: none; + } + + .v-input__details { + display: none; + } + + .clear { + color: #444; + position: absolute; + right: 65px; + top: 26px; + } + + .v-btn--variant-elevated { + box-shadow: none; + } + + .input-form { + position: relative; + padding: 17px; + + .v-btn--variant-elevated, + .v-btn--variant-flat { + background: none; + } + } + .input { + width: 30vw; + height: 56px; + color: #444; + padding: 2px; + padding-left: 40px; + outline: none; + background-image: url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PGRlZnM+PHN0eWxlPi5jbHMtMXtmaWxsOiNhMGEwYTA7fS5jbHMtMntmaWxsOiNhMGEwYTA7fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE1LjUgMTRoLS43OWwtLjI4LS4yN0MxNS40MSAxMi41OSAxNiAxMS4xMSAxNiA5LjUgMTYgNS45MSAxMy4wOSAzIDkuNSAzUzMgNS45MSAzIDkuNSA1LjkxIDE2IDkuNSAxNmMxLjYxIDAgMy4wOS0uNTkgNC4yMy0xLjU3bC4yNy4yOHYuNzlsNSA0Ljk5TDIwLjQ5IDE5bC00Ljk5LTV6bS02IDBDNy4wMSAxNCA1IDExLjk5IDUgOS41UzcuMDEgNSA5LjUgNSAxNCA3LjAxIDE0IDkuNSAxMS45OSAxNCA5LjUgMTR6Ii8+PC9zdmc+Cg==); + background-repeat: no-repeat; + background-position: 16px center; + background-size: 24px 24px; + border: 1px solid #0f71cb; + border-radius: 8px; + background-color: #f4f7fa; + } + + .submit-btn { + margin-top: 30px; + height: 56px; + width: 185px; + font-size: 16px; + font-weight: 500; + color: #fff; + background: none; + border: none; + cursor: pointer; + } + + .icon { + padding-left: 20px; + } + + @media (max-width: 900px) { + .input { + width: 60vw; + } + .submit-btn { + margin-top: 15px; + } + } +} diff --git a/src/assets/styles/components/general/tooltip.scss b/dpp-frontend/src/assets/styles/components/general/tooltip.scss similarity index 97% rename from src/assets/styles/components/general/tooltip.scss rename to dpp-frontend/src/assets/styles/components/general/tooltip.scss index 0200e728f..d810354b8 100644 --- a/src/assets/styles/components/general/tooltip.scss +++ b/dpp-frontend/src/assets/styles/components/general/tooltip.scss @@ -1,42 +1,42 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.tooltip { - background-color: #303030 !important; - border-radius: 2px !important; - max-width: 200px !important; - white-space: pre-line !important; - line-break: word !important; - padding: 15px !important; -} - -.tooltip::after { - position: absolute; - top: -19px !important; - right: 50% !important; - left: 50% !important; - transform: translateX(-50%) !important; - content: "" !important; - border: 10px solid transparent !important; - border-bottom-color: #303030 !important; -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.tooltip { + background-color: #303030 !important; + border-radius: 2px !important; + max-width: 200px !important; + white-space: pre-line !important; + line-break: word !important; + padding: 15px !important; +} + +.tooltip::after { + position: absolute; + top: -19px !important; + right: 50% !important; + left: 50% !important; + transform: translateX(-50%) !important; + content: "" !important; + border: 10px solid transparent !important; + border-bottom-color: #303030 !important; +} diff --git a/src/assets/styles/components/landing/searchView.scss b/dpp-frontend/src/assets/styles/components/landing/searchView.scss similarity index 95% rename from src/assets/styles/components/landing/searchView.scss rename to dpp-frontend/src/assets/styles/components/landing/searchView.scss index a0fb57b12..e22b1faad 100644 --- a/src/assets/styles/components/landing/searchView.scss +++ b/dpp-frontend/src/assets/styles/components/landing/searchView.scss @@ -1,488 +1,488 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.home-page-container { - display: flex; - justify-content: space-between; - height: 90vh; - padding: 100px 35px 0 35px; - gap: 18px; - - .inner-right-container { - height: 100%; - display: flex; - align-items: center; - flex-direction: column; - justify-content: center; - } - - .left-container-text { - padding: 45px 60px 45px 60px; - margin-bottom: 18px; - background-color: #fff; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - height: 50%; - p { - font-size: 14px; - } - h2 { - margin-bottom: 24px; - } - } - .guide { - position: absolute; - left: 50%; - bottom: 38px; - width: 80%; - transform: translate(-50%, -50%); - font-weight: normal; - font-size: 14px; - } - - .img-container { - width: 100%; - height: 49%; - position: relative; - border-radius: 10px; - overflow: hidden; - height: calc(100% - 50% - 18px); - } - .logotype-container img { - height: 120px; - } - .image { - width: 100%; - height: auto; - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - - .left-container { - width: 50%; - position: relative; - overflow: hidden; - visibility: visible; - transition: opacity 0.3s ease, visibility 0.3s linear, width 0.3s ease-in-out; - } - - .hidden { - width: 0; - opacity: 0; - margin-left: -32px; - visibility: hidden; - } - - .right-container { - flex: 1; - background-color: #fff; - text-align: center; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - } - - .arrow-icon { - position: absolute; - top: 10px; - left: 10px; - width: 40px; - height: 40px; - border-radius: 50%; - border: 2px solid #0f71cb; - background-color: #fff; - color: #0f71cb; - font-size: 20px; - cursor: pointer; - } - .advanced-search-link { - color: #0f71cb; - text-decoration: underline; - cursor: pointer; - } - - .logotype-container { - margin-top: 26px; - } - - .stream-container { - position: relative; - width: 380px; - height: 380px; - border-radius: 8px; - border: 2px solid #0f71cb; - overflow: hidden; - } - .close-btn { - position: absolute; - right: 10px; - top: 20px; - color: #0f71cb; - font-size: 20px; - cursor: pointer; - z-index: 10; - } - .qrScanner-btn { - position: absolute; - right: 21px; - top: 29px; - height: 56px; - width: 56px; - color: #0f71cb; - background-color: #f4f7fa; - font-size: 20px; - cursor: pointer; - z-index: 10; - border: 1px solid #0f71cb; - border-radius: 0 8px 8px 0; - } - - .search-page { - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - - .error { - font-weight: bold; - text-align: center; - padding: 0 0 18px 0; - } - - .qr-container { - position: relative; - } - - p { - font-size: 14px; - font-weight: 500; - } - } -} - -@media (max-width: 1550px) { - .home-page-container { - .img-container { - width: 100%; - position: relative; - border-radius: 10px; - overflow: hidden; - } - .logotype-container img { - height: 110px; - } - .image { - width: 100%; - height: auto; - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - } - .tree-row-item { - border-radius: 10px; - width: 400px; - background-color: #f4fbfd; - &::before { - content: "\F11EC"; // Unicode code for "mdi-plus-box-outline" - font-family: "Material Design Icons"; - margin-right: 8px; // Adjust spacing between the icon and text - } - } -} - -@media (max-width: 1290px) { - .home-page-container { - .img-container { - height: calc(100% - 56% - 18px); - } - .left-container-text { - height: 56%; - padding: 45px; - margin-bottom: 18px; - background-color: #fff; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - p { - font-size: 14px; - } - h2 { - margin-bottom: 24px; - } - .logotype-container img { - height: 100px; - } - } - } -} - -@media (max-width: 980px) { - .home-page-container { - .left-container-text { - padding: 30px; - margin-bottom: 23px; - background-color: #fff; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - height: auto; - p { - font-size: 14px; - } - h2 { - margin-bottom: 24px; - } - } - .logotype-container img { - height: 90px; - } - .image { - width: 150%; - height: auto; - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - } -} - -@media (max-width: 900px) { - .home-page-container { - flex-direction: column; - height: 90vh; - .qr-container { - margin-bottom: 40px; - } - .form .v-field__input { - font-size: 14px; - } - - .left-container { - display: flex; - width: 100%; - transition: opacity 0.3s ease, visibility 0.3s linear, height 0.3s ease-in-out; - } - .hidden { - height: 0; - margin-top: -32px; - } - .left-container-text { - padding: 30px; - width: 70%; - margin-bottom: 0; - background-color: #fff; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - height: auto; - p { - font-size: 12px; - } - h2 { - margin-bottom: 24px; - } - } - - .img-container { - width: 28%; - height: auto; - position: relative; - border-radius: 10px; - overflow: hidden; - margin-left: 18px; - .image { - width: 150%; - height: auto; - background-size: cover; - background-repeat: no-repeat; - background-position: center; - } - } - .arrow-icon { - rotate: 90deg; - } - .logotype-container { - img { - height: 80px; - } - } - .guide { - bottom: 20px; - font-size: 12px; - } - } -} - -@media (max-width: 890px) { - .home-page-container { - height: 100%; - } -} - -@media (max-width: 780px) { - .home-page-container { - padding: 100px 0px 0 0; - .left-container-text { - padding: 30px; - width: 100%; - margin-bottom: 0; - background-color: #fff; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - height: auto; - p { - font-size: 12px; - } - h2 { - margin-bottom: 24px; - } - } - .img-container { - width: 0; - display: none; - } - } -} - -@media (max-width: 585px) { - .home-page-container { - padding: 100px 0px 0 0; - .form .v-field__input { - font-size: 12px; - } - - .qr-container { - margin-bottom: 70px; - } - .stream-container { - margin-top: 30px; - margin-bottom: 30px; - width: 50vw; - height: 50vw; - } - .left-container { - height: auto; - overflow: visible; - } - .hidden { - overflow: hidden; - height: 0; - } - .left-container-text { - padding: 30px; - width: 100%; - margin-bottom: 0; - background-color: #fff; - position: relative; - border: 1px solid #dcdcdc; - border-radius: 10px; - height: auto; - p { - font-size: 12px; - } - h2 { - margin-bottom: 24px; - } - } - .img-container { - width: 0; - display: none; - .image { - display: none; - } - } - } -} - -@media (max-width: 375px) { - .home-page-container { - margin-top: 70px; - } -} - -@media (max-height: 820px) { - .home-page-container { - .guide { - bottom: 5px; - } - } -} - -@media (max-height: 768px) { - .home-page-container { - .logotype-container { - img { - height: 80px; - } - } - .stream-container { - margin-top: 15px; - margin-bottom: 30px; - width: 300px; - height: 300px; - } - } -} - -@media (max-height: 650px) { - .home-page-container { - .stream-container { - width: 250px; - height: 250px; - } - } -} - -@media (max-height: 590px) { - .home-page-container { - .stream-container { - width: 200px; - height: 200px; - } - } -} - -@media (max-height: 540px) { - .home-page-container { - height: 90vh; - - .left-container-text { - height: auto; - overflow: visible; - } - - .stream-container { - margin-top: 5px; - margin-bottom: 30px; - } - .logotype-container { - img { - height: 50px; - } - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.home-page-container { + display: flex; + justify-content: space-between; + height: 90vh; + padding: 100px 35px 0 35px; + gap: 18px; + + .inner-right-container { + height: 100%; + display: flex; + align-items: center; + flex-direction: column; + justify-content: center; + } + + .left-container-text { + padding: 45px 60px 45px 60px; + margin-bottom: 18px; + background-color: #fff; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + height: 50%; + p { + font-size: 14px; + } + h2 { + margin-bottom: 24px; + } + } + .guide { + position: absolute; + left: 50%; + bottom: 38px; + width: 80%; + transform: translate(-50%, -50%); + font-weight: normal; + font-size: 14px; + } + + .img-container { + width: 100%; + height: 49%; + position: relative; + border-radius: 10px; + overflow: hidden; + height: calc(100% - 50% - 18px); + } + .logotype-container img { + height: 120px; + } + .image { + width: 100%; + height: auto; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + + .left-container { + width: 50%; + position: relative; + overflow: hidden; + visibility: visible; + transition: opacity 0.3s ease, visibility 0.3s linear, width 0.3s ease-in-out; + } + + .hidden { + width: 0; + opacity: 0; + margin-left: -32px; + visibility: hidden; + } + + .right-container { + flex: 1; + background-color: #fff; + text-align: center; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + } + + .arrow-icon { + position: absolute; + top: 10px; + left: 10px; + width: 40px; + height: 40px; + border-radius: 50%; + border: 2px solid #0f71cb; + background-color: #fff; + color: #0f71cb; + font-size: 20px; + cursor: pointer; + } + .advanced-search-link { + color: #0f71cb; + text-decoration: underline; + cursor: pointer; + } + + .logotype-container { + margin-top: 26px; + } + + .stream-container { + position: relative; + width: 380px; + height: 380px; + border-radius: 8px; + border: 2px solid #0f71cb; + overflow: hidden; + } + .close-btn { + position: absolute; + right: 10px; + top: 20px; + color: #0f71cb; + font-size: 20px; + cursor: pointer; + z-index: 10; + } + .qrScanner-btn { + position: absolute; + right: 21px; + top: 29px; + height: 56px; + width: 56px; + color: #0f71cb; + background-color: #f4f7fa; + font-size: 20px; + cursor: pointer; + z-index: 10; + border: 1px solid #0f71cb; + border-radius: 0 8px 8px 0; + } + + .search-page { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + + .error { + font-weight: bold; + text-align: center; + padding: 0 0 18px 0; + } + + .qr-container { + position: relative; + } + + p { + font-size: 14px; + font-weight: 500; + } + } +} + +@media (max-width: 1550px) { + .home-page-container { + .img-container { + width: 100%; + position: relative; + border-radius: 10px; + overflow: hidden; + } + .logotype-container img { + height: 110px; + } + .image { + width: 100%; + height: auto; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + } + .tree-row-item { + border-radius: 10px; + width: 400px; + background-color: #f4fbfd; + &::before { + content: "\F11EC"; // Unicode code for "mdi-plus-box-outline" + font-family: "Material Design Icons"; + margin-right: 8px; // Adjust spacing between the icon and text + } + } +} + +@media (max-width: 1290px) { + .home-page-container { + .img-container { + height: calc(100% - 56% - 18px); + } + .left-container-text { + height: 56%; + padding: 45px; + margin-bottom: 18px; + background-color: #fff; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + p { + font-size: 14px; + } + h2 { + margin-bottom: 24px; + } + .logotype-container img { + height: 100px; + } + } + } +} + +@media (max-width: 980px) { + .home-page-container { + .left-container-text { + padding: 30px; + margin-bottom: 23px; + background-color: #fff; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + height: auto; + p { + font-size: 14px; + } + h2 { + margin-bottom: 24px; + } + } + .logotype-container img { + height: 90px; + } + .image { + width: 150%; + height: auto; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + } +} + +@media (max-width: 900px) { + .home-page-container { + flex-direction: column; + height: 90vh; + .qr-container { + margin-bottom: 40px; + } + .form .v-field__input { + font-size: 14px; + } + + .left-container { + display: flex; + width: 100%; + transition: opacity 0.3s ease, visibility 0.3s linear, height 0.3s ease-in-out; + } + .hidden { + height: 0; + margin-top: -32px; + } + .left-container-text { + padding: 30px; + width: 70%; + margin-bottom: 0; + background-color: #fff; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + height: auto; + p { + font-size: 12px; + } + h2 { + margin-bottom: 24px; + } + } + + .img-container { + width: 28%; + height: auto; + position: relative; + border-radius: 10px; + overflow: hidden; + margin-left: 18px; + .image { + width: 150%; + height: auto; + background-size: cover; + background-repeat: no-repeat; + background-position: center; + } + } + .arrow-icon { + rotate: 90deg; + } + .logotype-container { + img { + height: 80px; + } + } + .guide { + bottom: 20px; + font-size: 12px; + } + } +} + +@media (max-width: 890px) { + .home-page-container { + height: 100%; + } +} + +@media (max-width: 780px) { + .home-page-container { + padding: 100px 0px 0 0; + .left-container-text { + padding: 30px; + width: 100%; + margin-bottom: 0; + background-color: #fff; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + height: auto; + p { + font-size: 12px; + } + h2 { + margin-bottom: 24px; + } + } + .img-container { + width: 0; + display: none; + } + } +} + +@media (max-width: 585px) { + .home-page-container { + padding: 100px 0px 0 0; + .form .v-field__input { + font-size: 12px; + } + + .qr-container { + margin-bottom: 70px; + } + .stream-container { + margin-top: 30px; + margin-bottom: 30px; + width: 50vw; + height: 50vw; + } + .left-container { + height: auto; + overflow: visible; + } + .hidden { + overflow: hidden; + height: 0; + } + .left-container-text { + padding: 30px; + width: 100%; + margin-bottom: 0; + background-color: #fff; + position: relative; + border: 1px solid #dcdcdc; + border-radius: 10px; + height: auto; + p { + font-size: 12px; + } + h2 { + margin-bottom: 24px; + } + } + .img-container { + width: 0; + display: none; + .image { + display: none; + } + } + } +} + +@media (max-width: 375px) { + .home-page-container { + margin-top: 70px; + } +} + +@media (max-height: 820px) { + .home-page-container { + .guide { + bottom: 5px; + } + } +} + +@media (max-height: 768px) { + .home-page-container { + .logotype-container { + img { + height: 80px; + } + } + .stream-container { + margin-top: 15px; + margin-bottom: 30px; + width: 300px; + height: 300px; + } + } +} + +@media (max-height: 650px) { + .home-page-container { + .stream-container { + width: 250px; + height: 250px; + } + } +} + +@media (max-height: 590px) { + .home-page-container { + .stream-container { + width: 200px; + height: 200px; + } + } +} + +@media (max-height: 540px) { + .home-page-container { + height: 90vh; + + .left-container-text { + height: auto; + overflow: visible; + } + + .stream-container { + margin-top: 5px; + margin-bottom: 30px; + } + .logotype-container { + img { + height: 50px; + } + } + } +} diff --git a/src/assets/styles/components/passport/additionalData.scss b/dpp-frontend/src/assets/styles/components/passport/additionalData.scss similarity index 96% rename from src/assets/styles/components/passport/additionalData.scss rename to dpp-frontend/src/assets/styles/components/passport/additionalData.scss index 064c15375..5eed8965e 100644 --- a/src/assets/styles/components/passport/additionalData.scss +++ b/dpp-frontend/src/assets/styles/components/passport/additionalData.scss @@ -1,38 +1,38 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.additional-data { - .column { - border: 2px solid #f4fbfd; - border-radius: 10px; - padding: 7px 7px 10px 7px !important; - margin: 6px !important; - } - .container-label { - padding: 10px 0; - max-height: 60%; - cursor: pointer; - font-weight: 800; - color: $catena-x-blue; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.additional-data { + .column { + border: 2px solid #f4fbfd; + border-radius: 10px; + padding: 7px 7px 10px 7px !important; + margin: 6px !important; + } + .container-label { + padding: 10px 0; + max-height: 60%; + cursor: pointer; + font-weight: 800; + color: $catena-x-blue; + } +} diff --git a/src/assets/styles/components/passport/batteryGraph.scss b/dpp-frontend/src/assets/styles/components/passport/batteryGraph.scss similarity index 95% rename from src/assets/styles/components/passport/batteryGraph.scss rename to dpp-frontend/src/assets/styles/components/passport/batteryGraph.scss index 55eacf9af..b6fbe4aa8 100644 --- a/src/assets/styles/components/passport/batteryGraph.scss +++ b/dpp-frontend/src/assets/styles/components/passport/batteryGraph.scss @@ -1,96 +1,96 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.battery-graph { - display: flex; - flex-direction: column; - align-items: center; - width: 380px; - padding: 7px; - display: flex; - background-color: #f5f5f5; - border-radius: 8px; - // margin-left: 6px; - // margin-bottom: 12px; - margin: 6px 0 12px 6px; - @include background-image( - $background-image-url, - $background-color, - $background-size, - $background-position, - $background-repeat - ); - - .graph-icon { - width: 100%; - } - .composition-graph { - width: 100%; - display: flex; - - .composition-section { - position: relative; - width: 50%; - display: flex; - flex-direction: column; - margin-bottom: 10px; - } - - .composition-bar-container { - display: flex; - flex-direction: column; - margin-top: 10px; - width: 30px; - - .component-label-container { - position: absolute; - font-weight: 600; - background: #f5f5f5; - padding: 0 5px; - white-space: nowrap; - } - .component-label-line { - position: absolute; - padding: 0 20px; - height: 1px; - background-color: black; - width: 70%; - } - } - .composition-title { - font-size: 11px; - font-weight: 500; - } - .composition-bar { - display: flex; - align-items: center; - width: 100%; - font-size: 14px; - height: 100%; - } - } - .type { - font-size: 12px; - font-weight: 600; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.battery-graph { + display: flex; + flex-direction: column; + align-items: center; + width: 380px; + padding: 7px; + display: flex; + background-color: #f5f5f5; + border-radius: 8px; + // margin-left: 6px; + // margin-bottom: 12px; + margin: 6px 0 12px 6px; + @include background-image( + $background-image-url, + $background-color, + $background-size, + $background-position, + $background-repeat + ); + + .graph-icon { + width: 100%; + } + .composition-graph { + width: 100%; + display: flex; + + .composition-section { + position: relative; + width: 50%; + display: flex; + flex-direction: column; + margin-bottom: 10px; + } + + .composition-bar-container { + display: flex; + flex-direction: column; + margin-top: 10px; + width: 30px; + + .component-label-container { + position: absolute; + font-weight: 600; + background: #f5f5f5; + padding: 0 5px; + white-space: nowrap; + } + .component-label-line { + position: absolute; + padding: 0 20px; + height: 1px; + background-color: black; + width: 70%; + } + } + .composition-title { + font-size: 11px; + font-weight: 500; + } + .composition-bar { + display: flex; + align-items: center; + width: 100%; + font-size: 14px; + height: 100%; + } + } + .type { + font-size: 12px; + font-weight: 600; + } +} diff --git a/src/assets/styles/components/passport/cards.scss b/dpp-frontend/src/assets/styles/components/passport/cards.scss similarity index 95% rename from src/assets/styles/components/passport/cards.scss rename to dpp-frontend/src/assets/styles/components/passport/cards.scss index 09cec8aeb..2232e7667 100644 --- a/src/assets/styles/components/passport/cards.scss +++ b/dpp-frontend/src/assets/styles/components/passport/cards.scss @@ -1,283 +1,283 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.cards-container { - margin-bottom: 24px; - padding: 6px !important; - - .sustainability { - display: flex; - } - - .card-container { - min-height: 193px; - position: relative; - background-color: #fff; - border-radius: 10px; - border: solid 1px #dcdcdc; - padding: 8px 16px; - overflow: hidden; - - .charging-cycles-title { - font-size: 12px; - font-weight: 500; - margin: 12px 0 5px 0; - } - - .charging-cycles { - position: relative; - width: 80%; - - .bar-chart { - position: absolute; - background: #ececec; - border-radius: 8px; - width: 100%; - height: 19px; - } - - .chart-value { - font-size: 12px; - position: absolute; - top: 20px; - } - - .no-value { - display: none; - } - - .current { - left: 0; - } - .max { - right: 0; - } - } - - .card-title { - font-size: 11px; - font-weight: 500; - color: #888888; - } - - .card-icon { - position: absolute; - right: 7px; - top: 7px; - color: #939393; - } - - .card-icon-green { - color: #428c5b; - } - - .card-label { - font-size: 12px; - font-weight: 500; - padding-top: 13px; - } - - .card-value { - font-size: 24px; - font-weight: 600; - padding-bottom: 12px; - word-wrap: break-word; - } - - .card-second-value { - font-size: 18px; - font-weight: 500; - padding-top: 2px; - word-wrap: break-word; - } - - .card-second-label { - font-size: 12px; - font-weight: 500; - padding-top: 12px; - } - - .card-info-icon { - position: absolute; - right: 0; - bottom: 7px; - color: #0f71cb; - } - - .card-info-icon:hover { - color: $catena-x-dark-blue; - cursor: pointer; - } - - .materials-container { - width: 50%; - - .material-container { - position: relative; - width: 60px; - height: 60px; - background-color: #eaf1fe; - border-radius: 10px; - padding-top: 20px; - margin: 0 15px 15px 0; - - .material-label { - position: absolute; - top: 5px; - left: 5px; - font-size: 12px; - font-weight: 500; - } - .material-value { - position: absolute; - font-size: 18px; - font-weight: 600; - top: 20px; - left: 50%; - transform: translate(-50%, 0); - } - } - } - - .co2-container { - width: 45%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - border-left: 1px solid lightgrey; - .co2-value { - font-weight: 600; - font-size: 16px; - } - .co2-label { - font-size: 10px; - } - } - } -} - -@media (max-width: 1600px) { - .cards-container { - .card-container { - .materials-container { - width: 50%; - } - .co2-container { - width: 30%; - padding-left: 15%; - } - } - } -} - -@media (max-width: 1300px) { - .cards-container { - .card-container { - height: 193px; - .materials-container { - .material-container { - width: 50px; - height: 50px; - } - } - } - } -} - -@media (max-width: 1125px) { - .cards-container { - .card-container { - height: 193px; - .materials-container { - .material-container { - width: 80%; - height: 30px; - margin: 2px 20px 2px 0; - .material-value { - position: absolute; - font-size: 10px; - font-weight: 600; - top: 6px; - left: 50%; - transform: translate(-50%, 0); - } - } - } - } - } -} - -@media (max-width: 960px) { - .cards-container { - .card-container { - height: auto; - padding-bottom: 40px; - .materials-container { - width: 50%; - - .material-container { - position: relative; - width: 60px; - height: 60px; - background-color: #eaf1fe; - border-radius: 10px; - padding-top: 20px; - margin: 0 15px 15px 0; - - .material-label { - position: absolute; - top: 5px; - left: 5px; - font-size: 12px; - font-weight: 500; - } - .material-value { - position: absolute; - font-size: 18px; - font-weight: 600; - top: 20px; - left: 50%; - transform: translate(-50%, 0); - } - } - } - - .co2-container { - width: 45%; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - border-left: 1px solid lightgrey; - .co2-value { - font-weight: 600; - font-size: 16px; - } - .co2-label { - font-size: 10px; - } - } - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.cards-container { + margin-bottom: 24px; + padding: 6px !important; + + .sustainability { + display: flex; + } + + .card-container { + min-height: 193px; + position: relative; + background-color: #fff; + border-radius: 10px; + border: solid 1px #dcdcdc; + padding: 8px 16px; + overflow: hidden; + + .charging-cycles-title { + font-size: 12px; + font-weight: 500; + margin: 12px 0 5px 0; + } + + .charging-cycles { + position: relative; + width: 80%; + + .bar-chart { + position: absolute; + background: #ececec; + border-radius: 8px; + width: 100%; + height: 19px; + } + + .chart-value { + font-size: 12px; + position: absolute; + top: 20px; + } + + .no-value { + display: none; + } + + .current { + left: 0; + } + .max { + right: 0; + } + } + + .card-title { + font-size: 11px; + font-weight: 500; + color: #888888; + } + + .card-icon { + position: absolute; + right: 7px; + top: 7px; + color: #939393; + } + + .card-icon-green { + color: #428c5b; + } + + .card-label { + font-size: 12px; + font-weight: 500; + padding-top: 13px; + } + + .card-value { + font-size: 24px; + font-weight: 600; + padding-bottom: 12px; + word-wrap: break-word; + } + + .card-second-value { + font-size: 18px; + font-weight: 500; + padding-top: 2px; + word-wrap: break-word; + } + + .card-second-label { + font-size: 12px; + font-weight: 500; + padding-top: 12px; + } + + .card-info-icon { + position: absolute; + right: 0; + bottom: 7px; + color: #0f71cb; + } + + .card-info-icon:hover { + color: $catena-x-dark-blue; + cursor: pointer; + } + + .materials-container { + width: 50%; + + .material-container { + position: relative; + width: 60px; + height: 60px; + background-color: #eaf1fe; + border-radius: 10px; + padding-top: 20px; + margin: 0 15px 15px 0; + + .material-label { + position: absolute; + top: 5px; + left: 5px; + font-size: 12px; + font-weight: 500; + } + .material-value { + position: absolute; + font-size: 18px; + font-weight: 600; + top: 20px; + left: 50%; + transform: translate(-50%, 0); + } + } + } + + .co2-container { + width: 45%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-left: 1px solid lightgrey; + .co2-value { + font-weight: 600; + font-size: 16px; + } + .co2-label { + font-size: 10px; + } + } + } +} + +@media (max-width: 1600px) { + .cards-container { + .card-container { + .materials-container { + width: 50%; + } + .co2-container { + width: 30%; + padding-left: 15%; + } + } + } +} + +@media (max-width: 1300px) { + .cards-container { + .card-container { + height: 193px; + .materials-container { + .material-container { + width: 50px; + height: 50px; + } + } + } + } +} + +@media (max-width: 1125px) { + .cards-container { + .card-container { + height: 193px; + .materials-container { + .material-container { + width: 80%; + height: 30px; + margin: 2px 20px 2px 0; + .material-value { + position: absolute; + font-size: 10px; + font-weight: 600; + top: 6px; + left: 50%; + transform: translate(-50%, 0); + } + } + } + } + } +} + +@media (max-width: 960px) { + .cards-container { + .card-container { + height: auto; + padding-bottom: 40px; + .materials-container { + width: 50%; + + .material-container { + position: relative; + width: 60px; + height: 60px; + background-color: #eaf1fe; + border-radius: 10px; + padding-top: 20px; + margin: 0 15px 15px 0; + + .material-label { + position: absolute; + top: 5px; + left: 5px; + font-size: 12px; + font-weight: 500; + } + .material-value { + position: absolute; + font-size: 18px; + font-weight: 600; + top: 20px; + left: 50%; + transform: translate(-50%, 0); + } + } + } + + .co2-container { + width: 45%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + border-left: 1px solid lightgrey; + .co2-value { + font-weight: 600; + font-size: 16px; + } + .co2-label { + font-size: 10px; + } + } + } + } +} diff --git a/src/assets/styles/components/passport/documentField.scss b/dpp-frontend/src/assets/styles/components/passport/documentField.scss similarity index 95% rename from src/assets/styles/components/passport/documentField.scss rename to dpp-frontend/src/assets/styles/components/passport/documentField.scss index 9dbcf4890..61751cfd4 100644 --- a/src/assets/styles/components/passport/documentField.scss +++ b/dpp-frontend/src/assets/styles/components/passport/documentField.scss @@ -1,105 +1,105 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.box { - background: #eaf1fe!important; - flex-direction: row!important; - align-items: center; - justify-content: center; -} -.document-field { - .link-container { - display: flex; - flex-direction: column; - text-decoration: none; - } - - a { - color: $catena-x-blue; - font-weight: 600; - } - - .link-wrapper { - line-break: anywhere; - } - - .link { - text-decoration: underline; - } - - .document-icon { - padding-right: 3px; - } - - .field-label { - font-size: 14px; - color: #777777; - line-break: anywhere; - } - - .field-value { - font-size: 14px; - line-height: 20px; - font-weight: bold; - } - - .longer { - padding-bottom: 0; - } - - .icon { - width: 37px; - height: 39px; - margin-left: 30px; - } - - .list-container { - width: 33%; - padding-left: 40px; - padding-bottom: 40px; - } - - .list-label { - padding: 30px 0 10px 0; - font-size: 12px; - color: #777777; - } - - ul { - display: flex; - flex-direction: column; - } - - li { - margin-left: 20px; - font-weight: bold; - } - - .two-third-width { - width: 66% !important; - } - - .short-label { - max-width: 53%; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.box { + background: #eaf1fe!important; + flex-direction: row!important; + align-items: center; + justify-content: center; +} +.document-field { + .link-container { + display: flex; + flex-direction: column; + text-decoration: none; + } + + a { + color: $catena-x-blue; + font-weight: 600; + } + + .link-wrapper { + line-break: anywhere; + } + + .link { + text-decoration: underline; + } + + .document-icon { + padding-right: 3px; + } + + .field-label { + font-size: 14px; + color: #777777; + line-break: anywhere; + } + + .field-value { + font-size: 14px; + line-height: 20px; + font-weight: bold; + } + + .longer { + padding-bottom: 0; + } + + .icon { + width: 37px; + height: 39px; + margin-left: 30px; + } + + .list-container { + width: 33%; + padding-left: 40px; + padding-bottom: 40px; + } + + .list-label { + padding: 30px 0 10px 0; + font-size: 12px; + color: #777777; + } + + ul { + display: flex; + flex-direction: column; + } + + li { + margin-left: 20px; + font-weight: bold; + } + + .two-third-width { + width: 66% !important; + } + + .short-label { + max-width: 53%; + } +} diff --git a/src/assets/styles/components/passport/elementChart.scss b/dpp-frontend/src/assets/styles/components/passport/elementChart.scss similarity index 96% rename from src/assets/styles/components/passport/elementChart.scss rename to dpp-frontend/src/assets/styles/components/passport/elementChart.scss index 277c8077e..65f42d5e3 100644 --- a/src/assets/styles/components/passport/elementChart.scss +++ b/dpp-frontend/src/assets/styles/components/passport/elementChart.scss @@ -1,61 +1,61 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.materials-container { - width: 300px; -} -.material-container { - position: relative; - width: 114px; - height: 114px; - background-color: #eaf1fe; - border-radius: 10px; - padding-top: 20px; - margin: 7px; -} -.material-label { - position: absolute; - top: 5px; - left: 5px; - font-size: 14px; - font-weight: 500; -} -.material-value { - position: absolute; - font-size: 24px; - font-weight: 600; - top: 43px; - left: 50%; - transform: translate(-50%, 0); -} -@media (max-width: 1137px) { - .material-container { - position: relative; - width: 94px; - height: 94px; - - border-radius: 10px; - padding-top: 20px; - margin: 7px; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.materials-container { + width: 300px; +} +.material-container { + position: relative; + width: 114px; + height: 114px; + background-color: #eaf1fe; + border-radius: 10px; + padding-top: 20px; + margin: 7px; +} +.material-label { + position: absolute; + top: 5px; + left: 5px; + font-size: 14px; + font-weight: 500; +} +.material-value { + position: absolute; + font-size: 24px; + font-weight: 600; + top: 43px; + left: 50%; + transform: translate(-50%, 0); +} +@media (max-width: 1137px) { + .material-container { + position: relative; + width: 94px; + height: 94px; + + border-radius: 10px; + padding-top: 20px; + margin: 7px; + } +} diff --git a/src/assets/styles/components/passport/field.scss b/dpp-frontend/src/assets/styles/components/passport/field.scss similarity index 95% rename from src/assets/styles/components/passport/field.scss rename to dpp-frontend/src/assets/styles/components/passport/field.scss index 14887757e..525bc0859 100644 --- a/src/assets/styles/components/passport/field.scss +++ b/dpp-frontend/src/assets/styles/components/passport/field.scss @@ -1,101 +1,101 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.info-dialog { - cursor: pointer; - .icon { - color: $catena-x-blue; - } -} -.field-container { - position: relative; - display: flex; - flex-direction: column; - background-color: #f4fbfd; - border-radius: 10px; - margin: 6px; - padding: 7px 7px 10px 7px; - - .link { - color: $catena-x-blue; - cursor: pointer; - } - - .field-label { - font-size: 12px; - font-weight: 500; - color: #252525; - } - - .field-value { - color: #252525; - font-size: 14px; - font-weight: 600; - line-break: anywhere; - } - - ul { - display: flex; - flex-direction: column; - padding: 0; - list-style-type: none; - - li { - font-weight: bold; - margin: 0; - } - } - - .temp-range { - position: absolute; - left: 200px; - top: 7px; - } - - .temp-range-value { - position: absolute; - font-size: 10px; - font-weight: 700; - color: #fff; - z-index: 9; - } - - .temp-range-min { - left: 253px; - top: 21px; - } - - .temp-range-max { - left: 204px; - top: 16px; - } - - .temp-range-min { - position: absolute; - } - .test-container { - display: flex; - flex-direction: column; - padding: 12px 0 22px 0; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.info-dialog { + cursor: pointer; + .icon { + color: $catena-x-blue; + } +} +.field-container { + position: relative; + display: flex; + flex-direction: column; + background-color: #f4fbfd; + border-radius: 10px; + margin: 6px; + padding: 7px 7px 10px 7px; + + .link { + color: $catena-x-blue; + cursor: pointer; + } + + .field-label { + font-size: 12px; + font-weight: 500; + color: #252525; + } + + .field-value { + color: #252525; + font-size: 14px; + font-weight: 600; + line-break: anywhere; + } + + ul { + display: flex; + flex-direction: column; + padding: 0; + list-style-type: none; + + li { + font-weight: bold; + margin: 0; + } + } + + .temp-range { + position: absolute; + left: 200px; + top: 7px; + } + + .temp-range-value { + position: absolute; + font-size: 10px; + font-weight: 700; + color: #fff; + z-index: 9; + } + + .temp-range-min { + left: 253px; + top: 21px; + } + + .temp-range-max { + left: 204px; + top: 16px; + } + + .temp-range-min { + position: absolute; + } + .test-container { + display: flex; + flex-direction: column; + padding: 12px 0 22px 0; + } +} diff --git a/src/assets/styles/components/passport/passportPage.scss b/dpp-frontend/src/assets/styles/components/passport/passportPage.scss similarity index 95% rename from src/assets/styles/components/passport/passportPage.scss rename to dpp-frontend/src/assets/styles/components/passport/passportPage.scss index 7f52aa280..3407893cd 100644 --- a/src/assets/styles/components/passport/passportPage.scss +++ b/dpp-frontend/src/assets/styles/components/passport/passportPage.scss @@ -1,127 +1,127 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ -.header-title { - font-size: 16px; - font-weight: 500; -} - -.pass-container { - margin: 0 40px 0 40px; - - .v-card .v-card-text { - min-height: 330px !important; - } - - .menu { - height: 80px !important; - - .v-slide-group__content { - height: 80px; - border-bottom: 1px solid #b6b6b6 !important; - } - - .v-btn__content { - text-decoration: none; - display: block; - font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, - sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; - font-size: 14px; - line-height: 1.42857; - letter-spacing: 0px; - text-transform: initial; - font-weight: 500; - } - - .v-btn--size-default { - padding: 14px; - text-align: center; - width: auto; - height: 80px; - } - - .ripple-background { - color: rgb(254, 255, 254); - } - - .v-slide-group-item--active { - .v-btn__content { - color: $catena-x-blue; - --v-border-color: 0, 0, 224; - --v-theme-on-surface: 13, 85, 175; - } - } - - display: flex; - align-items: center; - } -} - -.footer-spacer { - margin-bottom: 56px; -} - -.spinner-container { - width: 100vw; - height: 100vh; - display: flex; - justify-content: center; - align-items: center; -} -.spinner { - margin: auto; - width: 8vh; - animation: rotate 3s infinite; -} -@keyframes rotate { - 100% { - transform: rotate(360deg); - } -} - -@media (max-width: 960px) { - .footer-spacer { - margin-bottom: 112px; - } -} - -@media (max-width: 750px) { - .pass-container { - width: 100%; - margin: 0; - } - .footer-spacer { - margin-bottom: 112px; - } -} - -@media (max-width: 585px) { - .footer-spacer { - margin-bottom: 425px; - } -} - -@media (max-width: 550px) { - .header-title { - display: none !important; - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ +.header-title { + font-size: 16px; + font-weight: 500; +} + +.pass-container { + margin: 0 40px 0 40px; + + .v-card .v-card-text { + min-height: 330px !important; + } + + .menu { + height: 80px !important; + + .v-slide-group__content { + height: 80px; + border-bottom: 1px solid #b6b6b6 !important; + } + + .v-btn__content { + text-decoration: none; + display: block; + font-family: LibreFranklin-Medium, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, + sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; + font-size: 14px; + line-height: 1.42857; + letter-spacing: 0px; + text-transform: initial; + font-weight: 500; + } + + .v-btn--size-default { + padding: 14px; + text-align: center; + width: auto; + height: 80px; + } + + .ripple-background { + color: rgb(254, 255, 254); + } + + .v-slide-group-item--active { + .v-btn__content { + color: $catena-x-blue; + --v-border-color: 0, 0, 224; + --v-theme-on-surface: 13, 85, 175; + } + } + + display: flex; + align-items: center; + } +} + +.footer-spacer { + margin-bottom: 56px; +} + +.spinner-container { + width: 100vw; + height: 100vh; + display: flex; + justify-content: center; + align-items: center; +} +.spinner { + margin: auto; + width: 8vh; + animation: rotate 3s infinite; +} +@keyframes rotate { + 100% { + transform: rotate(360deg); + } +} + +@media (max-width: 960px) { + .footer-spacer { + margin-bottom: 112px; + } +} + +@media (max-width: 750px) { + .pass-container { + width: 100%; + margin: 0; + } + .footer-spacer { + margin-bottom: 112px; + } +} + +@media (max-width: 585px) { + .footer-spacer { + margin-bottom: 425px; + } +} + +@media (max-width: 550px) { + .header-title { + display: none !important; + } +} diff --git a/src/assets/styles/components/passport/sections.scss b/dpp-frontend/src/assets/styles/components/passport/sections.scss similarity index 95% rename from src/assets/styles/components/passport/sections.scss rename to dpp-frontend/src/assets/styles/components/passport/sections.scss index 8eae6abcf..8855e45db 100644 --- a/src/assets/styles/components/passport/sections.scss +++ b/dpp-frontend/src/assets/styles/components/passport/sections.scss @@ -1,107 +1,107 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -.section { - display: flex; - .full-width { - width: 100% !important; - } - - .info-bar { - padding: 10px; - font-weight: 600; - color: #fff; - margin: -16px 36px 18px 36px; - } - - .element-chart-label { - font-size: 14px; - font-weight: 500; - margin: 0 0 6px 8px; - min-height: 20px; - } - - .sub-section-container { - display: flex; - flex-wrap: wrap; - border-bottom: solid 1px #edefe5; - } - - .two-third-width { - width: 66% !important; - } - - .section-content { - width: 100%; - border: solid 1px #b3cb2d; - border-radius: 0 0 4px 4px; - background-color: #fff; - margin-bottom: 50px; - } - - .list-container { - width: 33%; - padding: 0 0 22px 40px; - } - - .list-label { - padding: 22px 0 10px 0; - font-size: 12px; - color: #777777; - } - - ul { - display: flex; - flex-direction: column; - padding: 0; - } - - li { - margin-left: 20px; - font-weight: bold; - } - - .sub-title { - font-weight: bold; - font-size: 20px; - color: #c6cca3; - } - - .container-width-80 { - width: 80%; - } - .container-width-50 { - width: 50%; - } -} -@media (max-width: 960px) { - .section { - flex-direction: column; - .container-width-80 { - width: 100%; - } - .container-width-50 { - width: 100%; - } - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +.section { + display: flex; + .full-width { + width: 100% !important; + } + + .info-bar { + padding: 10px; + font-weight: 600; + color: #fff; + margin: -16px 36px 18px 36px; + } + + .element-chart-label { + font-size: 14px; + font-weight: 500; + margin: 0 0 6px 8px; + min-height: 20px; + } + + .sub-section-container { + display: flex; + flex-wrap: wrap; + border-bottom: solid 1px #edefe5; + } + + .two-third-width { + width: 66% !important; + } + + .section-content { + width: 100%; + border: solid 1px #b3cb2d; + border-radius: 0 0 4px 4px; + background-color: #fff; + margin-bottom: 50px; + } + + .list-container { + width: 33%; + padding: 0 0 22px 40px; + } + + .list-label { + padding: 22px 0 10px 0; + font-size: 12px; + color: #777777; + } + + ul { + display: flex; + flex-direction: column; + padding: 0; + } + + li { + margin-left: 20px; + font-weight: bold; + } + + .sub-title { + font-weight: bold; + font-size: 20px; + color: #c6cca3; + } + + .container-width-80 { + width: 80%; + } + .container-width-50 { + width: 50%; + } +} +@media (max-width: 960px) { + .section { + flex-direction: column; + .container-width-80 { + width: 100%; + } + .container-width-50 { + width: 100%; + } + } +} diff --git a/src/assets/styles/config/variables.scss b/dpp-frontend/src/assets/styles/config/variables.scss similarity index 97% rename from src/assets/styles/config/variables.scss rename to dpp-frontend/src/assets/styles/config/variables.scss index e826f5b06..7a3acf037 100644 --- a/src/assets/styles/config/variables.scss +++ b/dpp-frontend/src/assets/styles/config/variables.scss @@ -1,44 +1,44 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/** Catena-X Colors extracted from Portal **/ - -$catena-x-blue: rgb(15, 113, 203); -$catena-x-light-blue: rgb(130, 195, 255); -$catena-x-extra-light-blue: rgb(212, 227, 254); -$catena-x-dark-blue: rgb(13, 85, 175); -$catena-x-black: rgb(17, 17, 17); - -$background-image-url: "@/media/BatteryCompBG.svg"; -$background-color: #f5f5f5; -$background-size: cover; -$background-position: center; -$background-repeat: no-repeat; - -@mixin background-image($url, $color, $size, $position, $repeat) { - background-color: $color; - background-image: url($url); - background-size: $size; - background-position: $position; - background-repeat: $repeat; -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** Catena-X Colors extracted from Portal **/ + +$catena-x-blue: rgb(15, 113, 203); +$catena-x-light-blue: rgb(130, 195, 255); +$catena-x-extra-light-blue: rgb(212, 227, 254); +$catena-x-dark-blue: rgb(13, 85, 175); +$catena-x-black: rgb(17, 17, 17); + +$background-image-url: "@/media/BatteryCompBG.svg"; +$background-color: #f5f5f5; +$background-size: cover; +$background-position: center; +$background-repeat: no-repeat; + +@mixin background-image($url, $color, $size, $position, $repeat) { + background-color: $color; + background-image: url($url); + background-size: $size; + background-position: $position; + background-repeat: $repeat; +} diff --git a/src/assets/styles/main.scss b/dpp-frontend/src/assets/styles/main.scss similarity index 97% rename from src/assets/styles/main.scss rename to dpp-frontend/src/assets/styles/main.scss index c2b2de3c3..3590a62c9 100644 --- a/src/assets/styles/main.scss +++ b/dpp-frontend/src/assets/styles/main.scss @@ -1,45 +1,45 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -/** Global configuration variables **/ -@import "config/variables"; - -/** Components style import **/ -@import "components/general/footer"; -@import "components/general/header"; -@import "components/general/search"; -@import "components/general/tooltip"; -@import "components/general/contractModal"; -@import "components/general/dialog"; -@import "components/general/recursiveTree"; -@import "components/passport/documentField"; -@import "components/passport/field"; -@import "components/passport/additionalData"; -@import "components/passport/cards"; -@import "components/landing/searchView"; -@import "components/passport/sections"; -@import "components/passport/batteryGraph"; -@import "components/passport/passportPage"; -@import "components/general/notFound"; -@import "components/general/loading"; -@import "components/passport/elementChart"; +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** Global configuration variables **/ +@import "config/variables"; + +/** Components style import **/ +@import "components/general/footer"; +@import "components/general/header"; +@import "components/general/search"; +@import "components/general/tooltip"; +@import "components/general/contractModal"; +@import "components/general/dialog"; +@import "components/general/recursiveTree"; +@import "components/passport/documentField"; +@import "components/passport/field"; +@import "components/passport/additionalData"; +@import "components/passport/cards"; +@import "components/landing/searchView"; +@import "components/passport/sections"; +@import "components/passport/batteryGraph"; +@import "components/passport/passportPage"; +@import "components/general/notFound"; +@import "components/general/loading"; +@import "components/passport/elementChart"; diff --git a/src/assets/styles/style.css b/dpp-frontend/src/assets/styles/style.css similarity index 100% rename from src/assets/styles/style.css rename to dpp-frontend/src/assets/styles/style.css diff --git a/src/components/general/Alert.vue b/dpp-frontend/src/components/general/Alert.vue similarity index 100% rename from src/components/general/Alert.vue rename to dpp-frontend/src/components/general/Alert.vue diff --git a/src/components/general/Dialog.vue b/dpp-frontend/src/components/general/Dialog.vue similarity index 96% rename from src/components/general/Dialog.vue rename to dpp-frontend/src/components/general/Dialog.vue index 0a9e665b6..06a46063a 100644 --- a/src/components/general/Dialog.vue +++ b/dpp-frontend/src/components/general/Dialog.vue @@ -1,61 +1,61 @@ - - - - - + + + + + diff --git a/src/components/general/ErrorComponent.vue b/dpp-frontend/src/components/general/ErrorComponent.vue similarity index 96% rename from src/components/general/ErrorComponent.vue rename to dpp-frontend/src/components/general/ErrorComponent.vue index 16aa04521..8c198948a 100644 --- a/src/components/general/ErrorComponent.vue +++ b/dpp-frontend/src/components/general/ErrorComponent.vue @@ -1,168 +1,168 @@ - - - - - - - - + + + + + + + + diff --git a/src/components/general/FieldBox.vue b/dpp-frontend/src/components/general/FieldBox.vue similarity index 100% rename from src/components/general/FieldBox.vue rename to dpp-frontend/src/components/general/FieldBox.vue diff --git a/src/components/general/Footer.vue b/dpp-frontend/src/components/general/Footer.vue similarity index 96% rename from src/components/general/Footer.vue rename to dpp-frontend/src/components/general/Footer.vue index 789d315b2..b129b2591 100644 --- a/src/components/general/Footer.vue +++ b/dpp-frontend/src/components/general/Footer.vue @@ -1,177 +1,177 @@ - - - - - - - + + + + + + + diff --git a/src/components/general/Header.vue b/dpp-frontend/src/components/general/Header.vue similarity index 77% rename from src/components/general/Header.vue rename to dpp-frontend/src/components/general/Header.vue index aa49a58fc..1c5088ac1 100644 --- a/src/components/general/Header.vue +++ b/dpp-frontend/src/components/general/Header.vue @@ -37,11 +37,19 @@ - + - + - {{ $t("header.helpBtn") }} {{ $t("header.helpTooltip") }} @@ -49,10 +57,17 @@ - +
@@ -61,8 +76,14 @@

{{ role }}

- - {{ $t("header.signOut") }} + + {{ + $t("header.signOut") + }}
import CatenaLogo from "@/media/Catena-X_Logo_mit_Zusatz_2021.svg"; -import BatteryLogo from "@/media/BatteryLogo.svg"; -import BatteryLogotype from "@/media/BatteryLogotype.svg"; import Profile from "@/media/profile.svg"; import Tooltip from "@/components/general/Tooltip.vue"; import { inject } from "vue"; @@ -112,8 +131,6 @@ export default { setup() { return { CatenaLogo, - BatteryLogo, - BatteryLogotype, Profile, }; }, @@ -129,7 +146,10 @@ export default { tab: null, lang: "en-EN", userGuideUrl: - REPO_ENDPOINT + "/blob/" + COMMIT_ID + "/docs/user%20manual/User%20Manual%20Product%20Viewer%20App.md", + REPO_ENDPOINT + + "/blob/" + + COMMIT_ID + + "/docs/user%20manual/UserManual.md", }; }, mounted() { diff --git a/src/components/general/LoadingComponent.vue b/dpp-frontend/src/components/general/LoadingComponent.vue similarity index 97% rename from src/components/general/LoadingComponent.vue rename to dpp-frontend/src/components/general/LoadingComponent.vue index 66ffdd4c6..9679dff41 100644 --- a/src/components/general/LoadingComponent.vue +++ b/dpp-frontend/src/components/general/LoadingComponent.vue @@ -1,188 +1,188 @@ - - - - - - + + + + + + diff --git a/src/components/general/NotAuthorizedComponent.vue b/dpp-frontend/src/components/general/NotAuthorizedComponent.vue similarity index 100% rename from src/components/general/NotAuthorizedComponent.vue rename to dpp-frontend/src/components/general/NotAuthorizedComponent.vue diff --git a/src/components/general/NotAvailableComponent.vue b/dpp-frontend/src/components/general/NotAvailableComponent.vue similarity index 100% rename from src/components/general/NotAvailableComponent.vue rename to dpp-frontend/src/components/general/NotAvailableComponent.vue diff --git a/src/components/general/QrcodeStrem.vue b/dpp-frontend/src/components/general/QrcodeStrem.vue similarity index 96% rename from src/components/general/QrcodeStrem.vue rename to dpp-frontend/src/components/general/QrcodeStrem.vue index 032c9a8b8..0bdf31c37 100644 --- a/src/components/general/QrcodeStrem.vue +++ b/dpp-frontend/src/components/general/QrcodeStrem.vue @@ -1,94 +1,94 @@ - - - - - + + + + + diff --git a/src/components/general/RecursiveAdditionalData.vue b/dpp-frontend/src/components/general/RecursiveAdditionalData.vue similarity index 96% rename from src/components/general/RecursiveAdditionalData.vue rename to dpp-frontend/src/components/general/RecursiveAdditionalData.vue index a934455f1..ddade0d05 100644 --- a/src/components/general/RecursiveAdditionalData.vue +++ b/dpp-frontend/src/components/general/RecursiveAdditionalData.vue @@ -1,89 +1,89 @@ - - - - - - + + + + + + diff --git a/src/components/general/RecursiveComponent.vue b/dpp-frontend/src/components/general/RecursiveComponent.vue similarity index 96% rename from src/components/general/RecursiveComponent.vue rename to dpp-frontend/src/components/general/RecursiveComponent.vue index f835e657b..1a93f860c 100644 --- a/src/components/general/RecursiveComponent.vue +++ b/dpp-frontend/src/components/general/RecursiveComponent.vue @@ -1,57 +1,57 @@ - - - - - + + + + + diff --git a/src/components/general/RecursiveTree.vue b/dpp-frontend/src/components/general/RecursiveTree.vue similarity index 96% rename from src/components/general/RecursiveTree.vue rename to dpp-frontend/src/components/general/RecursiveTree.vue index f2c10032e..f7d514bdb 100644 --- a/src/components/general/RecursiveTree.vue +++ b/dpp-frontend/src/components/general/RecursiveTree.vue @@ -1,165 +1,165 @@ - - - - - - - - + + + + + + + + diff --git a/src/components/general/SearchInput.vue b/dpp-frontend/src/components/general/SearchInput.vue similarity index 95% rename from src/components/general/SearchInput.vue rename to dpp-frontend/src/components/general/SearchInput.vue index 65d68c564..8130efa11 100644 --- a/src/components/general/SearchInput.vue +++ b/dpp-frontend/src/components/general/SearchInput.vue @@ -1,89 +1,89 @@ - - - - - + + + + + diff --git a/src/components/general/StepperItem.vue b/dpp-frontend/src/components/general/StepperItem.vue similarity index 96% rename from src/components/general/StepperItem.vue rename to dpp-frontend/src/components/general/StepperItem.vue index f9b726a84..8ef88ab26 100644 --- a/src/components/general/StepperItem.vue +++ b/dpp-frontend/src/components/general/StepperItem.vue @@ -1,66 +1,66 @@ - - - - - - + + + + + + diff --git a/src/components/general/TabsComponent.vue b/dpp-frontend/src/components/general/TabsComponent.vue similarity index 97% rename from src/components/general/TabsComponent.vue rename to dpp-frontend/src/components/general/TabsComponent.vue index e04154f40..f40c1ccf1 100644 --- a/src/components/general/TabsComponent.vue +++ b/dpp-frontend/src/components/general/TabsComponent.vue @@ -1,121 +1,121 @@ - - - - - \ No newline at end of file diff --git a/src/components/general/Tooltip.vue b/dpp-frontend/src/components/general/Tooltip.vue similarity index 96% rename from src/components/general/Tooltip.vue rename to dpp-frontend/src/components/general/Tooltip.vue index 9ce2bed78..7e809604e 100644 --- a/src/components/general/Tooltip.vue +++ b/dpp-frontend/src/components/general/Tooltip.vue @@ -1,34 +1,34 @@ - - - - - + + + + + diff --git a/src/components/passport/AttributeField.vue b/dpp-frontend/src/components/passport/AttributeField.vue similarity index 97% rename from src/components/passport/AttributeField.vue rename to dpp-frontend/src/components/passport/AttributeField.vue index f16270d43..a9f41870e 100644 --- a/src/components/passport/AttributeField.vue +++ b/dpp-frontend/src/components/passport/AttributeField.vue @@ -1,77 +1,77 @@ - - - - - + + + + + diff --git a/src/components/passport/BarChart.vue b/dpp-frontend/src/components/passport/BarChart.vue similarity index 96% rename from src/components/passport/BarChart.vue rename to dpp-frontend/src/components/passport/BarChart.vue index 09d3eb0e4..82d09b52e 100644 --- a/src/components/passport/BarChart.vue +++ b/dpp-frontend/src/components/passport/BarChart.vue @@ -1,68 +1,68 @@ - - - - - - - - + + + + + + + + diff --git a/src/components/passport/BatteryCards.vue b/dpp-frontend/src/components/passport/BatteryCards.vue similarity index 96% rename from src/components/passport/BatteryCards.vue rename to dpp-frontend/src/components/passport/BatteryCards.vue index 3eca82688..ae65a3376 100644 --- a/src/components/passport/BatteryCards.vue +++ b/dpp-frontend/src/components/passport/BatteryCards.vue @@ -1,267 +1,267 @@ - - - - - - + + + + + + diff --git a/src/components/passport/DocumentField.vue b/dpp-frontend/src/components/passport/DocumentField.vue similarity index 96% rename from src/components/passport/DocumentField.vue rename to dpp-frontend/src/components/passport/DocumentField.vue index 7ed8f2974..f8f9e5dfd 100644 --- a/src/components/passport/DocumentField.vue +++ b/dpp-frontend/src/components/passport/DocumentField.vue @@ -1,56 +1,56 @@ - - - - - - + + + + + + diff --git a/src/components/passport/ElementChart.vue b/dpp-frontend/src/components/passport/ElementChart.vue similarity index 96% rename from src/components/passport/ElementChart.vue rename to dpp-frontend/src/components/passport/ElementChart.vue index 82ef8d594..f57003768 100644 --- a/src/components/passport/ElementChart.vue +++ b/dpp-frontend/src/components/passport/ElementChart.vue @@ -1,52 +1,52 @@ - - - - - - + + + + + + diff --git a/src/components/passport/Field.vue b/dpp-frontend/src/components/passport/Field.vue similarity index 97% rename from src/components/passport/Field.vue rename to dpp-frontend/src/components/passport/Field.vue index 745ba9d7d..fa9e9e8c0 100644 --- a/src/components/passport/Field.vue +++ b/dpp-frontend/src/components/passport/Field.vue @@ -1,135 +1,135 @@ - - - - - - + + + + + + diff --git a/src/components/passport/GeneralCards.vue b/dpp-frontend/src/components/passport/GeneralCards.vue similarity index 97% rename from src/components/passport/GeneralCards.vue rename to dpp-frontend/src/components/passport/GeneralCards.vue index 6e8ea3dbd..5e7a59a1a 100644 --- a/src/components/passport/GeneralCards.vue +++ b/dpp-frontend/src/components/passport/GeneralCards.vue @@ -1,168 +1,168 @@ - - - - - + + + + + diff --git a/src/components/passport/InstructionsField.vue b/dpp-frontend/src/components/passport/InstructionsField.vue similarity index 96% rename from src/components/passport/InstructionsField.vue rename to dpp-frontend/src/components/passport/InstructionsField.vue index 0ad487d7f..fdd74a34d 100644 --- a/src/components/passport/InstructionsField.vue +++ b/dpp-frontend/src/components/passport/InstructionsField.vue @@ -1,56 +1,56 @@ - - - - - - + + + + + + diff --git a/src/components/passport/PassportHeader.vue b/dpp-frontend/src/components/passport/PassportHeader.vue similarity index 95% rename from src/components/passport/PassportHeader.vue rename to dpp-frontend/src/components/passport/PassportHeader.vue index 5c41e399c..c734bb17a 100644 --- a/src/components/passport/PassportHeader.vue +++ b/dpp-frontend/src/components/passport/PassportHeader.vue @@ -1,95 +1,95 @@ - - - - - - - + + + + + + + diff --git a/src/components/passport/TransmissionCards.vue b/dpp-frontend/src/components/passport/TransmissionCards.vue similarity index 97% rename from src/components/passport/TransmissionCards.vue rename to dpp-frontend/src/components/passport/TransmissionCards.vue index 00a7ee90e..c2e0bcbe5 100644 --- a/src/components/passport/TransmissionCards.vue +++ b/dpp-frontend/src/components/passport/TransmissionCards.vue @@ -1,165 +1,165 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/AdditionalData.vue b/dpp-frontend/src/components/passport/sections/AdditionalData.vue similarity index 96% rename from src/components/passport/sections/AdditionalData.vue rename to dpp-frontend/src/components/passport/sections/AdditionalData.vue index d596d3f0e..0e3aa5a76 100644 --- a/src/components/passport/sections/AdditionalData.vue +++ b/dpp-frontend/src/components/passport/sections/AdditionalData.vue @@ -1,79 +1,79 @@ - - - - - - + + + + + + diff --git a/src/components/passport/sections/BatteryComposition.vue b/dpp-frontend/src/components/passport/sections/BatteryComposition.vue similarity index 96% rename from src/components/passport/sections/BatteryComposition.vue rename to dpp-frontend/src/components/passport/sections/BatteryComposition.vue index 7cc05c25a..131d44fe3 100644 --- a/src/components/passport/sections/BatteryComposition.vue +++ b/dpp-frontend/src/components/passport/sections/BatteryComposition.vue @@ -1,75 +1,75 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/CellChemistry.vue b/dpp-frontend/src/components/passport/sections/CellChemistry.vue similarity index 96% rename from src/components/passport/sections/CellChemistry.vue rename to dpp-frontend/src/components/passport/sections/CellChemistry.vue index 0cf454b7f..846dfa1a4 100644 --- a/src/components/passport/sections/CellChemistry.vue +++ b/dpp-frontend/src/components/passport/sections/CellChemistry.vue @@ -1,244 +1,244 @@ - - - - - - + + + + + + diff --git a/src/components/passport/sections/Characteristics.vue b/dpp-frontend/src/components/passport/sections/Characteristics.vue similarity index 97% rename from src/components/passport/sections/Characteristics.vue rename to dpp-frontend/src/components/passport/sections/Characteristics.vue index 7298679c4..934ce5cc6 100644 --- a/src/components/passport/sections/Characteristics.vue +++ b/dpp-frontend/src/components/passport/sections/Characteristics.vue @@ -1,142 +1,142 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Commercial.vue b/dpp-frontend/src/components/passport/sections/Commercial.vue similarity index 96% rename from src/components/passport/sections/Commercial.vue rename to dpp-frontend/src/components/passport/sections/Commercial.vue index d028ddf2f..d5c883527 100644 --- a/src/components/passport/sections/Commercial.vue +++ b/dpp-frontend/src/components/passport/sections/Commercial.vue @@ -1,66 +1,66 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Components.vue b/dpp-frontend/src/components/passport/sections/Components.vue similarity index 96% rename from src/components/passport/sections/Components.vue rename to dpp-frontend/src/components/passport/sections/Components.vue index 9e5400b2f..4b74b3381 100644 --- a/src/components/passport/sections/Components.vue +++ b/dpp-frontend/src/components/passport/sections/Components.vue @@ -1,140 +1,140 @@ - - - - - - + + + + + + diff --git a/src/components/passport/sections/Documents.vue b/dpp-frontend/src/components/passport/sections/Documents.vue similarity index 96% rename from src/components/passport/sections/Documents.vue rename to dpp-frontend/src/components/passport/sections/Documents.vue index 690f9db98..f93aff74c 100644 --- a/src/components/passport/sections/Documents.vue +++ b/dpp-frontend/src/components/passport/sections/Documents.vue @@ -1,104 +1,104 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/ElectrochemicalProperties.vue b/dpp-frontend/src/components/passport/sections/ElectrochemicalProperties.vue similarity index 97% rename from src/components/passport/sections/ElectrochemicalProperties.vue rename to dpp-frontend/src/components/passport/sections/ElectrochemicalProperties.vue index 7f5c25fb8..17a4999d1 100644 --- a/src/components/passport/sections/ElectrochemicalProperties.vue +++ b/dpp-frontend/src/components/passport/sections/ElectrochemicalProperties.vue @@ -1,229 +1,229 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Exchange.vue b/dpp-frontend/src/components/passport/sections/Exchange.vue similarity index 97% rename from src/components/passport/sections/Exchange.vue rename to dpp-frontend/src/components/passport/sections/Exchange.vue index 071cbd270..39b573fed 100644 --- a/src/components/passport/sections/Exchange.vue +++ b/dpp-frontend/src/components/passport/sections/Exchange.vue @@ -1,362 +1,362 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/GeneralInformation.vue b/dpp-frontend/src/components/passport/sections/GeneralInformation.vue similarity index 97% rename from src/components/passport/sections/GeneralInformation.vue rename to dpp-frontend/src/components/passport/sections/GeneralInformation.vue index d608f4711..b8d8bcf0b 100644 --- a/src/components/passport/sections/GeneralInformation.vue +++ b/dpp-frontend/src/components/passport/sections/GeneralInformation.vue @@ -1,283 +1,283 @@ - - - - - - + + + + + + diff --git a/src/components/passport/sections/Handling.vue b/dpp-frontend/src/components/passport/sections/Handling.vue similarity index 97% rename from src/components/passport/sections/Handling.vue rename to dpp-frontend/src/components/passport/sections/Handling.vue index ca6aa0c25..7ea5cdcc0 100644 --- a/src/components/passport/sections/Handling.vue +++ b/dpp-frontend/src/components/passport/sections/Handling.vue @@ -1,155 +1,155 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Identification.vue b/dpp-frontend/src/components/passport/sections/Identification.vue similarity index 96% rename from src/components/passport/sections/Identification.vue rename to dpp-frontend/src/components/passport/sections/Identification.vue index e079a2fd4..641c0fa69 100644 --- a/src/components/passport/sections/Identification.vue +++ b/dpp-frontend/src/components/passport/sections/Identification.vue @@ -1,117 +1,117 @@ - - - - + + + + diff --git a/src/components/passport/sections/Instructions.vue b/dpp-frontend/src/components/passport/sections/Instructions.vue similarity index 97% rename from src/components/passport/sections/Instructions.vue rename to dpp-frontend/src/components/passport/sections/Instructions.vue index 10075db80..d71fc572c 100644 --- a/src/components/passport/sections/Instructions.vue +++ b/dpp-frontend/src/components/passport/sections/Instructions.vue @@ -1,87 +1,87 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Metadata.vue b/dpp-frontend/src/components/passport/sections/Metadata.vue similarity index 96% rename from src/components/passport/sections/Metadata.vue rename to dpp-frontend/src/components/passport/sections/Metadata.vue index 90c778ad0..ee470627f 100644 --- a/src/components/passport/sections/Metadata.vue +++ b/dpp-frontend/src/components/passport/sections/Metadata.vue @@ -1,102 +1,102 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Operation.vue b/dpp-frontend/src/components/passport/sections/Operation.vue similarity index 96% rename from src/components/passport/sections/Operation.vue rename to dpp-frontend/src/components/passport/sections/Operation.vue index fe03c3399..36fb03ef7 100644 --- a/src/components/passport/sections/Operation.vue +++ b/dpp-frontend/src/components/passport/sections/Operation.vue @@ -1,101 +1,101 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/ProductSpecificParameters.vue b/dpp-frontend/src/components/passport/sections/ProductSpecificParameters.vue similarity index 97% rename from src/components/passport/sections/ProductSpecificParameters.vue rename to dpp-frontend/src/components/passport/sections/ProductSpecificParameters.vue index 8b29c66ab..0f7ec253b 100644 --- a/src/components/passport/sections/ProductSpecificParameters.vue +++ b/dpp-frontend/src/components/passport/sections/ProductSpecificParameters.vue @@ -1,158 +1,158 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Serialization.vue b/dpp-frontend/src/components/passport/sections/Serialization.vue similarity index 96% rename from src/components/passport/sections/Serialization.vue rename to dpp-frontend/src/components/passport/sections/Serialization.vue index e68eff52f..d799c43d6 100644 --- a/src/components/passport/sections/Serialization.vue +++ b/dpp-frontend/src/components/passport/sections/Serialization.vue @@ -1,98 +1,98 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Sources.vue b/dpp-frontend/src/components/passport/sections/Sources.vue similarity index 96% rename from src/components/passport/sections/Sources.vue rename to dpp-frontend/src/components/passport/sections/Sources.vue index 6c275da5a..f98957749 100644 --- a/src/components/passport/sections/Sources.vue +++ b/dpp-frontend/src/components/passport/sections/Sources.vue @@ -1,72 +1,72 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/SparePartSupplier.vue b/dpp-frontend/src/components/passport/sections/SparePartSupplier.vue similarity index 96% rename from src/components/passport/sections/SparePartSupplier.vue rename to dpp-frontend/src/components/passport/sections/SparePartSupplier.vue index fb31a8a5f..f08718be3 100644 --- a/src/components/passport/sections/SparePartSupplier.vue +++ b/dpp-frontend/src/components/passport/sections/SparePartSupplier.vue @@ -1,81 +1,81 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/StateOfBattery.vue b/dpp-frontend/src/components/passport/sections/StateOfBattery.vue similarity index 96% rename from src/components/passport/sections/StateOfBattery.vue rename to dpp-frontend/src/components/passport/sections/StateOfBattery.vue index 796cf845e..bf1c6d863 100644 --- a/src/components/passport/sections/StateOfBattery.vue +++ b/dpp-frontend/src/components/passport/sections/StateOfBattery.vue @@ -1,131 +1,131 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/StateOfHealth.vue b/dpp-frontend/src/components/passport/sections/StateOfHealth.vue similarity index 96% rename from src/components/passport/sections/StateOfHealth.vue rename to dpp-frontend/src/components/passport/sections/StateOfHealth.vue index 85b9220e4..40c56f2a6 100644 --- a/src/components/passport/sections/StateOfHealth.vue +++ b/dpp-frontend/src/components/passport/sections/StateOfHealth.vue @@ -1,97 +1,97 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Sustainability.vue b/dpp-frontend/src/components/passport/sections/Sustainability.vue similarity index 97% rename from src/components/passport/sections/Sustainability.vue rename to dpp-frontend/src/components/passport/sections/Sustainability.vue index 1541e0124..51c464453 100644 --- a/src/components/passport/sections/Sustainability.vue +++ b/dpp-frontend/src/components/passport/sections/Sustainability.vue @@ -1,244 +1,244 @@ - - - - - + + + + + diff --git a/src/components/passport/sections/Typology.vue b/dpp-frontend/src/components/passport/sections/Typology.vue similarity index 96% rename from src/components/passport/sections/Typology.vue rename to dpp-frontend/src/components/passport/sections/Typology.vue index 328cad862..9c9757b88 100644 --- a/src/components/passport/sections/Typology.vue +++ b/dpp-frontend/src/components/passport/sections/Typology.vue @@ -1,87 +1,87 @@ - - - - - + + + + + diff --git a/src/config/templates/batteryGraph.json b/dpp-frontend/src/config/templates/batteryGraph.json similarity index 94% rename from src/config/templates/batteryGraph.json rename to dpp-frontend/src/config/templates/batteryGraph.json index d7fab1896..73a2fb300 100644 --- a/src/config/templates/batteryGraph.json +++ b/dpp-frontend/src/config/templates/batteryGraph.json @@ -1,50 +1,50 @@ -{ - "title": "NCA", - "composition": [ - { - "title": "Composition of Andode", - "composition": [ - { - "label": "SiO2-C", - "value": 50, - "unit": "%" - }, - { - "label": "Styren butadien", - "value": 50, - "unit": "%" - } - ] - }, - { - "title": "Composition of Cathode", - "composition": [ - { - "label": "Lithium", - "value": 20, - "unit": "%" - }, - { - "label": "Nickel", - "value": 20, - "unit": "%" - }, - { - "label": "Cobalt", - "value": 20, - "unit": "%" - }, - { - "label": "Aluminium", - "value": 30, - "unit": "%" - }, - { - "label": "Carbon black", - "value": 10, - "unit": "%" - } - ] - } - ] -} +{ + "title": "NCA", + "composition": [ + { + "title": "Composition of Andode", + "composition": [ + { + "label": "SiO2-C", + "value": 50, + "unit": "%" + }, + { + "label": "Styren butadien", + "value": 50, + "unit": "%" + } + ] + }, + { + "title": "Composition of Cathode", + "composition": [ + { + "label": "Lithium", + "value": 20, + "unit": "%" + }, + { + "label": "Nickel", + "value": 20, + "unit": "%" + }, + { + "label": "Cobalt", + "value": 20, + "unit": "%" + }, + { + "label": "Aluminium", + "value": 30, + "unit": "%" + }, + { + "label": "Carbon black", + "value": 10, + "unit": "%" + } + ] + } + ] +} diff --git a/src/config/templates/iconMappings.json b/dpp-frontend/src/config/templates/iconMappings.json similarity index 97% rename from src/config/templates/iconMappings.json rename to dpp-frontend/src/config/templates/iconMappings.json index 0baf709f7..ce3a46975 100644 --- a/src/config/templates/iconMappings.json +++ b/dpp-frontend/src/config/templates/iconMappings.json @@ -1,34 +1,34 @@ -{ - "info": "mdi-icon", - "type": "mdi-battery", - "max": "mdi-label", - "usage": "mdi-history", - "label": "mdi-label", - "serialization": "mdi-serial-port", - "metadata": "mdi-data-matrix", - "characteristics": "mdi-nature", - "commercial": "mdi-shopping-outline", - "identification": "mdi-information-outline", - "sources": "mdi-source-branch", - "handling": "mdi-card-account-details-outline", - "operation": "mdi-handshake-outline", - "information": "mdi-information-outline", - "product": "mdi-watermark", - "composition": "mdi-pencil-ruler", - "cell": "mdi-table-split-cell", - "electrochemical": "mdi-electron-framework", - "data": "mdi-data-matrix", - "chemistry": "mdi-react", - "exchange": "mdi-file-swap-outline", - "general": "mdi-pound", - "health": "mdi-battery-plus", - "sustainability": "mdi-leaf", - "performance": "mdi-chart-timeline-variant-shimmer", - "weight": "mdi-weight", - "diameter": "mdi-diameter-outline", - "torque": "mdi-cog-outline", - "gear": "mdi-cog-outline", - "power": "mdi-cog-outline", - "drive": "mdi-car", - "oil": "mdi-oil" +{ + "info": "mdi-icon", + "type": "mdi-battery", + "max": "mdi-label", + "usage": "mdi-history", + "label": "mdi-label", + "serialization": "mdi-serial-port", + "metadata": "mdi-data-matrix", + "characteristics": "mdi-nature", + "commercial": "mdi-shopping-outline", + "identification": "mdi-information-outline", + "sources": "mdi-source-branch", + "handling": "mdi-card-account-details-outline", + "operation": "mdi-handshake-outline", + "information": "mdi-information-outline", + "product": "mdi-watermark", + "composition": "mdi-pencil-ruler", + "cell": "mdi-table-split-cell", + "electrochemical": "mdi-electron-framework", + "data": "mdi-data-matrix", + "chemistry": "mdi-react", + "exchange": "mdi-file-swap-outline", + "general": "mdi-pound", + "health": "mdi-battery-plus", + "sustainability": "mdi-leaf", + "performance": "mdi-chart-timeline-variant-shimmer", + "weight": "mdi-weight", + "diameter": "mdi-diameter-outline", + "torque": "mdi-cog-outline", + "gear": "mdi-cog-outline", + "power": "mdi-cog-outline", + "drive": "mdi-car", + "oil": "mdi-oil" } \ No newline at end of file diff --git a/src/config/templates/metadata.json b/dpp-frontend/src/config/templates/metadata.json similarity index 100% rename from src/config/templates/metadata.json rename to dpp-frontend/src/config/templates/metadata.json diff --git a/src/config/templates/passports.json b/dpp-frontend/src/config/templates/passports.json similarity index 95% rename from src/config/templates/passports.json rename to dpp-frontend/src/config/templates/passports.json index fe197c636..d8e1949fb 100644 --- a/src/config/templates/passports.json +++ b/dpp-frontend/src/config/templates/passports.json @@ -1,673 +1,673 @@ -{ - "urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport": { - "typology": { - "shortName": null, - "class": { - "definition": null, - "code": null - }, - "longName": null - }, - "metadata": { - "predecessor": null, - "issueDate": null, - "version": null, - "economicOperator": { - "legitimization": null, - "identification": null - }, - "status": null, - "expirationDate": null - }, - "characteristics": { - "physicalDimension": { - "grossWeight": { - "value": null, - "unit": null - }, - "weightOrVolume": { - "left": { - "value": null, - "unit": null - } - }, - "diameter": { - "value": null, - "unit": null - }, - "grossVolume": { - "value": null, - "unit": null - }, - "width": { - "value": null, - "unit": null - }, - "length": { - "value": null, - "unit": null - }, - "height": { - "value": null, - "unit": null - } - }, - "lifespan": [ - { - "value": null, - "unit": null, - "key": null - } - ], - "physicalState": null - }, - "commercial": { - "placedOnMarket": null - }, - "identification": { - "localIdentifier": { - "value": null, - "key": null - }, - "additionalCode": [ - { - "value": null, - "key": null - } - ], - "dataCarrier": { - "carrierType": null, - "carrierLayout": null - } - }, - "sources": [], - "handling": { - "spareParts": { - "left": { - "producer": [ - { - "id": null - } - ], - "part": [ - { - "name": null, - "gtin": null - } - ] - } - }, - "substanceOfConcern": { - "left": [ - { - "name": { - "name": null, - "type": null - }, - "location": null, - "unit": null, - "concentration": { - "left": [ - { - "max": null, - "min": null - } - ] - }, - "exemption": null, - "id": [ - { - "type": null, - "id": null - } - ] - } - ] - } - }, - "additionalData": [], - "sustainability": { - "PEF": { - "carbon": [ - { - "lifecycle": null, - "rulebook": null, - "unit": null, - "type": null, - "value": null - } - ], - "carbon2": { - "lifecycle": null, - "rulebook": null, - "unit": null, - "type": null, - "value": null - }, - "environmental": [ - { - "lifecycle": null, - "rulebook": null, - "unit": null, - "type": null, - "value": null - } - ] - }, - "state": null, - "material": { - "left": [ - { - "name": { - "name": null, - "type": null - }, - "unit": null, - "recycled": null, - "id": [ - { - "type": null, - "id": null - } - ], - "value": null, - "renewable": null - } - ] - }, - "critical": { - "left": [ - null - ] - } - }, - "operation": { - "importer": { - "left": { - "eori": null, - "id": null - } - }, - "manufacturer": { - "facility": null, - "manufacturingDate": null, - "manufacturer": null - } - } - }, - "urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass": { - "productSpecificParameters": { - "torqueConverter": null, - "driveType": null, - "oilType": null, - "spreading": null, - "torque": null, - "power": null, - "standardGearRatio": { - "gear": null, - "ratio": null - }, - "oilCapacity": null, - "electricPerformance": null, - "speedResistance": { - "speed": null, - "gear": null - } - }, - "instructions": { - "packagingInstructions": [ - { - "documentTitle": null, - "documentLink": null - } - ], - "transportationInstructions": [ - { - "documentTitle": null, - "documentLink": null - } - ], - "dismantlingProcedure": [ - { - "documentTitle": null, - "documentLink": null - } - ], - "safetyMeasures": [ - { - "documentTitle": null, - "documentLink": null - } - ], - "vehicleDismantlingProcedure": [ - { - "documentTitle": null, - "documentLink": null - } - ] - }, - "identification": { - "manufacturerId": null, - "localIdentifiers": [ - { - "value": null, - "key": null - } - ], - "dataMatrixCode": null - }, - "sparePartSupplier": [ - { - "supplierContact": { - "faxNumber": null, - "website": null, - "phoneNumber": null, - "email": null - }, - "supplierId": null, - "sparePartName": null - } - ], - "stateOfHealth": { - "serviceHistory": null, - "expectedLifespan": null, - "remanufacturing": { - "remanufacturingDate": null, - "productStatusValue": null - } - }, - "generalInformation": { - "additionalInformation": null, - "physicalDimensionsProperty": { - "width": null, - "length": null, - "weight": null, - "diameter": null, - "height": null - }, - "warrantyPeriod": null, - "productDescription": null, - "productType": null - }, - "sustainability": { - "substancesOfConcern": null, - "responsibleSourcingDocument": [ - { - "documentTitle": null, - "documentLink": null - } - ], - "recyclateContent": { - "nickel": null, - "lithium": null, - "cobalt": null, - "otherSubstance": [ - { - "substancePercentage": null, - "substanceName": null - } - ] - }, - "criticalRawMaterials": null, - "carbonFootprint": { - "crossSectoralStandardsUsed": [ - { - "crossSectoralStandard": null - } - ], - "co2FootprintTotal": null, - "productOrSectorSpecificRules": [ - { - "operator": null, - "ruleNames": null, - "otherOperatorName": null - } - ] - } - } - }, - "urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass": { - "electrochemicalProperties": { - "ratedCapacity": null, - "batteryEnergy": { - "energyRoundtripEfficiencyChange": null, - "maximumAllowedBatteryEnergy": null, - "energyRoundtripEfficiency": null - }, - "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy": null, - "batteryVoltage": { - "nominalVoltage": null, - "maxVoltage": null, - "minVoltage": null - }, - "internalResistance": { - "cellInternalResistance": null, - "packInternalResistanceIncrease": null, - "packInternalResistance": null - }, - "capacityThresholdExhaustion": null, - "batteryPower": { - "powerFade": null, - "originalPowerCapability": null, - "originalPowerCapabilityLimits": null, - "maximumAllowedBatteryPower": null, - "powerCapabilityAt20Charge": null, - "powerCapabilityAt80Charge": null - }, - "capacityFade": null - }, - "document": { - "responsibleSourcing": [ - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - } - ], - "packagingInstructions": [ - { - "title": null, - "fileLocation": null - } - ], - "transportationInstructions": [ - { - "title": null, - "fileLocation": null - } - ], - "vehicleDismantlingProcedure": [ - { - "title": null, - "fileLocation": null - } - ], - "testReportsResults": [ - { - "title": null, - "fileLocation": null - } - ], - "batteryDismantlingProcedure": [ - { - "title": null, - "fileLocation": null - } - ], - "safetyMeasures": [ - { - "title": null, - "fileLocation": null - } - ], - "declarationOfConformity": [ - { - "title": null, - "fileLocation": null - } - ] - }, - "datePlacedOnMarket": null, - "cellChemistry": { - "electrolyteComposition": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "anodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "recyclateContentActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "anodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "cathodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "cathodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ] - }, - "physicalDimensions": { - "length": null, - "width": null, - "weight": null, - "diameter": null, - "height": null - }, - "temperatureRangeIdleState": { - "temperatureRangeIdleStateUpperLimit": null, - "temperatureRangeIdleStateLowerLimit": null - }, - "batteryCycleLife": { - "cycleLifeTestCRate": null, - "cycleLifeTestDepthOfDischarge": null, - "expectedLifetime": null - }, - "manufacturer": { - "name": null, - "contact": { - "faxNumber": null, - "website": null, - "phoneNumber": null, - "email": null - }, - "address": { - "locality": { - "value": null, - "technicalKey": null - }, - "country": { - "shortName": null - }, - "postCode": { - "value": null, - "technicalKey": null - }, - "thoroughfare": { - "value": null, - "number": null, - "technicalKey": null - }, - "premise": { - "value": null, - "technicalKey": null - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": null - } - } - }, - "warrantyPeriod": null, - "composition": { - "compositionOfBattery": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "criticalRawMaterials": null, - "components": { - "componentsPartNumber": [ - null - ], - "componentsSupplier": [ - { - "componentsSupplierName": null, - "address": { - "locality": { - "value": null, - "technicalKey": null - }, - "country": { - "shortName": null - }, - "postCode": { - "value": null, - "technicalKey": null - }, - "thoroughfare": { - "value": null, - "number": null, - "technicalKey": null - }, - "premise": { - "value": null, - "technicalKey": null - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": null - } - }, - "contact": { - "faxNumber": null, - "website": null, - "phoneNumber": null, - "email": null - } - } - ] - } - }, - "manufacturing": { - "dateOfManufacturing": null, - "address": { - "locality": { - "value": null, - "technicalKey": null - }, - "country": { - "shortName": null - }, - "postCode": { - "value": null, - "technicalKey": null - }, - "thoroughfare": { - "value": null, - "number": null, - "technicalKey": null - }, - "premise": { - "value": null, - "technicalKey": null - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": null - } - } - }, - "batteryIdentification": { - "batteryType": null, - "batteryIDDMCCode": null, - "batteryModel": null - }, - "stateOfBattery": { - "stateOfHealth": null, - "statusBattery": null, - "stateOfCharge": null - }, - "cO2FootprintTotal": null - } +{ + "urn:samm:io.catenax.generic.digital_product_passport:2.0.0#DigitalProductPassport": { + "typology": { + "shortName": null, + "class": { + "definition": null, + "code": null + }, + "longName": null + }, + "metadata": { + "predecessor": null, + "issueDate": null, + "version": null, + "economicOperator": { + "legitimization": null, + "identification": null + }, + "status": null, + "expirationDate": null + }, + "characteristics": { + "physicalDimension": { + "grossWeight": { + "value": null, + "unit": null + }, + "weightOrVolume": { + "left": { + "value": null, + "unit": null + } + }, + "diameter": { + "value": null, + "unit": null + }, + "grossVolume": { + "value": null, + "unit": null + }, + "width": { + "value": null, + "unit": null + }, + "length": { + "value": null, + "unit": null + }, + "height": { + "value": null, + "unit": null + } + }, + "lifespan": [ + { + "value": null, + "unit": null, + "key": null + } + ], + "physicalState": null + }, + "commercial": { + "placedOnMarket": null + }, + "identification": { + "localIdentifier": { + "value": null, + "key": null + }, + "additionalCode": [ + { + "value": null, + "key": null + } + ], + "dataCarrier": { + "carrierType": null, + "carrierLayout": null + } + }, + "sources": [], + "handling": { + "spareParts": { + "left": { + "producer": [ + { + "id": null + } + ], + "part": [ + { + "name": null, + "gtin": null + } + ] + } + }, + "substanceOfConcern": { + "left": [ + { + "name": { + "name": null, + "type": null + }, + "location": null, + "unit": null, + "concentration": { + "left": [ + { + "max": null, + "min": null + } + ] + }, + "exemption": null, + "id": [ + { + "type": null, + "id": null + } + ] + } + ] + } + }, + "additionalData": [], + "sustainability": { + "PEF": { + "carbon": [ + { + "lifecycle": null, + "rulebook": null, + "unit": null, + "type": null, + "value": null + } + ], + "carbon2": { + "lifecycle": null, + "rulebook": null, + "unit": null, + "type": null, + "value": null + }, + "environmental": [ + { + "lifecycle": null, + "rulebook": null, + "unit": null, + "type": null, + "value": null + } + ] + }, + "state": null, + "material": { + "left": [ + { + "name": { + "name": null, + "type": null + }, + "unit": null, + "recycled": null, + "id": [ + { + "type": null, + "id": null + } + ], + "value": null, + "renewable": null + } + ] + }, + "critical": { + "left": [ + null + ] + } + }, + "operation": { + "importer": { + "left": { + "eori": null, + "id": null + } + }, + "manufacturer": { + "facility": null, + "manufacturingDate": null, + "manufacturer": null + } + } + }, + "urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass": { + "productSpecificParameters": { + "torqueConverter": null, + "driveType": null, + "oilType": null, + "spreading": null, + "torque": null, + "power": null, + "standardGearRatio": { + "gear": null, + "ratio": null + }, + "oilCapacity": null, + "electricPerformance": null, + "speedResistance": { + "speed": null, + "gear": null + } + }, + "instructions": { + "packagingInstructions": [ + { + "documentTitle": null, + "documentLink": null + } + ], + "transportationInstructions": [ + { + "documentTitle": null, + "documentLink": null + } + ], + "dismantlingProcedure": [ + { + "documentTitle": null, + "documentLink": null + } + ], + "safetyMeasures": [ + { + "documentTitle": null, + "documentLink": null + } + ], + "vehicleDismantlingProcedure": [ + { + "documentTitle": null, + "documentLink": null + } + ] + }, + "identification": { + "manufacturerId": null, + "localIdentifiers": [ + { + "value": null, + "key": null + } + ], + "dataMatrixCode": null + }, + "sparePartSupplier": [ + { + "supplierContact": { + "faxNumber": null, + "website": null, + "phoneNumber": null, + "email": null + }, + "supplierId": null, + "sparePartName": null + } + ], + "stateOfHealth": { + "serviceHistory": null, + "expectedLifespan": null, + "remanufacturing": { + "remanufacturingDate": null, + "productStatusValue": null + } + }, + "generalInformation": { + "additionalInformation": null, + "physicalDimensionsProperty": { + "width": null, + "length": null, + "weight": null, + "diameter": null, + "height": null + }, + "warrantyPeriod": null, + "productDescription": null, + "productType": null + }, + "sustainability": { + "substancesOfConcern": null, + "responsibleSourcingDocument": [ + { + "documentTitle": null, + "documentLink": null + } + ], + "recyclateContent": { + "nickel": null, + "lithium": null, + "cobalt": null, + "otherSubstance": [ + { + "substancePercentage": null, + "substanceName": null + } + ] + }, + "criticalRawMaterials": null, + "carbonFootprint": { + "crossSectoralStandardsUsed": [ + { + "crossSectoralStandard": null + } + ], + "co2FootprintTotal": null, + "productOrSectorSpecificRules": [ + { + "operator": null, + "ruleNames": null, + "otherOperatorName": null + } + ] + } + } + }, + "urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass": { + "electrochemicalProperties": { + "ratedCapacity": null, + "batteryEnergy": { + "energyRoundtripEfficiencyChange": null, + "maximumAllowedBatteryEnergy": null, + "energyRoundtripEfficiency": null + }, + "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy": null, + "batteryVoltage": { + "nominalVoltage": null, + "maxVoltage": null, + "minVoltage": null + }, + "internalResistance": { + "cellInternalResistance": null, + "packInternalResistanceIncrease": null, + "packInternalResistance": null + }, + "capacityThresholdExhaustion": null, + "batteryPower": { + "powerFade": null, + "originalPowerCapability": null, + "originalPowerCapabilityLimits": null, + "maximumAllowedBatteryPower": null, + "powerCapabilityAt20Charge": null, + "powerCapabilityAt80Charge": null + }, + "capacityFade": null + }, + "document": { + "responsibleSourcing": [ + { + "title": null, + "fileLocation": null + }, + { + "title": null, + "fileLocation": null + }, + { + "title": null, + "fileLocation": null + }, + { + "title": null, + "fileLocation": null + }, + { + "title": null, + "fileLocation": null + }, + { + "title": null, + "fileLocation": null + }, + { + "title": null, + "fileLocation": null + } + ], + "packagingInstructions": [ + { + "title": null, + "fileLocation": null + } + ], + "transportationInstructions": [ + { + "title": null, + "fileLocation": null + } + ], + "vehicleDismantlingProcedure": [ + { + "title": null, + "fileLocation": null + } + ], + "testReportsResults": [ + { + "title": null, + "fileLocation": null + } + ], + "batteryDismantlingProcedure": [ + { + "title": null, + "fileLocation": null + } + ], + "safetyMeasures": [ + { + "title": null, + "fileLocation": null + } + ], + "declarationOfConformity": [ + { + "title": null, + "fileLocation": null + } + ] + }, + "datePlacedOnMarket": null, + "cellChemistry": { + "electrolyteComposition": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ], + "anodeCompositionOther": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ], + "recyclateContentActiveMaterials": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ], + "anodeActiveMaterials": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ], + "cathodeActiveMaterials": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ], + "cathodeCompositionOther": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ] + }, + "physicalDimensions": { + "length": null, + "width": null, + "weight": null, + "diameter": null, + "height": null + }, + "temperatureRangeIdleState": { + "temperatureRangeIdleStateUpperLimit": null, + "temperatureRangeIdleStateLowerLimit": null + }, + "batteryCycleLife": { + "cycleLifeTestCRate": null, + "cycleLifeTestDepthOfDischarge": null, + "expectedLifetime": null + }, + "manufacturer": { + "name": null, + "contact": { + "faxNumber": null, + "website": null, + "phoneNumber": null, + "email": null + }, + "address": { + "locality": { + "value": null, + "technicalKey": null + }, + "country": { + "shortName": null + }, + "postCode": { + "value": null, + "technicalKey": null + }, + "thoroughfare": { + "value": null, + "number": null, + "technicalKey": null + }, + "premise": { + "value": null, + "technicalKey": null + }, + "postalDeliveryPoint": { + "value": null, + "technicalKey": null + } + } + }, + "warrantyPeriod": null, + "composition": { + "compositionOfBattery": [ + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + }, + { + "materialPercentageMassFraction": null, + "materialName": null, + "materialWeight": null + } + ], + "criticalRawMaterials": null, + "components": { + "componentsPartNumber": [ + null + ], + "componentsSupplier": [ + { + "componentsSupplierName": null, + "address": { + "locality": { + "value": null, + "technicalKey": null + }, + "country": { + "shortName": null + }, + "postCode": { + "value": null, + "technicalKey": null + }, + "thoroughfare": { + "value": null, + "number": null, + "technicalKey": null + }, + "premise": { + "value": null, + "technicalKey": null + }, + "postalDeliveryPoint": { + "value": null, + "technicalKey": null + } + }, + "contact": { + "faxNumber": null, + "website": null, + "phoneNumber": null, + "email": null + } + } + ] + } + }, + "manufacturing": { + "dateOfManufacturing": null, + "address": { + "locality": { + "value": null, + "technicalKey": null + }, + "country": { + "shortName": null + }, + "postCode": { + "value": null, + "technicalKey": null + }, + "thoroughfare": { + "value": null, + "number": null, + "technicalKey": null + }, + "premise": { + "value": null, + "technicalKey": null + }, + "postalDeliveryPoint": { + "value": null, + "technicalKey": null + } + } + }, + "batteryIdentification": { + "batteryType": null, + "batteryIDDMCCode": null, + "batteryModel": null + }, + "stateOfBattery": { + "stateOfHealth": null, + "statusBattery": null, + "stateOfCharge": null + }, + "cO2FootprintTotal": null + } } \ No newline at end of file diff --git a/src/main.js b/dpp-frontend/src/main.js similarity index 100% rename from src/main.js rename to dpp-frontend/src/main.js diff --git a/src/media/404.svg b/dpp-frontend/src/media/404.svg similarity index 100% rename from src/media/404.svg rename to dpp-frontend/src/media/404.svg diff --git a/src/media/500error.png b/dpp-frontend/src/media/500error.png similarity index 100% rename from src/media/500error.png rename to dpp-frontend/src/media/500error.png diff --git a/src/media/Battery00.svg b/dpp-frontend/src/media/Battery00.svg similarity index 100% rename from src/media/Battery00.svg rename to dpp-frontend/src/media/Battery00.svg diff --git a/src/media/BatteryCd.svg b/dpp-frontend/src/media/BatteryCd.svg similarity index 100% rename from src/media/BatteryCd.svg rename to dpp-frontend/src/media/BatteryCd.svg diff --git a/src/media/BatteryCompBG.svg b/dpp-frontend/src/media/BatteryCompBG.svg similarity index 100% rename from src/media/BatteryCompBG.svg rename to dpp-frontend/src/media/BatteryCompBG.svg diff --git a/src/media/BatteryHg.svg b/dpp-frontend/src/media/BatteryHg.svg similarity index 100% rename from src/media/BatteryHg.svg rename to dpp-frontend/src/media/BatteryHg.svg diff --git a/src/media/BatteryPb.svg b/dpp-frontend/src/media/BatteryPb.svg similarity index 100% rename from src/media/BatteryPb.svg rename to dpp-frontend/src/media/BatteryPb.svg diff --git a/src/media/Catena-X_Logo_mit_Zusatz_2021.svg b/dpp-frontend/src/media/Catena-X_Logo_mit_Zusatz_2021.svg similarity index 100% rename from src/media/Catena-X_Logo_mit_Zusatz_2021.svg rename to dpp-frontend/src/media/Catena-X_Logo_mit_Zusatz_2021.svg diff --git a/src/media/Home.png b/dpp-frontend/src/media/Home.png similarity index 100% rename from src/media/Home.png rename to dpp-frontend/src/media/Home.png diff --git a/src/media/backgroundart.jpg b/dpp-frontend/src/media/backgroundart.jpg similarity index 100% rename from src/media/backgroundart.jpg rename to dpp-frontend/src/media/backgroundart.jpg diff --git a/src/media/battery-img.jpeg b/dpp-frontend/src/media/battery-img.jpeg similarity index 100% rename from src/media/battery-img.jpeg rename to dpp-frontend/src/media/battery-img.jpeg diff --git a/src/media/logotypeDPP.svg b/dpp-frontend/src/media/logotypeDPP.svg similarity index 100% rename from src/media/logotypeDPP.svg rename to dpp-frontend/src/media/logotypeDPP.svg diff --git a/src/media/noCollection.svg b/dpp-frontend/src/media/noCollection.svg similarity index 100% rename from src/media/noCollection.svg rename to dpp-frontend/src/media/noCollection.svg diff --git a/src/media/profile.svg b/dpp-frontend/src/media/profile.svg similarity index 99% rename from src/media/profile.svg rename to dpp-frontend/src/media/profile.svg index 078a80f90..a73d678bf 100644 --- a/src/media/profile.svg +++ b/dpp-frontend/src/media/profile.svg @@ -1,6 +1,6 @@ - - - - - - + + + + + + diff --git a/src/media/tempRange.svg b/dpp-frontend/src/media/tempRange.svg similarity index 100% rename from src/media/tempRange.svg rename to dpp-frontend/src/media/tempRange.svg diff --git a/src/router.js b/dpp-frontend/src/router/index.js similarity index 85% rename from src/router.js rename to dpp-frontend/src/router/index.js index ee0a1f315..4e3c3e167 100644 --- a/src/router.js +++ b/dpp-frontend/src/router/index.js @@ -1,58 +1,57 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import ErrorComponent from './components/general/ErrorComponent.vue'; -import { createRouter, createWebHistory } from "vue-router"; -import HomeView from "./views/HomeView.vue"; - - -const routes = [ - { - path: '/', - name: "Home Page", - component: HomeView, - }, - { - path: "/:catchAll(.*)", - name: "PageNotFound", - component: ErrorComponent, - }, - { - path: "/not-found", - name: "PageNotFound", - component: ErrorComponent, - }, - { - path: "/:id", - name: "PassportView", - component: () => import("./views/PassportView.vue"), - }, -]; - -const router = createRouter({ - history: createWebHistory("/passport"), - routes: routes, - linkActiveClass: "active", -}); - -export default router; +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import ErrorComponent from "@/components/general/ErrorComponent.vue"; +import { createRouter, createWebHistory } from "vue-router"; +import HomeView from "@/views/HomeView.vue"; + +const routes = [ + { + path: "/", + name: "Home Page", + component: HomeView, + }, + { + path: "/:catchAll(.*)", + name: "PageNotFound", + component: ErrorComponent, + }, + { + path: "/not-found", + name: "PageNotFound", + component: ErrorComponent, + }, + { + path: "/:id", + name: "PassportView", + component: () => import("@/views/PassportView.vue"), + }, +]; + +const router = createRouter({ + history: createWebHistory("/passport"), + routes: routes, + linkActiveClass: "active", +}); + +export default router; diff --git a/src/services/Authentication.js b/dpp-frontend/src/services/Authentication.js similarity index 97% rename from src/services/Authentication.js rename to dpp-frontend/src/services/Authentication.js index 2ecaf56fc..88252b018 100644 --- a/src/services/Authentication.js +++ b/dpp-frontend/src/services/Authentication.js @@ -1,189 +1,189 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import { REDIRECT_URI, INIT_OPTIONS, BPN_CHECK, BPN, ROLE_CHECK } from "@/services/service.const"; -import Keycloak from "keycloak-js"; -import authUtil from "@/utils/authUtil"; -import jsonUtil from "@/utils/jsonUtil"; -export default class Authentication { - constructor() { - this.keycloak = new Keycloak(INIT_OPTIONS); - } - isAuthorized(parsedToken) { - if (!BPN_CHECK && !ROLE_CHECK) { - return true; - } - - if (!parsedToken) { - return false; - } - - // Get conditions for authorization - let bpnAuthorized = authUtil.checkBpn(parsedToken, BPN); - let roleAuthorized = this.hasRoles(); - - // Authorize according to configuration - if (BPN_CHECK && ROLE_CHECK && bpnAuthorized && roleAuthorized) { - // In case both a valid everything needs to be true - return true; - } else if (!BPN_CHECK && ROLE_CHECK && roleAuthorized) { - // In case just the role is valid just the role needs to be true - return true; - } else if (BPN_CHECK && !ROLE_CHECK && bpnAuthorized) { - // In case the - return true; - } - - return false; - } - keycloakInit(app) { - var authProperties = app.config.globalProperties.$authProperties; - this.keycloak - .init({ onLoad: INIT_OPTIONS.onLoad }) - .then((auth) => { - if (!auth) { - window.location.reload(); - } else { - // Check if the refresh token is valid and authenticated - if (this.keycloak.tokenParsed) { - authProperties.loginReachable = true; - } - authProperties.isAuthorized = this.isAuthorized(this.keycloak.tokenParsed); - } - - app.config.globalProperties.$authProperties = authProperties; - app.mount("#app"); - //Token Refresh - setInterval(() => { - this.updateToken(60, app); - }, 60000); - }) - .catch((e) => { - console.log(e); - authProperties.loginReachable = false; - authProperties.isAuthorized = false; - app.config.globalProperties.$authProperties = authProperties; - app.mount("#app"); - }); - } - getAccessToken() { - return this.keycloak.token; - } - - getRefreshedToken() { - return this.keycloak.refreshToken; - } - - updateToken(minimumValidity, app) { - this.keycloak - .updateToken(minimumValidity) - .then((refreshed) => { - if (refreshed) { - // Check if the refresh token is valid and authenticated - if (this.keycloak.parsedToken) { - app.config.globalProperties.$authProperties.loginReachable = true; - } else { - app.config.globalProperties.$authProperties.loginReachable = false; - } - app.config.globalProperties.$authProperties.isAuthorized = this.isAuthorized( - this.keycloak.parsedToken - ); - console.info("Token refreshed " + refreshed); - } else { - console.warn( - "Token not refreshed, valid for " + - Math.round( - this.keycloak.tokenParsed.exp + this.keycloak.timeSkew - new Date().getTime() / 1000 - ) + - " seconds" - ); - } - }) - .catch(() => { - console.error("updateToken -> Failed to refresh token"); - }); - } - - isUserAuthenticated() { - return this.keycloak.authenticated; - } - getClientId() { - return this.keycloak.clientId; - } - getUserName() { - return this.keycloak.tokenParsed.email; - } - getName() { - return this.keycloak.tokenParsed.name; - } - getBpn() { - return this.keycloak.tokenParsed.bpn; - } - getSessionId() { - return this.keycloak.sessionId; - } - hasRoles() { - try { - let clientId = this.getClientId(); - if (!clientId || !this.keycloak.resourceAccess) { - return false; - } - - if (!jsonUtil.exists(clientId, this.keycloak.resourceAccess)) { - return false; - } - - let appIdResource = jsonUtil.get(clientId, this.keycloak.resourceAccess, ".", null); - if (appIdResource == null || !jsonUtil.exists("roles", appIdResource)) { - return false; - } - - let roleList = jsonUtil.get("roles", appIdResource, ".", null); - if (roleList == null) { - return false; - } - return roleList.length > 0; - } catch (e) { - return false; - } - } - getRole() { - let clientRoles = ""; - let clientId = this.getClientId(); - if (this.hasRoles()) { - clientRoles = this.keycloak.resourceAccess[clientId].roles; - } - return clientRoles.length == 1 ? clientRoles[0] : clientRoles; - } - logout() { - let logoutOptions = { redirectUri: REDIRECT_URI }; - this.keycloak - .logout(logoutOptions) - .then((success) => { - console.log("--> log: logout success ", success); - }) - .catch((error) => { - console.log("--> log: logout error ", error); - }); - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import { REDIRECT_URI, INIT_OPTIONS, BPN_CHECK, BPN, ROLE_CHECK } from "@/services/service.const"; +import Keycloak from "keycloak-js"; +import authUtil from "@/utils/authUtil"; +import jsonUtil from "@/utils/jsonUtil"; +export default class Authentication { + constructor() { + this.keycloak = new Keycloak(INIT_OPTIONS); + } + isAuthorized(parsedToken) { + if (!BPN_CHECK && !ROLE_CHECK) { + return true; + } + + if (!parsedToken) { + return false; + } + + // Get conditions for authorization + let bpnAuthorized = authUtil.checkBpn(parsedToken, BPN); + let roleAuthorized = this.hasRoles(); + + // Authorize according to configuration + if (BPN_CHECK && ROLE_CHECK && bpnAuthorized && roleAuthorized) { + // In case both a valid everything needs to be true + return true; + } else if (!BPN_CHECK && ROLE_CHECK && roleAuthorized) { + // In case just the role is valid just the role needs to be true + return true; + } else if (BPN_CHECK && !ROLE_CHECK && bpnAuthorized) { + // In case the + return true; + } + + return false; + } + keycloakInit(app) { + var authProperties = app.config.globalProperties.$authProperties; + this.keycloak + .init({ onLoad: INIT_OPTIONS.onLoad }) + .then((auth) => { + if (!auth) { + window.location.reload(); + } else { + // Check if the refresh token is valid and authenticated + if (this.keycloak.tokenParsed) { + authProperties.loginReachable = true; + } + authProperties.isAuthorized = this.isAuthorized(this.keycloak.tokenParsed); + } + + app.config.globalProperties.$authProperties = authProperties; + app.mount("#app"); + //Token Refresh + setInterval(() => { + this.updateToken(60, app); + }, 60000); + }) + .catch((e) => { + console.log(e); + authProperties.loginReachable = false; + authProperties.isAuthorized = false; + app.config.globalProperties.$authProperties = authProperties; + app.mount("#app"); + }); + } + getAccessToken() { + return this.keycloak.token; + } + + getRefreshedToken() { + return this.keycloak.refreshToken; + } + + updateToken(minimumValidity, app) { + this.keycloak + .updateToken(minimumValidity) + .then((refreshed) => { + if (refreshed) { + // Check if the refresh token is valid and authenticated + if (this.keycloak.parsedToken) { + app.config.globalProperties.$authProperties.loginReachable = true; + } else { + app.config.globalProperties.$authProperties.loginReachable = false; + } + app.config.globalProperties.$authProperties.isAuthorized = this.isAuthorized( + this.keycloak.parsedToken + ); + console.info("Token refreshed " + refreshed); + } else { + console.warn( + "Token not refreshed, valid for " + + Math.round( + this.keycloak.tokenParsed.exp + this.keycloak.timeSkew - new Date().getTime() / 1000 + ) + + " seconds" + ); + } + }) + .catch(() => { + console.error("updateToken -> Failed to refresh token"); + }); + } + + isUserAuthenticated() { + return this.keycloak.authenticated; + } + getClientId() { + return this.keycloak.clientId; + } + getUserName() { + return this.keycloak.tokenParsed.email; + } + getName() { + return this.keycloak.tokenParsed.name; + } + getBpn() { + return this.keycloak.tokenParsed.bpn; + } + getSessionId() { + return this.keycloak.sessionId; + } + hasRoles() { + try { + let clientId = this.getClientId(); + if (!clientId || !this.keycloak.resourceAccess) { + return false; + } + + if (!jsonUtil.exists(clientId, this.keycloak.resourceAccess)) { + return false; + } + + let appIdResource = jsonUtil.get(clientId, this.keycloak.resourceAccess, ".", null); + if (appIdResource == null || !jsonUtil.exists("roles", appIdResource)) { + return false; + } + + let roleList = jsonUtil.get("roles", appIdResource, ".", null); + if (roleList == null) { + return false; + } + return roleList.length > 0; + } catch (e) { + return false; + } + } + getRole() { + let clientRoles = ""; + let clientId = this.getClientId(); + if (this.hasRoles()) { + clientRoles = this.keycloak.resourceAccess[clientId].roles; + } + return clientRoles.length == 1 ? clientRoles[0] : clientRoles; + } + logout() { + let logoutOptions = { redirectUri: REDIRECT_URI }; + this.keycloak + .logout(logoutOptions) + .then((success) => { + console.log("--> log: logout success ", success); + }) + .catch((error) => { + console.log("--> log: logout error ", error); + }); + } +} diff --git a/src/services/BackendService.js b/dpp-frontend/src/services/BackendService.js similarity index 97% rename from src/services/BackendService.js rename to dpp-frontend/src/services/BackendService.js index 7fcdccb15..6042e594a 100644 --- a/src/services/BackendService.js +++ b/dpp-frontend/src/services/BackendService.js @@ -1,480 +1,480 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import { BACKEND_URL, API_MAX_RETRIES, API_DELAY, AUTO_SIGN } from "@/services/service.const"; -import axios from "axios"; -import jsonUtil from "@/utils/jsonUtil.js"; -import threadUtil from "../utils/threadUtil"; -import store from "../store/index" -export default class BackendService { - - splitIds(id, sep = ":") { - let ids = id.split(sep); - // Check if id is not empty - if (ids == null || ids.length == 0) { - throw new Error('The Id must not be empty!'); - } - // Check if the syntax is correct and it contains tree parts - if (ids.length != 3) { - throw new Error('The Id must have 3 elements!'); - } - - // Check if the first part contains the catena-x prefix - if (ids[0].toUpperCase() !== "CX") { - throw new Error('Invalid Id prefix!'); - } - - if (ids[1] == undefined || ids[1] == null || ids[1] === "" || ids[2] == undefined || ids[2] == null || ids[2] === "") { - throw new Error('One of the Ids is empty!'); - } - - // Build and separate the different ids - return { - "prefix": ids[0], - "discoveryId": ids[1], - "serializedId": ids[2] - } - } - - async searchAsset(id, authentication) { - let processResponse = null; - // Try to get the negotiation contract - let ids = null; - try { - ids = this.splitIds(id); - } catch (e) { - return this.getErrorMessage( - e.message, - 500, - "Internal Server Error" - ) - } - if (ids == null) { - return this.getErrorMessage( - "Failed to parse the search id!", - 500, - "Internal Server Error" - ) - } - try { - processResponse = await this.createProcess(ids["discoveryId"], authentication); - } catch (e) { - return processResponse; - } - - // Check if the process is successful or if the data is not retrieved - if (!processResponse || (jsonUtil.exists("status", processResponse) && processResponse["status"] != 200) || !jsonUtil.exists("data", processResponse)) { - return processResponse; - } - - let processId = jsonUtil.get("data.processId", processResponse, ".", null); - - store.commit('setProcessId', processId); - - - // Check if the process id is not empty - if (processId == null || processId === "") { - return this.getErrorMessage( - "The contract request was not valid, no process id exists", - 500, - "Internal Server Error" - ) - - } - - let negotiationResponse = null; - - - // Try to get the negotiation contract - try { - negotiationResponse = await this.searchContract(ids["serializedId"], processId, authentication); - } catch (e) { - return negotiationResponse; - } - - - // Check if the negotiation status is successful or if the data is not retrieved - if (!negotiationResponse || (jsonUtil.exists("status", negotiationResponse) && negotiationResponse["status"] != 200) || !jsonUtil.exists("data", negotiationResponse)) { - return negotiationResponse; - } - - // Get negotiation property - return negotiationResponse; - } - async cancelNegotiation(token, processId, contractId, authentication){ - let processStatus = null; - // Use selects here a contract - let negotiation = { - "processId": processId, - "contractId": contractId, - "token": token - } - try { - processStatus = await this.cancelContract(negotiation, authentication); - } catch (e) { - return null; - } - - return processStatus; - } - async declineNegotiation(token, processId, authentication){ - let processStatus = null; - // Use selects here a contract - let negotiation = { - "processId": processId, - "token": token - } - try { - processStatus = await this.declineContract(negotiation, authentication); - } catch (e) { - return null; - } - - return processStatus; - } - async negotiateAsset(contracts, token, processId, authentication, contractId=null, policyId=null){ - let contract = null; - // Use selects here a contract - if(contractId == null){ - contract = contracts[Object.keys(contracts)[0]]; - if(contract == null){ - return this.getErrorMessage( - "The contract selected is incorrect or does not exists!", - 500, - "Internal Server Error" - ) - } - contractId = contract["@id"]; - } - let negotiation = { - "processId": processId, - "contractId": contractId, - "token": token - } - if(!AUTO_SIGN){ - if(contractId == null){ - return this.getErrorMessage( - "At least one contract needs to be selected", - 500, - "Internal Server Error" - ) - } - if(policyId == null){ - return this.getErrorMessage( - "At least one policy needs to be selected", - 500, - "Internal Server Error" - ) - } - negotiation["policyId"] = policyId; - negotiation["contractId"] = contractId; - } - let processStatus = null; - - store.commit('setSearchContractId', contractId); - - // If is not existing we return an error imitating the response - if (!token || !contractId) { - return this.getErrorMessage( - "The contract request was not valid", - 500, - "Internal Server Error" - ) - - } - - // Sign the contract request - try { - processStatus = await this.agreeContract(negotiation, authentication); - } catch (e) { - return processStatus; - } - // Check if the process status is successful or if the data is not retrieved - if (!processStatus || (jsonUtil.exists("status", processStatus) && processStatus["status"] != 200) || !jsonUtil.exists("data", processStatus)) { - return processStatus; - } - - - let status = jsonUtil.get("data.status", processStatus, ".", null); - if (status == "FAILED") { - return this.getErrorMessage( - "The negotiation process has failed", - 500, - "Internal Server Error" - ) - } - - let loopBreakStatus = ["COMPLETED", "FAILED", "DECLINED", "RECEIVED"] - let maxRetries = API_MAX_RETRIES; - let waitingTime = API_DELAY; - let retries = 0; - let statusResponse = null; - - while (retries < maxRetries) { - statusResponse = await this.getStatus(processId, authentication) - status = jsonUtil.get("data.status", statusResponse); - if (loopBreakStatus.includes(status) || status == null) { - break; - } - await threadUtil.sleep(waitingTime); - retries++; - } - let history = jsonUtil.get("data.history", statusResponse); - if(jsonUtil.exists("transfer-completed", history) && jsonUtil.exists("data-received", history)){ - return await this.retrievePassport(negotiation, authentication); - } - // Get status again - statusResponse = await this.getStatus(processId, authentication) - status = jsonUtil.get("data.status", statusResponse); - history = jsonUtil.get("data.history", statusResponse); - if(jsonUtil.exists("transfer-completed", history) && jsonUtil.exists("data-received", history)){ - return await this.retrievePassport(negotiation, authentication); - } - - retries = 0; - // Until the transfer is completed or the status is failed - while(retries < maxRetries){ - // Wait - await threadUtil.sleep(waitingTime); - // Refresh the values - statusResponse = await this.getStatus(processId, authentication); - status = jsonUtil.get("data.status", statusResponse); - history = jsonUtil.get("data.history", statusResponse); - if((jsonUtil.exists("transfer-completed", history) && jsonUtil.exists("data-received", history)) || status === "FAILED"){ - break; - } - retries++; - } - - // If the status is failed... - if (status === "FAILED") { - return this.getErrorMessage( - "Failed to retrieve passport!", - 500, - "Internal Server Error" - ) - } - // If is not failed return the passport - return await this.retrievePassport(negotiation, authentication); - } - - getErrorMessage(message, status, statusText) { - return { - "message": message, - "status": status, - "statusText": statusText - } - } - getHeadersCredentials(authentication) { - let params = this.getHeaders(authentication); - params["withCredentials"] = true; - return params; - - } - getHeaders(authentication) { - return { - headers: { - 'Accept': 'application/json', - 'Authorization': "Bearer " + authentication.getAccessToken() - } - } - - } - - getSearchBody(id, processId) { - return { - "id": id, - "processId": processId - } - } - async getStatus(processId, authentication) { - return new Promise(resolve => { - axios.get(`${BACKEND_URL}/api/contract/status/` + processId, this.getHeadersCredentials(authentication)) - .then((response) => { - // Setting the status to the Store state - store.commit('setStatusData', response.data); - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } - - async getIrsState(processId, authentication) { - return new Promise(resolve => { - axios.get(`${BACKEND_URL}/api/irs/` + processId + `/state`, this.getHeadersCredentials(authentication)) - .then((response) => { - resolve(response); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - }); - }); - } - async getIrsData(processId, authentication) { - return new Promise(resolve => { - axios.get(`${BACKEND_URL}/api/irs/` + processId + `/components`, this.getHeadersCredentials(authentication)) - .then((response) => { - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - }); - }); - } - async retrievePassport(body, authentication) { - return new Promise(resolve => { - axios.post(`${BACKEND_URL}/api/data`, body, this.getHeadersCredentials(authentication)) - .then((response) => { - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } - async cancelContract(body, authentication) { - return new Promise(resolve => { - axios.post(`${BACKEND_URL}/api/contract/cancel`, body, this.getHeadersCredentials(authentication)) - .then((response) => { - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } - async declineContract(body, authentication) { - return new Promise(resolve => { - axios.post(`${BACKEND_URL}/api/contract/decline`, body, this.getHeadersCredentials(authentication)) - .then((response) => { - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } - async agreeContract(body, authentication) { - return new Promise(resolve => { - axios.post(`${BACKEND_URL}/api/contract/agree`, body, this.getHeadersCredentials(authentication)) - .then((response) => { - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } - async searchContract(id, processId, authentication) { - return new Promise(resolve => { - let body = this.getSearchBody(id, processId); - axios.post(`${BACKEND_URL}/api/contract/search`, body, this.getHeaders(authentication)) - .then((response) => { - // Setting the status to the Store state - store.commit('setSearchData', response.data); - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } - async createProcess(discoveryId, authentication, type = "manufacturerPartId") { - return new Promise(resolve => { - let body = { - "id": discoveryId, - "type": type - } - axios.post(`${BACKEND_URL}/api/contract/create`, body, this.getHeaders(authentication)) - .then((response) => { - resolve(response.data); - }) - .catch((e) => { - if (e.response.data) { - resolve(e.response.data); - } else if (e.request) { - resolve(e.request); - } else { - resolve(e.message) - } - - }); - }); - } -} +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import { BACKEND_URL, API_MAX_RETRIES, API_DELAY, AUTO_SIGN } from "@/services/service.const"; +import axios from "axios"; +import jsonUtil from "@/utils/jsonUtil.js"; +import threadUtil from "../utils/threadUtil"; +import store from "../store/index" +export default class BackendService { + + splitIds(id, sep = ":") { + let ids = id.split(sep); + // Check if id is not empty + if (ids == null || ids.length == 0) { + throw new Error('The Id must not be empty!'); + } + // Check if the syntax is correct and it contains tree parts + if (ids.length != 3) { + throw new Error('The Id must have 3 elements!'); + } + + // Check if the first part contains the catena-x prefix + if (ids[0].toUpperCase() !== "CX") { + throw new Error('Invalid Id prefix!'); + } + + if (ids[1] == undefined || ids[1] == null || ids[1] === "" || ids[2] == undefined || ids[2] == null || ids[2] === "") { + throw new Error('One of the Ids is empty!'); + } + + // Build and separate the different ids + return { + "prefix": ids[0], + "discoveryId": ids[1], + "serializedId": ids[2] + } + } + + async searchAsset(id, authentication) { + let processResponse = null; + // Try to get the negotiation contract + let ids = null; + try { + ids = this.splitIds(id); + } catch (e) { + return this.getErrorMessage( + e.message, + 500, + "Internal Server Error" + ) + } + if (ids == null) { + return this.getErrorMessage( + "Failed to parse the search id!", + 500, + "Internal Server Error" + ) + } + try { + processResponse = await this.createProcess(ids["discoveryId"], authentication); + } catch (e) { + return processResponse; + } + + // Check if the process is successful or if the data is not retrieved + if (!processResponse || (jsonUtil.exists("status", processResponse) && processResponse["status"] != 200) || !jsonUtil.exists("data", processResponse)) { + return processResponse; + } + + let processId = jsonUtil.get("data.processId", processResponse, ".", null); + + store.commit('setProcessId', processId); + + + // Check if the process id is not empty + if (processId == null || processId === "") { + return this.getErrorMessage( + "The contract request was not valid, no process id exists", + 500, + "Internal Server Error" + ) + + } + + let negotiationResponse = null; + + + // Try to get the negotiation contract + try { + negotiationResponse = await this.searchContract(ids["serializedId"], processId, authentication); + } catch (e) { + return negotiationResponse; + } + + + // Check if the negotiation status is successful or if the data is not retrieved + if (!negotiationResponse || (jsonUtil.exists("status", negotiationResponse) && negotiationResponse["status"] != 200) || !jsonUtil.exists("data", negotiationResponse)) { + return negotiationResponse; + } + + // Get negotiation property + return negotiationResponse; + } + async cancelNegotiation(token, processId, contractId, authentication){ + let processStatus = null; + // Use selects here a contract + let negotiation = { + "processId": processId, + "contractId": contractId, + "token": token + } + try { + processStatus = await this.cancelContract(negotiation, authentication); + } catch (e) { + return null; + } + + return processStatus; + } + async declineNegotiation(token, processId, authentication){ + let processStatus = null; + // Use selects here a contract + let negotiation = { + "processId": processId, + "token": token + } + try { + processStatus = await this.declineContract(negotiation, authentication); + } catch (e) { + return null; + } + + return processStatus; + } + async negotiateAsset(contracts, token, processId, authentication, contractId=null, policyId=null){ + let contract = null; + // Use selects here a contract + if(contractId == null){ + contract = contracts[Object.keys(contracts)[0]]; + if(contract == null){ + return this.getErrorMessage( + "The contract selected is incorrect or does not exists!", + 500, + "Internal Server Error" + ) + } + contractId = contract["@id"]; + } + let negotiation = { + "processId": processId, + "contractId": contractId, + "token": token + } + if(!AUTO_SIGN){ + if(contractId == null){ + return this.getErrorMessage( + "At least one contract needs to be selected", + 500, + "Internal Server Error" + ) + } + if(policyId == null){ + return this.getErrorMessage( + "At least one policy needs to be selected", + 500, + "Internal Server Error" + ) + } + negotiation["policyId"] = policyId; + negotiation["contractId"] = contractId; + } + let processStatus = null; + + store.commit('setSearchContractId', contractId); + + // If is not existing we return an error imitating the response + if (!token || !contractId) { + return this.getErrorMessage( + "The contract request was not valid", + 500, + "Internal Server Error" + ) + + } + + // Sign the contract request + try { + processStatus = await this.agreeContract(negotiation, authentication); + } catch (e) { + return processStatus; + } + // Check if the process status is successful or if the data is not retrieved + if (!processStatus || (jsonUtil.exists("status", processStatus) && processStatus["status"] != 200) || !jsonUtil.exists("data", processStatus)) { + return processStatus; + } + + + let status = jsonUtil.get("data.status", processStatus, ".", null); + if (status == "FAILED") { + return this.getErrorMessage( + "The negotiation process has failed", + 500, + "Internal Server Error" + ) + } + + let loopBreakStatus = ["COMPLETED", "FAILED", "DECLINED", "RECEIVED"] + let maxRetries = API_MAX_RETRIES; + let waitingTime = API_DELAY; + let retries = 0; + let statusResponse = null; + + while (retries < maxRetries) { + statusResponse = await this.getStatus(processId, authentication) + status = jsonUtil.get("data.status", statusResponse); + if (loopBreakStatus.includes(status) || status == null) { + break; + } + await threadUtil.sleep(waitingTime); + retries++; + } + let history = jsonUtil.get("data.history", statusResponse); + if(jsonUtil.exists("transfer-completed", history) && jsonUtil.exists("data-received", history)){ + return await this.retrievePassport(negotiation, authentication); + } + // Get status again + statusResponse = await this.getStatus(processId, authentication) + status = jsonUtil.get("data.status", statusResponse); + history = jsonUtil.get("data.history", statusResponse); + if(jsonUtil.exists("transfer-completed", history) && jsonUtil.exists("data-received", history)){ + return await this.retrievePassport(negotiation, authentication); + } + + retries = 0; + // Until the transfer is completed or the status is failed + while(retries < maxRetries){ + // Wait + await threadUtil.sleep(waitingTime); + // Refresh the values + statusResponse = await this.getStatus(processId, authentication); + status = jsonUtil.get("data.status", statusResponse); + history = jsonUtil.get("data.history", statusResponse); + if((jsonUtil.exists("transfer-completed", history) && jsonUtil.exists("data-received", history)) || status === "FAILED"){ + break; + } + retries++; + } + + // If the status is failed... + if (status === "FAILED") { + return this.getErrorMessage( + "Failed to retrieve passport!", + 500, + "Internal Server Error" + ) + } + // If is not failed return the passport + return await this.retrievePassport(negotiation, authentication); + } + + getErrorMessage(message, status, statusText) { + return { + "message": message, + "status": status, + "statusText": statusText + } + } + getHeadersCredentials(authentication) { + let params = this.getHeaders(authentication); + params["withCredentials"] = true; + return params; + + } + getHeaders(authentication) { + return { + headers: { + 'Accept': 'application/json', + 'Authorization': "Bearer " + authentication.getAccessToken() + } + } + + } + + getSearchBody(id, processId) { + return { + "id": id, + "processId": processId + } + } + async getStatus(processId, authentication) { + return new Promise(resolve => { + axios.get(`${BACKEND_URL}/api/contract/status/` + processId, this.getHeadersCredentials(authentication)) + .then((response) => { + // Setting the status to the Store state + store.commit('setStatusData', response.data); + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } + + async getIrsState(processId, authentication) { + return new Promise(resolve => { + axios.get(`${BACKEND_URL}/api/irs/` + processId + `/state`, this.getHeadersCredentials(authentication)) + .then((response) => { + resolve(response); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + }); + }); + } + async getIrsData(processId, authentication) { + return new Promise(resolve => { + axios.get(`${BACKEND_URL}/api/irs/` + processId + `/components`, this.getHeadersCredentials(authentication)) + .then((response) => { + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + }); + }); + } + async retrievePassport(body, authentication) { + return new Promise(resolve => { + axios.post(`${BACKEND_URL}/api/data`, body, this.getHeadersCredentials(authentication)) + .then((response) => { + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } + async cancelContract(body, authentication) { + return new Promise(resolve => { + axios.post(`${BACKEND_URL}/api/contract/cancel`, body, this.getHeadersCredentials(authentication)) + .then((response) => { + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } + async declineContract(body, authentication) { + return new Promise(resolve => { + axios.post(`${BACKEND_URL}/api/contract/decline`, body, this.getHeadersCredentials(authentication)) + .then((response) => { + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } + async agreeContract(body, authentication) { + return new Promise(resolve => { + axios.post(`${BACKEND_URL}/api/contract/agree`, body, this.getHeadersCredentials(authentication)) + .then((response) => { + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } + async searchContract(id, processId, authentication) { + return new Promise(resolve => { + let body = this.getSearchBody(id, processId); + axios.post(`${BACKEND_URL}/api/contract/search`, body, this.getHeaders(authentication)) + .then((response) => { + // Setting the status to the Store state + store.commit('setSearchData', response.data); + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } + async createProcess(discoveryId, authentication, type = "manufacturerPartId") { + return new Promise(resolve => { + let body = { + "id": discoveryId, + "type": type + } + axios.post(`${BACKEND_URL}/api/contract/create`, body, this.getHeaders(authentication)) + .then((response) => { + resolve(response.data); + }) + .catch((e) => { + if (e.response.data) { + resolve(e.response.data); + } else if (e.request) { + resolve(e.request); + } else { + resolve(e.message) + } + + }); + }); + } +} diff --git a/src/services/service.const.js b/dpp-frontend/src/services/service.const.js similarity index 100% rename from src/services/service.const.js rename to dpp-frontend/src/services/service.const.js diff --git a/src/store/index.js b/dpp-frontend/src/store/index.js similarity index 96% rename from src/store/index.js rename to dpp-frontend/src/store/index.js index 4005d3547..0f08d19f6 100644 --- a/src/store/index.js +++ b/dpp-frontend/src/store/index.js @@ -1,138 +1,138 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import { createStore } from 'vuex'; -import CryptoJS from "crypto-js"; - -export default createStore({ - - state: { - email: '', - password: '', - role: '', - clientId: '', - clientSecret: '', - sessionId: '', - statusData: { - "data": { - "history": { - } - } - }, - irsData: [ - {} - ], - searchData: { - "contracts": { - }, - }, - contractToSign: {}, - processId: null, - searchContractId: null, - irsState: false, - qrError: "" - }, - getters: { - getClientId(state) { - return CryptoJS.AES.decrypt(state.clientId, state.sessionId).toString(CryptoJS.enc.Utf8); - }, - getClientSecret(state) { - return CryptoJS.AES.decrypt(state.clientSecret, state.sessionId).toString(CryptoJS.enc.Utf8); - }, - getSessionId(state) { - return state.sessionId; - }, - getProcessId(state) { - return state.processId; - }, - getIrsData(state) { - return state.irsData; - }, - getIrsState(state) { - return state.irsState; - }, - getSearchData(state) { - return state.searchData; - }, - getContractToSign(state) { - return state.contractToSign; - }, - getQrError(state) { - return state.qrError; - }, - }, - mutations: { - setSearchData(state, newSearchData) { - state.searchData = newSearchData; - }, - setContractToSign(state, newContractToSign) { - state.contractToSign = newContractToSign; - }, - setEmail(state, newEmail) { - state.email = newEmail; - }, - setPassword(state, newPassword) { - state.password = newPassword; - }, - setClientId(state, clientId) { - let bytes = CryptoJS.AES.encrypt(clientId, state.sessionId); - state.clientId = bytes.toString(); - }, - setClientSecret(state, clientSecret) { - let bytes = CryptoJS.AES.encrypt(clientSecret, state.sessionId); - state.clientSecret = bytes.toString(); - }, - setSessionId(state, sessionId) { - state.clientSecret = sessionId; - }, - setStatusData(state, data) { - state.statusData = data; - }, - setIrsData(state, data) { - state.irsData = data; - }, - setIrsState(state, irsState) { - state.irsState = irsState; - }, - setSearchContractId(state, contractId) { - state.searchContractId = contractId; - }, - setProcessId(state, processId) { - state.processId = processId; - }, - setQrError(state, qrError) { - state.qrError = qrError; - }, - resetLoadingState (state) { - state.searchData = { - "data": { - "history": { - } - } - }; - state.searchContractId = null; - } - }, - actions: {}, - modules: {}, -}); +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import { createStore } from 'vuex'; +import CryptoJS from "crypto-js"; + +export default createStore({ + + state: { + email: '', + password: '', + role: '', + clientId: '', + clientSecret: '', + sessionId: '', + statusData: { + "data": { + "history": { + } + } + }, + irsData: [ + {} + ], + searchData: { + "contracts": { + }, + }, + contractToSign: {}, + processId: null, + searchContractId: null, + irsState: false, + qrError: "" + }, + getters: { + getClientId(state) { + return CryptoJS.AES.decrypt(state.clientId, state.sessionId).toString(CryptoJS.enc.Utf8); + }, + getClientSecret(state) { + return CryptoJS.AES.decrypt(state.clientSecret, state.sessionId).toString(CryptoJS.enc.Utf8); + }, + getSessionId(state) { + return state.sessionId; + }, + getProcessId(state) { + return state.processId; + }, + getIrsData(state) { + return state.irsData; + }, + getIrsState(state) { + return state.irsState; + }, + getSearchData(state) { + return state.searchData; + }, + getContractToSign(state) { + return state.contractToSign; + }, + getQrError(state) { + return state.qrError; + }, + }, + mutations: { + setSearchData(state, newSearchData) { + state.searchData = newSearchData; + }, + setContractToSign(state, newContractToSign) { + state.contractToSign = newContractToSign; + }, + setEmail(state, newEmail) { + state.email = newEmail; + }, + setPassword(state, newPassword) { + state.password = newPassword; + }, + setClientId(state, clientId) { + let bytes = CryptoJS.AES.encrypt(clientId, state.sessionId); + state.clientId = bytes.toString(); + }, + setClientSecret(state, clientSecret) { + let bytes = CryptoJS.AES.encrypt(clientSecret, state.sessionId); + state.clientSecret = bytes.toString(); + }, + setSessionId(state, sessionId) { + state.clientSecret = sessionId; + }, + setStatusData(state, data) { + state.statusData = data; + }, + setIrsData(state, data) { + state.irsData = data; + }, + setIrsState(state, irsState) { + state.irsState = irsState; + }, + setSearchContractId(state, contractId) { + state.searchContractId = contractId; + }, + setProcessId(state, processId) { + state.processId = processId; + }, + setQrError(state, qrError) { + state.qrError = qrError; + }, + resetLoadingState (state) { + state.searchData = { + "data": { + "history": { + } + } + }; + state.searchContractId = null; + } + }, + actions: {}, + modules: {}, +}); diff --git a/src/translations/de.json b/dpp-frontend/src/translations/de.json similarity index 97% rename from src/translations/de.json rename to dpp-frontend/src/translations/de.json index c82f386d8..d92b4fddb 100644 --- a/src/translations/de.json +++ b/dpp-frontend/src/translations/de.json @@ -1,430 +1,430 @@ -{ - "header": { - "helpBtn": "Hilfe", - "helpTooltip": "Hier können Sie Hilfe erhalten, wenn Sie mehr über Catena-X wissen müssen", - "signOut": "Abmelden" - }, - "searchView": { - "title": "Catena-X Batteriepass", - "welcomeMessage": "Der Begriff 'Batteriepass' bezieht sich auf ein digitales Dokument, das wesentliche Informationen über eine Batterie enthält, insbesondere im Kontext von Elektrofahrzeugen (EVs). Dieses Dokument umfasst Details über den Hersteller der Batterie, Spezifikationen, Leistungsmerkmale, Gesundheitszustand und Lebenszyklusdaten. Der Zweck eines Batteriepasses besteht darin, eine ordnungsgemäße Wartung, Instandhaltung und Recycling der Batterie zu erleichtern, sowie die Rückverfolgbarkeit und Konformität zu ermöglichen.", - "errorCameraOff": "Ihre Kamera ist ausgeschaltet.", - "errorTypeID": "Schalten Sie sie ein oder geben Sie die ID ein.", - "findOutMore": "Möchten Sie mehr erfahren? Lesen Sie unseren", - "guide": "Einsteiger-Leitfaden", - "cameraError": { - "NotAllowedError": "FEHLER: Sie müssen die Kamera-Zugriffsberechtigung erteilen", - "NotFoundError": "FEHLER: keine Kamera auf diesem Gerät", - "NotSupportedError": "FEHLER: Sichere Umgebung erforderlich (HTTPS, localhost)", - "NotReadableError": "FEHLER: Wird die Kamera bereits verwendet?", - "OverconstrainedError": "FEHLER: installierte Kameras sind nicht geeignet", - "StreamApiNotSupportedError": "FEHLER: Stream-API wird in diesem Browser nicht unterstützt", - "InsecureContextError": "FEHLER: Kamerazugriff ist nur in sicherer Umgebung erlaubt. Verwenden Sie HTTPS oder localhost anstelle von HTTP." - } - }, - "passportView": { - "policyAgreement": { - "title": "Wählen Sie eine Richtlinie aus:", - "contractId": "Vertrags-ID:", - "policy": "Richtlinie", - "type": "Typ", - "decline": "Ablehnen", - "agree": "Zustimmen", - "details": { - "moreDetails": "Weitere Details", - "lessDetails": "Weniger Details" - }, - "declineModal": { - "question": "Sind Sie sicher, dass Sie ablehnen möchten?", - "homepage": "Dies bringt Sie zurück zur Startseite", - "cancel": "Abbrechen", - "confirm": "Ja, Ablehnen" - } - }, - "dpp": "Digitaler Produkt Pass", - "bpp": "Batterie Pass", - "tpp": "Getriebe Pass", - "batteryComponentsNames": { - "generalInformation": "Allgemeine Informationen", - "stateOfBattery": "Zustand der Batterie", - "components": "Komponenten", - "batteryComposition": "Batteriezusammensetzung", - "cellChemistry": "Zellenchemie", - "electrochemicalProperties": "Elektrochemische Eigenschaften", - "documents": "Dokumente", - "exchange": "Austausch" - }, - "dppComponentsNames": { - "typology": "Typologie", - "metadata": "Metadaten", - "characteristics": "Merkmale", - "components": "Komponenten", - "commercial": "Kommerziell", - "identification": "Identifikation", - "sources": "Quellen", - "handling": "Handhabung", - "additionalData": "Zusätzliche Daten", - "sustainability": "Nachhaltigkeit", - "operation": "Betrieb", - "exchange": "Austausch" - }, - "tppComponentsNames": { - "productSpecificParameters": "Produktspezifische Parameter", - "intructions": "Anleitungen", - "sparePartSupplier": "Ersatzteil-Lieferant", - "components": "Komponenten", - "stateOfHealth": "Zustand der Gesundheit", - "identification": "Identifikation", - "generalInformation": "Allgemeine Informationen", - "sustainability": "Nachhaltigkeit", - "exchange": "Austausch" - } - }, - "home": { - "welcome": "Willkommen", - "home": "Startseite" - }, - "footer": { - "help": "Hilfe", - "contact": "Kontakt", - "imprint": "Impressum", - "privacy": "Datenschutz", - "terms": "Nutzungsbedingungen", - "cookies": "Cookies", - "thirdParty": "Lizenzen Dritter", - "legal": "Rechtlicher Hinweis", - "license": "Lizenz: Apache-2.0", - "licensePath": "Lizenzpfad: ", - "viewLicense": "Lizenzdatei ansehen", - "notice": "HINWEIS: ", - "viewNotice": "Hinweisdatei ansehen", - "source": "Quell-URL: ", - "commit": "Commit-ID: ", - "copyright": "Urheberrecht © Catena-X Automotive Network." - }, - "searchInput": { - "search": "Suchen", - "passportId": "Pass-ID eingeben" - }, - "barChart": { - "noData": "Keine Daten" - }, - "batteryCards": { - "titleGeneral": "ALLGEMEIN", - "labelGeneral": "Typ", - "secondLabelGeneral": "Modell", - "titlePerformance": "LEISTUNG", - "labelPerformance": "Nennkapazität", - "secondLabelPerformance": "Modell", - "descriptionPerformanceTitle": "Leistung", - "descriptionPerformanceValue": "Beschreibung der Leistung", - "titleHealth": "GESUNDHEIT", - "labelHealth": "Zustand der Gesundheit", - "secondLabelHealth": "Ladezyklen", - "descriptionHealthTitle": "Gesundheit", - "descriptionHealthValue": "Beschreibung der Gesundheit", - "titleSustainability": "NACHHALTIGKEIT", - "secondLabelSustainability": "CO2e/kWh", - "descriptionHSustainabilityTitle": "Nachhaltigkeit", - "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit", - "chargingCycles": "Ladezyklen" - }, - "generalCards": { - "titleGeneral": "ALLGEMEIN", - "productName": "Produktname", - "productType": "Produkttyp", - "titleManufacturing": "HERSTELLUNG", - "manufacturerId": "Hersteller-ID", - "dateOfManufacturing": "Herstellungsdatum", - "descriptionManufacturingTitle": "Herstellung", - "descriptionManufacturingValue": "Beschreibung der Herstellung", - "titleAspectVersion": "ASPEKTVERSION", - "currentVersion": "Aktuelle Version", - "issued": "Ausgestellt", - "descriptionAspectVersionTitle": "Aspektversion", - "descriptionAspectVersionValue": "Beschreibung der Aspektversion", - "titleSustainability": "NACHHALTIGKEIT", - "totalCo2Footprint": "Gesamter CO2-Fußabdruck", - "warrantyPeriod": "Garantiezeitraum", - "tCo2Total": "t CO2 Gesamt", - "months": "Monate", - "descriptionSustainabilityTitle": "Nachhaltigkeit", - "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit" - }, - "transmissionCards": { - "matrixCode": "Matrixcode", - "parameters": "Spezifische Parameter", - "driveType": "Antriebstyp", - "oilType": "Öltyp" - }, - "passportHeader": { - "backBtn": "Zurück" - }, - "field": { - "tempRange": "Temperaturbereich:", - "to": "bis", - "referenceTest": "Referenztest:" - }, - "recursiveTree": { - "notAvailable": "Nicht verfügbar" - }, - "dialog": { - "description": "Beschreibung", - "noDescription": "Keine Beschreibung" - }, - "section": { - "noContent": "Entschuldigung, kein Inhalt" - }, - "error": { - "404NotFound": "404 Nicht gefunden", - "somethingWentWrong": "Hoppla, etwas ist schiefgelaufen...", - "internalError": "Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht bearbeiten.", - "contactYourAdmin": "Bitte kontaktieren Sie Ihren Administrator", - "adminExample": "admin@beispiel.com", - "reload": "Seite neu laden", - "homepage": "Startseite" - }, - "loading": { - "assetId": "Anlage-ID: ", - "registrySearch": "Register Suche", - "searching": "Suche...", - "registriesAvailable": "Register verfügbar", - "contractSearch": "Vertragssuche", - "contractAvailable": "Vertrag verfügbar", - "contractNegotiation": "Vertragsverhandlung", - "negotiating": "Verhandlung...", - "contractStatus": "Vertragsstatus: ", - "contractTransfer": "Vertragsübertragung", - "transferring": "Übertragung...", - "transferCompleted": "Übertragung abgeschlossen", - "passportRetrieval": "Passabruf", - "retrieving": "Abruf... ", - "createdProcess": "Erstellte Prozess-ID: ", - "contractId": "Vertrags-ID: " - }, - "sections": { - "productSpecificParameters": { - "torqueConverter": "Drehmomentwandler", - "driveType": "Antriebstyp", - "oilType": "Öltyp", - "spreading": "Verbreitung", - "torque": "Drehmoment", - "power": "Leistung", - "gear": "Gang", - "ratio": "Verhältnis", - "speed": "Geschwindigkeit", - "standardGearRatio": "Standardübersetzungsverhältnis", - "speedResistance": "Geschwindigkeitswiderstand", - "oilCapacity": "Ölkapazität", - "electricPerformance": "Elektrische Leistung" - }, - "instructions": { - "packagingInstructions": "Verpackungsanweisungen", - "transportationInstructions": "Transportanweisungen", - "dismantlingProcedure": "Demontageverfahren", - "safetyMeasures": "Sicherheitsmaßnahmen", - "vehicleDismantlingProcedure": "Fahrzeugdemontageverfahren" - }, - "sparePartsSupplier": { - "supplierContact": "Lieferantenkontakt", - "supplierId": "Lieferanten-ID", - "sparePartName": "Ersatzteilname" - }, - "stateOfHealth": { - "serviceHistory": "Serviceverlauf", - "expectedLifespan": "Erwartete Lebensdauer", - "remanufacturingDate": "Wiederherstellungsdatum", - "productStatusValue": "Produktstatuswert" - }, - "generalInformation": { - "additionalInformation": "Zusätzliche Informationen", - "productDimensions": "Abmessungen", - "productDescription": "Produktbeschreibung", - "productType": "Produkttyp", - "batteryId": "Batterie-ID", - "batteryIdDescriptionTitle": "Batterie-ID", - "batteryIdDescriptionValue": "Batterie-ID oder DMC, die Sie in Ihren Geräteeinstellungen finden können", - "batteryType": "Batterietyp", - "batteryModel": "Batteriemodell", - "warranty": "Garantie", - "dimensions": "Abmessungen der Batterie", - "weight": "Gewicht", - "dateOfManufacturing": "Herstellungsdatum", - "placeOfManufacturing": "Herstellungsort", - "datePlacedOnMarket": "Markteinführungsdatum", - "manufacturerInformation": "Herstellerinformationen", - "manufacturerContact": "Herstellerkontakt", - "cO2FootprintTotal": "CO2-Fußabdruck" - }, - "stateOfBattery": { - "stateOfHealth": "aktueller Zustand", - "cycleLifeTestCRate": "Zykluslebensdauertest C-Rate", - "stateOfCharge": "Ladezustand", - "cycleLifeTestDepthOfDischarge": "Tiefe der Entladung im Zykluslebensdauertest", - "expectedLifetime": "Erwartete Lebensdauer", - "temperatureRange": "Temperaturbereich (im Ruhezustand)", - "statusBattery": "Batterie-Status" - }, - "components": { - "searchForChild": "Die Suche nach verbauten Komponenten hat begonnen, dies kann eine Weile dauern...", - "noChild": "Keine verbauten Komponenten gefunden", - "somethingWentWrong": "Etwas ist bei der Suche nach Komponenten schiefgelaufen" - }, - "batteryComposition": { - "batteryComposites": "Hauptbestandteile der Batterie", - "criticalRawMaterials": "Kritische Rohstoffe" - }, - "cellChemistry": { - "electrolyteComposition": "Zusammensetzung des Elektrolyts", - "recyclateContent": "Recyclat-Anteil" - }, - "electrochemicalProperties": { - "capacity": "Kapazität", - "ratedCapacity": "Nennkapazität", - "capacityFade": "Kapazitätsverlust", - "capacityThresholdExhaustion": "Kapazitätsschwelle für Batterie-Erschöpfung", - "efficiency": "Effizienz", - "originalPowerCapability": "Ursprüngliche Leistungsfähigkeit", - "originalPowerCapabilityLimits": "Grenzen der ursprünglichen Leistungsfähigkeit", - "maximumAllowedBatteryPower": "Maximal zulässige Batterieenergie (MABE)", - "MABEvsMABP": "Verhältnis MABE zu MABP", - "powerCapabilityAt20Charge": "Leistungsfähigkeit bei 20% Ladung", - "powerCapabilityAt80Charge": "Leistungsfähigkeit bei 80% Ladung", - "powerFade": "Leistungsverlust", - "resistance": "Widerstand", - "packInternalResistance": "Interner Widerstand des Batteriepacks", - "packInternalResistanceIncrease": "Zunahme des internen Widerstands des Batteriepacks", - "cellInternalResistance": "Interner Widerstand der Zelle", - "voltage": "Spannung", - "nominalVoltage": "Nennspannung", - "maxVoltage": "Maximale Spannung", - "minVoltage": "Minimale Spannung" - }, - "exchange": { - "contract": "Vertrag", - "policy": "Richtlinie", - "distribution": "Verteilung", - "negotiation": "Verhandlung", - "context": "Kontext", - "negotiationRequest": "Verhandlungsanfrage", - "offer": "Angebot", - "transfer": "Übertragung", - "edcDataRequest": "EDC-Datenanfrage", - "transferRequest": "Übertragungsanfrage", - "id": "ID", - "type": "Typ", - "policyId": "Richtlinien-ID", - "distributionList": "Verteilungsliste", - "edcDescription": "EDC-Beschreibung", - "edcId": "EDC-ID", - "edcType": "EDC-Typ", - "edcProtocol": "EDC-Protokoll", - "protocol": "Protokoll", - "edcState": "EDC-Zustand", - "edcCounterPartyAddress": "EDC-Partner-Adresse", - "edcContractAgreementId": "EDC-Vertragsvereinbarungs-ID", - "connectorId": "Connector-ID", - "providerId": "Anbieter-ID", - "offerDetail": "Angebotsdetails", - "transferId": "Übertragungs-ID", - "transferType": "Übertragungstyp", - "transferState": "Übertragungszustand", - "edcTimestamp": "EDC-Zeitstempel", - "edcDataRequestId": "EDC-Datenanfrage-ID", - "edcReceiverHttpEndpoint": "EDC-Empfänger HTTP-Endpunkt", - "assetId": "Anlagen-ID", - "connectorAddress": "Connector-Adresse", - "contractId": "Vertrags-ID", - "dataDestination": "Datendestination", - "reciverHttpEndpoint": "Empfänger-HTTP-Endpunkt", - "contentType": "Inhaltstyp" - }, - "characteristics": { - "physicalDimensionsProperty": "Eigenschaft der physischen Abmessungen", - "weight": "Gewicht", - "lifespan": "Lebensdauer", - "energyCapacity": "Energiekapazität", - "voltage": "Spannung", - "physicalState": "Physischer Zustand", - "weightOrVolume": "Gewicht oder Volumen", - "diameter": "Durchmesser", - "grossWeight": "Bruttogewicht", - "grossVolume": "Bruttovolumen" - }, - "commercial": { - "placedOnMarket": "Markteinführung", - "warranty": "Garantie" - }, - "handling": { - "maintenanceHistory": "Wartungshistorie", - "spareParts": "Ersatzteile", - "substanceOfConcern": "Besorgniserregende Substanz", - "producerId": "Produzenten-ID", - "partName": "Teilname", - "partGtin": "Teil-GTIN", - "type": "Typ", - "location": "Standort", - "unit": "Einheit", - "concentrationMax": "Maximale Konzentration", - "concentrationMin": "Minimale Konzentration", - "exemption": "Ausnahme", - "idType": "ID-Typ", - "id": "ID" - }, - "identification": { - "gtin": "GTIN", - "manufacturerId": "Hersteller-ID", - "dataMatrixCode": "Data-Matrix-Code" - }, - "metadata": { - "predecessor": "Vorgänger", - "legitimization": "Legitimation", - "identification": "Identifikation", - "issueDate": "Ausgabedatum", - "version": "Version", - "validityDate": "Gültigkeitsdatum", - "customerPartId": "Kundenteil-ID", - "manufacturerPartId": "Herstellerteil-ID", - "status": "Status", - "expirationDate": "Ablaufdatum" - }, - "operation": { - "importer": "Importeur-ID", - "importerEori": "Importer-EORI", - "manufacturerId": "Hersteller-ID", - "facilityId": "Anlagen-ID", - "manufacturingDate": "Herstellungsdatum" - }, - "serialization": { - "manufacturingInformation": "Herstellungsinformationen", - "date": "Datum", - "country": "Land", - "registration": "Registrierung", - "customerPartId": "Kundenteil-ID", - "manufacturerPartId": "Herstellerteil-ID", - "quantity": "Menge" - }, - "sustainability": { - "state": "Zustand", - "material": "Material", - "carbonContentTotal": "Gesamtkohlenstoffgehalt", - "crossSectoralStandard": "Sektorenübergreifender Standard", - "substancesOfConcern": "Besorgniserregende Stoffe", - "criticalRawMaterials": "Kritische Rohstoffe", - "co2FootprintTotal": "Gesamter CO₂-Fußabdruck", - "operator": "Betreiber", - "ruleNames": "Regelnamen", - "otherOperatorName": "Name des anderen Betreibers", - "productOrSectorSpecificRules": "Produkt- oder sektorspezifische Regeln", - "critical": "Kritisch" - }, - "typology": { - "name": "Name", - "shortName": "Kurzname", - "longName": "Langname", - "definition": "Definition", - "code": "Code", - "nameAtManufacturer": "Name beim Hersteller", - "nameAtCustomer": "Name beim Kunden" - } - } -} +{ + "header": { + "helpBtn": "Hilfe", + "helpTooltip": "Hier können Sie Hilfe erhalten, wenn Sie mehr über Catena-X wissen müssen", + "signOut": "Abmelden" + }, + "searchView": { + "title": "Catena-X Batteriepass", + "welcomeMessage": "Der Begriff 'Batteriepass' bezieht sich auf ein digitales Dokument, das wesentliche Informationen über eine Batterie enthält, insbesondere im Kontext von Elektrofahrzeugen (EVs). Dieses Dokument umfasst Details über den Hersteller der Batterie, Spezifikationen, Leistungsmerkmale, Gesundheitszustand und Lebenszyklusdaten. Der Zweck eines Batteriepasses besteht darin, eine ordnungsgemäße Wartung, Instandhaltung und Recycling der Batterie zu erleichtern, sowie die Rückverfolgbarkeit und Konformität zu ermöglichen.", + "errorCameraOff": "Ihre Kamera ist ausgeschaltet.", + "errorTypeID": "Schalten Sie sie ein oder geben Sie die ID ein.", + "findOutMore": "Möchten Sie mehr erfahren? Lesen Sie unseren", + "guide": "Einsteiger-Leitfaden", + "cameraError": { + "NotAllowedError": "FEHLER: Sie müssen die Kamera-Zugriffsberechtigung erteilen", + "NotFoundError": "FEHLER: keine Kamera auf diesem Gerät", + "NotSupportedError": "FEHLER: Sichere Umgebung erforderlich (HTTPS, localhost)", + "NotReadableError": "FEHLER: Wird die Kamera bereits verwendet?", + "OverconstrainedError": "FEHLER: installierte Kameras sind nicht geeignet", + "StreamApiNotSupportedError": "FEHLER: Stream-API wird in diesem Browser nicht unterstützt", + "InsecureContextError": "FEHLER: Kamerazugriff ist nur in sicherer Umgebung erlaubt. Verwenden Sie HTTPS oder localhost anstelle von HTTP." + } + }, + "passportView": { + "policyAgreement": { + "title": "Wählen Sie eine Richtlinie aus:", + "contractId": "Vertrags-ID:", + "policy": "Richtlinie", + "type": "Typ", + "decline": "Ablehnen", + "agree": "Zustimmen", + "details": { + "moreDetails": "Weitere Details", + "lessDetails": "Weniger Details" + }, + "declineModal": { + "question": "Sind Sie sicher, dass Sie ablehnen möchten?", + "homepage": "Dies bringt Sie zurück zur Startseite", + "cancel": "Abbrechen", + "confirm": "Ja, Ablehnen" + } + }, + "dpp": "Digitaler Produkt Pass", + "bpp": "Batterie Pass", + "tpp": "Getriebe Pass", + "batteryComponentsNames": { + "generalInformation": "Allgemeine Informationen", + "stateOfBattery": "Zustand der Batterie", + "components": "Komponenten", + "batteryComposition": "Batteriezusammensetzung", + "cellChemistry": "Zellenchemie", + "electrochemicalProperties": "Elektrochemische Eigenschaften", + "documents": "Dokumente", + "exchange": "Austausch" + }, + "dppComponentsNames": { + "typology": "Typologie", + "metadata": "Metadaten", + "characteristics": "Merkmale", + "components": "Komponenten", + "commercial": "Kommerziell", + "identification": "Identifikation", + "sources": "Quellen", + "handling": "Handhabung", + "additionalData": "Zusätzliche Daten", + "sustainability": "Nachhaltigkeit", + "operation": "Betrieb", + "exchange": "Austausch" + }, + "tppComponentsNames": { + "productSpecificParameters": "Produktspezifische Parameter", + "intructions": "Anleitungen", + "sparePartSupplier": "Ersatzteil-Lieferant", + "components": "Komponenten", + "stateOfHealth": "Zustand der Gesundheit", + "identification": "Identifikation", + "generalInformation": "Allgemeine Informationen", + "sustainability": "Nachhaltigkeit", + "exchange": "Austausch" + } + }, + "home": { + "welcome": "Willkommen", + "home": "Startseite" + }, + "footer": { + "help": "Hilfe", + "contact": "Kontakt", + "imprint": "Impressum", + "privacy": "Datenschutz", + "terms": "Nutzungsbedingungen", + "cookies": "Cookies", + "thirdParty": "Lizenzen Dritter", + "legal": "Rechtlicher Hinweis", + "license": "Lizenz: Apache-2.0", + "licensePath": "Lizenzpfad: ", + "viewLicense": "Lizenzdatei ansehen", + "notice": "HINWEIS: ", + "viewNotice": "Hinweisdatei ansehen", + "source": "Quell-URL: ", + "commit": "Commit-ID: ", + "copyright": "Urheberrecht © Catena-X Automotive Network." + }, + "searchInput": { + "search": "Suchen", + "passportId": "Pass-ID eingeben" + }, + "barChart": { + "noData": "Keine Daten" + }, + "batteryCards": { + "titleGeneral": "ALLGEMEIN", + "labelGeneral": "Typ", + "secondLabelGeneral": "Modell", + "titlePerformance": "LEISTUNG", + "labelPerformance": "Nennkapazität", + "secondLabelPerformance": "Modell", + "descriptionPerformanceTitle": "Leistung", + "descriptionPerformanceValue": "Beschreibung der Leistung", + "titleHealth": "GESUNDHEIT", + "labelHealth": "Zustand der Gesundheit", + "secondLabelHealth": "Ladezyklen", + "descriptionHealthTitle": "Gesundheit", + "descriptionHealthValue": "Beschreibung der Gesundheit", + "titleSustainability": "NACHHALTIGKEIT", + "secondLabelSustainability": "CO2e/kWh", + "descriptionHSustainabilityTitle": "Nachhaltigkeit", + "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit", + "chargingCycles": "Ladezyklen" + }, + "generalCards": { + "titleGeneral": "ALLGEMEIN", + "productName": "Produktname", + "productType": "Produkttyp", + "titleManufacturing": "HERSTELLUNG", + "manufacturerId": "Hersteller-ID", + "dateOfManufacturing": "Herstellungsdatum", + "descriptionManufacturingTitle": "Herstellung", + "descriptionManufacturingValue": "Beschreibung der Herstellung", + "titleAspectVersion": "ASPEKTVERSION", + "currentVersion": "Aktuelle Version", + "issued": "Ausgestellt", + "descriptionAspectVersionTitle": "Aspektversion", + "descriptionAspectVersionValue": "Beschreibung der Aspektversion", + "titleSustainability": "NACHHALTIGKEIT", + "totalCo2Footprint": "Gesamter CO2-Fußabdruck", + "warrantyPeriod": "Garantiezeitraum", + "tCo2Total": "t CO2 Gesamt", + "months": "Monate", + "descriptionSustainabilityTitle": "Nachhaltigkeit", + "descriptionSustainabilityValue": "Beschreibung der Nachhaltigkeit" + }, + "transmissionCards": { + "matrixCode": "Matrixcode", + "parameters": "Spezifische Parameter", + "driveType": "Antriebstyp", + "oilType": "Öltyp" + }, + "passportHeader": { + "backBtn": "Zurück" + }, + "field": { + "tempRange": "Temperaturbereich:", + "to": "bis", + "referenceTest": "Referenztest:" + }, + "recursiveTree": { + "notAvailable": "Nicht verfügbar" + }, + "dialog": { + "description": "Beschreibung", + "noDescription": "Keine Beschreibung" + }, + "section": { + "noContent": "Entschuldigung, kein Inhalt" + }, + "error": { + "404NotFound": "404 Nicht gefunden", + "somethingWentWrong": "Hoppla, etwas ist schiefgelaufen...", + "internalError": "Der Server hat einen internen Fehler oder eine Fehlkonfiguration festgestellt und konnte Ihre Anfrage nicht bearbeiten.", + "contactYourAdmin": "Bitte kontaktieren Sie Ihren Administrator", + "adminExample": "admin@beispiel.com", + "reload": "Seite neu laden", + "homepage": "Startseite" + }, + "loading": { + "assetId": "Anlage-ID: ", + "registrySearch": "Register Suche", + "searching": "Suche...", + "registriesAvailable": "Register verfügbar", + "contractSearch": "Vertragssuche", + "contractAvailable": "Vertrag verfügbar", + "contractNegotiation": "Vertragsverhandlung", + "negotiating": "Verhandlung...", + "contractStatus": "Vertragsstatus: ", + "contractTransfer": "Vertragsübertragung", + "transferring": "Übertragung...", + "transferCompleted": "Übertragung abgeschlossen", + "passportRetrieval": "Passabruf", + "retrieving": "Abruf... ", + "createdProcess": "Erstellte Prozess-ID: ", + "contractId": "Vertrags-ID: " + }, + "sections": { + "productSpecificParameters": { + "torqueConverter": "Drehmomentwandler", + "driveType": "Antriebstyp", + "oilType": "Öltyp", + "spreading": "Verbreitung", + "torque": "Drehmoment", + "power": "Leistung", + "gear": "Gang", + "ratio": "Verhältnis", + "speed": "Geschwindigkeit", + "standardGearRatio": "Standardübersetzungsverhältnis", + "speedResistance": "Geschwindigkeitswiderstand", + "oilCapacity": "Ölkapazität", + "electricPerformance": "Elektrische Leistung" + }, + "instructions": { + "packagingInstructions": "Verpackungsanweisungen", + "transportationInstructions": "Transportanweisungen", + "dismantlingProcedure": "Demontageverfahren", + "safetyMeasures": "Sicherheitsmaßnahmen", + "vehicleDismantlingProcedure": "Fahrzeugdemontageverfahren" + }, + "sparePartsSupplier": { + "supplierContact": "Lieferantenkontakt", + "supplierId": "Lieferanten-ID", + "sparePartName": "Ersatzteilname" + }, + "stateOfHealth": { + "serviceHistory": "Serviceverlauf", + "expectedLifespan": "Erwartete Lebensdauer", + "remanufacturingDate": "Wiederherstellungsdatum", + "productStatusValue": "Produktstatuswert" + }, + "generalInformation": { + "additionalInformation": "Zusätzliche Informationen", + "productDimensions": "Abmessungen", + "productDescription": "Produktbeschreibung", + "productType": "Produkttyp", + "batteryId": "Batterie-ID", + "batteryIdDescriptionTitle": "Batterie-ID", + "batteryIdDescriptionValue": "Batterie-ID oder DMC, die Sie in Ihren Geräteeinstellungen finden können", + "batteryType": "Batterietyp", + "batteryModel": "Batteriemodell", + "warranty": "Garantie", + "dimensions": "Abmessungen der Batterie", + "weight": "Gewicht", + "dateOfManufacturing": "Herstellungsdatum", + "placeOfManufacturing": "Herstellungsort", + "datePlacedOnMarket": "Markteinführungsdatum", + "manufacturerInformation": "Herstellerinformationen", + "manufacturerContact": "Herstellerkontakt", + "cO2FootprintTotal": "CO2-Fußabdruck" + }, + "stateOfBattery": { + "stateOfHealth": "aktueller Zustand", + "cycleLifeTestCRate": "Zykluslebensdauertest C-Rate", + "stateOfCharge": "Ladezustand", + "cycleLifeTestDepthOfDischarge": "Tiefe der Entladung im Zykluslebensdauertest", + "expectedLifetime": "Erwartete Lebensdauer", + "temperatureRange": "Temperaturbereich (im Ruhezustand)", + "statusBattery": "Batterie-Status" + }, + "components": { + "searchForChild": "Die Suche nach verbauten Komponenten hat begonnen, dies kann eine Weile dauern...", + "noChild": "Keine verbauten Komponenten gefunden", + "somethingWentWrong": "Etwas ist bei der Suche nach Komponenten schiefgelaufen" + }, + "batteryComposition": { + "batteryComposites": "Hauptbestandteile der Batterie", + "criticalRawMaterials": "Kritische Rohstoffe" + }, + "cellChemistry": { + "electrolyteComposition": "Zusammensetzung des Elektrolyts", + "recyclateContent": "Recyclat-Anteil" + }, + "electrochemicalProperties": { + "capacity": "Kapazität", + "ratedCapacity": "Nennkapazität", + "capacityFade": "Kapazitätsverlust", + "capacityThresholdExhaustion": "Kapazitätsschwelle für Batterie-Erschöpfung", + "efficiency": "Effizienz", + "originalPowerCapability": "Ursprüngliche Leistungsfähigkeit", + "originalPowerCapabilityLimits": "Grenzen der ursprünglichen Leistungsfähigkeit", + "maximumAllowedBatteryPower": "Maximal zulässige Batterieenergie (MABE)", + "MABEvsMABP": "Verhältnis MABE zu MABP", + "powerCapabilityAt20Charge": "Leistungsfähigkeit bei 20% Ladung", + "powerCapabilityAt80Charge": "Leistungsfähigkeit bei 80% Ladung", + "powerFade": "Leistungsverlust", + "resistance": "Widerstand", + "packInternalResistance": "Interner Widerstand des Batteriepacks", + "packInternalResistanceIncrease": "Zunahme des internen Widerstands des Batteriepacks", + "cellInternalResistance": "Interner Widerstand der Zelle", + "voltage": "Spannung", + "nominalVoltage": "Nennspannung", + "maxVoltage": "Maximale Spannung", + "minVoltage": "Minimale Spannung" + }, + "exchange": { + "contract": "Vertrag", + "policy": "Richtlinie", + "distribution": "Verteilung", + "negotiation": "Verhandlung", + "context": "Kontext", + "negotiationRequest": "Verhandlungsanfrage", + "offer": "Angebot", + "transfer": "Übertragung", + "edcDataRequest": "EDC-Datenanfrage", + "transferRequest": "Übertragungsanfrage", + "id": "ID", + "type": "Typ", + "policyId": "Richtlinien-ID", + "distributionList": "Verteilungsliste", + "edcDescription": "EDC-Beschreibung", + "edcId": "EDC-ID", + "edcType": "EDC-Typ", + "edcProtocol": "EDC-Protokoll", + "protocol": "Protokoll", + "edcState": "EDC-Zustand", + "edcCounterPartyAddress": "EDC-Partner-Adresse", + "edcContractAgreementId": "EDC-Vertragsvereinbarungs-ID", + "connectorId": "Connector-ID", + "providerId": "Anbieter-ID", + "offerDetail": "Angebotsdetails", + "transferId": "Übertragungs-ID", + "transferType": "Übertragungstyp", + "transferState": "Übertragungszustand", + "edcTimestamp": "EDC-Zeitstempel", + "edcDataRequestId": "EDC-Datenanfrage-ID", + "edcReceiverHttpEndpoint": "EDC-Empfänger HTTP-Endpunkt", + "assetId": "Anlagen-ID", + "connectorAddress": "Connector-Adresse", + "contractId": "Vertrags-ID", + "dataDestination": "Datendestination", + "reciverHttpEndpoint": "Empfänger-HTTP-Endpunkt", + "contentType": "Inhaltstyp" + }, + "characteristics": { + "physicalDimensionsProperty": "Eigenschaft der physischen Abmessungen", + "weight": "Gewicht", + "lifespan": "Lebensdauer", + "energyCapacity": "Energiekapazität", + "voltage": "Spannung", + "physicalState": "Physischer Zustand", + "weightOrVolume": "Gewicht oder Volumen", + "diameter": "Durchmesser", + "grossWeight": "Bruttogewicht", + "grossVolume": "Bruttovolumen" + }, + "commercial": { + "placedOnMarket": "Markteinführung", + "warranty": "Garantie" + }, + "handling": { + "maintenanceHistory": "Wartungshistorie", + "spareParts": "Ersatzteile", + "substanceOfConcern": "Besorgniserregende Substanz", + "producerId": "Produzenten-ID", + "partName": "Teilname", + "partGtin": "Teil-GTIN", + "type": "Typ", + "location": "Standort", + "unit": "Einheit", + "concentrationMax": "Maximale Konzentration", + "concentrationMin": "Minimale Konzentration", + "exemption": "Ausnahme", + "idType": "ID-Typ", + "id": "ID" + }, + "identification": { + "gtin": "GTIN", + "manufacturerId": "Hersteller-ID", + "dataMatrixCode": "Data-Matrix-Code" + }, + "metadata": { + "predecessor": "Vorgänger", + "legitimization": "Legitimation", + "identification": "Identifikation", + "issueDate": "Ausgabedatum", + "version": "Version", + "validityDate": "Gültigkeitsdatum", + "customerPartId": "Kundenteil-ID", + "manufacturerPartId": "Herstellerteil-ID", + "status": "Status", + "expirationDate": "Ablaufdatum" + }, + "operation": { + "importer": "Importeur-ID", + "importerEori": "Importer-EORI", + "manufacturerId": "Hersteller-ID", + "facilityId": "Anlagen-ID", + "manufacturingDate": "Herstellungsdatum" + }, + "serialization": { + "manufacturingInformation": "Herstellungsinformationen", + "date": "Datum", + "country": "Land", + "registration": "Registrierung", + "customerPartId": "Kundenteil-ID", + "manufacturerPartId": "Herstellerteil-ID", + "quantity": "Menge" + }, + "sustainability": { + "state": "Zustand", + "material": "Material", + "carbonContentTotal": "Gesamtkohlenstoffgehalt", + "crossSectoralStandard": "Sektorenübergreifender Standard", + "substancesOfConcern": "Besorgniserregende Stoffe", + "criticalRawMaterials": "Kritische Rohstoffe", + "co2FootprintTotal": "Gesamter CO₂-Fußabdruck", + "operator": "Betreiber", + "ruleNames": "Regelnamen", + "otherOperatorName": "Name des anderen Betreibers", + "productOrSectorSpecificRules": "Produkt- oder sektorspezifische Regeln", + "critical": "Kritisch" + }, + "typology": { + "name": "Name", + "shortName": "Kurzname", + "longName": "Langname", + "definition": "Definition", + "code": "Code", + "nameAtManufacturer": "Name beim Hersteller", + "nameAtCustomer": "Name beim Kunden" + } + } +} diff --git a/src/translations/en.json b/dpp-frontend/src/translations/en.json similarity index 97% rename from src/translations/en.json rename to dpp-frontend/src/translations/en.json index 2b6089c25..2997c9d4b 100644 --- a/src/translations/en.json +++ b/dpp-frontend/src/translations/en.json @@ -1,430 +1,430 @@ -{ - "header": { - "helpBtn": "Help", - "helpTooltip": " Here you can get help if you need to know more about Catena-X", - "signOut": "Sign Out" - }, - "searchView": { - "title": "Catena-X Battery Passport", - "welcomeMessage": "The term \"Battery Passport\" refers to a digital document that contains essential information about a battery, specifically in the context of electric vehicles (EVs). This document includes details about the battery's manufacturer, specifications, performance characteristics, health status, and lifecycle data. The purpose of a Battery Passport is to facilitate proper maintenance, servicing, and recycling of the battery, while also enabling traceability and compliance.", - "errorCameraOff": "Your camera is off.", - "errorTypeID": "Turn it on or type the ID.", - "findOutMore": "Want to find out more? Read our Get", - "guide": "Started Guide", - "cameraError": { - "NotAllowedError": "ERROR: you need to grant camera access permission", - "NotFoundError": "ERROR: no camera on this device", - "NotSupportedError": "ERROR: secure context required (HTTPS, localhost)", - "NotReadableError": "ERROR: is the camera already in use?", - "OverconstrainedError": "ERROR: installed cameras are not suitable", - "StreamApiNotSupportedError": "ERROR: Stream API is not supported in this browser", - "InsecureContextError": "ERROR: Camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP." - } - }, - "passportView": { - "policyAgreement": { - "title": "Choose a policy:", - "contractId": "Contract ID:", - "policy": "Policy", - "type": "type", - "decline": "Decline", - "agree": "Agree", - "details": { - "moreDetails": "More details", - "lessDetails": "Less details" - }, - "declineModal": { - "question": "Are you sure you want to decline?", - "homepage": "This will take you back to the Homepage", - "cancel": "Cancel", - "confirm": "Yes, Decline" - } - }, - "dpp": "Digital Product Passport", - "bpp": "Battery Product Passport", - "tpp": "Transmission Product Passport", - "batteryComponentsNames": { - "generalInformation": "General Information", - "stateOfBattery": "State Of Battery", - "components": "Components", - "batteryComposition": "Battery Composition", - "cellChemistry": "Cell Chemistry", - "electrochemicalProperties": "Electrochemical Properties", - "documents": "Documents", - "exchange": "Exchange" - }, - "dppComponentsNames": { - "typology": "Typology", - "metadata": "Metadata", - "characteristics": "Characteristics", - "components": "Components", - "commercial": "Commercial", - "identification": "Identification", - "sources": "Sources", - "handling": "Handling", - "additionalData": "Additional Data", - "sustainability": "Sustainability", - "operation": "Operation", - "exchange": "Exchange" - }, - "tppComponentsNames": { - "productSpecificParameters": "Product Specific Parameters", - "instructions": "Instructions", - "sparePartSupplier": "Spare Part Supplier", - "components": "Components", - "stateOfHealth": "State of Health", - "identification": "Identification", - "generalInformation": "General Information", - "sustainability": "Sustainability", - "exchange": "Exchange" - } - }, - "home": { - "welcome": "Welcome", - "home": "Home" - }, - "footer": { - "help": "Help", - "contact": "Contact", - "imprint": "Imprint", - "privacy": "Privacy", - "terms": "Terms of Service", - "cookies": "Cookies", - "thirdParty": "Third Party Licenses", - "legal": "Legal notice", - "license": "License: Apache-2.0", - "licensePath": "Licence Path: ", - "viewLicense": "View License File", - "notice": "NOTICE: ", - "viewNotice": "View Notice File", - "source": "Source URL: ", - "commit": "Commit ID: ", - "copyright": "Copyright © Catena-X Automotive Network." - }, - "searchInput": { - "search": "Search", - "passportId": "Enter Passport ID" - }, - "barChart": { - "noData": "No data" - }, - "batteryCards": { - "titleGeneral": "GENERAL", - "labelGeneral": "Type", - "secondLabelGeneral": "Model", - "titlePerformance": "PERFORMANCE", - "labelPerformance": "Rated Capacity", - "secondLabelPerformance": "Model", - "descriptionPerformanceTitle": "Performance", - "descriptionPerformanceValue": "Description of the performance", - "titleHealth": "HEALTH", - "labelHealth": "State of Health (SoH)", - "secondLabelHealth": "Charging Cycles", - "descriptionHealthTitle": "Health", - "descriptionHealthValue": "Description of the health", - "titleSustainability": "SUSTAINABILITY", - "secondLabelSustainability": "CO2e/kWh", - "descriptionHSustainabilityTitle": "Sustainability", - "descriptionSustainabilityValue": "Description of the sustainability", - "chargingCycles": "Charging Cycles" - }, - "generalCards": { - "titleGeneral": "GENERAL", - "productName": "Product name", - "productType": "Product type", - "titleManufacturing": "MANUFACTURING", - "manufacturerId": "Manufacturer ID", - "dateOfManufacturing": "Date of Manufacturing", - "descriptionManufacturingTitle": "Manufacturing", - "descriptionManufacturingValue": "Description of the manufacturing", - "titleAspectVersion": "ASPECT VERSION", - "currentVersion": "Current version", - "issued": "Issued", - "descriptionAspectVersionTitle": "Aspect version", - "descriptionAspectVersionValue": "Description of the aspect version", - "titleSustainability": "SUSTAINABILITY", - "totalCo2Footprint": "Total CO2 footprint", - "warrantyPeriod": "Warranty period", - "tCo2Total": "t CO2 Total", - "months": "months", - "descriptionSustainabilityTitle": "Sustainability", - "descriptionSustainabilityValue": "Description of the Sustainability" - }, - "transmissionCards": { - "matrixCode": "Matrix code", - "parameters": "SPECIFIC PARAMETERS", - "driveType": "Drive type", - "oilType": "Oil type" - }, - "passportHeader": { - "backBtn": "Back" - }, - "field": { - "tempRange": "Temp range:", - "to": "to", - "referenceTest": "Reference test:" - }, - "recursiveTree": { - "notAvailable": "Not available" - }, - "dialog": { - "description": "Description", - "noDescription": "No description" - }, - "section": { - "noContent": "Sorry, no content" - }, - "error": { - "404NotFound": "404 Not Found", - "somethingWentWrong": "Oops, Something went wrong...", - "internalError": "The server encountered an internal error or misconfiguration and was unable to complete your request.", - "contactYourAdmin": "Please contact your admin", - "adminExample": "admin@example.com", - "reload": "Reload Page", - "homepage": "Homepage" - }, - "loading": { - "assetId": "Asset Id: ", - "registrySearch": "Registry Search", - "searching": "Searching...", - "registriesAvailable": "Registries available", - "contractSearch": "Contract Search", - "contractAvailable": "Contract available", - "contractNegotiation": "Contract Negotiation", - "negotiating": "Negotiating...", - "contractStatus": "Contract status: ", - "contractTransfer": "Contract Transfer", - "transferring": "Transferring...", - "transferCompleted": "Transfer completed", - "passportRetrieval": "Passport Retrieval", - "retrieving": "Retrieving... ", - "createdProcess": "Created Process ID: ", - "contractId": "Contract ID: " - }, - "sections": { - "instructions": { - "packagingInstructions": "Packaging instructions", - "transportationInstructions": "Transportation instructions", - "dismantlingProcedure": "Dismantling procedure", - "safetyMeasures": "Safety measures", - "vehicleDismantlingProcedure": "Vehicle dismantling procedure" - }, - "productSpecificParameters": { - "torqueConverter": "Torque converter", - "driveType": "Drive type", - "oilType": "Oil type", - "spreading": "Spreading", - "torque": "Torque", - "power": "Power", - "gear": "Gear", - "ratio": "Ratio", - "speed": "Speed", - "standardGearRatio": "Standard gear ratio", - "speedResistance": "Speed resistance", - "oilCapacity": "Oil capacity", - "electricPerformance": "Electric performance" - }, - "sparePartsSupplier": { - "supplierContact": "Supplier contact", - "supplierId": "Supplier id", - "sparePartName": "Spare part name" - }, - "stateOfHealth": { - "serviceHistory": "Service history", - "expectedLifespan": "Expected lifespan", - "remanufacturingDate": "Remanufacturing date", - "productStatusValue": "Product status value" - }, - "generalInformation": { - "additionalInformation": "Additional information", - "productDimensions": "Dimensions", - "productDescription": "Product description", - "productType": "Product type", - "batteryId": "Battery ID (DMC)", - "batteryIdDescriptionTitle": "Battery ID", - "batteryIdDescriptionValue": "Battery ID or DMC that you can find in your device settings", - "batteryType": "Battery Type", - "batteryModel": "Battery Model", - "warranty": "Warranty", - "dimensions": "Dimensions of the battery", - "weight": "Weight", - "dateOfManufacturing": "Date of Manufacture", - "placeOfManufacturing": "Place of Manufacturing", - "datePlacedOnMarket": "Date of placing on the market", - "manufacturerInformation": "Manufacturer Information", - "manufacturerContact": "Manufacturer Contact", - "cO2FootprintTotal": "CO2 Footprint" - }, - "stateOfBattery": { - "stateOfHealth": "State of health", - "cycleLifeTestCRate": "Cycle life test c rate", - "stateOfCharge": "State of charge", - "cycleLifeTestDepthOfDischarge": "Cycle life test depth of discharge", - "expectedLifetime": "Expected lifetime", - "temperatureRange": "Temperature range (idle state)", - "statusBattery": "Status battery" - }, - "components": { - "searchForChild": "The search for child components started, this may take a while...", - "noChild": "No child components found", - "somethingWentWrong": "Something went wrong while searching for child components" - }, - "batteryComposition": { - "batteryComposites": "Main Battery Composites", - "criticalRawMaterials": "Critical raw materials" - }, - "cellChemistry": { - "electrolyteComposition": "Composition of electrolyte", - "recyclateContent": "Recyclate Content Active Materials" - }, - "electrochemicalProperties": { - "capacity": "Capacity", - "ratedCapacity": "Rated capacity", - "capacityFade": "Capacity fade", - "capacityThresholdExhaustion": "Capacity threshold exhaustion", - "efficiency": "Efficiency", - "originalPowerCapability": "Original power capability", - "originalPowerCapabilityLimits": "Original power capability limits", - "maximumAllowedBatteryPower": "Maximum allowed battery energy (MABE)", - "MABEvsMABP": "Ratio MABE vs. MABP", - "powerCapabilityAt20Charge": "Power capability at 20 charge", - "powerCapabilityAt80Charge": "Power capability at 80 charge", - "powerFade": "Power fade", - "resistance": "Resistance", - "packInternalResistance": "Pack internal resistance", - "packInternalResistanceIncrease": "Pack internal resistance increase", - "cellInternalResistance": "Cell internal resistance", - "voltage": "Voltage", - "nominalVoltage": "Nominal voltage", - "maxVoltage": "Max voltage", - "minVoltage": "Min voltage" - }, - "exchange": { - "contract": "Contract", - "policy": "Policy", - "distribution": "Distribution", - "negotiation": "Negotiation", - "context": "Context", - "negotiationRequest": "Negotiation request", - "offer": "Offer", - "transfer": "Transfer", - "edcDataRequest": "EDC data request", - "transferRequest": "Transfer request", - "id": "ID", - "type": "Type", - "policyId": "Policy ID", - "distributionList": "Distribution List", - "edcDescription": "EDC description", - "edcId": "EDC ID", - "edcType": "EDC Type", - "edcProtocol": "EDC protocol", - "protocol": "Protocol", - "edcState": "EDC state", - "edcCounterPartyAddress": "EDC counter party address", - "edcContractAgreementId": "EDC contract agreement ID", - "connectorId": "Connector ID", - "providerId": "Provider ID", - "offerDetail": "Offer detail", - "transferId": "Transfer ID", - "transferType": "Transfer Type", - "transferState": "Transfer state", - "edcTimestamp": "EDC timestamp", - "edcDataRequestId": "EDC data request ID", - "edcReceiverHttpEndpoint": "EDC receiver http endpoint", - "assetId": "Asset ID", - "connectorAddress": "Connector address", - "contractId": "Contract ID", - "dataDestination": "Data destination", - "reciverHttpEndpoint": "Reciver http endpoint", - "contentType": "Content type" - }, - "characteristics": { - "physicalDimensionsProperty": "Physical dimensions property", - "weight": "Weight", - "lifespan": "Lifespan", - "energyCapacity": "Energy capacity", - "voltage": "Voltage", - "physicalState": "Physical state", - "weightOrVolume": "Weight or volume", - "diameter": "Diameter", - "grossWeight": "Gross weight", - "grossVolume": "Gross volume" - }, - "commercial": { - "placedOnMarket": "Place on the market", - "warranty": "Warranty" - }, - "handling": { - "maintenanceHistory": "Maintenance history", - "spareParts": "Spare parts", - "substanceOfConcern": "Substance of concern", - "producerId": "Producer Id", - "partName": "Part name", - "partGtin": "Part gtin", - "type": "Type", - "location": "Location", - "unit": "Unit", - "concentrationMax": "Concentration max", - "concentrationMin": "Concentration min", - "exemption": "Exemption", - "idType": "Id type", - "id": "Id" - }, - "identification": { - "gtin": "Gtin", - "manufacturerId": "Manufacturer ID", - "dataMatrixCode": "Data matrix code" - }, - "metadata": { - "predecessor": "Predecessor", - "legitimization": "Legitimization", - "identification": "Identification", - "issueDate": "Issue date", - "version": "Version", - "validityDate": "Validity date", - "customerPartId": "Customer part ID", - "manufacturerPartId": "Manufacturer part ID", - "status": "Status", - "expirationDate": "Expiration date" - }, - "operation": { - "importer": "Importer ID", - "importerEori": "Importer EORI", - "manufacturerId": "Manufacturer ID", - "facilityId": "Facility ID", - "manufacturingDate": "Manufacturing date" - }, - "serialization": { - "manufacturingInformation": "Manufacturing information", - "date": "Date", - "country": "Country", - "registration": "Registration", - "customerPartId": "Customer part ID", - "manufacturerPartId": "Manufacturer part ID", - "quantity": "Quantity" - }, - "sustainability": { - "state": "State", - "material": "Material", - "carbonContentTotal": "Carbon content total", - "crossSectoralStandard": "Cross sectoral standard used", - "substancesOfConcern": "Substances of concern", - "criticalRawMaterials": "Critical raw materials", - "co2FootprintTotal": "CO₂ footprint total", - "operator": "Operator", - "ruleNames": "Rule names", - "otherOperatorName": "Other operator name", - "productOrSectorSpecificRules": "Product or sector specific rules", - "critical": "Critical" - }, - "typology": { - "name": "Name", - "shortName": "Short name", - "longName": "Long name", - "definition": "Definition", - "code": "Code", - "nameAtManufacturer": "Name at manufacturer", - "nameAtCustomer": "Name at customer" - } - } -} +{ + "header": { + "helpBtn": "Help", + "helpTooltip": " Here you can get help if you need to know more about Catena-X", + "signOut": "Sign Out" + }, + "searchView": { + "title": "Catena-X Battery Passport", + "welcomeMessage": "The term \"Battery Passport\" refers to a digital document that contains essential information about a battery, specifically in the context of electric vehicles (EVs). This document includes details about the battery's manufacturer, specifications, performance characteristics, health status, and lifecycle data. The purpose of a Battery Passport is to facilitate proper maintenance, servicing, and recycling of the battery, while also enabling traceability and compliance.", + "errorCameraOff": "Your camera is off.", + "errorTypeID": "Turn it on or type the ID.", + "findOutMore": "Want to find out more? Read our Get", + "guide": "Started Guide", + "cameraError": { + "NotAllowedError": "ERROR: you need to grant camera access permission", + "NotFoundError": "ERROR: no camera on this device", + "NotSupportedError": "ERROR: secure context required (HTTPS, localhost)", + "NotReadableError": "ERROR: is the camera already in use?", + "OverconstrainedError": "ERROR: installed cameras are not suitable", + "StreamApiNotSupportedError": "ERROR: Stream API is not supported in this browser", + "InsecureContextError": "ERROR: Camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP." + } + }, + "passportView": { + "policyAgreement": { + "title": "Choose a policy:", + "contractId": "Contract ID:", + "policy": "Policy", + "type": "type", + "decline": "Decline", + "agree": "Agree", + "details": { + "moreDetails": "More details", + "lessDetails": "Less details" + }, + "declineModal": { + "question": "Are you sure you want to decline?", + "homepage": "This will take you back to the Homepage", + "cancel": "Cancel", + "confirm": "Yes, Decline" + } + }, + "dpp": "Digital Product Passport", + "bpp": "Battery Product Passport", + "tpp": "Transmission Product Passport", + "batteryComponentsNames": { + "generalInformation": "General Information", + "stateOfBattery": "State Of Battery", + "components": "Components", + "batteryComposition": "Battery Composition", + "cellChemistry": "Cell Chemistry", + "electrochemicalProperties": "Electrochemical Properties", + "documents": "Documents", + "exchange": "Exchange" + }, + "dppComponentsNames": { + "typology": "Typology", + "metadata": "Metadata", + "characteristics": "Characteristics", + "components": "Components", + "commercial": "Commercial", + "identification": "Identification", + "sources": "Sources", + "handling": "Handling", + "additionalData": "Additional Data", + "sustainability": "Sustainability", + "operation": "Operation", + "exchange": "Exchange" + }, + "tppComponentsNames": { + "productSpecificParameters": "Product Specific Parameters", + "instructions": "Instructions", + "sparePartSupplier": "Spare Part Supplier", + "components": "Components", + "stateOfHealth": "State of Health", + "identification": "Identification", + "generalInformation": "General Information", + "sustainability": "Sustainability", + "exchange": "Exchange" + } + }, + "home": { + "welcome": "Welcome", + "home": "Home" + }, + "footer": { + "help": "Help", + "contact": "Contact", + "imprint": "Imprint", + "privacy": "Privacy", + "terms": "Terms of Service", + "cookies": "Cookies", + "thirdParty": "Third Party Licenses", + "legal": "Legal notice", + "license": "License: Apache-2.0", + "licensePath": "Licence Path: ", + "viewLicense": "View License File", + "notice": "NOTICE: ", + "viewNotice": "View Notice File", + "source": "Source URL: ", + "commit": "Commit ID: ", + "copyright": "Copyright © Catena-X Automotive Network." + }, + "searchInput": { + "search": "Search", + "passportId": "Enter Passport ID" + }, + "barChart": { + "noData": "No data" + }, + "batteryCards": { + "titleGeneral": "GENERAL", + "labelGeneral": "Type", + "secondLabelGeneral": "Model", + "titlePerformance": "PERFORMANCE", + "labelPerformance": "Rated Capacity", + "secondLabelPerformance": "Model", + "descriptionPerformanceTitle": "Performance", + "descriptionPerformanceValue": "Description of the performance", + "titleHealth": "HEALTH", + "labelHealth": "State of Health (SoH)", + "secondLabelHealth": "Charging Cycles", + "descriptionHealthTitle": "Health", + "descriptionHealthValue": "Description of the health", + "titleSustainability": "SUSTAINABILITY", + "secondLabelSustainability": "CO2e/kWh", + "descriptionHSustainabilityTitle": "Sustainability", + "descriptionSustainabilityValue": "Description of the sustainability", + "chargingCycles": "Charging Cycles" + }, + "generalCards": { + "titleGeneral": "GENERAL", + "productName": "Product name", + "productType": "Product type", + "titleManufacturing": "MANUFACTURING", + "manufacturerId": "Manufacturer ID", + "dateOfManufacturing": "Date of Manufacturing", + "descriptionManufacturingTitle": "Manufacturing", + "descriptionManufacturingValue": "Description of the manufacturing", + "titleAspectVersion": "ASPECT VERSION", + "currentVersion": "Current version", + "issued": "Issued", + "descriptionAspectVersionTitle": "Aspect version", + "descriptionAspectVersionValue": "Description of the aspect version", + "titleSustainability": "SUSTAINABILITY", + "totalCo2Footprint": "Total CO2 footprint", + "warrantyPeriod": "Warranty period", + "tCo2Total": "t CO2 Total", + "months": "months", + "descriptionSustainabilityTitle": "Sustainability", + "descriptionSustainabilityValue": "Description of the Sustainability" + }, + "transmissionCards": { + "matrixCode": "Matrix code", + "parameters": "SPECIFIC PARAMETERS", + "driveType": "Drive type", + "oilType": "Oil type" + }, + "passportHeader": { + "backBtn": "Back" + }, + "field": { + "tempRange": "Temp range:", + "to": "to", + "referenceTest": "Reference test:" + }, + "recursiveTree": { + "notAvailable": "Not available" + }, + "dialog": { + "description": "Description", + "noDescription": "No description" + }, + "section": { + "noContent": "Sorry, no content" + }, + "error": { + "404NotFound": "404 Not Found", + "somethingWentWrong": "Oops, Something went wrong...", + "internalError": "The server encountered an internal error or misconfiguration and was unable to complete your request.", + "contactYourAdmin": "Please contact your admin", + "adminExample": "admin@example.com", + "reload": "Reload Page", + "homepage": "Homepage" + }, + "loading": { + "assetId": "Asset Id: ", + "registrySearch": "Registry Search", + "searching": "Searching...", + "registriesAvailable": "Registries available", + "contractSearch": "Contract Search", + "contractAvailable": "Contract available", + "contractNegotiation": "Contract Negotiation", + "negotiating": "Negotiating...", + "contractStatus": "Contract status: ", + "contractTransfer": "Contract Transfer", + "transferring": "Transferring...", + "transferCompleted": "Transfer completed", + "passportRetrieval": "Passport Retrieval", + "retrieving": "Retrieving... ", + "createdProcess": "Created Process ID: ", + "contractId": "Contract ID: " + }, + "sections": { + "instructions": { + "packagingInstructions": "Packaging instructions", + "transportationInstructions": "Transportation instructions", + "dismantlingProcedure": "Dismantling procedure", + "safetyMeasures": "Safety measures", + "vehicleDismantlingProcedure": "Vehicle dismantling procedure" + }, + "productSpecificParameters": { + "torqueConverter": "Torque converter", + "driveType": "Drive type", + "oilType": "Oil type", + "spreading": "Spreading", + "torque": "Torque", + "power": "Power", + "gear": "Gear", + "ratio": "Ratio", + "speed": "Speed", + "standardGearRatio": "Standard gear ratio", + "speedResistance": "Speed resistance", + "oilCapacity": "Oil capacity", + "electricPerformance": "Electric performance" + }, + "sparePartsSupplier": { + "supplierContact": "Supplier contact", + "supplierId": "Supplier id", + "sparePartName": "Spare part name" + }, + "stateOfHealth": { + "serviceHistory": "Service history", + "expectedLifespan": "Expected lifespan", + "remanufacturingDate": "Remanufacturing date", + "productStatusValue": "Product status value" + }, + "generalInformation": { + "additionalInformation": "Additional information", + "productDimensions": "Dimensions", + "productDescription": "Product description", + "productType": "Product type", + "batteryId": "Battery ID (DMC)", + "batteryIdDescriptionTitle": "Battery ID", + "batteryIdDescriptionValue": "Battery ID or DMC that you can find in your device settings", + "batteryType": "Battery Type", + "batteryModel": "Battery Model", + "warranty": "Warranty", + "dimensions": "Dimensions of the battery", + "weight": "Weight", + "dateOfManufacturing": "Date of Manufacture", + "placeOfManufacturing": "Place of Manufacturing", + "datePlacedOnMarket": "Date of placing on the market", + "manufacturerInformation": "Manufacturer Information", + "manufacturerContact": "Manufacturer Contact", + "cO2FootprintTotal": "CO2 Footprint" + }, + "stateOfBattery": { + "stateOfHealth": "State of health", + "cycleLifeTestCRate": "Cycle life test c rate", + "stateOfCharge": "State of charge", + "cycleLifeTestDepthOfDischarge": "Cycle life test depth of discharge", + "expectedLifetime": "Expected lifetime", + "temperatureRange": "Temperature range (idle state)", + "statusBattery": "Status battery" + }, + "components": { + "searchForChild": "The search for child components started, this may take a while...", + "noChild": "No child components found", + "somethingWentWrong": "Something went wrong while searching for child components" + }, + "batteryComposition": { + "batteryComposites": "Main Battery Composites", + "criticalRawMaterials": "Critical raw materials" + }, + "cellChemistry": { + "electrolyteComposition": "Composition of electrolyte", + "recyclateContent": "Recyclate Content Active Materials" + }, + "electrochemicalProperties": { + "capacity": "Capacity", + "ratedCapacity": "Rated capacity", + "capacityFade": "Capacity fade", + "capacityThresholdExhaustion": "Capacity threshold exhaustion", + "efficiency": "Efficiency", + "originalPowerCapability": "Original power capability", + "originalPowerCapabilityLimits": "Original power capability limits", + "maximumAllowedBatteryPower": "Maximum allowed battery energy (MABE)", + "MABEvsMABP": "Ratio MABE vs. MABP", + "powerCapabilityAt20Charge": "Power capability at 20 charge", + "powerCapabilityAt80Charge": "Power capability at 80 charge", + "powerFade": "Power fade", + "resistance": "Resistance", + "packInternalResistance": "Pack internal resistance", + "packInternalResistanceIncrease": "Pack internal resistance increase", + "cellInternalResistance": "Cell internal resistance", + "voltage": "Voltage", + "nominalVoltage": "Nominal voltage", + "maxVoltage": "Max voltage", + "minVoltage": "Min voltage" + }, + "exchange": { + "contract": "Contract", + "policy": "Policy", + "distribution": "Distribution", + "negotiation": "Negotiation", + "context": "Context", + "negotiationRequest": "Negotiation request", + "offer": "Offer", + "transfer": "Transfer", + "edcDataRequest": "EDC data request", + "transferRequest": "Transfer request", + "id": "ID", + "type": "Type", + "policyId": "Policy ID", + "distributionList": "Distribution List", + "edcDescription": "EDC description", + "edcId": "EDC ID", + "edcType": "EDC Type", + "edcProtocol": "EDC protocol", + "protocol": "Protocol", + "edcState": "EDC state", + "edcCounterPartyAddress": "EDC counter party address", + "edcContractAgreementId": "EDC contract agreement ID", + "connectorId": "Connector ID", + "providerId": "Provider ID", + "offerDetail": "Offer detail", + "transferId": "Transfer ID", + "transferType": "Transfer Type", + "transferState": "Transfer state", + "edcTimestamp": "EDC timestamp", + "edcDataRequestId": "EDC data request ID", + "edcReceiverHttpEndpoint": "EDC receiver http endpoint", + "assetId": "Asset ID", + "connectorAddress": "Connector address", + "contractId": "Contract ID", + "dataDestination": "Data destination", + "reciverHttpEndpoint": "Reciver http endpoint", + "contentType": "Content type" + }, + "characteristics": { + "physicalDimensionsProperty": "Physical dimensions property", + "weight": "Weight", + "lifespan": "Lifespan", + "energyCapacity": "Energy capacity", + "voltage": "Voltage", + "physicalState": "Physical state", + "weightOrVolume": "Weight or volume", + "diameter": "Diameter", + "grossWeight": "Gross weight", + "grossVolume": "Gross volume" + }, + "commercial": { + "placedOnMarket": "Place on the market", + "warranty": "Warranty" + }, + "handling": { + "maintenanceHistory": "Maintenance history", + "spareParts": "Spare parts", + "substanceOfConcern": "Substance of concern", + "producerId": "Producer Id", + "partName": "Part name", + "partGtin": "Part gtin", + "type": "Type", + "location": "Location", + "unit": "Unit", + "concentrationMax": "Concentration max", + "concentrationMin": "Concentration min", + "exemption": "Exemption", + "idType": "Id type", + "id": "Id" + }, + "identification": { + "gtin": "Gtin", + "manufacturerId": "Manufacturer ID", + "dataMatrixCode": "Data matrix code" + }, + "metadata": { + "predecessor": "Predecessor", + "legitimization": "Legitimization", + "identification": "Identification", + "issueDate": "Issue date", + "version": "Version", + "validityDate": "Validity date", + "customerPartId": "Customer part ID", + "manufacturerPartId": "Manufacturer part ID", + "status": "Status", + "expirationDate": "Expiration date" + }, + "operation": { + "importer": "Importer ID", + "importerEori": "Importer EORI", + "manufacturerId": "Manufacturer ID", + "facilityId": "Facility ID", + "manufacturingDate": "Manufacturing date" + }, + "serialization": { + "manufacturingInformation": "Manufacturing information", + "date": "Date", + "country": "Country", + "registration": "Registration", + "customerPartId": "Customer part ID", + "manufacturerPartId": "Manufacturer part ID", + "quantity": "Quantity" + }, + "sustainability": { + "state": "State", + "material": "Material", + "carbonContentTotal": "Carbon content total", + "crossSectoralStandard": "Cross sectoral standard used", + "substancesOfConcern": "Substances of concern", + "criticalRawMaterials": "Critical raw materials", + "co2FootprintTotal": "CO₂ footprint total", + "operator": "Operator", + "ruleNames": "Rule names", + "otherOperatorName": "Other operator name", + "productOrSectorSpecificRules": "Product or sector specific rules", + "critical": "Critical" + }, + "typology": { + "name": "Name", + "shortName": "Short name", + "longName": "Long name", + "definition": "Definition", + "code": "Code", + "nameAtManufacturer": "Name at manufacturer", + "nameAtCustomer": "Name at customer" + } + } +} diff --git a/src/utils/authUtil.js b/dpp-frontend/src/utils/authUtil.js similarity index 100% rename from src/utils/authUtil.js rename to dpp-frontend/src/utils/authUtil.js diff --git a/src/utils/configUtil.js b/dpp-frontend/src/utils/configUtil.js similarity index 100% rename from src/utils/configUtil.js rename to dpp-frontend/src/utils/configUtil.js diff --git a/src/utils/cryptUtil.js b/dpp-frontend/src/utils/cryptUtil.js similarity index 100% rename from src/utils/cryptUtil.js rename to dpp-frontend/src/utils/cryptUtil.js diff --git a/src/utils/edcUtil.js b/dpp-frontend/src/utils/edcUtil.js similarity index 100% rename from src/utils/edcUtil.js rename to dpp-frontend/src/utils/edcUtil.js diff --git a/src/utils/jsonUtil.js b/dpp-frontend/src/utils/jsonUtil.js similarity index 100% rename from src/utils/jsonUtil.js rename to dpp-frontend/src/utils/jsonUtil.js diff --git a/src/utils/numberUtil.js b/dpp-frontend/src/utils/numberUtil.js similarity index 100% rename from src/utils/numberUtil.js rename to dpp-frontend/src/utils/numberUtil.js diff --git a/src/utils/passportUtil.js b/dpp-frontend/src/utils/passportUtil.js similarity index 97% rename from src/utils/passportUtil.js rename to dpp-frontend/src/utils/passportUtil.js index 7bad928af..ce11597bb 100644 --- a/src/utils/passportUtil.js +++ b/dpp-frontend/src/utils/passportUtil.js @@ -1,102 +1,102 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import iconMappings from "@/config/templates/iconMappings.json"; - -export default { - formattedDate(timestamp) { - const date = new Date(timestamp); - const formattedDate = date.toLocaleDateString("en-GB", { - day: "2-digit", - month: "2-digit", - year: "numeric", - }); - return formattedDate; - }, - toSentenceCase(text) { - // Convert the string to sentence case - const words = text.split(/(?=[A-Z])/); - const firstWord = [words[0].charAt(0).toUpperCase() + words[0].slice(1)]; - const otherWords = words.slice(1).map((word) => word.toLowerCase()); - const formattedWords = firstWord.concat(otherWords); - return formattedWords.join(" "); - }, - unitRemover(unit) { - return unit.replace("unit:", ""); - }, - iconFinder(property) { - // Define a mapping of prefixes to icons - const prefixToIcon = iconMappings; - // Split the camel-cased key into separate words and lowercase them - const words = property - .split(/(?=[A-Z])/) - .map((word) => word.toLowerCase()); - // Check each word against the prefixToIcon mapping and take the first - for (const word of words) { - if (prefixToIcon[word]) { - return prefixToIcon[word]; - } - } - - // If no match is found, return the default icon - return "mdi-information-outline"; - }, - groupSources(sources) { - try { - - let mappedSources = {}; - for (let parentKey in sources) { - let parentSources = sources[parentKey]; - for (let key in parentSources) { - let doc = parentSources[key]; - if (parentKey === "optional") { - doc = doc["document"]; - } - if (doc instanceof Array) { - for (let docKey in doc) { - let subDoc = doc[docKey]["document"]; - let category = subDoc["category"]; - if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { - mappedSources[category] = []; - } - mappedSources[category].push(subDoc); - } - continue; - } - - let category = doc["category"]; - if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { - mappedSources[category] = []; - } - - mappedSources[category].push(doc); - } - } - return mappedSources; - } catch (e) { - console.error.log(e); // Print error message - return {}; - } - } -}; - +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import iconMappings from "@/config/templates/iconMappings.json"; + +export default { + formattedDate(timestamp) { + const date = new Date(timestamp); + const formattedDate = date.toLocaleDateString("en-GB", { + day: "2-digit", + month: "2-digit", + year: "numeric", + }); + return formattedDate; + }, + toSentenceCase(text) { + // Convert the string to sentence case + const words = text.split(/(?=[A-Z])/); + const firstWord = [words[0].charAt(0).toUpperCase() + words[0].slice(1)]; + const otherWords = words.slice(1).map((word) => word.toLowerCase()); + const formattedWords = firstWord.concat(otherWords); + return formattedWords.join(" "); + }, + unitRemover(unit) { + return unit.replace("unit:", ""); + }, + iconFinder(property) { + // Define a mapping of prefixes to icons + const prefixToIcon = iconMappings; + // Split the camel-cased key into separate words and lowercase them + const words = property + .split(/(?=[A-Z])/) + .map((word) => word.toLowerCase()); + // Check each word against the prefixToIcon mapping and take the first + for (const word of words) { + if (prefixToIcon[word]) { + return prefixToIcon[word]; + } + } + + // If no match is found, return the default icon + return "mdi-information-outline"; + }, + groupSources(sources) { + try { + + let mappedSources = {}; + for (let parentKey in sources) { + let parentSources = sources[parentKey]; + for (let key in parentSources) { + let doc = parentSources[key]; + if (parentKey === "optional") { + doc = doc["document"]; + } + if (doc instanceof Array) { + for (let docKey in doc) { + let subDoc = doc[docKey]["document"]; + let category = subDoc["category"]; + if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { + mappedSources[category] = []; + } + mappedSources[category].push(subDoc); + } + continue; + } + + let category = doc["category"]; + if (!Object.prototype.hasOwnProperty.call(mappedSources, category)) { + mappedSources[category] = []; + } + + mappedSources[category].push(doc); + } + } + return mappedSources; + } catch (e) { + console.error.log(e); // Print error message + return {}; + } + } +}; + diff --git a/src/utils/threadUtil.js b/dpp-frontend/src/utils/threadUtil.js similarity index 100% rename from src/utils/threadUtil.js rename to dpp-frontend/src/utils/threadUtil.js diff --git a/src/views/HomeView.vue b/dpp-frontend/src/views/HomeView.vue similarity index 96% rename from src/views/HomeView.vue rename to dpp-frontend/src/views/HomeView.vue index af34ce67b..85ebdf0d2 100644 --- a/src/views/HomeView.vue +++ b/dpp-frontend/src/views/HomeView.vue @@ -1,73 +1,73 @@ - - - - - - + + + + + + diff --git a/src/views/PageNotFound.vue b/dpp-frontend/src/views/PageNotFound.vue similarity index 96% rename from src/views/PageNotFound.vue rename to dpp-frontend/src/views/PageNotFound.vue index d7341c3c4..4146dab8d 100644 --- a/src/views/PageNotFound.vue +++ b/dpp-frontend/src/views/PageNotFound.vue @@ -1,50 +1,50 @@ - - - - - - + + + + + + diff --git a/src/views/PassportView.vue b/dpp-frontend/src/views/PassportView.vue similarity index 97% rename from src/views/PassportView.vue rename to dpp-frontend/src/views/PassportView.vue index b04cba69a..5681a4936 100644 --- a/src/views/PassportView.vue +++ b/dpp-frontend/src/views/PassportView.vue @@ -1,995 +1,995 @@ - - - - - - + + + + + + diff --git a/src/views/SearchView.vue b/dpp-frontend/src/views/SearchView.vue similarity index 96% rename from src/views/SearchView.vue rename to dpp-frontend/src/views/SearchView.vue index 939d71a3c..9f35af387 100644 --- a/src/views/SearchView.vue +++ b/dpp-frontend/src/views/SearchView.vue @@ -1,197 +1,197 @@ - - - - - + + + + + diff --git a/vite.config.js b/dpp-frontend/vite.config.js similarity index 97% rename from vite.config.js rename to dpp-frontend/vite.config.js index 0727725a2..1389e2d52 100644 --- a/vite.config.js +++ b/dpp-frontend/vite.config.js @@ -1,105 +1,105 @@ -/** - * Tractus-X - Digital Product Passport Application - * - * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA - * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation - * - * See the NOTICE file(s) distributed with this work for additional - * information regarding copyright ownership. - * - * This program and the accompanying materials are made available under the - * terms of the Apache License, Version 2.0 which is available at - * https://www.apache.org/licenses/LICENSE-2.0. - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, - * either express or implied. See the - * License for the specific language govern in permissions and limitations - * under the License. - * - * SPDX-License-Identifier: Apache-2.0 - */ - -import { fileURLToPath, URL } from 'node:url'; -import { defineConfig } from 'vite'; -import vue from '@vitejs/plugin-vue'; -import { visualizer } from 'rollup-plugin-visualizer'; -import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'; - -// https://vitejs.dev/config/ -export default defineConfig(async ({ command, mode }) => { - return { - base: '/passport', - // https://vitejs.dev/config/shared-options.html#define - define: { 'process.env': {} }, - optimizeDeps: { - include: [ - 'vue', - 'vue-router', - 'vuex', - "crypto-js", - "vue3-qrcode-reader" - ] - }, - plugins: [ - vue( - { - template: { - // https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin#image-loading - transformAssetUrls, - }, - } - ), - vuetify({ autoImport: true }) - ], - resolve: { - alias: { - '@': fileURLToPath(new URL('./src', import.meta.url)), - '~': fileURLToPath(new URL('./node_modules', import.meta.url)) - }, - extensions: ['.js', '.json', '.jsx', '.vue'], - }, - server: { - port: 8080, - fs: { - // Allow serving files from one level up to the project root - allow: ['..'], - }, - }, - build: { - target: 'esnext', - minify: 'esbuild', - rollupOptions: { - // @ts-ignore - output: { - manualChunks: { - // Split external library from transpiled code. - vue: ['vue', 'vue-router', 'vuex', 'vuex', 'vuex-persistedstate'], - vuetify: [ - 'vuetify', - 'vuetify/components', - 'vuetify/directives', - 'webfontloader', - ], - materialdesignicons: ['@mdi/font/css/materialdesignicons.css'], - }, - plugins: [ - mode === 'analyze' - ? // rollup-plugin-visualizer - // https://github.com/btd/rollup-plugin-visualizer - visualizer({ - open: true, - filename: 'dist/stats.html', - }) - : undefined, - ], - }, - }, - esbuild: { - // Drop console when production build. - drop: command === 'serve' ? [] : ['console'], - }, - } - } -}); +/** + * Tractus-X - Digital Product Passport Application + * + * Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA + * Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation + * + * See the NOTICE file(s) distributed with this work for additional + * information regarding copyright ownership. + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, + * either express or implied. See the + * License for the specific language govern in permissions and limitations + * under the License. + * + * SPDX-License-Identifier: Apache-2.0 + */ + +import { fileURLToPath, URL } from 'node:url'; +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import { visualizer } from 'rollup-plugin-visualizer'; +import vuetify, { transformAssetUrls } from 'vite-plugin-vuetify'; + +// https://vitejs.dev/config/ +export default defineConfig(async ({ command, mode }) => { + return { + base: '/passport', + // https://vitejs.dev/config/shared-options.html#define + define: { 'process.env': {} }, + optimizeDeps: { + include: [ + 'vue', + 'vue-router', + 'vuex', + "crypto-js", + "vue3-qrcode-reader" + ] + }, + plugins: [ + vue( + { + template: { + // https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin#image-loading + transformAssetUrls, + }, + } + ), + vuetify({ autoImport: true }) + ], + resolve: { + alias: { + '@': fileURLToPath(new URL('./src', import.meta.url)), + '~': fileURLToPath(new URL('./node_modules', import.meta.url)) + }, + extensions: ['.js', '.json', '.jsx', '.vue'], + }, + server: { + port: 8080, + fs: { + // Allow serving files from one level up to the project root + allow: ['..'], + }, + }, + build: { + target: 'esnext', + minify: 'esbuild', + rollupOptions: { + // @ts-ignore + output: { + manualChunks: { + // Split external library from transpiled code. + vue: ['vue', 'vue-router', 'vuex', 'vuex', 'vuex-persistedstate'], + vuetify: [ + 'vuetify', + 'vuetify/components', + 'vuetify/directives', + 'webfontloader', + ], + materialdesignicons: ['@mdi/font/css/materialdesignicons.css'], + }, + plugins: [ + mode === 'analyze' + ? // rollup-plugin-visualizer + // https://github.com/btd/rollup-plugin-visualizer + visualizer({ + open: true, + filename: 'dist/stats.html', + }) + : undefined, + ], + }, + }, + esbuild: { + // Drop console when production build. + drop: command === 'serve' ? [] : ['console'], + }, + } + } +}); diff --git a/sonar-project.properties b/sonar-project.properties deleted file mode 100644 index dfa630750..000000000 --- a/sonar-project.properties +++ /dev/null @@ -1,31 +0,0 @@ -################################################################################# -# Tractus-X - Digital Product Passport Application -# -# Copyright (c) 2022, 2024 BASF SE, BMW AG, Henkel AG & Co. KGaA -# Copyright (c) 2022, 2024 Contributors to the Eclipse Foundation -# -# See the NOTICE file(s) distributed with this work for additional -# information regarding copyright ownership. -# -# This program and the accompanying materials are made available under the -# terms of the Apache License, Version 2.0 which is available at -# https://www.apache.org/licenses/LICENSE-2.0. -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, -# either express or implied. See the -# License for the specific language govern in permissions and limitations -# under the License. -# -# SPDX-License-Identifier: Apache-2.0 -################################################################################# - -sonar.projectKey=catenax-ng_product-battery-passport-consumer-app -sonar.organization=catenax-ng -sonar.javascript.lcov.reportPaths= ./coverage/lcov.info -sonar.coverage.exclusions=src/**/index.js -sonar.java.binaries=**/target/classes -sonar.exclusions=dpp-backend/materialpass/target/** -#sonar.exclusions=dpp-backend/** -sonar.sourceEncoding=UTF-8 diff --git a/src/assets/MOCK/BAT-XYZ789.json b/src/assets/MOCK/BAT-XYZ789.json deleted file mode 100644 index 3319bbc16..000000000 --- a/src/assets/MOCK/BAT-XYZ789.json +++ /dev/null @@ -1,288 +0,0 @@ -{ - "metadata": { - "contract": { - "@id": "9b3c0977-6b14-4201-bd76-55f681a92872", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - } - } - }, - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393629505, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393631831, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393633142, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:DataRequestDto", - "edc:assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "edc:contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "semanticId": "general", - "aspect": { - "serialization": { - "manufacturingInformation": { - "date": "2023-08-30T10:30:00", - "country": "USA" - }, - "registration": { - "customerPartId": "PRT-67890", - "manufacturerPartId": "HV-SPORT-123" - }, - "quantity": { - "value": 1, - "unit": "unit:piece" - } - }, - "typology": { - "name": "High Voltage Battery for Sports Car", - "description": "High performance battery for electric sports cars", - "class": { - "definition": "High Voltage Battery", - "code": "33-06-01-01" - }, - "nameAtManufacturer": "Performance Battery Pack", - "nameAtCustomer": "High-Performance Energy Source" - }, - "metadata": { - "issueDate": "2023-08-30", - "version": "2.0.0", - "validityDate": "2023-08-30", - "economicOperator": { - "eori": "US987654321000", - "id": "BPNL000000000000" - }, - "status": "Approved" - }, - "characteristics": { - "physicalDimensionsProperty": { - "width": 800, - "length": 1200, - "weight": 300.5, - "height": 150 - }, - "energyCapacity": { - "value": 85, - "unit": "unit:kWh" - }, - "voltage": { - "value": 400, - "unit": "unit:V" - } - }, - "commercial": { - "placedOnMarket": "2023-09-01", - "warranty": 72 - }, - "identification": { - "localIdentifiers": [ - { - "value": "BAT-XYZ789", - "key": "PartInstanceID" - } - ], - "gtin": "12345678901234", - "additionalCode": [ - { - "name": "TARIC", - "value": "8507 80 00 00" - } - ] - }, - "sources": { - "mandatory": { - "safetyInformation": { - "header": "Safety Datasheet for High Voltage Battery", - "category": "Safety", - "type": "link", - "content": "www.example.com/safety_datasheet.pdf" - }, - "environmentalImpact": { - "header": "Environmental Impact Assessment", - "category": "Environment", - "type": "link", - "content": "www.example.com/environmental_impact.pdf" - } - }, - "optional": [ - { - "name": "userManual", - "document": { - "header": "User Manual for High Voltage Battery", - "category": "User Manual", - "type": "link", - "content": "www.example.com/user_manual.pdf" - } - } - ] - }, - "sustainability": { - "state": "first life", - "material": [ - { - "name": "Lithium-Ion", - "recycled": false, - "renewable": false, - "percentage": 80 - } - ], - "critical": [ - "Lithium", - "Cobalt" - ], - "carbonFootprint": { - "carbonContentTotal": 10.2, - "crossSectoralStandard": "ISO 14040", - "productOrSectorSpecificRules": [ - { - "ruleName": "ISO 14067" - } - ] - } - }, - "operation": { - "importer": "BPNL000000000000", - "manufacturer": { - "manufacturerId": "BPNL000000000000", - "facilityId": "BPNL000000000123" - } - } - } -} \ No newline at end of file diff --git a/src/assets/MOCK/IMR18650V1-depricated.json b/src/assets/MOCK/IMR18650V1-depricated.json deleted file mode 100644 index 28ae2b84e..000000000 --- a/src/assets/MOCK/IMR18650V1-depricated.json +++ /dev/null @@ -1,475 +0,0 @@ -{ - "status": 200, - "data": { - "metadata": { - "contract": { - "@id": "9b3c0977-6b14-4201-bd76-55f681a92872", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "@type": "odrl:Set", - "odrl:permission": [ - { - "odrl:target": "urn:uuid:d6a0ed29-8ba4-fc00-169c-72d3986e4684", - "odrl:action": { - "odrl:type": "USE" - }, - "odrl:constraint": { - "odrl:or": { - "odrl:leftOperand": "PURPOSE", - "odrl:operator": { - "@id": "odrl:eq" - }, - "odrl:rightOperand": "ID 3.0 Trace" - } - } - }, - { - "odrl:target": "urn:uuid:d6a0ed29-8ba4-fc00-169c-72d3986e4684", - "odrl:action": { - "odrl:type": "ACCESS" - }, - "odrl:constraint": { - "odrl:or": { - "odrl:leftOperand": "PURPOSE", - "odrl:operator": { - "@id": "odrl:eq" - }, - "odrl:rightOperand": "DPP" - } - } - } - ], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - } - } - }, - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393629505, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393631831, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393633142, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:DataRequestDto", - "edc:assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "edc:contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "passport": { - "electrochemicalProperties": { - "ratedCapacity": 94, - "batteryEnergy": { - "energyRoundtripEfficiencyChange": 48.2, - "maximumAllowedBatteryEnergy": 85000, - "energyRoundtripEfficiency": 25 - }, - "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy": 0.588, - "batteryVoltage": { - "nominalVoltage": 3.7, - "maxVoltage": 4.2, - "minVoltage": 2.5 - }, - "internalResistance": { - "cellinternalResistance": 0.36, - "packinternalResistanceIncrease": 1, - "packinternalResistance": 100 - }, - "capacityThresholdExhaustion": 23, - "batteryPower": { - "powerFade": 23, - "originalPowerCapability": -1.7976931348623157E308, - "originalPowerCapabilityLimits": -1.7976931348623157E308, - "maximumAllowedBatteryPower": -1.7976931348623157E308, - "powerCapabilityAt20Charge": -1.7976931348623157E308, - "powerCapabilityAt80Charge": -1.7976931348623157E308 - }, - "capacityFade": 1.55 - }, - "document": { - "responsibleSourcing": [ - { - "title": "2021 Responsible Sourcing document", - "fileLocation": null - } - ], - "packagingInstructions": [ - { - "title": "Packing Instruction v.2.0", - "fileLocation": null - } - ], - "transportationInstructions": [ - { - "title": "Transport manual", - "fileLocation": null - } - ], - "vehicleDismantlingProcedure": [ - { - "title": "Car dismantling manual", - "fileLocation": "http://www.ietf.org/rfc/rfc2396.txt" - } - ], - "testReportsResults": [ - { - "title": "Battery Test Reports", - "fileLocation": "http://www.Batterytestreports.de" - } - ], - "batteryDismantlingProcedure": [ - { - "title": "Dismantling Manual", - "fileLocation": "http://www.dissmantlingmanual.org" - } - ], - "safetyMeasures": [ - { - "title": "Safety Instruction", - "fileLocation": "http://www.safetyinstructions.txt" - } - ], - "declarationOfConformity": [ - { - "title": "Declaration of Conformity No. 3", - "fileLocation": null - } - ] - }, - "datePlacedOnMarket": "27.04.2022", - "cellChemistry": { - "electrolyteComposition": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "dimethyl carbonate (DCM)" - } - ], - "anodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "Carboxymethyl cellulose" - } - ], - "recyclateContentActiveMaterials": [ - { - "materialPercentageMassFraction": 6, - "materialWeight": null, - "materialName": "Ni/2021/PlantE" - }, - { - "materialPercentageMassFraction": 4, - "materialWeight": null, - "materialName": "Li/2021/PlantE" - }, - { - "materialPercentageMassFraction": 0, - "materialWeight": null, - "materialName": "Pb(battery model does not contain Pb)" - }, - { - "materialPercentageMassFraction": 0, - "materialWeight": null, - "materialName": "Co(battery model does not contain Pb)" - } - ], - "anodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "Graphite" - } - ], - "cathodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "LiMn2O4 Lithium Manganese Oxide" - } - ], - "cathodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "binder:PVDF" - } - ] - }, - "physicalDimensions": { - "length": 2000, - "width": 1000, - "weight": 3500, - "diameter": null, - "height": 200 - }, - "temperatureRangeIdleState": { - "temperatureRangeIdleStateUpperLimit": 50, - "temperatureRangeIdleStateLowerLimit": -20 - }, - "batteryCycleLife": { - "cycleLifeTestCRate": 2, - "cycleLifeTestDepthOfDischarge": 1.8, - "expectedLifetime": 2500 - }, - "manufacturer": { - "name": "CompanyE", - "contact": { - "faxNumber": "+49 89 0987654324", - "website": "https://www.CompanyE.com", - "phoneNumber": "+49 89 1234567893", - "email": "companyE@company.com" - }, - "address": { - "locality": { - "value": "CityE", - "technicalKey": "BLOCK" - }, - "country": { - "shortName": "Germany" - }, - "postCode": { - "value": "65-250E", - "technicalKey": "CEDEX" - }, - "thoroughfare": { - "value": "StreetE", - "number": "1", - "technicalKey": "STREET" - }, - "premise": { - "value": null, - "technicalKey": "BUILDING" - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": "intERURBAN_DELIVERY_POint" - } - } - }, - "warrantyPeriod": "96", - "composition": { - "compositionOfBattery": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "Separator: PE" - } - ], - "criticalRawMaterials": "Lithium, Natural graphite", - "components": { - "componentsPartNumber": "Voltage cables", - "componentsSupplier": [ - { - "componentsSupplierName": "AB Corporation", - "address": { - "locality": { - "value": "CityF", - "technicalKey": "BLOCK" - }, - "country": { - "shortName": "Germany" - }, - "postCode": { - "value": "65-250F", - "technicalKey": "CEDEX" - }, - "thoroughfare": { - "value": "StreetF", - "number": "1", - "technicalKey": "STREET" - }, - "premise": { - "value": "PlantF", - "technicalKey": "BUILDING" - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": "INTERURBAN_DELIVERY_POINT" - } - }, - "contact": { - "faxNumber": "+49 89 0987654324", - "website": "https://www.companyF.com", - "phoneNumber": "+49 89 1234567893", - "email": "companyF@companyF.com" - } - } - ] - } - }, - "manufacturing": { - "dateOfManufacturing": "2022-01-24", - "address": { - "locality": { - "value": "CityE", - "technicalKey": "BLOCK" - }, - "country": { - "shortName": "Germany" - }, - "postCode": { - "value": "65-250E", - "technicalKey": "CEDEX" - }, - "thoroughfare": { - "value": "StreetE", - "number": "1", - "technicalKey": "STREET" - }, - "premise": { - "value": "PlantE", - "technicalKey": "BUILDING" - }, - "postalDeliveryPoint": { - "value": "GateE", - "technicalKey": "INTERURBAN_DELIVERY_POINT" - } - } - }, - "batteryIdentification": { - "batteryType": "Lithium-Manganese-Oxide (LMO)", - "batteryIDDMCCode": "IMR18650V1", - "batteryModel": "Pi4 Orionis" - }, - "stateOfBattery": { - "stateOfHealth": 20, - "statusBattery": "first life", - "stateOfCharge": 50 - }, - "cO2FootprintTotal": 210 - } - } -} \ No newline at end of file diff --git a/src/assets/MOCK/NCR186850B.json b/src/assets/MOCK/NCR186850B.json deleted file mode 100644 index ab8bbf311..000000000 --- a/src/assets/MOCK/NCR186850B.json +++ /dev/null @@ -1,442 +0,0 @@ -{ - "semanticId": "urn:bamm:io.catenax.battery.battery_pass:3.0.1#BatteryPass", - "metadata": { - "contract": { - "@id": "9b3c0977-6b14-4201-bd76-55f681a92872", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - } - } - }, - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393629505, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393631831, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393633142, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:DataRequestDto", - "edc:assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "edc:contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "aspect": { - "electrochemicalProperties": { - "ratedCapacity": 56, - "batteryEnergy": { - "energyRoundtripEfficiencyChange": 45, - "maximumAllowedBatteryEnergy": 75000.0, - "energyRoundtripEfficiency": 80 - }, - "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy": 0.666, - "batteryVoltage": { - "nominalVoltage": 3.6, - "maxVoltage": 4.2, - "minVoltage": 2.5 - }, - "internalResistance": { - "cellinternalResistance": 3.0, - "packinternalResistanceIncrease": 2, - "packinternalResistance": 80 - }, - "capacityThresholdExhaustion": 23, - "batteryPower": { - "powerFade": 23, - "originalPowerCapability": -1.7976931348623157E308, - "originalPowerCapabilityLimits": -1.7976931348623157E308, - "maximumAllowedBatteryPower": -1.7976931348623157E308, - "powerCapabilityAt20Charge": -1.7976931348623157E308, - "powerCapabilityAt80Charge": -1.7976931348623157E308 - }, - "capacityFade": 2.0 - }, - "document": { - "responsibleSourcing": [ - { - "title": "Sustainability Report 2021", - "fileLocation": "telnet://192.0.2.16:80/" - } - ], - "packagingInstructions": [ - { - "title": "Packaging and transport Instruction", - "fileLocation": "telnet://192.0.2.16:80/" - } - ], - "transportationInstructions": [ - { - "title": "Packaging and transport Instruction", - "fileLocation": "ftp://ftp.is.co.za/rfc/rfc1808.txt" - } - ], - "vehicleDismantlingProcedure": [ - { - "title": "Packaging and transport Instruction", - "fileLocation": "http://www.ietf.org/rfc/rfc2396.txt" - } - ], - "testReportsResults": [ - { - "title": "Certificates of Testing battery", - "fileLocation": "" - } - ], - "batteryDismantlingProcedure": [ - { - "title": "Certificates of Testing battery", - "fileLocation": "http://www.wikipedia.org" - } - ], - "safetyMeasures": [ - { - "title": "Battery user safety precautions", - "fileLocation": "ftp://ftp.is.co.za/rfc/rfc1808.txt" - } - ], - "declarationOfConformity": [ - { - "title": "Declaration of Conformity No. 2", - "fileLocation": "" - } - ] - }, - "datePlacedOnMarket": "27.03.2022", - "cellChemistry": { - "electrolyteComposition": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "LiPF6" - } - ], - "anodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "Styren butadien" - } - ], - "recyclateContentActiveMaterials": [ - { - "materialPercentageMassFraction": 4, - "materialWeight": null, - "materialName": "Ni/2022/PlantC" - }, - { - "materialPercentageMassFraction": 5, - "materialWeight": null, - "materialName": "Li/2021/PlantC" - }, - { - "materialPercentageMassFraction": 0, - "materialWeight": null, - "materialName": "Pb(battery model does not contain Pb)" - }, - { - "materialPercentageMassFraction": 15, - "materialWeight": null, - "materialName": "Co/2021/PlantC" - } - ], - "anodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "SiO2-C" - } - ], - "cathodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "NCA (Lithium nickel cobalt aluminum oxide)" - } - ], - "cathodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "carbon black" - } - ] - }, - "physicalDimensions": { - "length": 1800, - "width": 1000, - "weight": 2000, - "diameter": null, - "height": 150 - }, - "temperatureRangeIdleState": { - "temperatureRangeIdleStateUpperLimit": 40, - "temperatureRangeIdleStateLowerLimit": -20 - }, - "batteryCycleLife": { - "cycleLifeTestCRate": 2, - "cycleLifeTestDepthOfDischarge": 1.5, - "expectedLifetime": 3000 - }, - "manufacturer": { - "name": "Company C", - "contact": { - "faxNumber": "+49 89 0987654323", - "website": "http://www.CompanyC.com", - "phoneNumber": "+49 89 1234567892", - "email": "companyC@company.com" - }, - "address": { - "locality": { - "value": "CityC", - "technicalKey": "BLOCK" - }, - "country": { - "shortName": "Germany" - }, - "postCode": { - "value": "65-250A", - "technicalKey": "CEDEX" - }, - "thoroughfare": { - "value": "StreetA", - "number": "1", - "technicalKey": "STREET" - }, - "premise": { - "value": "", - "technicalKey": "CEDEX" - }, - "postalDeliveryPoint": { - "value": "Tor 1", - "technicalKey": "intERURBAN_DELIVERY_POint" - } - } - }, - "warrantyPeriod": "120", - "composition": { - "compositionOfBattery": [ - { - "materialPercentageMassFraction": null, - "materialWeight": null, - "materialName": "Co -hazardous, Current collector: Aluminum, LiPF6 - ( conducting lithium salt - toxic, in combination with moisture nad elevated temp. Decompose to HF) . Casing: iron, aluminum laminated plastic" - } - ], - "criticalRawMaterials": "Lithium, Cobalt, Natural graphite", - "components": { - "componentsPartNumber": "Casing Tray: Model C", - "componentsSupplier": [ - { - "componentsSupplierName": "XY Corporation", - "address": { - "locality": { - "value": "CityD", - "technicalKey": "BLOCK" - }, - "country": { - "shortName": "Germany" - }, - "postCode": { - "value": "65-250B", - "technicalKey": "CEDEX" - }, - "thoroughfare": { - "value": "StreetD", - "number": "1", - "technicalKey": "STREET" - }, - "premise": { - "value": "PlantD", - "technicalKey": "BUILDING" - }, - "postalDeliveryPoint": { - "value": "GateD", - "technicalKey": "INTERURBAN_DELIVERY_POINT" - } - }, - "contact": { - "faxNumber": "+49 89 0987654322", - "website": "https://www.companyD.com", - "phoneNumber": "+49 89 1234567890", - "email": "companyD@company.com" - } - } - ] - } - }, - "manufacturing": { - "dateOfManufacturing": "2022-01-24", - "address": { - "locality": { - "value": "CityC", - "technicalKey": "BLOCK" - }, - "country": { - "shortName": "Germany" - }, - "postCode": { - "value": "65-250A", - "technicalKey": "CEDEX" - }, - "thoroughfare": { - "value": "StreetC", - "number": "1", - "technicalKey": "STREET" - }, - "premise": { - "value": "PlantC", - "technicalKey": "BUILDING" - }, - "postalDeliveryPoint": { - "value": "GateC", - "technicalKey": "INTERURBAN_DELIVERY_POINT" - } - } - }, - "batteryIdentification": { - "batteryType": "NCA", - "batteryIDDMCCode": "NCR186850B", - "batteryModel": "Li-ion S-model" - }, - "stateOfBattery": { - "stateOfHealth": 50, - "statusBattery": "first life/ waste/ repaired/ repurposed/ recycled", - "stateOfCharge": 33 - }, - "cO2FootprintTotal": 124.0 - } -} \ No newline at end of file diff --git a/src/assets/MOCK/X123456789012X12345678901234566.json b/src/assets/MOCK/X123456789012X12345678901234566.json deleted file mode 100644 index bd1178b54..000000000 --- a/src/assets/MOCK/X123456789012X12345678901234566.json +++ /dev/null @@ -1,452 +0,0 @@ -{ - "status" : 200, - "data" : { - "metadata" : { - "contract" : { - "@id" : "2379d70b-0c70-4962-9e96-f640e64f6307", - "@type" : "dcat:Dataset", - "odrl:hasPolicy" : { - "@id" : "1:32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a:2fdd8620-0b5a-44dd-945d-905e4be9b6e4", - "@type" : "odrl:Set", - "odrl:permission" : [ ], - "odrl:prohibition" : [ ], - "odrl:obligation" : [ ], - "odrl:target" : "32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a" - }, - "dcat:distribution" : [ { - "@type" : "dcat:Distribution", - "dct:format" : { - "@id" : "HttpProxy" - }, - "dcat:accessService" : "1795254a-e354-46c7-9d88-04608b05ca9f" - }, { - "@type" : "dcat:Distribution", - "dct:format" : { - "@id" : "AmazonS3" - }, - "dcat:accessService" : "1795254a-e354-46c7-9d88-04608b05ca9f" - } ], - "edc:description" : "Battery Passport test data", - "edc:id" : "32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a" - }, - "negotiation" : { - "init" : { - "request" : { - "@context" : { - "odrl" : "http://www.w3.org/ns/odrl/2/" - }, - "@type" : "NegotiationInitiateRequestDto", - "connectorAddress" : "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol" : "dataspace-protocol-http", - "connectorId" : "BPNL00000000CBA5", - "offer" : { - "offerId" : "1:32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a:2fdd8620-0b5a-44dd-945d-905e4be9b6e4", - "assetId" : "32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a", - "policy" : { - "@type" : "odrl:Set", - "odrl:permission" : [ ], - "odrl:prohibition" : [ ], - "odrl:obligation" : [ ], - "odrl:target" : "32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a" - } - } - }, - "response" : { - "@id" : "da828fff-3406-4951-8605-76a763bede58", - "@type" : "edc:IdResponseDto", - "edc:createdAt" : 1688393713418, - "@context" : { - "dct" : "https://purl.org/dc/terms/", - "tx" : "https://w3id.org/tractusx/v0.0.1/ns/", - "edc" : "https://w3id.org/edc/v0.0.1/ns/", - "dcat" : "https://www.w3.org/ns/dcat/", - "odrl" : "http://www.w3.org/ns/odrl/2/", - "dspace" : "https://w3id.org/dspace/v0.8/" - } - } - }, - "get" : { - "response" : { - "@id" : "da828fff-3406-4951-8605-76a763bede58", - "@type" : "edc:ContractNegotiationDto", - "edc:type" : "CONSUMER", - "edc:protocol" : "dataspace-protocol-http", - "edc:state" : "FINALIZED", - "edc:counterPartyAddress" : "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses" : [ ], - "edc:contractAgreementId" : "1:32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a:49c1cea2-6737-4536-8d87-ebe966fc15c5", - "@context" : { - "dct" : "https://purl.org/dc/terms/", - "tx" : "https://w3id.org/tractusx/v0.0.1/ns/", - "edc" : "https://w3id.org/edc/v0.0.1/ns/", - "dcat" : "https://www.w3.org/ns/dcat/", - "odrl" : "http://www.w3.org/ns/odrl/2/", - "dspace" : "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer" : { - "init" : { - "request" : { - "@context" : { - "odrl" : "http://www.w3.org/ns/odrl/2/" - }, - "assetId" : "32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a", - "connectorAddress" : "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId" : "1:32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a:49c1cea2-6737-4536-8d87-ebe966fc15c5", - "dataDestination" : { - "properties" : { - "type" : "HttpProxy" - } - }, - "managedResources" : false, - "privateProperties" : { - "receiverHttpEndpoint" : "https://materialpass.dev.demo.catena-x.net/endpoint/adca2436-48ea-4d21-9ee3-dc3f9111010a" - }, - "protocol" : "dataspace-protocol-http", - "transferType" : { - "contentType" : "application/octet-stream", - "isFinite" : true - } - }, - "response" : { - "@id" : "70a4ee59-6eac-48f8-9e67-6a08541421f5", - "@type" : "edc:IdResponseDto", - "edc:createdAt" : 1688393715846, - "@context" : { - "dct" : "https://purl.org/dc/terms/", - "tx" : "https://w3id.org/tractusx/v0.0.1/ns/", - "edc" : "https://w3id.org/edc/v0.0.1/ns/", - "dcat" : "https://www.w3.org/ns/dcat/", - "odrl" : "http://www.w3.org/ns/odrl/2/", - "dspace" : "https://w3id.org/dspace/v0.8/" - } - } - }, - "get" : { - "response" : { - "@id" : "70a4ee59-6eac-48f8-9e67-6a08541421f5", - "@type" : "edc:TransferProcessDto", - "edc:state" : "COMPLETED", - "edc:stateTimestamp" : 1688393717639, - "edc:type" : "CONSUMER", - "edc:callbackAddresses" : [ ], - "edc:dataDestination" : { - "edc:type" : "HttpProxy" - }, - "edc:dataRequest" : { - "@id" : "70a4ee59-6eac-48f8-9e67-6a08541421f5", - "@type" : "edc:DataRequestDto", - "edc:assetId" : "32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a", - "edc:contractId" : "1:32aa72de-297a-4405-9148-13e12744028a-699f1245-f57e-4d6b-acdb-ab763665554a:49c1cea2-6737-4536-8d87-ebe966fc15c5" - }, - "edc:receiverHttpEndpoint" : "https://materialpass.dev.demo.catena-x.net/endpoint/adca2436-48ea-4d21-9ee3-dc3f9111010a", - "@context" : { - "dct" : "https://purl.org/dc/terms/", - "tx" : "https://w3id.org/tractusx/v0.0.1/ns/", - "edc" : "https://w3id.org/edc/v0.0.1/ns/", - "dcat" : "https://www.w3.org/ns/dcat/", - "odrl" : "http://www.w3.org/ns/odrl/2/", - "dspace" : "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "passport" : { - "electrochemicalProperties" : { - "ratedCapacity" : 120, - "batteryEnergy" : { - "energyRoundtripEfficiencyChange" : 67, - "maximumAllowedBatteryEnergy" : 90000, - "energyRoundtripEfficiency" : 56 - }, - "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy" : 0.611, - "batteryVoltage" : { - "nominalVoltage" : 4.3, - "maxVoltage" : 6, - "minVoltage" : 2.04 - }, - "internalResistance" : { - "cellinternalResistance" : 45, - "packinternalResistanceIncrease" : 23, - "packinternalResistance" : 67 - }, - "capacityThresholdExhaustion" : 23, - "batteryPower" : { - "powerFade" : 23, - "originalPowerCapability" : 305, - "originalPowerCapabilityLimits" : 12, - "maximumAllowedBatteryPower" : 308, - "powerCapabilityAt20Charge" : -308, - "powerCapabilityAt80Charge" : 8 - }, - "capacityFade" : 34 - }, - "document" : { - "responsibleSourcing" : [ { - "title" : "LlN", - "fileLocation" : "telnet://192.0.2.16:80/" - }, { - "title" : "LlN 2222", - "fileLocation" : "telnet://192.0.2.16:80/" - }, { - "title" : "LlN 2222", - "fileLocation" : "telnet://192.0.2.16:80/" - }, { - "title" : "LlN 2222", - "fileLocation" : "telnet://192.0.2.16:80/" - }, { - "title" : "LlN 2222", - "fileLocation" : "telnet://192.0.2.16:80/" - }, { - "title" : "LlN 2222", - "fileLocation" : "telnet://192.0.2.16:80/" - }, { - "title" : "LlN 2222", - "fileLocation" : "telnet://192.0.2.16:80/" - } ], - "packagingInstructions" : [ { - "title" : "eOMtThyhVNLWUZNRcBaQKxI", - "fileLocation" : "telnet://192.0.2.16:80/" - } ], - "transportationInstructions" : [ { - "title" : "yedUsFwdkelQbxeTeQOvaScfqIOOmaa", - "fileLocation" : "ftp://ftp.is.co.za/rfc/rfc1808.txt" - } ], - "vehicleDismantlingProcedure" : [ { - "title" : "JxkyvRnL", - "fileLocation" : "http://www.ietf.org/rfc/rfc2396.txt" - } ], - "testReportsResults" : [ { - "title" : "UMaAIKKIkknjWEXJUfPxxQHeWKEJ", - "fileLocation" : "telnet://192.0.2.16:80/" - } ], - "batteryDismantlingProcedure" : [ { - "title" : "RYtGKbgicZaHCBRQDSx", - "fileLocation" : "http://www.wikipedia.org" - } ], - "safetyMeasures" : [ { - "title" : "VLhpfQGTMDYpsBZxvfBoeygjb", - "fileLocation" : "ftp://ftp.is.co.za/rfc/rfc1808.txt" - } ], - "declarationOfConformity" : [ { - "title" : "dpHYZGhtgdntugzvvKAXLhM", - "fileLocation" : "http://www.wikipedia.org" - } ] - }, - "datePlacedOnMarket" : "2023-03-08", - "cellChemistry" : { - "electrolyteComposition" : [ { - "materialPercentageMassFraction" : 4, - "materialName" : "Ni", - "materialWeight" : 2.5 - } ], - "anodeCompositionOther" : [ { - "materialPercentageMassFraction" : 15, - "materialName" : "Co", - "materialWeight" : 2.5 - } ], - "recyclateContentActiveMaterials" : [ { - "materialPercentageMassFraction" : 5, - "materialName" : "Li", - "materialWeight" : 2.5 - } ], - "anodeActiveMaterials" : [ { - "materialPercentageMassFraction" : 5, - "materialName" : "Graphite", - "materialWeight" : 2.5 - } ], - "cathodeActiveMaterials" : [ { - "materialPercentageMassFraction" : 14, - "materialName" : "Ni", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 9, - "materialName" : "Co", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Li", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 0, - "materialName" : "Pb", - "materialWeight" : 2.5 - } ], - "cathodeCompositionOther" : [ { - "materialPercentageMassFraction" : 19, - "materialName" : "Pb", - "materialWeight" : 2.5 - } ] - }, - "physicalDimensions" : { - "length" : 20000, - "width" : 1000, - "weight" : 1007, - "diameter" : 3, - "height" : 1 - }, - "temperatureRangeIdleState" : { - "temperatureRangeIdleStateUpperLimit" : 67, - "temperatureRangeIdleStateLowerLimit" : -22 - }, - "batteryCycleLife" : { - "cycleLifeTestCRate" : 45, - "cycleLifeTestDepthOfDischarge" : 2, - "expectedLifetime" : 1200 - }, - "manufacturer" : { - "name" : "Company A", - "contact" : { - "faxNumber" : "+49 89 0987654321", - "website" : "https://www.samsung.com", - "phoneNumber" : "+49 89 1234567890", - "email" : "test.mail@example.com" - }, - "address" : { - "locality" : { - "value" : "Mannheim", - "technicalKey" : "BLOCK" - }, - "country" : { - "shortName" : "TG-Y" - }, - "postCode" : { - "value" : "68161\\12", - "technicalKey" : "CEDEX" - }, - "thoroughfare" : { - "value" : "Bernstraße", - "number" : "45", - "technicalKey" : "STREET" - }, - "premise" : { - "value" : "Werk 1", - "technicalKey" : "BUILDING" - }, - "postalDeliveryPoint" : { - "value" : "Tor 1", - "technicalKey" : "intERURBAN_DELIVERY_POint" - } - } - }, - "warrantyPeriod" : "60", - "composition" : { - "compositionOfBattery" : [ { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - }, { - "materialPercentageMassFraction" : 19, - "materialName" : "Graphite", - "materialWeight" : 2.5 - } ], - "criticalRawMaterials" : "Lithium, Cobalt, Natural graphite", - "components" : { - "componentsPartNumber" : [ "Case xxxxxxx/xx; Controller xxxxxxx/xx" ], - "componentsSupplier" : [ { - "componentsSupplierName" : "XY Corporation", - "address" : { - "locality" : { - "value" : "Mannheim", - "technicalKey" : "BLOCK" - }, - "country" : { - "shortName" : "" - }, - "postCode" : { - "value" : "68161\\12", - "technicalKey" : "CEDEX" - }, - "thoroughfare" : { - "value" : "Bernstraße", - "number" : "45", - "technicalKey" : "STREET" - }, - "premise" : { - "value" : "Werk 1", - "technicalKey" : "BUILDING" - }, - "postalDeliveryPoint" : { - "value" : "Tor 1", - "technicalKey" : "INTERURBAN_DELIVERY_POINT" - } - }, - "contact" : { - "faxNumber" : "+49 89 0987654321", - "website" : "https://www.samsung.com", - "phoneNumber" : "+49 89 1234567890", - "email" : "test.mail@example.com" - } - } ] - } - }, - "manufacturing" : { - "dateOfManufacturing" : "2023-03-07", - "address" : { - "locality" : { - "value" : "Mannheim", - "technicalKey" : "BLOCK" - }, - "country" : { - "shortName" : "" - }, - "postCode" : { - "value" : "68161\\12", - "technicalKey" : "CEDEX" - }, - "thoroughfare" : { - "value" : "Bernstraße", - "number" : "45", - "technicalKey" : "STREET" - }, - "premise" : { - "value" : "Werk 1", - "technicalKey" : "BUILDING" - }, - "postalDeliveryPoint" : { - "value" : "Tor 1", - "technicalKey" : "INTERURBAN_DELIVERY_POINT" - } - } - }, - "batteryIdentification" : { - "batteryType" : "Li-Ion", - "batteryIDDMCCode" : "X123456789012X12345678901234566", - "batteryModel" : "SB 28" - }, - "stateOfBattery" : { - "stateOfHealth" : 12, - "statusBattery" : "first life", - "stateOfCharge" : 23 - }, - "cO2FootprintTotal" : "110" - } - } -} \ No newline at end of file diff --git a/src/assets/MOCK/dpp.json b/src/assets/MOCK/dpp.json deleted file mode 100644 index b731924d6..000000000 --- a/src/assets/MOCK/dpp.json +++ /dev/null @@ -1,345 +0,0 @@ -{ - "metadata": { - "contracts": { - "@id": "5c4fbb7d-cf02-4401-a7a3-f0ec1c506f33", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", - "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" - } - } - }, - "response": { - "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393668476, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393671434, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393673622, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", - "@type": "edc:DataRequestDto", - "edc:assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", - "edc:contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "semanticId": "general", - "aspect": { - "serialization": { - "manufacturingInformation": { - "date": "2022-02-04T14:48:54", - "country": "HUR" - }, - "registration": { - "customerPartId": "PRT-12345", - "manufacturerPartId": "123-0.740-3434-A" - }, - "quantity": { - "value": 1.0, - "unit": "unit:piece" - } - }, - "typology": { - "name": "Transmission Type 8HP60", - "description": "Product Description long text", - "class": { - "definition": "Manual transmission (motor vehicle)", - "code": "44-09-02-02" - }, - "nameAtManufacturer": "Mirror left", - "nameAtCustomer": "side element A" - }, - "metadata": { - "issueDate": "2000-01-01", - "version": "1.0.0", - "validityDate": "2000-01-01", - "economicOperator": { - "eori": "GB123456789000", - "id": "BPNL1234567890ZZ" - }, - "status": "Draft" - }, - "characteristics": { - "physicalDimensionsProperty": { - "width": 1000.0, - "length": 20000.1, - "weight": 100.7, - "diameter": 0.03, - "height": 0.1 - }, - "lifespan": { - "value": 36, - "unit": "unit:day" - }, - "energyCapacity": { - "value": 85.0, - "unit": "unit:kWh" - }, - "voltage": { - "value": 400.0, - "unit": "unit:V" - } - }, - "commercial": { - "placedOnMarket": "2000-01-01", - "warranty": 36 - }, - "identification": { - "localIdentifiers": [ - { - "value": "SN12345678", - "key": "PartInstanceID" - }, - { - "value": "SN12345678", - "key": "PartInstanceID" - } - ], - "gtin": "12345678", - "additionalCode": [ - { - "name": "TARIC", - "value": "8703 24 10 00" - } - ] - }, - "sources": { - "mandatory": { - "safetyTransportation": { - "header": "Sustainability Document Material XY", - "category": "Handling", - "type": "link", - "content": "www.alink.pdf" - }, - "substanceOfConcernDisassembly": { - "header": "Sustainability Document Material XY", - "category": "Health", - "type": "link", - "content": "www.alink.pdf" - }, - "substanceOfConcernInstruction": { - "header": "Sustainability Document Material XY", - "category": "Safety", - "type": "link", - "content": "www.alink.pdf" - }, - "safetyPackaging": { - "header": "Sustainability Document Material XY", - "category": "Safety", - "type": "link", - "content": "www.alink.pdf" - }, - "declarationOfConformity": [ - { - "name": "other", - "document": { - "header": "Sustainability Document Material XY", - "category": "Safety", - "type": "link", - "content": "www.alidrftynk.pdf" - } - } - ] - }, - "optional": [ - { - "name": "other", - "document": { - "header": "Sustainability Document Material XY", - "category": "wrong", - "type": "link", - "content": "www.alink.pdf" - } - } - ] - }, - "additionalData": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "array" - }, - "data": "23", - "children": [ - { - "description": "Description of an attribute", - "label": "Maximum permitted battery power", - "type": { - "typeUnit": "unit:volume", - "dataType": "array" - }, - "data": "23" - } - ] - } - ], - "sustainability": { - "state": "first life", - "material": [ - { - "name": "Aluminium", - "recycled": false, - "renewable": true, - "percentage": 5.0 - } - ], - "critical": [ - "eOMtThyhVNLWUZNRcBaQKxI" - ], - "carbonFootprint": { - "carbonContentTotal": 2.5, - "crossSectoralStandard": "GHG Protocol Product standard", - "productOrSectorSpecificRules": [ - { - "extWBCSD_operator": "PEF", - "productOrSectorSpecificRules": { - "ruleName": "urn:tfs-initiative.com:PCR:The Product Carbon Footprint Guideline for the Chemical Industry:version:v2.0" - }, - "extWBCSD_otherOperatorName": "NSF" - } - ] - } - }, - "operation": { - "importer": "BPNL1234567890ZZ", - "manufacturer": { - "manufacturerId": "BPN1234567890ZZ", - "facilityId": "BPNL1234567890ZZ" - } - } - } -} diff --git a/src/assets/MOCK/dppv2.json b/src/assets/MOCK/dppv2.json deleted file mode 100644 index 352752eb0..000000000 --- a/src/assets/MOCK/dppv2.json +++ /dev/null @@ -1,452 +0,0 @@ -{ - "metadata": { - "contract": { - "@id": "9b3c0977-6b14-4201-bd76-55f681a92872", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:dc616f20-2781-450a-837a-290d861c8e0a", - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918" - } - } - }, - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393629505, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b8a41089-1eac-462a-b8e8-e40f724b302f", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393631831, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393633142, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "b9ab18f2-b624-4e2c-a922-c2e727467bb2", - "@type": "edc:DataRequestDto", - "edc:assetId": "365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918", - "edc:contractId": "3:365e6fbe-bb34-11ec-8422-0242ac120002-61125dc3-5e6f-4f4b-838d-447432b97918:102bae7a-22de-44b2-9ed5-ca5f62023390" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/bb8d235e-96c1-4fa3-a9ea-2ec71255ed18", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "semanticId": "general", - "aspect": { - "typology": { - "shortName": "8HP60", - "class": { - "definition": "Manual transmission (motor vehicle)", - "code": "44-09-02-02" - }, - "longName": "Product Description long text" - }, - "metadata": { - "predecessor": "null", - "issueDate": "2000-01-01", - "version": "1.0.0", - "economicOperator": { - "legitimization": "DE123456789", - "identification": "BPNL1234567890ZZ" - }, - "status": "draft", - "expirationDate": "2000-01-01" - }, - "characteristics": { - "physicalDimension": { - "grossWeight": { - "value": 20.5, - "unit": "unit:kilogram" - }, - "weightOrVolume": { - "left": { - "value": 20.5, - "unit": "unit:cubicMetre" - } - }, - "diameter": { - "value": 20.5, - "unit": "unit:millimetre" - }, - "grossVolume": { - "value": 20.5, - "unit": "unit:cubicMetre" - }, - "width": { - "value": 20.5, - "unit": "unit:millimetre" - }, - "length": { - "value": 20.5, - "unit": "unit:millimetre" - }, - "height": { - "value": 20.5, - "unit": "unit:millimetre" - } - }, - "lifespan": [ - { - "value": 36, - "unit": "unit:day", - "key": "guaranteed lifetime" - } - ], - "physicalState": "solid" - }, - "commercial": { - "placedOnMarket": "2000-01-01" - }, - "identification": { - "localIdentifier": { - "value": "SN12345678", - "key": "PartInstanceId" - }, - "additionalCode": [ - { - "value": "8703 24 10 00", - "key": "TARIC" - } - ], - "dataCarrier": { - "carrierType": "QR", - "carrierLayout": "upper-left side" - } - }, - "sources": [ - { - "header": "Sustainability Document Material XY", - "category": "Product Specifications", - "type": "URL", - "content": "www.alink.pdf" - } - ], - "handling": { - "spareParts": { - "left": { - "producer": [ - { - "id": "BPNL1234567890ZZ" - } - ], - "part": [ - { - "name": "Aluminum Housing", - "gtin": "12345678" - } - ] - } - }, - "substanceOfConcern": { - "left": [ - { - "name": { - "name": "phenolphthalein", - "type": "IUPAC" - }, - "location": "Housing", - "unit": "unit:partPerMillion", - "concentration": { - "left": [ - { - "max": 2.6, - "min": 2.1 - } - ] - }, - "exemption": "shall not apply to product x containing not more than 1,5 ml of liquid", - "id": [ - { - "type": "CAS", - "id": "201-004-7" - } - ] - } - ] - } - }, - "additionalData": [ - { - "description": "This is the machine parameters that are produced when the machine is used", - "label": "Specific Manufacturer Machine Parameters", - "type": { - "typeUnit": null, - "dataType": "object" - }, - "children": [ - { - "description": "The usage of the eletricity in the machine", - "label": "Eletricity Usage", - "type": { - "typeUnit": "unit:volts", - "dataType": "integer" - }, - "data": "25" - }, - { - "description": "The name of the machine that produced the product", - "label": "Machine Name", - "type": { - "typeUnit": null, - "dataType": "string" - }, - "data": "Laser Machine MX-421W" - }, - { - "description": "The list of products the machine can produce", - "label": "Product Names", - "type": { - "typeUnit": null, - "dataType": "array" - }, - "data": [ - "Tranmissions", - "Batteries", - "Seats", - "Doors" - ] - } - ] - }, - { - "description": "This are the properties of interest", - "label": "Properties of Interest", - "type": { - "typeUnit": null, - "dataType": "object" - }, - "children":[ - { - "description": "This are the main properties of interest", - "label": "Main Properties", - "type": { - "typeUnit": null, - "dataType": "object" - }, - "children":[ - { - "description": "This is the Normal temperature of production", - "label": "Normal Temperature", - "type": { - "typeUnit": "unit:celcius", - "dataType": "float" - }, - "data": 62.7 - }, - { - "description": "This is the minimmum temperature of production", - "label": "Minimum Temperature", - "type": { - "typeUnit": "unit:celcius", - "dataType": "float" - }, - "data": -80.68 - }, - { - "description": "This is the maximum temperature of production", - "label": "Maximum Temperature", - "type": { - "typeUnit": "unit:celcius", - "dataType": "float" - }, - "data": 800.85 - } - ] - } - ] - } - ], - "sustainability": { - "PEF": { - "carbon": [ - { - "lifecycle": "main product production", - "rulebook": "https://www.alink.pdf/", - "unit": "kg CO2 eq", - "type": "Climate Change Total", - "value": 12.678 - } - ], - "carbon2": { - "lifecycle": "main product production", - "rulebook": "https://www.alink.pdf/", - "unit": "kg CO2 eq", - "type": "Climate Change Total", - "value": 12.678 - }, - "environmental": [ - { - "lifecycle": "main product production", - "rulebook": "https://www.alink.pdf/", - "unit": "kg CO2 eq", - "type": "Climate Change Total", - "value": 72.678 - } - ] - }, - "state": "first life", - "material": { - "left": [ - { - "name": { - "name": "phenolphthalein", - "type": "IUPAC" - }, - "unit": "unit:partPerMillion", - "recycled": false, - "id": [ - { - "type": "CAS", - "id": "201-004-7" - } - ], - "value": 5, - "renewable": true - } - ] - }, - "critical": { - "left": [ - "eOMtThyhVNLWUZNRcBaQKxI" - ] - } - }, - "operation": { - "importer": { - "left": { - "eori": "GB123456789000", - "id": "BPNL1234567890ZZ" - } - }, - "manufacturer": { - "facility": "BPNS1234567890ZZ", - "manufacturingDate": "2000-01-31", - "manufacturer": "BPNL1234567890ZZ" - } - } - } -} \ No newline at end of file diff --git a/src/assets/MOCK/passportExample-allNULL.json b/src/assets/MOCK/passportExample-allNULL.json deleted file mode 100644 index 6dc3c87e6..000000000 --- a/src/assets/MOCK/passportExample-allNULL.json +++ /dev/null @@ -1,502 +0,0 @@ -{ - "metadata": { - "contract": { - "@id": null, - "@type": null, - "odrl:hasPolicy": { - "@id": null, - "@type": null, - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": null - }, - "dcat:distribution": [ - { - "@type": null, - "dct:format": { - "@id": null - }, - "dcat:accessService": null - }, - { - "@type": null, - "dct:format": { - "@id": null - }, - "dcat:accessService": null - } - ], - "edc:description": null, - "edc:id": null - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": null - }, - "@type": null, - "connectorAddress": null, - "protocol": null, - "connectorId": null, - "offer": { - "offerId": null, - "assetId": null, - "policy": { - "@type": null, - "odrl:permission": null, - "odrl:prohibition": null, - "odrl:obligation": null, - "odrl:target": null - } - } - }, - "response": { - "@id": null, - "@type": null, - "edc:createdAt": null, - "@context": { - "dct": null, - "tx": null, - "edc": null, - "dcat": null, - "odrl": null, - "dspace": null - } - } - }, - "get": { - "response": { - "@id": null, - "@type": null, - "edc:type": null, - "edc:protocol": null, - "edc:state": null, - "edc:counterPartyAddress": null, - "edc:callbackAddresses": null, - "edc:contractAgreementId": null, - "@context": { - "dct": null, - "tx": null, - "edc": null, - "dcat": null, - "odrl": null, - "dspace": null - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": null - }, - "assetId": null, - "connectorAddress": null, - "contractId": null, - "dataDestination": { - "properties": { - "type": null - } - }, - "managedResources": null, - "privateProperties": { - "receiverHttpEndpoint": null - }, - "protocol": null, - "transferType": { - "contentType": null, - "isFinite": null - } - }, - "response": { - "@id": null, - "@type": null, - "edc:createdAt": null, - "@context": { - "dct": null, - "tx": null, - "edc": null, - "dcat": null, - "odrl": null, - "dspace": null - } - } - }, - "get": { - "response": { - "@id": null, - "@type": null, - "edc:state": null, - "edc:stateTimestamp": null, - "edc:type": null, - "edc:callbackAddresses": null, - "edc:dataDestination": { - "edc:type": null - }, - "edc:dataRequest": { - "@id": null, - "@type": null, - "edc:assetId": null, - "edc:contractId": null - }, - "edc:receiverHttpEndpoint": null, - "@context": { - "dct": null, - "tx": null, - "edc": null, - "dcat": null, - "odrl": null, - "dspace": null - } - } - } - } - }, - "passport": { - "electrochemicalProperties": { - "ratedCapacity": null, - "batteryEnergy": { - "energyRoundtripEfficiencyChange": null, - "maximumAllowedBatteryEnergy": null, - "energyRoundtripEfficiency": null - }, - "ratioMaximumAllowedBatteryPowerAndMaximumAllowedBatteryEnergy": null, - "batteryVoltage": { - "nominalVoltage": null, - "maxVoltage": null, - "minVoltage": null - }, - "internalResistance": { - "cellInternalResistance": null, - "packInternalResistanceIncrease": null, - "packInternalResistance": null - }, - "capacityThresholdExhaustion": null, - "batteryPower": { - "powerFade": null, - "originalPowerCapability": null, - "originalPowerCapabilityLimits": null, - "maximumAllowedBatteryPower": null, - "powerCapabilityAt20Charge": null, - "powerCapabilityAt80Charge": null - }, - "capacityFade": null - }, - "document": { - "responsibleSourcing": [ - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - }, - { - "title": null, - "fileLocation": null - } - ], - "packagingInstructions": [ - { - "title": null, - "fileLocation": null - } - ], - "transportationInstructions": [ - { - "title": null, - "fileLocation": null - } - ], - "vehicleDismantlingProcedure": [ - { - "title": null, - "fileLocation": null - } - ], - "testReportsResults": [ - { - "title": null, - "fileLocation": null - } - ], - "batteryDismantlingProcedure": [ - { - "title": null, - "fileLocation": null - } - ], - "safetyMeasures": [ - { - "title": null, - "fileLocation": null - } - ], - "declarationOfConformity": [ - { - "title": null, - "fileLocation": null - } - ] - }, - "datePlacedOnMarket": null, - "cellChemistry": { - "electrolyteComposition": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "anodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "recyclateContentActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "anodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "cathodeActiveMaterials": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "cathodeCompositionOther": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ] - }, - "physicalDimensions": { - "length": null, - "width": null, - "weight": null, - "diameter": null, - "height": null - }, - "temperatureRangeIdleState": { - "temperatureRangeIdleStateUpperLimit": null, - "temperatureRangeIdleStateLowerLimit": null - }, - "batteryCycleLife": { - "cycleLifeTestCRate": null, - "cycleLifeTestDepthOfDischarge": null, - "expectedLifetime": null - }, - "manufacturer": { - "name": null, - "contact": { - "faxNumber": null, - "website": null, - "phoneNumber": null, - "email": null - }, - "address": { - "locality": { - "value": null, - "technicalKey": null - }, - "country": { - "shortName": null - }, - "postCode": { - "value": null, - "technicalKey": null - }, - "thoroughfare": { - "value": null, - "number": null, - "technicalKey": null - }, - "premise": { - "value": null, - "technicalKey": null - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": null - } - } - }, - "warrantyPeriod": null, - "composition": { - "compositionOfBattery": [ - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - }, - { - "materialPercentageMassFraction": null, - "materialName": null, - "materialWeight": null - } - ], - "criticalRawMaterials": null, - "components": { - "componentsPartNumber": [ - null - ], - "componentsSupplier": [ - { - "componentsSupplierName": null, - "address": { - "locality": { - "value": null, - "technicalKey": null - }, - "country": { - "shortName": null - }, - "postCode": { - "value": null, - "technicalKey": null - }, - "thoroughfare": { - "value": null, - "number": null, - "technicalKey": null - }, - "premise": { - "value": null, - "technicalKey": null - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": null - } - }, - "contact": { - "faxNumber": null, - "website": null, - "phoneNumber": null, - "email": null - } - } - ] - } - }, - "manufacturing": { - "dateOfManufacturing": null, - "address": { - "locality": { - "value": null, - "technicalKey": null - }, - "country": { - "shortName": null - }, - "postCode": { - "value": null, - "technicalKey": null - }, - "thoroughfare": { - "value": null, - "number": null, - "technicalKey": null - }, - "premise": { - "value": null, - "technicalKey": null - }, - "postalDeliveryPoint": { - "value": null, - "technicalKey": null - } - } - }, - "batteryIdentification": { - "batteryType": null, - "batteryIDDMCCode": null, - "batteryModel": null - }, - "stateOfBattery": { - "stateOfHealth": null, - "statusBattery": null, - "stateOfCharge": null - }, - "cO2FootprintTotal": null - } -} \ No newline at end of file diff --git a/src/assets/MOCK/search.json b/src/assets/MOCK/search.json deleted file mode 100644 index 840cf5cb8..000000000 --- a/src/assets/MOCK/search.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "status": 200, - "data": { - "id": "ededdca7-998d-4cd6-94a1-dd1e24025a85", - "token": "", - "contract": { - "@id": "urn:uuid:0ec8cf2b-f58e-3f13-b5ef-e7dd01d15b19", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "MDc4NjZjMTQtOGE0YS00ZjQ3LWEyYzgtMWI5MmEwOGQ1NTlm:dXJuOnV1aWQ6MGVjOGNmMmItZjU4ZS0zZjEzLWI1ZWYtZTdkZDAxZDE1YjE5:ZDJhNGZjMDItNjc0MS00NGUzLWE5MjUtODNjZDJkMDc0MTk0", - "@type": "odrl:Set", - "odrl:permission": { - "odrl:target": "urn:uuid:0ec8cf2b-f58e-3f13-b5ef-e7dd01d15b19", - "odrl:action": { - "odrl:type": "USE" - }, - "odrl:constraint": { - "odrl:or": [ - { - "odrl:leftOperand": "Membership", - "odrl:operator": { - "@id": "odrl:eq" - }, - "odrl:rightOperand": "active" - }, - { - "odrl:leftOperand": "FrameworkAgreement.sustainability", - "odrl:operator": { - "@id": "odrl:eq" - }, - "odrl:rightOperand": "active" - } - ] - } - }, - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "urn:uuid:0ec8cf2b-f58e-3f13-b5ef-e7dd01d15b19" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "f3276bfe-7337-46f8-863f-75661717fb59" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "f3276bfe-7337-46f8-863f-75661717fb59" - } - ], - "edc:description": "Digital Product Passport (DPP) test data", - "edc:id": "urn:uuid:0ec8cf2b-f58e-3f13-b5ef-e7dd01d15b19" - } - } -} \ No newline at end of file diff --git a/src/assets/MOCK/transmission.json b/src/assets/MOCK/transmission.json deleted file mode 100644 index 45beb400c..000000000 --- a/src/assets/MOCK/transmission.json +++ /dev/null @@ -1,305 +0,0 @@ -{ - "metadata": { - "contract": { - "@id": "5c4fbb7d-cf02-4401-a7a3-f0ec1c506f33", - "@type": "dcat:Dataset", - "odrl:hasPolicy": { - "@id": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" - }, - "dcat:distribution": [ - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "HttpProxy" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - }, - { - "@type": "dcat:Distribution", - "dct:format": { - "@id": "AmazonS3" - }, - "dcat:accessService": "1795254a-e354-46c7-9d88-04608b05ca9f" - } - ], - "edc:description": "Battery Passport test data", - "edc:id": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" - }, - "negotiation": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "@type": "NegotiationInitiateRequestDto", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "protocol": "dataspace-protocol-http", - "connectorId": "BPNL00000000CBA5", - "offer": { - "offerId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:ac45d75a-2542-4d1a-a0fc-034c705418a9", - "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", - "policy": { - "@type": "odrl:Set", - "odrl:permission": [], - "odrl:prohibition": [], - "odrl:obligation": [], - "odrl:target": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23" - } - } - }, - "response": { - "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393668476, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "83892309-6b65-4597-b36a-f86bb7b42f2c", - "@type": "edc:ContractNegotiationDto", - "edc:type": "CONSUMER", - "edc:protocol": "dataspace-protocol-http", - "edc:state": "FINALIZED", - "edc:counterPartyAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "edc:callbackAddresses": [], - "edc:contractAgreementId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - }, - "transfer": { - "init": { - "request": { - "@context": { - "odrl": "http://www.w3.org/ns/odrl/2/" - }, - "assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", - "connectorAddress": "https://materialpass.dev.demo.catena-x.net/BPNL000000000000/api/v1/dsp", - "contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb", - "dataDestination": { - "properties": { - "type": "HttpProxy" - } - }, - "managedResources": false, - "privateProperties": { - "receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e" - }, - "protocol": "dataspace-protocol-http", - "transferType": { - "contentType": "application/octet-stream", - "isFinite": true - } - }, - "response": { - "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", - "@type": "edc:IdResponseDto", - "edc:createdAt": 1688393671434, - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - }, - "get": { - "response": { - "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", - "@type": "edc:TransferProcessDto", - "edc:state": "COMPLETED", - "edc:stateTimestamp": 1688393673622, - "edc:type": "CONSUMER", - "edc:callbackAddresses": [], - "edc:dataDestination": { - "edc:type": "HttpProxy" - }, - "edc:dataRequest": { - "@id": "ecdad987-afc4-4c49-aa88-9676b4599db0", - "@type": "edc:DataRequestDto", - "edc:assetId": "1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23", - "edc:contractId": "2:1f4a64f0-aba9-498a-917c-4936c24c50cd-49a06ad2-64b7-46c8-9f3b-a718c462ca23:b631f6a1-75b5-497b-ae3d-0413d6dd87fb" - }, - "edc:receiverHttpEndpoint": "https://materialpass.dev.demo.catena-x.net/endpoint/d0bf9018-87ee-4b4a-b4a5-683b2701d90e", - "@context": { - "dct": "https://purl.org/dc/terms/", - "tx": "https://w3id.org/tractusx/v0.0.1/ns/", - "edc": "https://w3id.org/edc/v0.0.1/ns/", - "dcat": "https://www.w3.org/ns/dcat/", - "odrl": "http://www.w3.org/ns/odrl/2/", - "dspace": "https://w3id.org/dspace/v0.8/" - } - } - } - } - }, - "semanticId": "urn:bamm:io.catenax.transmission.transmission_pass:1.0.0#TransmissionPass", - "aspect": { - "productSpecificParameters": { - "torqueConverter": [ - "RYtGKbgicZaHCBRQDSx" - ], - "driveType": "combustion engine", - "oilType": "ZF Lifeguard Hybrid 2", - "spreading": 6.79, - "torque": 500.0, - "power": 300.0, - "standardGearRatio": { - "gear": "1", - "ratio": 4.1567 - }, - "oilCapacity": 8.9, - "electricPerformance": [ - "VLhpfQGTMDYpsBZxvfBoeygjb" - ], - "speedResistance": { - "speed": 7800, - "gear": "1" - } - }, - "instructions": { - "packagingInstructions": [ - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - }, - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - } - ], - "transportationInstructions": [ - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - } - ], - "dismantlingProcedure": [ - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - } - ], - "safetyMeasures": [ - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - } - ], - "vehicleDismantlingProcedure": [ - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - } - ] - }, - "identification": { - "manufacturerId": "BPNL1234567890ZZ", - "localIdentifiers": [ - { - "value": "SN12345678", - "key": "PartInstanceID" - } - ], - "dataMatrixCode": "UMaAIKKIkknjWEXJUfPxxQHeWKEJ" - }, - "sparePartSupplier": [ - { - "supplierContact": { - "faxNumber": "+49 89 0987654321", - "website": "https://www.samsung.com", - "phoneNumber": "+49 89 1234567890", - "email": "test.mail@example.com" - }, - "supplierId": "BPNL1234567890ZZ", - "sparePartName": "torque converter" - } - ], - "stateOfHealth": { - "serviceHistory": [ - "2023-05-22T13:16:47.239+02:00" - ], - "expectedLifespan": 500000, - "remanufacturing": { - "remanufacturingDate": "2023-05-22T13:16:47.239+02:00", - "productStatusValue": "first life" - } - }, - "generalInformation": { - "additionalInformation": "JxkyvRnL", - "physicalDimensionsProperty": { - "width": 1000.0, - "length": 20000.1, - "weight": 100.7, - "diameter": 0.03, - "height": 0.1 - }, - "warrantyPeriod": 60.0, - "productDescription": "manual transmission", - "productType": "8HP60MH" - }, - "sustainability": { - "substancesOfConcern": [ - "yedUsFwdkelQbxeTeQOvaScfqIOOmaa", - "yedUsFwdkelQbxeTeQOvaScfqIOOmaa" - ], - "responsibleSourcingDocument": [ - { - "documentTitle": "Title A", - "documentLink": "https://www.xxx.pdf" - } - ], - "recyclateContent": { - "nickel": -1.7976931348623157E+308, - "lithium": -1.7976931348623157E+308, - "cobalt": -1.7976931348623157E+308, - "otherSubstance": [ - { - "substancePercentage": 8.0, - "substanceName": "Lead" - } - ] - }, - "criticalRawMaterials": [ - "eOMtThyhVNLWUZNRcBaQKxI" - ], - "carbonFootprint": { - "crossSectoralStandardsUsed": [ - { - "crossSectoralStandard": "GHG Protocol Product standard" - } - ], - "co2FootprintTotal": -1.7976931348623157E+308, - "productOrSectorSpecificRules": [ - { - "operator": "PEF", - "ruleNames": "ABC 2021", - "otherOperatorName": "NSF" - } - ] - } - } - } -} \ No newline at end of file diff --git a/src/components/general/SectionHeader.vue b/src/components/general/SectionHeader.vue deleted file mode 100644 index a2f9ab620..000000000 --- a/src/components/general/SectionHeader.vue +++ /dev/null @@ -1,108 +0,0 @@ - - - - - - - diff --git a/src/components/general/Spinner.vue b/src/components/general/Spinner.vue deleted file mode 100644 index 6eef847cc..000000000 --- a/src/components/general/Spinner.vue +++ /dev/null @@ -1,63 +0,0 @@ - - - - - - - diff --git a/src/components/passport/Section.vue b/src/components/passport/Section.vue deleted file mode 100644 index 745870da3..000000000 --- a/src/components/passport/Section.vue +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - diff --git a/src/media/BatteryLogo.svg b/src/media/BatteryLogo.svg deleted file mode 100644 index b8dfd37cc..000000000 --- a/src/media/BatteryLogo.svg +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/media/BatteryLogotype.svg b/src/media/BatteryLogotype.svg deleted file mode 100644 index 8e58213fa..000000000 --- a/src/media/BatteryLogotype.svg +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Digital Product Passport - - diff --git a/src/media/IMR18650V1.svg b/src/media/IMR18650V1.svg deleted file mode 100644 index 8360d0262..000000000 --- a/src/media/IMR18650V1.svg +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/media/NCR186850B.svg b/src/media/NCR186850B.svg deleted file mode 100644 index 9d0605d97..000000000 --- a/src/media/NCR186850B.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/media/QR.png b/src/media/QR.png deleted file mode 100644 index 3af9a6a85..000000000 Binary files a/src/media/QR.png and /dev/null differ diff --git a/src/media/X123456789012X12345678901234566.svg b/src/media/X123456789012X12345678901234566.svg deleted file mode 100644 index 0c5cad268..000000000 --- a/src/media/X123456789012X12345678901234566.svg +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/media/close.svg b/src/media/close.svg deleted file mode 100644 index 5478c99f8..000000000 --- a/src/media/close.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/media/flesh.svg b/src/media/flesh.svg deleted file mode 100644 index 692adb2f7..000000000 --- a/src/media/flesh.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/media/logo.png b/src/media/logo.png deleted file mode 100644 index 2b363b986..000000000 Binary files a/src/media/logo.png and /dev/null differ diff --git a/src/media/logo.svg b/src/media/logo.svg deleted file mode 100644 index 73961b97e..000000000 --- a/src/media/logo.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/media/logotype.png b/src/media/logotype.png deleted file mode 100644 index 08c8dd756..000000000 Binary files a/src/media/logotype.png and /dev/null differ diff --git a/src/media/logout.png b/src/media/logout.png deleted file mode 100644 index 868da5432..000000000 Binary files a/src/media/logout.png and /dev/null differ diff --git a/src/media/notifications.svg b/src/media/notifications.svg deleted file mode 100644 index 50a1c8261..000000000 --- a/src/media/notifications.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/media/qr-icon.svg b/src/media/qr-icon.svg deleted file mode 100644 index 14e798ec8..000000000 --- a/src/media/qr-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/src/media/qrFrame.svg b/src/media/qrFrame.svg deleted file mode 100644 index faa150202..000000000 --- a/src/media/qrFrame.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/media/qrSearch.svg b/src/media/qrSearch.svg deleted file mode 100644 index e55fb0933..000000000 --- a/src/media/qrSearch.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/media/search.svg b/src/media/search.svg deleted file mode 100644 index e7e6fc782..000000000 --- a/src/media/search.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/src/media/settings.svg b/src/media/settings.svg deleted file mode 100644 index 309d32a24..000000000 --- a/src/media/settings.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/src/media/spinner.gif b/src/media/spinner.gif deleted file mode 100644 index 3a2df77df..000000000 Binary files a/src/media/spinner.gif and /dev/null differ diff --git a/src/media/spinner.svg b/src/media/spinner.svg deleted file mode 100644 index d12961f1a..000000000 --- a/src/media/spinner.svg +++ /dev/null @@ -1,4 +0,0 @@ - diff --git a/src/media/toggle.svg b/src/media/toggle.svg deleted file mode 100644 index 2a19b7401..000000000 --- a/src/media/toggle.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - -