From 4b5f1079f2c05288a27f155cabf1a49f84490b0d Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 13:13:57 +0200 Subject: [PATCH 001/153] feat: allow deploying to hetzner --- .env.example | 40 ++++ .github/workflows/awsdeploy.yml | 80 ------- .github/workflows/deploy-template.yml | 137 ------------ .github/workflows/deploy.yml | 261 ++++++++++++++++++++++ .github/workflows/e2e.yml | 66 +++--- .github/workflows/ecrbuild-all.yml | 89 -------- .github/workflows/ecrbuild-template.yml | 143 ------------ .github/workflows/ghcr-build-all.yml | 51 +++++ .github/workflows/ghcr-build-template.yml | 84 +++++++ .github/workflows/on_main.yml | 48 +--- .github/workflows/on_pr.yml | 67 ++---- .github/workflows/preview.yml | 172 ++++++++++++++ .github/workflows/pull-preview-script.sh | 7 - .github/workflows/pull-preview.yml | 93 -------- .gitignore | 7 + docker-compose.preview.pr.yml | 7 - docker-compose.preview.sandbox.yml | 7 - docker-compose.preview.yml | 82 ------- infra/.env.example | 46 ++++ infra/.env.preview.enc | 51 +++++ infra/.sops.yaml | 16 ++ infra/Caddyfile | 40 ++++ infra/Caddyfile.preview | 53 +++++ infra/import-backup.sh | 29 +++ infra/stack.preview.yml | 158 +++++++++++++ infra/stack.yml | 153 +++++++++++++ package.json | 14 +- 27 files changed, 1218 insertions(+), 783 deletions(-) create mode 100644 .env.example delete mode 100644 .github/workflows/awsdeploy.yml delete mode 100644 .github/workflows/deploy-template.yml create mode 100644 .github/workflows/deploy.yml delete mode 100644 .github/workflows/ecrbuild-all.yml delete mode 100644 .github/workflows/ecrbuild-template.yml create mode 100644 .github/workflows/ghcr-build-all.yml create mode 100644 .github/workflows/ghcr-build-template.yml create mode 100644 .github/workflows/preview.yml delete mode 100644 .github/workflows/pull-preview-script.sh delete mode 100644 .github/workflows/pull-preview.yml delete mode 100644 docker-compose.preview.pr.yml delete mode 100644 docker-compose.preview.sandbox.yml delete mode 100644 docker-compose.preview.yml create mode 100644 infra/.env.example create mode 100644 infra/.env.preview.enc create mode 100644 infra/.sops.yaml create mode 100644 infra/Caddyfile create mode 100644 infra/Caddyfile.preview create mode 100755 infra/import-backup.sh create mode 100644 infra/stack.preview.yml create mode 100644 infra/stack.yml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000..12034ca718 --- /dev/null +++ b/.env.example @@ -0,0 +1,40 @@ +# Base environment configuration +# Copy this to .env and customize as needed +# Values here are defaults that work across development, testing, and self-hosting + +# Database configuration +POSTGRES_USER=postgres +POSTGRES_PASSWORD=postgres +POSTGRES_DB=postgres +POSTGRES_PORT=54322 + +# Cache configuration +VALKEY_HOST=localhost +VALKEY_PORT=6379 + +# Minio configuration +MINIO_ROOT_USER=pubpub-admin +MINIO_ROOT_PASSWORD=pubpub-admin +ASSETS_BUCKET_NAME=assets.pubpub.local +ASSETS_UPLOAD_KEY=pubpubuser +ASSETS_UPLOAD_SECRET_KEY=pubpubpass +ASSETS_REGION=us-east-1 +ASSETS_STORAGE_ENDPOINT=http://localhost:9000 + +# Email configuration +MAILGUN_SMTP_HOST=localhost +MAILGUN_SMTP_PORT=54325 +MAILGUN_SMTP_USERNAME=xxx +MAILGUN_SMTP_PASSWORD=xxx + +# Application configuration +API_KEY=super_secret_key +PUBPUB_URL=http://localhost:3000 + +# Other configuration +OTEL_SERVICE_NAME=pubpub-v7-dev +HONEYCOMB_API_KEY=xxx + +# Volume types (can be overridden per environment) +DB_VOLUME_TYPE=postgres_data +MINIO_VOLUME_TYPE=minio_data \ No newline at end of file diff --git a/.github/workflows/awsdeploy.yml b/.github/workflows/awsdeploy.yml deleted file mode 100644 index 52459d83f9..0000000000 --- a/.github/workflows/awsdeploy.yml +++ /dev/null @@ -1,80 +0,0 @@ -# Based on https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - -name: aws ecs deploy - -on: - workflow_call: - inputs: - proper-name: - required: true - type: string - environment: - required: true - type: string - image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 - type: string # use this to force a container version. - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true - - #dispatch event means you can call it from the Github UI and set inputs on a form. - # MUST match the inputs of the workflow_call. - workflow_dispatch: - inputs: - proper-name: - required: true - type: string - environment: - required: true - type: string - image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 - type: string # use this to force a container version. - -jobs: - deploy-core: - uses: ./.github/workflows/deploy-template.yml - with: - service: core - environment: ${{ inputs.environment }} - proper-name: ${{ inputs.proper-name }} - image-tag-override: ${{ inputs.image-tag-override }} - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - deploy-jobs: - uses: ./.github/workflows/deploy-template.yml - needs: deploy-core - with: - service: jobs - environment: ${{ inputs.environment }} - proper-name: ${{ inputs.proper-name }} - image-tag-override: ${{ inputs.image-tag-override }} - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - deploy-bastion: - uses: ./.github/workflows/deploy-template.yml - with: - service: bastion - environment: ${{ inputs.environment }} - proper-name: ${{ inputs.proper-name }} - repo-name-override: pubpub-v7 - image-tag-override: ${{ inputs.image-tag-override }} - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - deploy-site-builder: - uses: ./.github/workflows/deploy-template.yml - with: - service: site-builder - environment: ${{ inputs.environment }} - proper-name: ${{ inputs.proper-name }} - image-tag-override: ${{ inputs.image-tag-override }} - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} diff --git a/.github/workflows/deploy-template.yml b/.github/workflows/deploy-template.yml deleted file mode 100644 index d98a0370c8..0000000000 --- a/.github/workflows/deploy-template.yml +++ /dev/null @@ -1,137 +0,0 @@ -# Based on https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - -name: aws ecs deploy template - -on: - workflow_call: - inputs: - service: # example: core - required: true - type: string - proper-name: # example: blake - required: true - type: string - environment: # example: staging - required: true - type: string - repo-name-override: - type: string - image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 - type: string # use this to force a container version. - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true - workflow_dispatch: - inputs: - service: # example: core - required: true - type: string - proper-name: # example: blake - required: true - type: string - environment: # example: staging - required: true - type: string - repo-name-override: - type: string - image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 - type: string # use this to force a container version. - -env: - AWS_REGION: us-east-1 - ECR_REPOSITORY_PREFIX: pubpub-v7 - ECR_REPOSITORY_NAME_OVERRIDE: ${{ inputs.repo-name-override }} - ECS_SERVICE: ${{ inputs.proper-name }}-${{inputs.service}} - ECS_CLUSTER: ${{inputs.proper-name}}-ecs-cluster-${{inputs.environment}} - ECS_TASK_DEFINITION_TEMPLATE: ${{ inputs.proper-name }}-${{inputs.service}} - CONTAINER_NAME: ${{inputs.service}} - -jobs: - deploy: - name: Deploy - runs-on: ubuntu-latest - environment: ${{ inputs.proper-name }}-${{ inputs.environment }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ vars.IAM_ROLE_TO_ASSUME }} - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ env.AWS_REGION }} - - - name: Get image tag based on SHA - id: gettag - env: - OVERRIDE: ${{inputs.image-tag-override}} - # use shell substitution - run: echo "tag=${OVERRIDE:-$(git describe --always --abbrev=40 --dirty)}" >> $GITHUB_OUTPUT - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v2 - - - name: Retrieve Task Definition contents from template - id: get-taskdef - run: | - aws ecs describe-task-definition \ - --task-definition $ECS_TASK_DEFINITION_TEMPLATE \ - --query taskDefinition >> template_task_def.json - - - name: Get image labels - id: label - env: - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} - IMAGE_TAG: ${{ steps.gettag.outputs.tag }} - run: | - echo "label=$ECR_REGISTRY/${ECR_REPOSITORY_NAME_OVERRIDE:-$ECR_REPOSITORY_PREFIX-${CONTAINER_NAME}}:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "base_label=$ECR_REGISTRY/$ECR_REPOSITORY_PREFIX:$IMAGE_TAG" >> $GITHUB_OUTPUT - - - name: Fill in the new image ID in the Amazon ECS task definition - id: task-def-service - uses: aws-actions/amazon-ecs-render-task-definition@c804dfbdd57f713b6c079302a4c01db7017a36fc - with: - task-definition: template_task_def.json - container-name: ${{ env.CONTAINER_NAME }} - image: ${{ steps.label.outputs.label }} - - # Complication when the number of containers in the task are unknown: - # we have to know where to get the inputs for each step, including the upload - # step. - - name: Fill in the new image ID in the Amazon ECS task definition for migrations - id: task-def-migration - if: inputs.service == 'core' - uses: aws-actions/amazon-ecs-render-task-definition@c804dfbdd57f713b6c079302a4c01db7017a36fc - with: - task-definition: ${{ steps.task-def-service.outputs.task-definition }} - container-name: migrations - image: ${{ steps.label.outputs.base_label }} - - - name: Deploy Amazon ECS task definition - id: deploy-service-only - # This one is different. The single-image case is when not deploying core. - if: inputs.service != 'core' - uses: aws-actions/amazon-ecs-deploy-task-definition@16f052ed696e6e5bf88c208a8e5ba1af7ced3310 - with: - # it is because of this line that the two steps need different if conditions - task-definition: ${{ steps.task-def-service.outputs.task-definition }} - service: ${{ env.ECS_SERVICE }} - cluster: ${{ env.ECS_CLUSTER }} - wait-for-service-stability: true - - - name: Deploy Amazon ECS task definition including migrations - id: deploy-service-and-migrations - if: inputs.service == 'core' - uses: aws-actions/amazon-ecs-deploy-task-definition@16f052ed696e6e5bf88c208a8e5ba1af7ced3310 - with: - # it is because of this line that the two steps need different if conditions - task-definition: ${{ steps.task-def-migration.outputs.task-definition }} - service: ${{ env.ECS_SERVICE }} - cluster: ${{ env.ECS_CLUSTER }} - wait-for-service-stability: true diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000000..c131c2a639 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,261 @@ +name: Deploy to Hetzner + +run-name: >- + ${{ + github.event_name == 'release' && format('Deploy prod: {0}', github.event.release.tag_name) || + github.event_name == 'workflow_run' && format('Deploy staging: {0}', github.event.workflow_run.head_commit.message) || + format('Deploy: {0}', github.sha) + }} + +concurrency: + group: >- + deploy-${{ + github.event_name == 'release' && format('release-{0}', github.event.release.tag_name) || + github.event_name == 'workflow_run' && format('ci-{0}', github.event.workflow_run.head_branch) || + github.ref + }} + cancel-in-progress: true + +on: + workflow_run: + workflows: [CI] + types: [completed] + branches: [main] + workflow_dispatch: + inputs: + skip_ci_check: + description: Deploy even if CI failed + required: false + default: false + type: boolean + release: + types: [published] + +jobs: + build: + runs-on: ubuntu-latest + if: | + github.event_name == 'workflow_dispatch' || + github.event_name == 'release' || + (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') + + permissions: + contents: read + packages: write + + outputs: + image_tag: ${{ steps.vars.outputs.image_tag }} + host: ${{ steps.vars.outputs.host }} + env_file: ${{ steps.vars.outputs.env_file }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.event.workflow_run.head_sha || github.sha }} + + - name: Set deployment vars + id: vars + run: | + if [[ "${{ github.event_name }}" == "release" ]]; then + echo "image_tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT + echo "host=${{ secrets.SSH_HOST_PROD }}" >> $GITHUB_OUTPUT + echo "env_file=.env.enc" >> $GITHUB_OUTPUT + echo "publish_latest=false" >> $GITHUB_OUTPUT + else + echo "image_tag=${{ github.sha }}" >> $GITHUB_OUTPUT + echo "host=${{ secrets.SSH_HOST_STAGING }}" >> $GITHUB_OUTPUT + echo "env_file=.env.staging.enc" >> $GITHUB_OUTPUT + echo "publish_latest=true" >> $GITHUB_OUTPUT + fi + + - name: Log in to GHCR + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build and push platform + uses: docker/build-push-action@v6 + with: + context: . + push: true + provenance: false + sbom: false + cache-from: type=gha,scope=platform + cache-to: type=gha,mode=max,scope=platform + build-args: | + PACKAGE=core + CI=true + target: next-app-core + tags: | + ghcr.io/pubpub/platform:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform:latest' || '' }} + platforms: linux/amd64 + + - name: Build and push platform-migrations + uses: docker/build-push-action@v6 + with: + context: . + push: true + provenance: false + sbom: false + cache-from: type=gha,scope=platform-migrations + cache-to: type=gha,mode=max,scope=platform-migrations + build-args: | + CI=true + target: monorepo + tags: | + ghcr.io/pubpub/platform-migrations:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform-migrations:latest' || '' }} + platforms: linux/amd64 + + - name: Build and push platform-jobs + uses: docker/build-push-action@v6 + with: + context: . + push: true + provenance: false + sbom: false + cache-from: type=gha,scope=platform-jobs + cache-to: type=gha,mode=max,scope=platform-jobs + build-args: | + PACKAGE=jobs + CI=true + target: jobs + tags: | + ghcr.io/pubpub/platform-jobs:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform-jobs:latest' || '' }} + platforms: linux/amd64 + + - name: Build and push platform-site-builder + uses: docker/build-push-action@v6 + with: + context: . + push: true + provenance: false + sbom: false + cache-from: type=gha,scope=platform-site-builder + cache-to: type=gha,mode=max,scope=platform-site-builder + build-args: | + PACKAGE=site-builder + CI=true + target: jobs + tags: | + ghcr.io/pubpub/platform-site-builder:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform-site-builder:latest' || '' }} + platforms: linux/amd64 + + deploy: + needs: build + runs-on: ubuntu-latest + + steps: + - name: Start SSH agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Add known hosts + run: | + mkdir -p ~/.ssh + ssh-keyscan -H "${{ needs.build.outputs.host }}" >> ~/.ssh/known_hosts + + - name: Deploy over SSH + env: + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ needs.build.outputs.host }} + REPO: ${{ github.repository }} + BRANCH: ${{ github.ref_name }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} + IMAGE_TAG: ${{ needs.build.outputs.image_tag }} + ENV_FILE: ${{ needs.build.outputs.env_file }} + run: | + ssh "${SSH_USER}@${SSH_HOST}" \ + "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' ENV_FILE='${ENV_FILE}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' + set -euo pipefail + + REPO="${1:?missing repo}" + BRANCH="${2:-main}" + + : "${IMAGE_TAG:?missing IMAGE_TAG}" + : "${GHCR_USER:?missing GHCR_USER}" + : "${GHCR_TOKEN:?missing GHCR_TOKEN}" + + REPO_NAME="${REPO##*/}" + APP_DIR="/srv/${REPO_NAME}" + REPO_SSH="git@github.com:${REPO}.git" + + if [[ -z "$REPO_NAME" || -z "$APP_DIR" ]]; then + echo "bad derived paths: REPO='$REPO' REPO_NAME='$REPO_NAME' APP_DIR='$APP_DIR'" + exit 1 + fi + + ssh-keyscan -H github.com >> ~/.ssh/known_hosts 2>/dev/null + chmod 600 ~/.ssh/known_hosts + + if [[ ! -d "${APP_DIR}/.git" ]]; then + sudo mkdir -p "${APP_DIR}" + sudo chown -R "$USER:$USER" "${APP_DIR}" + git clone --branch "${BRANCH}" "${REPO_SSH}" "${APP_DIR}" + fi + + cd "${APP_DIR}" + git fetch --prune --tags origin + git checkout --detach "${IMAGE_TAG}" 2>/dev/null || git checkout --detach "origin/${BRANCH}" + + cd infra + umask 077 + + : "${ENV_FILE:?missing ENV_FILE}" + sops -d --input-type dotenv --output-type dotenv "$ENV_FILE" > .env + + if ! sudo docker info --format '{{.Swarm.LocalNodeState}}' | grep -qx active; then + sudo docker swarm init --advertise-addr "$(hostname -I | awk '{print $1}')" + fi + + echo "$GHCR_TOKEN" | sudo docker login ghcr.io -u "$GHCR_USER" --password-stdin + + echo "deploying with IMAGE_TAG=$IMAGE_TAG" + + sudo env IMAGE_TAG="$IMAGE_TAG" \ + docker stack deploy -c stack.yml \ + --with-registry-auth --resolve-image always --prune \ + pubpub + + sudo docker stack services pubpub + sudo docker image prune -f + + # wait for platform rollout + wait_rollout() { + echo "waiting for rollout of $1..." + svc="$1" + timeout="${2:-600}" + end=$((SECONDS+timeout)) + + while (( SECONDS < end )); do + desired="$(sudo docker service inspect "$svc" --format '{{.Spec.Mode.Replicated.Replicas}}' 2>/dev/null || echo "")" + running="$(sudo docker service ps "$svc" --filter desired-state=running --format '{{.CurrentState}}' 2>/dev/null | grep -c '^Running' || true)" + state="$(sudo docker service inspect "$svc" --format '{{if .UpdateStatus}}{{.UpdateStatus.State}}{{end}}' 2>/dev/null || echo "")" + echo " $svc: desired=$desired running=$running state=$state" + + if [[ -n "$desired" && "$running" == "$desired" ]] && { [[ -z "$state" ]] || [[ "$state" == "completed" ]]; }; then + echo " $svc rollout complete" + return 0 + fi + + sleep 5 + done + + echo "rollout timeout for $svc" + return 1 + } + + wait_rollout pubpub_platform 600 + + EOS diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a49b764d75..9861c4219f 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -1,26 +1,21 @@ on: workflow_call: inputs: - image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 - type: string # use this to force a container version. - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true + image-tag-override: + type: string env: CI: true - AWS_REGION: us-east-1 - - ECR_REPOSITORY_PREFIX: pubpub-v7 - CONTAINER_NAME: core jobs: integration-tests: name: Integration tests runs-on: ubuntu-latest + permissions: + contents: read + packages: read + strategy: matrix: package: @@ -52,7 +47,6 @@ jobs: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT - name: Setup pnpm cache - # since this always runs after CI, there's no need to save the cache afterwards, since it's guaranteed to be the same uses: actions/cache/restore@v4 with: path: ${{ steps.get-store-path.outputs.STORE_PATH }} @@ -60,7 +54,6 @@ jobs: restore-keys: | ${{ runner.os }}-pnpm-store- - # mostly to skip preconstruct build - name: Setup turbo cache uses: actions/cache/restore@v4 with: @@ -69,15 +62,7 @@ jobs: restore-keys: | ${{ runner.os }}-turbo- - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ vars.IAM_ROLE_TO_ASSUME }} - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ env.AWS_REGION }} - - - name: Get image tag based on SHA + - name: Get image tag id: gettag run: | if [ -n "${{ inputs.image-tag-override }}" ]; then @@ -88,20 +73,22 @@ jobs: echo "Using current SHA as image tag" fi - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v2 + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Get image labels + - name: Compute image refs id: label env: - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} IMAGE_TAG: ${{ steps.gettag.outputs.tag }} run: | - echo "core_label=$ECR_REGISTRY/${ECR_REPOSITORY_NAME_OVERRIDE:-$ECR_REPOSITORY_PREFIX-core}:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "jobs_label=$ECR_REGISTRY/${ECR_REPOSITORY_NAME_OVERRIDE:-$ECR_REPOSITORY_PREFIX-jobs}:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "base_label=$ECR_REGISTRY/$ECR_REPOSITORY_PREFIX:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "site_builder_label=$ECR_REGISTRY/${ECR_REPOSITORY_NAME_OVERRIDE:-$ECR_REPOSITORY_PREFIX-site-builder}:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "core_label=ghcr.io/pubpub/platform:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "jobs_label=ghcr.io/pubpub/platform-jobs:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "base_label=ghcr.io/pubpub/platform-migrations:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "site_builder_label=ghcr.io/pubpub/platform-site-builder:$IMAGE_TAG" >> $GITHUB_OUTPUT - name: Install dependencies run: pnpm install --frozen-lockfile --prefer-offline @@ -115,7 +102,6 @@ jobs: - name: Run migrations and seed run: pnpm --filter core reset-base env: - # 20241126: this prevents the arcadia seed from running, which contains a ton of pubs which potentially might slow down the tests MINIMAL_SEED: true SKIP_VALIDATION: true @@ -124,16 +110,16 @@ jobs: - name: Start up core etc run: pnpm integration:setup env: - INTEGRATION_TESTS_IMAGE: ${{steps.label.outputs.core_label}} - SITE_BUILDER_IMAGE: ${{steps.label.outputs.site_builder_label}} - JOBS_IMAGE: ${{steps.label.outputs.jobs_label}} + INTEGRATION_TESTS_IMAGE: ${{ steps.label.outputs.core_label }} + SITE_BUILDER_IMAGE: ${{ steps.label.outputs.site_builder_label }} + JOBS_IMAGE: ${{ steps.label.outputs.jobs_label }} - name: Log out Container ID for health check id: log-container-id run: echo "CONTAINER_ID=$(docker compose -f docker-compose.test.yml ps integration-tests -q)" >> $GITHUB_OUTPUT - name: Wait until container is healthy - run: while [ "`docker inspect -f {{.State.Health.Status}} ${{steps.log-container-id.outputs.CONTAINER_ID}}`" != "healthy" ]; do sleep .2; done + run: while [ "`docker inspect -f {{.State.Health.Status}} ${{ steps.log-container-id.outputs.CONTAINER_ID }}`" != "healthy" ]; do sleep .2; done - name: Run integration tests run: pnpm playwright:test --filter ${{ matrix.package }} --env-mode=loose @@ -143,12 +129,12 @@ jobs: DATABASE_URL: postgresql://postgres:postgres@localhost:54322/postgres - name: Print container logs - if: ${{failure() || cancelled()}} + if: ${{ failure() || cancelled() }} run: docker compose -f docker-compose.test.yml --profile integration logs -t env: - INTEGRATION_TESTS_IMAGE: ${{steps.label.outputs.core_label}} - SITE_BUILDER_IMAGE: ${{steps.label.outputs.site_builder_label}} - JOBS_IMAGE: ${{steps.label.outputs.jobs_label}} + INTEGRATION_TESTS_IMAGE: ${{ steps.label.outputs.core_label }} + SITE_BUILDER_IMAGE: ${{ steps.label.outputs.site_builder_label }} + JOBS_IMAGE: ${{ steps.label.outputs.jobs_label }} - name: Upload core playwright snapshots artifact if: failure() && matrix.package == 'core' diff --git a/.github/workflows/ecrbuild-all.yml b/.github/workflows/ecrbuild-all.yml deleted file mode 100644 index 11d9af56da..0000000000 --- a/.github/workflows/ecrbuild-all.yml +++ /dev/null @@ -1,89 +0,0 @@ -# Based on https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - -name: docker build to ECR - -on: - workflow_call: - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true - inputs: - publish_to_ghcr: - type: boolean - default: false - outputs: - core-image: - description: "Core image SHA" - value: ${{ jobs.build-core.outputs.image-sha }} - base-image: - description: "Base image SHA" - value: ${{ jobs.build-base.outputs.image-sha }} - jobs-image: - description: "Jobs image SHA" - value: ${{ jobs.build-jobs.outputs.image-sha }} - site-builder-image: - description: "Site builder image SHA" - value: ${{ jobs.build-site-builder.outputs.image-sha }} - -jobs: - emit-sha-tag: - name: Emit container tag sha - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.sha }} - - name: Get image tag - id: label - run: | - sha_short=$(git describe --always --abbrev=40 --dirty) - echo "Building containers with tag:" - echo "$sha_short" - - build-base: - uses: ./.github/workflows/ecrbuild-template.yml - with: - publish_to_ghcr: ${{ inputs.publish_to_ghcr }} - ghcr_image_name: platform-migrations - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - build-core: - uses: ./.github/workflows/ecrbuild-template.yml - # needs: - # - build-base - with: - package: core - publish_to_ghcr: ${{ inputs.publish_to_ghcr }} - ghcr_image_name: platform - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - build-jobs: - uses: ./.github/workflows/ecrbuild-template.yml - # needs: - # - build-base - with: - package: jobs - target: jobs - publish_to_ghcr: ${{ inputs.publish_to_ghcr }} - ghcr_image_name: platform-jobs - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - build-site-builder: - uses: ./.github/workflows/ecrbuild-template.yml - with: - package: site-builder - target: jobs - publish_to_ghcr: ${{ inputs.publish_to_ghcr }} - ghcr_image_name: platform-site-builder - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} diff --git a/.github/workflows/ecrbuild-template.yml b/.github/workflows/ecrbuild-template.yml deleted file mode 100644 index 4fc87f6027..0000000000 --- a/.github/workflows/ecrbuild-template.yml +++ /dev/null @@ -1,143 +0,0 @@ -# Based on https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - -name: aws ecr build template - -on: - workflow_call: - inputs: - package: - type: string - runner: - type: string - default: ubuntu-latest - target: - type: string - publish_to_ghcr: - type: boolean - default: false - ghcr_image_name: - type: string - required: false - outputs: - image-sha: - description: "Image SHA" - value: ${{ jobs.build.outputs.image-sha }} - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true - -env: - PACKAGE: ${{ inputs.package }} - AWS_REGION: us-east-1 # set this to your preferred AWS region, e.g. us-west-1 - ECR_REPOSITORY_PREFIX: pubpub-v7 # set this to your Amazon ECR repository name - TARGET: ${{ inputs.target }} - -jobs: - build: - name: Build - runs-on: ${{ inputs.runner }} - outputs: - image-sha: ${{ steps.label.outputs.label }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.sha }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ vars.IAM_ROLE_TO_ASSUME }} - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ env.AWS_REGION }} - - - name: Login to Amazon ECR - id: login-ecr - uses: aws-actions/amazon-ecr-login@v2 - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - # necessary in order to upload build source maps to sentry - - name: Get sentry token - id: sentry-token - uses: aws-actions/aws-secretsmanager-get-secrets@v2 - with: - secret-ids: | - SENTRY_AUTH_TOKEN, ${{ vars.SENTRY_AUTH_TOKEN_ARN }} - - - name: setup docker buildx - uses: docker/setup-buildx-action@v3 - - - name: Create and use a new builder instance - run: | - docker buildx create --name cached-builder --use - - - name: Get image label - id: label - env: - ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }} - run: | - sha_short=$(git describe --always --abbrev=40 --dirty) - if [[ -z $PACKAGE ]] - then - package_suffix="" - echo "target=monorepo" >> $GITHUB_OUTPUT - else - package_suffix="-${PACKAGE}" - echo "target=${TARGET:-next-app-${PACKAGE}}" >> $GITHUB_OUTPUT - fi - echo "label=$ECR_REGISTRY/$ECR_REPOSITORY_PREFIX$package_suffix:$sha_short" >> $GITHUB_OUTPUT - if [[ ${{ inputs.publish_to_ghcr }} == "true" && -n ${{ inputs.ghcr_image_name }} ]] - then - TIMESTAMP=$(date +%Y%m%d-%H%M%S) - - echo "ghcr_latest_label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:latest" >> $GITHUB_OUTPUT - - echo "ghcr_sha_label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" >> $GITHUB_OUTPUT - - echo "ghcr_timestamp_label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$TIMESTAMP" >> $GITHUB_OUTPUT - fi - - - name: Check if SENTRY_AUTH_TOKEN is set - run: | - if [[ -z ${{ env.SENTRY_AUTH_TOKEN }} ]] - then - echo "SENTRY_AUTH_TOKEN is not set" - exit 1 - fi - - - name: Build, tag, and push image to Amazon ECR - uses: docker/build-push-action@v6 - id: build-image - env: - REGISTRY_REF: ${{steps.login-ecr.outputs.registry}}/${{env.ECR_REPOSITORY_PREFIX}}-${{env.PACKAGE}}:cache - LABEL: ${{ steps.label.outputs.label }} - TARGET: ${{ steps.label.outputs.target }} - SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} - with: - context: . - # cache-from: type=registry,ref=${{env.REGISTRY_REF}} - # cache-to: type=registry,mode=max,image-manifest=true,oci-mediatypes=true,ref=${{env.REGISTRY_REF}} - builder: cached-builder - build-args: | - PACKAGE=${{ inputs.package }} - CI=true - secrets: | - SENTRY_AUTH_TOKEN=${{ env.SENTRY_AUTH_TOKEN }} - target: ${{ steps.label.outputs.target }} - tags: | - ${{ steps.label.outputs.label }} - ${{ steps.label.outputs.ghcr_latest_label }} - ${{ steps.label.outputs.ghcr_sha_label }} - ${{ steps.label.outputs.ghcr_timestamp_label }} - platforms: linux/amd64 - push: true diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml new file mode 100644 index 0000000000..3a0e6c955d --- /dev/null +++ b/.github/workflows/ghcr-build-all.yml @@ -0,0 +1,51 @@ +name: docker build to GHCR + +on: + workflow_call: + inputs: + publish_latest: + type: boolean + default: false + outputs: + core-image: + description: "Core image ref" + value: ${{ jobs.build-core.outputs.image-sha }} + base-image: + description: "Base/migrations image ref" + value: ${{ jobs.build-base.outputs.image-sha }} + jobs-image: + description: "Jobs image ref" + value: ${{ jobs.build-jobs.outputs.image-sha }} + site-builder-image: + description: "Site builder image ref" + value: ${{ jobs.build-site-builder.outputs.image-sha }} + +jobs: + build-base: + uses: ./.github/workflows/ghcr-build-template.yml + with: + ghcr_image_name: platform-migrations + publish_latest: ${{ inputs.publish_latest }} + + build-core: + uses: ./.github/workflows/ghcr-build-template.yml + with: + package: core + ghcr_image_name: platform + publish_latest: ${{ inputs.publish_latest }} + + build-jobs: + uses: ./.github/workflows/ghcr-build-template.yml + with: + package: jobs + target: jobs + ghcr_image_name: platform-jobs + publish_latest: ${{ inputs.publish_latest }} + + build-site-builder: + uses: ./.github/workflows/ghcr-build-template.yml + with: + package: site-builder + target: jobs + ghcr_image_name: platform-site-builder + publish_latest: ${{ inputs.publish_latest }} diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml new file mode 100644 index 0000000000..5fadfb33b6 --- /dev/null +++ b/.github/workflows/ghcr-build-template.yml @@ -0,0 +1,84 @@ +name: ghcr build template + +on: + workflow_call: + inputs: + package: + type: string + runner: + type: string + default: ubuntu-latest + target: + type: string + ghcr_image_name: + type: string + required: true + publish_latest: + type: boolean + default: false + outputs: + image-sha: + description: "Full GHCR image ref with SHA tag" + value: ${{ jobs.build.outputs.image-sha }} + +jobs: + build: + name: Build + runs-on: ${{ inputs.runner }} + permissions: + contents: read + packages: write + + outputs: + image-sha: ${{ steps.label.outputs.label }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Compute image tags + id: label + run: | + sha_short=$(git describe --always --abbrev=40 --dirty) + + if [[ -z "${{ inputs.package }}" ]]; then + echo "target=monorepo" >> $GITHUB_OUTPUT + else + echo "target=${{ inputs.target || format('next-app-{0}', inputs.package) }}" >> $GITHUB_OUTPUT + fi + + echo "label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" >> $GITHUB_OUTPUT + + TAGS="ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" + if [[ "${{ inputs.publish_latest }}" == "true" ]]; then + TAGS="$TAGS,ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:latest" + fi + echo "tags=$TAGS" >> $GITHUB_OUTPUT + + - name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + cache-from: type=gha,scope=${{ inputs.ghcr_image_name }} + cache-to: type=gha,mode=max,scope=${{ inputs.ghcr_image_name }} + build-args: | + PACKAGE=${{ inputs.package }} + CI=true + target: ${{ steps.label.outputs.target }} + tags: ${{ steps.label.outputs.tags }} + platforms: linux/amd64 + push: true + provenance: false + sbom: false diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index 265f1ae985..6ae645b4f9 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -1,5 +1,3 @@ -# Based on https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - name: Promote from main on: @@ -13,33 +11,15 @@ jobs: build-all: needs: ci - uses: ./.github/workflows/ecrbuild-all.yml + uses: ./.github/workflows/ghcr-build-all.yml with: - publish_to_ghcr: true - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + publish_latest: true run-e2e: needs: - ci - build-all uses: ./.github/workflows/e2e.yml - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - - deploy-all: - uses: ./.github/workflows/awsdeploy.yml - needs: - - build-all - - run-e2e - with: - proper-name: stevie - environment: production - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} deploy-docs: permissions: @@ -49,27 +29,3 @@ jobs: uses: ./.github/workflows/build-docs.yml with: preview: false - - deploy-preview: - uses: ./.github/workflows/pull-preview.yml - needs: - - build-all - permissions: - contents: read - deployments: write - pull-requests: write - statuses: write - with: - PLATFORM_IMAGE: ${{ needs.build-all.outputs.core-image }} - JOBS_IMAGE: ${{ needs.build-all.outputs.jobs-image }} - MIGRATIONS_IMAGE: ${{ needs.build-all.outputs.base-image }} - SITE_BUILDER_IMAGE: ${{ needs.build-all.outputs.site-builder-image }} - AWS_REGION: "us-east-1" - ALWAYS_ON: "main" - COMPOSE_FILES: docker-compose.preview.sandbox.yml - secrets: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - GH_PAT_PR_PREVIEW_CLEANUP: ${{ secrets.GH_PAT_PR_PREVIEW_CLEANUP }} - PREVIEW_DATACITE_REPOSITORY_ID: ${{ secrets.PREVIEW_DATACITE_REPOSITORY_ID }} - PREVIEW_DATACITE_PASSWORD: ${{ secrets.PREVIEW_DATACITE_PASSWORD }} diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 12a513f65e..d49311dfbb 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -1,14 +1,9 @@ -# Based on https://docs.github.com/en/actions/deployment/deploying-to-your-cloud-provider/deploying-to-amazon-elastic-container-service - name: PR Updated triggers on: pull_request: types: [labeled, unlabeled, synchronize, closed, reopened, opened] -env: - AWS_REGION: us-east-1 - permissions: id-token: write contents: read @@ -30,7 +25,6 @@ jobs: docs: - 'docs/**' - # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests skip_build_sha: outputs: @@ -62,20 +56,17 @@ jobs: run: | pr_number="${{ github.event.pull_request.number }}" - # get all workflow runs for this PR gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ | jq -s 'sort_by(.created) | reverse | .[].id' -r \ | while read run_id; do echo "Checking run: $run_id" - # check if build-all job succeeded in this run run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") echo "Run: $run" all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') echo "All success for $run_id: $all_success" if [ "$all_success" == "true" ]; then - # get the SHA for this run successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT echo "Found last successful build at SHA: $successful_sha (run: $run_id)" @@ -97,10 +88,7 @@ jobs: needs: - path-filter - skip_build_sha - uses: ./.github/workflows/ecrbuild-all.yml - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + uses: ./.github/workflows/ghcr-build-all.yml e2e: if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') @@ -111,58 +99,39 @@ jobs: uses: ./.github/workflows/e2e.yml with: image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} - secrets: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} deploy-preview: - if: needs.build-all.result == 'success' - uses: ./.github/workflows/pull-preview.yml + if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') + uses: ./.github/workflows/preview.yml needs: - build-all permissions: contents: read - deployments: write pull-requests: write - statuses: write with: - # PLATFORM_IMAGE: 246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-core:2b9a81a279c4e405bbedcdbb697c897ded52fbc0 - # JOBS_IMAGE: 246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-jobs:c786662f4899de16a621e366a485eca5adda4d6a - # MIGRATIONS_IMAGE: 246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7:c786662f4899de16a621e366a485eca5adda4d6a - # SITE_BUILDER_IMAGE: 246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-site-builder:c786662f4899de16a621e366a485eca5adda4d6a - PLATFORM_IMAGE: ${{ needs.build-all.outputs.core-image }} - JOBS_IMAGE: ${{ needs.build-all.outputs.jobs-image }} - MIGRATIONS_IMAGE: ${{ needs.build-all.outputs.base-image }} - SITE_BUILDER_IMAGE: ${{ needs.build-all.outputs.site-builder-image }} - AWS_REGION: "us-east-1" - COMPOSE_FILES: docker-compose.preview.pr.yml + action: deploy + image_tag: ${{ github.event.pull_request.head.sha }} secrets: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - GH_PAT_PR_PREVIEW_CLEANUP: ${{ secrets.GH_PAT_PR_PREVIEW_CLEANUP }} - PREVIEW_DATACITE_REPOSITORY_ID: ${{ secrets.PREVIEW_DATACITE_REPOSITORY_ID }} - PREVIEW_DATACITE_PASSWORD: ${{ secrets.PREVIEW_DATACITE_PASSWORD }} + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST_PREVIEW: ${{ secrets.SSH_HOST_PREVIEW }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} close-preview: - uses: ./.github/workflows/pull-preview.yml - if: ${{(github.event.action == 'closed' && contains(github.event.pull_request.labels.*.name, 'preview')) || (github.event.action == 'unlabeled' && github.event.label.name == 'preview')}} + if: (github.event.action == 'closed' && contains(github.event.pull_request.labels.*.name, 'preview')) || (github.event.action == 'unlabeled' && github.event.label.name == 'preview') + uses: ./.github/workflows/preview.yml permissions: contents: read - deployments: write pull-requests: write - statuses: write with: - PLATFORM_IMAGE: "x" # not used - JOBS_IMAGE: "x" # not used - MIGRATIONS_IMAGE: "x" # not used - SITE_BUILDER_IMAGE: "x" # not used - AWS_REGION: "us-east-1" + action: teardown secrets: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - GH_PAT_PR_PREVIEW_CLEANUP: ${{ secrets.GH_PAT_PR_PREVIEW_CLEANUP }} - PREVIEW_DATACITE_REPOSITORY_ID: ${{ secrets.PREVIEW_DATACITE_REPOSITORY_ID }} - PREVIEW_DATACITE_PASSWORD: ${{ secrets.PREVIEW_DATACITE_PASSWORD }} + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST_PREVIEW: ${{ secrets.SSH_HOST_PREVIEW }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} deploy-docs-preview: permissions: diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml new file mode 100644 index 0000000000..1b7d3cf45e --- /dev/null +++ b/.github/workflows/preview.yml @@ -0,0 +1,172 @@ +name: PR Preview + +on: + workflow_call: + inputs: + action: + required: true + type: string + description: "'deploy' or 'teardown'" + image_tag: + required: false + type: string + description: "image tag to deploy (only needed for deploy)" + secrets: + SSH_PRIVATE_KEY: + required: true + SSH_USER: + required: true + SSH_HOST_PREVIEW: + required: true + GHCR_USER: + required: true + GHCR_TOKEN: + required: true + +permissions: + contents: read + pull-requests: write + +jobs: + preview: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - uses: actions/checkout@v4 + + - name: Get PR number + id: pr + run: | + echo "number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT + echo "stack_name=preview-pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT + echo "host=pr-${{ github.event.pull_request.number }}.preview.pubpub.org" >> $GITHUB_OUTPUT + + - name: Start SSH agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Add known hosts + run: | + mkdir -p ~/.ssh + ssh-keyscan -H "${{ secrets.SSH_HOST_PREVIEW }}" >> ~/.ssh/known_hosts + + - name: Deploy preview stack + if: inputs.action == 'deploy' + env: + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} + REPO: ${{ github.repository }} + BRANCH: ${{ github.head_ref }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} + IMAGE_TAG: ${{ inputs.image_tag }} + STACK_NAME: ${{ steps.pr.outputs.stack_name }} + PREVIEW_HOST: ${{ steps.pr.outputs.host }} + run: | + ssh "${SSH_USER}@${SSH_HOST}" \ + "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' PREVIEW_HOST='${PREVIEW_HOST}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' + set -euo pipefail + + REPO="${1:?missing repo}" + BRANCH="${2:-main}" + + : "${IMAGE_TAG:?missing IMAGE_TAG}" + : "${GHCR_USER:?missing GHCR_USER}" + : "${GHCR_TOKEN:?missing GHCR_TOKEN}" + : "${STACK_NAME:?missing STACK_NAME}" + : "${PREVIEW_HOST:?missing PREVIEW_HOST}" + + REPO_NAME="${REPO##*/}" + APP_DIR="/srv/${REPO_NAME}" + REPO_SSH="git@github.com:${REPO}.git" + + ssh-keyscan -H github.com >> ~/.ssh/known_hosts 2>/dev/null + chmod 600 ~/.ssh/known_hosts + + if [[ ! -d "${APP_DIR}/.git" ]]; then + sudo mkdir -p "${APP_DIR}" + sudo chown -R "$USER:$USER" "${APP_DIR}" + git clone --branch "${BRANCH}" "${REPO_SSH}" "${APP_DIR}" + fi + + cd "${APP_DIR}" + git fetch --prune origin + git checkout "origin/${BRANCH}" --detach + + cd infra + + if ! sudo docker info --format '{{.Swarm.LocalNodeState}}' | grep -qx active; then + sudo docker swarm init --advertise-addr "$(hostname -I | awk '{print $1}')" + fi + + echo "$GHCR_TOKEN" | sudo docker login ghcr.io -u "$GHCR_USER" --password-stdin + + echo "deploying preview stack $STACK_NAME with IMAGE_TAG=$IMAGE_TAG at $PREVIEW_HOST" + + sudo env IMAGE_TAG="$IMAGE_TAG" PREVIEW_HOST="$PREVIEW_HOST" \ + docker stack deploy -c stack.preview.yml \ + --with-registry-auth --resolve-image always \ + "$STACK_NAME" + + sudo docker stack services "$STACK_NAME" + sudo docker image prune -f + + EOS + + - name: Teardown preview stack + if: inputs.action == 'teardown' + env: + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} + STACK_NAME: ${{ steps.pr.outputs.stack_name }} + run: | + ssh "${SSH_USER}@${SSH_HOST}" \ + "env STACK_NAME='${STACK_NAME}' bash -s" <<'EOS' + set -euo pipefail + : "${STACK_NAME:?missing STACK_NAME}" + + echo "tearing down preview stack $STACK_NAME" + + if sudo docker stack ls --format '{{.Name}}' | grep -qx "$STACK_NAME"; then + sudo docker stack rm "$STACK_NAME" + sleep 10 + # prune volumes for this stack + sudo docker volume ls --filter "label=com.docker.stack.namespace=$STACK_NAME" -q \ + | xargs -r sudo docker volume rm || true + echo "stack $STACK_NAME removed" + else + echo "stack $STACK_NAME not found, nothing to tear down" + fi + + sudo docker image prune -f + + EOS + + - name: Comment on PR + if: inputs.action == 'deploy' + uses: actions/github-script@v7 + with: + script: | + const body = `Preview deployed at https://${{ steps.pr.outputs.host }}`; + const { data: comments } = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: ${{ steps.pr.outputs.number }}, + }); + const existing = comments.find(c => c.body.includes('Preview deployed at')); + if (existing) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existing.id, + body, + }); + } else { + await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: ${{ steps.pr.outputs.number }}, + body, + }); + } diff --git a/.github/workflows/pull-preview-script.sh b/.github/workflows/pull-preview-script.sh deleted file mode 100644 index 6af5557d58..0000000000 --- a/.github/workflows/pull-preview-script.sh +++ /dev/null @@ -1,7 +0,0 @@ -# install latest version of docker compose, by default it's using an ancient version -sudo curl -sL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-"$(uname -m)" \ - -o "$(which docker-compose)" && sudo chmod +x "$(which docker-compose)" - -docker image prune -a -f - -df -h diff --git a/.github/workflows/pull-preview.yml b/.github/workflows/pull-preview.yml deleted file mode 100644 index 27a3dba4c0..0000000000 --- a/.github/workflows/pull-preview.yml +++ /dev/null @@ -1,93 +0,0 @@ -on: - workflow_call: - inputs: - PLATFORM_IMAGE: - required: true - type: string - JOBS_IMAGE: - required: true - type: string - MIGRATIONS_IMAGE: - required: true - type: string - SITE_BUILDER_IMAGE: - required: true - type: string - AWS_REGION: - required: true - type: string - ALWAYS_ON: - required: false - type: string - COMPOSE_FILES: - required: false - type: string - secrets: - AWS_ACCESS_KEY_ID: - required: true - AWS_SECRET_ACCESS_KEY: - required: true - GH_PAT_PR_PREVIEW_CLEANUP: - required: true - PREVIEW_DATACITE_REPOSITORY_ID: - required: true - PREVIEW_DATACITE_PASSWORD: - required: true - -permissions: - contents: read - deployments: write - pull-requests: write - statuses: write - -jobs: - preview: - timeout-minutes: 30 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Copy .env file - run: cp ./self-host/.env.example ./self-host/.env - - - name: Configure pullpreview - env: - PLATFORM_IMAGE: ${{ inputs.PLATFORM_IMAGE }} - JOBS_IMAGE: ${{ inputs.JOBS_IMAGE }} - MIGRATIONS_IMAGE: ${{ inputs.MIGRATIONS_IMAGE }} - SITE_BUILDER_IMAGE: ${{ inputs.SITE_BUILDER_IMAGE }} - run: | - sed -i "s|image: PLATFORM_IMAGE|image: $PLATFORM_IMAGE|" docker-compose.preview.yml - sed -i "s|image: JOBS_IMAGE|image: $JOBS_IMAGE|" docker-compose.preview.yml - sed -i "s|image: MIGRATIONS_IMAGE|image: $MIGRATIONS_IMAGE|" docker-compose.preview.yml - sed -i "s|image: SITE_BUILDER_IMAGE|image: $SITE_BUILDER_IMAGE|" docker-compose.preview.yml - sed -i "s|DATACITE_REPOSITORY_ID: DATACITE_REPOSITORY_ID|DATACITE_REPOSITORY_ID: ${{ secrets.PREVIEW_DATACITE_REPOSITORY_ID }}|" docker-compose.preview.yml - sed -i "s|DATACITE_PASSWORD: DATACITE_PASSWORD|DATACITE_PASSWORD: ${{ secrets.PREVIEW_DATACITE_PASSWORD }}|" docker-compose.preview.yml - sed -i "s|email someone@example.com|email dev@pubpub.org|" self-host/caddy/Caddyfile - sed -i "s|example.com|{\$PUBLIC_URL}|" self-host/caddy/Caddyfile - - - name: Get ECR token - id: ecrtoken - run: echo "value=$(aws ecr get-login-password --region us-east-1)" >> $GITHUB_OUTPUT - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_DEFAULT_REGION: "us-east-1" - - - uses: pullpreview/action@v5 - with: - label: preview - admins: 3mcd - compose_files: ./self-host/docker-compose.yml,docker-compose.preview.yml,${{ inputs.COMPOSE_FILES }} - default_port: 443 - instance_type: small - always_on: ${{ inputs.ALWAYS_ON }} - ports: 80,443 - registries: docker://AWS:${{steps.ecrtoken.outputs.value}}@246372085946.dkr.ecr.us-east-1.amazonaws.com - github_token: ${{ secrets.GH_PAT_PR_PREVIEW_CLEANUP }} - pre_script: "./.github/workflows/pull-preview-script.sh" - env: - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_REGION: ${{ inputs.AWS_REGION }} - PULLPREVIEW_LOGGER_LEVEL: DEBUG diff --git a/.gitignore b/.gitignore index ccc4f294ca..72421cce93 100644 --- a/.gitignore +++ b/.gitignore @@ -72,3 +72,10 @@ storybook-static ./playwright .local_data + +# infra decrypted env files (encrypted versions are tracked) +infra/.env +infra/.env.staging + +!.env*.enc +!.env.example \ No newline at end of file diff --git a/docker-compose.preview.pr.yml b/docker-compose.preview.pr.yml deleted file mode 100644 index c1e1c23609..0000000000 --- a/docker-compose.preview.pr.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - platform: - environment: - PUBPUB_URL: ${PULLPREVIEW_URL} - caddy: - environment: - PUBLIC_URL: ${PULLPREVIEW_PUBLIC_DNS} diff --git a/docker-compose.preview.sandbox.yml b/docker-compose.preview.sandbox.yml deleted file mode 100644 index 9c9123799c..0000000000 --- a/docker-compose.preview.sandbox.yml +++ /dev/null @@ -1,7 +0,0 @@ -services: - platform: - environment: - PUBPUB_URL: https://sandbox.pubpub.org - caddy: - environment: - PUBLIC_URL: sandbox.pubpub.org diff --git a/docker-compose.preview.yml b/docker-compose.preview.yml deleted file mode 100644 index 6a4f431ca9..0000000000 --- a/docker-compose.preview.yml +++ /dev/null @@ -1,82 +0,0 @@ -services: - platform: - image: PLATFORM_IMAGE - environment: - POSTGRES_USER: preview - POSTGRES_PASSWORD: preview - POSTGRES_DB: preview - MINIO_ROOT_USER: minioadmin - MINIO_ROOT_PASSWORD: minioadmin - ASSETS_UPLOAD_KEY: preview-different - ASSETS_UPLOAD_SECRET_KEY: preview-different123 - ASSETS_STORAGE_ENDPOINT: https://${PULLPREVIEW_PUBLIC_DNS}/a - FLAGS: uploads:off,invites:off,disabled-actions:http+email - ENV_NAME: sandbox - DATACITE_API_URL: https://api.test.datacite.org - DATACITE_REPOSITORY_ID: DATACITE_REPOSITORY_ID - DATACITE_PASSWORD: DATACITE_PASSWORD - - minio-init: - restart: on-failure - environment: - MINIO_ROOT_USER: minioadmin - MINIO_ROOT_PASSWORD: minioadmin - ASSETS_UPLOAD_KEY: preview-different - ASSETS_UPLOAD_SECRET_KEY: preview-different123 - - minio: - environment: - MINIO_ROOT_USER: minioadmin - MINIO_ROOT_PASSWORD: minioadmin - MINIO_BROWSER_REDIRECT_URL: https://${PULLPREVIEW_PUBLIC_DNS}/assets-ui - # volumes: - # - ./minio:/data - platform-jobs: - image: JOBS_IMAGE - platform-migrations: - image: MIGRATIONS_IMAGE - restart: on-failure - command: pnpm --filter core reset - site-builder: - image: SITE_BUILDER_IMAGE - depends_on: - - platform - - platform-jobs - - minio - ports: - - "4000:4000" - restart: on-failure - networks: - - app-network - environment: - - PUBPUB_URL=http://platform:3000 - - S3_ENDPOINT=http://minio:9000 - - S3_REGION=us-east-1 - - S3_ACCESS_KEY=preview-different - - S3_SECRET_KEY=preview-different123 - - S3_BUCKET_NAME=assets - - PORT=4000 - - SITES_BASE_URL=https://${PULLPREVIEW_PUBLIC_DNS}/sites - - caddy: - image: CADDY_SITES_IMAGE - restart: on-failure - depends_on: - - platform - - platform-jobs - - minio - env_file: .env - environment: - - S3_ENDPOINT=http://minio:9000 - - S3_REGION=us-east-1 - - ASSETS_BUCKET_NAME=assets - - ASSETS_UPLOAD_KEY=preview-different - - ASSETS_UPLOAD_SECRET_KEY=preview-different123 - ports: - - "443:443" - volumes: - - ./caddy:/etc/caddy - - caddy-data:/data - - caddy-config:/config - networks: - - app-network diff --git a/infra/.env.example b/infra/.env.example new file mode 100644 index 0000000000..f8e6ec7ab3 --- /dev/null +++ b/infra/.env.example @@ -0,0 +1,46 @@ +# production environment variables +# copy this to .env, fill in real values, then encrypt with: +# sops -e --input-type dotenv --output-type dotenv .env > .env.enc + +PUBPUB_HOSTNAME=app.pubpub.org +PUBPUB_URL=https://app.pubpub.org + +POSTGRES_USER= +POSTGRES_PASSWORD= +POSTGRES_DB=pubpub +DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} + +PGHOST=db +PGPORT=5432 +PGUSER=${POSTGRES_USER} +PGPASSWORD=${POSTGRES_PASSWORD} +PGDATABASE=${POSTGRES_DB} + +VALKEY_HOST=cache + +MINIO_ROOT_USER= +MINIO_ROOT_PASSWORD= +ASSETS_BUCKET_NAME=assets +ASSETS_UPLOAD_KEY= +ASSETS_UPLOAD_SECRET_KEY= +ASSETS_REGION=us-east-1 +ASSETS_STORAGE_ENDPOINT=http://minio:9000 +ASSETS_PUBLIC_ENDPOINT=https://app.pubpub.org/a + +S3_ENDPOINT=http://minio:9000 +S3_REGION=us-east-1 + +SITE_BUILDER_ENDPOINT=http://site-builder:4000 +SITE_BUILDER_API_KEY= + +JWT_SECRET= +MAILGUN_SMTP_HOST= +MAILGUN_SMTP_PORT=587 +MAILGUN_SMTP_PASSWORD= +MAILGUN_SMTP_USERNAME= +GCLOUD_KEY_FILE=xxx + +OTEL_SERVICE_NAME=pubpub-v7-prod +HONEYCOMB_API_KEY= + +API_KEY= diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc new file mode 100644 index 0000000000..f467e193fb --- /dev/null +++ b/infra/.env.preview.enc @@ -0,0 +1,51 @@ +#ENC[AES256_GCM,data:of7NlDnxPpiEB5vsG/V1x3ZLOs/MKjJDuadN+vv9Kb4R,iv:TMmk9ukk2hkoB1kcG9Q8xHB1cO5aQLZ5r8g+26F01kc=,tag:eOFfFj9IrLuONwACqKIpXw==,type:comment] +#ENC[AES256_GCM,data:PtQw+iKvi39aNyMJ0vN0P6djoAzotLKsbQQ/Pl18TwteSNWRI9aq5FLiMPj6LAq+jmNpyBM5KiSHdTg=,iv:QySN5PpC8CROiICNnFTHMY24RMaZbkIrLbCEQWW/gnQ=,tag:EMltaYcGdFo9F+lsfXi0iw==,type:comment] +#ENC[AES256_GCM,data:GAOzJxMiPKOg9UEEwkZU4uY5OvtCyJr57M77gYFq8g8OqKOu1md+ZanhUZ9VzUujs3CE2sr64Z2Ommnj9N9wnNvSFA==,iv:3f5ncmBejz4v/zayzEJH1nkVS6D0nLM6SeAHdkGN6jk=,tag:ga6J1rGmpezcirtl+z1S3Q==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:bLWlWiwmE4P+79EBTPMB9yGZUbNV/oe1muxjOUcI9g==,iv:u3gYXAUajl40QSOHANO+E9/fzqEQuLSva7zVC+27prM=,tag:tdagMgYZ/AnOvf1DZImQdg==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:XMpckdKMM7um9cgLm3ejKv1496WrEd8bnFMMeoSzsu7VVlcNEu0p,iv:8l+hwEEVkKzM/rWh3vU4mBXP9Zad19nPdfIfctylKgM=,tag:6n6lwjGGAQ1iZFb2Gk0ZOA==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:vP3XRKaW7Es=,iv:N1+m250CXrBJ6M89420Kw6EOk36ubYm5V1cBKYbivuQ=,tag:HauutfyydiwpP8p6ED7xow==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:CNdOwTzEIJw=,iv:vysY4S7GXiJarW+nn3IhtqpbqGt66uxF8rESBH5rndE=,tag:4OiNss65oGUYwT6DQ90Uiw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:/rEWpBI1,iv:ofQM5AREZEyarZqtXUw8J59RaxUXFxJTSSl+QY1fRL8=,tag:vtZ5xaSpoJueZjyW2qPR1Q==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:fFrfySct2Bnf4uqW7nh1jomFXA07uIzVj87evDBIIiaJbeGVKAVN34335Nx5EiZiVMH/sP+ZbpCjRY0Y+Oe3ua4Q9PruRSZZ+g==,iv:NF+60xk7pHOnU5UGGBXvhARKmGQn9D2siYPnzs90F/E=,tag:znrYhkuW9y63kj4sv0qadA==,type:str] +PGHOST=ENC[AES256_GCM,data:oSQ=,iv:ARIr/ltvf45sch9FDtmkvoB1ZtO9NpuY3kCL80rC2Nc=,tag:1av8sSCFfJn4mwCVCDE/sw==,type:str] +PGPORT=ENC[AES256_GCM,data:gQqRmg==,iv:rIE824GodwwYDV6RrlU6GGzeMsHl1OslYEcPbpM4FG8=,tag:v1GEpBHvh57goirCznNQvw==,type:str] +PGUSER=ENC[AES256_GCM,data:vTCVB+18i5eCDcNAhXPFMw==,iv:fXVQXWyRBxKYXVxyBd50Vlj9LYP4WTlSu7XJHZ+/chE=,tag:vJjvVSLkD54164ouNKiiMw==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:5yyUjiSoNNoBKkkc5G6aPSxDqVU=,iv:cLBzonquatuOvAPggVcdvqtLpAvv03K4f3vr6BHm4W8=,tag:UNLRQreMuJDShjYfyl4n9A==,type:str] +PGDATABASE=ENC[AES256_GCM,data:eq2+1G9H9g91NMlzvXQ=,iv:Qv+cAvUy14/cCnExGip5wDYOz1DfFVm4PDCNitFXBXk=,tag:qhF3oR/8djZjaywEZlT0Pw==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:GRcBoFc=,iv:InuwdL0xoUpAJ3qFey5VNKNAH8FnbahDrJb4+uZMtdc=,tag:zXsAGvP5USeT8q0TpLLuFA==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:nyYt8RF/1nSo6RGe,iv:qVrZPQoM/jPXLduovT7diIuYWf5qOSig+2vyIK3Eyp0=,tag:/WtmapHuczbyPatIUfn0wA==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:BzRA0o1ExPc5RRyI,iv:vvY32RbF7PAJ04DnEDJEhtth+69ERIqgSd3WnAhVo2k=,tag:qWeKz/4jqf4omQO05h/gow==,type:str] +ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:zhZbMz1l,iv:V5sDOJS91ja2rNWkoRKZcGrfCoXLMOaQGfQEEOuAYwY=,tag:v/ctTnjabZONK7tHskIGhw==,type:str] +ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:2Jp0Ag0E9tO49w==,iv:834sjanGTdosiSEp9hU4A2Bids/AD+hF+gtay/ShQG0=,tag:ELJSrXCxYLJ3RY5URtoMpQ==,type:str] +ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:4KCOFy9D6lWdug==,iv:rfGMxDxDwwR2ge/stnr3j7XSUEqEvnkZ4tqEO7kipao=,tag:RkNrw0bFcullZDFDnVBPsg==,type:str] +ASSETS_REGION=ENC[AES256_GCM,data:9CuBN+8Sc9Gh,iv:+LQ+exp0GK3BBBjZiFvs9ojdVEU8qwjkMMFfUjRf+i0=,tag:sBxanmVZshLdG4AjwJixbw==,type:str] +ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:DYulcQXvnZZnAxHEYo+hvKI=,iv:eTmV3sT3t4NJMPXztvJ/Q8xr94BLx/HvOI2uzEvTV1A=,tag:ivb5ozzFm84oo75V2L0h0g==,type:str] +ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:YKLdtwJfpv5FAGaF9eLyoKBTvaINVI7skg+crNrpMpgythjM9UtEkQUkYLvY8Q==,iv:6OgMI0kF2ZSmyr3vwIgJSDmJd/SZIyNnhPpW0gRuCpM=,tag:f84QuBy/RvTzuy2kGRwuiA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:OV9s2rWftVgT1qTyIKfvK9k=,iv:nfoRG45f/rMmtc6w64KIpzyRMHzUQKSZEpd/54dRKnY=,tag:sRMy3UPbtuS9Ew1WoAsBLw==,type:str] +S3_REGION=ENC[AES256_GCM,data:+o9P6dq/OTyv,iv:w/taA929bdDnWTfV41ztTW/A2aTNtOPBWGG9GrO4m50=,tag:GlrRSsryimlwV/4cOMLYCQ==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:M8noZ9SuEb3UinuqXKg3mptsXLv+CBDR,iv:iI4HMrTGmjA1KlBQailX7nHKaMkgFziAyaE0rEIOXTs=,tag:/9V9YLNriXXhZ18iKFa27Q==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:sp9o,iv:9ekQscr6uw67f/q/gTBbdHOqllB4wpL0tVb19D94mDk=,tag:a8PFEsrzmN6ft2mTU9fVSA==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:kVfz,iv:1vsZ6xyd3UmqKiacWYCj+aFoOZwrRpQupri71OaMjxo=,tag:jibeX711XVd4r9NEqrF/3g==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:X3w5,iv:TCEpq0sGFFRX3t0bSi0N9TrExaEuJtCfhc2zbtuTmCM=,tag:7Lf10+o30Cskx4T5bOw2mA==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:dDXf,iv:XGlanU02ma39SAYQXAoE1UzPTfRS/KmHK97kVys+nZs=,tag:/O+QEwi5LR3ZzR1lPzhJbg==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:DEbB,iv:p1gdSMBMdMGXdYEb4XoYdMNnNYRu3JQfm0yNETOJAAI=,tag:AyILasgDTviZhJX51e+BnQ==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:DgDE,iv:dGCtYZIAUz+IRbI/8Xh2O5fl1jllPr9W75QxdO8N8Xk=,tag:VSfR/8Pd/odDU9+8C00eMw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:xhtoAe/QWc7DtnYjoRKUZkQ=,iv:ZF+CKi0f1Sq3c5UiKpd6NFfurUc4dFKuz246D2frvas=,tag:PYwdy58De+T+l1q1ZFIJoQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:dLTW,iv:JmuG6I7LR6jjNKTpX46r86ZDRyT87Em1YE7ZZZkZ4OE=,tag:hclmkfgwyLR6oVpHGP7clg==,type:str] +API_KEY=ENC[AES256_GCM,data:H9M9,iv:NXDRy323PFP7c5+LtgCal2OkgY5K66CJwJp3Bjj5cJg=,tag:0L1AFfkRSgIyVDqIgrBjXQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByRWZudVlCeDV6Ni91RDNz\nMCt1Ujg5SUxnL0Nxenp5Vk1BYkdGUjZHcEFBCkNyRmY2YndaMG41NC9JL2tCYXFr\nWWllUW1TMHMyMS9nZ3B2V0dqb1JzRnMKLS0tIDluRHdZM0lZWFNDU296ZHNMOGlK\nRm53V3ZTd21YRHI5Q3kyT1p3Nml2OGMK0dYKzCiSggxIgIjLabDZe8tfdg78BS0U\nZQnnigGcpawgKxPKm1DvXUJKWZzPtTTehUL3TAQadYe+ZzVOsAnVuA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEbnE3eGlLWWxiMnlyUGxD\nMklvYk11SDdxb014aGtDaVBXc08xMCtzWlhZClZNYmhFeHQvd0NrdDE5Z2x6SERM\najFmOU0zM2ZOaERYT2dkYkF4czAxY1EKLS0tIE1MUHdVa3FMd0hnZldYWGxaTnlo\nMWlOaE53N0lJTDRYL0xZWTZlRElGZTQKhQUYdy7l3PKCW42Ifch1T2qvZw2xeifF\nLScPBD1sTQBd6zWG+QVfeSHjUbrpHYgvWDZkRtM1g8EJRQI9Ry2CwQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdmZRUVRrOWpVZWcxc3VU\nSW15Nm5zc1BPRDNqdkQxOGFsbmNNcFY4eDNJCkpnR2t3aFpnOWFPVmVsMFlPc2FY\nREgzeUVnajliWDVyTEZSR1pNK1dnVFkKLS0tIHc3akVLdTFnWHNPWGMzOU85UlFT\nNVdPZ09iWDNZdkZQUzBwbXNkVlNKQWMKHoKV5ruHR8omGWRPv9rAl40wunWoFGrP\nuy+Jei87mB0pCc4oghSWI4W1pHKGyaFXqx1cpge/X9ib6DRcK7UVXA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwNDBiNWU2R3VUN0RuR1FG\nY0M3RlN2UFFNTmZ1TE40VkN1WkhHRkhBRnpvClhUM0hvdElsZkl1a0FlTkkvaTI0\nM1BUWnVHbTdBNjRKazBWZ3hiKzhROG8KLS0tIEZLYXFxUVRlWGVESlJtRGhWY1oz\nNGIzbzIyYmcvdWdCVTFtREdjelh5YVUKa5yUPircj6hoy/a1D07vRxv6S8syDUf/\nHc3AIltVEkMtzfekyOXUANJKqCFhUYPSVLD3f1XnIB/bDvZyw7fx6A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBocmwvU3dsTGZzMXMxUUpr\nMXIwVGRWWjZlYVZqZndLeVQ4UkZoNDRxMUIwCnhRV1VMZjZzckVXRjN2UklMb2Ni\nRU9jUFNURG5JM1JGL3liSGVPUC9uNFEKLS0tIHZkMFhUMFZickhwK0NONEtGNXZn\nZmU0Yjl3aTRiWk02a3dlQlFNK2xqVmcK+4giw+0KrTYDrx1hHLJzmNZD4mKjVnkN\nqEJIuu3ZPBfkm7yWJXFlcgSWOKahE3Epii8j80Cmc5oePSjt1z0spA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2SXlGMlVINFV3K0pFSjI0\nVHRwdjRmQmU1a0o5bVNPMUZab3BTMU9TT1ZRCnJEZWNhZmVUUzZhOG9wRlcrbGxN\nS3VMdWNMaS9zQlE2bEI4bkxMMHhNSW8KLS0tIGxRWU1rQ1MyYk00ZzhZa0pBdFFw\nMHNxbklXM1R5MkZGSEJ0MkpzVmpxWlEKHDBJVh6m5H+MbUwO52SnfXHbQfVNlwRT\ndgM7Wiv8ply4s9f1jPl3dkge+W6CHw75v1gvEzQ0tAOssQ+qf6wg4Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy +sops_lastmodified=2026-04-02T11:05:34Z +sops_mac=ENC[AES256_GCM,data:lg4QHKFbldLKvhrhW2eEK3CuPjkk2wjwfcxX4KteRi3Jk4CXhWQGLPqEI++TwmOCjngYl0CfkRncDCzkQ1fWqweXl0o4zXo6AzkLmDoNYrTKhxAnb44t4q+LNCmi8aAlNvUXYhEyMBveL2MUgBYRNiJZAsnQbBgLubQjbydcGMI=,iv:BwdF4hd2bJ2pwNC5VieNkIMw6850r42ATh8CFbJRZ2M=,tag:3KOGg69IBt/9iNFcrP0ZeQ==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.12.1 diff --git a/infra/.sops.yaml b/infra/.sops.yaml new file mode 100644 index 0000000000..51f479ecc3 --- /dev/null +++ b/infra/.sops.yaml @@ -0,0 +1,16 @@ +# creation_rules: +# - path_regex: \.env(\.staging)?(\.enc)?$ +# age: +# # add your age public keys here, one per team member / CI system +# # generate with: age-keygen +# # example: +# # - age1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx +creation_rules: + - path_regex: \.env(\.preview|\.sandbox)?(\.enc)?$ + age: + - age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr + - age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj + - age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk + - age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h + - age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx + - age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy diff --git a/infra/Caddyfile b/infra/Caddyfile new file mode 100644 index 0000000000..d1af2b1081 --- /dev/null +++ b/infra/Caddyfile @@ -0,0 +1,40 @@ +{ + admin :2019 +} + +{$PUBPUB_HOSTNAME} { + encode gzip + + handle_path /assets* { + reverse_proxy minio:9000 + } + + handle_path /assets-ui* { + reverse_proxy minio:9001 + } + + handle_path /site-builder* { + reverse_proxy site-builder:4000 + } + + handle_path /sites/* { + root * /sites + file_server { + fs s3 { + bucket {$ASSETS_BUCKET_NAME:assets} + region {$ASSETS_REGION:us-east-1} + endpoint {$S3_ENDPOINT:http://minio:9000} + access_key {$ASSETS_UPLOAD_KEY} + secret_key {$ASSETS_UPLOAD_SECRET_KEY} + } + } + } + + handle { + reverse_proxy platform:3000 + } +} + +:80 { + respond "OK" 200 +} diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview new file mode 100644 index 0000000000..2d7f8975be --- /dev/null +++ b/infra/Caddyfile.preview @@ -0,0 +1,53 @@ +{ + admin :2019 + + on_demand_tls { + interval 2m + burst 5 + } +} + +:443 { + tls { + on_demand + } + + encode gzip + + handle_path /assets* { + reverse_proxy minio:9000 + } + + handle_path /assets-ui* { + reverse_proxy minio:9001 + } + + handle_path /site-builder* { + reverse_proxy site-builder:4000 + } + + handle_path /sites/* { + root * /sites + file_server { + fs s3 { + bucket {$ASSETS_BUCKET_NAME:assets} + region {$ASSETS_REGION:us-east-1} + endpoint {$S3_ENDPOINT:http://minio:9000} + access_key {$ASSETS_UPLOAD_KEY} + secret_key {$ASSETS_UPLOAD_SECRET_KEY} + } + } + } + + handle_path /emails/* { + reverse_proxy inbucket:9000 + } + + handle { + reverse_proxy platform:3000 + } +} + +:80 { + respond "OK" 200 +} diff --git a/infra/import-backup.sh b/infra/import-backup.sh new file mode 100755 index 0000000000..293453ad43 --- /dev/null +++ b/infra/import-backup.sh @@ -0,0 +1,29 @@ +#!/usr/bin/env bash +set -euo pipefail + +DUMP_FILE="${1:?usage: $0 }" +STACK_NAME="${2:-pubpub}" + +if [[ ! -f "$DUMP_FILE" ]]; then + echo "file not found: $DUMP_FILE" + exit 1 +fi + +DB_CONTAINER=$(sudo docker ps --filter "label=com.docker.swarm.service.name=${STACK_NAME}_db" --format '{{.ID}}' | head -1) + +if [[ -z "$DB_CONTAINER" ]]; then + echo "no running db container found for stack: $STACK_NAME" + exit 1 +fi + +echo "importing $DUMP_FILE into container $DB_CONTAINER ..." + +if [[ "$DUMP_FILE" == *.sql ]]; then + sudo docker exec -i "$DB_CONTAINER" \ + psql -U "$PGUSER" -d "$PGDATABASE" < "$DUMP_FILE" +else + sudo docker exec -i "$DB_CONTAINER" \ + pg_restore --clean --if-exists --no-owner -U "$PGUSER" -d "$PGDATABASE" < "$DUMP_FILE" +fi + +echo "import complete" diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml new file mode 100644 index 0000000000..7e924a8ff5 --- /dev/null +++ b/infra/stack.preview.yml @@ -0,0 +1,158 @@ +services: + proxy: + image: ghcr.io/pubpub/caddy-sites:latest + env_file: [.env] + volumes: + - ./Caddyfile.preview:/etc/caddy/Caddyfile:ro + - caddy_data:/data + - caddy_config:/config + networks: [appnet] + ports: + - target: 80 + published: 80 + protocol: tcp + mode: host + - target: 443 + published: 443 + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: any + + platform: + image: ghcr.io/pubpub/platform:${IMAGE_TAG} + env_file: [.env] + environment: + HOSTNAME: "0.0.0.0" + NODE_ENV: production + PORT: "3000" + PUBPUB_URL: https://${PREVIEW_HOST} + SITE_BUILDER_ENDPOINT: http://site-builder:4000 + FLAGS: "uploads:off,invites:off,disabled-actions:http+email" + networks: [appnet] + healthcheck: + test: + - CMD-SHELL + - > + node -e "require('http') + .get('http://127.0.0.1:3000/api/health', r => process.exit(r.statusCode < 400 ? 0 : 1)) + .on('error', () => process.exit(1));" + interval: 10s + timeout: 3s + retries: 6 + start_period: 60s + deploy: + replicas: 1 + restart_policy: + condition: on-failure + + platform-jobs: + image: ghcr.io/pubpub/platform-jobs:${IMAGE_TAG} + env_file: [.env] + environment: + NODE_ENV: production + PUBPUB_URL: http://platform:3000 + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: on-failure + + platform-migrations: + image: ghcr.io/pubpub/platform-migrations:${IMAGE_TAG} + env_file: [.env] + command: ["pnpm", "--filter", "core", "reset"] + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: on-failure + max_attempts: 3 + + site-builder: + image: ghcr.io/pubpub/platform-site-builder:${IMAGE_TAG} + env_file: [.env] + environment: + NODE_ENV: production + PUBPUB_URL: http://platform:3000 + PORT: "4000" + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: on-failure + + db: + image: postgres:15 + environment: + POSTGRES_USER: preview + POSTGRES_PASSWORD: preview + POSTGRES_DB: preview + volumes: + - pgdata:/var/lib/postgresql/data + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + + cache: + image: valkey/valkey:8-alpine + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + + minio: + image: minio/minio:latest + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + command: server --console-address ":9001" /data + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + + minio-init: + image: minio/mc:latest + environment: + MINIO_ROOT_USER: minioadmin + MINIO_ROOT_PASSWORD: minioadmin + ASSETS_BUCKET_NAME: assets + ASSETS_UPLOAD_KEY: preview-key + ASSETS_UPLOAD_SECRET_KEY: preview-secret + entrypoint: > + /bin/sh -c ' + /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; + /usr/bin/mc mb --ignore-existing myminio/"$${ASSETS_BUCKET_NAME}"; + /usr/bin/mc anonymous set download myminio/"$${ASSETS_BUCKET_NAME}"; + /usr/bin/mc admin user add myminio "$${ASSETS_UPLOAD_KEY}" "$${ASSETS_UPLOAD_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user "$${ASSETS_UPLOAD_KEY}";' + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: on-failure + max_attempts: 5 + + inbucket: + image: inbucket/inbucket:latest + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + +networks: + appnet: + driver: overlay + +volumes: + pgdata: + caddy_data: + caddy_config: diff --git a/infra/stack.yml b/infra/stack.yml new file mode 100644 index 0000000000..b74df9d710 --- /dev/null +++ b/infra/stack.yml @@ -0,0 +1,153 @@ +services: + proxy: + image: ghcr.io/pubpub/caddy-sites:latest + env_file: [.env] + ports: + - target: 80 + published: 80 + protocol: tcp + mode: host + - target: 443 + published: 443 + protocol: tcp + mode: host + volumes: + - ./Caddyfile:/etc/caddy/Caddyfile:ro + - caddy_data:/data + - caddy_config:/config + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + + platform: + image: ghcr.io/pubpub/platform:${IMAGE_TAG} + env_file: [.env] + environment: + HOSTNAME: '0.0.0.0' + NODE_ENV: production + PORT: '3000' + PUBPUB_URL: ${PUBPUB_URL} + SITE_BUILDER_ENDPOINT: http://site-builder:4000 + networks: [appnet] + healthcheck: + test: + - CMD-SHELL + - > + node -e "require('http') + .get('http://127.0.0.1:3000/api/health', r => process.exit(r.statusCode < 400 ? 0 : 1)) + .on('error', () => process.exit(1));" + interval: 10s + timeout: 3s + retries: 6 + start_period: 60s + deploy: + replicas: 2 + update_config: + order: start-first + parallelism: 1 + delay: 5s + failure_action: rollback + rollback_config: + order: stop-first + parallelism: 1 + restart_policy: + condition: on-failure + + platform-jobs: + image: ghcr.io/pubpub/platform-jobs:${IMAGE_TAG} + env_file: [.env] + environment: + NODE_ENV: production + PUBPUB_URL: http://platform:3000 + networks: [appnet] + deploy: + replicas: 1 + update_config: + order: start-first + parallelism: 1 + delay: 5s + failure_action: rollback + restart_policy: + condition: on-failure + + platform-migrations: + image: ghcr.io/pubpub/platform-migrations:${IMAGE_TAG} + env_file: [.env] + command: ['pnpm', '--filter', 'core', 'migrate-docker'] + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: on-failure + max_attempts: 3 + + site-builder: + image: ghcr.io/pubpub/platform-site-builder:${IMAGE_TAG} + env_file: [.env] + environment: + NODE_ENV: production + PUBPUB_URL: http://platform:3000 + PORT: '4000' + networks: [appnet] + deploy: + replicas: 1 + update_config: + order: start-first + parallelism: 1 + delay: 5s + failure_action: rollback + restart_policy: + condition: on-failure + + db: + image: postgres:15 + tmpfs: + - /dev/shm:size=2147483648 + environment: + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + POSTGRES_DB: ${POSTGRES_DB} + command: > + -c shared_buffers=2GB + -c effective_cache_size=6GB + -c work_mem=16MB + -c maintenance_work_mem=512MB + -c max_connections=500 + volumes: + - pgdata:/var/lib/postgresql/data + networks: [appnet, dbaccess] + deploy: + replicas: 1 + restart_policy: + condition: any + + cache: + image: valkey/valkey:8-alpine + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + + inbucket: + image: inbucket/inbucket:latest + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any + +networks: + appnet: + driver: overlay + dbaccess: + driver: overlay + attachable: true + +volumes: + pgdata: + minio_data: + caddy_data: + caddy_config: diff --git a/package.json b/package.json index 58a7c2e858..653d45e0f2 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,13 @@ "dev:teardown": "docker compose -f docker-compose.dev.yml down -v", "integration:setup": "docker compose -f docker-compose.test.yml --profile integration up -d", "integration:teardown": "docker compose -f docker-compose.test.yml --profile integration down -v", - "context-editor:playwright": "pnpm --filter context-editor run playwright:test" + "context-editor:playwright": "pnpm --filter context-editor run playwright:test", + "secrets:encrypt": "cd infra && sops -e --input-type dotenv --output-type dotenv --output .env.enc .env", + "secrets:encrypt:preview": "cd infra && sops -e --input-type dotenv --output-type dotenv --output .env.preview.enc .env.preview", + "secrets:encrypt:sandbox": "cd infra && sops -e --input-type dotenv --output-type dotenv --output .env.sandbox.enc .env.sandbox", + "secrets:decrypt": "cd infra && sops -d --input-type dotenv --output-type dotenv --output .env .env.enc", + "secrets:decrypt:preview": "cd infra && sops -d --input-type dotenv --output-type dotenv --output .env.preview .env.preview.enc", + "secrets:decrypt:sandbox": "cd infra && sops -d --input-type dotenv --output-type dotenv --output .env.sandbox .env.sandbox.enc" }, "devDependencies": { "@babel/core": "7.28.3", @@ -54,7 +60,9 @@ "turbo": "^2.5.6" }, "preconstruct": { - "packages": ["packages/*"], + "packages": [ + "packages/*" + ], "exports": true, "___experimentalFlags_WILL_CHANGE_IN_PATCH": { "typeModule": true, @@ -86,4 +94,4 @@ "imports": { "#register-loader": "./core/prisma/seed/stubs/register-loader.js" } -} +} \ No newline at end of file From 5769e32af521dc18a0876c5b03dc86999dc930c1 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 13:26:25 +0200 Subject: [PATCH 002/153] chore: format --- .github/workflows/ghcr-build-all.yml | 86 ++++++++++++++-------------- package.json | 6 +- 2 files changed, 45 insertions(+), 47 deletions(-) diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index 3a0e6c955d..ebbe006625 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -1,51 +1,51 @@ name: docker build to GHCR on: - workflow_call: - inputs: - publish_latest: - type: boolean - default: false - outputs: - core-image: - description: "Core image ref" - value: ${{ jobs.build-core.outputs.image-sha }} - base-image: - description: "Base/migrations image ref" - value: ${{ jobs.build-base.outputs.image-sha }} - jobs-image: - description: "Jobs image ref" - value: ${{ jobs.build-jobs.outputs.image-sha }} - site-builder-image: - description: "Site builder image ref" - value: ${{ jobs.build-site-builder.outputs.image-sha }} + workflow_call: + inputs: + publish_latest: + type: boolean + default: false + outputs: + core-image: + description: 'Core image ref' + value: ${{ jobs.build-core.outputs.image-sha }} + base-image: + description: 'Base/migrations image ref' + value: ${{ jobs.build-base.outputs.image-sha }} + jobs-image: + description: 'Jobs image ref' + value: ${{ jobs.build-jobs.outputs.image-sha }} + site-builder-image: + description: 'Site builder image ref' + value: ${{ jobs.build-site-builder.outputs.image-sha }} jobs: - build-base: - uses: ./.github/workflows/ghcr-build-template.yml - with: - ghcr_image_name: platform-migrations - publish_latest: ${{ inputs.publish_latest }} + build-base: + uses: ./.github/workflows/ghcr-build-template.yml + with: + ghcr_image_name: platform-migrations + publish_latest: ${{ inputs.publish_latest }} - build-core: - uses: ./.github/workflows/ghcr-build-template.yml - with: - package: core - ghcr_image_name: platform - publish_latest: ${{ inputs.publish_latest }} + build-core: + uses: ./.github/workflows/ghcr-build-template.yml + with: + package: core + ghcr_image_name: platform + publish_latest: ${{ inputs.publish_latest }} - build-jobs: - uses: ./.github/workflows/ghcr-build-template.yml - with: - package: jobs - target: jobs - ghcr_image_name: platform-jobs - publish_latest: ${{ inputs.publish_latest }} + build-jobs: + uses: ./.github/workflows/ghcr-build-template.yml + with: + package: jobs + target: jobs + ghcr_image_name: platform-jobs + publish_latest: ${{ inputs.publish_latest }} - build-site-builder: - uses: ./.github/workflows/ghcr-build-template.yml - with: - package: site-builder - target: jobs - ghcr_image_name: platform-site-builder - publish_latest: ${{ inputs.publish_latest }} + build-site-builder: + uses: ./.github/workflows/ghcr-build-template.yml + with: + package: site-builder + target: jobs + ghcr_image_name: platform-site-builder + publish_latest: ${{ inputs.publish_latest }} diff --git a/package.json b/package.json index 653d45e0f2..84f24cfdaa 100644 --- a/package.json +++ b/package.json @@ -60,9 +60,7 @@ "turbo": "^2.5.6" }, "preconstruct": { - "packages": [ - "packages/*" - ], + "packages": ["packages/*"], "exports": true, "___experimentalFlags_WILL_CHANGE_IN_PATCH": { "typeModule": true, @@ -94,4 +92,4 @@ "imports": { "#register-loader": "./core/prisma/seed/stubs/register-loader.js" } -} \ No newline at end of file +} From 070aa8d93c35c687355dd6b8a114391209a95efd Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 13:31:02 +0200 Subject: [PATCH 003/153] fix: ci issue --- .github/workflows/on_main.yml | 7 +++++++ .github/workflows/on_pr.yml | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index 6ae645b4f9..190b2142c0 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -5,12 +5,19 @@ on: branches: - main +permissions: + contents: read + packages: write + jobs: ci: uses: ./.github/workflows/ci.yml build-all: needs: ci + permissions: + contents: read + packages: write uses: ./.github/workflows/ghcr-build-all.yml with: publish_latest: true diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index d49311dfbb..6feb995c1d 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -7,6 +7,7 @@ on: permissions: id-token: write contents: read + packages: write jobs: path-filter: @@ -88,6 +89,9 @@ jobs: needs: - path-filter - skip_build_sha + permissions: + contents: read + packages: write uses: ./.github/workflows/ghcr-build-all.yml e2e: From d83286b92e0fe484d38218ff09a31d946ec1b346 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 14:19:42 +0200 Subject: [PATCH 004/153] fix: use sentry auth token --- .github/workflows/ghcr-build-template.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 5fadfb33b6..cf2c77a260 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -76,6 +76,8 @@ jobs: build-args: | PACKAGE=${{ inputs.package }} CI=true + secrets: | + SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: ${{ steps.label.outputs.target }} tags: ${{ steps.label.outputs.tags }} platforms: linux/amd64 From 69ff995bc04094d63e7d8b76883709251962004f Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 14:30:22 +0200 Subject: [PATCH 005/153] fix: use sentry auth token --- .github/workflows/ghcr-build-template.yml | 149 +++++++++++----------- 1 file changed, 77 insertions(+), 72 deletions(-) diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index cf2c77a260..388925a53c 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -1,86 +1,91 @@ name: ghcr build template on: - workflow_call: - inputs: - package: - type: string - runner: - type: string - default: ubuntu-latest - target: - type: string - ghcr_image_name: - type: string - required: true - publish_latest: - type: boolean - default: false - outputs: - image-sha: - description: "Full GHCR image ref with SHA tag" - value: ${{ jobs.build.outputs.image-sha }} + workflow_call: + inputs: + package: + type: string + runner: + type: string + default: ubuntu-latest + target: + type: string + ghcr_image_name: + type: string + required: true + publish_latest: + type: boolean + default: false + outputs: + image-sha: + description: 'Full GHCR image ref with SHA tag' + value: ${{ jobs.build.outputs.image-sha }} + secrets: + SENTRY_AUTH_TOKEN: + required: true jobs: - build: - name: Build - runs-on: ${{ inputs.runner }} - permissions: - contents: read - packages: write + build: + name: Build + runs-on: ${{ inputs.runner }} + permissions: + contents: read + packages: write - outputs: - image-sha: ${{ steps.label.outputs.label }} + outputs: + image-sha: ${{ steps.label.outputs.label }} - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.head.sha || github.sha }} + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.head.sha || github.sha }} - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 - - name: Compute image tags - id: label - run: | - sha_short=$(git describe --always --abbrev=40 --dirty) + - name: Compute image tags + id: label + run: | + sha_short=$(git describe --always --abbrev=40 --dirty) - if [[ -z "${{ inputs.package }}" ]]; then - echo "target=monorepo" >> $GITHUB_OUTPUT - else - echo "target=${{ inputs.target || format('next-app-{0}', inputs.package) }}" >> $GITHUB_OUTPUT - fi + if [[ -z "${{ inputs.package }}" ]]; then + echo "target=monorepo" >> $GITHUB_OUTPUT + else + echo "target=${{ inputs.target || format('next-app-{0}', inputs.package) }}" >> $GITHUB_OUTPUT + fi - echo "label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" >> $GITHUB_OUTPUT + echo "label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" >> $GITHUB_OUTPUT - TAGS="ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" - if [[ "${{ inputs.publish_latest }}" == "true" ]]; then - TAGS="$TAGS,ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:latest" - fi - echo "tags=$TAGS" >> $GITHUB_OUTPUT + TAGS="ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" + if [[ "${{ inputs.publish_latest }}" == "true" ]]; then + TAGS="$TAGS,ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:latest" + fi + echo "tags=$TAGS" >> $GITHUB_OUTPUT - - name: Build and push - uses: docker/build-push-action@v6 - with: - context: . - cache-from: type=gha,scope=${{ inputs.ghcr_image_name }} - cache-to: type=gha,mode=max,scope=${{ inputs.ghcr_image_name }} - build-args: | - PACKAGE=${{ inputs.package }} - CI=true - secrets: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - target: ${{ steps.label.outputs.target }} - tags: ${{ steps.label.outputs.tags }} - platforms: linux/amd64 - push: true - provenance: false - sbom: false + - name: Build and push + uses: docker/build-push-action@v6 + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + with: + context: . + cache-from: type=gha,scope=${{ inputs.ghcr_image_name }} + cache-to: type=gha,mode=max,scope=${{ inputs.ghcr_image_name }} + build-args: | + PACKAGE=${{ inputs.package }} + CI=true + secrets: | + SENTRY_AUTH_TOKEN=${{ env.SENTRY_AUTH_TOKEN }} + target: ${{ steps.label.outputs.target }} + tags: ${{ steps.label.outputs.tags }} + platforms: linux/amd64 + push: true + provenance: false + sbom: false From d18fd3f0dbebc1616f70faf134c36d31cf2813c1 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 15:09:03 +0200 Subject: [PATCH 006/153] fix: don't secret it like that --- .github/workflows/ghcr-build-template.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 388925a53c..e518cd9b9a 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -20,9 +20,6 @@ on: image-sha: description: 'Full GHCR image ref with SHA tag' value: ${{ jobs.build.outputs.image-sha }} - secrets: - SENTRY_AUTH_TOKEN: - required: true jobs: build: From 9b073e2bac3e75789fca7c284f99d3c12c8eb044 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 15:11:27 +0200 Subject: [PATCH 007/153] fix: try and pass through sentry_Auth --- .github/workflows/ghcr-build-all.yml | 11 +++++++++++ .github/workflows/ghcr-build-template.yml | 3 +++ .github/workflows/on_main.yml | 2 ++ .github/workflows/on_pr.yml | 2 ++ 4 files changed, 18 insertions(+) diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index ebbe006625..734ef9703b 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -19,6 +19,9 @@ on: site-builder-image: description: 'Site builder image ref' value: ${{ jobs.build-site-builder.outputs.image-sha }} + secrets: + SENTRY_AUTH_TOKEN: + required: true jobs: build-base: @@ -26,6 +29,8 @@ jobs: with: ghcr_image_name: platform-migrations publish_latest: ${{ inputs.publish_latest }} + secrets: + SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} build-core: uses: ./.github/workflows/ghcr-build-template.yml @@ -33,6 +38,8 @@ jobs: package: core ghcr_image_name: platform publish_latest: ${{ inputs.publish_latest }} + secrets: + SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} build-jobs: uses: ./.github/workflows/ghcr-build-template.yml @@ -41,6 +48,8 @@ jobs: target: jobs ghcr_image_name: platform-jobs publish_latest: ${{ inputs.publish_latest }} + secrets: + SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} build-site-builder: uses: ./.github/workflows/ghcr-build-template.yml @@ -49,3 +58,5 @@ jobs: target: jobs ghcr_image_name: platform-site-builder publish_latest: ${{ inputs.publish_latest }} + secrets: + SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index e518cd9b9a..388925a53c 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -20,6 +20,9 @@ on: image-sha: description: 'Full GHCR image ref with SHA tag' value: ${{ jobs.build.outputs.image-sha }} + secrets: + SENTRY_AUTH_TOKEN: + required: true jobs: build: diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index 190b2142c0..3b287557ec 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -19,6 +19,8 @@ jobs: contents: read packages: write uses: ./.github/workflows/ghcr-build-all.yml + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} with: publish_latest: true diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 6feb995c1d..4444745766 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -93,6 +93,8 @@ jobs: contents: read packages: write uses: ./.github/workflows/ghcr-build-all.yml + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} e2e: if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') From e894fd21b437a5dd16d12bcfc3e6d87aa3ab593e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 16:09:30 +0200 Subject: [PATCH 008/153] fix: try again --- .github/workflows/deploy.yml | 8 ++++++++ .github/workflows/ghcr-build-all.yml | 16 ++++++++-------- .github/workflows/ghcr-build-template.yml | 4 +--- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index c131c2a639..b42d478b40 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -91,6 +91,8 @@ jobs: build-args: | PACKAGE=core CI=true + secrets: | + SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: next-app-core tags: | ghcr.io/pubpub/platform:${{ steps.vars.outputs.image_tag }} @@ -108,6 +110,8 @@ jobs: cache-to: type=gha,mode=max,scope=platform-migrations build-args: | CI=true + secrets: | + SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: monorepo tags: | ghcr.io/pubpub/platform-migrations:${{ steps.vars.outputs.image_tag }} @@ -126,6 +130,8 @@ jobs: build-args: | PACKAGE=jobs CI=true + secrets: | + SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: jobs tags: | ghcr.io/pubpub/platform-jobs:${{ steps.vars.outputs.image_tag }} @@ -144,6 +150,8 @@ jobs: build-args: | PACKAGE=site-builder CI=true + secrets: | + SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: jobs tags: | ghcr.io/pubpub/platform-site-builder:${{ steps.vars.outputs.image_tag }} diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index 734ef9703b..70c46bdf6f 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -29,8 +29,8 @@ jobs: with: ghcr_image_name: platform-migrations publish_latest: ${{ inputs.publish_latest }} - secrets: - SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} build-core: uses: ./.github/workflows/ghcr-build-template.yml @@ -38,8 +38,8 @@ jobs: package: core ghcr_image_name: platform publish_latest: ${{ inputs.publish_latest }} - secrets: - SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} build-jobs: uses: ./.github/workflows/ghcr-build-template.yml @@ -48,8 +48,8 @@ jobs: target: jobs ghcr_image_name: platform-jobs publish_latest: ${{ inputs.publish_latest }} - secrets: - SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} build-site-builder: uses: ./.github/workflows/ghcr-build-template.yml @@ -58,5 +58,5 @@ jobs: target: jobs ghcr_image_name: platform-site-builder publish_latest: ${{ inputs.publish_latest }} - secrets: - SENTRY_AUTH_TOKEN: ${{ env.SENTRY_AUTH_TOKEN }} + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 388925a53c..f0fb902ac0 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -72,8 +72,6 @@ jobs: - name: Build and push uses: docker/build-push-action@v6 - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} with: context: . cache-from: type=gha,scope=${{ inputs.ghcr_image_name }} @@ -82,7 +80,7 @@ jobs: PACKAGE=${{ inputs.package }} CI=true secrets: | - SENTRY_AUTH_TOKEN=${{ env.SENTRY_AUTH_TOKEN }} + SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: ${{ steps.label.outputs.target }} tags: ${{ steps.label.outputs.tags }} platforms: linux/amd64 From facea38931ed8d1f8b5bab101d57eff544bb43ec Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:08:13 +0200 Subject: [PATCH 009/153] fix: also filter on label --- .github/workflows/on_pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 4444745766..3c8c44fc0a 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -12,7 +12,7 @@ permissions: jobs: path-filter: runs-on: ubuntu-latest - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' outputs: docs: ${{ steps.changes.outputs.docs }} steps: From 52b38e0d2f996875955432960ca2db76e701d962 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:13:21 +0200 Subject: [PATCH 010/153] fix: push to kf --- .github/workflows/ghcr-build-template.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index f0fb902ac0..32da2fa6f3 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -62,11 +62,11 @@ jobs: echo "target=${{ inputs.target || format('next-app-{0}', inputs.package) }}" >> $GITHUB_OUTPUT fi - echo "label=ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" >> $GITHUB_OUTPUT + echo "label=ghcr.io/knowledgefutures/${{ inputs.ghcr_image_name }}:$sha_short" >> $GITHUB_OUTPUT - TAGS="ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:$sha_short" + TAGS="ghcr.io/knowledgefutures/${{ inputs.ghcr_image_name }}:$sha_short" if [[ "${{ inputs.publish_latest }}" == "true" ]]; then - TAGS="$TAGS,ghcr.io/pubpub/${{ inputs.ghcr_image_name }}:latest" + TAGS="$TAGS,ghcr.io/knowledgefutures/${{ inputs.ghcr_image_name }}:latest" fi echo "tags=$TAGS" >> $GITHUB_OUTPUT From fe19959f388bfa0134e729d1f1d53fc79da6d69b Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:17:58 +0200 Subject: [PATCH 011/153] fix: fix even more --- .github/workflows/deploy.yml | 24 ++++++++++++------------ .github/workflows/preview.yml | 8 +++++--- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index b42d478b40..9649598583 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -79,7 +79,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Build and push platform + - name: Build and push pubstar uses: docker/build-push-action@v6 with: context: . @@ -95,8 +95,8 @@ jobs: SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: next-app-core tags: | - ghcr.io/pubpub/platform:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform:latest' || '' }} + ghcr.io/knowledgefutures/platform:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform:latest' || '' }} platforms: linux/amd64 - name: Build and push platform-migrations @@ -114,8 +114,8 @@ jobs: SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: monorepo tags: | - ghcr.io/pubpub/platform-migrations:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform-migrations:latest' || '' }} + ghcr.io/knowledgefutures/platform-migrations:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform-migrations:latest' || '' }} platforms: linux/amd64 - name: Build and push platform-jobs @@ -134,8 +134,8 @@ jobs: SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: jobs tags: | - ghcr.io/pubpub/platform-jobs:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform-jobs:latest' || '' }} + ghcr.io/knowledgefutures/platform-jobs:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform-jobs:latest' || '' }} platforms: linux/amd64 - name: Build and push platform-site-builder @@ -154,8 +154,8 @@ jobs: SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: jobs tags: | - ghcr.io/pubpub/platform-site-builder:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/pubpub/platform-site-builder:latest' || '' }} + ghcr.io/knowledgefutures/platform-site-builder:${{ steps.vars.outputs.image_tag }} + ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform-site-builder:latest' || '' }} platforms: linux/amd64 deploy: @@ -234,9 +234,9 @@ jobs: sudo env IMAGE_TAG="$IMAGE_TAG" \ docker stack deploy -c stack.yml \ --with-registry-auth --resolve-image always --prune \ - pubpub + pubstar - sudo docker stack services pubpub + sudo docker stack services pubstar sudo docker image prune -f # wait for platform rollout @@ -264,6 +264,6 @@ jobs: return 1 } - wait_rollout pubpub_platform 600 + wait_rollout pubstar 600 EOS diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 1b7d3cf45e..68b624d635 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -39,7 +39,7 @@ jobs: run: | echo "number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT echo "stack_name=preview-pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT - echo "host=pr-${{ github.event.pull_request.number }}.preview.pubpub.org" >> $GITHUB_OUTPUT + echo "host=pr-${{ github.event.pull_request.number }}.preview.pubstar.org" >> $GITHUB_OUTPUT - name: Start SSH agent uses: webfactory/ssh-agent@v0.9.0 @@ -62,10 +62,11 @@ jobs: GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} IMAGE_TAG: ${{ inputs.image_tag }} STACK_NAME: ${{ steps.pr.outputs.stack_name }} - PREVIEW_HOST: ${{ steps.pr.outputs.host }} + PREVIEW_HOST: ${{steps.pr.outputs.host }} + PR_NUMBER: ${{ steps.pr.outputs.number }} run: | ssh "${SSH_USER}@${SSH_HOST}" \ - "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' PREVIEW_HOST='${PREVIEW_HOST}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' + "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' PREVIEW_HOST='${PREVIEW_HOST}' PR_NUMBER='${PR_NUMBER}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' set -euo pipefail REPO="${1:?missing repo}" @@ -76,6 +77,7 @@ jobs: : "${GHCR_TOKEN:?missing GHCR_TOKEN}" : "${STACK_NAME:?missing STACK_NAME}" : "${PREVIEW_HOST:?missing PREVIEW_HOST}" + : "${PR_NUMBER:?missing PR_NUMBER}" REPO_NAME="${REPO##*/}" APP_DIR="/srv/${REPO_NAME}" From 307af6bfa9b083598febb0d4af841a9c66b892f7 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:38:04 +0200 Subject: [PATCH 012/153] fix: fix even more --- .github/workflows/e2e.yml | 8 ++++---- .github/workflows/preview.yml | 14 ++++++++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index 9861c4219f..b60a889c71 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -85,10 +85,10 @@ jobs: env: IMAGE_TAG: ${{ steps.gettag.outputs.tag }} run: | - echo "core_label=ghcr.io/pubpub/platform:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "jobs_label=ghcr.io/pubpub/platform-jobs:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "base_label=ghcr.io/pubpub/platform-migrations:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "site_builder_label=ghcr.io/pubpub/platform-site-builder:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "core_label=ghcr.io/knowledgefutures/platform:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "jobs_label=ghcr.io/knowledgefutures/platform-jobs:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "base_label=ghcr.io/knowledgefutures/platform-migrations:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "site_builder_label=ghcr.io/knowledgefutures/platform-site-builder:$IMAGE_TAG" >> $GITHUB_OUTPUT - name: Install dependencies run: pnpm install --frozen-lockfile --prefer-offline diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 68b624d635..c5f15871cb 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -66,7 +66,7 @@ jobs: PR_NUMBER: ${{ steps.pr.outputs.number }} run: | ssh "${SSH_USER}@${SSH_HOST}" \ - "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' PREVIEW_HOST='${PREVIEW_HOST}' PR_NUMBER='${PR_NUMBER}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' + "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' PREVIEW_HOST='${PREVIEW_HOST}' PR_NUMBER='${PR_NUMBER}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' set -euo pipefail REPO="${1:?missing repo}" @@ -78,6 +78,7 @@ jobs: : "${STACK_NAME:?missing STACK_NAME}" : "${PREVIEW_HOST:?missing PREVIEW_HOST}" : "${PR_NUMBER:?missing PR_NUMBER}" + : "${ENV_FILE:?missing ENV_FILE}" REPO_NAME="${REPO##*/}" APP_DIR="/srv/${REPO_NAME}" @@ -98,18 +99,23 @@ jobs: cd infra + sops -d --input-type dotenv --output-type dotenv ".env.preview.enc" > .env + if ! sudo docker info --format '{{.Swarm.LocalNodeState}}' | grep -qx active; then sudo docker swarm init --advertise-addr "$(hostname -I | awk '{print $1}')" fi echo "$GHCR_TOKEN" | sudo docker login ghcr.io -u "$GHCR_USER" --password-stdin - echo "deploying preview stack $STACK_NAME with IMAGE_TAG=$IMAGE_TAG at $PREVIEW_HOST" + echo "IMAGE_TAG in shell: [$IMAGE_TAG]" + + # For some reason, not pulling explicitly makes the docker stack deploy throw an error that it can't find the package. + sudo docker pull ghcr.io/knowledgefutures/platform:"$IMAGE_TAG" + # deploy/update stack sudo env IMAGE_TAG="$IMAGE_TAG" PREVIEW_HOST="$PREVIEW_HOST" \ docker stack deploy -c stack.preview.yml \ - --with-registry-auth --resolve-image always \ - "$STACK_NAME" + --with-registry-auth --resolve-image always --prune "$STACK_NAME" sudo docker stack services "$STACK_NAME" sudo docker image prune -f From a35f1732db309a19b25340894d7c0e92a9482c16 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:51:24 +0200 Subject: [PATCH 013/153] ugh --- .github/workflows/preview.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index c5f15871cb..7aab542734 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -78,7 +78,6 @@ jobs: : "${STACK_NAME:?missing STACK_NAME}" : "${PREVIEW_HOST:?missing PREVIEW_HOST}" : "${PR_NUMBER:?missing PR_NUMBER}" - : "${ENV_FILE:?missing ENV_FILE}" REPO_NAME="${REPO##*/}" APP_DIR="/srv/${REPO_NAME}" From e5a56cd6adfc4fa906b04d80d303c7f0ef1020f9 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:53:28 +0200 Subject: [PATCH 014/153] fix: expedite testing --- .github/workflows/on_pr.yml | 257 ++++++++++++++++++------------------ 1 file changed, 129 insertions(+), 128 deletions(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 3c8c44fc0a..8f473338ab 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,113 +10,114 @@ permissions: packages: write jobs: - path-filter: - runs-on: ubuntu-latest - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' - outputs: - docs: ${{ steps.changes.outputs.docs }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: dorny/paths-filter@v3 - id: changes - with: - filters: | - docs: - - 'docs/**' + # path-filter: + # runs-on: ubuntu-latest + # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' + # outputs: + # docs: ${{ steps.changes.outputs.docs }} + # steps: + # - uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # - uses: dorny/paths-filter@v3 + # id: changes + # with: + # filters: | + # docs: + # - 'docs/**' - # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests - skip_build_sha: - outputs: - last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.sha }} - - name: Check if skip-build is in the commit message - id: check - run: | - echo "commit message: $(git log -1 --pretty=%B)" - if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then - echo "skip-build is in the commit message" - echo "skip-build=true" >> $GITHUB_OUTPUT - else - echo "skip-build is not in the commit message" - echo "skip-build=false" >> $GITHUB_OUTPUT - echo "skip-build-sha=" >> $GITHUB_OUTPUT - fi - - name: Find last successful build SHA - id: last-build - if: ${{ steps.check.outputs.skip-build == 'true' }} - env: - GH_TOKEN: ${{ github.token }} - run: | - pr_number="${{ github.event.pull_request.number }}" + # # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests + # skip_build_sha: + # outputs: + # last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # ref: ${{ github.event.pull_request.head.sha }} + # - name: Check if skip-build is in the commit message + # id: check + # run: | + # echo "commit message: $(git log -1 --pretty=%B)" + # if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then + # echo "skip-build is in the commit message" + # echo "skip-build=true" >> $GITHUB_OUTPUT + # else + # echo "skip-build is not in the commit message" + # echo "skip-build=false" >> $GITHUB_OUTPUT + # echo "skip-build-sha=" >> $GITHUB_OUTPUT + # fi + # - name: Find last successful build SHA + # id: last-build + # if: ${{ steps.check.outputs.skip-build == 'true' }} + # env: + # GH_TOKEN: ${{ github.token }} + # run: | + # pr_number="${{ github.event.pull_request.number }}" - gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ - --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ - | jq -s 'sort_by(.created) | reverse | .[].id' -r \ - | while read run_id; do - echo "Checking run: $run_id" - run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") - echo "Run: $run" - all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') - echo "All success for $run_id: $all_success" + # gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ + # --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ + # | jq -s 'sort_by(.created) | reverse | .[].id' -r \ + # | while read run_id; do + # echo "Checking run: $run_id" + # run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") + # echo "Run: $run" + # all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') + # echo "All success for $run_id: $all_success" - if [ "$all_success" == "true" ]; then - successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') - echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT - echo "Found last successful build at SHA: $successful_sha (run: $run_id)" - exit 0 - fi - done + # if [ "$all_success" == "true" ]; then + # successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') + # echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT + # echo "Found last successful build at SHA: $successful_sha (run: $run_id)" + # exit 0 + # fi + # done - if [ "$all_success" == "false" ]; then - echo "last-successful-build-sha=" >> $GITHUB_OUTPUT - echo "No previous successful build found in this PR" - fi + # if [ "$all_success" == "false" ]; then + # echo "last-successful-build-sha=" >> $GITHUB_OUTPUT + # echo "No previous successful build found in this PR" + # fi - ci: - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') - uses: ./.github/workflows/ci.yml + # ci: + # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') + # uses: ./.github/workflows/ci.yml - build-all: - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') - needs: - - path-filter - - skip_build_sha - permissions: - contents: read - packages: write - uses: ./.github/workflows/ghcr-build-all.yml - secrets: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + # build-all: + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') + # needs: + # - path-filter + # - skip_build_sha + # permissions: + # contents: read + # packages: write + # uses: ./.github/workflows/ghcr-build-all.yml + # secrets: + # SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - e2e: - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') - needs: - - path-filter - - build-all - - skip_build_sha - uses: ./.github/workflows/e2e.yml - with: - image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} + # e2e: + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') + # needs: + # - path-filter + # - build-all + # - skip_build_sha + # uses: ./.github/workflows/e2e.yml + # with: + # image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') + # if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') uses: ./.github/workflows/preview.yml - needs: - - build-all + # needs: + # - build-all permissions: contents: read pull-requests: write with: action: deploy - image_tag: ${{ github.event.pull_request.head.sha }} + # image_tag: ${{ github.event.pull_request.head.sha }} + image_tag: 307af6bfa9b083598febb0d4af841a9c66b892f7 secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} @@ -139,42 +140,42 @@ jobs: GHCR_USER: ${{ secrets.GHCR_USER }} GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} - deploy-docs-preview: - permissions: - contents: write - pages: write - pull-requests: write - needs: - - path-filter - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && needs.path-filter.outputs.docs == 'true' - uses: ./.github/workflows/build-docs.yml - with: - preview: true + # deploy-docs-preview: + # permissions: + # contents: write + # pages: write + # pull-requests: write + # needs: + # - path-filter + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && needs.path-filter.outputs.docs == 'true' + # uses: ./.github/workflows/build-docs.yml + # with: + # preview: true - close-docs-preview: - needs: - - path-filter - permissions: - contents: write - pages: write - pull-requests: write - if: github.event.action == 'closed' && needs.path-filter.outputs.docs == 'true' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 + # close-docs-preview: + # needs: + # - path-filter + # permissions: + # contents: write + # pages: write + # pull-requests: write + # if: github.event.action == 'closed' && needs.path-filter.outputs.docs == 'true' + # runs-on: ubuntu-latest + # steps: + # - uses: actions/checkout@v4 - - name: Close docs preview - uses: rossjrw/pr-preview-action@v1 - with: - source-dir: docs/out - action: remove + # - name: Close docs preview + # uses: rossjrw/pr-preview-action@v1 + # with: + # source-dir: docs/out + # action: remove - status-check: - needs: - - ci - - e2e - runs-on: ubuntu-latest - steps: - - name: ok - run: | - echo ok + # status-check: + # needs: + # - ci + # - e2e + # runs-on: ubuntu-latest + # steps: + # - name: ok + # run: | + # echo ok From fd2d9ba0ccc7da70387469760bc6be32673e7651 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:55:41 +0200 Subject: [PATCH 015/153] fix: reencrypt --- infra/.env.preview.enc | 88 +++++++++++++++++++++--------------------- infra/.env.sandbox.enc | 53 +++++++++++++++++++++++++ infra/.sops.yaml | 1 + 3 files changed, 99 insertions(+), 43 deletions(-) create mode 100644 infra/.env.sandbox.enc diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index f467e193fb..9d0815896f 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,51 +1,53 @@ -#ENC[AES256_GCM,data:of7NlDnxPpiEB5vsG/V1x3ZLOs/MKjJDuadN+vv9Kb4R,iv:TMmk9ukk2hkoB1kcG9Q8xHB1cO5aQLZ5r8g+26F01kc=,tag:eOFfFj9IrLuONwACqKIpXw==,type:comment] -#ENC[AES256_GCM,data:PtQw+iKvi39aNyMJ0vN0P6djoAzotLKsbQQ/Pl18TwteSNWRI9aq5FLiMPj6LAq+jmNpyBM5KiSHdTg=,iv:QySN5PpC8CROiICNnFTHMY24RMaZbkIrLbCEQWW/gnQ=,tag:EMltaYcGdFo9F+lsfXi0iw==,type:comment] -#ENC[AES256_GCM,data:GAOzJxMiPKOg9UEEwkZU4uY5OvtCyJr57M77gYFq8g8OqKOu1md+ZanhUZ9VzUujs3CE2sr64Z2Ommnj9N9wnNvSFA==,iv:3f5ncmBejz4v/zayzEJH1nkVS6D0nLM6SeAHdkGN6jk=,tag:ga6J1rGmpezcirtl+z1S3Q==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:bLWlWiwmE4P+79EBTPMB9yGZUbNV/oe1muxjOUcI9g==,iv:u3gYXAUajl40QSOHANO+E9/fzqEQuLSva7zVC+27prM=,tag:tdagMgYZ/AnOvf1DZImQdg==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:XMpckdKMM7um9cgLm3ejKv1496WrEd8bnFMMeoSzsu7VVlcNEu0p,iv:8l+hwEEVkKzM/rWh3vU4mBXP9Zad19nPdfIfctylKgM=,tag:6n6lwjGGAQ1iZFb2Gk0ZOA==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:vP3XRKaW7Es=,iv:N1+m250CXrBJ6M89420Kw6EOk36ubYm5V1cBKYbivuQ=,tag:HauutfyydiwpP8p6ED7xow==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:CNdOwTzEIJw=,iv:vysY4S7GXiJarW+nn3IhtqpbqGt66uxF8rESBH5rndE=,tag:4OiNss65oGUYwT6DQ90Uiw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:/rEWpBI1,iv:ofQM5AREZEyarZqtXUw8J59RaxUXFxJTSSl+QY1fRL8=,tag:vtZ5xaSpoJueZjyW2qPR1Q==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:fFrfySct2Bnf4uqW7nh1jomFXA07uIzVj87evDBIIiaJbeGVKAVN34335Nx5EiZiVMH/sP+ZbpCjRY0Y+Oe3ua4Q9PruRSZZ+g==,iv:NF+60xk7pHOnU5UGGBXvhARKmGQn9D2siYPnzs90F/E=,tag:znrYhkuW9y63kj4sv0qadA==,type:str] -PGHOST=ENC[AES256_GCM,data:oSQ=,iv:ARIr/ltvf45sch9FDtmkvoB1ZtO9NpuY3kCL80rC2Nc=,tag:1av8sSCFfJn4mwCVCDE/sw==,type:str] -PGPORT=ENC[AES256_GCM,data:gQqRmg==,iv:rIE824GodwwYDV6RrlU6GGzeMsHl1OslYEcPbpM4FG8=,tag:v1GEpBHvh57goirCznNQvw==,type:str] -PGUSER=ENC[AES256_GCM,data:vTCVB+18i5eCDcNAhXPFMw==,iv:fXVQXWyRBxKYXVxyBd50Vlj9LYP4WTlSu7XJHZ+/chE=,tag:vJjvVSLkD54164ouNKiiMw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:5yyUjiSoNNoBKkkc5G6aPSxDqVU=,iv:cLBzonquatuOvAPggVcdvqtLpAvv03K4f3vr6BHm4W8=,tag:UNLRQreMuJDShjYfyl4n9A==,type:str] -PGDATABASE=ENC[AES256_GCM,data:eq2+1G9H9g91NMlzvXQ=,iv:Qv+cAvUy14/cCnExGip5wDYOz1DfFVm4PDCNitFXBXk=,tag:qhF3oR/8djZjaywEZlT0Pw==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:GRcBoFc=,iv:InuwdL0xoUpAJ3qFey5VNKNAH8FnbahDrJb4+uZMtdc=,tag:zXsAGvP5USeT8q0TpLLuFA==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:nyYt8RF/1nSo6RGe,iv:qVrZPQoM/jPXLduovT7diIuYWf5qOSig+2vyIK3Eyp0=,tag:/WtmapHuczbyPatIUfn0wA==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:BzRA0o1ExPc5RRyI,iv:vvY32RbF7PAJ04DnEDJEhtth+69ERIqgSd3WnAhVo2k=,tag:qWeKz/4jqf4omQO05h/gow==,type:str] -ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:zhZbMz1l,iv:V5sDOJS91ja2rNWkoRKZcGrfCoXLMOaQGfQEEOuAYwY=,tag:v/ctTnjabZONK7tHskIGhw==,type:str] -ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:2Jp0Ag0E9tO49w==,iv:834sjanGTdosiSEp9hU4A2Bids/AD+hF+gtay/ShQG0=,tag:ELJSrXCxYLJ3RY5URtoMpQ==,type:str] -ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:4KCOFy9D6lWdug==,iv:rfGMxDxDwwR2ge/stnr3j7XSUEqEvnkZ4tqEO7kipao=,tag:RkNrw0bFcullZDFDnVBPsg==,type:str] -ASSETS_REGION=ENC[AES256_GCM,data:9CuBN+8Sc9Gh,iv:+LQ+exp0GK3BBBjZiFvs9ojdVEU8qwjkMMFfUjRf+i0=,tag:sBxanmVZshLdG4AjwJixbw==,type:str] -ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:DYulcQXvnZZnAxHEYo+hvKI=,iv:eTmV3sT3t4NJMPXztvJ/Q8xr94BLx/HvOI2uzEvTV1A=,tag:ivb5ozzFm84oo75V2L0h0g==,type:str] -ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:YKLdtwJfpv5FAGaF9eLyoKBTvaINVI7skg+crNrpMpgythjM9UtEkQUkYLvY8Q==,iv:6OgMI0kF2ZSmyr3vwIgJSDmJd/SZIyNnhPpW0gRuCpM=,tag:f84QuBy/RvTzuy2kGRwuiA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:OV9s2rWftVgT1qTyIKfvK9k=,iv:nfoRG45f/rMmtc6w64KIpzyRMHzUQKSZEpd/54dRKnY=,tag:sRMy3UPbtuS9Ew1WoAsBLw==,type:str] -S3_REGION=ENC[AES256_GCM,data:+o9P6dq/OTyv,iv:w/taA929bdDnWTfV41ztTW/A2aTNtOPBWGG9GrO4m50=,tag:GlrRSsryimlwV/4cOMLYCQ==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:M8noZ9SuEb3UinuqXKg3mptsXLv+CBDR,iv:iI4HMrTGmjA1KlBQailX7nHKaMkgFziAyaE0rEIOXTs=,tag:/9V9YLNriXXhZ18iKFa27Q==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:sp9o,iv:9ekQscr6uw67f/q/gTBbdHOqllB4wpL0tVb19D94mDk=,tag:a8PFEsrzmN6ft2mTU9fVSA==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:kVfz,iv:1vsZ6xyd3UmqKiacWYCj+aFoOZwrRpQupri71OaMjxo=,tag:jibeX711XVd4r9NEqrF/3g==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:X3w5,iv:TCEpq0sGFFRX3t0bSi0N9TrExaEuJtCfhc2zbtuTmCM=,tag:7Lf10+o30Cskx4T5bOw2mA==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:dDXf,iv:XGlanU02ma39SAYQXAoE1UzPTfRS/KmHK97kVys+nZs=,tag:/O+QEwi5LR3ZzR1lPzhJbg==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:DEbB,iv:p1gdSMBMdMGXdYEb4XoYdMNnNYRu3JQfm0yNETOJAAI=,tag:AyILasgDTviZhJX51e+BnQ==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:DgDE,iv:dGCtYZIAUz+IRbI/8Xh2O5fl1jllPr9W75QxdO8N8Xk=,tag:VSfR/8Pd/odDU9+8C00eMw==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:xhtoAe/QWc7DtnYjoRKUZkQ=,iv:ZF+CKi0f1Sq3c5UiKpd6NFfurUc4dFKuz246D2frvas=,tag:PYwdy58De+T+l1q1ZFIJoQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:dLTW,iv:JmuG6I7LR6jjNKTpX46r86ZDRyT87Em1YE7ZZZkZ4OE=,tag:hclmkfgwyLR6oVpHGP7clg==,type:str] -API_KEY=ENC[AES256_GCM,data:H9M9,iv:NXDRy323PFP7c5+LtgCal2OkgY5K66CJwJp3Bjj5cJg=,tag:0L1AFfkRSgIyVDqIgrBjXQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByRWZudVlCeDV6Ni91RDNz\nMCt1Ujg5SUxnL0Nxenp5Vk1BYkdGUjZHcEFBCkNyRmY2YndaMG41NC9JL2tCYXFr\nWWllUW1TMHMyMS9nZ3B2V0dqb1JzRnMKLS0tIDluRHdZM0lZWFNDU296ZHNMOGlK\nRm53V3ZTd21YRHI5Q3kyT1p3Nml2OGMK0dYKzCiSggxIgIjLabDZe8tfdg78BS0U\nZQnnigGcpawgKxPKm1DvXUJKWZzPtTTehUL3TAQadYe+ZzVOsAnVuA==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:ixzpn8JBsHx4VCKGoG/ukzt+Hw5xfQWgxgm+37CXzzgz,iv:iPyyMaa5t3ZudyI2Ur+6snXjxIj9/PJtxobZCrKi9uU=,tag:WORvsoa83IYbqNw63qp3wA==,type:comment] +#ENC[AES256_GCM,data:nQYzZC0dQM1k1Vigumi/LqtF+QWNq1VNGXlBRMtlwkiGYm0p6A6RGLhNSn3V1/niAkIfQxIv/DDKpTo=,iv:HwPO7nIo715rKHIv3XIhOM43nmQVMWyZlqtewji9INc=,tag:sZfa6jwlf0Bad6DjuT3qHA==,type:comment] +#ENC[AES256_GCM,data:q5JSDf5A1Z8wo2V9GAWbeyunBkYp+fy9a2vY6YHKR6Tu1lj7VZajOFa6ZOOkzUrM2/GvFF+b0/WhxZZ/m46xPAM6bg==,iv:b+0jiG9VHfVU8i2743psbuCJSR8oRHa2Tr56arepDvE=,tag:Iy290T1CJf8VdF9tr+nZ5g==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:x1bRTjXLP84FSvgvRa9vkPPH6nW/U31HOTurQxUPL4g=,iv:E1AToe2dW9uwUVQ7Pu+3OrsAzQzjcMx7/s8TVadbfGY=,tag:Ukrrd4UeaDoV4NF5VVcwjw==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:/0B1/xKMBsAb9X7MSQYMmnSPAhjZ9MDzop2CA2zc8lj96T7muyaI5w==,iv:xO3gTN+6l+rVKB4zwUZcJj+x5V6wXVO7HGoXbKn2BFU=,tag:T25RAIEzgs6qf4o6S8eJTw==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:T5i9yg94+xU=,iv:nzYa2sLEfmN1P5AmdOAsI364NyfNwAz9L7MjjSczsHk=,tag:6is9latZeE0J7WONuQ13dg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:yRvHPXg5e9c=,iv:FfINJ/IJGMtaxazN/QX2tdR+e18GJpCCPqENd/IPE5c=,tag:YoYl6ytxw+OIGiSC0om/qg==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:HawR8ZwLaQ==,iv:vfqumT5fR7fhAN7ykCSAwihE2cCubzB/ht12JFCe9To=,tag:jxT8BcqrRjVk3yHetHdQ2g==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:uATftDIHp9gZbY7A4wqrgl2evZrTV9EhscnVlYu8Oj+fpEsRDEPG6pEu5tR9+ZX3pSDDGo/JM9leOq4baFGoaGopgew3DkxGBg==,iv:WCs3OUU4QFFst0OWu8MqcrODqBCoPLtNGJpxNxn/WII=,tag:GMu/XEpMNzkisdxaSdDjVw==,type:str] +PGHOST=ENC[AES256_GCM,data:2GY=,iv:ip1EFGbS8Ffg775N6osnQex/2u5QK1YxRPepUHSrMvk=,tag:WjPC9OB0Fo32jYGTiHathw==,type:str] +PGPORT=ENC[AES256_GCM,data:m+NGuw==,iv:Ux+J+FkEZXrS+ti2v/P7/dRlzEGsRoQSKd+nLKOD2L4=,tag:nx+XmVbxPxcKA3zdDR6KHA==,type:str] +PGUSER=ENC[AES256_GCM,data:erlvtoWGDR4l8dZIBorIsg==,iv:m+0BeGUe4ZqsEFG5AlWhgLt36Wz6oY/7se24Qme3Bt8=,tag:lYjlXKlCZUho5Zp8Lu/6zA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:7O3i0lQG0mFTDDPrl2GVxHO/flg=,iv:pFY9BS91KjKRb9VAzLmFxqQyogG4BGQuRyBR/Ce4cWs=,tag:V8smg5nFRhB9szHaYOmmQQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:8pjgs5BVUjfuDGnI54s=,iv:4i3GRXd/P13PISZb29yYhMT/2yuPy5rObkozDGAIJ2A=,tag:wKWznQ2OR7U6uiZgTDuRow==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:BcwXYIE=,iv:tSsrSPyuXb6+tAkBxvEm3udWE0V92lLA6u3o0+Dciyk=,tag:YOLWOc76QAR4Y+d1YYpm+w==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:5tjr3+awwjmzJSLq0g==,iv:apBFAR2byKFZ8sjy/lkWwUoXC1rmZv9KrZKzeKrlklw=,tag:k1pWu9WcExsgzCPZbuFN+w==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:s+n9950So0B8kOG5HA==,iv:SASe+A7pDEJn6eJg0v2UnL+bcshuelW+PSixKddjpak=,tag:BrxG8+C7NxTI7RPja9wajw==,type:str] +ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:rHdZAhW0EaqlOSEvJYM=,iv:YFFvQic+D1w3tIMLn3PHuLlB9/MJqTh2P4LHNlXGgVg=,tag:4cp/3EwXvY7HRxz3Lo1Odw==,type:str] +ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:ieCNIBMR61B0rbc=,iv:pd6mHtTMPgFBZ6io5qg3WM9Ffon9GO0lYzKU1Y+8rrg=,tag:V0F+egT/mSWrKmbZEsGlDQ==,type:str] +ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:GLaPa1XdXytkN9Q=,iv:EhzgHGzR/2ni1bG6l5Ium1w7PfiCM45e5mMufwHJ3eQ=,tag:VU5S0i/xalLFIgy0bMk9kw==,type:str] +ASSETS_REGION=ENC[AES256_GCM,data:XUTDDjoeY1N2,iv:2DXZLpVFo5OqkazWsYGSnrGa2WiufFLOPhTsUV1GTGo=,tag:GSPfWoZdh7//8ducoKGdgg==,type:str] +ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:pO4NHx5m6hKEfzyhJlVo8X4=,iv:2JkwOMGaZuk/8RqZRh3cZDgGQFTk5w2UHj8uFWdvKpY=,tag:SvJGMYN1WuqKpGiTh13z7g==,type:str] +ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:m4T89W+moHu1VNMPgiho668KozrLU4SkVt1qu2H2SnZ9GuY3oQFoS3+2WgLsfCw=,iv:+0MRqXhd7cu3ZAaKjJx37COMnOoRIrP4fjaZUoHksG0=,tag:EBdEyncf/oWGlx+Hn4+usw==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:GUjQ3FWK1KdnBav4kmuRd9E=,iv:wCRB+Lwx+QBnJytax7OrOD6hDBwfGu6ZwoqRVZQVpsE=,tag:i+P28kG74swa9jDvf5DIqQ==,type:str] +S3_REGION=ENC[AES256_GCM,data:1inzcz2Rm3L7,iv:ZRNBoNrumXyi/MTCHxaG3rEv8PpVF5+lT+87W5VT2J4=,tag:J2HaayclKy/IgZUccpMe4Q==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:8gDPn0h5nz4gnXb9tP3yDD2VUGNlJaNN,iv:DsHRT/Q6Ud/0kzLxLELBM7C2MNxbrmeSg22UwB3eMPI=,tag:JgtTJgIpaNKm1iVcuCEigA==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:qvts,iv:iFd5uIjDfKQYmQFEeIJM7WvnycKdDDOW9CskR/flApk=,tag:MTQBZqyTAq6Ww3pILR+fGg==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:4iK2,iv:TPX3ioWPf86USPpgYd+elxHcPlAXDeA2tj9xE2xH1Z0=,tag:K42hjwvbmBfVYMTXjfaQrw==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:5De1,iv:o6HECjWyCKIlsS/FN3yHHw+0a9LTkTF/WG1yWbJLtVQ=,tag:bVsqjuaxG/gE2JxPKT8tgQ==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:wNNc,iv:1NiQiHLMEoPlRpy+qlicjQmqSIjs+bDDUOxojr0q/38=,tag:gKldNjaSstVC82BzWdKcDw==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:Fcpm,iv:636evj3kc+IJhV4u6g969UlI9bFjateayohZIulnzJo=,tag:OyMjeEd4z65SwdlJrqUifg==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:YVJm,iv:SGN7zmLxgGJ981KKHJxDG6QPr04rpLcymzMae95yIFA=,tag:Z8gZ4lJItuOm8ozghZxq3g==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:VYSYOkhFpWZc/fAnTDIFvrfF,iv:+FM6fir/Rsy1QrwV7KmxL1/S4qyoFQNLJ4nUH5moCBo=,tag:S2OK5VNjcDNh8XxrAXXCKw==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:83Ol,iv:HhT+b/6XLiLeskgDuOWpueXBCJb5cCbdn/oy5jjA0Ho=,tag:xX8TDYQbB2hPWlQ5+YdLGA==,type:str] +API_KEY=ENC[AES256_GCM,data:pO6p,iv:liz9TPYSA3KcYuUkw23g3OJsD0MIkT1kdC7zsN5GLFU=,tag:tO3N9AfhV79xFKWnHzUGyA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3N0FndHRjZmQrNWZUMUdF\nd0s1aE82eWI3QngydnNhSkZ2RGtIOVdNTjNRClV6UHp1MDYyZWlEcGEydGM3cm5u\nOVlnV29TdnEzMWVkV0tsS2Z2bDlTdE0KLS0tIFNVUEpCd3ZnR3NucWVVMDBXU1l4\nK1BYNzdxQ1pZR2FFMk0reTdCalRFaVkKJTul7h36wCloMur46INKkCqjLp3MdF45\nduT823QpYgvrcsO9vzyek3V1/5Y4iZ5/vsY/tCKhBXKloElXmuMzdg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEbnE3eGlLWWxiMnlyUGxD\nMklvYk11SDdxb014aGtDaVBXc08xMCtzWlhZClZNYmhFeHQvd0NrdDE5Z2x6SERM\najFmOU0zM2ZOaERYT2dkYkF4czAxY1EKLS0tIE1MUHdVa3FMd0hnZldYWGxaTnlo\nMWlOaE53N0lJTDRYL0xZWTZlRElGZTQKhQUYdy7l3PKCW42Ifch1T2qvZw2xeifF\nLScPBD1sTQBd6zWG+QVfeSHjUbrpHYgvWDZkRtM1g8EJRQI9Ry2CwQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByUVVXWmpvL3B6enZ3SFRi\naFd5UWpJSUdTZFJTOE9JYy8yM1cyZWduRkRRCnlYdlNidEVEbWFNUlBRK0F1c2Qz\nblJXUlpDTWJYUFNxNGtDSWl2SzJpek0KLS0tIFdVUGd2SFMyTmVIanhtTVNGb0Jn\ndUFydXdSb3hHa1JydEtpaFplZXRJbVEKAEwjY12xKIdHvuxJGC4S7dAzkH/JcJsh\ndx3Te//BLDN+8lIv5SsYSf6L/pQXLCV0z1ztvARvYf3LfJyg5xsx1Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWdmZRUVRrOWpVZWcxc3VU\nSW15Nm5zc1BPRDNqdkQxOGFsbmNNcFY4eDNJCkpnR2t3aFpnOWFPVmVsMFlPc2FY\nREgzeUVnajliWDVyTEZSR1pNK1dnVFkKLS0tIHc3akVLdTFnWHNPWGMzOU85UlFT\nNVdPZ09iWDNZdkZQUzBwbXNkVlNKQWMKHoKV5ruHR8omGWRPv9rAl40wunWoFGrP\nuy+Jei87mB0pCc4oghSWI4W1pHKGyaFXqx1cpge/X9ib6DRcK7UVXA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqT1hzS0U2KzVTMldsVkFB\neXM1WFJQTUZaTStWdkt6UWtCbVlKVjhHS1NzCmtCVTZNRkF2ci9icjRsdzVoSldH\nZ0tWMlQraHByVm96RXh0TjE5MUFVQU0KLS0tIEhDaE9EaVdlTFVUR3pwWE9lZEs3\nSWxHQXVYMCtZRzVnbklEbEJiMkcrSjQKTBDADGXiDaOPsehaOKf3X7tXC0N+owJ+\nh5aT/IEkvd7hb6QocKxNpeOCWsdigbcCAFNTdckzwrdOkZsl3ZXsQA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwNDBiNWU2R3VUN0RuR1FG\nY0M3RlN2UFFNTmZ1TE40VkN1WkhHRkhBRnpvClhUM0hvdElsZkl1a0FlTkkvaTI0\nM1BUWnVHbTdBNjRKazBWZ3hiKzhROG8KLS0tIEZLYXFxUVRlWGVESlJtRGhWY1oz\nNGIzbzIyYmcvdWdCVTFtREdjelh5YVUKa5yUPircj6hoy/a1D07vRxv6S8syDUf/\nHc3AIltVEkMtzfekyOXUANJKqCFhUYPSVLD3f1XnIB/bDvZyw7fx6A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5WTJsYXZlcXhRaFBxZlRy\nN1J0cENQa09EWDgrQi9ucGdDV1NmbnFIMVJRCmpGSzdHRHpkVmd4SWYrMFB2dTJx\na3NyZmRucDZraTRnV1NvM01TNWdMNncKLS0tIDltNzluSEMzKzN4YTlQbzhoejAw\nS1RCN29aVGZsaDhjTjhwS2JidFlvSUkKlNSRT/TRo4KKlgBjFF9/HWJRaktV/UVd\nmdXiqVtOhho/Yy4kWEZLQRxqDt7YrDH5ECUgNGbKcyDZQQvfaY4uWQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBocmwvU3dsTGZzMXMxUUpr\nMXIwVGRWWjZlYVZqZndLeVQ4UkZoNDRxMUIwCnhRV1VMZjZzckVXRjN2UklMb2Ni\nRU9jUFNURG5JM1JGL3liSGVPUC9uNFEKLS0tIHZkMFhUMFZickhwK0NONEtGNXZn\nZmU0Yjl3aTRiWk02a3dlQlFNK2xqVmcK+4giw+0KrTYDrx1hHLJzmNZD4mKjVnkN\nqEJIuu3ZPBfkm7yWJXFlcgSWOKahE3Epii8j80Cmc5oePSjt1z0spA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLZ2NTaTB1OVc1UWtBSzNO\nb2oxcFF2SFN1YyswRzYweDJFWDdKUUMzeWhFCkdyUE9HZE1xQWtDRlBCTXlrLzBJ\nMzIyNzhnWU4xcCtDWkJnMlpVV0RJYWMKLS0tIGFPYlZoZnMyS1FreVRjQldhZnVq\nU3piYUQ3MEtBQWczdnBCVnh0cWxzRUkKx0saDEVKWI+IVgU04YQSryVo4MR6xHMp\n+VR0/PxDGYqQYHpFwc1AktdAiPEvZOwTgzrvTE9wySgtSCPJjT1LjA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2SXlGMlVINFV3K0pFSjI0\nVHRwdjRmQmU1a0o5bVNPMUZab3BTMU9TT1ZRCnJEZWNhZmVUUzZhOG9wRlcrbGxN\nS3VMdWNMaS9zQlE2bEI4bkxMMHhNSW8KLS0tIGxRWU1rQ1MyYk00ZzhZa0pBdFFw\nMHNxbklXM1R5MkZGSEJ0MkpzVmpxWlEKHDBJVh6m5H+MbUwO52SnfXHbQfVNlwRT\ndgM7Wiv8ply4s9f1jPl3dkge+W6CHw75v1gvEzQ0tAOssQ+qf6wg4Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5aW1BVUU0Y1U1by9Ddnpz\ncFBYaWNIQ3ZJbVZ4QzVkMTlyOERzdGlGU1NVCkt5T3dDUUlnRlhlUmRlVGd6aSs4\naGRFRE5NN3FML0tXQmdYZ0p4NWpOMDQKLS0tIHNjN3VRL1E5Y05RbzhGUmZ3d2t3\najJ4Q2VMN1BVN0VacGtuM1ExRFExRDAKQrWnGKtXXamSfCASE1zSvwvC+gPdcYxB\nrMhOcW5HdCXVZkvO59ltiCLJd7b5H7o6AUMK1uMOoT419Mx28UZ3LA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_lastmodified=2026-04-02T11:05:34Z -sops_mac=ENC[AES256_GCM,data:lg4QHKFbldLKvhrhW2eEK3CuPjkk2wjwfcxX4KteRi3Jk4CXhWQGLPqEI++TwmOCjngYl0CfkRncDCzkQ1fWqweXl0o4zXo6AzkLmDoNYrTKhxAnb44t4q+LNCmi8aAlNvUXYhEyMBveL2MUgBYRNiJZAsnQbBgLubQjbydcGMI=,iv:BwdF4hd2bJ2pwNC5VieNkIMw6850r42ATh8CFbJRZ2M=,tag:3KOGg69IBt/9iNFcrP0ZeQ==,type:str] +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZT21tTFYwVENDdG5vMG1B\nTHlyTFBsV2RvWXVQaFpsU1lQeFROMXVmSEdrCmI5bHg5VURScytsQTd2R281d3lR\nVUt1YTViandFbGZwZFZyTWhob1JFdHMKLS0tIDUxaGJsNjVWUkR0bmZaUGsxSnRw\nS2E2WlFHc1NBT012MURzTW5zYXFxNFEKVQ8SVvRlpoJuTKdp5Q0cmAo8ftquPrib\nBeCg3X0X5i2rKS+nRy90BidwYpPTZ2plB8NIK/nfJxHWOzYi8C+Qhw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s +sops_lastmodified=2026-04-02T18:55:19Z +sops_mac=ENC[AES256_GCM,data:RgUAZSuk30t5UIps6cb+xF5xWBhcBt+pimxkye3J8hovDQBAkALX86hB+ZjfZoNS3rbIrwQnQdhuMhxeAYiyYpObr9V6b8slFJLGrpRWLgmbnrZHaiM8PDRxueWgYmPujbBqXNeUyqAJH2Zem3xF5sd0wPcel9VnozOLYKqHTbo=,iv:n71D4PCSG9lbGHHgEGWFFqalBMSRcrQhL6l+mUVD4bI=,tag:7FNgCawYiTuZLz7HWbwvIg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc new file mode 100644 index 0000000000..e02b30bb84 --- /dev/null +++ b/infra/.env.sandbox.enc @@ -0,0 +1,53 @@ +#ENC[AES256_GCM,data:wQkMlWpXCYYMEaRDmPdg3RA/OvC0cDBFaJedPxrpNwM6,iv:IsHL5Sjbj401sFavTanuJX7h+H+OEoa2GLSNTzsNUDw=,tag:EDeMEYS00A4qAyJXh77Kug==,type:comment] +#ENC[AES256_GCM,data:UqliiAya0xIAQedGpGEhynI4sIJeXALcdFveqzu4KiZFwwqi/gESKXNr5x92Xerr7OEWYU2KtLJMWCQ=,iv:T0YcqZQ+qvTSUqje944+5KpyCOBoE7dMj1aT9jK2DPc=,tag:gVaM4+n8jZKd6v2cqtXNsA==,type:comment] +#ENC[AES256_GCM,data:kABkuoRP4sgcmFwQPfq+xezHOXdUpfX7YLQYgfV0332LH5+rlqDt4+f8N5NoDZAe+2yw8ISE+Out4Ox6EcDci/AyuQ==,iv:X8J7TqVOwi5lgpvx3YeTBMZDJmJYS9GwXlrbLR/OoAo=,tag:hDqXJ63chspbuyQ7WVMiFg==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:iDZwrHQu3wGADdT1kSwCWk1mZQ==,iv:NFA9KSxHFFMZuvosjNpIVyvXIZtcGX5xhJgHMn67TV4=,tag:fo/Jssd/o/1cVede1lFnOQ==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:y1Gs3NTeUagfhsqwkWI6h3cjZm5Z95YnZlDA,iv:wI3OyMWXXZSvBfsKHxR+hqce9D2adWDSH6VBtrv2MMM=,tag:MTVvRMELsg5jwRcKU0s7pQ==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:/vX4U7evT1E=,iv:TZZvK7a+f21T387KKXDxqm+rPSQbKnTJPN5tYxnWqu8=,tag:lAlNCQ5NkBX2ftiu/jY3ew==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:H9icw27sMmQ=,iv:9GYuSe1L2EnTzFoZul4tQlnEHHq593f9DtExBLrDBtQ=,tag:ZiFtjaSkvGJuM08dfBm8yA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:Thed3EFH,iv:PWCQLzbweeeEpVEjNtTKpJcaJBemR2iNLadVFq3A7SY=,tag:JEuwpxYWtIUq6xAExOsM1g==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:1yo00zv51841+lIUhZdWSLBnS47JUkUiwrmDs8SmpXFfwAqNPpEQ7rsC/dv0f8ABwBx4PwOHjddXfq3SwgYZloJdxV/SLBuipw==,iv:Zj6E4p2/v9BUErCyR1GQsYE0LjX4UEx0/jhrtO5/B8I=,tag:PFXkGdKChLevrJfSj4pK8g==,type:str] +PGHOST=ENC[AES256_GCM,data:Mt8=,iv:UzF0ZoKorb+ySIm1mXzPB3M8w/4+dFoz3Kdlo7jakO4=,tag:RG5HHkov+5dRVbxVoy2kIQ==,type:str] +PGPORT=ENC[AES256_GCM,data:xB3yFQ==,iv:0WVtRIRih1H8s7L4x4Io8v+9VaR633r9ut8x5UnCUHc=,tag:G1H1Us7puXaFFxgLLXehog==,type:str] +PGUSER=ENC[AES256_GCM,data:rHHuQdyqN3YBnY7iJDd0zQ==,iv:vxOVRAIdKBgVW0rG7qzREWPs5MizElfN0/AqMJjg5lk=,tag:2WnmBBmDN94EFHyEuoJwFA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:8I8DapRyDRmeAeXwY1clLndxUns=,iv:FVGsbYwGTOamMFAR0gY2nAqKUBFCEQMWnyPO++EAxZc=,tag:LDQv2CYObp1wtykR6qrrmA==,type:str] +PGDATABASE=ENC[AES256_GCM,data:bH0Qb18zEf2LeUdVo3w=,iv:7Upnx66ettzFGySADOuXGcQ1EeRosv9/URIc3RHEesk=,tag:bkD/aj8MSBHLJEDU/yzcIg==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:ePZxJrU=,iv:ClkDfCQnHlPoXHqmxF6UIvhiG8X4519HjniBAAxRNps=,tag:Bscl6TVztPo+Tu/gTQRsWw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:8lyQwx2Kc3dkvCJaNw==,iv:7y858vcAI3xYBrE1vBzIKLa5lhcor2Q14srqgjcgOFY=,tag:0gVKe8Xcy+A1vcxkEaS8Jw==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:ytqhDC/Dymr4WA4tew==,iv:/CrKs/8gL3oY01gi6dlIB2jNOiIZ00w+j6fCkaM6qjo=,tag:+nBoOIwqf1/HCzwsR64W1w==,type:str] +ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:DMraUkrh,iv:GXMwiplfSuXt48tBL5jG/dMoHRNBywOzWa2uF7WL6ec=,tag:tIcPK1s+60KJwv9/ocWDrQ==,type:str] +ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:IFoPcOcb3megcw4=,iv:Kq6zRXThjQL0mCO3/B5BeuQpJtadGQeHosCnU5axl4I=,tag:6fbMt+6ldYU6soUcGRbwQw==,type:str] +ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:HMxhbIoiZ4WlBO0=,iv:WW/dA7tffeanUEv4jtUI1qsnstNo1utAaF+R1vm+Efc=,tag:BpmHl3kkGVas2RQVJwNDZQ==,type:str] +ASSETS_REGION=ENC[AES256_GCM,data:0xv3/gsjjPsQ,iv:uVL9OlMoJ3FSgce5kh1JoReuJW0vuqt9WaHUkNS2+aU=,tag:lB9z6XS72UjeKIcBvXPaKg==,type:str] +ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:9immuxMwdiYobH8cVjxE7ZU=,iv:A+0XITtxze9nx7VsC/mp1dAS6FD7L/K0Fk2F132pyu0=,tag:I7/MXr+uKJeDsjE/KaRRwA==,type:str] +ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:dFtw7UKsUfJ5DN9qW9b/0tm0GPNcWT9b4VlMKlulrT1H+g==,iv:vtHmXQJyxBc4rLZ6RhBA7lHA1AvVa4ZzX7WxPIzsR+0=,tag:7QUYOisM88mvG4Jg8Wceew==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:yZFUvc8DNMd2P6zqNB1HLE8=,iv:/faQgOUyl51Jljj0yxeOfH8lNxOhQEQfF5c7BCHyqFs=,tag:PsTRQScMLffKtS4J+CTf1w==,type:str] +S3_REGION=ENC[AES256_GCM,data:EW+qAXElwVgz,iv:WxUSjYhXXK2yD02AFviiwb+DMPzWQVg8Q6JigGaBa84=,tag:iUsuCSpa9JV/OAXNkjaYNw==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:cZsXNQS47ON0pxq9BUPB/XVnFKjBovrm,iv:zCoEAxGvu7c7/lCERMhMDRVsxShcAjpIoGTndKxMvfM=,tag:a0t+pKnLlFn/FCE2eQ+2EA==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:Ye8x,iv:0vlogy8jO33CFn6yB4Klv42GEl8yhh37I0iinNiO5ww=,tag:3FDAurEcIf9yZRBjlPPGjw==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:TU9U,iv:eguxyrPZD6dddfewWZemAPmwfpJc08cu21mHky965Vs=,tag:EkCVeYq5bg24ZvbL8HLJRg==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:0FYB,iv:lN0gxHtglWA9kTEdQ7tqijTBR/cPv1ikCjhsrVQ8ayU=,tag:DOlLM/GWANhD170Fid2G2A==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:rr/w,iv:cJSdskUc3n65RIObcPqtDDVLZMASSd7uQhE796Sn8r8=,tag:yEFybDTzla/JRYzAcLUArQ==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:/S7r,iv:igzmz4XbjT+zy4xAmofwYEj7wUisl6jK9aRSd3oHX8E=,tag:79g/DcDmFOwqVUxoOD/1aw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:elEm,iv:qvRnJ4vjD1MIckiq//ShotqjK9U53n+yMK5G2wTQIl0=,tag:vQQXypwOXATC91Qz/Vaiow==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:2HZugiYSIbDCszsXljx5BqA=,iv:jglJYTXb4MjMH2aYS8/bRLNRqkeXLyEBlbjIaQpTta4=,tag:jNY4FOUICS6TXqS6aEXNEQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:tJJ9,iv:CVm+pxPoczTW/WBR8d1XIvohjDQ5Io0/wolUJVrdnX8=,tag:KAvW7aId60xzXUQLLAyhQg==,type:str] +API_KEY=ENC[AES256_GCM,data:CpYn,iv:X4Y/U3Hc7m+vA0NYtwHgRC6hG7SgCZ+JiHTkTDxuSvk=,tag:UNPAuAXs6uM2tISTvUF+Vw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLdnhGOEVHTFJVa2lWc3BJ\nMU1BTGF4K1ZrVVZna1MwZWFnTzIvbmYxWWljCmY2aXNtaW9xN0JCWWV6R0lzTFlv\nY1h3RU5YdDNLN1hjb25YMEN5aEZyZW8KLS0tIC9qK0x6WVRtbVlRZG9mcjBVNnJM\nc1BFQnRPWlNUMUFGUFVTOVhaREk3TWsKrFmcT1F07M5LqgQgJgfVIa5waj+1spJl\n7few3D2Cq9wRRtf9ZuJ79Sc4beCh0Bvva4mtuttW9+blCrhYSJQRSA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBL3ZDZE85UzhsVmgxNmFD\nZk9Bb1Vaem9BcVk0M1EzbTR1czJCOWp1Z2xRCnFCRXNiZkpkM2tVNitqTG8zKy9x\ncUhlMGFyUG8vbVFaV2wzMENtTkUzcFEKLS0tICtPWlBWVGlQNW1RSlByQmZzdWRX\naDdzM3hZUjBISUJmN3V0TE9WNUxaR1EKu3o0JrF0HBl70WpbURrRgcrqdMqNnk4+\nCNOg3w3FcVXLDDqpX+o7WUTC+x0BM18njBZZOrnHYt061AxuEw12bA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3Tm1FbXM1N0JJeis5YXBm\nVVp1RGVTQUQ5TXhqa1BqeHJhTlVEeXIwTXprCjg3Tk41UmwzMnJKaWpJbkZwZHJQ\nTUh6bTNjMTg2TTEvdDMyMUtVWHdPWkEKLS0tIHc5bTExaVZvTGpNbEtlck9iMlRJ\ndE9DeFZaa29Qa1NnZnlNWkFYZGJ1TG8KXeZWwVJm+GrGXnuiK7nn16GkiDi542Bs\nJS2BOXvGRWAtU8/uAbQ/EoPttrf2HbpvMMxrPZNXJE4uvzdsaDvPSA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxeDY1K1hFa3VJbUpKYlJU\nVS9RRUJubForTERKT0t5ZEsvbTVFaHFJcDBJCkdGb0Y4UEkwNWcyZkJKZEJsbmdH\nTDVVcVhrOTlqUzAwSHM0WG81bDF4UkUKLS0tIGNtMjBMaTh0U3hnNmhLTWlSN3JP\nYVcrY2lwUytCVlIxOXlSM2pjQzRtdEkKBBUNB8fmAbKGt9ESGb1bq3BhQtS7cvjI\neR4Pd7N2wWePYf+Bo0TRyU5hmOv/yJ+06hgdyhDNQnvgXwknitPEyg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDUitPZHNpWEt1UGsrYk14\nU3Foa1JvYll2YTRmK3ArTWtoZHFnMVV1NkFRCklvdWhOUWNOdUNUaGZKQm8wamFW\nbk9xN0tpbFNUYTRWbG9HTGw2ZWVML1UKLS0tIE9ZQXgreDBDa0poY2U1VEFGZlFI\nMHRjc1hJSnV3cnlOZUg5WVJicnJSOTQKGnG7VgD0uP/cZI6zf/M0JSg/4fdL8/W4\ndfXLEOMPw5KQRpOA6ombnm4M+RUeYil3eRxXvQyTUnrK2yVFK2LLzA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrUVFPd04rRFVUZ2NCWXdz\ncmoxczgybkhPd3dCamNFa2lvZ2gyZjhMcFZnClMwOGxmenZ1dzRLTGJ5SDVEa2hO\nVXppb3Z4R2dsZjlFRDV0cVZPaFhqL28KLS0tIHI3Q1RhWnN6YXJBdjduVGdsNWJl\nTFdQL1BMV1g1bWN1QTBNMjIrZHFoU3MKfdGU6T+QT+KTV/97Tpv8O7+xgEf7Wi7X\nHRnInfAJDhws1Bi2SfDcmzu5H4F99omJuVK2XN/E978IxGxHBxT/Lw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkUTNxRFlXbkdJZDA4MUJV\nRGZ4TWtVSDkvZFZLTHRWcEI1eXhlSkpqdkFvCjFVSFI0R2tjNkJ1MlkweUUyMDdz\nV0poUDhHdFExMVdKQ2hNWFF1ZGxwY3MKLS0tIHVxa2RwTTJrM3gwOU03TElhVzBs\namlpWlU3bk8vYTJwMkZMQTVPcmpiUlkK3QiDHmRoZzUc4EK893quus9qS4K8nOTt\n15uyLed80XG772j3KXu8iz+yZPVqGFnOUcZlK8AMYf+g1He6wim9lQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s +sops_lastmodified=2026-04-02T18:55:28Z +sops_mac=ENC[AES256_GCM,data:FkocA/nrhQMafwOeLkKbcvrMOG6vcdkvJ+DwMM8uErg2k++awvJHItrO1FtgXxDUZkxOBWtjvuUYVV4yg1qvOf7cuIcC/Zy1Hqxyn3D/lqwbjnCTF25rFZ01dwkJ7fofuyjnGeAZcmLfdWjRntOg0ZVb967Qke+Pl6ZwalnRKO4=,iv:tJ+JIIweLpkwl5D5q2xm0oWpbDn9t0CTNze4db+elTw=,tag:EVEywBkkaV7X/u+DIEmyFw==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.12.1 diff --git a/infra/.sops.yaml b/infra/.sops.yaml index 51f479ecc3..40eddb2aa2 100644 --- a/infra/.sops.yaml +++ b/infra/.sops.yaml @@ -14,3 +14,4 @@ creation_rules: - age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h - age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx - age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy + - age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s From 72fe9dee9d46d4e245a8164a1da99722adbf7c02 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 2 Apr 2026 20:58:01 +0200 Subject: [PATCH 016/153] fix: wait for rollouot --- .github/workflows/preview.yml | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 7aab542734..34e5e08a9a 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -119,7 +119,35 @@ jobs: sudo docker stack services "$STACK_NAME" sudo docker image prune -f - EOS + + # wait until rollout is complete and then clear cache + wait_rollout() { + echo "Beginning wait for rollout..." + svc="$1" + timeout="${2:-600}" + end=$((SECONDS+timeout)) + + while (( SECONDS < end )); do + desired="$(sudo docker service inspect "$svc" --format '{{.Spec.Mode.Replicated.Replicas}}' 2>/dev/null || echo "")" + running="$(sudo docker service ps "$svc" --filter desired-state=running --format '{{.CurrentState}}' 2>/dev/null | grep -c '^Running' || true)" + state="$(sudo docker service inspect "$svc" --format '{{if .UpdateStatus}}{{.UpdateStatus.State}}{{end}}' 2>/dev/null || echo "")" + echo " $svc: desired=$desired running=$running state=$state" + + if [[ -n "$desired" && "$running" == "$desired" ]] && { [[ -z "$state" ]] || [[ "$state" == "completed" ]]; }; then + echo " $svc rollout complete" + return 0 + fi + + sleep 5 + done + + echo "Rollout timeout for $svc" + return 1 + } + + wait_rollout $STACK_NAME 600 + + EOS - name: Teardown preview stack if: inputs.action == 'teardown' From a3b5b38f39206488eadbc57fd5e28fdcb0a67d5f Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 11:55:53 +0200 Subject: [PATCH 017/153] fix: don't replicate one off containers --- infra/stack.preview.yml | 5 +++++ infra/stack.yml | 1 + 2 files changed, 6 insertions(+) diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 7e924a8ff5..2b4d8068b5 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -1,4 +1,7 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/swarmlibs/dockerstack-schema/main/schema/dockerstack-spec.json + services: + proxy: image: ghcr.io/pubpub/caddy-sites:latest env_file: [.env] @@ -66,6 +69,7 @@ services: command: ["pnpm", "--filter", "core", "reset"] networks: [appnet] deploy: + mode: replicated-job replicas: 1 restart_policy: condition: on-failure @@ -135,6 +139,7 @@ services: /usr/bin/mc admin policy attach myminio readwrite --user "$${ASSETS_UPLOAD_KEY}";' networks: [appnet] deploy: + mode: replicated-job replicas: 1 restart_policy: condition: on-failure diff --git a/infra/stack.yml b/infra/stack.yml index b74df9d710..3e15f82f33 100644 --- a/infra/stack.yml +++ b/infra/stack.yml @@ -78,6 +78,7 @@ services: command: ['pnpm', '--filter', 'core', 'migrate-docker'] networks: [appnet] deploy: + mode: replicated-job replicas: 1 restart_policy: condition: on-failure From 7c71256ce9bcecd5f0435e61ac764386426c974e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 11:57:20 +0200 Subject: [PATCH 018/153] fix: use .env --- infra/stack.preview.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 2b4d8068b5..c75152a4a0 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -90,10 +90,7 @@ services: db: image: postgres:15 - environment: - POSTGRES_USER: preview - POSTGRES_PASSWORD: preview - POSTGRES_DB: preview + env_file: [.env] volumes: - pgdata:/var/lib/postgresql/data networks: [appnet] @@ -112,9 +109,7 @@ services: minio: image: minio/minio:latest - environment: - MINIO_ROOT_USER: minioadmin - MINIO_ROOT_PASSWORD: minioadmin + env_file: [.env] command: server --console-address ":9001" /data networks: [appnet] deploy: @@ -124,12 +119,7 @@ services: minio-init: image: minio/mc:latest - environment: - MINIO_ROOT_USER: minioadmin - MINIO_ROOT_PASSWORD: minioadmin - ASSETS_BUCKET_NAME: assets - ASSETS_UPLOAD_KEY: preview-key - ASSETS_UPLOAD_SECRET_KEY: preview-secret + env_file: [.env] entrypoint: > /bin/sh -c ' /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; From 095be876cda83ed1f859379e330b628f9109073e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 12:11:38 +0200 Subject: [PATCH 019/153] fix: update images --- infra/stack.preview.yml | 10 +++++----- infra/stack.yml | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index c75152a4a0..98f4dc8b6d 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -3,7 +3,7 @@ services: proxy: - image: ghcr.io/pubpub/caddy-sites:latest + image: caddy:latest env_file: [.env] volumes: - ./Caddyfile.preview:/etc/caddy/Caddyfile:ro @@ -25,7 +25,7 @@ services: condition: any platform: - image: ghcr.io/pubpub/platform:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform:${IMAGE_TAG} env_file: [.env] environment: HOSTNAME: "0.0.0.0" @@ -52,7 +52,7 @@ services: condition: on-failure platform-jobs: - image: ghcr.io/pubpub/platform-jobs:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform-jobs:${IMAGE_TAG} env_file: [.env] environment: NODE_ENV: production @@ -64,7 +64,7 @@ services: condition: on-failure platform-migrations: - image: ghcr.io/pubpub/platform-migrations:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform-migrations:${IMAGE_TAG} env_file: [.env] command: ["pnpm", "--filter", "core", "reset"] networks: [appnet] @@ -76,7 +76,7 @@ services: max_attempts: 3 site-builder: - image: ghcr.io/pubpub/platform-site-builder:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} env_file: [.env] environment: NODE_ENV: production diff --git a/infra/stack.yml b/infra/stack.yml index 3e15f82f33..a74b037ee0 100644 --- a/infra/stack.yml +++ b/infra/stack.yml @@ -1,6 +1,6 @@ services: proxy: - image: ghcr.io/pubpub/caddy-sites:latest + image: ghcr.io/knowledgefutures/caddy-sites:latest env_file: [.env] ports: - target: 80 @@ -22,7 +22,7 @@ services: condition: any platform: - image: ghcr.io/pubpub/platform:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform:${IMAGE_TAG} env_file: [.env] environment: HOSTNAME: '0.0.0.0' @@ -56,7 +56,7 @@ services: condition: on-failure platform-jobs: - image: ghcr.io/pubpub/platform-jobs:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform-jobs:${IMAGE_TAG} env_file: [.env] environment: NODE_ENV: production @@ -73,7 +73,7 @@ services: condition: on-failure platform-migrations: - image: ghcr.io/pubpub/platform-migrations:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform-migrations:${IMAGE_TAG} env_file: [.env] command: ['pnpm', '--filter', 'core', 'migrate-docker'] networks: [appnet] @@ -85,7 +85,7 @@ services: max_attempts: 3 site-builder: - image: ghcr.io/pubpub/platform-site-builder:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} env_file: [.env] environment: NODE_ENV: production From 1dbff9beb7ecdfe74804e1b3a93fb01666262d21 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 12:20:03 +0200 Subject: [PATCH 020/153] fix: don't use env vars in env --- infra/.env.preview.enc | 88 ++++++++++++++++++++--------------------- infra/stack.preview.yml | 4 +- 2 files changed, 47 insertions(+), 45 deletions(-) diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index 9d0815896f..b54e63e378 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,53 +1,53 @@ -#ENC[AES256_GCM,data:ixzpn8JBsHx4VCKGoG/ukzt+Hw5xfQWgxgm+37CXzzgz,iv:iPyyMaa5t3ZudyI2Ur+6snXjxIj9/PJtxobZCrKi9uU=,tag:WORvsoa83IYbqNw63qp3wA==,type:comment] -#ENC[AES256_GCM,data:nQYzZC0dQM1k1Vigumi/LqtF+QWNq1VNGXlBRMtlwkiGYm0p6A6RGLhNSn3V1/niAkIfQxIv/DDKpTo=,iv:HwPO7nIo715rKHIv3XIhOM43nmQVMWyZlqtewji9INc=,tag:sZfa6jwlf0Bad6DjuT3qHA==,type:comment] -#ENC[AES256_GCM,data:q5JSDf5A1Z8wo2V9GAWbeyunBkYp+fy9a2vY6YHKR6Tu1lj7VZajOFa6ZOOkzUrM2/GvFF+b0/WhxZZ/m46xPAM6bg==,iv:b+0jiG9VHfVU8i2743psbuCJSR8oRHa2Tr56arepDvE=,tag:Iy290T1CJf8VdF9tr+nZ5g==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:x1bRTjXLP84FSvgvRa9vkPPH6nW/U31HOTurQxUPL4g=,iv:E1AToe2dW9uwUVQ7Pu+3OrsAzQzjcMx7/s8TVadbfGY=,tag:Ukrrd4UeaDoV4NF5VVcwjw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:/0B1/xKMBsAb9X7MSQYMmnSPAhjZ9MDzop2CA2zc8lj96T7muyaI5w==,iv:xO3gTN+6l+rVKB4zwUZcJj+x5V6wXVO7HGoXbKn2BFU=,tag:T25RAIEzgs6qf4o6S8eJTw==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:T5i9yg94+xU=,iv:nzYa2sLEfmN1P5AmdOAsI364NyfNwAz9L7MjjSczsHk=,tag:6is9latZeE0J7WONuQ13dg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:yRvHPXg5e9c=,iv:FfINJ/IJGMtaxazN/QX2tdR+e18GJpCCPqENd/IPE5c=,tag:YoYl6ytxw+OIGiSC0om/qg==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:HawR8ZwLaQ==,iv:vfqumT5fR7fhAN7ykCSAwihE2cCubzB/ht12JFCe9To=,tag:jxT8BcqrRjVk3yHetHdQ2g==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:uATftDIHp9gZbY7A4wqrgl2evZrTV9EhscnVlYu8Oj+fpEsRDEPG6pEu5tR9+ZX3pSDDGo/JM9leOq4baFGoaGopgew3DkxGBg==,iv:WCs3OUU4QFFst0OWu8MqcrODqBCoPLtNGJpxNxn/WII=,tag:GMu/XEpMNzkisdxaSdDjVw==,type:str] -PGHOST=ENC[AES256_GCM,data:2GY=,iv:ip1EFGbS8Ffg775N6osnQex/2u5QK1YxRPepUHSrMvk=,tag:WjPC9OB0Fo32jYGTiHathw==,type:str] -PGPORT=ENC[AES256_GCM,data:m+NGuw==,iv:Ux+J+FkEZXrS+ti2v/P7/dRlzEGsRoQSKd+nLKOD2L4=,tag:nx+XmVbxPxcKA3zdDR6KHA==,type:str] -PGUSER=ENC[AES256_GCM,data:erlvtoWGDR4l8dZIBorIsg==,iv:m+0BeGUe4ZqsEFG5AlWhgLt36Wz6oY/7se24Qme3Bt8=,tag:lYjlXKlCZUho5Zp8Lu/6zA==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:7O3i0lQG0mFTDDPrl2GVxHO/flg=,iv:pFY9BS91KjKRb9VAzLmFxqQyogG4BGQuRyBR/Ce4cWs=,tag:V8smg5nFRhB9szHaYOmmQQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:8pjgs5BVUjfuDGnI54s=,iv:4i3GRXd/P13PISZb29yYhMT/2yuPy5rObkozDGAIJ2A=,tag:wKWznQ2OR7U6uiZgTDuRow==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:BcwXYIE=,iv:tSsrSPyuXb6+tAkBxvEm3udWE0V92lLA6u3o0+Dciyk=,tag:YOLWOc76QAR4Y+d1YYpm+w==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:5tjr3+awwjmzJSLq0g==,iv:apBFAR2byKFZ8sjy/lkWwUoXC1rmZv9KrZKzeKrlklw=,tag:k1pWu9WcExsgzCPZbuFN+w==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:s+n9950So0B8kOG5HA==,iv:SASe+A7pDEJn6eJg0v2UnL+bcshuelW+PSixKddjpak=,tag:BrxG8+C7NxTI7RPja9wajw==,type:str] -ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:rHdZAhW0EaqlOSEvJYM=,iv:YFFvQic+D1w3tIMLn3PHuLlB9/MJqTh2P4LHNlXGgVg=,tag:4cp/3EwXvY7HRxz3Lo1Odw==,type:str] -ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:ieCNIBMR61B0rbc=,iv:pd6mHtTMPgFBZ6io5qg3WM9Ffon9GO0lYzKU1Y+8rrg=,tag:V0F+egT/mSWrKmbZEsGlDQ==,type:str] -ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:GLaPa1XdXytkN9Q=,iv:EhzgHGzR/2ni1bG6l5Ium1w7PfiCM45e5mMufwHJ3eQ=,tag:VU5S0i/xalLFIgy0bMk9kw==,type:str] -ASSETS_REGION=ENC[AES256_GCM,data:XUTDDjoeY1N2,iv:2DXZLpVFo5OqkazWsYGSnrGa2WiufFLOPhTsUV1GTGo=,tag:GSPfWoZdh7//8ducoKGdgg==,type:str] -ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:pO4NHx5m6hKEfzyhJlVo8X4=,iv:2JkwOMGaZuk/8RqZRh3cZDgGQFTk5w2UHj8uFWdvKpY=,tag:SvJGMYN1WuqKpGiTh13z7g==,type:str] -ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:m4T89W+moHu1VNMPgiho668KozrLU4SkVt1qu2H2SnZ9GuY3oQFoS3+2WgLsfCw=,iv:+0MRqXhd7cu3ZAaKjJx37COMnOoRIrP4fjaZUoHksG0=,tag:EBdEyncf/oWGlx+Hn4+usw==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:GUjQ3FWK1KdnBav4kmuRd9E=,iv:wCRB+Lwx+QBnJytax7OrOD6hDBwfGu6ZwoqRVZQVpsE=,tag:i+P28kG74swa9jDvf5DIqQ==,type:str] -S3_REGION=ENC[AES256_GCM,data:1inzcz2Rm3L7,iv:ZRNBoNrumXyi/MTCHxaG3rEv8PpVF5+lT+87W5VT2J4=,tag:J2HaayclKy/IgZUccpMe4Q==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:8gDPn0h5nz4gnXb9tP3yDD2VUGNlJaNN,iv:DsHRT/Q6Ud/0kzLxLELBM7C2MNxbrmeSg22UwB3eMPI=,tag:JgtTJgIpaNKm1iVcuCEigA==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:qvts,iv:iFd5uIjDfKQYmQFEeIJM7WvnycKdDDOW9CskR/flApk=,tag:MTQBZqyTAq6Ww3pILR+fGg==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:4iK2,iv:TPX3ioWPf86USPpgYd+elxHcPlAXDeA2tj9xE2xH1Z0=,tag:K42hjwvbmBfVYMTXjfaQrw==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:5De1,iv:o6HECjWyCKIlsS/FN3yHHw+0a9LTkTF/WG1yWbJLtVQ=,tag:bVsqjuaxG/gE2JxPKT8tgQ==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:wNNc,iv:1NiQiHLMEoPlRpy+qlicjQmqSIjs+bDDUOxojr0q/38=,tag:gKldNjaSstVC82BzWdKcDw==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:Fcpm,iv:636evj3kc+IJhV4u6g969UlI9bFjateayohZIulnzJo=,tag:OyMjeEd4z65SwdlJrqUifg==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:YVJm,iv:SGN7zmLxgGJ981KKHJxDG6QPr04rpLcymzMae95yIFA=,tag:Z8gZ4lJItuOm8ozghZxq3g==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:VYSYOkhFpWZc/fAnTDIFvrfF,iv:+FM6fir/Rsy1QrwV7KmxL1/S4qyoFQNLJ4nUH5moCBo=,tag:S2OK5VNjcDNh8XxrAXXCKw==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:83Ol,iv:HhT+b/6XLiLeskgDuOWpueXBCJb5cCbdn/oy5jjA0Ho=,tag:xX8TDYQbB2hPWlQ5+YdLGA==,type:str] -API_KEY=ENC[AES256_GCM,data:pO6p,iv:liz9TPYSA3KcYuUkw23g3OJsD0MIkT1kdC7zsN5GLFU=,tag:tO3N9AfhV79xFKWnHzUGyA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3N0FndHRjZmQrNWZUMUdF\nd0s1aE82eWI3QngydnNhSkZ2RGtIOVdNTjNRClV6UHp1MDYyZWlEcGEydGM3cm5u\nOVlnV29TdnEzMWVkV0tsS2Z2bDlTdE0KLS0tIFNVUEpCd3ZnR3NucWVVMDBXU1l4\nK1BYNzdxQ1pZR2FFMk0reTdCalRFaVkKJTul7h36wCloMur46INKkCqjLp3MdF45\nduT823QpYgvrcsO9vzyek3V1/5Y4iZ5/vsY/tCKhBXKloElXmuMzdg==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:nidgqMhF6BPpOAkjybDjyID3Jk+ruJ0tzTP95NR/YSDr,iv:vMZEEnhdVR9GNULBaxMCO7pdmYKqlool0CSuOQCE9yo=,tag:VUPmLscJ4GugwPMoSJJOgQ==,type:comment] +#ENC[AES256_GCM,data:iyxd17y6Gfg3Rk5rIWFqKC9ymy8wfdybz5Qu2YPniSEy/xSdFVkNN64t3pFbQ4WbRrcWFW1TIVu202Y=,iv:6VCYUtnyxvtdy5s1pNRmbzZbE963e2JZXKkMP93AGsU=,tag:o+KV24A8e+VIeW5rQIx07Q==,type:comment] +#ENC[AES256_GCM,data:zrYTBtr23insJhc0cxCpSpnYLQcbiDlcG66mN339swoLuh18WehqdLU1CSncNcnzpZEKmeuTH647Kz737AvycbBd8w==,iv:M8D9kzlCHkv7fevW13cbOP5i+QKNpvo8sbYe28U175Q=,tag:UkBQg7psnnJSNkWWr0sjVA==,type:comment] +#ENC[AES256_GCM,data:Qu91fCDWhz17mbOOuVnbcQ2WaYX/HSPyyt89hmaO2aq7uRm0oNh6IiTzdKAxXRgGZQ==,iv:Zt6yhJaPOVhJUvzMuca0bA8FF3vNFrYFqukjFsNqoNU=,tag:umXp+S+sRUGTo8jjk0apdA==,type:comment] +#ENC[AES256_GCM,data:DzDLZhFRMXxWrEdUuC+ByAbcB/LS0oOuO98QUmEydk97Nol5GnTQlZL83RFNP+ZXBHhLVg==,iv:0yBbu0BYoJeKcVgtEbyDVkqAcnz1B2O8n3oBYOcXnbY=,tag:JJGzlEuMKv/A53xJi+jlRw==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:edyPS/UuBGk=,iv:Ig7o0WjEbvj/PmIL1GH8N1pcV9B/EhH7Lbjg88MAXMc=,tag:4CLTcQWrRZdpOZHXdMGLrw==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:hY1Fed8D8NQ=,iv:vj+YUqJ0OWHwg8bFIvfDwC5A1jQ9MiL1dNbWQanxA2k=,tag:+enO5GiEuqYFuXV5D8AqPA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:Ne0ZLOnF6Q==,iv:bw7t5um/M5ua2a/pNEy9/sYXe7s1HELp/6HqMNNcrhg=,tag:yngVsBi77evrIWXkLLNyJw==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:+56qlymhMVMFCUqbz4LT5PVuvcfpK+Id3a+/XVPs63TDzlJkO4o4voiE6FIaRA==,iv:E2qbXcRrU1ybOrOjm7dsP7YODeO9KTJaRF4OFdTAZUo=,tag:nveUbdReIYKw2Wd3r3pm/Q==,type:str] +PGHOST=ENC[AES256_GCM,data:298=,iv:uDnWvQEQOp5H6AEvBE+Tq+mj1ArazT4ZQpKO62G9gnU=,tag:/w68jrEyc2luumAEZ52DYg==,type:str] +PGPORT=ENC[AES256_GCM,data:Y94+3w==,iv:qY4d8lhQX52hwru3zaA+A8MG+m/ytFbS33GAYCir7lU=,tag:ETxNdnqZGdALfYZrvBaw5A==,type:str] +PGUSER=ENC[AES256_GCM,data:xkGh3t6J7f8=,iv:NGd8aVC0+oucIhR7OZudQrRzkjlw+sdRcok2fjVt0hU=,tag:ZADkDIN/Cp/HV8p4uDZyrw==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:14Gen0lNZQQ=,iv:S03hq+IBEhCk1Ca5Y2SHNPAZiyGcwlIto1mn3+uH34Y=,tag:Z3//YEGsR+VzV4bB7779iw==,type:str] +PGDATABASE=ENC[AES256_GCM,data:mG/2eH1mBw==,iv:5a/fWA5vkPRTmjHheuyca2y9bzY9Gslpm167eHhcDm8=,tag:NQfpX0JmGWyG1zZmpyjLkA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:MTnv2DA=,iv:NGo+0LzXkwlt6dymj9VRLnPEtYXHqZNk4tUDU7uaUMg=,tag:5eoBdPAHIk0OQWB9+nLiAA==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:aWdSWwbHnD4pNNyMuQ==,iv:VoqB1E6WFxhPny+Y852E75jFflGXjvpVRVqNHTIzBek=,tag:s88CasPCB/x82S6EE1jUyQ==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:JNoM6CwnYq4/a3j4Dw==,iv:FgzTPfavvDPOz/xTIRYqo66EKDPwCX+nHQcOvRPyKBw=,tag:wttQ4f4tRbHVF8p6IZe3Tw==,type:str] +ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:EOFuwF2385RW6bCbDf8=,iv:In2u9+UycnY66GVO/7LhQMad3wBE4PRksfiMDI3c7LI=,tag:xR7J05fI5OBM35bYpNeEsQ==,type:str] +ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:N4wK3CkgdjtQVSk=,iv:c6WxlOBCMWSVYY6GNRpQ5tzJWnP8pRf+n6MJ8nY5ADg=,tag:byB7Y9WEWk2ybAHGtSEd4A==,type:str] +ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:d5CDPp0kCTypKWE=,iv:+40LcVyf95aZu9b2MQZuRxB4N8fej3Ry/U1LtS2flqQ=,tag:jjYp8gmml1UtCeyCc6JSGA==,type:str] +ASSETS_REGION=ENC[AES256_GCM,data:0i+m6S8yS6Kt,iv:XaPxNxCegxPr4RFoqAmXJYuuF4BWxKJf8lJOBmmL0n4=,tag:M37uTRNktpK61fNm+20k0w==,type:str] +ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:BT26SR8XeWZi3/5Z6M28wyw=,iv:MwWYvcLuANIFoQoBb/9qY0VT2mX7wQUeZ7e6XSLknd0=,tag:sb1GKWqh0fINwgfN9lGsxA==,type:str] +#ENC[AES256_GCM,data:3qx8dRHgjA0Udb10GcGi1QUatiVRCeRqFzlXv4yLN948DElPcw+OvQHTg60y8CB+MIPQ5YvxgI6mKbxMDL78WS+wI3oGpHA=,iv:mdENMvhkmc2cM6fhSnYkbX+V7V8lXNePS3EEUyj9IDU=,tag:S98fTQo8QxdwAqjfnsjEig==,type:comment] +S3_ENDPOINT=ENC[AES256_GCM,data:9Tp5RS5cjO0Dkgjdas8dAF8=,iv:Keg2C6EE6DkCQYb3kjfOEhXiOOcb8bZOcVM68Te5BOY=,tag:qP8k0wTIHi+ojF6BRskUpw==,type:str] +S3_REGION=ENC[AES256_GCM,data:azBHBE28sj1P,iv:ad2DndTnrG6kWuuBALqNSL5zh+yYKFVwegMZcw6OvCE=,tag:KS9DMy2EM2lwzQi9u2atZw==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:aLr+wDnJxNAqPt0H21jee/NDxY892IdV,iv:jh+oFIB+xVCvjq1hxlNURglDG7GKmbEldbL68yqlJUc=,tag:ISFJuSjAX8T1aR3t039xRA==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:evI4,iv:oKxHDI58Lpr+9h29H1hs5HMEvDrHAqNS6ZWQFTiTKqI=,tag:TELsFmnewcdX9wJM7yYZcw==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:d6yI,iv:d8WViy1XCNcnNJX7amkTWNLfDFg7lsdoip7vqrQvJB0=,tag:u5zbmoJ5JUpY4V+OMBtXNQ==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:FdGM,iv:QWUsPJJ4WvA2rXyA4bXsQVtCcSYLYoepaRPGt/td8Tk=,tag:hnX58fNtnPCiatgaq950pQ==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:tl/7,iv:qMgwLCKffCnwt8CcyAWpbAd0Z5aNCEpqP9ewWg2RDW8=,tag:FvcsrI+x24OdFwYw8QKAqw==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:YQPk,iv:YaS2mgQSW14lihgNTjaK8ll/7mpxja4Wm5oOpARPN9g=,tag:IBv4sYKLRLGsogvCEK3gpA==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:Co9X,iv:gt4oJT7yUdGtKH6odeiMjA1GM3nBlLLq7+eXVOOrRjk=,tag:ZLMmerHqj9Sk+yOyOi0UPg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:mgGMnpFqu3oBJ/5bV9ECVw1/,iv:9XqB0uULPa1PiW8muEX1i2u+Vu1B52q28U0giHpBeck=,tag:BDOEkreoRF1J3MfbvTj2FQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:qckp,iv:4ITYPDkGlkL8N3AIebAnWNzya5egljfJegi19YRFKzE=,tag:3d4dQ/7B9XkTIOroLCdo7A==,type:str] +API_KEY=ENC[AES256_GCM,data:fzdU,iv:Fs+bbbM/GRoVLR86rSnxlOlVKCOi/h7njCo1+nrXzpc=,tag:KXp+CO7ai8c8jjfVooLTVg==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlZzFvR05QcFJtM1ZFdU1M\nemNXdHkvYys3ZTdyRTNpUGtET2duRE9pUTNnClFqNHYzYkxiRG4vYWJSU0ZkcC9H\nUFpxY2dPdnU1WVlCeFRjL2k3ZGxXa3MKLS0tIEtpN1BEMkFIOW5ZVXpxTGprZ0Zl\nR0drNmpSZXBGb3hEblpoODB0c3gydGcKNn+ecg9qgAGyEbOU4gtnT39VDzZvT4ak\nfnueK5RXVY50Ly8bnoj9WTZRyr02AKq/ozxgRWPDFa5eMEDVcXqyLw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByUVVXWmpvL3B6enZ3SFRi\naFd5UWpJSUdTZFJTOE9JYy8yM1cyZWduRkRRCnlYdlNidEVEbWFNUlBRK0F1c2Qz\nblJXUlpDTWJYUFNxNGtDSWl2SzJpek0KLS0tIFdVUGd2SFMyTmVIanhtTVNGb0Jn\ndUFydXdSb3hHa1JydEtpaFplZXRJbVEKAEwjY12xKIdHvuxJGC4S7dAzkH/JcJsh\ndx3Te//BLDN+8lIv5SsYSf6L/pQXLCV0z1ztvARvYf3LfJyg5xsx1Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBUThtcHpiN0JsSFBla1RB\nL3hiU3g2cDdkdXorRGJ1QVpEdGFRZDcrdTA0CmE3K2psTEd6MTVPdVN0RHpXem05\naC9Nb0dEMFNBK2JPNFdTMCs5WksvUFEKLS0tIGJTaWh5NklScm4wT2ljeGJYenFh\nMUpOTmpFbG9Sa3c4OTVvZ2svdm11OHMKCdmF8SCgwGBXIqOZMF5tlqgz17sOKzSM\nfp/M2ozHYQ8xP8P8ybhnP1iLc2nB/1ck26uSqalkfzjOPu/s4l3AOg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqT1hzS0U2KzVTMldsVkFB\neXM1WFJQTUZaTStWdkt6UWtCbVlKVjhHS1NzCmtCVTZNRkF2ci9icjRsdzVoSldH\nZ0tWMlQraHByVm96RXh0TjE5MUFVQU0KLS0tIEhDaE9EaVdlTFVUR3pwWE9lZEs3\nSWxHQXVYMCtZRzVnbklEbEJiMkcrSjQKTBDADGXiDaOPsehaOKf3X7tXC0N+owJ+\nh5aT/IEkvd7hb6QocKxNpeOCWsdigbcCAFNTdckzwrdOkZsl3ZXsQA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzc3h6ZDZuby9hZDhNcVE0\nakRwWjJnVVdWRDFrM29KaWJCTi80dGhrNVU4CmFxeWpiTGY2aFYxaDE3cHNhaU9m\ndWZORmJEVWY0ZGFXZndicENkems1bXMKLS0tIEhsNVhlamNhNTVZSVJrZVhOZ3cx\nalo5K0QvTjdBSXhtK2kvNVI5R2FjY0EKqzHsDR5RplJN5ci0eexxho+QV8Vt+vpY\nO20x9wArHYnV5amSBKeQm7JhHeZulgC9+fiA8o3T7qNCMRSkH6R3nw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5WTJsYXZlcXhRaFBxZlRy\nN1J0cENQa09EWDgrQi9ucGdDV1NmbnFIMVJRCmpGSzdHRHpkVmd4SWYrMFB2dTJx\na3NyZmRucDZraTRnV1NvM01TNWdMNncKLS0tIDltNzluSEMzKzN4YTlQbzhoejAw\nS1RCN29aVGZsaDhjTjhwS2JidFlvSUkKlNSRT/TRo4KKlgBjFF9/HWJRaktV/UVd\nmdXiqVtOhho/Yy4kWEZLQRxqDt7YrDH5ECUgNGbKcyDZQQvfaY4uWQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1azAwRE9tend1bVdPSTZ4\nNkFkd0N5TURBL2Rma1hCU0ZKRGdJNThZZFZzCmZwQmtuN0ZmSnl2cG40TVBFK0tP\naUZsU0hYWU9NdUMzMi8xZGhwMTFhdXcKLS0tIElPVEc4cW0vL3lMekhrUStLTXZQ\nUG1rbk9XWkNQMVkzUkpqZlpNeUIwS2MKR7Vm+f4uwJkSktJNYsyZF4PZFVN/DYIn\nQDtnazxr8ZFTH1VVNn61rHYsQmlxtHGg9SmPbndzFr2bo4tsXzacYA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLZ2NTaTB1OVc1UWtBSzNO\nb2oxcFF2SFN1YyswRzYweDJFWDdKUUMzeWhFCkdyUE9HZE1xQWtDRlBCTXlrLzBJ\nMzIyNzhnWU4xcCtDWkJnMlpVV0RJYWMKLS0tIGFPYlZoZnMyS1FreVRjQldhZnVq\nU3piYUQ3MEtBQWczdnBCVnh0cWxzRUkKx0saDEVKWI+IVgU04YQSryVo4MR6xHMp\n+VR0/PxDGYqQYHpFwc1AktdAiPEvZOwTgzrvTE9wySgtSCPJjT1LjA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByMy9QcUhtZkg3dE1Tc21U\nU1pOMnZKTEloZnRTVFE5bWVTZUtTTkpNaG5FCjNoL2J5VGFIQk5XdkNhRjVTR3Qz\nY3diK1duSm9NbXRjUEovZW1mYUtGbnMKLS0tIFVJM1d2OE9GS2VPNTdwRFRkcWJz\nbk1uZE9ZYkl4ampzLzJ0NjVxTW15UEkKSPbbPfAw4Bv2GjXYCXpQWemuYel3BmFH\nStn+foFMzwqB429gsmvy2U7CoisQLE7manKIlnetjnEOzV6aoclIEg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5aW1BVUU0Y1U1by9Ddnpz\ncFBYaWNIQ3ZJbVZ4QzVkMTlyOERzdGlGU1NVCkt5T3dDUUlnRlhlUmRlVGd6aSs4\naGRFRE5NN3FML0tXQmdYZ0p4NWpOMDQKLS0tIHNjN3VRL1E5Y05RbzhGUmZ3d2t3\najJ4Q2VMN1BVN0VacGtuM1ExRFExRDAKQrWnGKtXXamSfCASE1zSvwvC+gPdcYxB\nrMhOcW5HdCXVZkvO59ltiCLJd7b5H7o6AUMK1uMOoT419Mx28UZ3LA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhN1J0cFdxU3F0MmxlYjNm\nRXIwRlVSZU8xQUFWbTVBR2dYZjJNUm9LOFRVClMzdGZXa2VFZGVJU2VFWEREWWMz\nRUpGVzhEa2FDRW9PaG84OCtITVZWaG8KLS0tIDNuaWF3Sy9KRU03R3JMbkV1VkhU\ndWhnNEpFbk5IdDdiQUZTeWFFL1Vjak0KDv+ZaTh5ZB5sBQS+2osR/ZTaHILW43e4\nRgbKXOQRkW8kzeXHaBuYdjGOxf5oIEyfuJSo9RrheNhaWeoogOTt8g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZT21tTFYwVENDdG5vMG1B\nTHlyTFBsV2RvWXVQaFpsU1lQeFROMXVmSEdrCmI5bHg5VURScytsQTd2R281d3lR\nVUt1YTViandFbGZwZFZyTWhob1JFdHMKLS0tIDUxaGJsNjVWUkR0bmZaUGsxSnRw\nS2E2WlFHc1NBT012MURzTW5zYXFxNFEKVQ8SVvRlpoJuTKdp5Q0cmAo8ftquPrib\nBeCg3X0X5i2rKS+nRy90BidwYpPTZ2plB8NIK/nfJxHWOzYi8C+Qhw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBITkNsdFBnOTc3UHFnemVm\nSnlYQSttSEtlZWRmOTVwTE1xMGU4aG55TUJjCmdjcCswK2lrME9EcTl1TzNDU3hU\nMHMrU3RYMlBkS29zaXVrRDV3ZU1SUEEKLS0tIG9TajFsclpqZGdtS2tKb1dWMGY1\nd1lrc29QMldBSEpZNnRLRk9tdFVCTUkKrq6IHWu5lV71KHn6Ei+JThztwFrASP9Y\n18UdGQjw+zkjm8GnPQLlIZNedvp9Q7k0TI4Ouxb5OXfstlNjLhDQGg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_lastmodified=2026-04-02T18:55:19Z -sops_mac=ENC[AES256_GCM,data:RgUAZSuk30t5UIps6cb+xF5xWBhcBt+pimxkye3J8hovDQBAkALX86hB+ZjfZoNS3rbIrwQnQdhuMhxeAYiyYpObr9V6b8slFJLGrpRWLgmbnrZHaiM8PDRxueWgYmPujbBqXNeUyqAJH2Zem3xF5sd0wPcel9VnozOLYKqHTbo=,iv:n71D4PCSG9lbGHHgEGWFFqalBMSRcrQhL6l+mUVD4bI=,tag:7FNgCawYiTuZLz7HWbwvIg==,type:str] +sops_lastmodified=2026-04-06T10:19:51Z +sops_mac=ENC[AES256_GCM,data:Ja6VtiRTT9m3EIHmwg8A/YeeIBIJkupopCQFj3ZZELLHlqICpWAwBUnLcDS912e5vC35/ybuPsDVc+uocs091D950R3GvnleIEtEld+x/hX3hQpgiURtzBnvNlaRoXJ/60YiuXwxNWvLy73RVXJpFg2RN3kb7QL3yhE6d4U7Uqg=,iv:2Zf52DAsW7D7z9EGtXrG6oAQrQvk7WuQla7DyvtIm9o=,tag:ZSREwuoFiNBSfKzZVwM2vQ==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 98f4dc8b6d..f1ae87cfb7 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -31,8 +31,10 @@ services: HOSTNAME: "0.0.0.0" NODE_ENV: production PORT: "3000" - PUBPUB_URL: https://${PREVIEW_HOST} + PUBPUB_URL: https://preview-${PR_NUMBER}.pubstar.org + PUBPUB_HOSTNAME: preview-${PR_NUMBER}.pubstar.org SITE_BUILDER_ENDPOINT: http://site-builder:4000 + ASSETS_PUBLIC_ENDPOINT: https://preview-${PR_NUMBER}.pubstar.org/assets FLAGS: "uploads:off,invites:off,disabled-actions:http+email" networks: [appnet] healthcheck: From 85d5f81b32d6e923aa1b98ba36b19a2fffbb3507 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 12:34:13 +0200 Subject: [PATCH 021/153] fix: rename assets env vars --- .env.example | 10 +-- Caddyfile.test | 2 +- core/lib/env/env.ts | 18 ++-- core/lib/server/assets.db.test.ts | 4 +- core/lib/server/assets.ts | 38 ++++---- dev.Caddyfile | 6 +- development/docker-compose.dev.yml | 4 +- docker-compose.base.yml | 8 +- docker-compose.test.yml | 10 +-- infra/.env.example | 12 +-- infra/.env.preview.enc | 86 +++++++++--------- infra/.env.sandbox.enc | 88 +++++++++---------- infra/Caddyfile | 8 +- infra/Caddyfile.preview | 8 +- infra/stack.preview.yml | 10 +-- .../context-editor/src/stories/mockUtils.ts | 12 +-- self-host/.env.example | 12 +-- self-host/README.md | 20 ++--- self-host/caddy/Caddyfile | 8 +- self-host/minio-init.sh | 8 +- 20 files changed, 183 insertions(+), 189 deletions(-) diff --git a/.env.example b/.env.example index 12034ca718..db873a652b 100644 --- a/.env.example +++ b/.env.example @@ -15,11 +15,11 @@ VALKEY_PORT=6379 # Minio configuration MINIO_ROOT_USER=pubpub-admin MINIO_ROOT_PASSWORD=pubpub-admin -ASSETS_BUCKET_NAME=assets.pubpub.local -ASSETS_UPLOAD_KEY=pubpubuser -ASSETS_UPLOAD_SECRET_KEY=pubpubpass -ASSETS_REGION=us-east-1 -ASSETS_STORAGE_ENDPOINT=http://localhost:9000 +S3_BUCKET_NAME=assets.pubpub.local +S3_ACCESS_KEY=pubpubuser +S3_SECRET_KEY=pubpubpass +S3_REGION=us-east-1 +S3_ENDPOINT=http://localhost:9000 # Email configuration MAILGUN_SMTP_HOST=localhost diff --git a/Caddyfile.test b/Caddyfile.test index 6f645d8b26..e46c20c054 100644 --- a/Caddyfile.test +++ b/Caddyfile.test @@ -24,7 +24,7 @@ example.com { # if you want to use a different domain for your files, you can do so here # for instance, now all your files will be accessible at assets.example.com -# if you go this route, be sure to update your ASSETS_STORAGE_ENDPOINT in .env and restart your services +# if you go this route, be sure to update your S3_ENDPOINT in .env and restart your services # assets.example.com { # reverse_proxy minio:9000 # } diff --git a/core/lib/env/env.ts b/core/lib/env/env.ts index 9fb30ab208..16b8b0a8e1 100644 --- a/core/lib/env/env.ts +++ b/core/lib/env/env.ts @@ -16,20 +16,16 @@ export const env = createEnv({ server: { SELF_HOSTED: z.string().optional(), API_KEY: z.string(), - ASSETS_BUCKET_NAME: z.string(), - ASSETS_REGION: z.string(), - ASSETS_UPLOAD_KEY: z.string(), - ASSETS_UPLOAD_SECRET_KEY: z.string(), - ASSETS_STORAGE_ENDPOINT: z.string().url().optional(), - ASSETS_PUBLIC_ENDPOINT: z + S3_BUCKET_NAME: z.string(), + S3_REGION: z.string(), + S3_ACCESS_KEY: z.string(), + S3_SECRET_KEY: z.string(), + S3_ENDPOINT: z.string().url().optional(), + S3_PUBLIC_ENDPOINT: z .string() .url() .optional() - .transform((val) => - !val && process.env.ASSETS_STORAGE_ENDPOINT - ? process.env.ASSETS_STORAGE_ENDPOINT - : val - ), + .transform((val) => (!val && process.env.S3_ENDPOINT ? process.env.S3_ENDPOINT : val)), /** * Whether or not to verbosely log `memoize` cache hits and misses */ diff --git a/core/lib/server/assets.db.test.ts b/core/lib/server/assets.db.test.ts index 6aef731ca8..83ff57b9b6 100644 --- a/core/lib/server/assets.db.test.ts +++ b/core/lib/server/assets.db.test.ts @@ -11,13 +11,13 @@ const { getTrx } = createForEachMockedTransaction() beforeAll(async () => { // check if minio is up - if (!env.ASSETS_STORAGE_ENDPOINT) { + if (!env.S3_ENDPOINT) { throw new Error( "You should only run this test against a local minio instance, not to prod S3" ) } - const check = await fetch(env.ASSETS_STORAGE_ENDPOINT, { + const check = await fetch(env.S3_ENDPOINT, { method: "OPTIONS", }) diff --git a/core/lib/server/assets.ts b/core/lib/server/assets.ts index 06df71d6ea..5cbcf63763 100644 --- a/core/lib/server/assets.ts +++ b/core/lib/server/assets.ts @@ -63,13 +63,13 @@ export const generateMetadataFromS3 = async ( } export const getS3Client = () => { - const region = env.ASSETS_REGION - const key = env.ASSETS_UPLOAD_KEY - const secret = env.ASSETS_UPLOAD_SECRET_KEY + const region = env.S3_REGION + const key = env.S3_ACCESS_KEY + const secret = env.S3_SECRET_KEY logger.info({ msg: "Initializing S3 client", - endpoint: env.ASSETS_STORAGE_ENDPOINT, + endpoint: env.S3_ENDPOINT, region, key, secret, @@ -79,13 +79,13 @@ export const getS3Client = () => { } s3Client = new S3Client({ - endpoint: env.ASSETS_STORAGE_ENDPOINT, + endpoint: env.S3_ENDPOINT, region: region, credentials: { accessKeyId: key, secretAccessKey: secret, }, - forcePathStyle: !!env.ASSETS_STORAGE_ENDPOINT, // Required for MinIO + forcePathStyle: !!env.S3_ENDPOINT, // Required for MinIO }) logger.info({ @@ -99,10 +99,10 @@ export const getS3Client = () => { // this is bc, when using `minio` locally, the server // uses `minio:9000`, but for the client this does not make sense export const getPublicS3Client = () => { - const region = env.ASSETS_REGION - const key = env.ASSETS_UPLOAD_KEY - const secret = env.ASSETS_UPLOAD_SECRET_KEY - const publicEndpoint = env.ASSETS_PUBLIC_ENDPOINT || env.ASSETS_STORAGE_ENDPOINT + const region = env.S3_REGION + const key = env.S3_ACCESS_KEY + const secret = env.S3_SECRET_KEY + const publicEndpoint = env.S3_PUBLIC_ENDPOINT || env.S3_ENDPOINT return new S3Client({ endpoint: publicEndpoint, @@ -125,7 +125,7 @@ export const generateSignedAssetUploadUrl = async ( const client = getPublicS3Client() // use public client for signed URLs - const bucket = env.ASSETS_BUCKET_NAME + const bucket = env.S3_BUCKET_NAME const command = new PutObjectCommand({ Bucket: bucket, Key: key, @@ -140,7 +140,7 @@ export const generateSignedAssetUploadUrl = async ( const generateSignedUploadUrl = async (key: string) => { const client = getPublicS3Client() - const bucket = env.ASSETS_BUCKET_NAME + const bucket = env.S3_BUCKET_NAME const command = new PutObjectCommand({ Bucket: bucket, Key: key, @@ -175,9 +175,9 @@ export class InvalidFileUrlError extends Error { */ export const deleteFileFromS3 = async (fileUrl: string) => { const client = getPublicS3Client() - const bucket = env.ASSETS_BUCKET_NAME + const bucket = env.S3_BUCKET_NAME - const fileKey = fileUrl.split(new RegExp(`^.+${env.ASSETS_BUCKET_NAME}/`))[1] + const fileKey = fileUrl.split(new RegExp(`^.+${env.S3_BUCKET_NAME}/`))[1] if (!fileKey) { logger.error({ msg: "Unable to parse URL of uploaded file", fileUrl }) @@ -209,7 +209,7 @@ export const makeFileUploadPermanent = async ( }, trx = db ) => { - const matches = tempUrl.match(`(^.+${env.ASSETS_BUCKET_NAME}/)(temporary/.+)`) + const matches = tempUrl.match(`(^.+${env.S3_BUCKET_NAME}/)(temporary/.+)`) const prefix = matches?.[1] const source = matches?.[2] if (!source || !fileName || !prefix) { @@ -233,8 +233,8 @@ export const makeFileUploadPermanent = async ( }) const copyCommand = new CopyObjectCommand({ - CopySource: `${env.ASSETS_BUCKET_NAME}/${source}`, - Bucket: env.ASSETS_BUCKET_NAME, + CopySource: `${env.S3_BUCKET_NAME}/${source}`, + Bucket: env.S3_BUCKET_NAME, Key: newKey, }) @@ -256,7 +256,7 @@ export const makeFileUploadPermanent = async ( maxWaitTime: 10, minDelay: 1, }, - { Bucket: env.ASSETS_BUCKET_NAME, Key: newKey } + { Bucket: env.S3_BUCKET_NAME, Key: newKey } ) logger.debug({ msg: "successfully copied temp file to permanent directory", newKey, tempUrl }) await trx @@ -305,7 +305,7 @@ export const uploadFileToS3 = async ( } ): Promise => { const client = getS3Client() - const bucket = env.ASSETS_BUCKET_NAME + const bucket = env.S3_BUCKET_NAME const key = `${id}/${fileName}` const parallelUploads3 = new Upload({ diff --git a/dev.Caddyfile b/dev.Caddyfile index f8ece58b87..21f1093e76 100644 --- a/dev.Caddyfile +++ b/dev.Caddyfile @@ -45,13 +45,13 @@ # visit: http://localhost:8080/my-community/journal-2024/ handle_path /sites/* { - import s3site {$ASSETS_BUCKET_NAME:assets} {$S3_ENDPOINT:garage:3900} + import s3site {$S3_BUCKET_NAME:assets} {$S3_ENDPOINT:garage:3900} } # simpler path without /sites prefix # handles /{communitySlug}/{subpath}/... handle /* { - import s3site "{$ASSETS_BUCKET_NAME:assets}/sites" {$S3_ENDPOINT:garage:3900} + import s3site "{$S3_BUCKET_NAME:assets}/sites" {$S3_ENDPOINT:garage:3900} } } @@ -72,7 +72,7 @@ # # { # filesystem sites s3 { -# bucket {$ASSETS_BUCKET_NAME:assets} +# bucket {$S3_BUCKET_NAME:assets} # region {$S3_REGION:garage} # endpoint {$S3_ENDPOINT:http://garage:3900} # use_path_style diff --git a/development/docker-compose.dev.yml b/development/docker-compose.dev.yml index eb6607257c..497ae24538 100644 --- a/development/docker-compose.dev.yml +++ b/development/docker-compose.dev.yml @@ -86,8 +86,8 @@ services: volumes: - ../dev.Caddyfile:/etc/caddy/Caddyfile environment: - - ASSETS_BUCKET_NAME=${ASSETS_BUCKET_NAME:-assets.v7.pubpub.org} - - S3_REGION=${ASSETS_REGION:-garage} + - S3_BUCKET_NAME=${S3_BUCKET_NAME:-assets.v7.pubpub.org} + - S3_REGION=${S3_REGION:-garage} - S3_ENDPOINT=garage:3900 ports: - "8080:8080" diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 5a61122955..0a9be47737 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -32,10 +32,10 @@ services: entrypoint: > /bin/sh -c ' /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; - /usr/bin/mc mb --ignore-existing myminio/"$${ASSETS_BUCKET_NAME}"; - /usr/bin/mc anonymous set download myminio/"$${ASSETS_BUCKET_NAME}"; - /usr/bin/mc admin user add myminio "$${ASSETS_UPLOAD_KEY}" "$${ASSETS_UPLOAD_SECRET_KEY}"; - /usr/bin/mc admin policy attach myminio readwrite --user "$${ASSETS_UPLOAD_KEY}";' + /usr/bin/mc mb --ignore-existing myminio/"$${S3_BUCKET_NAME}"; + /usr/bin/mc anonymous set download myminio/"$${S3_BUCKET_NAME}"; + /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}";' db: image: postgres:15 diff --git a/docker-compose.test.yml b/docker-compose.test.yml index 5e7cc46fc8..f00f4f8242 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -130,11 +130,11 @@ services: - integration environment: - PUBPUB_URL=http://integration-tests:3000 - - S3_ENDPOINT=${ASSETS_STORAGE_ENDPOINT:-http://minio:9000} - - S3_REGION=${ASSETS_REGION:-us-east-1} - - S3_ACCESS_KEY=${ASSETS_UPLOAD_KEY:-preview-different} - - S3_SECRET_KEY=${ASSETS_UPLOAD_SECRET_KEY:-preview-different123} - - S3_BUCKET_NAME=${ASSETS_BUCKET_NAME:-byron} + - S3_ENDPOINT=${S3_ENDPOINT:-http://minio:9000} + - S3_REGION=${S3_REGION:-us-east-1} + - S3_ACCESS_KEY=${S3_ACCESS_KEY:-preview-different} + - S3_SECRET_KEY=${S3_SECRET_KEY:-preview-different123} + - S3_BUCKET_NAME=${S3_BUCKET_NAME:-byron} - PORT=4000 volumes: diff --git a/infra/.env.example b/infra/.env.example index f8e6ec7ab3..b90d0eb5d7 100644 --- a/infra/.env.example +++ b/infra/.env.example @@ -20,12 +20,12 @@ VALKEY_HOST=cache MINIO_ROOT_USER= MINIO_ROOT_PASSWORD= -ASSETS_BUCKET_NAME=assets -ASSETS_UPLOAD_KEY= -ASSETS_UPLOAD_SECRET_KEY= -ASSETS_REGION=us-east-1 -ASSETS_STORAGE_ENDPOINT=http://minio:9000 -ASSETS_PUBLIC_ENDPOINT=https://app.pubpub.org/a +S3_BUCKET_NAME=assets +S3_ACCESS_KEY= +S3_SECRET_KEY= +S3_REGION=us-east-1 +S3_ENDPOINT=http://minio:9000 +S3_ENDPOINT=https://app.pubpub.org/a S3_ENDPOINT=http://minio:9000 S3_REGION=us-east-1 diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index b54e63e378..2a40937253 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,53 +1,51 @@ -#ENC[AES256_GCM,data:nidgqMhF6BPpOAkjybDjyID3Jk+ruJ0tzTP95NR/YSDr,iv:vMZEEnhdVR9GNULBaxMCO7pdmYKqlool0CSuOQCE9yo=,tag:VUPmLscJ4GugwPMoSJJOgQ==,type:comment] -#ENC[AES256_GCM,data:iyxd17y6Gfg3Rk5rIWFqKC9ymy8wfdybz5Qu2YPniSEy/xSdFVkNN64t3pFbQ4WbRrcWFW1TIVu202Y=,iv:6VCYUtnyxvtdy5s1pNRmbzZbE963e2JZXKkMP93AGsU=,tag:o+KV24A8e+VIeW5rQIx07Q==,type:comment] -#ENC[AES256_GCM,data:zrYTBtr23insJhc0cxCpSpnYLQcbiDlcG66mN339swoLuh18WehqdLU1CSncNcnzpZEKmeuTH647Kz737AvycbBd8w==,iv:M8D9kzlCHkv7fevW13cbOP5i+QKNpvo8sbYe28U175Q=,tag:UkBQg7psnnJSNkWWr0sjVA==,type:comment] -#ENC[AES256_GCM,data:Qu91fCDWhz17mbOOuVnbcQ2WaYX/HSPyyt89hmaO2aq7uRm0oNh6IiTzdKAxXRgGZQ==,iv:Zt6yhJaPOVhJUvzMuca0bA8FF3vNFrYFqukjFsNqoNU=,tag:umXp+S+sRUGTo8jjk0apdA==,type:comment] -#ENC[AES256_GCM,data:DzDLZhFRMXxWrEdUuC+ByAbcB/LS0oOuO98QUmEydk97Nol5GnTQlZL83RFNP+ZXBHhLVg==,iv:0yBbu0BYoJeKcVgtEbyDVkqAcnz1B2O8n3oBYOcXnbY=,tag:JJGzlEuMKv/A53xJi+jlRw==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:edyPS/UuBGk=,iv:Ig7o0WjEbvj/PmIL1GH8N1pcV9B/EhH7Lbjg88MAXMc=,tag:4CLTcQWrRZdpOZHXdMGLrw==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:hY1Fed8D8NQ=,iv:vj+YUqJ0OWHwg8bFIvfDwC5A1jQ9MiL1dNbWQanxA2k=,tag:+enO5GiEuqYFuXV5D8AqPA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:Ne0ZLOnF6Q==,iv:bw7t5um/M5ua2a/pNEy9/sYXe7s1HELp/6HqMNNcrhg=,tag:yngVsBi77evrIWXkLLNyJw==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:+56qlymhMVMFCUqbz4LT5PVuvcfpK+Id3a+/XVPs63TDzlJkO4o4voiE6FIaRA==,iv:E2qbXcRrU1ybOrOjm7dsP7YODeO9KTJaRF4OFdTAZUo=,tag:nveUbdReIYKw2Wd3r3pm/Q==,type:str] -PGHOST=ENC[AES256_GCM,data:298=,iv:uDnWvQEQOp5H6AEvBE+Tq+mj1ArazT4ZQpKO62G9gnU=,tag:/w68jrEyc2luumAEZ52DYg==,type:str] -PGPORT=ENC[AES256_GCM,data:Y94+3w==,iv:qY4d8lhQX52hwru3zaA+A8MG+m/ytFbS33GAYCir7lU=,tag:ETxNdnqZGdALfYZrvBaw5A==,type:str] -PGUSER=ENC[AES256_GCM,data:xkGh3t6J7f8=,iv:NGd8aVC0+oucIhR7OZudQrRzkjlw+sdRcok2fjVt0hU=,tag:ZADkDIN/Cp/HV8p4uDZyrw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:14Gen0lNZQQ=,iv:S03hq+IBEhCk1Ca5Y2SHNPAZiyGcwlIto1mn3+uH34Y=,tag:Z3//YEGsR+VzV4bB7779iw==,type:str] -PGDATABASE=ENC[AES256_GCM,data:mG/2eH1mBw==,iv:5a/fWA5vkPRTmjHheuyca2y9bzY9Gslpm167eHhcDm8=,tag:NQfpX0JmGWyG1zZmpyjLkA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:MTnv2DA=,iv:NGo+0LzXkwlt6dymj9VRLnPEtYXHqZNk4tUDU7uaUMg=,tag:5eoBdPAHIk0OQWB9+nLiAA==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:aWdSWwbHnD4pNNyMuQ==,iv:VoqB1E6WFxhPny+Y852E75jFflGXjvpVRVqNHTIzBek=,tag:s88CasPCB/x82S6EE1jUyQ==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:JNoM6CwnYq4/a3j4Dw==,iv:FgzTPfavvDPOz/xTIRYqo66EKDPwCX+nHQcOvRPyKBw=,tag:wttQ4f4tRbHVF8p6IZe3Tw==,type:str] -ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:EOFuwF2385RW6bCbDf8=,iv:In2u9+UycnY66GVO/7LhQMad3wBE4PRksfiMDI3c7LI=,tag:xR7J05fI5OBM35bYpNeEsQ==,type:str] -ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:N4wK3CkgdjtQVSk=,iv:c6WxlOBCMWSVYY6GNRpQ5tzJWnP8pRf+n6MJ8nY5ADg=,tag:byB7Y9WEWk2ybAHGtSEd4A==,type:str] -ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:d5CDPp0kCTypKWE=,iv:+40LcVyf95aZu9b2MQZuRxB4N8fej3Ry/U1LtS2flqQ=,tag:jjYp8gmml1UtCeyCc6JSGA==,type:str] -ASSETS_REGION=ENC[AES256_GCM,data:0i+m6S8yS6Kt,iv:XaPxNxCegxPr4RFoqAmXJYuuF4BWxKJf8lJOBmmL0n4=,tag:M37uTRNktpK61fNm+20k0w==,type:str] -ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:BT26SR8XeWZi3/5Z6M28wyw=,iv:MwWYvcLuANIFoQoBb/9qY0VT2mX7wQUeZ7e6XSLknd0=,tag:sb1GKWqh0fINwgfN9lGsxA==,type:str] -#ENC[AES256_GCM,data:3qx8dRHgjA0Udb10GcGi1QUatiVRCeRqFzlXv4yLN948DElPcw+OvQHTg60y8CB+MIPQ5YvxgI6mKbxMDL78WS+wI3oGpHA=,iv:mdENMvhkmc2cM6fhSnYkbX+V7V8lXNePS3EEUyj9IDU=,tag:S98fTQo8QxdwAqjfnsjEig==,type:comment] -S3_ENDPOINT=ENC[AES256_GCM,data:9Tp5RS5cjO0Dkgjdas8dAF8=,iv:Keg2C6EE6DkCQYb3kjfOEhXiOOcb8bZOcVM68Te5BOY=,tag:qP8k0wTIHi+ojF6BRskUpw==,type:str] -S3_REGION=ENC[AES256_GCM,data:azBHBE28sj1P,iv:ad2DndTnrG6kWuuBALqNSL5zh+yYKFVwegMZcw6OvCE=,tag:KS9DMy2EM2lwzQi9u2atZw==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:aLr+wDnJxNAqPt0H21jee/NDxY892IdV,iv:jh+oFIB+xVCvjq1hxlNURglDG7GKmbEldbL68yqlJUc=,tag:ISFJuSjAX8T1aR3t039xRA==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:evI4,iv:oKxHDI58Lpr+9h29H1hs5HMEvDrHAqNS6ZWQFTiTKqI=,tag:TELsFmnewcdX9wJM7yYZcw==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:d6yI,iv:d8WViy1XCNcnNJX7amkTWNLfDFg7lsdoip7vqrQvJB0=,tag:u5zbmoJ5JUpY4V+OMBtXNQ==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:FdGM,iv:QWUsPJJ4WvA2rXyA4bXsQVtCcSYLYoepaRPGt/td8Tk=,tag:hnX58fNtnPCiatgaq950pQ==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:tl/7,iv:qMgwLCKffCnwt8CcyAWpbAd0Z5aNCEpqP9ewWg2RDW8=,tag:FvcsrI+x24OdFwYw8QKAqw==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:YQPk,iv:YaS2mgQSW14lihgNTjaK8ll/7mpxja4Wm5oOpARPN9g=,tag:IBv4sYKLRLGsogvCEK3gpA==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:Co9X,iv:gt4oJT7yUdGtKH6odeiMjA1GM3nBlLLq7+eXVOOrRjk=,tag:ZLMmerHqj9Sk+yOyOi0UPg==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:mgGMnpFqu3oBJ/5bV9ECVw1/,iv:9XqB0uULPa1PiW8muEX1i2u+Vu1B52q28U0giHpBeck=,tag:BDOEkreoRF1J3MfbvTj2FQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:qckp,iv:4ITYPDkGlkL8N3AIebAnWNzya5egljfJegi19YRFKzE=,tag:3d4dQ/7B9XkTIOroLCdo7A==,type:str] -API_KEY=ENC[AES256_GCM,data:fzdU,iv:Fs+bbbM/GRoVLR86rSnxlOlVKCOi/h7njCo1+nrXzpc=,tag:KXp+CO7ai8c8jjfVooLTVg==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlZzFvR05QcFJtM1ZFdU1M\nemNXdHkvYys3ZTdyRTNpUGtET2duRE9pUTNnClFqNHYzYkxiRG4vYWJSU0ZkcC9H\nUFpxY2dPdnU1WVlCeFRjL2k3ZGxXa3MKLS0tIEtpN1BEMkFIOW5ZVXpxTGprZ0Zl\nR0drNmpSZXBGb3hEblpoODB0c3gydGcKNn+ecg9qgAGyEbOU4gtnT39VDzZvT4ak\nfnueK5RXVY50Ly8bnoj9WTZRyr02AKq/ozxgRWPDFa5eMEDVcXqyLw==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:01FuyTOAi8hcwTlE3h5bzuxLnxIcAUUOaBWOgewecUak,iv:wlTDb983ry3QmHPTNO831TCRc/y1rNfVBdEBltsjQHk=,tag:Jx4ihkq9zJe5DrhKh3VzUg==,type:comment] +#ENC[AES256_GCM,data:F8lt5UbzAe/bl9JjbNo9PMP/XbpxNDqubPdlBIy5G7FlBXHKAs4kMOUrcG749TP7QfdjRbUVxGWTeRE=,iv:VCsmfGyoATmwB7ZA7q+cE/5hAdvhctqUR3V36uyvugc=,tag:+iAPVAkvIv5mBoKmyAcRXg==,type:comment] +#ENC[AES256_GCM,data:SfJkrX4rrOWnflZeLZB+OTo5ZEjmoa+hGALSh6OXyWhnMwYuWgj4imsw/Pt06BnD6mULcUX6w/WSbxiChpK6Rz2Uow==,iv:fxo360dsbqLLuyQRoxnbgLsP0XFurYGwCV7Q2mule/o=,tag:96vqOoeBrInNq0iAvHygFA==,type:comment] +#ENC[AES256_GCM,data:S1LlGLvEHPWvhx4deVBIM4LlBQCRLoyZBpwhLqqabmUHJmg5ZU4u7h15VZdxulQUCA==,iv:HB1P2F3SbjlG6WfU/M03X/Ix0iZQhvZlTCmQG+9Dm+k=,tag:fYGwJb5upU4BbHTFn5sXDA==,type:comment] +#ENC[AES256_GCM,data:18ixZWR90g7X5C3/wu/lG8mCRS5fvfe5PrCThAwBqCqSpYmnCmw3kX9NtKHVTwt1Po0mkw==,iv:hxsNw3R9ionzxa70IjaXLyk++KfW6lCEfCI8yot3Ecg=,tag:61sgT8b7SWWlW7u/hAbbUQ==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:NykRLilL23I=,iv:uSUgclbI+u5HlqSazcXTdQMF3+6MPnF5gBqhgFrdxQ8=,tag:XFNiQkZRzfClqyzaPDqGGg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:cjdQF1aMDBA=,iv:tkZMn6+06SKK95jTNmuTsdrWcuB3vQfTkOYaIKTwpCc=,tag:V09wYVU5J+mtkCrmQ9+2Mw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:euB33ubvYg==,iv:eq7IpQpUOqO4RGLmR+i93W1Th9ldQxO+s6UOKMrP+do=,tag:K//krGc7ryYjXqdJoAZu/w==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:0lZeeWD8t16+wVoVx3GG5avuecZvJtEjfRq3r3DldeNQq66C6umx/s84LcdoVA==,iv:pBG3RlFFjyUSgCEVVMesLd21GM/ChoPw6Kw5ZY9ErII=,tag:aHv0zEgRyjUO/HyjkrIShg==,type:str] +PGHOST=ENC[AES256_GCM,data:ti8=,iv:Y+g2zJxw6AZnm3JXLDuUJFtOkPUMiyTFCsm+0GoA1VI=,tag:2jp/X+VV7SNVbMUmC1e7xA==,type:str] +PGPORT=ENC[AES256_GCM,data:2RhQ/g==,iv:8rikqp+jWc6t8cJLLuLTrGhetFI7wu+LLUxI2QMCMAI=,tag:HtqOSp2JKUAZkHq6m6KDoQ==,type:str] +PGUSER=ENC[AES256_GCM,data:rjuJ2J89/Dw=,iv:BAK/cCaQYwyJiMV+pAVTRToBF5s12/A8WXTxT9RRjN4=,tag:n4hBU76ZReuJdNpCs+cowA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:EQHAp8G72pU=,iv:xKbh12AcnOBUcw+swC3McPYb23nyL12RV9iDt8qKBj0=,tag:IahOy866FQBSqaIvFCbq3w==,type:str] +PGDATABASE=ENC[AES256_GCM,data:nYwXkfTO+w==,iv:qq86WLG0XxFiwiQuhGiQXduAkqUjSzEgLPxJTnc02V0=,tag:VVf9bzQtqR5O56X+yMtyeQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:OlI8Ois=,iv:apN+8DyufGyGHh/+fGJG/4Zt1SSLHr8h9IJzWAVcc5g=,tag:mJoNwGnuv/yGygA4SE81Gw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:R1xiVwU4mHU8le4zaA==,iv:hQE2tkfqR0x2WisPx+g89YtPC1+YX4LkHyZ608OxzI8=,tag:fYJvFtC/vwW4hfFj2k32Iw==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:JJoqNeEK/bEFlsP4xQ==,iv:pdBqmcJ+Pxhv3ZrIs5DTQSwHmsfjqhlbpCkO1Nv/OZk=,tag:sWZ0GxJfxQHYE51SFtghxA==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:33QLz1weIvl27fkuz0M=,iv:4QWmPSPE2YpYP6dGc3hNzHq4EW2vRRANG0Sn/1OSQLE=,tag:0Tqwb5DvhwprvXeNw4YNCw==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:GtYFUF+JbS57Nmw=,iv:AxwCMu9e4yJ/tiemM+Wyk6QqYdzQ3oZAjicDMKVEXWA=,tag:hXplo3UDLXy0suWJ2KGM+w==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:qV3HZp7Qem7u2+Q=,iv:Dwat6yRxAFMu2C1Lhl1J6K+iZ2X6/n9jmdjlz2N7AK4=,tag:YreDcISrsSTMpUPcGsHvaA==,type:str] +S3_REGION=ENC[AES256_GCM,data:liRqnsqwJ0Ct,iv:XUfhFifl/MZWf9Yy/02Bhjvlp4jBuQEML29dg+18SvY=,tag:ICTYnLtmRbVVjyYAK3nTnw==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:jzzGDkgL33OjHDCn/JrCeac=,iv:4xyA52QskQeXZLaMWqAF8h+JYiUKNdoaBqoWknxLe0U=,tag:pVdb89AY/ZEirwQTpOwvLQ==,type:str] +#ENC[AES256_GCM,data:ZvethfQn3G93hzb9HylzPPV+SNHU1dLdUWddhZKfKYDXR48m4/pxI0Bfem2xEuG6N5vI756KFzhnjwDqEyk/zzKO1g==,iv:gqU2h8tctMH8UEixoGeze/u1osGk2HjPIn6KJkA7oss=,tag:bba0OSt+ukemN2PAA+m1mA==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:P3Aohsj9hrSbbEB4cIZH5e4Dwic4i131,iv:NRSCdyFm+LcaoSEoin27cFkIQEYVHUZcnyKtHChlDn8=,tag:5jQP0xeUwsS8YU3fi3oNRw==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:h/Tt,iv:OHa3LPP4HAC+/6ynmQyqu/4kIOW5jTBhPLmmjBAXerA=,tag:UAUvhlNI9t/gMcG0bZAfzA==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:il5J,iv:2qhdXyt8M9Waj2Blp3/bZ6Lbd1CSnL44ni0w9BKMk2M=,tag:6L7LrjsV5dzd4SJ2CAOwbA==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:Cq0A,iv:HyZccNohY3LOBL83imGrKJRXaI5HNnOAbfkf7jsgUUU=,tag:onTdFiHQVfmMq38ffw7QLA==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:Ux3L,iv:b72bNCwUdbI/ncfm0mozrkgnF7vPsBTFFWydptlh10w=,tag:HzbugC9DzQfnym0y6O91fg==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:u/w/,iv:+8s/rhemnPmmFFKg8HiB5KFT/kHfVwXrh6F7NKVBdwA=,tag:EZ9veppRkG4miHNCDKzETA==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:1dSh,iv:rr9/qGYRH+BGmI+h12CmcG8qccbXhji7RPXMg3O2oTk=,tag:XeeEFc4MvUq80c9CWCL8pg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:geghunAlbZHbEr97CPbirtSo,iv:9DDQOV0iuBVAlLrkEMoPFAFAqxZQx+3wdea8QkzhbxM=,tag:WbpHuAka03EJLZSf82pjGg==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:L2rw,iv:7ZXT6tLTPX8K8cdFFmr8XB9aM5PiXoLabzk+dXDAerM=,tag:RRicQ25cXLFSfXdHO0iXmw==,type:str] +API_KEY=ENC[AES256_GCM,data:qcnV,iv:8aVJLcGajFM/1Wclg6UiitCRRl94es2VBZycM0/yvII=,tag:VZVCW6CPEJeZV0T5LSfP+w==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1cXRndVVCQmF5OUg3RUtW\nS0RMUGdhcFRUR0poUis1cm5nclRZbDZsVGxrCk1EVG9kRHRPRzl3ci9KcVBzQ09G\nZmFvTG5CbXA1bk5ZWHdEZGRMWk9pR0kKLS0tIFo4dytQQzlQK3lVdTdxVlZBQ2M3\nMDZYSFJZTUF4MmNtOEtQSGF4SDduM1EKevzGXoKoCU0hEWKcecBnZ6+9B3kY35c8\na9gU3yrDoMP2fA7+6Iu5+cgJt2Ise+ddGSY52kg7XobY4DCg/Ufo/A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBUThtcHpiN0JsSFBla1RB\nL3hiU3g2cDdkdXorRGJ1QVpEdGFRZDcrdTA0CmE3K2psTEd6MTVPdVN0RHpXem05\naC9Nb0dEMFNBK2JPNFdTMCs5WksvUFEKLS0tIGJTaWh5NklScm4wT2ljeGJYenFh\nMUpOTmpFbG9Sa3c4OTVvZ2svdm11OHMKCdmF8SCgwGBXIqOZMF5tlqgz17sOKzSM\nfp/M2ozHYQ8xP8P8ybhnP1iLc2nB/1ck26uSqalkfzjOPu/s4l3AOg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKYThXaFhnN0tVUU9sVjJ6\nRFY1Mk9rVDRFcjZ5eTZjbTNuNWpROFpXdXlRCkRNUkhhYVRjZjhRSEIxU1NJdlpD\nQVR5MDRMc2pZMnovU1NiOTdDLzBOSXMKLS0tIDhQUU1ReDlpWThPU1V2QSszd3ZT\nVHFGYW9YOTNmTmxOQlU5OGM2clIxdW8KEHDxeC7oWHY04chaVsUzutowlbQAlR14\n/sgSspLISHdXNw/7vksI62GB5OmbCF9/316LY01yClFpKvbGcZe3fA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzc3h6ZDZuby9hZDhNcVE0\nakRwWjJnVVdWRDFrM29KaWJCTi80dGhrNVU4CmFxeWpiTGY2aFYxaDE3cHNhaU9m\ndWZORmJEVWY0ZGFXZndicENkems1bXMKLS0tIEhsNVhlamNhNTVZSVJrZVhOZ3cx\nalo5K0QvTjdBSXhtK2kvNVI5R2FjY0EKqzHsDR5RplJN5ci0eexxho+QV8Vt+vpY\nO20x9wArHYnV5amSBKeQm7JhHeZulgC9+fiA8o3T7qNCMRSkH6R3nw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTdFMrWVlYWnQyS0FaR21t\na3Nsb1FSVVRxMDN5b0F6TDBoMHNDNW0yc2lFCmpKRE0yWEhPM1BWbXBJT0U1SHNl\nNzJKSnJRREZsajBCVjFreDNWcE5XNkEKLS0tIE9LMUxOdUlNQzdoNnFKRW82ZHA5\nZ3JjdHFaVG94TlRZVUpFK1BTRXVHeXMKbUrmQBwDMgY3c3OlIeN7UHQZHkHTBzBP\n16trH9mVU3vsbYCxanrY+hy6E90LeaU5tnntHXb0HMqGDl6vgCNHYQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1azAwRE9tend1bVdPSTZ4\nNkFkd0N5TURBL2Rma1hCU0ZKRGdJNThZZFZzCmZwQmtuN0ZmSnl2cG40TVBFK0tP\naUZsU0hYWU9NdUMzMi8xZGhwMTFhdXcKLS0tIElPVEc4cW0vL3lMekhrUStLTXZQ\nUG1rbk9XWkNQMVkzUkpqZlpNeUIwS2MKR7Vm+f4uwJkSktJNYsyZF4PZFVN/DYIn\nQDtnazxr8ZFTH1VVNn61rHYsQmlxtHGg9SmPbndzFr2bo4tsXzacYA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5bUFyTGwwL0ZwaVArSnZ1\ndUJkQnV2NVhTQnQyK2JGSUc3aHAyZ3N5UVNVCkF5WnFPU0RxMUFqOUtQeitQbzdD\nNHRNaGZBNUtTMlJFbzcvRGo3YklmTFUKLS0tIFlQZHdTSVd1V0JERDZEcjR3Q0RZ\nZlc4c0VLalFQK2krQjcxT0ZHb21PcEkK0tfMklh/5YsvkJ4P/iIT1TjWEcmtYJob\n7kOqk4B10aA1v4NmeqGBpf+stqXebUblpQmEXq5gmMQFlawFWHFPIQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByMy9QcUhtZkg3dE1Tc21U\nU1pOMnZKTEloZnRTVFE5bWVTZUtTTkpNaG5FCjNoL2J5VGFIQk5XdkNhRjVTR3Qz\nY3diK1duSm9NbXRjUEovZW1mYUtGbnMKLS0tIFVJM1d2OE9GS2VPNTdwRFRkcWJz\nbk1uZE9ZYkl4ampzLzJ0NjVxTW15UEkKSPbbPfAw4Bv2GjXYCXpQWemuYel3BmFH\nStn+foFMzwqB429gsmvy2U7CoisQLE7manKIlnetjnEOzV6aoclIEg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Y0RNMGh4eTdNWWNobWlY\ncGsxTDVrZ2xmOGhnRjlob01sQ21mSmJvdWdVCmcwaVJBNnczQ2VXZmM3ZXlGbUVH\ncUtBMnRYZHk3M0xZcVZyQ29jMTVxSTAKLS0tIHdVNGNZWkJxaGZnNDBKMTFFSDJl\nbnVYZ0d1L05qbFhZWXoxazFvQ0tRYkkKA6qOZA6z/d01xmV6zomUA8JUrTUywKro\nUz0bkgsHnvElWv13CBaYEDMHZmkhWq+shnr+tYUXrXx4RLbq3a70EA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhN1J0cFdxU3F0MmxlYjNm\nRXIwRlVSZU8xQUFWbTVBR2dYZjJNUm9LOFRVClMzdGZXa2VFZGVJU2VFWEREWWMz\nRUpGVzhEa2FDRW9PaG84OCtITVZWaG8KLS0tIDNuaWF3Sy9KRU03R3JMbkV1VkhU\ndWhnNEpFbk5IdDdiQUZTeWFFL1Vjak0KDv+ZaTh5ZB5sBQS+2osR/ZTaHILW43e4\nRgbKXOQRkW8kzeXHaBuYdjGOxf5oIEyfuJSo9RrheNhaWeoogOTt8g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBScWxBREtCWWZ3TXYrR3Qw\nbFA4Q05VVktiVUZ1RjZqUi9pRllwRDU3Sm1FCmJhbUZQTFZZL2kyN0tNUlQwWVlD\ndDBtekZndlgzUDlxN01MWE13ZVJaTGsKLS0tIFRpRlN4a3lOSWJuU2p3UWRsb2ti\ncnoweWV3ZlBhOEx5cXZzNTBKbDN3eTgKgV/v4wrEnBXdDe0wiT9iX/abq1RxJ6Kv\nh6USU/cUJqElUU5Nu8rYqlVyrJw9zF5hq+L0XomOGWyYdfwWW9qXaQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBITkNsdFBnOTc3UHFnemVm\nSnlYQSttSEtlZWRmOTVwTE1xMGU4aG55TUJjCmdjcCswK2lrME9EcTl1TzNDU3hU\nMHMrU3RYMlBkS29zaXVrRDV3ZU1SUEEKLS0tIG9TajFsclpqZGdtS2tKb1dWMGY1\nd1lrc29QMldBSEpZNnRLRk9tdFVCTUkKrq6IHWu5lV71KHn6Ei+JThztwFrASP9Y\n18UdGQjw+zkjm8GnPQLlIZNedvp9Q7k0TI4Ouxb5OXfstlNjLhDQGg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzTS9mK0ljd1NRbUJtU2J2\nY1NHbWZzem9NZ3R6VnQvMEJnSm0zdG4xaUVZCi9zL3FNRytMUmd2eVU5ekxYZVpz\ndXVwd3Nrd25kamRMZW1wbHM0RUo2N1EKLS0tIHNSUGVESHBjRmQ0eVY4WndsRWlQ\ncWNqUUF5cUtDUFhTVFBIdTRUNjcxWDAKWtdnGqv+POmO3gyPfn4gxEF6bndbVMPN\nkr2jYlNlk+yLxin5t2eZXnwEdHKD6/JPrzobaV722Y3gcy4SMBrx3g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_lastmodified=2026-04-06T10:19:51Z -sops_mac=ENC[AES256_GCM,data:Ja6VtiRTT9m3EIHmwg8A/YeeIBIJkupopCQFj3ZZELLHlqICpWAwBUnLcDS912e5vC35/ybuPsDVc+uocs091D950R3GvnleIEtEld+x/hX3hQpgiURtzBnvNlaRoXJ/60YiuXwxNWvLy73RVXJpFg2RN3kb7QL3yhE6d4U7Uqg=,iv:2Zf52DAsW7D7z9EGtXrG6oAQrQvk7WuQla7DyvtIm9o=,tag:ZSREwuoFiNBSfKzZVwM2vQ==,type:str] +sops_lastmodified=2026-04-06T10:33:35Z +sops_mac=ENC[AES256_GCM,data:FhzbTx/c9Cikj+q3nFeunA5flcDL/IDuLzbTNqFiMloqUl2nLgfqP/MnPzti3/IS45EgIQlK8Tc3prSN5B6NDKH0UN0M1xvbe9p2eeoDQJk8I/OqpqrhqkfnClbk82DIQvjps4TqhJZidu7LHV0g+lF33Uwl0F3a1rMwkRL6umo=,iv:SkKnb7RqNRQGix2rKrv0oALUDOc0leChmb+abgcB4UY=,tag:HlDtB4atTYGXEt+0OCnSMA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index e02b30bb84..71249e26d9 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,53 +1,53 @@ -#ENC[AES256_GCM,data:wQkMlWpXCYYMEaRDmPdg3RA/OvC0cDBFaJedPxrpNwM6,iv:IsHL5Sjbj401sFavTanuJX7h+H+OEoa2GLSNTzsNUDw=,tag:EDeMEYS00A4qAyJXh77Kug==,type:comment] -#ENC[AES256_GCM,data:UqliiAya0xIAQedGpGEhynI4sIJeXALcdFveqzu4KiZFwwqi/gESKXNr5x92Xerr7OEWYU2KtLJMWCQ=,iv:T0YcqZQ+qvTSUqje944+5KpyCOBoE7dMj1aT9jK2DPc=,tag:gVaM4+n8jZKd6v2cqtXNsA==,type:comment] -#ENC[AES256_GCM,data:kABkuoRP4sgcmFwQPfq+xezHOXdUpfX7YLQYgfV0332LH5+rlqDt4+f8N5NoDZAe+2yw8ISE+Out4Ox6EcDci/AyuQ==,iv:X8J7TqVOwi5lgpvx3YeTBMZDJmJYS9GwXlrbLR/OoAo=,tag:hDqXJ63chspbuyQ7WVMiFg==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:iDZwrHQu3wGADdT1kSwCWk1mZQ==,iv:NFA9KSxHFFMZuvosjNpIVyvXIZtcGX5xhJgHMn67TV4=,tag:fo/Jssd/o/1cVede1lFnOQ==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:y1Gs3NTeUagfhsqwkWI6h3cjZm5Z95YnZlDA,iv:wI3OyMWXXZSvBfsKHxR+hqce9D2adWDSH6VBtrv2MMM=,tag:MTVvRMELsg5jwRcKU0s7pQ==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:/vX4U7evT1E=,iv:TZZvK7a+f21T387KKXDxqm+rPSQbKnTJPN5tYxnWqu8=,tag:lAlNCQ5NkBX2ftiu/jY3ew==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:H9icw27sMmQ=,iv:9GYuSe1L2EnTzFoZul4tQlnEHHq593f9DtExBLrDBtQ=,tag:ZiFtjaSkvGJuM08dfBm8yA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:Thed3EFH,iv:PWCQLzbweeeEpVEjNtTKpJcaJBemR2iNLadVFq3A7SY=,tag:JEuwpxYWtIUq6xAExOsM1g==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:1yo00zv51841+lIUhZdWSLBnS47JUkUiwrmDs8SmpXFfwAqNPpEQ7rsC/dv0f8ABwBx4PwOHjddXfq3SwgYZloJdxV/SLBuipw==,iv:Zj6E4p2/v9BUErCyR1GQsYE0LjX4UEx0/jhrtO5/B8I=,tag:PFXkGdKChLevrJfSj4pK8g==,type:str] -PGHOST=ENC[AES256_GCM,data:Mt8=,iv:UzF0ZoKorb+ySIm1mXzPB3M8w/4+dFoz3Kdlo7jakO4=,tag:RG5HHkov+5dRVbxVoy2kIQ==,type:str] -PGPORT=ENC[AES256_GCM,data:xB3yFQ==,iv:0WVtRIRih1H8s7L4x4Io8v+9VaR633r9ut8x5UnCUHc=,tag:G1H1Us7puXaFFxgLLXehog==,type:str] -PGUSER=ENC[AES256_GCM,data:rHHuQdyqN3YBnY7iJDd0zQ==,iv:vxOVRAIdKBgVW0rG7qzREWPs5MizElfN0/AqMJjg5lk=,tag:2WnmBBmDN94EFHyEuoJwFA==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:8I8DapRyDRmeAeXwY1clLndxUns=,iv:FVGsbYwGTOamMFAR0gY2nAqKUBFCEQMWnyPO++EAxZc=,tag:LDQv2CYObp1wtykR6qrrmA==,type:str] -PGDATABASE=ENC[AES256_GCM,data:bH0Qb18zEf2LeUdVo3w=,iv:7Upnx66ettzFGySADOuXGcQ1EeRosv9/URIc3RHEesk=,tag:bkD/aj8MSBHLJEDU/yzcIg==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:ePZxJrU=,iv:ClkDfCQnHlPoXHqmxF6UIvhiG8X4519HjniBAAxRNps=,tag:Bscl6TVztPo+Tu/gTQRsWw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:8lyQwx2Kc3dkvCJaNw==,iv:7y858vcAI3xYBrE1vBzIKLa5lhcor2Q14srqgjcgOFY=,tag:0gVKe8Xcy+A1vcxkEaS8Jw==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:ytqhDC/Dymr4WA4tew==,iv:/CrKs/8gL3oY01gi6dlIB2jNOiIZ00w+j6fCkaM6qjo=,tag:+nBoOIwqf1/HCzwsR64W1w==,type:str] -ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:DMraUkrh,iv:GXMwiplfSuXt48tBL5jG/dMoHRNBywOzWa2uF7WL6ec=,tag:tIcPK1s+60KJwv9/ocWDrQ==,type:str] -ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:IFoPcOcb3megcw4=,iv:Kq6zRXThjQL0mCO3/B5BeuQpJtadGQeHosCnU5axl4I=,tag:6fbMt+6ldYU6soUcGRbwQw==,type:str] -ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:HMxhbIoiZ4WlBO0=,iv:WW/dA7tffeanUEv4jtUI1qsnstNo1utAaF+R1vm+Efc=,tag:BpmHl3kkGVas2RQVJwNDZQ==,type:str] -ASSETS_REGION=ENC[AES256_GCM,data:0xv3/gsjjPsQ,iv:uVL9OlMoJ3FSgce5kh1JoReuJW0vuqt9WaHUkNS2+aU=,tag:lB9z6XS72UjeKIcBvXPaKg==,type:str] -ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:9immuxMwdiYobH8cVjxE7ZU=,iv:A+0XITtxze9nx7VsC/mp1dAS6FD7L/K0Fk2F132pyu0=,tag:I7/MXr+uKJeDsjE/KaRRwA==,type:str] -ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:dFtw7UKsUfJ5DN9qW9b/0tm0GPNcWT9b4VlMKlulrT1H+g==,iv:vtHmXQJyxBc4rLZ6RhBA7lHA1AvVa4ZzX7WxPIzsR+0=,tag:7QUYOisM88mvG4Jg8Wceew==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:yZFUvc8DNMd2P6zqNB1HLE8=,iv:/faQgOUyl51Jljj0yxeOfH8lNxOhQEQfF5c7BCHyqFs=,tag:PsTRQScMLffKtS4J+CTf1w==,type:str] -S3_REGION=ENC[AES256_GCM,data:EW+qAXElwVgz,iv:WxUSjYhXXK2yD02AFviiwb+DMPzWQVg8Q6JigGaBa84=,tag:iUsuCSpa9JV/OAXNkjaYNw==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:cZsXNQS47ON0pxq9BUPB/XVnFKjBovrm,iv:zCoEAxGvu7c7/lCERMhMDRVsxShcAjpIoGTndKxMvfM=,tag:a0t+pKnLlFn/FCE2eQ+2EA==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:Ye8x,iv:0vlogy8jO33CFn6yB4Klv42GEl8yhh37I0iinNiO5ww=,tag:3FDAurEcIf9yZRBjlPPGjw==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:TU9U,iv:eguxyrPZD6dddfewWZemAPmwfpJc08cu21mHky965Vs=,tag:EkCVeYq5bg24ZvbL8HLJRg==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:0FYB,iv:lN0gxHtglWA9kTEdQ7tqijTBR/cPv1ikCjhsrVQ8ayU=,tag:DOlLM/GWANhD170Fid2G2A==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:rr/w,iv:cJSdskUc3n65RIObcPqtDDVLZMASSd7uQhE796Sn8r8=,tag:yEFybDTzla/JRYzAcLUArQ==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:/S7r,iv:igzmz4XbjT+zy4xAmofwYEj7wUisl6jK9aRSd3oHX8E=,tag:79g/DcDmFOwqVUxoOD/1aw==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:elEm,iv:qvRnJ4vjD1MIckiq//ShotqjK9U53n+yMK5G2wTQIl0=,tag:vQQXypwOXATC91Qz/Vaiow==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:2HZugiYSIbDCszsXljx5BqA=,iv:jglJYTXb4MjMH2aYS8/bRLNRqkeXLyEBlbjIaQpTta4=,tag:jNY4FOUICS6TXqS6aEXNEQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:tJJ9,iv:CVm+pxPoczTW/WBR8d1XIvohjDQ5Io0/wolUJVrdnX8=,tag:KAvW7aId60xzXUQLLAyhQg==,type:str] -API_KEY=ENC[AES256_GCM,data:CpYn,iv:X4Y/U3Hc7m+vA0NYtwHgRC6hG7SgCZ+JiHTkTDxuSvk=,tag:UNPAuAXs6uM2tISTvUF+Vw==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLdnhGOEVHTFJVa2lWc3BJ\nMU1BTGF4K1ZrVVZna1MwZWFnTzIvbmYxWWljCmY2aXNtaW9xN0JCWWV6R0lzTFlv\nY1h3RU5YdDNLN1hjb25YMEN5aEZyZW8KLS0tIC9qK0x6WVRtbVlRZG9mcjBVNnJM\nc1BFQnRPWlNUMUFGUFVTOVhaREk3TWsKrFmcT1F07M5LqgQgJgfVIa5waj+1spJl\n7few3D2Cq9wRRtf9ZuJ79Sc4beCh0Bvva4mtuttW9+blCrhYSJQRSA==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:EUk6PIzXsseMFS4wuOnFQj91hGFwV1hzfi3w2DQtroWV,iv:Gr9+RpcxLEZ0/s37D5tEdejqHCKFe2PBonqh7J4NKUQ=,tag:ELZGUZkCUoirFfUC+SWTmg==,type:comment] +#ENC[AES256_GCM,data:zD2eJw0olC7BZUYmFfI+ui2rJOHotGFvfXsJtVV6Fs9eddGy2puY27q1MqfFJZ1HS8qd1YpWTqprPb0=,iv:WM22N8dLhJSE/zNA+ASjwENeSuZ9Cfx+FuF7T2tM9Yw=,tag:CBzIFOJIyHUJprY0+fAvJw==,type:comment] +#ENC[AES256_GCM,data:GgsiNd0FA23Ml4AOVn0gpzzjrFimTi6QEBIDJoWjR8lFjNSEQIbBUzdwSBUJtRW9/kpE9nciaRioyRhuzbf5riEy4g==,iv:v/rX0FvZBCVQjH6KJvOsRvBOzzapSpJ1S5xtD5BeuJ0=,tag:va2QU1onE+vV7leJjjuajA==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:0rThpmSzlemAo9bEedewZKEhZw==,iv:mHZIqB+V3LY7qkxq8aSmd+J8OLTpDJQAIK/r7Sr9zJU=,tag:RPtpmXfP0dzNn2h4WDREKw==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:hZlG9x0gFG0f0FzC+SPCWnV1s/Tulm18OhOY,iv:7UM8dBIV3yaGOakYSkm49dpEEnoWYojpoNppLHfPGFY=,tag:1tu98rRDaRdiD/aHBVThNw==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:uZ5vn1rC3WA=,iv:TkJZImdU6aafkJ0Ye6cdaT3/Z+w4/7QemlAS6guKCus=,tag:UjqhwiubHrWGKKZqwLvu8A==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:hCmhLFmyazk=,iv:7Cyq18Hb4iK5PQfBqb4xwJ8vL2POEJyElYUa5hx93gU=,tag:pH0L4Z1ijcO9kPMQIdKRMw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:ISSMJidN,iv:0xkYpUb1dg9Bp13XCdIPIJwelfZGd07hNDY7pIBKJjg=,tag:wtZVSRcSuW/oSGqqHWX+4g==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:3LAclVCQWrG+7CdFXPnj47QVzEvXAyUbQDesSeCl4jZ4TG6dl99x56fJTBTF+jYOszdkjnps37yQ2du6U8zFoVHUdbgh3bEJBw==,iv:sgxvIo8HqTZDrFQGN0TawKvcwnbRCV1mKf6fAwbxepU=,tag:zKeU/TY3o8vo7kWA7x05jQ==,type:str] +PGHOST=ENC[AES256_GCM,data:Wu8=,iv:bf6higOwpwLgZ2gSHU3vtsBWIknD8IqSRE+FJymZNvY=,tag:xWgR/KULnc5q+ht5r/q6sg==,type:str] +PGPORT=ENC[AES256_GCM,data:wUDbkA==,iv:vu5OWULm4wUsdvla8ng9MYYuavj28z31xRMH0FkpB5o=,tag:iie9hQz66wEC1ButsZNC0w==,type:str] +PGUSER=ENC[AES256_GCM,data:w2SIl1KPFkKE8XWEZEPApg==,iv:qcPcosmKNdNBap2ZvXkODc1+AL2LRCpuyoySXvZx97I=,tag:9l9dP2RqRXe323VIuwHbNQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:tskXQm/SiPq4v/mtnzfvZZjqhqU=,iv:kMCrdDbO3IIYrr6Fq3wlBDnFAKeFDX0XXA5CMFfpksc=,tag:acZGDyb30y7ZShxmtIOEYw==,type:str] +PGDATABASE=ENC[AES256_GCM,data:k7pH4TISVtrgCQZBNKQ=,iv:FT/tVKCe8Uzj6fKt3tjGEQ5sm/MJZTb2cfCcbhH8yzI=,tag:XERwNJlVJya6OJyGtws6IQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:eOykTCQ=,iv:bEYSu68W3pHnDPJBG4qeBcnr30gWHgKRTS0QiLH6Jjk=,tag:fXp6f3nNtKnXACcRbzax5w==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:B9teVQllUozOjWAclQ==,iv:WlwU2agbABSFfZ0Ai8MAf3nLmDm2f0ngXjyYV2ctZVg=,tag:pfJesr2Wc+1JkT6cS4Qdig==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:m5IhnP4bmLwvhRH1MQ==,iv:YwrFzZy4V9DTgIHB6kjuaHkf9bYR3qlWOg387lioC2E=,tag:j94mHdsseLMCz2qWX1XN0w==,type:str] +ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:J7+yZke6,iv:nmGO4MnTHkF02hT+Swus0AdzMUnLQAqnlVQbmaV8Ibc=,tag:+lygXbeROCrFv7WY0FniOQ==,type:str] +ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:2MvQ0tTCJKlELzw=,iv:mVOi3FAknw098g2AY+h43mbtZ9YT3PNt6fkOmzBTaKo=,tag:cDIcHbJvB8h6P5ZXULv1pA==,type:str] +ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:fR04nwkgZ8jFC0s=,iv:lJcMu0xS5AsKN9X+LZ70RELGF4u1eI0uKTbpyQcoTQQ=,tag:SSaKB4Sn620gwXm9ilRYkQ==,type:str] +ASSETS_REGION=ENC[AES256_GCM,data:AHtDF/GoJc/C,iv:F7XuISy3MXp77A9xAaMryKs4mQZPrb7Oebl9bBVAfJQ=,tag:kK4IHFGO7tCsV+16Xg4Dng==,type:str] +ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:NKCglvQc9KIoARg9kNhx8qM=,iv:d4RdlJQURPKGeNDlXDONDkTW0vA1yYCvWQZlRLQh2EI=,tag:AdpBoDVZ2/IznMTlqPIxrw==,type:str] +ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:PVQHF4MFGv02V5c5l2X/UYsix+q5E4Phim3j7qhuXkv+Nw==,iv:+wE5+eDgFT8CPqDrzXuR8Jc8sm7Et1KIGXMuMBkXK/U=,tag:hSEpd5211TbOINqpT9lpiw==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:GE+jlsFsEhlT/NrhRASHOUo=,iv:UgnJ9aS4Et+otQCIyAQN0A6FasbHLBVxeYuG+/BW7Vc=,tag:KDtGbGOWtME8RYGMYEeY9Q==,type:str] +S3_REGION=ENC[AES256_GCM,data:bfsZhVI6SUQt,iv:eqbKTZ/JEi8CViY4nbOLIp2txcdUxXk+BFfPQt0oYXE=,tag:XpbvEPh1dPTC3dfn7HZxuA==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:WaJmPKLU0xgz2filfafc7YfCXKNpQLrt,iv:qbnYSvd+j/vJge3jdckmjhg6GKc2+QTK6EBAE34HA4g=,tag:tfbitWsNF2k6hSfLoawytQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:nUfu,iv:YkcgqQqaw3EhllxJrODxKcxK6XLRamKl6R409oP8wLs=,tag:kAei09a2qd9iAKi9AXjbXQ==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:jTdA,iv:ulzrjrcYakwL0CVZLmyhXkHXpq+xqXbQiQAKQL11P6s=,tag:ObCFVmmbd3VN620xGQKvxw==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:+PaC,iv:4yAKdeIlgnF6xHNOT0Z6CR7Nu3rG6waJCvkgfhNOFL8=,tag:jEiAaXp0kUn3s+cP8bjKyg==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:Fkgy,iv:tDcWCgTpMQvAhMXzu/HokUCYNlzfiEc+FjGcI3VkaZQ=,tag:/a9h4511XDbmk16s+DmcCA==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:OKMx,iv:38RLXgWXNzA/XgJ22Qil4ZBo2Obo2uKHA3SYtWfOCC8=,tag:2LhnzeXIkabpXBwWXNTe9w==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:eXcO,iv:jOd0V1n+g/CV04x92oLLD7BHj0FOaTKjTqeOv4GdT+M=,tag:M1pg4Sf/VhDIw/8dQRWtPA==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:/osaHe00IZD9Uz/gDyca4Sg=,iv:cGZ4j0VC4v5Th8Qn9r4hT3vH6Ne6SE4EA/yLarIWHNI=,tag:an3A9I/ze6AYxwLVEJiMCA==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:47eY,iv:tMJArSXqZiDqWiotXFmFyW0WqR+3kvkxuCk2lp2IhyU=,tag:3qWyEBnHXFlm8qfniQJ93g==,type:str] +API_KEY=ENC[AES256_GCM,data:r9MF,iv:7JBUNs84+/+l9vWP/eMY51YcvxeiCAWYfBRfKZQUSpc=,tag:i2eKY5CYm2dDJmZFV5S9Ew==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXUmtQMy9ZREpPa0NLRGsv\naU1VMW83cUJlWjFTMjJreW42UnltWUI0L2h3CmJxdzRXa2FPaERHR0xyUHY5SDFv\nb282VktXSWlrdk1NN1hSbzgzSDNhYUEKLS0tIHg0MHR5WHhJcDFna0JDbUR3c0I5\ncVJqaGw1UE9VclhOSDNaeUR0UzZVeEkKmrjBiCf23E1uxNtCXr8zpVvP2gMAdUFC\nV7fk+zpa3443cc/2AvSAiWxyXHblykN+cxc+suNUDNv1QtQlqG7RIg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBL3ZDZE85UzhsVmgxNmFD\nZk9Bb1Vaem9BcVk0M1EzbTR1czJCOWp1Z2xRCnFCRXNiZkpkM2tVNitqTG8zKy9x\ncUhlMGFyUG8vbVFaV2wzMENtTkUzcFEKLS0tICtPWlBWVGlQNW1RSlByQmZzdWRX\naDdzM3hZUjBISUJmN3V0TE9WNUxaR1EKu3o0JrF0HBl70WpbURrRgcrqdMqNnk4+\nCNOg3w3FcVXLDDqpX+o7WUTC+x0BM18njBZZOrnHYt061AxuEw12bA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnME9uSXF3TU90VFFEb0Vr\nTHlFT1JCZGxUMVBLNDJ0bkdMTmU0YktNY0NRCjIvakQrRjc4OVB3WDdwWEt0Sjd0\nWUxvT001SnVsZGhrWjV1MzJjOGNnS3MKLS0tIC8xK01yYnRiMzIyTDd1dVpGaUNh\nU1lmZnREUktRRkpQOHlpcVBOQlVlVVEKQW699/iBFbah1OOVbcClLoyWadsDGYaf\nMz+5EvDFwO7LPxld3uTkXNh0tNuXmi6T85c09FM7BPqarNMsBbqVJA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3Tm1FbXM1N0JJeis5YXBm\nVVp1RGVTQUQ5TXhqa1BqeHJhTlVEeXIwTXprCjg3Tk41UmwzMnJKaWpJbkZwZHJQ\nTUh6bTNjMTg2TTEvdDMyMUtVWHdPWkEKLS0tIHc5bTExaVZvTGpNbEtlck9iMlRJ\ndE9DeFZaa29Qa1NnZnlNWkFYZGJ1TG8KXeZWwVJm+GrGXnuiK7nn16GkiDi542Bs\nJS2BOXvGRWAtU8/uAbQ/EoPttrf2HbpvMMxrPZNXJE4uvzdsaDvPSA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByY3F3ZFU5KzBVYklIbmR1\nQjloZFFnZEMvekxrTUpOb3FMUnpFekZXODNZCmhRNjZiNGZjVHVlTTFPSDJnNGFG\nS3NyWFF0UFBxL0ZGYUhxeGpGVldBVEEKLS0tIGVwclczRERPTENWMGl2VmtTaTBQ\nTWVIanRTMURaWmFJSWZwTkZSRUlRbEkKqMEEWUGjLYbDwd3q8isW/mg5c+MNPcod\naSh7XqVcOyDBUBr1yuQ1DY2itMY+x502HNzUl84i67mep0k619jgTA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxeDY1K1hFa3VJbUpKYlJU\nVS9RRUJubForTERKT0t5ZEsvbTVFaHFJcDBJCkdGb0Y4UEkwNWcyZkJKZEJsbmdH\nTDVVcVhrOTlqUzAwSHM0WG81bDF4UkUKLS0tIGNtMjBMaTh0U3hnNmhLTWlSN3JP\nYVcrY2lwUytCVlIxOXlSM2pjQzRtdEkKBBUNB8fmAbKGt9ESGb1bq3BhQtS7cvjI\neR4Pd7N2wWePYf+Bo0TRyU5hmOv/yJ+06hgdyhDNQnvgXwknitPEyg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU05jcmxMeUJWZnpISkd6\nTFZFNkxPMjBXOVNSSmxwWUNZczdtZXYxWTFVCitCclkyV2hsUnJzcGhvbXluc3N2\nOGVsUldjaEpxMVFMRVZzNm9mV0N6SjQKLS0tIHBEOFhlbDNFTThOZW1HZU0veldX\nMmZiNkZBZzA4QVlyRTJRTzBSVXJPSUkKEGiTA2DpTTOUI/dxrQSYoQhiS6DM4Q/t\nOMAA3OU05t2n0SeWUoJ5yFJ2PcFWTkXnUG173e/ip5zpdL/el7dDRw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDUitPZHNpWEt1UGsrYk14\nU3Foa1JvYll2YTRmK3ArTWtoZHFnMVV1NkFRCklvdWhOUWNOdUNUaGZKQm8wamFW\nbk9xN0tpbFNUYTRWbG9HTGw2ZWVML1UKLS0tIE9ZQXgreDBDa0poY2U1VEFGZlFI\nMHRjc1hJSnV3cnlOZUg5WVJicnJSOTQKGnG7VgD0uP/cZI6zf/M0JSg/4fdL8/W4\ndfXLEOMPw5KQRpOA6ombnm4M+RUeYil3eRxXvQyTUnrK2yVFK2LLzA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1NzZpYk9RMithS0xieWZ1\nVGo0VURsOWQ3VTJjK1V3amtVR3dCQ2twZjF3Cm5IbkliWmp5dXpFSUl1YURJelZD\nb0ZDaExNc3NNQUFpK2p0UUZCdHhMNjgKLS0tIHRRck13c2crMXF1TnFha2NpMHBD\nVlovMGxyMmx4TWVYdUF3NHhQRTVNa3cKE/patQW9NnZ6LnbGT21gs6F9ggCCbveI\nff0kfaLVFaG073PGSRlS/6pI6kY10E8VWWUTjsA1tBZM3vLsZ0fq7A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrUVFPd04rRFVUZ2NCWXdz\ncmoxczgybkhPd3dCamNFa2lvZ2gyZjhMcFZnClMwOGxmenZ1dzRLTGJ5SDVEa2hO\nVXppb3Z4R2dsZjlFRDV0cVZPaFhqL28KLS0tIHI3Q1RhWnN6YXJBdjduVGdsNWJl\nTFdQL1BMV1g1bWN1QTBNMjIrZHFoU3MKfdGU6T+QT+KTV/97Tpv8O7+xgEf7Wi7X\nHRnInfAJDhws1Bi2SfDcmzu5H4F99omJuVK2XN/E978IxGxHBxT/Lw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYajZNZkxacjY5L2Q4KzBu\nS25iZ082a1FSSVpwODR5S2I1U09CTE5wWEVFCjAxOEZ4STAzcDZILzBxeWVYK090\nNTBQUlpSMmlhSDhRNkUxaWFLb1p3SlkKLS0tIE1MYXVuaEhDd1ROdGdlbUZKckZv\nRWFLRWNGUWZ2TVg1Qi9hZCttSlc4TlUKR5vNkVuEqf4sBxCPFdse4XInlB8xqA0z\n3szMwE8r8fIzKg8j8chh3yb3H2aHel2WJanF7+omB8H19Fvq1+3NcQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkUTNxRFlXbkdJZDA4MUJV\nRGZ4TWtVSDkvZFZLTHRWcEI1eXhlSkpqdkFvCjFVSFI0R2tjNkJ1MlkweUUyMDdz\nV0poUDhHdFExMVdKQ2hNWFF1ZGxwY3MKLS0tIHVxa2RwTTJrM3gwOU03TElhVzBs\namlpWlU3bk8vYTJwMkZMQTVPcmpiUlkK3QiDHmRoZzUc4EK893quus9qS4K8nOTt\n15uyLed80XG772j3KXu8iz+yZPVqGFnOUcZlK8AMYf+g1He6wim9lQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSWTRCcGowV1c2blhrZjRP\nczBBaldMemM0SGI4dzRiVWdMbEkxM0VXRlhzCkNpaVFqSnZJbU5RWkIweGo0WU9L\neW5WTzN1T1djR1Z5WlVDdmZteVJ0SmcKLS0tIHZ4WUxhdzJXQzFYTG5ET1dCUi9m\nOW5IbWpESUd6K1ZZNHh1M20rNWxTTEUKTjqTQD+SCcfLdj8J9PFMgNfUkqScy3DN\ncSYOwbpH2ObVhvvmgLqjR+RQdLkpb2itf4cufKspSi5d6uA2AQfwtw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_lastmodified=2026-04-02T18:55:28Z -sops_mac=ENC[AES256_GCM,data:FkocA/nrhQMafwOeLkKbcvrMOG6vcdkvJ+DwMM8uErg2k++awvJHItrO1FtgXxDUZkxOBWtjvuUYVV4yg1qvOf7cuIcC/Zy1Hqxyn3D/lqwbjnCTF25rFZ01dwkJ7fofuyjnGeAZcmLfdWjRntOg0ZVb967Qke+Pl6ZwalnRKO4=,iv:tJ+JIIweLpkwl5D5q2xm0oWpbDn9t0CTNze4db+elTw=,tag:EVEywBkkaV7X/u+DIEmyFw==,type:str] +sops_lastmodified=2026-04-06T10:33:40Z +sops_mac=ENC[AES256_GCM,data:oZ7HHxAKttSyIEhkQ1pWPUwKD95EXNYUXKaO90T1ye4AWRpFPcBIfOkCk0eyOJyD1iPpj7MgzTcNcyCC14Q4G2ZnNQE/Gy4ma4UQSCcGqG85AqYWJ81Blj4thzWxZLpE1ZDqGNJilI0zQeMu2fH39rrFrBqt5b81X6TKYMCjvEc=,iv:sBkqMnLIEHmg8Bxv/wO109qKItTO+zFfGvHAhwwLoqI=,tag:5t82yBl7V6ITFVoh3imWoA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/Caddyfile b/infra/Caddyfile index d1af2b1081..d65c80d7de 100644 --- a/infra/Caddyfile +++ b/infra/Caddyfile @@ -21,11 +21,11 @@ root * /sites file_server { fs s3 { - bucket {$ASSETS_BUCKET_NAME:assets} - region {$ASSETS_REGION:us-east-1} + bucket {$S3_BUCKET_NAME:assets} + region {$S3_REGION:us-east-1} endpoint {$S3_ENDPOINT:http://minio:9000} - access_key {$ASSETS_UPLOAD_KEY} - secret_key {$ASSETS_UPLOAD_SECRET_KEY} + access_key {$S3_ACCESS_KEY} + secret_key {$S3_SECRET_KEY} } } } diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index 2d7f8975be..f4c286f7e0 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -30,11 +30,11 @@ root * /sites file_server { fs s3 { - bucket {$ASSETS_BUCKET_NAME:assets} - region {$ASSETS_REGION:us-east-1} + bucket {$S3_BUCKET_NAME:assets} + region {$S3_REGION:us-east-1} endpoint {$S3_ENDPOINT:http://minio:9000} - access_key {$ASSETS_UPLOAD_KEY} - secret_key {$ASSETS_UPLOAD_SECRET_KEY} + access_key {$S3_ACCESS_KEY} + secret_key {$S3_SECRET_KEY} } } } diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index f1ae87cfb7..98479bfa56 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -34,7 +34,7 @@ services: PUBPUB_URL: https://preview-${PR_NUMBER}.pubstar.org PUBPUB_HOSTNAME: preview-${PR_NUMBER}.pubstar.org SITE_BUILDER_ENDPOINT: http://site-builder:4000 - ASSETS_PUBLIC_ENDPOINT: https://preview-${PR_NUMBER}.pubstar.org/assets + S3_PUBLIC_ENDPOINT: https://preview-${PR_NUMBER}.pubstar.org/assets FLAGS: "uploads:off,invites:off,disabled-actions:http+email" networks: [appnet] healthcheck: @@ -125,10 +125,10 @@ services: entrypoint: > /bin/sh -c ' /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; - /usr/bin/mc mb --ignore-existing myminio/"$${ASSETS_BUCKET_NAME}"; - /usr/bin/mc anonymous set download myminio/"$${ASSETS_BUCKET_NAME}"; - /usr/bin/mc admin user add myminio "$${ASSETS_UPLOAD_KEY}" "$${ASSETS_UPLOAD_SECRET_KEY}"; - /usr/bin/mc admin policy attach myminio readwrite --user "$${ASSETS_UPLOAD_KEY}";' + /usr/bin/mc mb --ignore-existing myminio/"$${S3_BUCKET_NAME}"; + /usr/bin/mc anonymous set download myminio/"$${S3_BUCKET_NAME}"; + /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}";' networks: [appnet] deploy: mode: replicated-job diff --git a/packages/context-editor/src/stories/mockUtils.ts b/packages/context-editor/src/stories/mockUtils.ts index c4415b9f73..c966cebd02 100644 --- a/packages/context-editor/src/stories/mockUtils.ts +++ b/packages/context-editor/src/stories/mockUtils.ts @@ -20,18 +20,18 @@ export const getPubs = async (filter: string) => { * Requires minio server to be running * */ const getS3Client = () => { - const region = import.meta.env.STORYBOOK_ASSETS_REGION - const key = import.meta.env.STORYBOOK_ASSETS_UPLOAD_KEY - const secret = import.meta.env.STORYBOOK_ASSETS_UPLOAD_SECRET_KEY + const region = import.meta.env.STORYBOOK_S3_REGION + const key = import.meta.env.STORYBOOK_S3_ACCESS_KEY + const secret = import.meta.env.STORYBOOK_S3_SECRET_KEY const s3Client = new S3Client({ - endpoint: import.meta.env.STORYBOOK_ASSETS_STORAGE_ENDPOINT, + endpoint: import.meta.env.STORYBOOK_S3_ENDPOINT, region: region, credentials: { accessKeyId: key, secretAccessKey: secret, }, - forcePathStyle: import.meta.env.STORYBOOK_ASSETS_STORAGE_ENDPOINT, // Required for MinIO + forcePathStyle: import.meta.env.STORYBOOK_S3_ENDPOINT, // Required for MinIO }) return s3Client @@ -40,7 +40,7 @@ const getS3Client = () => { export const generateSignedAssetUploadUrl = async (key: string) => { const client = getS3Client() - const bucket = import.meta.env.STORYBOOK_ASSETS_BUCKET_NAME + const bucket = import.meta.env.STORYBOOK_S3_BUCKET_NAME const command = new PutObjectCommand({ Bucket: bucket, Key: key, diff --git a/self-host/.env.example b/self-host/.env.example index e8faa80fd0..fc212917c0 100644 --- a/self-host/.env.example +++ b/self-host/.env.example @@ -17,15 +17,15 @@ POSTGRES_PORT=5432 # don't forget to update the port in docker-compose.yml if yo MINIO_ROOT_USER= # change this! this is the username for your file server! MINIO_ROOT_PASSWORD= # change this! this is the password for your file server! -ASSETS_BUCKET_NAME=assets -ASSETS_UPLOAD_KEY= # change this! example: asset-user -ASSETS_UPLOAD_SECRET_KEY= # change this! -ASSETS_REGION=us-east-1 # leave this unchanged, unless you are hosting files on a different region on actual AWS +S3_BUCKET_NAME=assets +S3_ACCESS_KEY= # change this! example: asset-user +S3_SECRET_KEY= # change this! +S3_REGION=us-east-1 # leave this unchanged, unless you are hosting files on a different region on actual AWS # this is the default value but you ideally should set this up more nicely using our caddy service -ASSETS_STORAGE_ENDPOINT="http://localhost:9000" +S3_ENDPOINT="http://localhost:9000" # you could also set this to the secured endpoint of your file server -# ASSETS_STORAGE_ENDPOINT="https://example.com/assets" +# S3_ENDPOINT="https://example.com/assets" MAILGUN_SMTP_HOST=localhost MAILGUN_SMTP_PORT=54325 diff --git a/self-host/README.md b/self-host/README.md index 60537c378a..25e1fa9871 100644 --- a/self-host/README.md +++ b/self-host/README.md @@ -92,11 +92,11 @@ The hosted version of Platfrom uses AWS S3 to host files. When self-hosting, you If you want to use your own S3-compatible storage service, you will need to set the following environment variables: ```sh -ASSETS_BUCKET_NAME="your-bucket-name" -ASSETS_UPLOAD_KEY="your-access-key" -ASSETS_UPLOAD_SECRET_KEY="your-secret-key" -ASSETS_REGION="your-region" -ASSETS_STORAGE_ENDPOINT="your-storage-endpoint" # only necessary if you are using non-AWS S3-compatible storage service +S3_BUCKET_NAME="your-bucket-name" +S3_ACCESS_KEY="your-access-key" +S3_SECRET_KEY="your-secret-key" +S3_REGION="your-region" +S3_ENDPOINT="your-storage-endpoint" # only necessary if you are using non-AWS S3-compatible storage service ``` You should also remove the `minio` and `minio-init` services from the `docker-compose.yml` file. @@ -123,7 +123,7 @@ openssl rand -base64 32 [System.Web.Security.Membership]::GeneratePassword(32,8) ``` -Run one of these commands twice, and use one for `MINIO_ROOT_PASSWORD` and one for `ASSETS_UPLOAD_SECRET_KEY`. +Run one of these commands twice, and use one for `MINIO_ROOT_PASSWORD` and one for `S3_SECRET_KEY`. ```sh # not needed if you're using a remote file server like AWS S3 @@ -131,10 +131,10 @@ MINIO_ROOT_USER= # change this! this is the username for your file server! MINIO_ROOT_PASSWORD= # change this! this is the password for your file server! # these are either the values of an existing S3-compatible storage service, or the values that will be used to create a new MinIO service -ASSETS_BUCKET_NAME= # example: assets -ASSETS_UPLOAD_KEY= # example: asset-user -ASSETS_UPLOAD_SECRET_KEY= # example: a strong secure password -ASSETS_REGION=us-east-1 # leave this unchanged, unless you are hosting files on a different region on actual AWS +S3_BUCKET_NAME= # example: assets +S3_ACCESS_KEY= # example: asset-user +S3_SECRET_KEY= # example: a strong secure password +S3_REGION=us-east-1 # leave this unchanged, unless you are hosting files on a different region on actual AWS ``` Then, after running `docker compose up -d`, you should be able to visit the MinIO console at `http://localhost:9001`. diff --git a/self-host/caddy/Caddyfile b/self-host/caddy/Caddyfile index f1389fe552..d381c02f35 100644 --- a/self-host/caddy/Caddyfile +++ b/self-host/caddy/Caddyfile @@ -23,11 +23,11 @@ example.com { root * /sites file_server { fs s3 { - bucket {$ASSETS_BUCKET_NAME:assets} + bucket {$S3_BUCKET_NAME:assets} region {$S3_REGION:us-east-1} endpoint {$S3_ENDPOINT:http://minio:9000} - access_key {$ASSETS_UPLOAD_KEY} - secret_key {$ASSETS_UPLOAD_SECRET_KEY} + access_key {$S3_ACCESS_KEY} + secret_key {$S3_SECRET_KEY} } } } @@ -40,7 +40,7 @@ example.com { # if you want to use a different domain for your files, you can do so here # for instance, now all your files will be accessible at assets.example.com -# if you go this route, be sure to update your ASSETS_STORAGE_ENDPOINT in .env and restart your services +# if you go this route, be sure to update your S3_ENDPOINT in .env and restart your services # assets.example.com { # reverse_proxy minio:9000 # } diff --git a/self-host/minio-init.sh b/self-host/minio-init.sh index 42f08174ce..cb458681c7 100644 --- a/self-host/minio-init.sh +++ b/self-host/minio-init.sh @@ -1,5 +1,5 @@ /usr/bin/mc alias set myminio http://minio:9000 "${MINIO_ROOT_USER}" "${MINIO_ROOT_PASSWORD}"; -/usr/bin/mc mb --ignore-existing myminio/"${ASSETS_BUCKET_NAME}"; -/usr/bin/mc anonymous set download myminio/"${ASSETS_BUCKET_NAME}"; -/usr/bin/mc admin user add myminio "${ASSETS_UPLOAD_KEY}" "${ASSETS_UPLOAD_SECRET_KEY}"; -/usr/bin/mc admin policy attach myminio readwrite --user "${ASSETS_UPLOAD_KEY}"; \ No newline at end of file +/usr/bin/mc mb --ignore-existing myminio/"${S3_BUCKET_NAME}"; +/usr/bin/mc anonymous set download myminio/"${S3_BUCKET_NAME}"; +/usr/bin/mc admin user add myminio "${S3_ACCESS_KEY}" "${S3_SECRET_KEY}"; +/usr/bin/mc admin policy attach myminio readwrite --user "${S3_ACCESS_KEY}"; \ No newline at end of file From cbc8e65b326aacaf3e4ac8d15a35358b1fc71930 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 12:35:00 +0200 Subject: [PATCH 022/153] fix: renable full pr ci to rebuild stuff --- .github/workflows/on_pr.yml | 198 ++++++++++++++++++------------------ 1 file changed, 99 insertions(+), 99 deletions(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 8f473338ab..78e5af4ec9 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,101 +10,101 @@ permissions: packages: write jobs: - # path-filter: - # runs-on: ubuntu-latest - # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' - # outputs: - # docs: ${{ steps.changes.outputs.docs }} - # steps: - # - uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # - uses: dorny/paths-filter@v3 - # id: changes - # with: - # filters: | - # docs: - # - 'docs/**' + path-filter: + runs-on: ubuntu-latest + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' + outputs: + docs: ${{ steps.changes.outputs.docs }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: dorny/paths-filter@v3 + id: changes + with: + filters: | + docs: + - 'docs/**' - # # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests - # skip_build_sha: - # outputs: - # last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # ref: ${{ github.event.pull_request.head.sha }} - # - name: Check if skip-build is in the commit message - # id: check - # run: | - # echo "commit message: $(git log -1 --pretty=%B)" - # if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then - # echo "skip-build is in the commit message" - # echo "skip-build=true" >> $GITHUB_OUTPUT - # else - # echo "skip-build is not in the commit message" - # echo "skip-build=false" >> $GITHUB_OUTPUT - # echo "skip-build-sha=" >> $GITHUB_OUTPUT - # fi - # - name: Find last successful build SHA - # id: last-build - # if: ${{ steps.check.outputs.skip-build == 'true' }} - # env: - # GH_TOKEN: ${{ github.token }} - # run: | - # pr_number="${{ github.event.pull_request.number }}" + # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests + skip_build_sha: + outputs: + last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + - name: Check if skip-build is in the commit message + id: check + run: | + echo "commit message: $(git log -1 --pretty=%B)" + if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then + echo "skip-build is in the commit message" + echo "skip-build=true" >> $GITHUB_OUTPUT + else + echo "skip-build is not in the commit message" + echo "skip-build=false" >> $GITHUB_OUTPUT + echo "skip-build-sha=" >> $GITHUB_OUTPUT + fi + - name: Find last successful build SHA + id: last-build + if: ${{ steps.check.outputs.skip-build == 'true' }} + env: + GH_TOKEN: ${{ github.token }} + run: | + pr_number="${{ github.event.pull_request.number }}" - # gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ - # --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ - # | jq -s 'sort_by(.created) | reverse | .[].id' -r \ - # | while read run_id; do - # echo "Checking run: $run_id" - # run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") - # echo "Run: $run" - # all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') - # echo "All success for $run_id: $all_success" + gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ + --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ + | jq -s 'sort_by(.created) | reverse | .[].id' -r \ + | while read run_id; do + echo "Checking run: $run_id" + run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") + echo "Run: $run" + all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') + echo "All success for $run_id: $all_success" - # if [ "$all_success" == "true" ]; then - # successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') - # echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT - # echo "Found last successful build at SHA: $successful_sha (run: $run_id)" - # exit 0 - # fi - # done + if [ "$all_success" == "true" ]; then + successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') + echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT + echo "Found last successful build at SHA: $successful_sha (run: $run_id)" + exit 0 + fi + done - # if [ "$all_success" == "false" ]; then - # echo "last-successful-build-sha=" >> $GITHUB_OUTPUT - # echo "No previous successful build found in this PR" - # fi + if [ "$all_success" == "false" ]; then + echo "last-successful-build-sha=" >> $GITHUB_OUTPUT + echo "No previous successful build found in this PR" + fi - # ci: - # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') - # uses: ./.github/workflows/ci.yml + ci: + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') + uses: ./.github/workflows/ci.yml - # build-all: - # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') - # needs: - # - path-filter - # - skip_build_sha - # permissions: - # contents: read - # packages: write - # uses: ./.github/workflows/ghcr-build-all.yml - # secrets: - # SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + build-all: + if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') + needs: + - path-filter + - skip_build_sha + permissions: + contents: read + packages: write + uses: ./.github/workflows/ghcr-build-all.yml + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - # e2e: - # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') - # needs: - # - path-filter - # - build-all - # - skip_build_sha - # uses: ./.github/workflows/e2e.yml - # with: - # image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} + e2e: + if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') + needs: + - path-filter + - build-all + - skip_build_sha + uses: ./.github/workflows/e2e.yml + with: + image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: # if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') @@ -116,8 +116,8 @@ jobs: pull-requests: write with: action: deploy - # image_tag: ${{ github.event.pull_request.head.sha }} - image_tag: 307af6bfa9b083598febb0d4af841a9c66b892f7 + image_tag: ${{ github.event.pull_request.head.sha }} + # image_tag: 307af6bfa9b083598febb0d4af841a9c66b892f7 secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} @@ -170,12 +170,12 @@ jobs: # source-dir: docs/out # action: remove - # status-check: - # needs: - # - ci - # - e2e - # runs-on: ubuntu-latest - # steps: - # - name: ok - # run: | - # echo ok + status-check: + needs: + - ci + - e2e + runs-on: ubuntu-latest + steps: + - name: ok + run: | + echo ok From 6da045df9f501c71de39d42d4905579847df3530 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 12:47:51 +0200 Subject: [PATCH 023/153] fix: go back to quick preview again --- .github/workflows/on_pr.yml | 198 ++++++++++++++++++------------------ 1 file changed, 99 insertions(+), 99 deletions(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 78e5af4ec9..7bc8b9ec6e 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,101 +10,101 @@ permissions: packages: write jobs: - path-filter: - runs-on: ubuntu-latest - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' - outputs: - docs: ${{ steps.changes.outputs.docs }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: dorny/paths-filter@v3 - id: changes - with: - filters: | - docs: - - 'docs/**' + # path-filter: + # runs-on: ubuntu-latest + # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' + # outputs: + # docs: ${{ steps.changes.outputs.docs }} + # steps: + # - uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # - uses: dorny/paths-filter@v3 + # id: changes + # with: + # filters: | + # docs: + # - 'docs/**' - # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests - skip_build_sha: - outputs: - last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.sha }} - - name: Check if skip-build is in the commit message - id: check - run: | - echo "commit message: $(git log -1 --pretty=%B)" - if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then - echo "skip-build is in the commit message" - echo "skip-build=true" >> $GITHUB_OUTPUT - else - echo "skip-build is not in the commit message" - echo "skip-build=false" >> $GITHUB_OUTPUT - echo "skip-build-sha=" >> $GITHUB_OUTPUT - fi - - name: Find last successful build SHA - id: last-build - if: ${{ steps.check.outputs.skip-build == 'true' }} - env: - GH_TOKEN: ${{ github.token }} - run: | - pr_number="${{ github.event.pull_request.number }}" + # # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests + # skip_build_sha: + # outputs: + # last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # ref: ${{ github.event.pull_request.head.sha }} + # - name: Check if skip-build is in the commit message + # id: check + # run: | + # echo "commit message: $(git log -1 --pretty=%B)" + # if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then + # echo "skip-build is in the commit message" + # echo "skip-build=true" >> $GITHUB_OUTPUT + # else + # echo "skip-build is not in the commit message" + # echo "skip-build=false" >> $GITHUB_OUTPUT + # echo "skip-build-sha=" >> $GITHUB_OUTPUT + # fi + # - name: Find last successful build SHA + # id: last-build + # if: ${{ steps.check.outputs.skip-build == 'true' }} + # env: + # GH_TOKEN: ${{ github.token }} + # run: | + # pr_number="${{ github.event.pull_request.number }}" - gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ - --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ - | jq -s 'sort_by(.created) | reverse | .[].id' -r \ - | while read run_id; do - echo "Checking run: $run_id" - run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") - echo "Run: $run" - all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') - echo "All success for $run_id: $all_success" + # gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ + # --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ + # | jq -s 'sort_by(.created) | reverse | .[].id' -r \ + # | while read run_id; do + # echo "Checking run: $run_id" + # run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") + # echo "Run: $run" + # all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') + # echo "All success for $run_id: $all_success" - if [ "$all_success" == "true" ]; then - successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') - echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT - echo "Found last successful build at SHA: $successful_sha (run: $run_id)" - exit 0 - fi - done + # if [ "$all_success" == "true" ]; then + # successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') + # echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT + # echo "Found last successful build at SHA: $successful_sha (run: $run_id)" + # exit 0 + # fi + # done - if [ "$all_success" == "false" ]; then - echo "last-successful-build-sha=" >> $GITHUB_OUTPUT - echo "No previous successful build found in this PR" - fi + # if [ "$all_success" == "false" ]; then + # echo "last-successful-build-sha=" >> $GITHUB_OUTPUT + # echo "No previous successful build found in this PR" + # fi - ci: - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') - uses: ./.github/workflows/ci.yml + # ci: + # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') + # uses: ./.github/workflows/ci.yml - build-all: - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') - needs: - - path-filter - - skip_build_sha - permissions: - contents: read - packages: write - uses: ./.github/workflows/ghcr-build-all.yml - secrets: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + # build-all: + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') + # needs: + # - path-filter + # - skip_build_sha + # permissions: + # contents: read + # packages: write + # uses: ./.github/workflows/ghcr-build-all.yml + # secrets: + # SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - e2e: - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') - needs: - - path-filter - - build-all - - skip_build_sha - uses: ./.github/workflows/e2e.yml - with: - image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} + # e2e: + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') + # needs: + # - path-filter + # - build-all + # - skip_build_sha + # uses: ./.github/workflows/e2e.yml + # with: + # image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: # if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') @@ -116,8 +116,8 @@ jobs: pull-requests: write with: action: deploy - image_tag: ${{ github.event.pull_request.head.sha }} - # image_tag: 307af6bfa9b083598febb0d4af841a9c66b892f7 + # image_tag: ${{ github.event.pull_request.head.sha }} + image_tag: cbc8e65b326aacaf3e4ac8d15a35358b1fc71930 secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} @@ -170,12 +170,12 @@ jobs: # source-dir: docs/out # action: remove - status-check: - needs: - - ci - - e2e - runs-on: ubuntu-latest - steps: - - name: ok - run: | - echo ok + # status-check: + # needs: + # - ci + # - e2e + # runs-on: ubuntu-latest + # steps: + # - name: ok + # run: | + # echo ok From fbb267697c57f47cbc47b5b38aa288b6057704c2 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 12:56:35 +0200 Subject: [PATCH 024/153] fix: rm on demand tls --- infra/Caddyfile.preview | 8 -------- 1 file changed, 8 deletions(-) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index f4c286f7e0..80d43b29ff 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -1,17 +1,9 @@ { admin :2019 - on_demand_tls { - interval 2m - burst 5 - } } :443 { - tls { - on_demand - } - encode gzip handle_path /assets* { From d238cad4e5774755750f9513757eeb7829992126 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 13:02:11 +0200 Subject: [PATCH 025/153] fix: rm s3 thing --- infra/Caddyfile.preview | 38 ++++++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 10 deletions(-) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index 80d43b29ff..b54ba29d2d 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -3,6 +3,33 @@ } + +(s3site) { + # strip trailing slash from paths (except root) + @pathWithSlash path_regexp dir (.+)/$ + handle @pathWithSlash { + redir {re.dir.1} permanent + } + + # rewrite to include bucket path + rewrite * /{args[0]}{uri} + + # reverse proxy to garage S3 API + reverse_proxy {args[1]} { + # handle 403/404 by trying index.html + @error status 403 404 + handle_response @error { + rewrite * {uri}/index.html + reverse_proxy {args[1]} { + @nestedError status 404 + handle_response @nestedError { + respond "Not found" 404 + } + } + } + } +} + :443 { encode gzip @@ -19,16 +46,7 @@ } handle_path /sites/* { - root * /sites - file_server { - fs s3 { - bucket {$S3_BUCKET_NAME:assets} - region {$S3_REGION:us-east-1} - endpoint {$S3_ENDPOINT:http://minio:9000} - access_key {$S3_ACCESS_KEY} - secret_key {$S3_SECRET_KEY} - } - } + import s3site {$S3_BUCKET_NAME:assets} {$S3_ENDPOINT:http://minio:9000} } handle_path /emails/* { From eb4c075168191ca76f4fa39df73dfc7fa889698d Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 13:12:26 +0200 Subject: [PATCH 026/153] fix: tls internal? --- infra/Caddyfile.preview | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index b54ba29d2d..36ced6a23c 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -1,5 +1,6 @@ { admin :2019 + debug } @@ -31,6 +32,10 @@ } :443 { + tls internal { + on_demand + } + encode gzip handle_path /assets* { From fdb42387d108643b35f7f2f319548f75231febf0 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 13:16:08 +0200 Subject: [PATCH 027/153] fix: slightly better on_demand --- infra/Caddyfile.preview | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index 36ced6a23c..4e1210a9f4 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -1,9 +1,22 @@ { admin :2019 debug - + on_demand_tls { + ask http://localhost:8888/allow-domain + } } +# this only allows preview-*.pubstar.org domains to be used for TLS certificates +# prevents abuse +:8080 { + @allow expression {path} == "/allow-domain" && {query.domain}.matches(`^preview-[0-9]+\.pubstar\.org$`) + handle @allow { + respond "OK" 200 + } + + respond "Not allowed" 403 +} + (s3site) { # strip trailing slash from paths (except root) From 8853e477647af7487c48caf2848dfe513f5f5914 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 13:27:20 +0200 Subject: [PATCH 028/153] fix: match ask --- infra/Caddyfile.preview | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index 4e1210a9f4..d817ec3dc5 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -8,7 +8,7 @@ # this only allows preview-*.pubstar.org domains to be used for TLS certificates # prevents abuse -:8080 { +:8888 { @allow expression {path} == "/allow-domain" && {query.domain}.matches(`^preview-[0-9]+\.pubstar\.org$`) handle @allow { respond "OK" 200 From 2c234f5bd258a56aa5b876de924a3496278b58f7 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 13:33:35 +0200 Subject: [PATCH 029/153] fix: correct ask jesus --- infra/Caddyfile.preview | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index d817ec3dc5..f9e4bbd392 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -9,7 +9,7 @@ # this only allows preview-*.pubstar.org domains to be used for TLS certificates # prevents abuse :8888 { - @allow expression {path} == "/allow-domain" && {query.domain}.matches(`^preview-[0-9]+\.pubstar\.org$`) + @allow expression {path} == "/allow-domain" && {query.domain}.matches(`^pr-[0-9]+\.pubstar\.org$`) handle @allow { respond "OK" 200 } From 344c7f02f87e8decc96c6d1ef9ae12e42f59c2e0 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 14:13:58 +0200 Subject: [PATCH 030/153] fix: correct matches query --- infra/Caddyfile.preview | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview index f9e4bbd392..722a4fe3a7 100644 --- a/infra/Caddyfile.preview +++ b/infra/Caddyfile.preview @@ -9,7 +9,7 @@ # this only allows preview-*.pubstar.org domains to be used for TLS certificates # prevents abuse :8888 { - @allow expression {path} == "/allow-domain" && {query.domain}.matches(`^pr-[0-9]+\.pubstar\.org$`) + @allow expression {path} == "/allow-domain" && {query.domain}.matches("pr-[0-9]+.pubstar.org") handle @allow { respond "OK" 200 } From 646c8f52204d113e8491c1ac148cf2463e847148 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 14:29:27 +0200 Subject: [PATCH 031/153] fix: consistent naming, wait for platform --- .github/workflows/preview.yml | 18 ++++++++++-------- infra/stack.preview.yml | 6 +++--- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 34e5e08a9a..9145fb3034 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -112,17 +112,19 @@ jobs: sudo docker pull ghcr.io/knowledgefutures/platform:"$IMAGE_TAG" # deploy/update stack - sudo env IMAGE_TAG="$IMAGE_TAG" PREVIEW_HOST="$PREVIEW_HOST" \ + sudo env IMAGE_TAG="$IMAGE_TAG" PREVIEW_HOST="$PREVIEW_HOST" PR_NUMBER="$PR_NUMBER" \ docker stack deploy -c stack.preview.yml \ --with-registry-auth --resolve-image always --prune "$STACK_NAME" + # caddy's config is a bind mount, so swarm won't restart + # the proxy when only the Caddyfile changes on disk + sudo docker service update --force "${STACK_NAME}_proxy" + sudo docker stack services "$STACK_NAME" sudo docker image prune -f - - # wait until rollout is complete and then clear cache wait_rollout() { - echo "Beginning wait for rollout..." + echo "Beginning wait for rollout of $1..." svc="$1" timeout="${2:-600}" end=$((SECONDS+timeout)) @@ -132,20 +134,20 @@ jobs: running="$(sudo docker service ps "$svc" --filter desired-state=running --format '{{.CurrentState}}' 2>/dev/null | grep -c '^Running' || true)" state="$(sudo docker service inspect "$svc" --format '{{if .UpdateStatus}}{{.UpdateStatus.State}}{{end}}' 2>/dev/null || echo "")" echo " $svc: desired=$desired running=$running state=$state" - + if [[ -n "$desired" && "$running" == "$desired" ]] && { [[ -z "$state" ]] || [[ "$state" == "completed" ]]; }; then echo " $svc rollout complete" return 0 fi - + sleep 5 done - + echo "Rollout timeout for $svc" return 1 } - wait_rollout $STACK_NAME 600 + wait_rollout "${STACK_NAME}_platform" 600 EOS diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 98479bfa56..98193a9ba5 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -31,10 +31,10 @@ services: HOSTNAME: "0.0.0.0" NODE_ENV: production PORT: "3000" - PUBPUB_URL: https://preview-${PR_NUMBER}.pubstar.org - PUBPUB_HOSTNAME: preview-${PR_NUMBER}.pubstar.org + PUBPUB_URL: https://pr-${PR_NUMBER}.pubstar.org + PUBPUB_HOSTNAME: pr-${PR_NUMBER}.pubstar.org SITE_BUILDER_ENDPOINT: http://site-builder:4000 - S3_PUBLIC_ENDPOINT: https://preview-${PR_NUMBER}.pubstar.org/assets + S3_PUBLIC_ENDPOINT: https://pr-${PR_NUMBER}.pubstar.org/assets FLAGS: "uploads:off,invites:off,disabled-actions:http+email" networks: [appnet] healthcheck: From 8acc4384f7c8c0a6633452690aa546cedf6ea0d3 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 15:22:42 +0200 Subject: [PATCH 032/153] fix: properly indent --- .github/workflows/preview.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index 9145fb3034..bec0c0ddb3 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -149,7 +149,7 @@ jobs: wait_rollout "${STACK_NAME}_platform" 600 - EOS + EOS - name: Teardown preview stack if: inputs.action == 'teardown' From 4116a6499724b10012c7d5da0cc68da7f921682e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 15:24:44 +0200 Subject: [PATCH 033/153] feat: run migrations during instrumentation rather than a separate service --- .github/workflows/deploy.yml | 19 ---- .github/workflows/e2e.yml | 1 - .github/workflows/ghcr-build-all.yml | 11 -- Dockerfile | 2 + core/instrumentation.ts | 7 ++ core/lib/server/migrate.ts | 158 +++++++++++++++++++++++++++ infra/stack.preview.yml | 12 -- infra/stack.yml | 12 -- self-host/docker-compose.yml | 21 +--- 9 files changed, 170 insertions(+), 73 deletions(-) create mode 100644 core/lib/server/migrate.ts diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 9649598583..8e9d34f39c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -99,25 +99,6 @@ jobs: ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform:latest' || '' }} platforms: linux/amd64 - - name: Build and push platform-migrations - uses: docker/build-push-action@v6 - with: - context: . - push: true - provenance: false - sbom: false - cache-from: type=gha,scope=platform-migrations - cache-to: type=gha,mode=max,scope=platform-migrations - build-args: | - CI=true - secrets: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - target: monorepo - tags: | - ghcr.io/knowledgefutures/platform-migrations:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform-migrations:latest' || '' }} - platforms: linux/amd64 - - name: Build and push platform-jobs uses: docker/build-push-action@v6 with: diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index b60a889c71..d147f1eae0 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -87,7 +87,6 @@ jobs: run: | echo "core_label=ghcr.io/knowledgefutures/platform:$IMAGE_TAG" >> $GITHUB_OUTPUT echo "jobs_label=ghcr.io/knowledgefutures/platform-jobs:$IMAGE_TAG" >> $GITHUB_OUTPUT - echo "base_label=ghcr.io/knowledgefutures/platform-migrations:$IMAGE_TAG" >> $GITHUB_OUTPUT echo "site_builder_label=ghcr.io/knowledgefutures/platform-site-builder:$IMAGE_TAG" >> $GITHUB_OUTPUT - name: Install dependencies diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index 70c46bdf6f..00081a272e 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -10,9 +10,6 @@ on: core-image: description: 'Core image ref' value: ${{ jobs.build-core.outputs.image-sha }} - base-image: - description: 'Base/migrations image ref' - value: ${{ jobs.build-base.outputs.image-sha }} jobs-image: description: 'Jobs image ref' value: ${{ jobs.build-jobs.outputs.image-sha }} @@ -24,14 +21,6 @@ on: required: true jobs: - build-base: - uses: ./.github/workflows/ghcr-build-template.yml - with: - ghcr_image_name: platform-migrations - publish_latest: ${{ inputs.publish_latest }} - secrets: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - build-core: uses: ./.github/workflows/ghcr-build-template.yml with: diff --git a/Dockerfile b/Dockerfile index 9b052300e4..72c772c19b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -136,5 +136,7 @@ COPY --from=withpackage --chown=node:node /usr/src/app/core/.next/static ./core/ COPY --from=withpackage --chown=node:node /usr/src/app/core/public ./core/public # needed to set the database url correctly based on PGHOST variables COPY --from=withpackage --chown=node:node /usr/src/app/core/.env.docker ./core/.env +# migration sql files, applied automatically during startup instrumentation +COPY --from=withpackage --chown=node:node /usr/src/app/core/prisma/migrations ./core/prisma/migrations CMD ["node", "core/server.js"] diff --git a/core/instrumentation.ts b/core/instrumentation.ts index efaa830c1e..58d6991428 100644 --- a/core/instrumentation.ts +++ b/core/instrumentation.ts @@ -16,6 +16,7 @@ export async function register() { } logger.info(`Registering instrumentation hook for ${process.env.NEXT_RUNTIME}`) + if (process.env.NEXT_RUNTIME === "nodejs") { if (process.env.NODE_ENV === "development") { logger.info( @@ -23,6 +24,12 @@ export async function register() { ) return } + + if (!process.env.SKIP_MIGRATIONS) { + const { runMigrations } = await import("./lib/server/migrate") + await runMigrations() + } + await import("./instrumentation.node.mts") } else { logger.info("NEXT_RUNTIME is not `nodejs`; skipping OTEL registration.") diff --git a/core/lib/server/migrate.ts b/core/lib/server/migrate.ts new file mode 100644 index 0000000000..85b9766230 --- /dev/null +++ b/core/lib/server/migrate.ts @@ -0,0 +1,158 @@ +import { createHash, randomUUID } from "node:crypto" +import { existsSync, readdirSync, readFileSync } from "node:fs" +import { join, resolve } from "node:path" + +import pg from "pg" +import { logger } from "logger" + +// arbitrary but stable id used to prevent concurrent migration runs across replicas +const ADVISORY_LOCK_ID = 72_398_241 + +const CREATE_MIGRATIONS_TABLE = ` +CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( + "id" VARCHAR(36) NOT NULL, + "checksum" VARCHAR(64) NOT NULL, + "finished_at" TIMESTAMPTZ, + "migration_name" VARCHAR(255) NOT NULL, + "logs" TEXT, + "rolled_back_at" TIMESTAMPTZ, + "started_at" TIMESTAMPTZ NOT NULL DEFAULT now(), + "applied_steps_count" INTEGER NOT NULL DEFAULT 0, + PRIMARY KEY ("id") +)` + +async function connectWithRetry( + connectionString: string, + maxAttempts = 30, + intervalMs = 2000 +): Promise { + for (let attempt = 1; attempt <= maxAttempts; attempt++) { + const client = new pg.Client({ connectionString }) + + try { + await client.connect() + return client + } catch (err) { + client.end().catch(() => {}) + + if (attempt === maxAttempts) { + throw new Error( + `could not connect to database after ${maxAttempts} attempts: ${err}` + ) + } + + logger.info( + `database not ready, retrying in ${intervalMs}ms (attempt ${attempt}/${maxAttempts})...` + ) + await new Promise((r) => setTimeout(r, intervalMs)) + } + } + + throw new Error("unreachable") +} + +function sha256(content: string): string { + return createHash("sha256").update(content).digest("hex") +} + +export async function runMigrations() { + const connectionString = process.env.DATABASE_URL + if (!connectionString) { + throw new Error("DATABASE_URL is required to run migrations") + } + + // in next.js standalone mode, server.js does process.chdir(__dirname) + // which sets cwd to the app directory (e.g. /usr/src/app/core) + const migrationsDir = process.env.MIGRATIONS_DIR + ? resolve(process.env.MIGRATIONS_DIR) + : resolve(process.cwd(), "prisma", "migrations") + + if (!existsSync(migrationsDir)) { + logger.warn(`migrations directory not found at ${migrationsDir}, skipping`) + return + } + + logger.info(`running migrations from ${migrationsDir}`) + const client = await connectWithRetry(connectionString) + + try { + await client.query("SELECT pg_advisory_lock($1)", [ADVISORY_LOCK_ID]) + + await client.query(CREATE_MIGRATIONS_TABLE) + + const { rows: failed } = await client.query<{ migration_name: string }>( + `SELECT "migration_name" FROM "_prisma_migrations" + WHERE "finished_at" IS NULL AND "rolled_back_at" IS NULL` + ) + + if (failed.length > 0) { + const names = failed.map((r) => r.migration_name).join(", ") + throw new Error( + `found migrations in a failed state that need manual resolution: ${names}. ` + + `mark them as rolled back or delete their rows from _prisma_migrations to proceed.` + ) + } + + const { rows: applied } = await client.query<{ migration_name: string }>( + `SELECT "migration_name" FROM "_prisma_migrations" + WHERE "finished_at" IS NOT NULL AND "rolled_back_at" IS NULL` + ) + const appliedNames = new Set(applied.map((r) => r.migration_name)) + + const dirs = readdirSync(migrationsDir, { withFileTypes: true }) + .filter((d) => d.isDirectory()) + .map((d) => d.name) + .sort() + + let count = 0 + + for (const dir of dirs) { + if (appliedNames.has(dir)) { + continue + } + + const sqlPath = join(migrationsDir, dir, "migration.sql") + if (!existsSync(sqlPath)) { + continue + } + + const sql = readFileSync(sqlPath, "utf-8") + const checksum = sha256(sql) + const id = randomUUID() + + logger.info(`applying migration: ${dir}`) + + await client.query( + `INSERT INTO "_prisma_migrations" ("id", "checksum", "migration_name", "started_at", "applied_steps_count") + VALUES ($1, $2, $3, now(), 0)`, + [id, checksum, dir] + ) + + try { + await client.query(sql) + } catch (err) { + await client.query( + `UPDATE "_prisma_migrations" SET "logs" = $1 WHERE "id" = $2`, + [String(err), id] + ) + throw err + } + + await client.query( + `UPDATE "_prisma_migrations" SET "finished_at" = now(), "applied_steps_count" = 1 WHERE "id" = $1`, + [id] + ) + + count++ + } + + if (count > 0) { + logger.info(`applied ${count} migration(s)`) + } else { + logger.info("database is up to date, no pending migrations") + } + } finally { + await client.query("SELECT pg_advisory_unlock($1)", [ADVISORY_LOCK_ID]).catch(() => {}) + await client.end() + } +} diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 98193a9ba5..f8c9f4395b 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -65,18 +65,6 @@ services: restart_policy: condition: on-failure - platform-migrations: - image: ghcr.io/knowledgefutures/platform-migrations:${IMAGE_TAG} - env_file: [.env] - command: ["pnpm", "--filter", "core", "reset"] - networks: [appnet] - deploy: - mode: replicated-job - replicas: 1 - restart_policy: - condition: on-failure - max_attempts: 3 - site-builder: image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} env_file: [.env] diff --git a/infra/stack.yml b/infra/stack.yml index a74b037ee0..faf65a671a 100644 --- a/infra/stack.yml +++ b/infra/stack.yml @@ -72,18 +72,6 @@ services: restart_policy: condition: on-failure - platform-migrations: - image: ghcr.io/knowledgefutures/platform-migrations:${IMAGE_TAG} - env_file: [.env] - command: ['pnpm', '--filter', 'core', 'migrate-docker'] - networks: [appnet] - deploy: - mode: replicated-job - replicas: 1 - restart_policy: - condition: on-failure - max_attempts: 3 - site-builder: image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} env_file: [.env] diff --git a/self-host/docker-compose.yml b/self-host/docker-compose.yml index 8d19b2f79a..29741a1611 100644 --- a/self-host/docker-compose.yml +++ b/self-host/docker-compose.yml @@ -10,8 +10,6 @@ services: condition: service_started platform-jobs: condition: service_started - platform-migrations: - condition: service_completed_successfully minio-init: condition: service_completed_successfully platform: linux/amd64 @@ -24,12 +22,12 @@ services: networks: - app-network - # platfrom jobs service + # platform jobs service # takes care of longer running tasks like scheduling actions platform-jobs: depends_on: - platform-migrations: - condition: service_completed_successfully + db: + condition: service_started platform: linux/amd64 image: ghcr.io/pubpub/platform-jobs:latest env_file: .env @@ -40,19 +38,6 @@ services: networks: - app-network - platform-migrations: - platform: linux/amd64 - depends_on: - db: - condition: service_started - image: ghcr.io/pubpub/platform-migrations:latest - env_file: .env - environment: - DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} - command: ["pnpm", "--filter", "core", "migrate-docker"] - networks: - - app-network - # cache cache: image: valkey/valkey:8-alpine From 6870ae23971480c6ca8340c0d78f94cac9ab030a Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 15:32:03 +0200 Subject: [PATCH 034/153] fix: rerun builds --- .github/workflows/on_pr.yml | 200 ++++++++++++++++++------------------ 1 file changed, 100 insertions(+), 100 deletions(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 7bc8b9ec6e..3564b85cbd 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,107 +10,107 @@ permissions: packages: write jobs: - # path-filter: - # runs-on: ubuntu-latest - # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' - # outputs: - # docs: ${{ steps.changes.outputs.docs }} - # steps: - # - uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # - uses: dorny/paths-filter@v3 - # id: changes - # with: - # filters: | - # docs: - # - 'docs/**' + path-filter: + runs-on: ubuntu-latest + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' + outputs: + docs: ${{ steps.changes.outputs.docs }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: dorny/paths-filter@v3 + id: changes + with: + filters: | + docs: + - 'docs/**' - # # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests - # skip_build_sha: - # outputs: - # last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # ref: ${{ github.event.pull_request.head.sha }} - # - name: Check if skip-build is in the commit message - # id: check - # run: | - # echo "commit message: $(git log -1 --pretty=%B)" - # if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then - # echo "skip-build is in the commit message" - # echo "skip-build=true" >> $GITHUB_OUTPUT - # else - # echo "skip-build is not in the commit message" - # echo "skip-build=false" >> $GITHUB_OUTPUT - # echo "skip-build-sha=" >> $GITHUB_OUTPUT - # fi - # - name: Find last successful build SHA - # id: last-build - # if: ${{ steps.check.outputs.skip-build == 'true' }} - # env: - # GH_TOKEN: ${{ github.token }} - # run: | - # pr_number="${{ github.event.pull_request.number }}" + # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests + skip_build_sha: + outputs: + last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + - name: Check if skip-build is in the commit message + id: check + run: | + echo "commit message: $(git log -1 --pretty=%B)" + if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then + echo "skip-build is in the commit message" + echo "skip-build=true" >> $GITHUB_OUTPUT + else + echo "skip-build is not in the commit message" + echo "skip-build=false" >> $GITHUB_OUTPUT + echo "skip-build-sha=" >> $GITHUB_OUTPUT + fi + - name: Find last successful build SHA + id: last-build + if: ${{ steps.check.outputs.skip-build == 'true' }} + env: + GH_TOKEN: ${{ github.token }} + run: | + pr_number="${{ github.event.pull_request.number }}" - # gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ - # --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ - # | jq -s 'sort_by(.created) | reverse | .[].id' -r \ - # | while read run_id; do - # echo "Checking run: $run_id" - # run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") - # echo "Run: $run" - # all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') - # echo "All success for $run_id: $all_success" + gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ + --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ + | jq -s 'sort_by(.created) | reverse | .[].id' -r \ + | while read run_id; do + echo "Checking run: $run_id" + run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") + echo "Run: $run" + all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') + echo "All success for $run_id: $all_success" - # if [ "$all_success" == "true" ]; then - # successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') - # echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT - # echo "Found last successful build at SHA: $successful_sha (run: $run_id)" - # exit 0 - # fi - # done + if [ "$all_success" == "true" ]; then + successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') + echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT + echo "Found last successful build at SHA: $successful_sha (run: $run_id)" + exit 0 + fi + done - # if [ "$all_success" == "false" ]; then - # echo "last-successful-build-sha=" >> $GITHUB_OUTPUT - # echo "No previous successful build found in this PR" - # fi + if [ "$all_success" == "false" ]; then + echo "last-successful-build-sha=" >> $GITHUB_OUTPUT + echo "No previous successful build found in this PR" + fi - # ci: - # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') - # uses: ./.github/workflows/ci.yml + ci: + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') + uses: ./.github/workflows/ci.yml - # build-all: - # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') - # needs: - # - path-filter - # - skip_build_sha - # permissions: - # contents: read - # packages: write - # uses: ./.github/workflows/ghcr-build-all.yml - # secrets: - # SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + build-all: + if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') + needs: + - path-filter + - skip_build_sha + permissions: + contents: read + packages: write + uses: ./.github/workflows/ghcr-build-all.yml + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - # e2e: - # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') - # needs: - # - path-filter - # - build-all - # - skip_build_sha - # uses: ./.github/workflows/e2e.yml - # with: - # image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} + e2e: + if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') + needs: + - path-filter + - build-all + - skip_build_sha + uses: ./.github/workflows/e2e.yml + with: + image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - # if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') + if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') uses: ./.github/workflows/preview.yml - # needs: - # - build-all + needs: + - build-all permissions: contents: read pull-requests: write @@ -170,12 +170,12 @@ jobs: # source-dir: docs/out # action: remove - # status-check: - # needs: - # - ci - # - e2e - # runs-on: ubuntu-latest - # steps: - # - name: ok - # run: | - # echo ok + status-check: + needs: + - ci + - e2e + runs-on: ubuntu-latest + steps: + - name: ok + run: | + echo ok From 1792116d0d1279eba2ad574741171449d50feb20 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 15:53:27 +0200 Subject: [PATCH 035/153] fix: also reset and seed --- core/instrumentation.ts | 11 ++-- core/lib/server/migrate.ts | 122 ++++++++++++++++++++++--------------- core/prisma/seed.ts | 36 +++++------ infra/stack.preview.yml | 4 ++ 4 files changed, 100 insertions(+), 73 deletions(-) diff --git a/core/instrumentation.ts b/core/instrumentation.ts index 58d6991428..351dc481c3 100644 --- a/core/instrumentation.ts +++ b/core/instrumentation.ts @@ -18,18 +18,15 @@ export async function register() { logger.info(`Registering instrumentation hook for ${process.env.NEXT_RUNTIME}`) if (process.env.NEXT_RUNTIME === "nodejs") { - if (process.env.NODE_ENV === "development") { - logger.info( - "NEXT_RUNTIME is `nodejs` and NODE_ENV is `development`; skipping OTEL + Sentry registration." - ) - return - } - if (!process.env.SKIP_MIGRATIONS) { const { runMigrations } = await import("./lib/server/migrate") await runMigrations() } + if (process.env.NODE_ENV === "development") { + return + } + await import("./instrumentation.node.mts") } else { logger.info("NEXT_RUNTIME is not `nodejs`; skipping OTEL registration.") diff --git a/core/lib/server/migrate.ts b/core/lib/server/migrate.ts index 85b9766230..11eb91e34b 100644 --- a/core/lib/server/migrate.ts +++ b/core/lib/server/migrate.ts @@ -1,8 +1,12 @@ +import type { Database } from "db/Database" +import type { PrismaMigrationsId } from "db/public" + import { createHash, randomUUID } from "node:crypto" import { existsSync, readdirSync, readFileSync } from "node:fs" import { join, resolve } from "node:path" - +import { Kysely, PostgresDialect, sql } from "kysely" import pg from "pg" + import { logger } from "logger" // arbitrary but stable id used to prevent concurrent migration runs across replicas @@ -21,20 +25,17 @@ CREATE TABLE IF NOT EXISTS "_prisma_migrations" ( PRIMARY KEY ("id") )` -async function connectWithRetry( - connectionString: string, - maxAttempts = 30, - intervalMs = 2000 -): Promise { - for (let attempt = 1; attempt <= maxAttempts; attempt++) { - const client = new pg.Client({ connectionString }) +function sha256(content: string): string { + return createHash("sha256").update(content).digest("hex") +} +async function waitForDatabase(pool: pg.Pool, maxAttempts = 30, intervalMs = 2000) { + for (let attempt = 1; attempt <= maxAttempts; attempt++) { try { - await client.connect() - return client + const client = await pool.connect() + client.release() + return } catch (err) { - client.end().catch(() => {}) - if (attempt === maxAttempts) { throw new Error( `could not connect to database after ${maxAttempts} attempts: ${err}` @@ -42,17 +43,11 @@ async function connectWithRetry( } logger.info( - `database not ready, retrying in ${intervalMs}ms (attempt ${attempt}/${maxAttempts})...` + `database not ready, retrying in ${intervalMs}ms (${attempt}/${maxAttempts})...` ) await new Promise((r) => setTimeout(r, intervalMs)) } } - - throw new Error("unreachable") -} - -function sha256(content: string): string { - return createHash("sha256").update(content).digest("hex") } export async function runMigrations() { @@ -72,18 +67,36 @@ export async function runMigrations() { return } + const shouldReset = !!process.env.DB_RESET + const shouldSeed = !!process.env.DB_SEED + logger.info(`running migrations from ${migrationsDir}`) - const client = await connectWithRetry(connectionString) + + // max: 1 ensures every operation (kysely typed queries + raw pool.query) + // shares the same underlying connection session, keeping the advisory lock valid + const pool = new pg.Pool({ connectionString, max: 1 }) + const db = new Kysely({ dialect: new PostgresDialect({ pool }) }) try { - await client.query("SELECT pg_advisory_lock($1)", [ADVISORY_LOCK_ID]) + await waitForDatabase(pool) - await client.query(CREATE_MIGRATIONS_TABLE) + await sql`SELECT pg_advisory_lock(${sql.lit(ADVISORY_LOCK_ID)})`.execute(db) - const { rows: failed } = await client.query<{ migration_name: string }>( - `SELECT "migration_name" FROM "_prisma_migrations" - WHERE "finished_at" IS NULL AND "rolled_back_at" IS NULL` - ) + if (shouldReset) { + logger.info("resetting database (DB_RESET is set)") + await pool.query("DROP SCHEMA public CASCADE") + await pool.query("CREATE SCHEMA public") + } + + // raw string query so pg uses the simple protocol (supports multi-statement sql) + await pool.query(CREATE_MIGRATIONS_TABLE) + + const failed = await db + .selectFrom("_prisma_migrations") + .select("migration_name") + .where("finished_at", "is", null) + .where("rolled_back_at", "is", null) + .execute() if (failed.length > 0) { const names = failed.map((r) => r.migration_name).join(", ") @@ -93,10 +106,13 @@ export async function runMigrations() { ) } - const { rows: applied } = await client.query<{ migration_name: string }>( - `SELECT "migration_name" FROM "_prisma_migrations" - WHERE "finished_at" IS NOT NULL AND "rolled_back_at" IS NULL` - ) + const applied = await db + .selectFrom("_prisma_migrations") + .select("migration_name") + .where("finished_at", "is not", null) + .where("rolled_back_at", "is", null) + .execute() + const appliedNames = new Set(applied.map((r) => r.migration_name)) const dirs = readdirSync(migrationsDir, { withFileTypes: true }) @@ -116,32 +132,33 @@ export async function runMigrations() { continue } - const sql = readFileSync(sqlPath, "utf-8") - const checksum = sha256(sql) - const id = randomUUID() + const migrationSql = readFileSync(sqlPath, "utf-8") + const checksum = sha256(migrationSql) + const id = randomUUID() as PrismaMigrationsId logger.info(`applying migration: ${dir}`) - await client.query( - `INSERT INTO "_prisma_migrations" ("id", "checksum", "migration_name", "started_at", "applied_steps_count") - VALUES ($1, $2, $3, now(), 0)`, - [id, checksum, dir] - ) + await db + .insertInto("_prisma_migrations") + .values({ id, checksum, migration_name: dir }) + .execute() try { - await client.query(sql) + await pool.query(migrationSql) } catch (err) { - await client.query( - `UPDATE "_prisma_migrations" SET "logs" = $1 WHERE "id" = $2`, - [String(err), id] - ) + await db + .updateTable("_prisma_migrations") + .set({ logs: String(err) }) + .where("id", "=", id) + .execute() throw err } - await client.query( - `UPDATE "_prisma_migrations" SET "finished_at" = now(), "applied_steps_count" = 1 WHERE "id" = $1`, - [id] - ) + await db + .updateTable("_prisma_migrations") + .set({ finished_at: new Date(), applied_steps_count: 1 }) + .where("id", "=", id) + .execute() count++ } @@ -151,8 +168,15 @@ export async function runMigrations() { } else { logger.info("database is up to date, no pending migrations") } + + if (shouldSeed) { + logger.info("running database seed (DB_SEED is set)") + const { seed } = await import("~/prisma/seed") + await seed() + } + + await sql`SELECT pg_advisory_unlock(${sql.lit(ADVISORY_LOCK_ID)})`.execute(db) } finally { - await client.query("SELECT pg_advisory_unlock($1)", [ADVISORY_LOCK_ID]).catch(() => {}) - await client.end() + await db.destroy() } } diff --git a/core/prisma/seed.ts b/core/prisma/seed.ts index d125f071c8..ad5337af06 100644 --- a/core/prisma/seed.ts +++ b/core/prisma/seed.ts @@ -16,11 +16,7 @@ const starterId = "bbbbbbbb-bbbb-4bbb-bbbb-bbbbbbbbbbbb" as CommunitiesId const blankId = "cccccccc-cccc-4ccc-cccc-cccccccccccc" as CommunitiesId const coarNotifyId = "dddddddd-dddd-4ddd-dddd-dddddddddddd" as CommunitiesId -async function main() { - // do not seed arcadia if the minimal seed flag is set - // this is because it will slow down ci/testing - // this flag is set in the `globalSetup.ts` file - // and in e2e.yml +export async function seed() { // eslint-disable-next-line no-restricted-properties const shouldSeedLegacy = !process.env.MINIMAL_SEED @@ -53,16 +49,22 @@ async function main() { await seedCoarNotify(coarNotifyId) } -main() - .then(async () => { - logger.info("Finished seeding, exiting...") - process.exit(0) - }) - .catch(async (e) => { - if (!isUniqueConstraintError(e)) { + +// cli entrypoint: only auto-run when executed directly as a script +const isCli = process.argv[1]?.endsWith("seed.ts") || process.argv[1]?.endsWith("seed.js") + +if (isCli) { + seed() + .then(async () => { + logger.info("Finished seeding, exiting...") + process.exit(0) + }) + .catch(async (e) => { + if (!isUniqueConstraintError(e)) { + logger.error(e) + process.exit(1) + } logger.error(e) - process.exit(1) - } - logger.error(e) - logger.info("Attempted to add duplicate entries, db is already seeded?") - }) + logger.info("Attempted to add duplicate entries, db is already seeded?") + }) +} diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index f8c9f4395b..7722e06065 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -36,6 +36,8 @@ services: SITE_BUILDER_ENDPOINT: http://site-builder:4000 S3_PUBLIC_ENDPOINT: https://pr-${PR_NUMBER}.pubstar.org/assets FLAGS: "uploads:off,invites:off,disabled-actions:http+email" + DB_RESET: true + DB_SEED: true networks: [appnet] healthcheck: test: @@ -101,6 +103,8 @@ services: image: minio/minio:latest env_file: [.env] command: server --console-address ":9001" /data + environment: + MINIO_BROWSER_REDIRECT_URL: https://pr-${PR_NUMBER}.pubstar.org/assets-ui networks: [appnet] deploy: replicas: 1 From cc36e7ecdfcf3f020f17cadeee1e6722d77946cf Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 16:05:04 +0200 Subject: [PATCH 036/153] fix: speed up test --- .github/workflows/on_pr.yml | 200 ++++++++++++++++++------------------ infra/stack.preview.yml | 4 +- 2 files changed, 102 insertions(+), 102 deletions(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 3564b85cbd..8cabd0742b 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,114 +10,114 @@ permissions: packages: write jobs: - path-filter: - runs-on: ubuntu-latest - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' - outputs: - docs: ${{ steps.changes.outputs.docs }} - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: dorny/paths-filter@v3 - id: changes - with: - filters: | - docs: - - 'docs/**' + # path-filter: + # runs-on: ubuntu-latest + # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' + # outputs: + # docs: ${{ steps.changes.outputs.docs }} + # steps: + # - uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # - uses: dorny/paths-filter@v3 + # id: changes + # with: + # filters: | + # docs: + # - 'docs/**' # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests - skip_build_sha: - outputs: - last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - ref: ${{ github.event.pull_request.head.sha }} - - name: Check if skip-build is in the commit message - id: check - run: | - echo "commit message: $(git log -1 --pretty=%B)" - if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then - echo "skip-build is in the commit message" - echo "skip-build=true" >> $GITHUB_OUTPUT - else - echo "skip-build is not in the commit message" - echo "skip-build=false" >> $GITHUB_OUTPUT - echo "skip-build-sha=" >> $GITHUB_OUTPUT - fi - - name: Find last successful build SHA - id: last-build - if: ${{ steps.check.outputs.skip-build == 'true' }} - env: - GH_TOKEN: ${{ github.token }} - run: | - pr_number="${{ github.event.pull_request.number }}" + # skip_build_sha: + # outputs: + # last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} + # runs-on: ubuntu-latest + # steps: + # - name: Checkout + # uses: actions/checkout@v4 + # with: + # fetch-depth: 0 + # ref: ${{ github.event.pull_request.head.sha }} + # - name: Check if skip-build is in the commit message + # id: check + # run: | + # echo "commit message: $(git log -1 --pretty=%B)" + # if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then + # echo "skip-build is in the commit message" + # echo "skip-build=true" >> $GITHUB_OUTPUT + # else + # echo "skip-build is not in the commit message" + # echo "skip-build=false" >> $GITHUB_OUTPUT + # echo "skip-build-sha=" >> $GITHUB_OUTPUT + # fi + # - name: Find last successful build SHA + # id: last-build + # if: ${{ steps.check.outputs.skip-build == 'true' }} + # env: + # GH_TOKEN: ${{ github.token }} + # run: | + # pr_number="${{ github.event.pull_request.number }}" - gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ - --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ - | jq -s 'sort_by(.created) | reverse | .[].id' -r \ - | while read run_id; do - echo "Checking run: $run_id" - run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") - echo "Run: $run" - all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') - echo "All success for $run_id: $all_success" + # gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ + # --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ + # | jq -s 'sort_by(.created) | reverse | .[].id' -r \ + # | while read run_id; do + # echo "Checking run: $run_id" + # run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") + # echo "Run: $run" + # all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') + # echo "All success for $run_id: $all_success" - if [ "$all_success" == "true" ]; then - successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') - echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT - echo "Found last successful build at SHA: $successful_sha (run: $run_id)" - exit 0 - fi - done + # if [ "$all_success" == "true" ]; then + # successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') + # echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT + # echo "Found last successful build at SHA: $successful_sha (run: $run_id)" + # exit 0 + # fi + # done - if [ "$all_success" == "false" ]; then - echo "last-successful-build-sha=" >> $GITHUB_OUTPUT - echo "No previous successful build found in this PR" - fi + # if [ "$all_success" == "false" ]; then + # echo "last-successful-build-sha=" >> $GITHUB_OUTPUT + # echo "No previous successful build found in this PR" + # fi - ci: - if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') - uses: ./.github/workflows/ci.yml + # ci: + # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') + # uses: ./.github/workflows/ci.yml - build-all: - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') - needs: - - path-filter - - skip_build_sha - permissions: - contents: read - packages: write - uses: ./.github/workflows/ghcr-build-all.yml - secrets: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + # build-all: + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') + # needs: + # - path-filter + # - skip_build_sha + # permissions: + # contents: read + # packages: write + # uses: ./.github/workflows/ghcr-build-all.yml + # secrets: + # SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - e2e: - if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') - needs: - - path-filter - - build-all - - skip_build_sha - uses: ./.github/workflows/e2e.yml - with: - image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} + # e2e: + # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') + # needs: + # - path-filter + # - build-all + # - skip_build_sha + # uses: ./.github/workflows/e2e.yml + # with: + # image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') + # if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') uses: ./.github/workflows/preview.yml - needs: - - build-all + # needs: + # - build-all permissions: contents: read pull-requests: write with: action: deploy # image_tag: ${{ github.event.pull_request.head.sha }} - image_tag: cbc8e65b326aacaf3e4ac8d15a35358b1fc71930 + image_tag: 1792116d0d1279eba2ad574741171449d50feb20 secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} @@ -170,12 +170,12 @@ jobs: # source-dir: docs/out # action: remove - status-check: - needs: - - ci - - e2e - runs-on: ubuntu-latest - steps: - - name: ok - run: | - echo ok + # status-check: + # needs: + # - ci + # - e2e + # runs-on: ubuntu-latest + # steps: + # - name: ok + # run: | + # echo ok diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 7722e06065..ef1560e4c6 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -36,8 +36,8 @@ services: SITE_BUILDER_ENDPOINT: http://site-builder:4000 S3_PUBLIC_ENDPOINT: https://pr-${PR_NUMBER}.pubstar.org/assets FLAGS: "uploads:off,invites:off,disabled-actions:http+email" - DB_RESET: true - DB_SEED: true + DB_RESET: "true" + DB_SEED: "true" networks: [appnet] healthcheck: test: From e65d3f7dd5d5348c8e2b169c61427f46f3723bab Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 16:24:50 +0200 Subject: [PATCH 037/153] fix: add mechanism to skip autocache during seed --- core/lib/server/cache/autoCache.ts | 31 ++++++++++++-- core/lib/server/cache/autoRevalidate.ts | 25 ++++++++++-- core/lib/server/cache/skipCacheStore.ts | 54 +++++++++++++++++++++++++ core/lib/server/migrate.ts | 5 ++- core/prisma/seed/seedCommunity.ts | 4 +- 5 files changed, 111 insertions(+), 8 deletions(-) create mode 100644 core/lib/server/cache/skipCacheStore.ts diff --git a/core/lib/server/cache/autoCache.ts b/core/lib/server/cache/autoCache.ts index b6bad2699d..c09875700c 100644 --- a/core/lib/server/cache/autoCache.ts +++ b/core/lib/server/cache/autoCache.ts @@ -4,12 +4,14 @@ import type { AutoCacheOptions, DirectAutoOutput, ExecuteFn, SQB } from "./types import { cache } from "react" import { logger } from "logger" +import { tryCatch } from "utils/try-catch" import { env } from "~/lib/env/env" import { createCacheTag, createCommunityCacheTags } from "./cacheTags" import { getCommunitySlug } from "./getCommunitySlug" import { memoize } from "./memoize" import { cachedFindTables, directAutoOutput } from "./sharedAuto" +import { shouldSkipCache as shouldSkipCacheStore } from "./skipCacheStore" import { getTablesWithLinkedTables } from "./specialTables" import { getTransactionStore, setTransactionStore } from "./transactionStorage" @@ -60,10 +62,33 @@ const executeWithCache = < options?: AutoCacheOptions ) => { const executeFn = cache(async (...args: Parameters) => { - const communitySlug = options?.communitySlug ?? (await getCommunitySlug()) - const compiledQuery = qb.compile() + const willSkipCacheStore = shouldSkipCacheStore("store") + const willSkipCacheFn = options?.skipCacheFn?.() + + const willSkipCache = willSkipCacheStore || willSkipCacheFn + + if (willSkipCache) { + logger.debug( + willSkipCacheStore + ? `Skipping cache for query ${compiledQuery.sql} because of skipCacheStore` + : `Skipping cache for query ${compiledQuery.sql} because of skipCacheFn` + ) + + return qb[method](...args) as ReturnType + } + + const [error, communitySlug] = options?.communitySlug + ? await tryCatch(getCommunitySlug()) + : [null, options?.communitySlug!] + + if (error) { + logger.error(`Error getting community slug: ${error.message}`) + logger.error(compiledQuery.sql) + throw error + } + const tables = await cachedFindTables(compiledQuery, "select") const allTables = getTablesWithLinkedTables(tables) @@ -88,7 +113,7 @@ const executeWithCache = < asOne ) - if (shouldSkipCache || options?.skipCacheFn?.()) { + if (shouldSkipCache) { if (env.CACHE_LOG) { logger.debug(`AUTOCACHE: Skipping cache for query: ${asOne}`) } diff --git a/core/lib/server/cache/autoRevalidate.ts b/core/lib/server/cache/autoRevalidate.ts index bfcd8cf961..68faaa125f 100644 --- a/core/lib/server/cache/autoRevalidate.ts +++ b/core/lib/server/cache/autoRevalidate.ts @@ -4,11 +4,13 @@ import type { AutoRevalidateOptions, DirectAutoOutput, ExecuteFn, QB } from "./t import { revalidatePath, revalidateTag } from "next/cache" import { logger } from "logger" +import { tryCatch } from "utils/try-catch" import { env } from "~/lib/env/env" import { getCommunitySlug } from "./getCommunitySlug" import { revalidateTagsForCommunity } from "./revalidate" import { cachedFindTables, directAutoOutput } from "./sharedAuto" +import { shouldSkipCache as shouldSkipCacheStore } from "./skipCacheStore" import { setTransactionStore } from "./transactionStorage" const executeWithRevalidate = < @@ -20,11 +22,28 @@ const executeWithRevalidate = < options?: AutoRevalidateOptions ) => { const executeFn = async (...args: Parameters) => { - const communitySlug = options?.communitySlug ?? (await getCommunitySlug()) + const compiledQuery = qb.compile() - const communitySlugs = Array.isArray(communitySlug) ? communitySlug : [communitySlug] + const willSkipCacheStore = shouldSkipCacheStore("invalidate") - const compiledQuery = qb.compile() + if (willSkipCacheStore) { + logger.debug( + `Skipping revalidation for query ${compiledQuery.sql} because of skipCacheStore` + ) + return qb[method](...args) as ReturnType + } + + const [error, communitySlug] = options?.communitySlug + ? await tryCatch(getCommunitySlug()) + : [null, options?.communitySlug!] + + if (error) { + logger.error(`Error getting community slug: ${error.message}`) + logger.error(compiledQuery.sql) + throw error + } + + const communitySlugs = Array.isArray(communitySlug) ? communitySlug : [communitySlug] const tables = await cachedFindTables(compiledQuery, "mutation") diff --git a/core/lib/server/cache/skipCacheStore.ts b/core/lib/server/cache/skipCacheStore.ts new file mode 100644 index 0000000000..1d690270b9 --- /dev/null +++ b/core/lib/server/cache/skipCacheStore.ts @@ -0,0 +1,54 @@ +import { AsyncLocalStorage } from "node:async_hooks" + +import { logger } from "logger" + +const SKIP_CACHE_OPTIONS = ["store", "invalidate", "both"] as const +export type SkipCacheOptions = (typeof SKIP_CACHE_OPTIONS)[number] + +// tags +export const skipCacheStore = new AsyncLocalStorage<{ + /** + * Whether to store the result in the cache or invalidate it + */ + shouldSkipCache: "store" | "invalidate" | "both" | undefined +}>() + +export const setSkipCacheStore = ({ shouldSkipCache }: { shouldSkipCache: SkipCacheOptions }) => { + const store = skipCacheStore.getStore() + + if (!store) { + logger.debug("no skip cache store found") + return + } + + store.shouldSkipCache = shouldSkipCache + + return store +} + +/** + * whether or not to skip the cache + */ +export const shouldSkipCache = (skipCacheOptions: SkipCacheOptions) => { + const store = skipCacheStore.getStore() + + if (!store) { + return false + } + + if (store.shouldSkipCache === "both") { + return true + } + + return store.shouldSkipCache === skipCacheOptions +} + +/** + * wrap a function with this to skip storing and/or invalidating the cache + * useful when outside of community contexts and you don't want to cache results + */ +export const withUncached = (fn: () => Promise, skipCacheOptions?: SkipCacheOptions) => { + return skipCacheStore.run({ shouldSkipCache: skipCacheOptions ?? "invalidate" }, async () => { + return fn() + }) +} diff --git a/core/lib/server/migrate.ts b/core/lib/server/migrate.ts index 11eb91e34b..91c0180dc3 100644 --- a/core/lib/server/migrate.ts +++ b/core/lib/server/migrate.ts @@ -172,7 +172,10 @@ export async function runMigrations() { if (shouldSeed) { logger.info("running database seed (DB_SEED is set)") const { seed } = await import("~/prisma/seed") - await seed() + + // prevents autocache from running, breaking seed + const { withUncached } = await import("~/lib/server/cache/skipCacheStore") + await withUncached(seed, "both") } await sql`SELECT pg_advisory_unlock(${sql.lit(ADVISORY_LOCK_ID)})`.execute(db) diff --git a/core/prisma/seed/seedCommunity.ts b/core/prisma/seed/seedCommunity.ts index 28ba880171..e4872c743e 100644 --- a/core/prisma/seed/seedCommunity.ts +++ b/core/prisma/seed/seedCommunity.ts @@ -1196,10 +1196,12 @@ export async function seedCommunity< logger.info( `${createdCommunity.name}: ${options?.parallelPubs ? "Parallelly" : "Sequentially"} - Creating ${createPubRecursiveInput.length} pubs` ) + if (options?.parallelPubs) { const input = createPubRecursiveInput.map((input) => createPubRecursiveNew({ ...input })) - setInterval(() => { + // using will auto clear the interval when the block is exited + using _interval = setInterval(() => { logger.info(`${createdCommunity.name}: Creating Pubs...`) }, 1000) From b40f1a90895d8418c763ef9bdc0ab3a7bd7cf187 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 16:53:10 +0200 Subject: [PATCH 038/153] fix: preview again... --- .github/workflows/on_pr.yml | 202 ++++++++++++++++++------------------ 1 file changed, 101 insertions(+), 101 deletions(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 8cabd0742b..ecdbff70ff 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,114 +10,114 @@ permissions: packages: write jobs: - # path-filter: - # runs-on: ubuntu-latest - # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' - # outputs: - # docs: ${{ steps.changes.outputs.docs }} - # steps: - # - uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # - uses: dorny/paths-filter@v3 - # id: changes - # with: - # filters: | - # docs: - # - 'docs/**' + path-filter: + runs-on: ubuntu-latest + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || github.event.action == 'closed' || github.event.action == 'labeled' || github.event.action == 'unlabeled' + outputs: + docs: ${{ steps.changes.outputs.docs }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: dorny/paths-filter@v3 + id: changes + with: + filters: | + docs: + - 'docs/**' # you can skip the build by adding 'skip-build' to the commit message, useful when testing tests - # skip_build_sha: - # outputs: - # last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} - # runs-on: ubuntu-latest - # steps: - # - name: Checkout - # uses: actions/checkout@v4 - # with: - # fetch-depth: 0 - # ref: ${{ github.event.pull_request.head.sha }} - # - name: Check if skip-build is in the commit message - # id: check - # run: | - # echo "commit message: $(git log -1 --pretty=%B)" - # if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then - # echo "skip-build is in the commit message" - # echo "skip-build=true" >> $GITHUB_OUTPUT - # else - # echo "skip-build is not in the commit message" - # echo "skip-build=false" >> $GITHUB_OUTPUT - # echo "skip-build-sha=" >> $GITHUB_OUTPUT - # fi - # - name: Find last successful build SHA - # id: last-build - # if: ${{ steps.check.outputs.skip-build == 'true' }} - # env: - # GH_TOKEN: ${{ github.token }} - # run: | - # pr_number="${{ github.event.pull_request.number }}" + skip_build_sha: + outputs: + last-successful-build-sha: ${{ steps.last-build.outputs.last-successful-build-sha }} + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.event.pull_request.head.sha }} + - name: Check if skip-build is in the commit message + id: check + run: | + echo "commit message: $(git log -1 --pretty=%B)" + if [[ "$(git log -1 --pretty=%B)" == *"skip-build"* ]]; then + echo "skip-build is in the commit message" + echo "skip-build=true" >> $GITHUB_OUTPUT + else + echo "skip-build is not in the commit message" + echo "skip-build=false" >> $GITHUB_OUTPUT + echo "skip-build-sha=" >> $GITHUB_OUTPUT + fi + - name: Find last successful build SHA + id: last-build + if: ${{ steps.check.outputs.skip-build == 'true' }} + env: + GH_TOKEN: ${{ github.token }} + run: | + pr_number="${{ github.event.pull_request.number }}" - # gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ - # --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ - # | jq -s 'sort_by(.created) | reverse | .[].id' -r \ - # | while read run_id; do - # echo "Checking run: $run_id" - # run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") - # echo "Run: $run" - # all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') - # echo "All success for $run_id: $all_success" + gh api "/repos/${{ github.repository }}/actions/workflows/on_pr.yml/runs?event=pull_request&per_page=100" \ + --jq ".workflow_runs[] | select(.pull_requests[]?.number == ${pr_number}) | select(.id < ${{ github.run_id }}) | {id: .id, sha: .head_sha, created: .created_at}" \ + | jq -s 'sort_by(.created) | reverse | .[].id' -r \ + | while read run_id; do + echo "Checking run: $run_id" + run=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}/jobs") + echo "Run: $run" + all_success=$(echo "$run" | jq '[.jobs[] | select(.name | contains("build-all")) | .conclusion] | all(. == "success")') + echo "All success for $run_id: $all_success" - # if [ "$all_success" == "true" ]; then - # successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') - # echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT - # echo "Found last successful build at SHA: $successful_sha (run: $run_id)" - # exit 0 - # fi - # done + if [ "$all_success" == "true" ]; then + successful_sha=$(gh api "/repos/${{ github.repository }}/actions/runs/${run_id}" --jq '.head_sha') + echo "last-successful-build-sha=${successful_sha}" >> $GITHUB_OUTPUT + echo "Found last successful build at SHA: $successful_sha (run: $run_id)" + exit 0 + fi + done - # if [ "$all_success" == "false" ]; then - # echo "last-successful-build-sha=" >> $GITHUB_OUTPUT - # echo "No previous successful build found in this PR" - # fi + if [ "$all_success" == "false" ]; then + echo "last-successful-build-sha=" >> $GITHUB_OUTPUT + echo "No previous successful build found in this PR" + fi - # ci: - # if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') - # uses: ./.github/workflows/ci.yml + ci: + if: github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview') + uses: ./.github/workflows/ci.yml - # build-all: - # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') - # needs: - # - path-filter - # - skip_build_sha - # permissions: - # contents: read - # packages: write - # uses: ./.github/workflows/ghcr-build-all.yml - # secrets: - # SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + build-all: + if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' || (github.event.action == 'labeled' && github.event.label.name == 'preview')) && (needs.skip_build_sha.outputs.last-successful-build-sha == '') + needs: + - path-filter + - skip_build_sha + permissions: + contents: read + packages: write + uses: ./.github/workflows/ghcr-build-all.yml + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - # e2e: - # if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') - # needs: - # - path-filter - # - build-all - # - skip_build_sha - # uses: ./.github/workflows/e2e.yml - # with: - # image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} + e2e: + if: (github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize') && always() && (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') + needs: + - path-filter + - build-all + - skip_build_sha + uses: ./.github/workflows/e2e.yml + with: + image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - # if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') + if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') uses: ./.github/workflows/preview.yml - # needs: - # - build-all + needs: + - build-all permissions: contents: read pull-requests: write with: action: deploy - # image_tag: ${{ github.event.pull_request.head.sha }} - image_tag: 1792116d0d1279eba2ad574741171449d50feb20 + image_tag: ${{ github.event.pull_request.head.sha }} + # image_tag: 1792116d0d1279eba2ad574741171449d50feb20 secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} @@ -170,12 +170,12 @@ jobs: # source-dir: docs/out # action: remove - # status-check: - # needs: - # - ci - # - e2e - # runs-on: ubuntu-latest - # steps: - # - name: ok - # run: | - # echo ok + status-check: + needs: + - ci + - e2e + runs-on: ubuntu-latest + steps: + - name: ok + run: | + echo ok From 649e4db7bda78d344e8a3f94c0f8c6fd61fc6591 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 17:03:00 +0200 Subject: [PATCH 039/153] fix: make logic make sense --- core/lib/server/cache/autoCache.ts | 4 ++-- core/lib/server/cache/autoRevalidate.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/core/lib/server/cache/autoCache.ts b/core/lib/server/cache/autoCache.ts index c09875700c..bea68ed00d 100644 --- a/core/lib/server/cache/autoCache.ts +++ b/core/lib/server/cache/autoCache.ts @@ -80,8 +80,8 @@ const executeWithCache = < } const [error, communitySlug] = options?.communitySlug - ? await tryCatch(getCommunitySlug()) - : [null, options?.communitySlug!] + ? [null, options.communitySlug] + : await tryCatch(getCommunitySlug()) if (error) { logger.error(`Error getting community slug: ${error.message}`) diff --git a/core/lib/server/cache/autoRevalidate.ts b/core/lib/server/cache/autoRevalidate.ts index 68faaa125f..c89015ad12 100644 --- a/core/lib/server/cache/autoRevalidate.ts +++ b/core/lib/server/cache/autoRevalidate.ts @@ -34,8 +34,8 @@ const executeWithRevalidate = < } const [error, communitySlug] = options?.communitySlug - ? await tryCatch(getCommunitySlug()) - : [null, options?.communitySlug!] + ? [null, options.communitySlug] + : await tryCatch(getCommunitySlug()) if (error) { logger.error(`Error getting community slug: ${error.message}`) From 53760805d4d600f8acfb8740448766bcc85ce00b Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 18:54:28 +0200 Subject: [PATCH 040/153] fix: inline html file --- Dockerfile | 2 +- core/prisma/seeds/legacy.ts | 3 +- ...{ponies.snippet.html => ponies.snippet.ts} | 159 +++++++++--------- 3 files changed, 83 insertions(+), 81 deletions(-) rename core/prisma/seeds/{ponies.snippet.html => ponies.snippet.ts} (96%) diff --git a/Dockerfile b/Dockerfile index 72c772c19b..a554830d7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -139,4 +139,4 @@ COPY --from=withpackage --chown=node:node /usr/src/app/core/.env.docker ./core/. # migration sql files, applied automatically during startup instrumentation COPY --from=withpackage --chown=node:node /usr/src/app/core/prisma/migrations ./core/prisma/migrations -CMD ["node", "core/server.js"] +CMD ["node", "--enable-source-maps", "core/server.js"] diff --git a/core/prisma/seeds/legacy.ts b/core/prisma/seeds/legacy.ts index 7a3468c2cc..9766a0f636 100644 --- a/core/prisma/seeds/legacy.ts +++ b/core/prisma/seeds/legacy.ts @@ -1,6 +1,5 @@ import type { CommunitiesId, PubsId } from "db/public" -import { readFile } from "node:fs/promises" import { faker } from "@faker-js/faker" import { CoreSchemaType, MemberRole } from "db/public" @@ -13,7 +12,7 @@ import { usersExisting } from "./users" const abstract = `

The development of AAV capsids for therapeutic gene delivery has exploded in popularity over the past few years. However, humans aren’t the first or only species using viral capsids for gene delivery — wasps evolved this tactic over 100 million years ago. Parasitoid wasps that lay eggs inside arthropod hosts have co-opted ancient viruses for gene delivery to manipulate multiple aspects of the host’s biology, thereby increasing the probability of survival of the wasp larvae

` export const seedLegacy = async (communityId?: CommunitiesId) => { - const poniesText = await readFile(new URL("./ponies.snippet.html", import.meta.url), "utf-8") + const { poniesText } = await import("./ponies.snippet") const articleSeed = (number = 1_000, asRelation = false) => Array.from({ length: number }, (_, idx) => { diff --git a/core/prisma/seeds/ponies.snippet.html b/core/prisma/seeds/ponies.snippet.ts similarity index 96% rename from core/prisma/seeds/ponies.snippet.html rename to core/prisma/seeds/ponies.snippet.ts index 67faad2418..827150c924 100644 --- a/core/prisma/seeds/ponies.snippet.html +++ b/core/prisma/seeds/ponies.snippet.ts @@ -1,3 +1,5 @@ +// prettier-ignore +export const poniesText = `
Experimental design >166±29kg166 \pm 29 kg166 pm 29 kgFabrication of construct >=10μm= 10 \mu m= 10 mu mFabrication of construct >300x300μm300x300 \mu m300x300 mu mFabrication of construct >1300μm1300 \mu m1300 mu mFabrication of construct >c−115 mm\cdot sec^{-1}15 mmcdot sec^{-1}Fabrication of construct >22−24°C22 - 24 \degree \text{C}22 - 24 degree \text{C}Fabrication of construct >30−50%30 - 50\%30 - 50%Fabrication of construct >70%70\%70%Fabrication of construct >l−12.2 g\cdot ml^{-1}2.2 gcdot ml^{-1}Fabrication of construct >α\alphaalphaFabrication of construct >=3.83μm= 3.83 \mu m= 3.83 mu mFabrication of construct >l−10.13 g\cdot ml^{-1}0.13 gcdot ml^{-1}Fabrication of construct >v−140\% w\cdot v^{-1}40% wcdot v^{-1}Fabrication of construct >α\alphaalphaFabrication of construct >0.22μm0.22 \mu m0.22 mu mFabrication of construct >4°C4\degree \text{C}4degree \text{C}Fabrication of construct >=250μm= 250 \mu m= 250 mu mFabrication of construct >700μm700 \mu m700 mu mFabrication of construct >70%70\%70%In Vitro pre-culture >37°C37\degree \text{C}37degree \text{C}In Vitro pre-culture >v−10.2\% w\cdot v^{-1}0.2% wcdot v^{-1}In Vitro pre-culture >v−10.075\% w\cdot v^{-1}0.075% wcdot v^{-1}In Vitro pre-culture >v−110\% v\cdot v^{-1}10% vcdot v^{-1}In Vitro pre-culture >1%1\%1%In Vitro pre-culture >L−1100 U\cdot mL^{-1}100 Ucdot mL^{-1}In Vitro pre-culture >L−1100 \mu g\cdot mL^{-1}100 mu gcdot mL^{-1}In Vitro pre-culture >100μl100 \mu l100 mu lIn Vitro pre-culture >l−1100 ng\cdot ml^{-1}100 ngcdot ml^{-1}Surgical procedure >g−110 \mu g\cdot kg^{-1}10 mu gcdot kg^{-1}Surgical procedure >g−10.1 mg\cdot kg^{-1}0.1 mgcdot kg^{-1}Surgical procedure >g−10.06 mg\cdot kg^{-1}0.06 mgcdot kg^{-1}Surgical procedure >g−12.2 mg\cdot kg^{-1}2.2 mgcdot kg^{-1}Surgical procedure >g−110 \mu g\cdot kg^{-1}10 mu gcdot kg^{-1}Surgical procedure >g−10.5 mg\cdot kg^{-1}0.5 mgcdot kg^{-1}Surgical procedure >g−10.6 mg\cdot kg^{-1}0.6 mgcdot kg^{-1}Surgical procedure >g−10.1 - 0.2 mg\cdot kg^{-1}0.1 - 0.2 mgcdot kg^{-1}Surgical procedure >g−110 - 15 mg\cdot kg^{-1}10 - 15 mgcdot kg^{-1}Surgical procedure >g−120 mg\cdot kg^{-1}20 mgcdot kg^{-1}Surgical procedure >g−10.6 mg\cdot kg^{-1}0.6 mgcdot kg^{-1}Surgical procedure >g−15 mg\cdot kg^{-1}5 mgcdot kg^{-1}Euthanasia and sample harvest >g−10.06mg\cdot kg^{-1}0.06mgcdot kg^{-1}Euthanasia and sample harvest >g−12.2 mg\cdot kg^{-1}2.2 mgcdot kg^{-1}Euthanasia and sample harvest >g−11400 mg\cdot kg^{-1}1400 mgcdot kg^{-1}Biomechanical evaluation >n−10.250 N\cdot min^{-1}0.250 Ncdot min^{-1}Biomechanical evaluation >200μm200 \mu m200 mu mBiomechanical evaluation >10−12%10-12 \%10-12 %Biochemical evaluation >60°C60\degree \text{C}60degree \text{C}Biochemical evaluation >−80°C-80\degree \text{C}-80degree \text{C}Microcomputed tomography >=200μA= 200 \mu A= 200 mu AMicrocomputed tomography >=30μm3= 30 \mu m^{3}= 30 mu m^{3}Histological evaluation >4%4\%4%Histological evaluation >5μm5 \mu m5 mu mHistological evaluation >l−11.083 mg\cdot ml^{-1}1.083 mgcdot ml^{-1}Histological evaluation >l−10.06 mg\cdot ml^{-1}0.06 mgcdot ml^{-1}Histological evaluation >4%4\%4%Histological evaluation >5μm5 \mu m5 mu mStatistical analysis >±\pmpmIn vitro >⋅\cdotcdotIn vitro >g−1199.7 \pm 67.7 \mu g\cdot \mu g^{-1}199.7 pm 67.7 mu gcdot mu g^{-1}In vitro >g−13702 \pm 2111 U\cdot\mu g^{-1}3702 pm 2111 Ucdotmu g^{-1} >g−130.46 \pm 15.95 \mu g\cdot\mu g^{-1}30.46 pm 15.95 mu gcdotmu g^{-1} >g−124.44 \pm 15.31 \mu g\cdot g^{-1}24.44 pm 15.31 mu gcdot g^{-1} >g−179.66 \pm 91.21 \mu g\cdot\mu g^{-1}79.66 pm 91.21 mu gcdotmu g^{-1} >g−1134.21\pm 153.73 \mu g\cdot\mu g^{-1}134.21pm 153.73 mu gcdotmu g^{-1}0.31 \pm 0.13 MPa0.31 pm 0.13 MPa0.42 \pm 0.19 MPa0.42 pm 0.19 MPa1.75 \pm 0.80 MPa1.75 pm 0.80 MPa2.22 \pm 0.48 MPa2.22 pm 0.48 MPa1.86 \pm 0.78 MPa1.86 pm 0.78 MPa2.19 \pm 0.77 MPa2.19 pm 0.77 MPa >6.14%±10.09%6.14\% \pm 10.09\%6.14% pm 10.09% >4.73%±4.93%4.73\% \pm 4.93\%4.73% pm 4.93% >81.38%±15.37%81.38\% \pm 15.37\%81.38% pm 15.37% >74.71%±12.44%74.71\% \pm 12.44\%74.71% pm 12.44% >12.48%±9.75%12.48\% \pm 9.75\%12.48% pm 9.75% >20.56%±10.54%20.56\% \pm 10.54\%20.56% pm 10.54% >79.02±16.18%79.02 \pm 16.18 \%79.02 pm 16.18 % >63.20±13.90%63.20 \pm 13.90 \%63.20 pm 13.90 %Supplementary Table 2. Lymphocyte.
+` From fbd7b87448a9d5f39fb4cb60b697899c31ae8963 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 19:33:11 +0200 Subject: [PATCH 041/153] fix: clear cache on seed --- core/lib/server/migrate.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/core/lib/server/migrate.ts b/core/lib/server/migrate.ts index 91c0180dc3..4b2fa60db6 100644 --- a/core/lib/server/migrate.ts +++ b/core/lib/server/migrate.ts @@ -1,12 +1,18 @@ import type { Database } from "db/Database" import type { PrismaMigrationsId } from "db/public" +import { exec } from "node:child_process" import { createHash, randomUUID } from "node:crypto" import { existsSync, readdirSync, readFileSync } from "node:fs" import { join, resolve } from "node:path" +import { promisify } from "node:util" import { Kysely, PostgresDialect, sql } from "kysely" import pg from "pg" +import { tryCatch } from "utils/try-catch" + +const execAsync = promisify(exec) + import { logger } from "logger" // arbitrary but stable id used to prevent concurrent migration runs across replicas @@ -176,6 +182,18 @@ export async function runMigrations() { // prevents autocache from running, breaking seed const { withUncached } = await import("~/lib/server/cache/skipCacheStore") await withUncached(seed, "both") + + // try and reset cache + logger.info(`Clearing cache...`) + const [error, output] = await tryCatch( + execAsync("echo 'FLUSHALL' | nc $VALKEY_HOST 6379") + ) + + if (error || output.stderr) { + logger.error(`Error clearing cache: ${error?.message || output?.stderr}`) + } else { + logger.info(`Cache cleared: ${output.stdout}`) + } } await sql`SELECT pg_advisory_unlock(${sql.lit(ADVISORY_LOCK_ID)})`.execute(db) From feb5357ca2c2ff34e4f63b3cb09e48f35e013389 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 6 Apr 2026 19:41:07 +0200 Subject: [PATCH 042/153] fix: test setup errors --- .env.docker-compose.dev | 16 ++++++---------- core/lib/editor/to-html.test.ts | 5 ++--- 2 files changed, 8 insertions(+), 13 deletions(-) diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index ba4f907456..017fef7222 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -1,18 +1,14 @@ # garage admin token for init script GARAGE_ADMIN_TOKEN=dev_admin_token -ASSETS_BUCKET_NAME=assets.v7.pubpub.org -ASSETS_UPLOAD_KEY=pubpubuser -ASSETS_UPLOAD_SECRET_KEY=pubpubpass -# set to same as above for s3fs/caddy to work -AWS_ACCESS_KEY_ID=pubpubuser -AWS_SECRET_ACCESS_KEY=pubpubpass - -ASSETS_REGION=garage +S3_BUCKET_NAME=assets.v7.pubpub.org +S3_ACCESS_KEY=pubpubuser +S3_SECRET_KEY=pubpubpass +S3_REGION=garage # internal endpoint used by backend services running in Docker -ASSETS_STORAGE_ENDPOINT=http://garage:3900 +S3_ENDPOINT=http://minio:3900 # public endpoint used for signed URLs accessible from browsers -ASSETS_PUBLIC_ENDPOINT=http://localhost:3900 +S3_PUBLIC_ENDPOINT=http://localhost:3900 POSTGRES_PORT=54322 POSTGRES_USER=postgres diff --git a/core/lib/editor/to-html.test.ts b/core/lib/editor/to-html.test.ts index 62885083d8..1574a17271 100644 --- a/core/lib/editor/to-html.test.ts +++ b/core/lib/editor/to-html.test.ts @@ -1,13 +1,12 @@ import { describe, expect, it } from "vitest" -// @ts-expect-error -import ponies from "../../prisma/seeds/ponies.snippet.html?raw" +import { poniesText } from "../../prisma/seeds/ponies.snippet" import { processEditorHTML } from "./process-editor-html" import { htmlToProsemirrorServer, prosemirrorToHTMLServer } from "./serialize-server" describe("renderNodeToHTML", () => { it("should be able to round trip a node and not lose any information", async () => { - const html = ponies + const html = poniesText expect(html).toBeDefined() From 091864eafa27592c8b47c3e5aa95a22b8a3d4af7 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 16:33:43 +0200 Subject: [PATCH 043/153] fix: double escape string --- core/prisma/seeds/ponies.snippet.ts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/core/prisma/seeds/ponies.snippet.ts b/core/prisma/seeds/ponies.snippet.ts index 827150c924..3b2c852fd4 100644 --- a/core/prisma/seeds/ponies.snippet.ts +++ b/core/prisma/seeds/ponies.snippet.ts @@ -1,6 +1,5 @@ // prettier-ignore -export const poniesText = ` -
+export const poniesText = `
β\beta\\beta22−24°C22 - 24 degree \text{C}22 - 24 degree \\text{C}4°C4degree \text{C}4degree \\text{C}37°C37degree \text{C}37degree \\text{C}60°C60degree \text{C}60degree \\text{C}−80°C-80degree \text{C}-80degree \\text{C}
-` +` as string From 249de57e82a5466a1da38b123caf1b81a35e5a0f Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:11:00 +0200 Subject: [PATCH 044/153] fix: better infra --- .../{preview.yml => deploy-stack.yml} | 207 +- .github/workflows/deploy.yml | 250 -- .github/workflows/ghcr-build-all.yml | 6 + .github/workflows/ghcr-build-template.yml | 8 +- .github/workflows/on_main.yml | 25 + .github/workflows/on_pr.yml | 24 +- .github/workflows/on_tag.yml | 94 + core/prisma/seeds/ponies.snippet.html | 2871 +++++++++++++++++ infra/Caddyfile.gateway | 46 + infra/Caddyfile.preview | 81 - infra/Caddyfile.site.template | 31 + infra/stack.gateway.yml | 34 + infra/stack.preview.yml | 43 +- 13 files changed, 3280 insertions(+), 440 deletions(-) rename .github/workflows/{preview.yml => deploy-stack.yml} (52%) delete mode 100644 .github/workflows/deploy.yml create mode 100644 .github/workflows/on_tag.yml create mode 100644 core/prisma/seeds/ponies.snippet.html create mode 100644 infra/Caddyfile.gateway delete mode 100644 infra/Caddyfile.preview create mode 100644 infra/Caddyfile.site.template create mode 100644 infra/stack.gateway.yml diff --git a/.github/workflows/preview.yml b/.github/workflows/deploy-stack.yml similarity index 52% rename from .github/workflows/preview.yml rename to .github/workflows/deploy-stack.yml index bec0c0ddb3..6f69945edc 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/deploy-stack.yml @@ -1,4 +1,4 @@ -name: PR Preview +name: Deploy Stack on: workflow_call: @@ -10,13 +10,37 @@ on: image_tag: required: false type: string - description: "image tag to deploy (only needed for deploy)" + description: "image tag to deploy" + stack_name: + required: true + type: string + description: "docker swarm stack name" + hostname: + required: true + type: string + description: "public hostname for this deployment" + env_file: + required: true + type: string + description: "sops-encrypted env file to decrypt (relative to infra/)" + stack_file: + required: true + type: string + description: "compose file to deploy (e.g. stack.yml or stack.preview.yml)" + uses_gateway: + required: true + type: boolean + description: "if true, deploy behind the shared Caddy gateway" + ssh_host_secret: + required: true + type: string + description: "name of the SSH_HOST secret to use (value passed as secret)" secrets: SSH_PRIVATE_KEY: required: true SSH_USER: required: true - SSH_HOST_PREVIEW: + SSH_HOST: required: true GHCR_USER: required: true @@ -28,19 +52,13 @@ permissions: pull-requests: write jobs: - preview: + deploy: + if: inputs.action == 'deploy' runs-on: ubuntu-latest timeout-minutes: 15 steps: - uses: actions/checkout@v4 - - name: Get PR number - id: pr - run: | - echo "number=${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT - echo "stack_name=preview-pr-${{ github.event.pull_request.number }}" >> $GITHUB_OUTPUT - echo "host=pr-${{ github.event.pull_request.number }}.preview.pubstar.org" >> $GITHUB_OUTPUT - - name: Start SSH agent uses: webfactory/ssh-agent@v0.9.0 with: @@ -49,24 +67,25 @@ jobs: - name: Add known hosts run: | mkdir -p ~/.ssh - ssh-keyscan -H "${{ secrets.SSH_HOST_PREVIEW }}" >> ~/.ssh/known_hosts + ssh-keyscan -H "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts - - name: Deploy preview stack - if: inputs.action == 'deploy' + - name: Deploy stack env: SSH_USER: ${{ secrets.SSH_USER }} - SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} + SSH_HOST: ${{ secrets.SSH_HOST }} REPO: ${{ github.repository }} - BRANCH: ${{ github.head_ref }} + BRANCH: ${{ github.head_ref || github.ref_name }} GHCR_USER: ${{ secrets.GHCR_USER }} GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} IMAGE_TAG: ${{ inputs.image_tag }} - STACK_NAME: ${{ steps.pr.outputs.stack_name }} - PREVIEW_HOST: ${{steps.pr.outputs.host }} - PR_NUMBER: ${{ steps.pr.outputs.number }} + STACK_NAME: ${{ inputs.stack_name }} + DEPLOY_HOST: ${{ inputs.hostname }} + ENV_FILE: ${{ inputs.env_file }} + STACK_FILE: ${{ inputs.stack_file }} + USES_GATEWAY: ${{ inputs.uses_gateway }} run: | ssh "${SSH_USER}@${SSH_HOST}" \ - "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' PREVIEW_HOST='${PREVIEW_HOST}' PR_NUMBER='${PR_NUMBER}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' + "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' STACK_NAME='${STACK_NAME}' DEPLOY_HOST='${DEPLOY_HOST}' ENV_FILE='${ENV_FILE}' STACK_FILE='${STACK_FILE}' USES_GATEWAY='${USES_GATEWAY}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' set -euo pipefail REPO="${1:?missing repo}" @@ -76,8 +95,9 @@ jobs: : "${GHCR_USER:?missing GHCR_USER}" : "${GHCR_TOKEN:?missing GHCR_TOKEN}" : "${STACK_NAME:?missing STACK_NAME}" - : "${PREVIEW_HOST:?missing PREVIEW_HOST}" - : "${PR_NUMBER:?missing PR_NUMBER}" + : "${DEPLOY_HOST:?missing DEPLOY_HOST}" + : "${ENV_FILE:?missing ENV_FILE}" + : "${STACK_FILE:?missing STACK_FILE}" REPO_NAME="${REPO##*/}" APP_DIR="/srv/${REPO_NAME}" @@ -93,12 +113,13 @@ jobs: fi cd "${APP_DIR}" - git fetch --prune origin - git checkout "origin/${BRANCH}" --detach + git fetch --prune --tags origin + git checkout --detach "${IMAGE_TAG}" 2>/dev/null || git checkout --detach "origin/${BRANCH}" cd infra + umask 077 - sops -d --input-type dotenv --output-type dotenv ".env.preview.enc" > .env + sops -d --input-type dotenv --output-type dotenv "$ENV_FILE" > .env if ! sudo docker info --format '{{.Swarm.LocalNodeState}}' | grep -qx active; then sudo docker swarm init --advertise-addr "$(hostname -I | awk '{print $1}')" @@ -106,25 +127,48 @@ jobs: echo "$GHCR_TOKEN" | sudo docker login ghcr.io -u "$GHCR_USER" --password-stdin - echo "IMAGE_TAG in shell: [$IMAGE_TAG]" - - # For some reason, not pulling explicitly makes the docker stack deploy throw an error that it can't find the package. sudo docker pull ghcr.io/knowledgefutures/platform:"$IMAGE_TAG" - # deploy/update stack - sudo env IMAGE_TAG="$IMAGE_TAG" PREVIEW_HOST="$PREVIEW_HOST" PR_NUMBER="$PR_NUMBER" \ - docker stack deploy -c stack.preview.yml \ - --with-registry-auth --resolve-image always --prune "$STACK_NAME" + if [[ "$USES_GATEWAY" == "true" ]]; then + # ensure the gateway stack is running + if ! sudo docker stack ls --format '{{.Name}}' | grep -qx gateway; then + echo "deploying gateway stack..." + sudo docker stack deploy -c stack.gateway.yml --prune gateway + sleep 5 + fi + + # write per-site caddy config from template + sudo mkdir -p /srv/caddy/sites.d + + export DEPLOY_HOST STACK_NAME + envsubst '$DEPLOY_HOST $STACK_NAME' < Caddyfile.site.template \ + | sudo tee /srv/caddy/sites.d/${STACK_NAME}.caddy > /dev/null + + # deploy the app stack + sudo env IMAGE_TAG="$IMAGE_TAG" DEPLOY_HOST="$DEPLOY_HOST" \ + docker stack deploy -c "$STACK_FILE" \ + --with-registry-auth --resolve-image always --prune "$STACK_NAME" + + # reload caddy to pick up the new site config + gateway_container=$(sudo docker ps --filter "label=com.docker.swarm.service.name=gateway_proxy" --format '{{.ID}}' | head -1) + if [[ -n "$gateway_container" ]]; then + sudo docker exec "$gateway_container" caddy reload --config /etc/caddy/Caddyfile + fi + + else + # standalone mode (production) -- deploy full stack with its own caddy + echo "deploying with IMAGE_TAG=$IMAGE_TAG" - # caddy's config is a bind mount, so swarm won't restart - # the proxy when only the Caddyfile changes on disk - sudo docker service update --force "${STACK_NAME}_proxy" + sudo env IMAGE_TAG="$IMAGE_TAG" \ + docker stack deploy -c "$STACK_FILE" \ + --with-registry-auth --resolve-image always --prune "$STACK_NAME" + fi sudo docker stack services "$STACK_NAME" sudo docker image prune -f wait_rollout() { - echo "Beginning wait for rollout of $1..." + echo "waiting for rollout of $1..." svc="$1" timeout="${2:-600}" end=$((SECONDS+timeout)) @@ -143,7 +187,7 @@ jobs: sleep 5 done - echo "Rollout timeout for $svc" + echo "rollout timeout for $svc" return 1 } @@ -151,45 +195,16 @@ jobs: EOS - - name: Teardown preview stack - if: inputs.action == 'teardown' - env: - SSH_USER: ${{ secrets.SSH_USER }} - SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} - STACK_NAME: ${{ steps.pr.outputs.stack_name }} - run: | - ssh "${SSH_USER}@${SSH_HOST}" \ - "env STACK_NAME='${STACK_NAME}' bash -s" <<'EOS' - set -euo pipefail - : "${STACK_NAME:?missing STACK_NAME}" - - echo "tearing down preview stack $STACK_NAME" - - if sudo docker stack ls --format '{{.Name}}' | grep -qx "$STACK_NAME"; then - sudo docker stack rm "$STACK_NAME" - sleep 10 - # prune volumes for this stack - sudo docker volume ls --filter "label=com.docker.stack.namespace=$STACK_NAME" -q \ - | xargs -r sudo docker volume rm || true - echo "stack $STACK_NAME removed" - else - echo "stack $STACK_NAME not found, nothing to tear down" - fi - - sudo docker image prune -f - - EOS - - name: Comment on PR - if: inputs.action == 'deploy' + if: github.event_name == 'pull_request' uses: actions/github-script@v7 with: script: | - const body = `Preview deployed at https://${{ steps.pr.outputs.host }}`; + const body = `Preview deployed at https://${{ inputs.hostname }}`; const { data: comments } = await github.rest.issues.listComments({ owner: context.repo.owner, repo: context.repo.repo, - issue_number: ${{ steps.pr.outputs.number }}, + issue_number: context.issue.number, }); const existing = comments.find(c => c.body.includes('Preview deployed at')); if (existing) { @@ -203,7 +218,59 @@ jobs: await github.rest.issues.createComment({ owner: context.repo.owner, repo: context.repo.repo, - issue_number: ${{ steps.pr.outputs.number }}, + issue_number: context.issue.number, body, }); } + + teardown: + if: inputs.action == 'teardown' + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Start SSH agent + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Add known hosts + run: | + mkdir -p ~/.ssh + ssh-keyscan -H "${{ secrets.SSH_HOST }}" >> ~/.ssh/known_hosts + + - name: Teardown stack + env: + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST }} + STACK_NAME: ${{ inputs.stack_name }} + USES_GATEWAY: ${{ inputs.uses_gateway }} + run: | + ssh "${SSH_USER}@${SSH_HOST}" \ + "env STACK_NAME='${STACK_NAME}' USES_GATEWAY='${USES_GATEWAY}' bash -s" <<'EOS' + set -euo pipefail + : "${STACK_NAME:?missing STACK_NAME}" + + echo "tearing down stack $STACK_NAME" + + if sudo docker stack ls --format '{{.Name}}' | grep -qx "$STACK_NAME"; then + sudo docker stack rm "$STACK_NAME" + sleep 10 + sudo docker volume ls --filter "label=com.docker.stack.namespace=$STACK_NAME" -q \ + | xargs -r sudo docker volume rm || true + echo "stack $STACK_NAME removed" + else + echo "stack $STACK_NAME not found, nothing to tear down" + fi + + if [[ "$USES_GATEWAY" == "true" ]]; then + sudo rm -f "/srv/caddy/sites.d/${STACK_NAME}.caddy" + + gateway_container=$(sudo docker ps --filter "label=com.docker.swarm.service.name=gateway_proxy" --format '{{.ID}}' | head -1) + if [[ -n "$gateway_container" ]]; then + sudo docker exec "$gateway_container" caddy reload --config /etc/caddy/Caddyfile + fi + fi + + sudo docker image prune -f + + EOS diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 8e9d34f39c..0000000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,250 +0,0 @@ -name: Deploy to Hetzner - -run-name: >- - ${{ - github.event_name == 'release' && format('Deploy prod: {0}', github.event.release.tag_name) || - github.event_name == 'workflow_run' && format('Deploy staging: {0}', github.event.workflow_run.head_commit.message) || - format('Deploy: {0}', github.sha) - }} - -concurrency: - group: >- - deploy-${{ - github.event_name == 'release' && format('release-{0}', github.event.release.tag_name) || - github.event_name == 'workflow_run' && format('ci-{0}', github.event.workflow_run.head_branch) || - github.ref - }} - cancel-in-progress: true - -on: - workflow_run: - workflows: [CI] - types: [completed] - branches: [main] - workflow_dispatch: - inputs: - skip_ci_check: - description: Deploy even if CI failed - required: false - default: false - type: boolean - release: - types: [published] - -jobs: - build: - runs-on: ubuntu-latest - if: | - github.event_name == 'workflow_dispatch' || - github.event_name == 'release' || - (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') - - permissions: - contents: read - packages: write - - outputs: - image_tag: ${{ steps.vars.outputs.image_tag }} - host: ${{ steps.vars.outputs.host }} - env_file: ${{ steps.vars.outputs.env_file }} - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - ref: ${{ github.event.workflow_run.head_sha || github.sha }} - - - name: Set deployment vars - id: vars - run: | - if [[ "${{ github.event_name }}" == "release" ]]; then - echo "image_tag=${{ github.event.release.tag_name }}" >> $GITHUB_OUTPUT - echo "host=${{ secrets.SSH_HOST_PROD }}" >> $GITHUB_OUTPUT - echo "env_file=.env.enc" >> $GITHUB_OUTPUT - echo "publish_latest=false" >> $GITHUB_OUTPUT - else - echo "image_tag=${{ github.sha }}" >> $GITHUB_OUTPUT - echo "host=${{ secrets.SSH_HOST_STAGING }}" >> $GITHUB_OUTPUT - echo "env_file=.env.staging.enc" >> $GITHUB_OUTPUT - echo "publish_latest=true" >> $GITHUB_OUTPUT - fi - - - name: Log in to GHCR - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Build and push pubstar - uses: docker/build-push-action@v6 - with: - context: . - push: true - provenance: false - sbom: false - cache-from: type=gha,scope=platform - cache-to: type=gha,mode=max,scope=platform - build-args: | - PACKAGE=core - CI=true - secrets: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - target: next-app-core - tags: | - ghcr.io/knowledgefutures/platform:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform:latest' || '' }} - platforms: linux/amd64 - - - name: Build and push platform-jobs - uses: docker/build-push-action@v6 - with: - context: . - push: true - provenance: false - sbom: false - cache-from: type=gha,scope=platform-jobs - cache-to: type=gha,mode=max,scope=platform-jobs - build-args: | - PACKAGE=jobs - CI=true - secrets: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - target: jobs - tags: | - ghcr.io/knowledgefutures/platform-jobs:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform-jobs:latest' || '' }} - platforms: linux/amd64 - - - name: Build and push platform-site-builder - uses: docker/build-push-action@v6 - with: - context: . - push: true - provenance: false - sbom: false - cache-from: type=gha,scope=platform-site-builder - cache-to: type=gha,mode=max,scope=platform-site-builder - build-args: | - PACKAGE=site-builder - CI=true - secrets: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - target: jobs - tags: | - ghcr.io/knowledgefutures/platform-site-builder:${{ steps.vars.outputs.image_tag }} - ${{ steps.vars.outputs.publish_latest == 'true' && 'ghcr.io/knowledgefutures/platform-site-builder:latest' || '' }} - platforms: linux/amd64 - - deploy: - needs: build - runs-on: ubuntu-latest - - steps: - - name: Start SSH agent - uses: webfactory/ssh-agent@v0.9.0 - with: - ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} - - - name: Add known hosts - run: | - mkdir -p ~/.ssh - ssh-keyscan -H "${{ needs.build.outputs.host }}" >> ~/.ssh/known_hosts - - - name: Deploy over SSH - env: - SSH_USER: ${{ secrets.SSH_USER }} - SSH_HOST: ${{ needs.build.outputs.host }} - REPO: ${{ github.repository }} - BRANCH: ${{ github.ref_name }} - GHCR_USER: ${{ secrets.GHCR_USER }} - GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} - IMAGE_TAG: ${{ needs.build.outputs.image_tag }} - ENV_FILE: ${{ needs.build.outputs.env_file }} - run: | - ssh "${SSH_USER}@${SSH_HOST}" \ - "env GHCR_USER='${GHCR_USER}' GHCR_TOKEN='${GHCR_TOKEN}' IMAGE_TAG='${IMAGE_TAG}' ENV_FILE='${ENV_FILE}' bash -s -- '${REPO}' '${BRANCH}'" <<'EOS' - set -euo pipefail - - REPO="${1:?missing repo}" - BRANCH="${2:-main}" - - : "${IMAGE_TAG:?missing IMAGE_TAG}" - : "${GHCR_USER:?missing GHCR_USER}" - : "${GHCR_TOKEN:?missing GHCR_TOKEN}" - - REPO_NAME="${REPO##*/}" - APP_DIR="/srv/${REPO_NAME}" - REPO_SSH="git@github.com:${REPO}.git" - - if [[ -z "$REPO_NAME" || -z "$APP_DIR" ]]; then - echo "bad derived paths: REPO='$REPO' REPO_NAME='$REPO_NAME' APP_DIR='$APP_DIR'" - exit 1 - fi - - ssh-keyscan -H github.com >> ~/.ssh/known_hosts 2>/dev/null - chmod 600 ~/.ssh/known_hosts - - if [[ ! -d "${APP_DIR}/.git" ]]; then - sudo mkdir -p "${APP_DIR}" - sudo chown -R "$USER:$USER" "${APP_DIR}" - git clone --branch "${BRANCH}" "${REPO_SSH}" "${APP_DIR}" - fi - - cd "${APP_DIR}" - git fetch --prune --tags origin - git checkout --detach "${IMAGE_TAG}" 2>/dev/null || git checkout --detach "origin/${BRANCH}" - - cd infra - umask 077 - - : "${ENV_FILE:?missing ENV_FILE}" - sops -d --input-type dotenv --output-type dotenv "$ENV_FILE" > .env - - if ! sudo docker info --format '{{.Swarm.LocalNodeState}}' | grep -qx active; then - sudo docker swarm init --advertise-addr "$(hostname -I | awk '{print $1}')" - fi - - echo "$GHCR_TOKEN" | sudo docker login ghcr.io -u "$GHCR_USER" --password-stdin - - echo "deploying with IMAGE_TAG=$IMAGE_TAG" - - sudo env IMAGE_TAG="$IMAGE_TAG" \ - docker stack deploy -c stack.yml \ - --with-registry-auth --resolve-image always --prune \ - pubstar - - sudo docker stack services pubstar - sudo docker image prune -f - - # wait for platform rollout - wait_rollout() { - echo "waiting for rollout of $1..." - svc="$1" - timeout="${2:-600}" - end=$((SECONDS+timeout)) - - while (( SECONDS < end )); do - desired="$(sudo docker service inspect "$svc" --format '{{.Spec.Mode.Replicated.Replicas}}' 2>/dev/null || echo "")" - running="$(sudo docker service ps "$svc" --filter desired-state=running --format '{{.CurrentState}}' 2>/dev/null | grep -c '^Running' || true)" - state="$(sudo docker service inspect "$svc" --format '{{if .UpdateStatus}}{{.UpdateStatus.State}}{{end}}' 2>/dev/null || echo "")" - echo " $svc: desired=$desired running=$running state=$state" - - if [[ -n "$desired" && "$running" == "$desired" ]] && { [[ -z "$state" ]] || [[ "$state" == "completed" ]]; }; then - echo " $svc rollout complete" - return 0 - fi - - sleep 5 - done - - echo "rollout timeout for $svc" - return 1 - } - - wait_rollout pubstar 600 - - EOS diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index 00081a272e..d87e910442 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -6,6 +6,9 @@ on: publish_latest: type: boolean default: false + image_tag: + type: string + description: "Override the image tag (e.g. v1.2.3). Falls back to git describe." outputs: core-image: description: 'Core image ref' @@ -27,6 +30,7 @@ jobs: package: core ghcr_image_name: platform publish_latest: ${{ inputs.publish_latest }} + image_tag: ${{ inputs.image_tag }} secrets: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} @@ -37,6 +41,7 @@ jobs: target: jobs ghcr_image_name: platform-jobs publish_latest: ${{ inputs.publish_latest }} + image_tag: ${{ inputs.image_tag }} secrets: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} @@ -47,5 +52,6 @@ jobs: target: jobs ghcr_image_name: platform-site-builder publish_latest: ${{ inputs.publish_latest }} + image_tag: ${{ inputs.image_tag }} secrets: SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 32da2fa6f3..58ecb4a598 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -16,6 +16,9 @@ on: publish_latest: type: boolean default: false + image_tag: + type: string + description: "Override the image tag (e.g. v1.2.3). Falls back to git describe." outputs: image-sha: description: 'Full GHCR image ref with SHA tag' @@ -54,7 +57,10 @@ jobs: - name: Compute image tags id: label run: | - sha_short=$(git describe --always --abbrev=40 --dirty) + sha_short="${{ inputs.image_tag || '' }}" + if [[ -z "$sha_short" ]]; then + sha_short=$(git describe --always --abbrev=40 --dirty) + fi if [[ -z "${{ inputs.package }}" ]]; then echo "target=monorepo" >> $GITHUB_OUTPUT diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index 3b287557ec..612b5c8f81 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -4,10 +4,13 @@ on: push: branches: - main + workflow_dispatch: permissions: + id-token: write contents: read packages: write + pull-requests: write jobs: ci: @@ -30,6 +33,28 @@ jobs: - build-all uses: ./.github/workflows/e2e.yml + deploy-sandbox: + needs: build-all + permissions: + contents: read + pull-requests: write + uses: ./.github/workflows/deploy-stack.yml + with: + action: deploy + image_tag: ${{ github.sha }} + stack_name: sandbox + hostname: sandbox.pubstar.org + env_file: .env.sandbox.enc + stack_file: stack.preview.yml + uses_gateway: true + ssh_host_secret: SSH_HOST_PREVIEW + secrets: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} + deploy-docs: permissions: contents: write diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index ecdbff70ff..8937b39a01 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -8,6 +8,7 @@ permissions: id-token: write contents: read packages: write + pull-requests: write jobs: path-filter: @@ -108,7 +109,7 @@ jobs: deploy-preview: if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') - uses: ./.github/workflows/preview.yml + uses: ./.github/workflows/deploy-stack.yml needs: - build-all permissions: @@ -116,27 +117,38 @@ jobs: pull-requests: write with: action: deploy - image_tag: ${{ github.event.pull_request.head.sha }} - # image_tag: 1792116d0d1279eba2ad574741171449d50feb20 + image_tag: ${{ github.event.pull_request.head.sha }} + stack_name: preview-pr-${{ github.event.pull_request.number }} + hostname: pr-${{ github.event.pull_request.number }}.preview.pubstar.org + env_file: .env.preview.enc + stack_file: stack.preview.yml + uses_gateway: true + ssh_host_secret: SSH_HOST_PREVIEW secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} - SSH_HOST_PREVIEW: ${{ secrets.SSH_HOST_PREVIEW }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} GHCR_USER: ${{ secrets.GHCR_USER }} GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} close-preview: if: (github.event.action == 'closed' && contains(github.event.pull_request.labels.*.name, 'preview')) || (github.event.action == 'unlabeled' && github.event.label.name == 'preview') - uses: ./.github/workflows/preview.yml + uses: ./.github/workflows/deploy-stack.yml permissions: contents: read pull-requests: write with: action: teardown + stack_name: preview-pr-${{ github.event.pull_request.number }} + hostname: pr-${{ github.event.pull_request.number }}.preview.pubstar.org + env_file: .env.preview.enc + stack_file: stack.preview.yml + uses_gateway: true + ssh_host_secret: SSH_HOST_PREVIEW secrets: SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} SSH_USER: ${{ secrets.SSH_USER }} - SSH_HOST_PREVIEW: ${{ secrets.SSH_HOST_PREVIEW }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} GHCR_USER: ${{ secrets.GHCR_USER }} GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} diff --git a/.github/workflows/on_tag.yml b/.github/workflows/on_tag.yml new file mode 100644 index 0000000000..19b4f841de --- /dev/null +++ b/.github/workflows/on_tag.yml @@ -0,0 +1,94 @@ +name: Release & deploy + +on: + push: + tags: + - "v[0-9]*.[0-9]*.[0-9]*" + +permissions: + id-token: write + contents: write + packages: write + pull-requests: write + +concurrency: + group: deploy-prod-${{ github.ref_name }} + cancel-in-progress: true + +jobs: + validate-tag: + runs-on: ubuntu-latest + outputs: + prerelease: ${{ steps.meta.outputs.prerelease }} + steps: + - name: Validate semver and detect pre-release + id: meta + run: | + tag="${{ github.ref_name }}" + + if [[ ! "$tag" =~ ^v[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc|experimental)\.[0-9]+)?$ ]]; then + echo "::error::Tag '$tag' does not match semver format (vMAJOR.MINOR.PATCH or vMAJOR.MINOR.PATCH-{alpha,beta,rc,experimental}.N)" + exit 1 + fi + + if [[ "$tag" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "prerelease=false" >> $GITHUB_OUTPUT + else + echo "prerelease=true" >> $GITHUB_OUTPUT + fi + + build-all: + needs: validate-tag + permissions: + contents: read + packages: write + uses: ./.github/workflows/ghcr-build-all.yml + with: + image_tag: ${{ github.ref_name }} + publish_latest: ${{ needs.validate-tag.outputs.prerelease == 'false' }} + secrets: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + + create-release: + needs: validate-tag + runs-on: ubuntu-latest + permissions: + contents: write + steps: + - uses: actions/checkout@v4 + + - name: Create GitHub release + env: + GH_TOKEN: ${{ github.token }} + run: | + flags="--generate-notes" + + if [[ "${{ needs.validate-tag.outputs.prerelease }}" == "true" ]]; then + flags="$flags --prerelease" + fi + + gh release create "${{ github.ref_name }}" $flags + + deploy-prod: + needs: + - validate-tag + - build-all + if: needs.validate-tag.outputs.prerelease == 'false' + permissions: + contents: read + uses: ./.github/workflows/deploy-stack.yml + with: + action: deploy + image_tag: ${{ github.ref_name }} + stack_name: pubstar + hostname: ${{ vars.PROD_HOSTNAME }} + env_file: .env.enc + stack_file: stack.yml + uses_gateway: false + ssh_host_secret: SSH_HOST_PROD + secrets: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST_PROD }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} diff --git a/core/prisma/seeds/ponies.snippet.html b/core/prisma/seeds/ponies.snippet.html new file mode 100644 index 0000000000..153dc062f8 --- /dev/null +++ b/core/prisma/seeds/ponies.snippet.html @@ -0,0 +1,2871 @@ +
+ +
+

+

+

Take home message

+

+ The collapse of the osteal anchor of these osteochondral implants affected the integration of + the construct with the native tissue and seriously compromised the mechanical stability. This + precluded drawing firm conclusions about the potential for in vivo cartilage repair of + the chondral compartment, consisting of bone morphogenetic protein-9 (BMP-9) stimulated + progenitor cells. Collapse occurred because bone regeneration competent materials, which had + shown success in a different anatomical location, were unable to correctly anchor the implant in + the complex biomechanical environment of the joint. The imperfect dimensional match, originating + from the intrinsic variability of the 3D printing process, had a much bigger influence than in + previous studies. When combined with the brittle nature of the material, the implant was unable + to withstand the complex loading of the knee joint. +

+

Purpose

+

+ The current study aimed at evaluating a cell-laden and a cell-free version of an osteochondral + composite scaffold for cartilage repair that consisted of an in vivo proven osteogenic + bone scaffold for the osteal compartment and made use of a novel interface for the connection of + the chondral and osteal compartments. +

+

Introduction

+

+ Focal cartilage damage is a major challenge in human healthcare since it leads to an increased + risk of developing early osteoarthritis !unsupported node 'citation'!. Most of + the available repair approaches are palliative with limited alleviation time, generating fibrous + tissue with reduced mechanical strength !unsupported node 'citation'!. There + are no effective treatments that can fully restore the anatomical structure and function of + focal cartilage defects. This unmet clinical need drives the ongoing quest for regenerative + medicine and tissue-engineering approaches for articular cartilage repair + !unsupported node 'citation'!. +

+

+ Many new promising technologies + !unsupported node 'citation'!!unsupported node 'citation'! are currently being + developed and tested with the aim of finding an implant that is effective in facilitating + regeneration of cartilage. Given the difficulties associated with the fixation of chondral + constructs in the joint + !unsupported node 'citation'!!unsupported node 'citation'!, an alternative + approach is the use of composite osteochondral constructs composed of distinct osteal and + chondral compartments that can be surgically press-fitted into suitably prepared defects, + thereby avoiding the risk of dislodgement !unsupported node 'citation'!. + However, the latter approach still faces many challenges, including design and optimization of + the osteal compartment to act as an anchor for the overlying chondral compartment, production of + a firm and durable connection between osteal and chondral compartment + !unsupported node 'citation'!, and optimization of the composition and + structure of the chondral compartment + !unsupported node 'citation'!!unsupported node 'citation'!. +

+

+ To address those challenges, biomaterials that hold the potential for facilitating + osteoregeneration within the osteal compartment were recently developed and investigated. First, + 3D printed brushite-based scaffolds have been shown to be effective in promoting new bone growth + after 6 months in an equine model that used the tuber coxae as implantation site + !unsupported node 'citation'!. However, these materials are usually processed + using aggressive acidic treatments, precluding the direct incorporation of cells and/or some + types of polymer during the fabrication phase. Therefore, an apatite-based scaffold that could + harden under physiological conditions into a calcium-deficient hydroxyapatite (CDHA) was + developed. This material had been shown to be effective in a 7-month long + in vivo study, upon implantation in a critical size defect in the tuber coxae of + horses. That study was performed to compare two sophisticated architectures with constant and + gradient pore size, respectively. The material was shown to facilitate excellent new bone + formation, particularly when using the scaffold with constant pore size + !unsupported node 'citation'!. This showed the potential for using such + material as an osteal anchor of a tissue-engineered osteochondral graft. +

+

+ Another major challenge is the connection between the osteal and chondral compartments of the + tissue-engineered osteochondral graft when using cell-friendly materials of strongly different + mechanical characteristics. Recently, a technique for attaching the chondral compartment to the + osteal compartment using melt electrowriting (MEW) was developed + !unsupported node 'citation'!, in which MEW fibers of the chondral compartment + were partially incorporated into the slowly setting apatite-based osteal compartment, thereby + binding the two compartments together. This strategy allows both for optimizing the mechnical + properties of the MEW-reinforced chondral compartment, and for integrating the chondral and + osteal compartments. +

+

+ Regarding the seeding of regeneration-competent cells within the chondral compartment, articular + cartilage-derived progenitor cells have been recently identified and characterized in both + humans and horses as a distinct cell population that has the potential for cartilage repair + !unsupported node 'citation'!!unsupported node 'citation'!. This potential was + further shown to be retained in combination with biomaterials + !unsupported node 'citation'!!unsupported node 'citation'!, making this cell + type a promising candidate for a comprehensive regenerative approach. Additionally, it was + recently discovered that supplementation with BMP-9 during in vitro culture of ACPCs + resulted in higher expression of gene-markers related with hyaline-like extracellular matrix + production, compared to supplementation with transforming growth factor (TGFβ\beta), a more commonly used growth factor in cartilage tissue engineering + !unsupported node 'citation'!. This observation sparked interest in further + investigation of the potential of BMP-9-stimulated ACPCs for cartilage repair in vivo. +

+

+ The current study aimed at evaluating an osteochondral composite scaffold for cartilage repair. + These constructs were composed of a combination of a previously proven osteogenic CDHA 3D + printed scaffold for the osteal compartment, onto which a chondral compartment composed by MEW + micro-fibrous meshes is tightly anchored. For the chondral compartment, an experimental group in + which the MEW structure was seeded with ACPCs that had been stimulated for 28 days with BMP-9 + before implantation !unsupported node 'citation'!, was compared with an implant + featuring a non-filled, cell-free MEW cartilage scaffold as control. It was hypothesized that 1) + the CDHA scaffold would show comparable performance in the horse when implanted in the + subchondral bone as in the tuber coxae in terms of firmly anchoring in the surrounding tissue + and inducing bone growth; 2) the novel interface would provide a lasting connection between the + osteal and chondral compartments of osteochondral graft; and 3) the engineered chondral + compartment of the osteochondral graft containing the stimulated ACPCs would outperform the + cell-free structures in terms of in vivo cartilage matrix production (specifically, + amount and density of type II collagen and GAGs, with resulting mechanical properties as close + as possible to those of native, healthy cartilage). +

+

Materials and Methods

+

Experimental design

+

+ To assess the performance of integrated 3D printed osteochondral grafts that contained a + cell-laden or a cell-free chondral compartment, the constructs were orthotopically implanted in + a large animal model. Eight Shetland ponies (female, age + 4−124-12 + years, weight + 149−217kg149 - 217 kg + (166±29kg166 pm 29 kg)) were used and samples were implanted in the medial femoral ridge in the stifle joints. + Healing was monitored for 6 months, after which the animals were humanely euthanized. The study + was approved by the ethical and animal welfare body of the Utrecht University (Approval nr. + AVD108002015307 WP23). +

+

+ Ponies were housed in individual boxes and fed a limited ration of concentrates together with + hay for maintenance and free access to water. Quantitative gait analysis and radiographic + examination of the stifle joints were performed before surgery for baseline values. + Post-operatively, the animals were kept stabled for 6 weeks with daily monitoring of vital + signs, lameness checks at walk, and examination of the operated joints for swelling or other + signs of inflammation. In week 5 and 6, they were hand-walked for 10 minutes twice daily and + from week 7 on, they were kept at pasture. Quantitative gait analysis and radiographic exams + were performed at 3 weeks, 3 months, and 6 months post-operatively. After 6 months, ponies were + humanely euthanized for harvesting samples for both quantitative and qualitative analyses. The + timeline of the experiment is represented in Figure 1. +

+
+ +
+ Flow chart representing timeline of the experiment including health monitoring at each phase + of the experiment. +
+
+

Fabrication of construct

+

+ Microfiber meshes were produced from medical-grade PCL (Purasorb® PC 12 Corbion PURAC, The + Netherlands) by using MEW technology as previously described + !unsupported node 'citation'!. The meshes were produced by horizontally + patterning the microfiber (diameter + =10μm= 10 mu m) to form continuously uniform square spacing (300x300μm300x300 mu m) and vertically stacking the same pattern until reaching + 1300μm1300 mu m + in total thickness. This structure was achieved by printing with a temperature of 90C, a + pressure of 1.25 bar, voltage of 10 kV, and collector velocity of + 15mm⋅sec−115 mmcdot sec^{-1}. Additionally, printing was performed at ambient temperature (22−24°C22 - 24 degree \text{C}) with a humidity between + 30−50%30 - 50%. Subsequently, PCL microfiber meshes were hydrolyzed by soaking them in sodium hydroxide (1M + NaOH) for 15 minutes and washed in Milli Q water for 10 minutes 4 times. Finally, sterilization + was carried out by immersion of the mesh in + 70%70% + ethanol for + 1515 + minutes, followed by air-drying in a sterile cabinet until use. +

+

+ Printable calcium phosphate (PCaP) paste was prepared as earlier described + !unsupported node 'citation'!. In short, + 2.2g⋅ml−12.2 gcdot ml^{-1} + of alpha-tri calcium phosphate (αalpha-TCP, average particle size + =3.83μm= 3.83 mu m, Cambioceramics, Leiden, the Netherlands) and + 0.13g⋅ml−10.13 gcdot ml^{-1} + of nano-hydroxyapatite (nano-HA, particle size + =200nm=200 nm, Ca5(OH)(PO4)3, Sigma-Aldrich) were mixed with + 40%w⋅v−140% wcdot v^{-1} + poloxamer solution (Pluronic® F-127, Sigma-Aldrich). + αalpha-TCP and nano-HA powder were disinfected with UV-light for 1 hour before mixing. The poloxamer + solution was disinfected by filtration through a + 0.22μm0.22 mu m + sterile filter (Millex®-GS). This paste was loaded to a cartridge and kept at + 4°C4degree \text{C} + until use. +

+

+ Osteochondral constructs were produced by combining the PCL microfiber mesh and the PCaP paste + to form the reinforcement of the chondral compartment and the biomimetic bone compartment, + respectively. Fabrication was performed by directly depositing the PCaP paste (approximated + strand diameter + =250μm= 250 mu m) onto the hydrolyzed MEW mesh (Figure 2). Eighty percent of the + mesh thickness was set as the initial height for depositing the first of non-macroporous PCaP + layer, as this proved to be the height that did not damage the mesh structure and ensured an + optimal integration between the bone compartment and the chondral compartment. The first two + layers of PCaP were deposited without macro-spacing, to mimic the subchondral bone plate, and + followed by layers with designed macro-spacing of + 700μm700 mu m + to mimic the cancellous bone section (diameter + =6mm= 6 mm, height + =5mm= 5 mm). +

+

+ After finishing the fabrication process, the osteochondral constructs were allowed to set at 37C + under saturated relative humidity to form a solid, biomimetic bone compartment through + conversion of the PCaP composite to CDHA. Finally, the osteochondral constructs were disinfected + in + 70%70% + ethanol and exposed to UV-light for + 11 + hour, prior to seeding of cells. +

+

In Vitro pre-culture

+

+ Allogeneic articular cartilage progenitor cells (ACPCs) were obtained as previously described + !unsupported node 'citation'!!unsupported node 'citation'! from animals that + were euthanized at the Utrecht University Veterinary Hospital for causes unrelated to disease or + impairment of the musculoskeletal system and whose remains were donated for research purposes. + Briefly, hyaline cartilage was collected in a sterile fashion, minced, and digested at + 37°C37degree \text{C} + with + 0.2%w⋅v−10.2% wcdot v^{-1} + pronase solution for + 22 + hours, followed by + 1212 + hours in + 0.075%w⋅v−10.075% wcdot v^{-1} + collagenase solution. ACPCs were then selected using a fibronectin adhesion assay + !unsupported node 'citation'!. Cells were expanded in culture and stored in + liquid nitrogen until further use. After thawing, cells were expanded until passage 3 prior to + their use for the experiment. +

+

+ The constructs made of the combined CDHA and MEW meshes were disinfected in ethanol and exposed + to UV-light for 1 hour as mentioned above. To avoid any pH changes that might affect the cells, + the constructs were subsequently washed 3 times for 10 minutes with PBS and then immersed for 1 + week in cell culture medium consisting of Dulbecco’s Modified Eagle Medium/Nutrient Mixture F-12 + (DMEM/F-12, 11320033, Gibco, The Netherlands) supplemented with + 10%v⋅v−110% vcdot v^{-1} + heat-inactivated fetal calf serum (FCS, Gibco, The Netherlands), + 0.2mM0.2 mM + L-ascorbic acid 2-phosphate (Sigma), + 1%1% + MEM Non-Essential Amino Acids Solution (11140035, Gibco, The Netherlands) and + 100U⋅mL−1100 Ucdot mL^{-1} + penicillin with + 100μg⋅mL−1100 mu gcdot mL^{-1} + streptomycin (Life Technologies, The Netherlands). Media were refreshed every 2-3 days. +

+

+ On the day of seeding, medium was refreshed 2 hours before seeding and scaffolds were placed + inside a custom-made polydimethylsiloxane (PDMS) ring (Figure 2) that + prevented overflow of the cell suspension from the cartilage compartment to the bone scaffold. + Ten million cells were suspended in + 100μl100 mu l + of medium and seeded on top of the constructs. The cell suspension was left to settle at the + bottom of the cartilage part for 30 minutes. Afterwards, + 2ml2 ml + of cartilage medium supplemented with + 100ng⋅ml−1100 ngcdot ml^{-1} + of BMP-9 (PeproTech, The Netherlands) was carefully added to the well. The seeded constructs + were cultured for 4 weeks prior to implantation, refreshing the medium 3 times a week. +

+
+ +
+ Schematic picture representing the fabrication process of the tissue engineered + osteochondral constructs. + Fabrication techniques and processes for forming osteochondral graft (A), Material + composition of osteochondral graft and process during in vitro preculture (B). +
+
+

Surgical procedure

+

+ Ponies were premedicated with detomidine (intravenous (IV), + 10μg⋅kg−110 mu gcdot kg^{-1}) and morphine (IV, + 0.1mg⋅kg−10.1 mgcdot kg^{-1}) and anesthesia was induced with midazolam (IV, + 0.06mg⋅kg−10.06 mgcdot kg^{-1}) and ketamine (IV, + 2.2mg⋅kg−12.2 mgcdot kg^{-1}). Anesthesia was maintained with isoflurane in oxygen together with continuous rate infusion + of detomidine (IV, + 10μg⋅kg−110 mu gcdot kg^{-1}/h) and ketamine (IV, + 0.5mg⋅kg−10.5 mgcdot kg^{-1}/h). Meloxicam (IV, + 0.6mg⋅kg−10.6 mgcdot kg^{-1}), morphine (epidural injection, + 0.1−0.2mg⋅kg−10.1 - 0.2 mgcdot kg^{-1}) and ampicillin (IV, + 10−15mg⋅kg−110 - 15 mgcdot kg^{-1}) were administered pre-operatively as analgesic medication and antibacterial preventative + therapy, respectively. +

+

+ The medial femoral ridge of the stifle joint was exposed by arthrotomy and an osteochondral + lesion (diameter + =6mm= 6 mm, depth + =6mm= 6 mm) was surgically created using a power drill. The surgical area was flushed by saline for + cooling and removal of debris. Cell-laden constructs were implanted press-fit in a randomly + chosen hind limb, with the cell-free control being implanted in the contralateral limb. After + closing the arthrotomy wound in four layers in routine fashion, procaine penicillin was + administered (Procapen, intramuscular (IM), + 20mg⋅kg−120 mgcdot kg^{-1}). Post-operatively, nonsteroidal anti-inflammatory medication (metacam, per os (PO), SID, + 0.6mg⋅kg−10.6 mgcdot kg^{-1}) was administered for 5 days and opioids (tramadol, PO, BID, + 5mg⋅kg−15 mgcdot kg^{-1}) were administered for + 22 + days. +

+

Gait analysis

+

+ The ponies were trained on a treadmill prior to the study using a standard protocol for + treadmill habituation. Twenty-eight spherical reflective markers with a diameter of + 24mm24 mm + (topline) and + 19mm19 mm + (elsewhere) were attached with double-sided tape and second glue to anatomical landmarks (Figure + 3). Kinematic data were collected on a treadmill (Mustang, + Fahrwangen, Switzerland) at trot using six infrared optical motion capture cameras (ProReflex, + Qualisys, Gothenburg, Sweden) recording at a frame rate of + 200Hz200 Hz + for + 3030 + seconds at each session to obtain a sufficient number of strides. +

+

+ To process the data, the reconstruction of three-dimensional coordinates of each marker was + automatically calculated by Q-Track software (Qtrack, Qualisys, Gothenburg, Sweden). Each marker + was identified and labelled using an automated model (AIM model) and manual tracking. Raw data + of the designated markers were exported to Matlab (version 2018a, Niantics, California) for + further analysis using custom written scripts. For each stride, two symmetry parameters were + calculated using the vertical displacement of the head and pelvis (tubera sacrale) markers. For + each stride, the differences between the two vertical displacement minima of the head + (MinDiffhead) and pelvis (MinDiffpelvis) were calculated. Using the markers, limb-segments were + formed and angles between these limb-segments were calculated. The difference between the + maximal and minimal angle was defined as the range of motion (ROM) of a joint. For each + timepoint, the mean value of all strides for each parameter was calculated. +

+
+ +
+ Schematic picture representing location of the markers for gait analysis. +
+
+

Radiographic examination

+

+ Stifles were radiographed in 3 projections: lateromedial, craniolateral-caudomedial oblique and + caudo-cranial projection using standard machine settings before surgery (baseline), at 3 weeks + postoperatively and at 6 months, just before euthanasia. +

+

Euthanasia and sample harvest

+

+ After 6 months, animals were euthanized by induction with Midazolam (IV, + 0.06mg⋅kg−10.06mgcdot kg^{-1} + body weight) with ketamine IV, (2.2mg⋅kg−12.2 mgcdot kg^{-1} + body weight) and subsequent administration of sodium pentobarbital (IV, + 1400mg⋅kg−11400 mgcdot kg^{-1} + body weight). Next, the stifle joint was exposed, and gross assessment of the medial trochlear + ridge was performed, focusing on the degree of filling of the defect, the integration of repair + tissue with the surrounding native tissue and the surface quality of the repair tissue. + Subsequently, the entire osteochondral area containing the constructs was harvested for further + analyses with the aid of a surgical bone saw. Harvested tissues were initially kept in + sterilized PBS for micro-computed tomography (micro-CT) scanning, biomechanical analyses and for + collecting tissue from the chondral compartment of the implant for biochemical analyses. After + this, all tissues were fixed in 4% formaldehyde for subsequent histological processing. +

+

Biomechanical evaluation

+

+ The compressive properties of the chondral compartment of the defect site, the adjacent + surrounding native cartilage and the more distant surrounding native cartilage (5−10mm5 - 10 mm + from the boundary of the defect) (N=7N=7 + for cell-laden constructs and + N=7N=7 + for cell-free constructs) were evaluated with a dynamic mechanical analyzer (DMA, DMA Q800, TA + instrument) equipped with a custom-size compressing probe (diameter + =2mm= 2 mm). A ramp force of + 0.250N⋅min−10.250 Ncdot min^{-1} + was applied until reaching + 2.0N2.0 N, to limit the deformation of sample to values below + 200μm200 mu m. Compression modulus was calculated as the slope of the stress-strain curve in the range + between + 10−12%10-12 % + strain. +

+

Biochemical evaluation

+

+ Firstly, biochemical analyses were performed on supplemental pre-implantation constructs + (N=3N=3) that had been prepared in the same batch as the constructs that were later implanted. The + chondral compartments of 28-day cultured constructs were removed and freeze-dried. Next, dry + samples were digested in papain (Sigma Aldrich) at + 60°C60degree \text{C} + overnight. DNA, sulphated glycosaminoglycan (sGAG), and alkaline phosphatase (ALP) content were + quantified by performing the Quan-iT-Picogreen-dsDNA-kit assay (Molecular Probes, Invitrogen, + Carlsbad, USA), the dimethylmethylene blue assay (DMMB, Sigma-Aldrich, The Netherlands) and the + p-nitrophenyl phosphate assay (SIGMAFAST, Sigma-Aldrich), respectively. +

+

+ Secondly, tissue fractions that were collected from the chondral compartments of harvested + implants (N=6N=6 + for cell-laden constructs, + N=7N=7 + for cell-free constructs) were kept at + −80°C-80degree \text{C}, followed by lyophilization. Collagen content was quantified using an hydroxyproline assay + (L-Hydroxyproline, Merck KGaA), and the sGAG and DNA quantification was performed as described + above. +

+

Microcomputed tomography

+

+ Microcomputed tomography was employed for the quantitative analysis of the bone compartments + from the harvested osteochondral lesions (N=7N=7 + for cell-laden constructs, + N=7N=7 + for cell-free constructs). Six freshly made osteochondral grafts were scanned in a micro-CT + scanner (Quantum FX-Perkin Elmer) to quantify the initial volume of PCaP material, + pre-operatively. The post-mortem harvested tissue containing the defect area and the surrounding + native tissue were similarly scanned (voltage + =90kV= 90 kV, current + =200μA= 200 mu A, voxel size + =30μm3= 30 mu m^{3} + and total scanning time + =3minutes= 3 minutes). Subsequently, the 3D-reconstructed images were processed and analyzed using image J software + !unsupported node 'citation'! and Bone J plugin + !unsupported node 'citation'!. Two-dimensional regions of interest (ROIs) were + selected in an axial plane at the boundary between the defect and the surrounding native tissue + and interpolated to form a three-dimensional volume of interest (VOI). Thresholding was + performed to separately select areas of ceramics and newly formed bone respectively for further + calculation. Then, the percentages of mineralized newly formed bone, of non-mineralized tissue + and of remaining ceramics, including the percentage of ceramics volume loss, were quantified. +

+

Histological evaluation

+

+ Firstly, supplemental pre-implantation constructs (N=3N=3) that had been prepared in the same batch as the ones that later were implanted were fixed in + 4%4% + formaldehyde. After decalcification in + 0.5M0.5M + Ethylenediaminetetraacetic acid (EDTA) disodium salt (pH=8pH = 8) for + 11 + day, tissues were dehydrated with graded ethanol series, cleared in xylene, and embedded in + paraffin. Paraffin embedded tissues were sliced to + 5μm5 mu m + sections. Histochemical evaluation of GAG was done by safranin-O / fast green staining. Type I + collagen (primary antibody: monoclonal antibody EPR7785, + 1.083mg⋅ml−11.083 mgcdot ml^{-1}, Abcam) and type II collagen (primary antibody: monoclonal antibody II-II6B3, + 0.06mg⋅ml−10.06 mgcdot ml^{-1}, DSHB) were visualized by immunohistochemistry. +

+

+ The tissues that were harvested after + 66 + months (N=7N=7 + for cell-laden constructs, + N=7N=7 + for cell-free constructs) were kept in + 4%4% + formaldehyde and then decalcified in + 0.5M0.5M + EDTA disodium salt (pH=8pH = 8) for + 2424 + weeks. Decalcified tissues were cut into two halves before processing to enable visual + inspection of the center of the lesion. Tissues were dehydrated with graded ethanol series, + cleared in xylene and finally embedded in paraffin. Paraffin embedded tissues were sliced to + 5μm5 mu m + sections. For assessment of morphology and cell distribution, hematoxylin-eosin staining + (Mayer’s haematoxylin, Merck 109249 and eosin, Merck 115935) was performed. GAG and collagen + alignment were assessed after safranin-O / fast green and picrosirius red staining, + respectively. Types I collagen and type II collagen were visualized by immunohistochemistry, as + described above. For immunohistochemistry, all samples were treated according to previously + published protocols !unsupported node 'citation'!. Stained histological slides + were imaged using a light microscope (Olympus BX51, Olympus Nederland B.V.), equipped with a + digital camera (Olympus DP73, Olympus Nederland B.V.). To observe the picrosirius red stained + slides, a polarizer was also mounted to the light microscope. +

+

Statistical analysis

+

+ Normality of distribution of the data was assessed from skewness, kurtosis, and Q-Q plots. + Results were reported as mean + ±pm + standard deviation. Wilcoxon signed rank tests were used to analyze the biochemical, + biomechanical, and micro-CT data. Statistical significance was set at + p=0.05p = 0.05. All tests were performed using Matlab (version R2018b, The MathWorks, Inc.). +

+

+ To evaluate the gait parameters, stride-level data were analyzed with R software (version 3.6.0, + R Core Team, 2019), using package NLME (version 3.1-137) for mixed modelling. Dependent + variables were investigated for normality using normal probability plotting and examining for + skewness and kurtosis. If not normally distributed, data were transformed to permit linear mixed + modeling. The random effect was subject and timepoint was the fixed effect. Significance was set + at p < 0.05 and p-values were corrected using the false discovery rate method. Residual plots + were checked for heteroscedasticity versus the outcome, as well as for normality in Q-Q plots. +

+

Results

+

In vitro

+

+ After 4 weeks of preculture, macroscopic characterization of tissue formation and hyaline-like + extracellular matrix production were assessed both quantitatively and qualitatively within the + chondral compartment of the cell-laden osteochondral constructs. The BMP-9 stimulated ACPCs + meant to colonize the MEW scaffolds formed neo-tissue that had grown into a disc shape after 3 + weeks of culture. During the 4th week of culture, outgrowth from the MEW meshes was + observed (Figure 4A) from this construct. Cell-free constructs did + not change after immersion in growth factor-free medium for 4 weeks (Figure + 4B). Biochemical analyses of the chondral compartment of the + cell-laden constructs were performed to quantify matrix production of stimulated cells toward + chondrogenic lineage and osteogenic lineage, which revealed the presence of GAGs + (GAGs⋅cdot + DNA-1 was + 199.7±67.7μg⋅μg−1199.7 pm 67.7 mu gcdot mu g^{-1}) and ALP activity (ALP·DNA-1 was + 3702±2111U⋅μg−13702 pm 2111 Ucdotmu g^{-1}), respectively. Safranin-O staining and type II collagen immunohistochemistry were also + performed to visualize hyaline-liked matrix production from stimulated cells, which revealed + abundant deposition of GAGs and type II collagen within the constructs after 3 weeks of + in vitro culture (Figure 4C), showing that the chondral + compartments of the constructs (meant for subsequent implantation) were filled with a hyaline + cartilage-like tissue. No preferential alignment of the collagen fibers could be observed. +

+
+ +
+ Representative pictures of cell-laden and cell-free osteochondral constructs at the + time of implantation. + Cell-laden (A) and cell-free constructs (B) at the time of implantation. Positive safranin-O + staining indicating the presence of glycosaminoglycans (pink = positive), positive type II + collagen (brown = positive) and negative type I collagen (brown = positive) + immunohistochemistry were observed in the chondral compartment of the cell-laden constructs + before implantation (C). +
+
+

Evaluation during surgical implantation

+

+ Both cell-laden and cell-free constructs were press-fit implanted into the surgically created + defect sites. During this procedure, the slightly irregular outer edge of the osteal part of the + construct hampered easy sliding of the construct down into the defect and some fragmentations of + the edges of the bioceramic scaffold was observed during the procedure. This was similar for the + cell-laden and cell-free constructs, which had identical osteal parts (Figure + 5). Further, of some cell-laden constructs, the surface of the + chondral compartment was not level over the entire circumference with the surrounding native + cartilage after press-fitting into the defect site. +

+
+ +
+ Representative pictures show white fragments of broken ceramic after press-fitting + cell-laden and cell-free osteochondral constructs into the defect. + Black arrows indicate the position of some visible bioceramic fragments. White arrows + indicate protrusion of the chondral compartment +
+
+

Post-operative clinical monitoring

+

+ After surgical implantation, the animals were checked clinically for physical appearance and + vital signs on a daily basis. All ponies recovered well from anesthesia after surgery and passed + uneventfully through the rehabilitation period without any abnormalities in body temperature or + behavior, with good weight-bearing on all operated limbs and no clinical signs of lameness + during the entire period, with the exception of a single pony that developed severe lameness at + 10 weeks after surgery. This pony was treated with anti-inflammatory medication and examined + radiographically, which revealed extensive osteolysis around the created lesion. Because of + persistent discomfort, the pony was euthanized at 12 weeks after surgery. Therefore, it was + excluded from all analyses. +

+

Gait analysis

+

+ Objective gait analysis was used to check for lameness or other signs of dysfunction of the + musculoskeletal system. Objective data retrieved before implantation and at the end of the + experiment were assessed for relevant parameters, including symmetry parameters and limb + parameters. +

+

Symmetry parameters

+

+ Front and hind limb lameness were analyzed through evaluation of the symmetry parameters of the + head (MinDiff Head (Figure 6A)) and of the pelvis (MinDiff Pelvis + (Figure 6B)). These values reflect the differences in minimal + vertical displacement with a negative MinDiff indicating a left-sided asymmetry and a positive + MinDiff a right-sided asymmetry. In the treated ponies (except for the case referred to above + that was euthanized), for both the head and the pelvis, there was no clear pattern in the + direction of the asymmetries between baseline and endpoint and those differences between + baseline and endpoint were minimal and statistically not significant. Therefore, symmetry + measures could not discriminate between cell-laden and cell-free constructs. Further, there was + also no clear effect of timepoint on pelvis roll and pelvis yaw range of motion (Supplementary + Figure 12), however, pelvis pitch range of motion (ROM) (Figure + 6C) decreased for all subjects with almost 20% over time + (Supplementary Table 1). +

+

Limb parameters, effects of time

+

+ There was a significant effect of time for the height the toe was lifted from the surface during + the swing phase of the limb that decreased significantly in the cell-free treated limbs, but not + in the limbs treated with cell-laden constructs (Supplementary Table + 1). The only other significant effect of time was a decrease in the + extension of the metacarpophalangeal joint of the forelimb ipsilateral to the hind limb that had + been treated with cell-laden constructs, indicating unloading of that forelimb (Supplementary + Table 1). +

+

+ Limb parameters, differences between cell-laden and cell-free at endpoint +

+

+ There were no significant differences between any of the cell-laden and cell-free limb + parameters at the end of the experiment. Results from the linear mixed model are shown in + Supplementary Table 2. +

+
+ +
+ Gait analysis: Symmetry parameters. Symmetry data of the head (A) and pelvis (B) show + no consistent differences over time. However, pelvis pitch decreased consistently in all + individuals (C). +
+
+

Radiographic examination

+

+ Healing progression within the osteal compartment of the implanted osteochondral constructs was + followed up non-invasively through radiographic examination. On the radiographs taken at + baseline, 3, and 6 months, no obvious abnormalities in term of the architecture of the + surrounding native tissue were detected, other than the defects that had been created. This was + with the exception of the pony that developed severe lameness. In that animal, severe osteolysis + was noted at the implantation site 3 months after the implantation (Supplementary Figure + 13). +

+

+ Post-mortem macroscopic evaluation of the repair tissue +

+

+ Macroscopic characteristics, for instance, color, appearance, and filling level of the lesion, + were observed and documented before harvesting tissue sample for further analyses. After 6 + months, macroscopic evaluation revealed that the defects were filled with repair tissue that in + all cases did not fill the entire defect and remained lower than the level of the surrounding + native cartilage in both cell-laden and cell-free treatments (Figure + 7A). The color of the repair tissue was variable (from reddish, to + yellow and translucent) within the different treatments (Figure 7B). + In some cases, ceramic fragments could be observed within the repair tissue of the chondral + compartment. +

+
+ +
+ Macroscopic appearance of the repair tissue and surrounding native tissue in all + individual animals at euthanasia. + Macroscopic appearance of the defect site and surrounding femoral ridge (A). Close-ups of + macroscopic appearance at the defect site (B). +
+
+

+ Biochemical analyses of repair tissue within the chondral compartment +

+

+ The deposition of GAGs and collagen, the two main elements that compose cartilage extracellular + matrix, were quantified within the chondral compartment of the osteochondral graft 6 months + after implantation. There were no significant differences in either GAGs (cell-laden: + 30.46±15.95μg⋅μg−130.46 pm 15.95 mu gcdotmu g^{-1}, cell-free: + 24.44±15.31μg⋅g−124.44 pm 15.31 mu gcdot g^{-1}) or collagen expressed per DNA (cell-laden: + 79.66±91.21μg⋅μg−179.66 pm 91.21 mu gcdotmu g^{-1}, cell-free: + 134.21±153.73μg⋅μg−1134.21pm 153.73 mu gcdotmu g^{-1}) between the chondral compartments of the cell-laden and cell-free constructs (Figure + 8A, 8B and Supplementary Figure 14). However, + all values were substantially lower than those from native cartilage (Figure + 8, grey dotted line) that was harvested distantly from the defect + site. +

+

!unsupported node 'iframe'!

+
+ +
+ Biochemical analysis from chondral compartment at the defect site after an implantation + for 6 months. + Quantitative analysis of GAG·DNA-1 between cell-laden and cell-free treatments + (A). Quantitative analysis of collagen⋅ DNA-1 between cell-laden and cell-free + treatments (B) (x = mean). Grey dotted line indicates level in native cartilage. +
+
+

+ Biomechanical properties of the repair tissue within the chondral compartment +

+

+ Compressive strength of the chondral compartment was assessed and compared in three different + locations: the defect site, adjacent surrounding native tissue, and distant surrounding native + tissue (Figure 9A), the latter two as control measurements from + healthy cartilage tissue. There were no significant differences in the Young’s modulus of the + chondral compartment between cell-laden (0.31±0.13MPa0.31 pm 0.13 MPa) and cell-free (0.42±0.19MPa0.42 pm 0.19 MPa) constructs (Figure 9B). This was also true for two sites of the + native cartilage, one close to the border of the defect (cell-laden: + 1.75±0.80MPa1.75 pm 0.80 MPa, cell-free: + 2.22±0.48MPa2.22 pm 0.48 MPa) and one at + 5−10mm5 - 10 mm + from the defect boundary (cell-laden: + 1.86±0.78MPa1.86 pm 0.78 MPa, cell-free: + 2.19±0.77MPa2.19 pm 0.77 MPa) (Figure 9C, 9D). However, the compression modulus of the native + tissue was substantially higher (approximately + 5−65-6-fold) than inside the chondral compartment of the implant. +

+
+ +
+ Compression modulus of the chondral compartment at the defect site and surrounding + native cartilage of harvested samples 6 months after implantation. + Schematic picture demonstrating locations where mechanical properties were analyzed (A). + Compression modulus of the chondral compartment of cell-laden and cell-free constructs at 6 + months (B) and at two sites of the native cartilage, close to the border of the defect (C) + and further away (D). (x = mean). +
+
+

+ Micro-CT evaluation of repair tissue within the osteal compartment +

+

+ Bone healing and integration after was assessed through micro-CT scanning 6 months after + implantation. Micro-CT images showed significant bone loss surrounding the implant in both the + cell-laden and the cell-free groups, which could be visualized as black areas between the porous + bioceramic structure (white) and the surrounding native bone (grey). However, mineralized bone + formation could be visualized in some scaffolds from both groups with an integration to + neighboring native bone (Figure 10A). Statistically, there were no + significant differences in mineralized bone formation (cell-laden: + 6.14%±10.09%6.14% pm 10.09%, cell-free: + 4.73%±4.93%4.73% pm 4.93%) and non-mineralized tissue (cell-laden: + 81.38%±15.37%81.38% pm 15.37%, cell-free: + 74.71%±12.44%74.71% pm 12.44%). However, there was a significant difference in the amount of remaining ceramics between the + two groups (cell-laden: + 12.48%±9.75%12.48% pm 9.75%, cell-free: + 20.56%±10.54%20.56% pm 10.54%(p=0.0313p = 0.0313)) (Figure 10B). In line with this, there was a difference in the + degradation of ceramics in the cell-laden construct versus the cell-free constructs (cell-laden: + 79.02±16.18%79.02 pm 16.18 %, cell-free: + 63.20±13.90%63.20 pm 13.90 %(p=0.0313p = 0.0313)) (Figure 10C). +

+
+ +
+ Representative micro-CT images from the middle of the sagittal plane of the constructs + and quantification from 3D-reconstruction of micro-CT. + Representative micro-CT images from the middle of the sagittal plane of the constructs + (white = ceramics, grey = mineralized tissue, black = non-mineralized tissue) (A). + Quantitative analysis from micro-CT reconstruction showing percentage of mineralized bone + formation, non-mineralized tissue, and remaining ceramics (B). The volume loss of ceramics + was slightly higher in the cell-laden constructs compared to the cell-free ones (C). +
+
+

+ Histological evaluation of the osteochondral repair tissue +

+

+ Histological slides were assessed to identify the composition of the repair tissue matrix + deposited within the defect site. In the chondral compartment, the defect sites of both + cell-laden and cell-free structures were filled with fibrous repair tissue with degenerated and + necrotic superficial surface with minimal inflammatory reaction, as revealed by H&E and + safranin-O staining (Figure 11, Supplementary Figure + 15, Supplementary Figure 17, and Supplementary + Figure 18). Integration at the boundary of the defect between chondral + repair tissue and surrounding native cartilage was observed in both groups. The production of + GAGs, type II collagen, and type I collagen was very limited in the repair tissue in both groups + (Figure 11). The organization of the collagen fibrils in both groups + seemed random, without any hierarchical pattern that could be identified by polarized light + imaging of picrosirius red staining. Additionally, the special distribution of PCL-microfibers, + which had disappeared because of the xylene treatment during sample preparation, was still + traceable within the chondral compartment of both groups (1 out of 7 for cell-laden and 5 out of + 7 for cell-free structure). +

+

+ In the bone compartment, there was positive staining for type I collagen in some scaffolds from + both groups at places where there were islands of new mineralized bone formation. There were + multifocal coalescing spots of inflammatory reaction characterized by macrophages, + multinucleated giant cells, lymphocytes, eosinophils, and plasma cells (Supplementary Figure + 16, Supplementary Figure 17, Supplementary + Figure 18). +

+
+ +
+ Representative histological images from the center part of cell-laden and cell-free + structures after implantation for 6 months. + Safranin-O/fast green (red color = positive) (A, E); Collagen type II (brown color = + positive) (B, F); Picrosirius-red (C, G); collagen type I (brown color = positive) (D, H) of + cell-laden (A-D) and cell-free structures (Scale bar = 1mm). +
+
+

Discussion

+

+ This study aimed to evaluate the efficacy of an engineered osteochondral composite scaffold that + was fabricated by combining a proven osteogenic CDHA scaffold for the osteal compartment with a + novel interface for the connection between the chondral and osteal compartments. For the + chondral compartment, BMP-9 stimulated cell-laden and cell-free constructs were compared. The + cell-laden constructs contained in vitro formed tissue that was rich in GAGs and type + II collagen, obtained by seeding Articular Cartilage Progenitor Cells (ACPCs) and stimulating + them with BMP-9 for 4 weeks prior to implantation. After implantation in an equine osteochondral + defect for 6 months, there was poor chondral repair tissue in both the cell-laden and cell-free + implants. The repair tissue was akin to fibrocartilage and was characterized by the presence of + fibrous tissue with low content of GAGs and type II collagen and a degenerated surface. The CDHA + scaffold had failed to act as an osteal anchor, as evidenced by the radiographical images + showing misalignment and partial collapse of the CDHA construct, the presence of CDHA fragments + within the defect and in the surrounding tissues, and a limited volume of newly formed calcified + bone in the pores of the osteal anchor. +

+

+ In the quest for a method to achieve satisfactory and durable repair of articular cartilage, + several osteochondral grafts that incorporate cells and that were manipulated to optimize + biochemical and biomechanical properties, have been investigated in the past decades + !unsupported node 'citation'!. Articular Cartilage Progenitor Cells have become + a promising cell source due to their ability to retain their chondrogenicity after their + expansion for several passages !unsupported node 'citation'!. Recently, growth + factor BMP-9 was shown to be a potent stimulator of chondrogenic differentiation of this cell + type in vitro !unsupported node 'citation'!. This warranted further + investigations to evaluate the use of BMP-9 stimulated ACPCs for cartilage repair + in vivo. Indeed, the cell-laden chondral compartment showed a high presence of + neo-cartilage extracellular matrix production after pre-culture at the time of implantation, yet + the average GAG content decreased approximately 6.5-fold during the + in vivo implantation period. The GAG content of cell-laden constructs in fact decreased + to the level of the cell-free constructs, suggesting loss or disintegration of the + in vitro formed tissue. Which factor initiated this loss of in vitro formed + tissue remains unclear. A previous study from + !unsupported node 'citation'! demonstrated superior results in using ACPCs for + cartilage repair in an equine model, in comparison with mesenchymal stem cells. However, due to + the use of different materials and cell culture protocols, it is impossible to directly compare + those results with the ones from the current study. Several factors might have been involved in + the deterioration of the chondral compartment in this study, most prominently mechanical + stresses due to the partial failure of the osteal basis and the resulting poor osteointegration + !unsupported node 'citation'!. +

+

+ The nature of the osteal anchor is an important factor when developing tissue-engineered + osteochondral implants. Much work has been done on the development of several types of bone + grafts and many of these are routinely used in clinical settings + !unsupported node 'citation'!, so of the various elements of an osteochondral + implant, the bone part is seemingly the least difficult one. However, the relationship between + the osteal anchor and the quantity and quality of the repair tissue in the chondral compartment + has been the subject of debate !unsupported node 'citation'! and it is still + unclear what osteal anchor would form the best base for facilitating cartilage repair. The exact + same bioceramic material tested in this long-term, orthotopic equine study, had previously been + shown to successfully guide osteoregeneration in the same species, when implanted in the tuber + coxae, an anatomical locus less subject to intense mechanical loads + !unsupported node 'citation'!. Additionally, this previous study also focused + on comparing different pore architecture within the 3D printed bone scaffolds. The scaffold + architecture that led to the highest rate of new bone formation, consisting of a constant pore + size across the sample, was selected for the present study, with the goal of maximizing neo-bone + repair !unsupported node 'citation'!. However, there are two major differences + with the use of the material in the current study. First, in the previous study the material was + implanted in the tuber coxae, which is an orthotopic area but not representative of the + intra-articular environment. Second, in the former study the implant was surrounded by a + cylindrical case made of PCL that served to prevent bone ingrowth from the sides. Without such a + shell of the mechanically deformable PCL in the current study, the surgeon encountered + difficulties during the surgical placement of the implants, provoked by the non-resilience and + brittleness of the CaP-based material, combined with some deviation from an ideal cylindrical + shape of the CDHA implant. This resulted in fragments breaking off from the bioceramic osteal + anchor. In fact, although inadvertently and as a side-effect, this problem of fragment formation + was avoided in the former study when using PCL to encase. Polycaprolactone is deformable + material, and the encasing will have facilitated the sliding of the ceramic implant into the + defect. The duration of both studies was not identical (7 months in the earlier study, 6 months + in the current), which makes direct comparisons between the two impossible. However, there were + clear histological differences with many more multifocal to coalescing inflammatory reactions in + both cell-laden and cell-free implants in the current study, compared to the earlier study, in + which there were very few inflammatory cells visible. This difference is likely due to the + chronic irritation caused by fragments of material and to instability resulting from the + imperfect fit of scaffold within the defect in the current study. +

+

+ Some scaffolds from the current study collapsed and showed misalignment of the CDHA structure + within the defect, with slightly enlarged defect size after an implantation for 6 months (as + evident from the micro-CT analysis). Bone resorption around the implant was found both in the + groups with cell-laden and with cell-free chondral compartment, which infer the effect from the + osteal anchor rather than from the variable within chondral compartment. The circumstances + described above likely resulted in failure to place the implant in a real press-fit fashion and + hence, in the creation of (micro)movement, leading to increasing instability under repetitive + loading together with possible material degradation over time and ensuing osteolysis, as seen + earlier !unsupported node 'citation'!!unsupported node 'citation'!. + Additionally, the gap between the implant and surrounding native tissue due to the imperfect fit + may have allowed for the intrusion of synovial fluid. Contact of synovial fluid with subchondral + bone has been shown to induce osteolysis !unsupported node 'citation'!. In the + few scaffolds that remained in place, the volume of mineralized bone formation was also lower + than what was found in the earlier study, both in cell-laden and cell-free treatments. This is + potentially due to the higher and cyclical loads experienced in the articulating joint compared + to the tuber coxae. Overall, it was not possible to determine a single cause for the failure of + the CDHA scaffolds to act as the anchor of the engineered osteochondral implant, and it is + likely that the limited osteointegration is due to a combination of misalignment after surgery, + mechanical failure under cyclic loading, and synovial fluid infiltration. +

+

+ In earlier studies + !unsupported node 'citation'!!unsupported node 'citation'! similar observations + were made. In those studies, fibrous repair tissue was seen in the chondral compartment, + together with osteolysis and formation of a fibrous interface surrounding the osteal anchor when + tissue-engineered osteochondral grafts were implanted in a load-bearing area for a 12-month + long-term study. It was hypothesized that osteolysis and the fibrous layer surrounding the + osteal anchor led to instability that might have caused the degradation of the newly formed + cartilage-like repair tissue observed at the early of the experiment. Stability of the + osteochondral graft might be affected by multiple parameters including the alignment of an + osteal compartment within the defect and the properties of the materials being used + !unsupported node 'citation'!!unsupported node 'citation'!!unsupported node + 'citation'!!unsupported node 'citation'!, as these might affect stability of the overlying chondral compartment. In the current study, + misalignment and partial collapse of the osteal part of the construct might also be at the basis + of the protrusion of the chondral compartment of some cell-laden constructs and the inconsistent + position of the chondral graft with respect to the surrounding native tissue in both groups. + These conditions may have led to an abnormal load distribution, possibly inducing inferior + biomechanical properties !unsupported node 'citation'!. It is thus clear that + the imperfect implantation had severe repercussions and can be considered a major factor that + affected the chondral compartment and hence the outcome of the study. This effect was noticeable + to the extent that drawing any conclusions about the effect of BMP-9 seeded ACPCs, which was the + principal variable that was to be tested in the study, is not possible. Also, no conclusion + could be reached about the interface between the osteal and chondral compartments that was used + since delocalized MEW-mesh structures were observed in some scaffolds from both groups. This + might be due to misalignments of the osteal compartment as discussed above, to shear forces + during loading, or a combination of both. +

+

+ During the in vivo post-operative monitoring of the animals, the clinical signs were + very mild and far from alarming, except for the single pony that developed severe lameness. + Clinical examinations were performed routinely by experienced veterinary specialists, however, + assessment of locomotion through visual observation alone is subjective and known to have poor + repeatability, especially in mild cases. This is partly due to the inability of human visual + perception to properly distinguish, notice, and quantify differences in locomotion at high + resolution !unsupported node 'citation'!. Therefore, quantitative gait analysis + was employed as an objective and non-invasive assessment. The gait analysis data did not show + many differences with respect to baseline. This may to a certain extent have been related to + methodological factors. During the assessment, ponies were put on a treadmill and they were + imposed the same belt velocity during both measurements. Therefore, the subjects were forced to + trot at the same velocity, ensuring that stride length needed to be maintained. This might be + the reason why there were no differences between timepoints for maximal protraction and + retraction (the limb parameters). However, pelvis pitch range of motion (ROM) decreased for all + subjects with almost 20% over time. This pattern is often seen in case of dysfunction of the + back. The finding may thus be related to earlier observations that bilateral hindlimb lameness + may induce back problems in horses + !unsupported node 'citation'!!unsupported node 'citation'!!unsupported node + 'citation'!. Toe dragging of the lame limb, in which the hoof is lifted less high off the ground, is + another sign of pain !unsupported node 'citation'!. Nevertheless, the overall + impact of the bilateral lesions in the stifle joints was low, as evidenced by the fact that + there was no sign of load redistribution from the hind to the front limbs. If that had been the + case, the subjects would have compensated by displacing their center of mass more to the front, + resulting in more negative angles for forelimb fetlock extension, as fetlock hyper extension + correlates with peak ground reaction force (GRFPeak) + !unsupported node 'citation'!, where less negative angles indicate a lowered + GRFpeak. In fact, only the fetlock angles of the forelimb ipsilateral to cell-laden construct + changed, becoming less negative, hence indicating unloading rather than additional loading + (lower GRFpeak). The reason for this is not clear. +

+

+ It can be concluded that even seemingly minor modifications of a successful implant may have + grave consequences and extrapolation is dangerous in the complex in vivo situation. In + this case, the failure of the osteal compartment of the construct, the use of which seemed + well-backed by solid in vivo data, did not permit drawing conclusions about the + original hypotheses. Given the relatively frequently occurring, rather disappointing results of + in vivo orthotopic testing of promising techniques for joint repair, it may be wise to + put more emphasis on performing pilot experiments before embarking on a full-scale + in vivo study in a large animal experiment + !unsupported node 'citation'!. Functional joint repair remains a huge challenge + that has not been addressed to some satisfying extent during the last decades, despite many + promising approaches. It is likely that the quest for a real solution will go on for some time + by trial and error with more errors to come. Those errors are inevitable and need to be made but + they should take the least possible toll on experimental animals. +

+

Conclusion

+

+ This study presented the results from the evaluation of a cell-laden and cell-free versions of + an osteochondral implant for cartilage repair in a challenging in vivo large animal + model. The osteal anchor of this osteochondral implant, composed of a bioceramic material that + had previously been proven to facilitate mineralized new bone formation in the same species, + failed to perform as an effective fixation with sufficient stabilization for both cell-laden and + cell-free osteochondral implants. This insufficient fixation was evidenced by the extensive + osteolysis, the collapse and misalignment of the osteal anchor, and the limited volume of newly + formed bone. The failure of the bone anchor hindered the evaluation of the two versions of the + chondral compartment for cartilage repair. The study shows that, even after an equivalent + ceramic bone component had shown very satisfactory results in the same species, minor + differences in the implant and a change in testing condition proved to be enough to lead to + completely different results, in this case precluding drawing conclusions about the effect of + the principal variable. This outcome stresses the need of carrying out in vivo pilot + studies under exactly the same conditions before moving into a larger in vivo study. +

+

References

+

+ Abinzano, F., de Ruijter, M., Mensinga, A., Castilho, M., Khan, I., Levato, R., & Malda, J. + (2018, September). + 9-13). Combining melt electrowriting of microfiber meshes with aggregated chondroprogenitor + cells stimulated with BMP-9 to enhance cartilage tissue engineering [Conference presentation + abstract]. Annual Meeting. + https://pure.ulster.ac.uk/ws/portalfiles/portal/71294610/ESB_2018_Abstract_Proceedings_4.pdf +

+

+ Albrektsson, T., Becker, W., Coli, P., Jemt, T., Molne, J., & Sennerby, L. (2019). Bone loss + around oral and orthopedic implants: An immunologically based condition. + Clinical Implant Dentistry and Related Research, 21(4), 786–795. + https://doi.org/10/gg53t3 +

+

+ Alvarez, C. B. G., Bobbert, M. F., Lamers, L., Johnston, C., Back, W., & van Weeren, P. R. + (2008). The effect of induced hindlimb lameness on thoracolumbar kinematics during treadmill + locomotion. Equine Veterinary Journal, 40(2), 147–152. + https://doi.org/10/bsjkv7 +

+

+ Alvarez, C. B. G., Wennerstrand, J., Bobbert, M. F., Lamers, L., Johnston, C., Back, W., & + Weeren, P. R. (2007). The effect of induced forelimb lameness on thoracolumbar kinematics during + treadmill locomotion. Equine Veterinary Journal, 39(3), 197–201. + https://doi.org/10/djxztr +

+

+ Bal, B. S., Rahaman, M. N., Jayabalan, P., Kuroki, K., Cockrell, M. K., Yao, J. Q., & Cook, + J. L. (2010). In vivo outcomes of tissue-engineered osteochondral grafts. + Journal of Biomedical Materials Research Part B: Applied Biomaterials, 93(1), + 164–174. https://doi.org/10/cn94hf +

+

+ Bothe, F., Deubel, A. K., Hesse, E., Lotz, B., Groll, J., Werner, C., Richter, W., & + Hagmann, S. (2019). Treatment of focal cartilage defects in minipigs with zonal + chondrocyte/mesenchymal progenitor cell constructs. + International Journal of Molecular Sciences. + https://doi.org/10/gh63z7 +

+

+ Boushell, M. K., Hung, C. T., Hunziker, E. B., Strauss, E. J., & Lu, H. H. (2017). Current + strategies for integrative cartilage repair. Connect Tissue Research, 58(5), + 393–406. https://doi.org/10/gf5bw7 +

+

+ Bowland, P., Ingham, E., Jennings, L., & Fisher, J. (2015). Review of the biomechanics and + biotribology of osteochondral grafts used for surgical interventions in the knee. + Proceedings of the Institution of Mechanical Engineers, Part H: Journal of Engineering in + Medicine, 229(12), 879–888. https://doi.org/10/gh63z6 +

+

+ Buchner, H. H. F., Savelberg, H. H. C. M., Schamhardt, H. C., & Barneveld, A. (1995). + Bilateral lameness in horses a kinematic study. Veterinary Quarterly, 17(3), + 103–105. https://doi.org/10/chdqdt +

+

+ Burk, D. L. (2007). Intellectual property and cyberinfrastructure. First Monday. + https://doi.org/1595276491 +

+

+ Crevier-Denoix, N., Robin, D., Pourcelot, P., Falala, S., Holden, L., Estoup, P., Desquilbet, + L., Denoix, J. M., & Chateau, H. (2010). Ground reaction force and kinematic analysis of + limb loading on two different beach sand tracks in harness trotters. + Equine Veterinary Journal, 42(38), 544–551. + https://doi.org/10/dn9j57 +

+

+ de Ruijter, M., Ribeiro, A., Dokter, I., Castilho, M., & Malda, J. (2019). Simultaneous + micropatterning of fibrous meshes and bioinks for the fabrication of living tissue constructs. + Advanced Healthcare Materials, 8(7), 1800418. + https://doi.org/10/gh63z5 +

+

+ Diekman, B. O., & Guilak, F. (2013). Stem cell-based therapies for osteoarthritis: + Challenges and opportunities. Current Opinion in Rheumatology, 25(1), 119–126. + https://doi.org/10/f5k74n +

+

+ Diloksumpan, P., de Ruijter, M., Castilho, M., Gbureck, U., Vermonden, T., van Weeren, P. R., + Malda, J., & Levato, R. (2020). Combining multi-scale 3D printing technologies to engineer + reinforced hydrogel-ceramic interfaces. Biofabrication, 12(2), Article, 25014. + https://doi.org/10/gh63z4 +

+

+ Diloksumpan, P., Vindas Bolanos, R., Cokelaere, S., Pouran, B., de Grauw, J., van Rijen, M., van + Weeren, R., Levato, R., & Malda, J. (2020). Orthotopic bone regeneration within 3D printed + bioceramic scaffolds with region-dependent porosity gradients in an equine model. + Advanced Healthcare Mater, 9(10), 1901807. + https://doi.org/10/gh63z3 +

+

+ Doube, M., Klosowski, M. M., Arganda-Carreras, I., Cordelieres, F. P., Dougherty, R. P., + Jackson, J. S., Schmid, B., Hutchinson, J. R., & Shefelbine, S. J. (2010). BoneJ: Free and + extensible bone image analysis in ImageJ. Bone, 47(6), 1076–1079. + https://doi.org/10/ctk8kn +

+

+ Frisbie, D. D., McCarthy, H. E., Archer, C. W., Barrett, M. F., & McIlwraith, C. W. (2015). + Evaluation of articular cartilage progenitor cells for the repair of articular defects in an + equine model. Journal of Bone and Joint Surgery, 97(6), 484–493. + https://doi.org/10/gh63z2 +

+

+ Goodman, S. B., Pajarinen, J., Yao, Z., & Lin, T. (2019). Inflammation and bone repair: From + particle disease to tissue regeneration. Frontiers in Bioengineering and Biotechnology, + 7, 230. https://doi.org/10/gh63zz +

+

+ Gotterbarm, T., Breusch, S. J., Schneider, U., & Jung, M. (2008). The minipig model for + experimental chondral and osteochondral defect repair in tissue engineering: Retrospective + analysis of 180 defects. Laboratory Animals, 42(1), 71–82. + https://doi.org/10/dxwd9p +

+

+ Greve, L., Dyson, S., & Pfau, T. (2017). Alterations in thoracolumbosacral movement when + pain causing lameness has been improved by diagnostic analgesia. + The Veterinary Journal, 224, 55–63. + https://doi.org/10/gbrrg4 +

+

+ Heuijerjans, A., Wilson, W., Ito, K., & van Donkelaar, C. C. (2018). Osteochondral + resurfacing implantation angle is more important than implant material stiffness. + Journal of Orthopaedic Research, 36(11), 2911–2922. + https://doi.org/10/gh63zx +

+

+ Huang, B. J., Hu, J. C., & Athanasiou, K. A. (2016). Cell-based tissue engineering + strategies used in the clinical repair of articular cartilage. Biomaterials, + 98, 1–22. https://doi.org/10/f8td6q +

+

+ Johnstone, B., Stoddart, M. J., & Im, G. I. (2019). Multi-disciplinary approaches for + cell-based cartilage regeneration. Journal of Orthopaedic Research, 38(3), + 463–472. https://doi.org/10/gh63zw +

+

+ Kloppenburg, M., & Berenbaum, F. (2020). Osteoarthritis year in review 2019: Epidemiology + and therapy. Osteoarthritis and Cartilage, 28(3), 242–248. + https://doi.org/10/gh63zv +

+

+ Kold, S. E., Hickman, J., & Melsen, F. (1986). An experimental study of the healing process + of equine chondral and osteochondral defects. Equine Veterinary Journal, + 18(1), 18–24. https://doi.org/10/cchb7z +

+

+ Kwon, H., Brown, W. E., Lee, C. A., Wang, D., Paschos, N., Hu, J. C., & Athanasiou, K. A. + (2019). Surgical and tissue engineering strategies for articular cartilage and meniscus repair. + Nature Reviews Rheumatology, 15(9), 550–570. + https://doi.org/10/gg8s2h +

+

+ Lee, J. K., Responte, D. J., Cissell, D. D., Hu, J. C., Nolta, J. A., & Athanasiou, K. A. + (2014). Clinical translation of stem cells: Insight for cartilage therapies. + Critical Reviews in Biotechnology, 34(1), 89–100. + https://doi.org/10/gh63zt +

+

+ Levato, R., Webb, W. R., Otto, I. A., Mensinga, A., Zhang, Y., van Rijen, M., van Weeren, R., + Khan, I. M., & Malda, J. (2017). The bio in the ink: Cartilage regeneration with + bioprintable hydrogels and articular cartilage-derived progenitor cells. + Acta Biomaterialia, 61, 41–53. + https://doi.org/10/gh3prk +

+

+ Malda, J., Groll, J., & van Weeren, P. R. (2019). Rethinking articular cartilage + regeneration based on a 250-year-old statement. Nature Reviews Rheumatology, + 15(10), 571–572. https://doi.org/10/gh63zs +

+

+ Mancini, I. A. D., Vindas Bolanos, R. A., Brommer, H., Castilho, M., Ribeiro, A., van Loon, J. + P. A. M., Mensinga, A., van Rijen, M. H. P., Malda, J., & van Weeren, R. (2017). Fixation of + hydrogel constructs for cartilage repair in the equine model: A challenging issue. + Tissue Engineering Part C Methods, 23(11), 804–814. + https://doi.org/10/gch2gd +

+

+ Martin, I., Miot, S., Barbero, A., Jakob, M., & Wendt, D. (2007). Osteochondral tissue + engineering. Journal of Biomechanics, 40(4), 750–765. + https://doi.org/10/fb6fqk +

+

+ McCarthy, H. E., Bara, J. J., Brakspear, K., Singhrao, S. K., & Archer, C. W. (2012). The + comparison of equine articular cartilage progenitor cells and bone marrow-derived stromal cells + as potential cell sources for cartilage repair in the horse. The Veterinary Journal, + 192(3), 345–351. https://doi.org/10/ck96wv +

+

+ Morgan, B. J., Bauza-Mayol, G., Gardner, O. F. W., Zhang, Y., Levato, R., Archer, C. W., van + Weeren, R., Malda, J., Conlan, R. S., & Khan, I. M. (2020). Bone morphogenetic protein-9 is + a potent chondrogenic and morphogenic factor for articular cartilage chondroprogenitors. + Stem Cells and Development, 29(14), 882–894. + https://doi.org/10/gh63zr +

+

+ Nosewicz, T. L., Reilingh, M. L., Wolny, M., van Dijk, C. N., Duda, G. N., & Schell, H. + (2014). Influence of basal support and early loading on bone cartilage healing in press-fitted + osteochondral autografts. Knee Surgery, Sports Traumatology, Arthroscopy, + 22(6), 1445–1451. https://doi.org/10/gh63zq +

+

+ Oryan, A., Alidadi, S., Moshiri, A., & Maffulli, N. (2014). Bone regenerative medicine: + Classic options, novel strategies, and future directions. + Journal of Orthopaedic Surgery and Research, 9(1), Article, 18. + https://doi.org/10/gbftx2 +

+

+ Patel, J. M., Saleh, K. S., Burdick, J. A., & Mauck, R. L. (2019). Bioactive factors for + cartilage repair and regeneration: Improving delivery, retention, and activity. + Acta Biomateralia, 93, 222–238. + https://doi.org/10/gg8sw8 +

+

+ Schindelin, J., Arganda-Carreras, I., Frise, E., Kaynig, V., Longair, M., Pietzsch, T., + Preibisch, S., Rueden, C., Saalfeld, S., Schmid, B., Tinevez, J., White, D. J., Hartenstein, V., + Eliceiri, K., Tomancak, P., & Cardona, A. (2012). Fiji: An open-source platform for + biological-image analysis. Nature Methods, 9(7), 676–682. + https://doi.org/10/f34d7c +

+

+ Schlichting, K., Schell, H., Kleemann, R. U., Schill, A., Weiler, A., Duda, G. N., & Epari, + D. R. (2008). Influence of scaffold stiffness on subchondral bone and subsequent cartilage + regeneration in an ovine model of osteochondral defect healing. + American Journal of Sports Medicine, 36(12), 2379–2391. + https://doi.org/10/c7qbh7 +

+

+ Serra Bragança, F. M., Rhodin, M., & van Weeren, P. R. (2018). On the brink of daily + clinical application of objective gait analysis: What evidence do we have so far from studies + using an induced lameness model? Veterinary Journal, 234, 11–23. + https://doi.org/10/gdmqnn +

+

+ van Susante, J. L., Buma, P., Homminga, G. N., van den Berg, W. B., & Veth, R. P. (1998). + Chondrocyte-seeded hydroxyapatite for repair of large articular cartilage defects. A pilot study + in the goat. Biomaterials, 19(24), 2367–2374. + https://doi.org/10/b74xxn +

+

+ Vindas Bolaños, R. A., Castilho, M., de Grauw, J., Cokelaere, S., Plomp, S., Groll, J., van + Weeren, P. R., Gbureck, U., & Malda, J. (2020). Long-term in vivo performance of + low-temperature 3D-printed bioceramics in an equine model. + ACS Biomaterials Science & Engineering, 6(3), 1681–1689. + https://doi.org/10/gh63zp +

+

+ Vindas Bolaños, R. A., Cokelaere, S. M., Estrada McDermott, J. M., Benders, K. E. M., Gbureck, + U., Plomp, S. G. M., Weinans, H., Groll, J., van Weeren, P. R., & Malda, J. (2017). The use + of a cartilage decellularized matrix scaffold for the repair of osteochondral defects: The + importance of long-term studies in a large animal model. Osteoarthritis and Cartilage, + 25(3), 413–420. https://doi.org/10/f92mgk +

+

+ von Rechenberg, B., Akens, M. K., Nadler, D., Bittmann, P., Zlinszky, K., Kutter, A., Poole, A. + R., & Auer, J. A. (2003). Changes in subchondral bone in cartilage resurfacing—An + experimental study in sheep using different types of osteochondral grafts. + Osteoarthritis and Cartilage, 11(4), 265–277. + https://doi.org/10/bd6pvd +

+

+ Williams, R., Khan, I. M., Richardson, K., Nelson, L., McCarthy, H. E., Analbelsi, T., Singhrao, + S. K., Dowthwaite, G. P., Jones, R. E., Baird, D. M., Lewis, H., Roberts, S., Shaw, H. M., + Dudhia, J., Fairclough, J., Briggs, T., & Archer, C. W. (2010). Identification and clonal + characterisation of a progenitor cell sub-population in normal human articular cartilage. + PLoS One, 5(10), Article, 13246. + https://doi.org/10/bxkqkn +

+

Supplementary information

+

Supplementary Table 1.

+

+ Symmetry parameters (differences between baseline (before implantation) and endpoint (6 + months after implantation) of the study for all ponies). +

+

!unsupported node 'iframe'!

+

Note. Values are given in estimated means (CI)

+

Supplementary Table 2.

+

+ Hind limb parameters (differences between cell-free and cell-laden constructs at 6 months after + implantation). +

+

!unsupported node 'iframe'!

+

Note. Values are given in estimated means (CI)

+
+ +
+ Gait analysis: symmetry parameters. Pelvis roll and yaw joint angles (A,B) showed + no significant differences between baseline and 6 months after implantation and neither did + the kinematic hind limb parameters (C, D, E) between baseline and 6 months after induction. + Limb height of the hind limbs (F) decreased for both hindlimbs, but only significantly for + the cell free group, though there was no difference in limb height between cell-laden and + cell-free groups at 6 months after implementation. +
+
+
+ +
+ Representative radiographic images (latero-medial and craniolateral-caudomedial oblique + projections) of the stifle of ponies before implantation, 3 months after implantation + and 6 months after implantation. + Red arrows indicate the implantation sites. No radiographic abnormalities were noted in any + of the ponies (1st row), except for the pony that became severely lame at 10 + weeks. In this animal extensive osteolysis was observed (2nd row). +
+
+

!unsupported node 'iframe'!

+
+ +
Amount of GAG that was normalized with amount of DNA.
+
+

+
+ +
+ Representative Hematoxylin-Eosin (H&E) staining of 6-month harvested samples + showing a degenerated and necrotic superficial layer at the surface of the chondral + compartment featuring inflammatory cells. + Black arrow indicates area of degenerated cells, P = plasma cells +
+
+
+ +
+ Representative immunohistochemistry of collagen type I staining of 6-month harvested + samples from cell-laden and cell-free osteochondral structures +
+
+
+ +
+ Representative Hematoxylin-Eosin (H&E) staining of 6-month harvested samples from + cell-laden osteochondral structures + CR = Remaining ceramic, NB = Newly formed bone, MEW = pattern of PCL-microfibers, * = + Multifocal foci of inflammatory reaction, # = artifact from cutting, EO = Eosinophil, L = + Lymphocyte +
+
+
+ +
+ Representative Hematoxylin-Eosin (H&E) staining of 6-month harvested samples from + cell-free osteochondral structures. + CR = Remaining ceramic, NB = Newly formed bone, MEW = pattern of PCL-microfibers, * = + Multifocal foci of inflammatory reaction, # = artifact from cutting, EO = Eosinophil, L = + Lymphocyte. +
+
diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway new file mode 100644 index 0000000000..c6b75a10b6 --- /dev/null +++ b/infra/Caddyfile.gateway @@ -0,0 +1,46 @@ +# this is a shared caddyfile for all preview/sandbox deployments +# they cannot all have their own caddyfile sadly + +{ + admin :2019 + on_demand_tls { + ask http://localhost:8888/allow-domain + } +} + +:8888 { + @allow expression {path} == "/allow-domain" && ({query.domain}.matches("pr-[0-9]+\\.preview\\.pubstar\\.org") || {query.domain} == "sandbox.pubstar.org") + handle @allow { + respond "OK" 200 + } + + respond "Not allowed" 403 +} + +(s3site) { + @pathWithSlash path_regexp dir (.+)/$ + handle @pathWithSlash { + redir {re.dir.1} permanent + } + + rewrite * /{args[0]}{uri} + + reverse_proxy {args[1]} { + @error status 403 404 + handle_response @error { + rewrite * {uri}/index.html + reverse_proxy {args[1]} { + @nestedError status 404 + handle_response @nestedError { + respond "Not found" 404 + } + } + } + } +} + +import /etc/caddy/sites.d/*.caddy + +:80 { + respond "OK" 200 +} diff --git a/infra/Caddyfile.preview b/infra/Caddyfile.preview deleted file mode 100644 index 722a4fe3a7..0000000000 --- a/infra/Caddyfile.preview +++ /dev/null @@ -1,81 +0,0 @@ -{ - admin :2019 - debug - on_demand_tls { - ask http://localhost:8888/allow-domain - } -} - -# this only allows preview-*.pubstar.org domains to be used for TLS certificates -# prevents abuse -:8888 { - @allow expression {path} == "/allow-domain" && {query.domain}.matches("pr-[0-9]+.pubstar.org") - handle @allow { - respond "OK" 200 - } - - respond "Not allowed" 403 -} - - -(s3site) { - # strip trailing slash from paths (except root) - @pathWithSlash path_regexp dir (.+)/$ - handle @pathWithSlash { - redir {re.dir.1} permanent - } - - # rewrite to include bucket path - rewrite * /{args[0]}{uri} - - # reverse proxy to garage S3 API - reverse_proxy {args[1]} { - # handle 403/404 by trying index.html - @error status 403 404 - handle_response @error { - rewrite * {uri}/index.html - reverse_proxy {args[1]} { - @nestedError status 404 - handle_response @nestedError { - respond "Not found" 404 - } - } - } - } -} - -:443 { - tls internal { - on_demand - } - - encode gzip - - handle_path /assets* { - reverse_proxy minio:9000 - } - - handle_path /assets-ui* { - reverse_proxy minio:9001 - } - - handle_path /site-builder* { - reverse_proxy site-builder:4000 - } - - handle_path /sites/* { - import s3site {$S3_BUCKET_NAME:assets} {$S3_ENDPOINT:http://minio:9000} - } - - handle_path /emails/* { - reverse_proxy inbucket:9000 - } - - handle { - reverse_proxy platform:3000 - } -} - -:80 { - respond "OK" 200 -} diff --git a/infra/Caddyfile.site.template b/infra/Caddyfile.site.template new file mode 100644 index 0000000000..9919c6aa6e --- /dev/null +++ b/infra/Caddyfile.site.template @@ -0,0 +1,31 @@ +${DEPLOY_HOST} { + tls { + on_demand + } + + encode gzip + + handle_path /assets* { + reverse_proxy ${STACK_NAME}_minio:9000 + } + + handle_path /assets-ui* { + reverse_proxy ${STACK_NAME}_minio:9001 + } + + handle_path /site-builder* { + reverse_proxy ${STACK_NAME}_site-builder:4000 + } + + handle_path /sites/* { + import s3site {$S3_BUCKET_NAME:assets} http://${STACK_NAME}_minio:9000 + } + + handle_path /emails/* { + reverse_proxy ${STACK_NAME}_inbucket:9000 + } + + handle { + reverse_proxy ${STACK_NAME}_platform:3000 + } +} diff --git a/infra/stack.gateway.yml b/infra/stack.gateway.yml new file mode 100644 index 0000000000..03f4df36fc --- /dev/null +++ b/infra/stack.gateway.yml @@ -0,0 +1,34 @@ +# yaml-language-server: $schema=https://raw.githubusercontent.com/swarmlibs/dockerstack-schema/main/schema/dockerstack-spec.json + +services: + + proxy: + image: caddy:latest + volumes: + - ./Caddyfile.gateway:/etc/caddy/Caddyfile:ro + - /srv/caddy/sites.d:/etc/caddy/sites.d:ro + - caddy_data:/data + - caddy_config:/config + networks: [gateway_net] + ports: + - target: 80 + published: 80 + protocol: tcp + mode: host + - target: 443 + published: 443 + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: any + +networks: + gateway_net: + driver: overlay + attachable: true + +volumes: + caddy_data: + caddy_config: diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index ef1560e4c6..738aaf1b1d 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -2,28 +2,6 @@ services: - proxy: - image: caddy:latest - env_file: [.env] - volumes: - - ./Caddyfile.preview:/etc/caddy/Caddyfile:ro - - caddy_data:/data - - caddy_config:/config - networks: [appnet] - ports: - - target: 80 - published: 80 - protocol: tcp - mode: host - - target: 443 - published: 443 - protocol: tcp - mode: host - deploy: - replicas: 1 - restart_policy: - condition: any - platform: image: ghcr.io/knowledgefutures/platform:${IMAGE_TAG} env_file: [.env] @@ -31,14 +9,14 @@ services: HOSTNAME: "0.0.0.0" NODE_ENV: production PORT: "3000" - PUBPUB_URL: https://pr-${PR_NUMBER}.pubstar.org - PUBPUB_HOSTNAME: pr-${PR_NUMBER}.pubstar.org + PUBPUB_URL: https://${DEPLOY_HOST} + PUBPUB_HOSTNAME: ${DEPLOY_HOST} SITE_BUILDER_ENDPOINT: http://site-builder:4000 - S3_PUBLIC_ENDPOINT: https://pr-${PR_NUMBER}.pubstar.org/assets + S3_PUBLIC_ENDPOINT: https://${DEPLOY_HOST}/assets FLAGS: "uploads:off,invites:off,disabled-actions:http+email" DB_RESET: "true" DB_SEED: "true" - networks: [appnet] + networks: [appnet, gateway_net] healthcheck: test: - CMD-SHELL @@ -74,7 +52,7 @@ services: NODE_ENV: production PUBPUB_URL: http://platform:3000 PORT: "4000" - networks: [appnet] + networks: [appnet, gateway_net] deploy: replicas: 1 restart_policy: @@ -104,8 +82,8 @@ services: env_file: [.env] command: server --console-address ":9001" /data environment: - MINIO_BROWSER_REDIRECT_URL: https://pr-${PR_NUMBER}.pubstar.org/assets-ui - networks: [appnet] + MINIO_BROWSER_REDIRECT_URL: https://${DEPLOY_HOST}/assets-ui + networks: [appnet, gateway_net] deploy: replicas: 1 restart_policy: @@ -131,7 +109,7 @@ services: inbucket: image: inbucket/inbucket:latest - networks: [appnet] + networks: [appnet, gateway_net] deploy: replicas: 1 restart_policy: @@ -140,8 +118,9 @@ services: networks: appnet: driver: overlay + gateway_net: + external: true + name: gateway_gateway_net volumes: pgdata: - caddy_data: - caddy_config: From c61e3867f71fb216caafccb34be109d6679ea7b3 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:12:48 +0200 Subject: [PATCH 045/153] fix(skip-build): test From 66899b450c8c1dffe87245f3386363b46ddc2361 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:17:18 +0200 Subject: [PATCH 046/153] fix: skip skip --- .github/workflows/on_pr.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 8937b39a01..958b4712ac 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -108,9 +108,10 @@ jobs: image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - if: needs.build-all.result == 'success' && contains(github.event.pull_request.labels.*.name, 'preview') + if: (needs.build-all.result == 'success' || needs.skip_build_sha.outputs.last-successful-build-sha != '') && contains(github.event.pull_request.labels.*.name, 'preview') uses: ./.github/workflows/deploy-stack.yml needs: + - skip_build_sha - build-all permissions: contents: read From fbd7c985491a521d83367537e980bbb647749466 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:28:04 +0200 Subject: [PATCH 047/153] fix(skip-build): debug gateway --- infra/Caddyfile | 1 + infra/Caddyfile.gateway | 1 + 2 files changed, 2 insertions(+) diff --git a/infra/Caddyfile b/infra/Caddyfile index d65c80d7de..47ffda4e3b 100644 --- a/infra/Caddyfile +++ b/infra/Caddyfile @@ -1,5 +1,6 @@ { admin :2019 + debug } {$PUBPUB_HOSTNAME} { diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index c6b75a10b6..2e0a3f2328 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -6,6 +6,7 @@ on_demand_tls { ask http://localhost:8888/allow-domain } + debug } :8888 { From 3fb1cf7d76689c1bef4ef0de59721e8eec9e3c52 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:32:52 +0200 Subject: [PATCH 048/153] fix(skip-build): common --- .github/workflows/on_pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 958b4712ac..47596dab11 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -108,7 +108,7 @@ jobs: image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - if: (needs.build-all.result == 'success' || needs.skip_build_sha.outputs.last-successful-build-sha != '') && contains(github.event.pull_request.labels.*.name, 'preview') + if: (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') && contains(github.event.pull_request.labels.*.name, 'preview') uses: ./.github/workflows/deploy-stack.yml needs: - skip_build_sha From 9e28c53b0cb6305b35e38ea02f4c36e6ed2552b7 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:40:13 +0200 Subject: [PATCH 049/153] fix(skip-build): again! --- .github/workflows/on_main.yml | 4 ++++ .github/workflows/on_pr.yml | 15 +++++++++++++-- .github/workflows/on_tag.yml | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index 612b5c8f81..a3094689b5 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -12,6 +12,10 @@ permissions: packages: write pull-requests: write +concurrency: + group: deploy-main + cancel-in-progress: false + jobs: ci: uses: ./.github/workflows/ci.yml diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 47596dab11..4f929340fc 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -10,6 +10,10 @@ permissions: packages: write pull-requests: write +concurrency: + group: pr-${{ github.event.pull_request.number }} + cancel-in-progress: true + jobs: path-filter: runs-on: ubuntu-latest @@ -108,7 +112,14 @@ jobs: image-tag-override: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || '' }} deploy-preview: - if: (needs.build-all.result == 'success' || needs.build-all.result == 'skipped') && contains(github.event.pull_request.labels.*.name, 'preview') + if: >- + always() && + contains(github.event.pull_request.labels.*.name, 'preview') && + github.event.action != 'closed' && + github.event.action != 'unlabeled' && + needs.skip_build_sha.result == 'success' && + (needs.build-all.result == 'success' || + (needs.build-all.result == 'skipped' && needs.skip_build_sha.outputs.last-successful-build-sha != '')) uses: ./.github/workflows/deploy-stack.yml needs: - skip_build_sha @@ -118,7 +129,7 @@ jobs: pull-requests: write with: action: deploy - image_tag: ${{ github.event.pull_request.head.sha }} + image_tag: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || github.event.pull_request.head.sha }} stack_name: preview-pr-${{ github.event.pull_request.number }} hostname: pr-${{ github.event.pull_request.number }}.preview.pubstar.org env_file: .env.preview.enc diff --git a/.github/workflows/on_tag.yml b/.github/workflows/on_tag.yml index 19b4f841de..6ee5bf9c61 100644 --- a/.github/workflows/on_tag.yml +++ b/.github/workflows/on_tag.yml @@ -12,8 +12,8 @@ permissions: pull-requests: write concurrency: - group: deploy-prod-${{ github.ref_name }} - cancel-in-progress: true + group: deploy-prod + cancel-in-progress: false jobs: validate-tag: From b0d649d38e26de00e85bb9af92890a776e30a9fd Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 17:54:15 +0200 Subject: [PATCH 050/153] fix: cacheing, correct build --- .github/workflows/deploy-stack.yml | 4 +++- .github/workflows/ghcr-build-template.yml | 4 ++-- infra/Caddyfile.site.template | 4 +--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 6f69945edc..1ad4c3465f 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -119,7 +119,9 @@ jobs: cd infra umask 077 - sops -d --input-type dotenv --output-type dotenv "$ENV_FILE" > .env + # write to a per-stack env file to avoid races between concurrent deploys + sops -d --input-type dotenv --output-type dotenv "$ENV_FILE" > ".env.${STACK_NAME}" + ln -sf ".env.${STACK_NAME}" .env if ! sudo docker info --format '{{.Swarm.LocalNodeState}}' | grep -qx active; then sudo docker swarm init --advertise-addr "$(hostname -I | awk '{print $1}')" diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 58ecb4a598..330dbf8bd7 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -80,8 +80,8 @@ jobs: uses: docker/build-push-action@v6 with: context: . - cache-from: type=gha,scope=${{ inputs.ghcr_image_name }} - cache-to: type=gha,mode=max,scope=${{ inputs.ghcr_image_name }} + cache-from: type=registry,ref=ghcr.io/knowledgefutures/${{ inputs.ghcr_image_name }}:buildcache + cache-to: type=registry,ref=ghcr.io/knowledgefutures/${{ inputs.ghcr_image_name }}:buildcache,mode=max build-args: | PACKAGE=${{ inputs.package }} CI=true diff --git a/infra/Caddyfile.site.template b/infra/Caddyfile.site.template index 9919c6aa6e..d5bcbce832 100644 --- a/infra/Caddyfile.site.template +++ b/infra/Caddyfile.site.template @@ -1,7 +1,5 @@ ${DEPLOY_HOST} { - tls { - on_demand - } + tls internal encode gzip From b9c00ffabfaf51f435d57b2311798dbba3d6a6e2 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 18:13:10 +0200 Subject: [PATCH 051/153] fix: update all the actions (danger) --- .github/workflows/build-docs.yml | 10 ++++----- .github/workflows/ci.yml | 10 ++++----- .github/workflows/deploy-stack.yml | 2 +- .github/workflows/e2e.yml | 6 ++--- .github/workflows/ghcr-build-template.yml | 8 +++---- .github/workflows/on_pr.yml | 6 ++--- .github/workflows/on_tag.yml | 2 +- core/.github/workflows/playwright.yml | 27 ----------------------- 8 files changed, 22 insertions(+), 49 deletions(-) delete mode 100644 core/.github/workflows/playwright.yml diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 48bc99a699..8716faa3c8 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -15,14 +15,14 @@ jobs: with: # necessary in order to show latest updates in docs fetch-depth: 0 - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 22.13.1 - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 name: Install pnpm with: run_install: false @@ -34,7 +34,7 @@ jobs: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT - name: Setup pnpm cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.get-store-path.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} @@ -42,7 +42,7 @@ jobs: ${{ runner.os }}-pnpm-store- # - name: Cache turbo - # uses: actions/cache@v4 + # uses: actions/cache@v5 # with: # path: .turbo # key: ${{ runner.os }}-turbo-${{ github.sha }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 00b61d8d75..c7ec93f10e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,14 +28,14 @@ jobs: ENV_FILE: .env.docker-compose.dev steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 22.13.1 - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 name: Install pnpm with: run_install: false @@ -47,7 +47,7 @@ jobs: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT - name: Setup pnpm cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.get-store-path.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} @@ -56,7 +56,7 @@ jobs: # to cache p:build, format, lint, type-check and test-run - name: Setup turbo cache - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: .turbo key: ${{ runner.os }}-turbo-${{ github.sha }} diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 1ad4c3465f..311f93c82e 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -57,7 +57,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 15 steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Start SSH agent uses: webfactory/ssh-agent@v0.9.0 diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index d147f1eae0..b7233997cb 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -26,16 +26,16 @@ jobs: ENV_FILE: .env.docker-compose.dev steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Install Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@v6 with: node-version: 22.13.1 - - uses: pnpm/action-setup@v4 + - uses: pnpm/action-setup@v5 name: Install pnpm with: run_install: false diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 330dbf8bd7..246eb9d86a 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -40,19 +40,19 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: ref: ${{ github.event.pull_request.head.sha || github.sha }} - name: Login to GitHub Container Registry - uses: docker/login-action@v3 + uses: docker/login-action@v4 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@v4 - name: Compute image tags id: label @@ -77,7 +77,7 @@ jobs: echo "tags=$TAGS" >> $GITHUB_OUTPUT - name: Build and push - uses: docker/build-push-action@v6 + uses: docker/build-push-action@v7 with: context: . cache-from: type=registry,ref=ghcr.io/knowledgefutures/${{ inputs.ghcr_image_name }}:buildcache diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 4f929340fc..5d69b7a53c 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -21,7 +21,7 @@ jobs: outputs: docs: ${{ steps.changes.outputs.docs }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: fetch-depth: 0 - uses: dorny/paths-filter@v3 @@ -38,7 +38,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 with: fetch-depth: 0 ref: ${{ github.event.pull_request.head.sha }} @@ -186,7 +186,7 @@ jobs: # if: github.event.action == 'closed' && needs.path-filter.outputs.docs == 'true' # runs-on: ubuntu-latest # steps: - # - uses: actions/checkout@v4 + # - uses: actions/checkout@v6 # - name: Close docs preview # uses: rossjrw/pr-preview-action@v1 diff --git a/.github/workflows/on_tag.yml b/.github/workflows/on_tag.yml index 6ee5bf9c61..9df13babf0 100644 --- a/.github/workflows/on_tag.yml +++ b/.github/workflows/on_tag.yml @@ -55,7 +55,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Create GitHub release env: diff --git a/core/.github/workflows/playwright.yml b/core/.github/workflows/playwright.yml deleted file mode 100644 index b050f147ee..0000000000 --- a/core/.github/workflows/playwright.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Playwright Tests -on: - push: - branches: [main, master] - pull_request: - branches: [main, master] -jobs: - test: - timeout-minutes: 60 - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 22.13.1 - - name: Install dependencies - run: npm install -g pnpm && pnpm install - - name: Install Playwright Browsers - run: pnpm exec playwright install --with-deps - - name: Run Playwright tests - run: pnpm exec playwright test - - uses: actions/upload-artifact@v4 - if: always() - with: - name: playwright-report - path: playwright-report/ - retention-days: 30 From fca427090a2ea549d1fb88381b0ae81cd6d16751 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 18:15:28 +0200 Subject: [PATCH 052/153] fix: remove preview from domain name --- .github/workflows/deploy-stack.yml | 10 ++++------ .github/workflows/on_pr.yml | 4 ++-- infra/Caddyfile.gateway | 2 +- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 311f93c82e..1bd921b9fc 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -132,12 +132,10 @@ jobs: sudo docker pull ghcr.io/knowledgefutures/platform:"$IMAGE_TAG" if [[ "$USES_GATEWAY" == "true" ]]; then - # ensure the gateway stack is running - if ! sudo docker stack ls --format '{{.Name}}' | grep -qx gateway; then - echo "deploying gateway stack..." - sudo docker stack deploy -c stack.gateway.yml --prune gateway - sleep 5 - fi + # deploy/update the gateway stack (idempotent, picks up config changes) + echo "deploying gateway stack..." + sudo docker stack deploy -c stack.gateway.yml --prune gateway + sleep 5 # write per-site caddy config from template sudo mkdir -p /srv/caddy/sites.d diff --git a/.github/workflows/on_pr.yml b/.github/workflows/on_pr.yml index 5d69b7a53c..5f802a2a4d 100644 --- a/.github/workflows/on_pr.yml +++ b/.github/workflows/on_pr.yml @@ -131,7 +131,7 @@ jobs: action: deploy image_tag: ${{ needs.skip_build_sha.outputs.last-successful-build-sha || github.event.pull_request.head.sha }} stack_name: preview-pr-${{ github.event.pull_request.number }} - hostname: pr-${{ github.event.pull_request.number }}.preview.pubstar.org + hostname: pr-${{ github.event.pull_request.number }}.pubstar.org env_file: .env.preview.enc stack_file: stack.preview.yml uses_gateway: true @@ -152,7 +152,7 @@ jobs: with: action: teardown stack_name: preview-pr-${{ github.event.pull_request.number }} - hostname: pr-${{ github.event.pull_request.number }}.preview.pubstar.org + hostname: pr-${{ github.event.pull_request.number }}.pubstar.org env_file: .env.preview.enc stack_file: stack.preview.yml uses_gateway: true diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index 2e0a3f2328..df54cb2000 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -10,7 +10,7 @@ } :8888 { - @allow expression {path} == "/allow-domain" && ({query.domain}.matches("pr-[0-9]+\\.preview\\.pubstar\\.org") || {query.domain} == "sandbox.pubstar.org") + @allow expression {path} == "/allow-domain" && ({query.domain}.matches("pr-[0-9]+\\.pubstar\\.org") || {query.domain} == "sandbox.pubstar.org") handle @allow { respond "OK" 200 } From 61b3328dbe9dcc568d7dfe3d4ec2a8d25027e3f0 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 18:19:46 +0200 Subject: [PATCH 053/153] fix: add more dockerignore --- .dockerignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 42710b5f5e..5ceae9f8b1 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,7 +6,7 @@ **/.classpath **/.dockerignore -**/.env +**/.env* **/.git **/.project **/.settings @@ -29,5 +29,9 @@ **/values.dev.yaml **/build **/dist +**/.github +**/.turbo +**/.infra + LICENSE README.md From f9c2bd26afa8dd987a3c41230a501bd253280496 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 18:47:22 +0200 Subject: [PATCH 054/153] fix(skip-build): force update --- .github/workflows/deploy-stack.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 1bd921b9fc..43b8136607 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -132,9 +132,12 @@ jobs: sudo docker pull ghcr.io/knowledgefutures/platform:"$IMAGE_TAG" if [[ "$USES_GATEWAY" == "true" ]]; then - # deploy/update the gateway stack (idempotent, picks up config changes) + # deploy/update the gateway stack echo "deploying gateway stack..." sudo docker stack deploy -c stack.gateway.yml --prune gateway + + # force-update the proxy so bind-mounted caddyfile changes get picked up + sudo docker service update --force gateway_proxy 2>/dev/null || true sleep 5 # write per-site caddy config from template From dfefe30b0bdab74592c5d3c383e572e4b1305edf Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 19:01:12 +0200 Subject: [PATCH 055/153] fix(skip-build): dnsrr --- infra/stack.preview.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 738aaf1b1d..500abf42ca 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -30,6 +30,7 @@ services: start_period: 60s deploy: replicas: 1 + endpoint_mode: dnsrr restart_policy: condition: on-failure @@ -55,6 +56,7 @@ services: networks: [appnet, gateway_net] deploy: replicas: 1 + endpoint_mode: dnsrr restart_policy: condition: on-failure @@ -86,6 +88,7 @@ services: networks: [appnet, gateway_net] deploy: replicas: 1 + endpoint_mode: dnsrr restart_policy: condition: any @@ -112,6 +115,7 @@ services: networks: [appnet, gateway_net] deploy: replicas: 1 + endpoint_mode: dnsrr restart_policy: condition: any From aebf8c25a31c6e4f68e7f0ada499608fe0947ad5 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 19:32:48 +0200 Subject: [PATCH 056/153] fix: apply stuff --- .github/workflows/deploy-stack.yml | 29 ++--------- infra/Caddyfile.gateway | 77 +++++++++++++++++++----------- infra/Caddyfile.site.template | 29 ----------- infra/stack.gateway.yml | 1 - infra/stack.preview.yml | 4 -- 5 files changed, 53 insertions(+), 87 deletions(-) delete mode 100644 infra/Caddyfile.site.template diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 43b8136607..dd334a9fd0 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -114,7 +114,8 @@ jobs: cd "${APP_DIR}" git fetch --prune --tags origin - git checkout --detach "${IMAGE_TAG}" 2>/dev/null || git checkout --detach "origin/${BRANCH}" + # always checkout the latest commit on the branch, even if we are skipping the build + git checkout --detach "origin/${BRANCH}" cd infra umask 077 @@ -132,32 +133,13 @@ jobs: sudo docker pull ghcr.io/knowledgefutures/platform:"$IMAGE_TAG" if [[ "$USES_GATEWAY" == "true" ]]; then - # deploy/update the gateway stack echo "deploying gateway stack..." sudo docker stack deploy -c stack.gateway.yml --prune gateway - # force-update the proxy so bind-mounted caddyfile changes get picked up - sudo docker service update --force gateway_proxy 2>/dev/null || true - sleep 5 - - # write per-site caddy config from template - sudo mkdir -p /srv/caddy/sites.d - - export DEPLOY_HOST STACK_NAME - envsubst '$DEPLOY_HOST $STACK_NAME' < Caddyfile.site.template \ - | sudo tee /srv/caddy/sites.d/${STACK_NAME}.caddy > /dev/null - - # deploy the app stack sudo env IMAGE_TAG="$IMAGE_TAG" DEPLOY_HOST="$DEPLOY_HOST" \ docker stack deploy -c "$STACK_FILE" \ --with-registry-auth --resolve-image always --prune "$STACK_NAME" - # reload caddy to pick up the new site config - gateway_container=$(sudo docker ps --filter "label=com.docker.swarm.service.name=gateway_proxy" --format '{{.ID}}' | head -1) - if [[ -n "$gateway_container" ]]; then - sudo docker exec "$gateway_container" caddy reload --config /etc/caddy/Caddyfile - fi - else # standalone mode (production) -- deploy full stack with its own caddy echo "deploying with IMAGE_TAG=$IMAGE_TAG" @@ -266,12 +248,7 @@ jobs: fi if [[ "$USES_GATEWAY" == "true" ]]; then - sudo rm -f "/srv/caddy/sites.d/${STACK_NAME}.caddy" - - gateway_container=$(sudo docker ps --filter "label=com.docker.swarm.service.name=gateway_proxy" --format '{{.ID}}' | head -1) - if [[ -n "$gateway_container" ]]; then - sudo docker exec "$gateway_container" caddy reload --config /etc/caddy/Caddyfile - fi + echo "gateway routes are dynamic, no per-site cleanup needed" fi sudo docker image prune -f diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index df54cb2000..b38afd37af 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -1,46 +1,69 @@ -# this is a shared caddyfile for all preview/sandbox deployments -# they cannot all have their own caddyfile sadly - { admin :2019 - on_demand_tls { - ask http://localhost:8888/allow-domain - } debug } -:8888 { - @allow expression {path} == "/allow-domain" && ({query.domain}.matches("pr-[0-9]+\\.pubstar\\.org") || {query.domain} == "sandbox.pubstar.org") - handle @allow { - respond "OK" 200 +*.pubstar.org { + tls internal + + encode gzip + + handle_path /assets* { + reverse_proxy { + dynamic a preview-{labels.2}_minio 9000 + } } - respond "Not allowed" 403 -} + handle_path /assets-ui* { + reverse_proxy { + dynamic a preview-{labels.2}_minio 9001 + } + } -(s3site) { - @pathWithSlash path_regexp dir (.+)/$ - handle @pathWithSlash { - redir {re.dir.1} permanent + handle_path /site-builder* { + reverse_proxy { + dynamic a preview-{labels.2}_site-builder 4000 + } } - rewrite * /{args[0]}{uri} + handle_path /sites/* { + @pathWithSlash path_regexp dir (.+)/$ + handle @pathWithSlash { + redir {re.dir.1} permanent + } + + rewrite * /assets{uri} + + reverse_proxy { + dynamic a preview-{labels.2}_minio 9000 + + @error status 403 404 + handle_response @error { + rewrite * {uri}/index.html + reverse_proxy { + dynamic a preview-{labels.2}_minio 9000 - reverse_proxy {args[1]} { - @error status 403 404 - handle_response @error { - rewrite * {uri}/index.html - reverse_proxy {args[1]} { - @nestedError status 404 - handle_response @nestedError { - respond "Not found" 404 + @nestedError status 404 + handle_response @nestedError { + respond "Not found" 404 + } } } } } -} -import /etc/caddy/sites.d/*.caddy + handle_path /emails/* { + reverse_proxy { + dynamic a preview-{labels.2}_inbucket 9000 + } + } + + handle { + reverse_proxy { + dynamic a preview-{labels.2}_platform 3000 + } + } +} :80 { respond "OK" 200 diff --git a/infra/Caddyfile.site.template b/infra/Caddyfile.site.template deleted file mode 100644 index d5bcbce832..0000000000 --- a/infra/Caddyfile.site.template +++ /dev/null @@ -1,29 +0,0 @@ -${DEPLOY_HOST} { - tls internal - - encode gzip - - handle_path /assets* { - reverse_proxy ${STACK_NAME}_minio:9000 - } - - handle_path /assets-ui* { - reverse_proxy ${STACK_NAME}_minio:9001 - } - - handle_path /site-builder* { - reverse_proxy ${STACK_NAME}_site-builder:4000 - } - - handle_path /sites/* { - import s3site {$S3_BUCKET_NAME:assets} http://${STACK_NAME}_minio:9000 - } - - handle_path /emails/* { - reverse_proxy ${STACK_NAME}_inbucket:9000 - } - - handle { - reverse_proxy ${STACK_NAME}_platform:3000 - } -} diff --git a/infra/stack.gateway.yml b/infra/stack.gateway.yml index 03f4df36fc..5f03eda5b3 100644 --- a/infra/stack.gateway.yml +++ b/infra/stack.gateway.yml @@ -6,7 +6,6 @@ services: image: caddy:latest volumes: - ./Caddyfile.gateway:/etc/caddy/Caddyfile:ro - - /srv/caddy/sites.d:/etc/caddy/sites.d:ro - caddy_data:/data - caddy_config:/config networks: [gateway_net] diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 500abf42ca..738aaf1b1d 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -30,7 +30,6 @@ services: start_period: 60s deploy: replicas: 1 - endpoint_mode: dnsrr restart_policy: condition: on-failure @@ -56,7 +55,6 @@ services: networks: [appnet, gateway_net] deploy: replicas: 1 - endpoint_mode: dnsrr restart_policy: condition: on-failure @@ -88,7 +86,6 @@ services: networks: [appnet, gateway_net] deploy: replicas: 1 - endpoint_mode: dnsrr restart_policy: condition: any @@ -115,7 +112,6 @@ services: networks: [appnet, gateway_net] deploy: replicas: 1 - endpoint_mode: dnsrr restart_policy: condition: any From ccb8bb5696e82a24ae41d2e975b5b09e38c395dc Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 19:39:07 +0200 Subject: [PATCH 057/153] fix: aaa --- .dockerignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.dockerignore b/.dockerignore index 5ceae9f8b1..3dd0aeaabc 100644 --- a/.dockerignore +++ b/.dockerignore @@ -6,7 +6,7 @@ **/.classpath **/.dockerignore -**/.env* +**/.env **/.git **/.project **/.settings From ce3a6e64341ee16d31bcb7e36f05d96c82f958fa Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 20:03:54 +0200 Subject: [PATCH 058/153] fix(skip-build): on demand --- infra/Caddyfile.gateway | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index b38afd37af..8f4421fad1 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -4,7 +4,9 @@ } *.pubstar.org { - tls internal + tls internal { + on_demand + } encode gzip From ec63ebec49e46c621e83ca3013a2cccb6aaf7242 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 20:33:05 +0200 Subject: [PATCH 059/153] fix: tasks --- infra/Caddyfile.gateway | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index 8f4421fad1..af9d843abe 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -12,19 +12,19 @@ handle_path /assets* { reverse_proxy { - dynamic a preview-{labels.2}_minio 9000 + dynamic a tasks.preview-{labels.2}_minio 9000 } } handle_path /assets-ui* { reverse_proxy { - dynamic a preview-{labels.2}_minio 9001 + dynamic a tasks.preview-{labels.2}_minio 9001 } } handle_path /site-builder* { reverse_proxy { - dynamic a preview-{labels.2}_site-builder 4000 + dynamic a tasks.preview-{labels.2}_site-builder 4000 } } @@ -37,13 +37,13 @@ rewrite * /assets{uri} reverse_proxy { - dynamic a preview-{labels.2}_minio 9000 + dynamic a tasks.preview-{labels.2}_minio 9000 @error status 403 404 handle_response @error { rewrite * {uri}/index.html reverse_proxy { - dynamic a preview-{labels.2}_minio 9000 + dynamic a tasks.preview-{labels.2}_minio 9000 @nestedError status 404 handle_response @nestedError { @@ -56,13 +56,13 @@ handle_path /emails/* { reverse_proxy { - dynamic a preview-{labels.2}_inbucket 9000 + dynamic a tasks.preview-{labels.2}_inbucket 9000 } } handle { reverse_proxy { - dynamic a preview-{labels.2}_platform 3000 + dynamic a tasks.preview-{labels.2}_platform 3000 } } } From 03df20540c6a56073b0fa3d16c0b419694759499 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 20:56:56 +0200 Subject: [PATCH 060/153] fix(skip-build): whole other approach --- .github/workflows/deploy-stack.yml | 13 ++++++++++- infra/Caddyfile.gateway | 33 ++++++++++------------------ infra/stack.gateway.yml | 8 ++----- infra/stack.preview.yml | 35 ++++++++++++++++++++++++------ 4 files changed, 54 insertions(+), 35 deletions(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index dd334a9fd0..2a186858af 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -136,7 +136,18 @@ jobs: echo "deploying gateway stack..." sudo docker stack deploy -c stack.gateway.yml --prune gateway + # derive host ports from PR number (prefix digit + pr number) + PR_NUM="${STACK_NAME##*-}" + PLATFORM_PORT="1${PR_NUM}" + BUILDER_PORT="2${PR_NUM}" + MINIO_PORT="3${PR_NUM}" + MINIO_CONSOLE_PORT="4${PR_NUM}" + INBUCKET_PORT="5${PR_NUM}" + sudo env IMAGE_TAG="$IMAGE_TAG" DEPLOY_HOST="$DEPLOY_HOST" \ + PLATFORM_PORT="$PLATFORM_PORT" BUILDER_PORT="$BUILDER_PORT" \ + MINIO_PORT="$MINIO_PORT" MINIO_CONSOLE_PORT="$MINIO_CONSOLE_PORT" \ + INBUCKET_PORT="$INBUCKET_PORT" \ docker stack deploy -c "$STACK_FILE" \ --with-registry-auth --resolve-image always --prune "$STACK_NAME" @@ -248,7 +259,7 @@ jobs: fi if [[ "$USES_GATEWAY" == "true" ]]; then - echo "gateway routes are dynamic, no per-site cleanup needed" + echo "gateway uses dynamic map routing, no per-site cleanup needed" fi sudo docker image prune -f diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index af9d843abe..d005aa4990 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -8,24 +8,23 @@ on_demand } + map {labels.2} {platform_port} {builder_port} {minio_port} {minio_console_port} {inbucket_port} { + ~^pr-(\d+)$ "1$1" "2$1" "3$1" "4$1" "5$1" + default "" "" "" "" "" + } + encode gzip handle_path /assets* { - reverse_proxy { - dynamic a tasks.preview-{labels.2}_minio 9000 - } + reverse_proxy host.docker.internal:{minio_port} } handle_path /assets-ui* { - reverse_proxy { - dynamic a tasks.preview-{labels.2}_minio 9001 - } + reverse_proxy host.docker.internal:{minio_console_port} } handle_path /site-builder* { - reverse_proxy { - dynamic a tasks.preview-{labels.2}_site-builder 4000 - } + reverse_proxy host.docker.internal:{builder_port} } handle_path /sites/* { @@ -36,15 +35,11 @@ rewrite * /assets{uri} - reverse_proxy { - dynamic a tasks.preview-{labels.2}_minio 9000 - + reverse_proxy host.docker.internal:{minio_port} { @error status 403 404 handle_response @error { rewrite * {uri}/index.html - reverse_proxy { - dynamic a tasks.preview-{labels.2}_minio 9000 - + reverse_proxy host.docker.internal:{minio_port} { @nestedError status 404 handle_response @nestedError { respond "Not found" 404 @@ -55,15 +50,11 @@ } handle_path /emails/* { - reverse_proxy { - dynamic a tasks.preview-{labels.2}_inbucket 9000 - } + reverse_proxy host.docker.internal:{inbucket_port} } handle { - reverse_proxy { - dynamic a tasks.preview-{labels.2}_platform 3000 - } + reverse_proxy host.docker.internal:{platform_port} } } diff --git a/infra/stack.gateway.yml b/infra/stack.gateway.yml index 5f03eda5b3..53518a6045 100644 --- a/infra/stack.gateway.yml +++ b/infra/stack.gateway.yml @@ -8,7 +8,8 @@ services: - ./Caddyfile.gateway:/etc/caddy/Caddyfile:ro - caddy_data:/data - caddy_config:/config - networks: [gateway_net] + extra_hosts: + - "host.docker.internal:host-gateway" ports: - target: 80 published: 80 @@ -23,11 +24,6 @@ services: restart_policy: condition: any -networks: - gateway_net: - driver: overlay - attachable: true - volumes: caddy_data: caddy_config: diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 738aaf1b1d..ae3d1317a1 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -16,7 +16,12 @@ services: FLAGS: "uploads:off,invites:off,disabled-actions:http+email" DB_RESET: "true" DB_SEED: "true" - networks: [appnet, gateway_net] + networks: [appnet] + ports: + - target: 3000 + published: ${PLATFORM_PORT} + protocol: tcp + mode: host healthcheck: test: - CMD-SHELL @@ -52,7 +57,12 @@ services: NODE_ENV: production PUBPUB_URL: http://platform:3000 PORT: "4000" - networks: [appnet, gateway_net] + networks: [appnet] + ports: + - target: 4000 + published: ${BUILDER_PORT} + protocol: tcp + mode: host deploy: replicas: 1 restart_policy: @@ -83,7 +93,16 @@ services: command: server --console-address ":9001" /data environment: MINIO_BROWSER_REDIRECT_URL: https://${DEPLOY_HOST}/assets-ui - networks: [appnet, gateway_net] + networks: [appnet] + ports: + - target: 9000 + published: ${MINIO_PORT} + protocol: tcp + mode: host + - target: 9001 + published: ${MINIO_CONSOLE_PORT} + protocol: tcp + mode: host deploy: replicas: 1 restart_policy: @@ -109,7 +128,12 @@ services: inbucket: image: inbucket/inbucket:latest - networks: [appnet, gateway_net] + networks: [appnet] + ports: + - target: 9000 + published: ${INBUCKET_PORT} + protocol: tcp + mode: host deploy: replicas: 1 restart_policy: @@ -118,9 +142,6 @@ services: networks: appnet: driver: overlay - gateway_net: - external: true - name: gateway_gateway_net volumes: pgdata: From 376d303ddf20f6426520c33b633d3680326a444d Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 21:32:19 +0200 Subject: [PATCH 061/153] fix: give slightly different name so i can test --- .github/workflows/on_main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main.yml index a3094689b5..8e43c7e51b 100644 --- a/.github/workflows/on_main.yml +++ b/.github/workflows/on_main.yml @@ -1,4 +1,4 @@ -name: Promote from main +name: Promote from main (new) on: push: From c30fa084a69a394f0e948257921f105d3f4fb5ed Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 9 Apr 2026 21:34:07 +0200 Subject: [PATCH 062/153] fix: change name --- .github/workflows/{on_main.yml => on_main_2.yml} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/workflows/{on_main.yml => on_main_2.yml} (100%) diff --git a/.github/workflows/on_main.yml b/.github/workflows/on_main_2.yml similarity index 100% rename from .github/workflows/on_main.yml rename to .github/workflows/on_main_2.yml From 0b0969f6e7815c995dff3c65e7aa45cc8f58094e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 13 Apr 2026 16:32:15 +0200 Subject: [PATCH 063/153] feat: add prod env --- infra/.env.enc | 55 ++++++++++++++++++++++++++ infra/.env.preview.enc | 86 ++++++++++++++++++++-------------------- infra/.env.sandbox.enc | 90 +++++++++++++++++++++--------------------- infra/.sops.yaml | 1 + 4 files changed, 146 insertions(+), 86 deletions(-) create mode 100644 infra/.env.enc diff --git a/infra/.env.enc b/infra/.env.enc new file mode 100644 index 0000000000..ccc83bed24 --- /dev/null +++ b/infra/.env.enc @@ -0,0 +1,55 @@ +#ENC[AES256_GCM,data:8R4CdvbUQlCPGA8LXL+xavsG+fONmJnrk0VAJvMw8RPO,iv:XOKW14/x4f0WAlUz1Ll4yksZ4p9YWFcStSwYHxVZ76w=,tag:t22Tv8xNRHvLTLPs6vHLBg==,type:comment] +#ENC[AES256_GCM,data:RCV6DtYkYlDXTyWcOMok79XWD3tYc+C8VZEdH6jMTd5+VyXdT6NCHTVx26DoM4HWwmuZJFL/vkBSY8c=,iv:4rGsueAayH8qhXVF5tNshPlkc9fLORxvWzLJfydDE4M=,tag:yqsjQztD93Zlotyx8b9Pxw==,type:comment] +#ENC[AES256_GCM,data:DcZXFkquGDAnpVBz5aCFfd4ze79/WGu6+ncxcsR1rkun++6kW32kLpUoiupfVYuMLE6ai/wIy4QnQ4yzM7OFY5rjpA==,iv:ybEGFsQVXpfpOBkySwRKNFF5pUe2YSql2LctRetAJYk=,tag:wCdD1TRNCzVAs+Bedozf+w==,type:comment] +#ENC[AES256_GCM,data:vwpL6U/SKbgXzZ5CanbMRcBkyBauRNg+W05SFOhc2g271yoSfO3XILP/sMXULPpcUQ==,iv:8xe/zccfiagMOwUYBgnzleR8IlcOERkrZsGcmDJYo8w=,tag:8z2oaGBWB9C0R2qDk++cXw==,type:comment] +PUBPUB_URL=ENC[AES256_GCM,data:0j/39WwEaiEeqA84TXB8Z6vWYg==,iv:zLSBnMObjjz/EPGc6aPaQmTscVxwAwxP2wOaNwjJ6zs=,tag:bMeQdNbjU3F0N5u1Gk9POg==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:JCaDJs0hLfA=,iv:M3Rf9/j2G6IrDGAIeMWyC8LY30hkgb0CcaZspHTj9EM=,tag:LXZYmHqr1FA6nC/MOeb8VQ==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:cP6Aq2snXTpXrjKs9cwWBMvu22OUy1BVWiua8GFL56sRBcBNnCqIeJ0hSd6Ub3cOblcbmXp7DQDk3IssW0EtRQ==,iv:7YhY+iqhWz7FSsmRWztGykH1ni140wnYIWfWdEHjJnw=,tag:VJCbCa762HjIIJ6HhnvnYQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:mMQWx61NeA==,iv:UyHKhVAdVkp25Zuju0jAC5o7VzC0LkPWCHaUwThIDTk=,tag:XLagOgaHqQRjzer+MMUFUA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:u3w2u1azHNS7HGgAd/iO1OlTBwOL7LhiJM14YXAvPiJlnpxcla5fx335ofEGI8Kwm82MuD+cW7sp6Vgju62yVqzOkAI8Qcc11JkwemtF6WWnbSSYK4bo0niCfbWdOw2HCG1vwwXA,iv:8jO4xd2kPpZSxzkZNyFm9NgIS+UqzI59FXA6ylEDWBA=,tag:DD01QIYV42pg4Jl1gqXZ8w==,type:str] +PGHOST=ENC[AES256_GCM,data:1Zs=,iv:mIZ6U9WgtB5qr6W0TAtP5Jugp0hrIRwseuECczsdxHE=,tag:YmHWjbkOcMAuc0niSbuGqQ==,type:str] +PGPORT=ENC[AES256_GCM,data:jI9xoQ==,iv:vuWJ/C4cxHCe5d1ErXRKwW3+4UEivu7Pc/ZFJH6Iwug=,tag:3gs5B+zTdK7DzFKB7iuDWg==,type:str] +PGUSER=ENC[AES256_GCM,data:Lvt7Xhd7mX4=,iv:FoxK8/06FGuU7LglhsHi5Gk/vhgoDhGf8AoaNrVfjdA=,tag:UZK92x7NYSnoSEMwciKVQQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:Bx0PAC6Bx1aJ624SDWXG1nNpxFXHhGTCmkp8PeRmms73KhIQGYiuSimWQkhG0iBTrvmVVdSfOHsSgYzXXZOhVg==,iv:JgEc0Ah8WrFQsQb/TJsLQi7pIHy6nydVB7zFzgwcEX0=,tag:4fRKf1/dgQFC+TkspEOO2Q==,type:str] +PGDATABASE=ENC[AES256_GCM,data:Zu6f5LE7cw==,iv:AEMXV6EvZDwCpLUg0Tjgu36PG4+eV67GYPMogGWRhWQ=,tag:CCeEiEuWGC5O1oR7co6LxQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:z3OKSaw=,iv:NNpMxSPEUAs+zbBWM40VMBFSguEBbO7tvNqoSusDlbM=,tag:lKL1wSEal8l9VfVTIwvlwQ==,type:str] +#ENC[AES256_GCM,data:Uo6jviOfZVj5ekVkyvML4XpvffP/M7XD9fcJRA3V,iv:kjuIm6wgRv04MB3/Zc5uBACTWmsRVP4xpZ7KD1Cw01I=,tag:ewow4o5xBq3YYyGOSy3HTg==,type:comment] +#ENC[AES256_GCM,data:Z4qNl343G307ImGVqsnSLPTWRy7rzubX0jBvHjXpJf2rVw==,iv:UQ14+VCLhO/fpqL6Mvw2QAtqQ/WArEc1JhPWvAX+TuM=,tag:JT4HzuSn/ybQKDsv9JA2ow==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:0CHa4elkTI09bILpa/HUKU9KVM4U,iv:j9dd5/LU+pYss8jKoUEKWviH2WV68T4fDaJOzE+z1K8=,tag:kNu7FdOwSJpZg+hTl59TtQ==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:nCg+qHHSQPCyF1sm5n10X1WoXuc=,iv:43o/RXg1uDyIHovcccjMCgkCmBg+WWtOZhBwkELv90A=,tag:OXlC8iVWe+n0Mh9ZjjUflg==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:lyNIMRnRk8pyT2/WiKxGykApRDq6r8BVP03vvXKmY96yi/S0Jh3wNQ==,iv:I1XitrBtevc16jsxxwqvUh2NjQTUkKhgJXuGuvFU6Og=,tag:SMbT/45tXe1Vu82UFMzq8g==,type:str] +S3_REGION=ENC[AES256_GCM,data:3h8WtozMpxEl,iv:0NN6IxXxOt9eP+V3GOlYXnyZJxRHrKDG7G70EWs2Ly4=,tag:FlJzOXyjna4p9D6wS2sxJQ==,type:str] +#ENC[AES256_GCM,data:iF3bohCYjgIt3tuVW2RTh/Q/raboMhlqeCotoTUl,iv:jadm9dLw6AG773nm2o8Mk1XFLeT5AMAlpCQhLQSfBpc=,tag:CFxhL4F5oHV5CGDf0l/g5w==,type:comment] +#ENC[AES256_GCM,data:0kOfNVoxZX/zTF1LuNnxMoZtZJ2LbB4oBhVYOnfOGErNAp/kvK6cDHcYiePo4qR+XCyWv/BnQO+/E1mY90G8Zp7ezA==,iv:EugzoXFvd4ar54QL+D6bOUB/kGlv1WqROWcOEp38GLY=,tag:JbORqHQad2WRjdz7AGBpjg==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:WuOvCuz38194Vkh76Cvpu8xHnHjj824a,iv:i57rMi4EK3lkMUkjJH5HOC5D2lMGwv6zeahjksJZ6as=,tag:MHzrokpciI522LKR+W8fPA==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:Q9a+uyIpvX2k7ndPSF3O7w==,iv:JqjCJ57N8NWT1/Vg/tvE4qfyKbJhoZSNlE8hqirEVrY=,tag:1ClYH+Hm0THF27s27DhUBQ==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:FWIu,iv:ZGswGeogfT4Li4C1OkwU82sIknSSkBmZnXQgoTqZGl0=,tag:uiZ3kZf6aSTy+j7oPvPPtQ==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:L3hRVfYy9UoGnXz4kRsKAYE0EbUUVG4rdAoS8w2JdF8=,iv:0FFv1ilyW9iXHtKyDnZsb/LyMFAxW0RUzzo+MSlWQ5k=,tag:fvJVwiq9yYKQBbxRkvrMLQ==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:3GVq7x2qzqQhIncDa/Xhlg==,iv:fdIL+YYBv6I+b/qEgHYq/n6A+cQSKpt0LX3NwUvbwV8=,tag:wUYMliJqrdO25PtPt5XxQw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:RNWFS8jcb6nlQxiigTPVahTkl6s4e6gpzy677xQi5Dv/ya36x0hUbT0ilrfHJHoAaV798gEegrPrxsHYu+Z6RNEvKtIsCsc9W3uDS2fT0hQD1Ku7Lf4oM1+ITOxhpM/s2v0CrxGOup6EdeEyW8hPwwsmkSpVsylFG+CwSUn7oBOuo6Qstd4Hn7QYnqwGmst974Dllw8Z4h7JF3IQ5brsUXZ5fBya3Xwmj5aYFNLpz/SlIzqBo14c8AC+7jOKSqUSsbnO2Gj9c74IPWmkvNt29j5ERGNUtIgNsN3tzpX1Yp6JCTcGKAQwlPcvdl15A1UZMENrqTa+JU/CWbi8jDN5JtL6OS72pw8ZIw6geSMh8zZ+bDyif3RxNgR54fOjr5TFhno2e77V1KFB03+vPZk47dFblowGINBFo/dMYCJMJZzU0+s84LgqaiexlxTmq/jdPzF6oPncIs34/sGFX5oDm/CBs8+hk9Xudlf40RKiEJJBH/SNCtsAoFTX8z7K3LIW8U7qeY/kBEg0aQ4QVN5QqWtCd+CtOIKUN/zEvdoSp0Eex6lLyclYPIqiul7Rfw8VFP91ORxN1tL+qNqKCsQ3TZuejcxMHXXJvP2+MwZSSxSmRYtSG/iWbukt7ejIFxq87bgjGTl6iNZ8DqPRzqVb5IigMaaQpt5OAQHZmVrW7XQahIvtdw8GU/+67/bMYn+VnBJbe5eJfPR8ifX7lezIT0F9UMoXdFDmspAE3+VIwNVtY/yaAAiQalXPIt8XbUG5jwfXZNDrhc57uVGrqGkU6iP8G3AYMMDJaL2EQg4iiMo7pTM/3zZc7KUZbTmi9EjGXFguavBaS1VmWUv/mZV6qh70WSRaaxfaMkKCEr9XYw/WuEZWBEzTIuR1Mdn1LlGm9PilN4dv/OyengqRkbp9KekPwneeF/Es1UHWQJssjOgmn7knvn1OehnMRS7/D+zZeEcoHDZ6Lk1xyl3JIFT0ImQ+8JaCUB3TpUHglw/ZzzDgUppUx3UIcrirDqY/868boF7bvSl7YZda7K+JPzTYaBGB5XbHMPnbtPkX0byFN7VreaBnQzRgdwCCJgsKrBFI52jF/GhOZYHFjG9y6jU081y6lphnUzmMC+Fi1TYeHbyepxeoDWRKojOHzT7urFxSOVfzataHVOgPKq8xYCmgHlh4of5O2x5/FH0b0PTcENvdTAcKSpJMoLbPGg0pA6+3+rB6mJ/D6Qy9WVp2bf/LtOeBttrMGjaS09FVw1aLrYYrBQFy8aWOtABW4Ku5BdQUZx3uD1oBZTjCuXhbGskj7ifpzTxIkd8hyEMZGzQeMBp/2VpeoRpY0qvZpEOWhMYYMPZO87t1DMdsN3HFWOuw+KHffN5/HI43xdmLxKAYVBLbRLOUtwwBDK0PhiP/z1WWuGry1aMWX0j0vzEDVoPs+ogKm4NY4vhPflXktInkoE4ecGfwetejjAZ4n7+MvZAfWzG5eh3p8wj0ci8Z9H1axICRS0JK412oIuHrR7T6n1BfGKV3RiLDAXJi1wGQwVTrceSPdvMJp8sp3LquraC1e/c4M1WjnqviM+8TPPrJhay19Gfhmegn4gbJN0cgBrd4mXSTe6SFRxJMMVmI6ThSHx6B0Xc1qEt9bqoLEDLibdfLuEG6c0RtbccHC2aOAqY4KAnybv8IkmYfHY8Xsv72DJhtx7uXM8YvGaLFH/a5JmH8RdS7ascAAV9Grldx2eI0U9oMLZ5elh55RAKQv+W8rmvvUcQtZ58rUs0qggLly0KAhjKvH1uHD4wPbRpaJXb18GT4yOZMdOzfkeOJ16OnzIvmKmS18HgEJ7TOI6TAgH/RvXdviG03Nz8e2DZgKjQWpNRItCqUeNFIrG0icwK3ZP9MMuRHMrhXR8cubE+9TCDG8D9EoMgXSROWGLp4r3fLcc+3NsW/AErYxlUkw4TsaXxDefqRmFwDWUPd+CKmwoKZXm/QYEjzKaa0Uo4s9vC+b4Aw+YNmEQCnVFmmDcQTertRKIR8UWZ/iztyezEsYnthTHGjjc2rhfa2SP7X/0wSRgHg5K8oBhxJsWqAaOupePq5o0RMBnapAY0jHqSNuBTfJ7qcmykn5on1SEQCDQ2WAD2hdDMEPHSr369g7id8MkDkw5gFMiYkLhB0ccwAXZXPbvLcS+U7x9HI4xOLk/JR7rJ6IQWHB36Ph6uEcjyS+h80qsiWggyrK91tMKjeXahOir5y335/0Cxvn0dslMyM4kDoX7BuSFCAbIo2Ev0WFc3HnUcqMF5S3FHL/mxBkxhJqFDGAdrrRUUkAb0/1LkC58Hgp6I/6nq7Ebd4efp+x6PAhLMH1OecZD4tm4Zwr8ZPPTE+m1V04Fyn7NmJHiSdDf3bmTD4A3cJNEep5qlPn/0UoskHHAPT5HdyVjjRS3Wf+IQK66kpNAd1t8z1N3i55iR0hWNiHYjfI2YCaIkvS2cX1Ym9GwJ6J5ay0MnC5bsO7KQv89sCnppL6AEr+C9xggF8Ld8LY1PfYGbXmGcxGSoHqm1Ytj2FgtVO1NYdG4q11PTbCclasgrM0fMruKiMAiPHe1akz9btcxhWzIdOIV5ya52obTKWiZOloUtXWQcK15gexqZQkzDv/+C5cWEnGIXEI3btfabu9ztm6F1g3RHlaT2KE87nLKrqE57ToWFO37O4ELW2fDG5fq2lMl1t2htHoKA7LdrmxkjtcyDWwx7gOEMdRmolSd9ju677fEZmsZkb4/fBjTSOMkOiibvXEDRj+YBfVbbQKVpleEWJD2J3yAAA2Oq3b8hx/mQy0gSFt25jsFFSiVH9dMvGA1xF5+4rbcvt1lYvpAISY9FRB7ETXXtAaguuG/Y7g15ZJVxjNbhfQNe3DFiOJHebgfQ9ILtopzG5KIOXsW8CI1ZGWVwekllavxRZYU7PG4caHXfMvXjQ70Y2WGQPgLOE5VlKsxwjgwSh48tz8zNKD43B0wa6zECwyCF9IA/w3AOpopZbYXdAotnWGWsJbPT6ml5bizuGCAhjDrPjlMrIrGa8V1NXCyzMA7k8ASzSDYLlpWkNzYJlkfgdPySJfJk5fgnCbwmffYdE2EUnLkIwYYvR1NqzaQnb3v+zyxvjnewsrkA2qJrunSptohfa4ZUqN0JcmSWg72kBA46gNzmdiJxtG6oq597UdSbltlz5C40orKxw37IL0NZe1hlBAZyEd8naAUc244UswIUHGgHcIIL9k4J1HIhtwwEsODXMkLafaFMPI2CwL4tXJIsHUmpaCxBQo+XOfEiYyYwYGZLh5hjEVbwMiY0xptg2SA0RDbMHZRwLCLpl4gPf2+B9fH5P1UGx9gxI1p2TRcbcEDe7ZTDw8eNzKUSSqdIttYHFU8shIN16FKRpVhfeosMSjpK7shWOMNDf8+52fX6J/sPOhSMtAXUm8fqTpPZzdJQsCvf8LPd6IodZ7FJp7/A2+Fr3C92KRmOxRpxcdnQNobi4LtG7vpqYuAcYOxnvxxeh92jR5uVNCKxMbRePdxiEVEpU4diNaEbq+q/FNP7pbWBtHflWPfbyv3JUUilmyCB7kwWHF7AMfyT01+DQaZWWvOM0KnMIuSGaYAMGkkXAr9pKbApDf0T0CZBLGLykq2PWP+TDvUhz13WxQ01JWELpaTh+sTJUQa5cdeO4d849Hr42NBZPIqaaTYkrsp7p1+iaE2XYsAEm/lprXOaCwO7WyaPXY3LPteU7FPhldmMeLziR5Yb7GXWml1CX86U1vOeYaSDdKdKSTVMpcpILu5qNyeyPe7IDGybm+I49wEZ6YTq5bF6bZ/CM9QoLZWdMeCM/3X18Oc+bzx9IKScikegpPqaopO4XSFBdNjciELRtTlbksyoa7+pC99jiDyMoETYAaNDxETZff+YHL0P+whX5EWIMxd6JkV17AoeAdYHxNBuNp5oa1i4DWodvYeCA3/98gVXGmtbnWsUHkgJywHLyg1sviE15mR2ySSDL24L2BjS1zgCSydqtQ1fVmbJ8fEvvuknrQ5BUl9RQP01yJrW6PiGXDJn8cBCCJnc/aW2HZONmsDWWAtFez04Fy9LXEeVMHCjSsh/gn+ctelBCgB9wA6lOc0RLDvzoUNFLNZQymQDe6/NDLoQk9BNIsFZ4B3bFifTBJ0jRY8vLe5hZLaFOnB4DO1I/Wby06A==,iv:G52ZyrWQzpMc+02er75fiA51YpsUIUIVP4ZZE6yCEjc=,tag:YPnTjfj78G2f1tI8471Mxw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:viAcAhInjQ==,iv:MJCmAvrNOGICRgD3Im7JeeMkJtZ1FMuGEVeG8lukfeU=,tag:O5X1MEUSTlIbuufpKZ/7LQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:YCjppJ17Um/KYi5PFetVd/FtgVStrbPefzMk5JGy9EhpbYB6HXiZoMYzLKpGJdCnVNZwvR+ixxyDwz+H7k6E2Q==,iv:dTBXIOGfV2U6Cdp5WaT1ZBSp2cyvmxi7kvCxwXhLkK8=,tag:j3vQWzapd/B6HHALEcOX+g==,type:str] +API_KEY=ENC[AES256_GCM,data:xunOhBY0pBmBvkxQQdmo2Hd0UBWx1t1bIWL8DW9BP+8=,iv:Ko3x9MRhXroo4eTmBjIt/JTAbIBTxBjuu7ar9E/srE4=,tag:kW2OWSgW5PfZdp0cj0CM3g==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:Rv1aOIalrpFtQmh+T793PGfFF9A8RweL,iv:PX1KXOqlllLjI+OZ/j0SaB85umjZCjDJAjmF+a4uzLI=,tag:18/1LdxC4vhpOkbaid0/sQ==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:3V0DsaDWfuy9sRU=,iv:DktONx13OVNz99TIOavFay8roF+JlPEkjd/Itn70qQk=,tag:+0NlLI/2VNfPCH4sSMN/vg==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:ot24zRAxs/pERb+q6yWW,iv:8Y6iMLloxrV1kN5IPZnfqgh3GbOAwZkEGG1ZeeHbHlU=,tag:VNtM8zwa1LNGl8pVPJ/aLg==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDcWxFN05jU0JBSDlrUWlC\nUkJxTFQ4dzRxWlRUWWE0SnRqVFdpQXg4UUVjCmduZytRaFFIYjR4WHdUQXNJUlRm\nSjJMVEl0L3FIcFZPaUI0QXk5MVFXRWsKLS0tIEtBL1AyQzB6RUdIa0hYbDMvSjVj\nYTRVczFIQUxKUWFmcE1FR0VkVjYybjAKeudXXAzu7OaYb6Q4bztrrGJcbxeFZLyR\nOjymgbMNN3DW8JPCCt2ene73kYvIyhZGk2Piv0I/ues7GktjIkaUvQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtb3Y0U1A2UUVOQkxidlNa\nN2dRVHpDUlBQcHVjcmtWUmlGNTkrQXRxRTFzCkFUbGpSQlJXdzNva0hTNEJmeFc5\nbnVQRzhjVU5uWURKSW5xZHo1UTN4aFUKLS0tIC91L3ptcTBCZGxCYmJONUNhVUxP\nSlkzc2pZV2xUSVFhaHdWOTY4Qk8vVEUKHW9evIXwKM7HUjIKRKy3ZR/lrg94szea\nclWHyT7y6vB++YOGj2VBtNP5jNXF5Wo24XDGeTWrfnfjCxvmM6uQ3w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKTXprbE9BdW5qOUxXTWxy\nMVdiY3JqcDJEcFpBSHNCV0g5Smo5Y1A4bTNFCkZ2VmZ5QlJwZUoxSS9jSjN3R3pz\nWjRXMkRDaGt0RmN3MnAzMWJaeDRveDAKLS0tIENpQWZxSDM4SEtrdlcrYWdIN3A2\neHBHem5UQ0FCN1lKbm55S0VqS01uV0EK1K7hTehy6Tfk1/uRjJwcHee63j0GeKD0\nr+F1m5AeOhlB1r4Vjyuk1F3Gen6EmHnwphBfPteObIeK70zP4gX2Pg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxMkZkYTJFMnJtSG5obHpu\nTHBrV1lEL3pRTXpQcEd2SHF6d2RGa1JkdTA4CnhmTGJkb3lQd3U5akR5bTBSZFNa\nWkNaaFlJY0UrcjZZRlkvYnQ3RGdPUE0KLS0tICtxMUlJV3dXdE9wM1poNy9rVXJv\nUU9xK3dBQURGdEJiM1ltSHc5RUg2a2cKdeOVy9KVpLh1FfnKcNl7pYo0Xw0KG4cw\nW4Z9QRv9wTV7RWlEWsmxP3zyVn6apeC4JyoaTTozToqIw0Vacx90GA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOeFdTckFEbSs0QnlMN1ZV\nd1pUTFR5azhvelh4SGNBNDVvZFhoUzRuTlI4CmswRmJ6V3NiNDkxc1NRR3BON1dn\nL01qU0xtT1dSSmZzdnRMQURGU3N2bTAKLS0tIEpYc2NRSEdJQ1Q2dmpCQWRMeVgv\nZVptYlRCZmxsVmpmK0xWY2g3cEtFVnMKPOwfPurkRvhJpZEPLfyb7Yhu80iAHla5\ndxKD5vfN0H9HCtN06Fd3OIVLQBKJMXxHEzly/KEzM8LFcAAR6cs2qw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2N1BxRURkSGhVbFhPUlox\ndzF6RXdmVm5DR2xhbVJhcmh4UEdDbXp5bEI4Cno5a1pMaC8vT2pCSkZoSlpxMUpJ\nRGNXYkNDV2VHMnJham44QzVMR1BxeDQKLS0tIE9kRHl3RkRORGdXZ2JSWmcza0h2\naW8xZEV1MkNaV3Zndmx2R3duNXNaZWsKGVraFkZ/+vRQScbrPJZZLN2erLJi1Lwv\n3ZFFIFSI5DkA3RHil5hoMpUDN5L02SAkizjE3igMBdVnrwKUfc2+Dw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3OGtSVjZMWEw4VDZiRXdt\nV1pQNksxWUN2MnR4N0dwWjY0S2NYbHVzNXpVCjRYc0FEZ1BtdWVSRkc1L3hxTjdW\nbmhMY1VFdmdqODV6ZmZqT2xhZmVJRnMKLS0tIHhpZzVkMHFxcU9QZkcxZG45Yldj\nL3R0SFhhSGxKUG5HTWVwNmFlR01OZHMKbI3B4FR21sxMJdt+Ma72B5k4GOPZnJlY\n4xJkO7i6N/hUm7T39GxP9PTa9wjgR51V4zRqlxheqWXh25rRMWeq/w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkcEFuWkpJOUh5YUt6ZmpF\nOHFaTmxvTmMvclJWQ0NqM1UwZTNwYzl1T0RRCkN4dkxYdXBiSHhrR1R0ay9NWTZz\nUWVrY1Uwbkw3NUhCaE5yMDNHNGJySU0KLS0tIG5sZGtZbUZHcmR5TUk2d21TeUx6\nN25UYUQwQ00yNU1jd05UWVkxaW5PWmsKJcfcc7Y3VpSZZyqmSQZ/cqUPX377nsyu\nase6/yzKJxVia+0BaIRheJXdGWznWAXzKhgrHqe43V3xWq0CKcmfmg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 +sops_lastmodified=2026-04-13T14:31:45Z +sops_mac=ENC[AES256_GCM,data:qz90dbHKIYH6ak/BCu4r1egmr6SOgd9SlqNOseMGRRspTsVDYvXEtQsyQxYJu6kJbsp76vF+tafqV0bB9+SRF6n/LnoaXisDXGaWAS1qY7uX9DlBEwvVSmbLcxb6cQ47vhY+H80OwVvj/aEGb38C86wAk5IX7w/FIcPwX38iz2I=,iv:NYr8Hma43NUdLrqDPiszBxtKjo1SNi5KwPt/ZVY0leI=,tag:TD+pHm6daRRMGwczixcyqA==,type:str] +sops_unencrypted_suffix=_unencrypted +sops_version=3.12.1 diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index 2a40937253..c2d3f930aa 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,51 +1,53 @@ -#ENC[AES256_GCM,data:01FuyTOAi8hcwTlE3h5bzuxLnxIcAUUOaBWOgewecUak,iv:wlTDb983ry3QmHPTNO831TCRc/y1rNfVBdEBltsjQHk=,tag:Jx4ihkq9zJe5DrhKh3VzUg==,type:comment] -#ENC[AES256_GCM,data:F8lt5UbzAe/bl9JjbNo9PMP/XbpxNDqubPdlBIy5G7FlBXHKAs4kMOUrcG749TP7QfdjRbUVxGWTeRE=,iv:VCsmfGyoATmwB7ZA7q+cE/5hAdvhctqUR3V36uyvugc=,tag:+iAPVAkvIv5mBoKmyAcRXg==,type:comment] -#ENC[AES256_GCM,data:SfJkrX4rrOWnflZeLZB+OTo5ZEjmoa+hGALSh6OXyWhnMwYuWgj4imsw/Pt06BnD6mULcUX6w/WSbxiChpK6Rz2Uow==,iv:fxo360dsbqLLuyQRoxnbgLsP0XFurYGwCV7Q2mule/o=,tag:96vqOoeBrInNq0iAvHygFA==,type:comment] -#ENC[AES256_GCM,data:S1LlGLvEHPWvhx4deVBIM4LlBQCRLoyZBpwhLqqabmUHJmg5ZU4u7h15VZdxulQUCA==,iv:HB1P2F3SbjlG6WfU/M03X/Ix0iZQhvZlTCmQG+9Dm+k=,tag:fYGwJb5upU4BbHTFn5sXDA==,type:comment] -#ENC[AES256_GCM,data:18ixZWR90g7X5C3/wu/lG8mCRS5fvfe5PrCThAwBqCqSpYmnCmw3kX9NtKHVTwt1Po0mkw==,iv:hxsNw3R9ionzxa70IjaXLyk++KfW6lCEfCI8yot3Ecg=,tag:61sgT8b7SWWlW7u/hAbbUQ==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:NykRLilL23I=,iv:uSUgclbI+u5HlqSazcXTdQMF3+6MPnF5gBqhgFrdxQ8=,tag:XFNiQkZRzfClqyzaPDqGGg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:cjdQF1aMDBA=,iv:tkZMn6+06SKK95jTNmuTsdrWcuB3vQfTkOYaIKTwpCc=,tag:V09wYVU5J+mtkCrmQ9+2Mw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:euB33ubvYg==,iv:eq7IpQpUOqO4RGLmR+i93W1Th9ldQxO+s6UOKMrP+do=,tag:K//krGc7ryYjXqdJoAZu/w==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:0lZeeWD8t16+wVoVx3GG5avuecZvJtEjfRq3r3DldeNQq66C6umx/s84LcdoVA==,iv:pBG3RlFFjyUSgCEVVMesLd21GM/ChoPw6Kw5ZY9ErII=,tag:aHv0zEgRyjUO/HyjkrIShg==,type:str] -PGHOST=ENC[AES256_GCM,data:ti8=,iv:Y+g2zJxw6AZnm3JXLDuUJFtOkPUMiyTFCsm+0GoA1VI=,tag:2jp/X+VV7SNVbMUmC1e7xA==,type:str] -PGPORT=ENC[AES256_GCM,data:2RhQ/g==,iv:8rikqp+jWc6t8cJLLuLTrGhetFI7wu+LLUxI2QMCMAI=,tag:HtqOSp2JKUAZkHq6m6KDoQ==,type:str] -PGUSER=ENC[AES256_GCM,data:rjuJ2J89/Dw=,iv:BAK/cCaQYwyJiMV+pAVTRToBF5s12/A8WXTxT9RRjN4=,tag:n4hBU76ZReuJdNpCs+cowA==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:EQHAp8G72pU=,iv:xKbh12AcnOBUcw+swC3McPYb23nyL12RV9iDt8qKBj0=,tag:IahOy866FQBSqaIvFCbq3w==,type:str] -PGDATABASE=ENC[AES256_GCM,data:nYwXkfTO+w==,iv:qq86WLG0XxFiwiQuhGiQXduAkqUjSzEgLPxJTnc02V0=,tag:VVf9bzQtqR5O56X+yMtyeQ==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:OlI8Ois=,iv:apN+8DyufGyGHh/+fGJG/4Zt1SSLHr8h9IJzWAVcc5g=,tag:mJoNwGnuv/yGygA4SE81Gw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:R1xiVwU4mHU8le4zaA==,iv:hQE2tkfqR0x2WisPx+g89YtPC1+YX4LkHyZ608OxzI8=,tag:fYJvFtC/vwW4hfFj2k32Iw==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:JJoqNeEK/bEFlsP4xQ==,iv:pdBqmcJ+Pxhv3ZrIs5DTQSwHmsfjqhlbpCkO1Nv/OZk=,tag:sWZ0GxJfxQHYE51SFtghxA==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:33QLz1weIvl27fkuz0M=,iv:4QWmPSPE2YpYP6dGc3hNzHq4EW2vRRANG0Sn/1OSQLE=,tag:0Tqwb5DvhwprvXeNw4YNCw==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:GtYFUF+JbS57Nmw=,iv:AxwCMu9e4yJ/tiemM+Wyk6QqYdzQ3oZAjicDMKVEXWA=,tag:hXplo3UDLXy0suWJ2KGM+w==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:qV3HZp7Qem7u2+Q=,iv:Dwat6yRxAFMu2C1Lhl1J6K+iZ2X6/n9jmdjlz2N7AK4=,tag:YreDcISrsSTMpUPcGsHvaA==,type:str] -S3_REGION=ENC[AES256_GCM,data:liRqnsqwJ0Ct,iv:XUfhFifl/MZWf9Yy/02Bhjvlp4jBuQEML29dg+18SvY=,tag:ICTYnLtmRbVVjyYAK3nTnw==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:jzzGDkgL33OjHDCn/JrCeac=,iv:4xyA52QskQeXZLaMWqAF8h+JYiUKNdoaBqoWknxLe0U=,tag:pVdb89AY/ZEirwQTpOwvLQ==,type:str] -#ENC[AES256_GCM,data:ZvethfQn3G93hzb9HylzPPV+SNHU1dLdUWddhZKfKYDXR48m4/pxI0Bfem2xEuG6N5vI756KFzhnjwDqEyk/zzKO1g==,iv:gqU2h8tctMH8UEixoGeze/u1osGk2HjPIn6KJkA7oss=,tag:bba0OSt+ukemN2PAA+m1mA==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:P3Aohsj9hrSbbEB4cIZH5e4Dwic4i131,iv:NRSCdyFm+LcaoSEoin27cFkIQEYVHUZcnyKtHChlDn8=,tag:5jQP0xeUwsS8YU3fi3oNRw==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:h/Tt,iv:OHa3LPP4HAC+/6ynmQyqu/4kIOW5jTBhPLmmjBAXerA=,tag:UAUvhlNI9t/gMcG0bZAfzA==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:il5J,iv:2qhdXyt8M9Waj2Blp3/bZ6Lbd1CSnL44ni0w9BKMk2M=,tag:6L7LrjsV5dzd4SJ2CAOwbA==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:Cq0A,iv:HyZccNohY3LOBL83imGrKJRXaI5HNnOAbfkf7jsgUUU=,tag:onTdFiHQVfmMq38ffw7QLA==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:Ux3L,iv:b72bNCwUdbI/ncfm0mozrkgnF7vPsBTFFWydptlh10w=,tag:HzbugC9DzQfnym0y6O91fg==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:u/w/,iv:+8s/rhemnPmmFFKg8HiB5KFT/kHfVwXrh6F7NKVBdwA=,tag:EZ9veppRkG4miHNCDKzETA==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:1dSh,iv:rr9/qGYRH+BGmI+h12CmcG8qccbXhji7RPXMg3O2oTk=,tag:XeeEFc4MvUq80c9CWCL8pg==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:geghunAlbZHbEr97CPbirtSo,iv:9DDQOV0iuBVAlLrkEMoPFAFAqxZQx+3wdea8QkzhbxM=,tag:WbpHuAka03EJLZSf82pjGg==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:L2rw,iv:7ZXT6tLTPX8K8cdFFmr8XB9aM5PiXoLabzk+dXDAerM=,tag:RRicQ25cXLFSfXdHO0iXmw==,type:str] -API_KEY=ENC[AES256_GCM,data:qcnV,iv:8aVJLcGajFM/1Wclg6UiitCRRl94es2VBZycM0/yvII=,tag:VZVCW6CPEJeZV0T5LSfP+w==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1cXRndVVCQmF5OUg3RUtW\nS0RMUGdhcFRUR0poUis1cm5nclRZbDZsVGxrCk1EVG9kRHRPRzl3ci9KcVBzQ09G\nZmFvTG5CbXA1bk5ZWHdEZGRMWk9pR0kKLS0tIFo4dytQQzlQK3lVdTdxVlZBQ2M3\nMDZYSFJZTUF4MmNtOEtQSGF4SDduM1EKevzGXoKoCU0hEWKcecBnZ6+9B3kY35c8\na9gU3yrDoMP2fA7+6Iu5+cgJt2Ise+ddGSY52kg7XobY4DCg/Ufo/A==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:Tmf1gdMIJLhR4lJ6BTT/O1eST8ezW6fH0bW8K50Jg0p5,iv:g3+uMFAaOEMQLmdB4zLwAoUWBJ+Q8gNsH0bqRvZPeb8=,tag:3HthTO2wGScje59GrMopCQ==,type:comment] +#ENC[AES256_GCM,data:JMCIHlRqS87GfZBs1qUrUaqwQI1ZGgKjllUAss8ylOY3AlRI3SgpyGda9GYo+LkAgd0QEnl5X4VX3uA=,iv:61dMSmH6VJMPAhEg7qGo9tjKEXwIwmnanSbNBKeaGds=,tag:w0X/RibOr0+ZJPVfcR25aQ==,type:comment] +#ENC[AES256_GCM,data:Vig5D+w4xAGfbynSGto/7vHBirx4N51ai3Ta5+UD2aTTHxgQ9CsWQsi3gjeyHPEpf4PQpGExISj981/PlhHKEX9Pkg==,iv:Jhm7E7A23kwkt03wopJO7NmlPXvIy1siQyjag8jUt4w=,tag:d460pfWrLeNEVRN11/3tfQ==,type:comment] +#ENC[AES256_GCM,data:tC4aiZrc50HCArjFTFgHv7+2AUC3/Aa2XAcIVeFsgx2xA8H6NoJuwPZCwd1o0HTTow==,iv:X45ag/rMmx4eBYRFSQuuPv66WULvq/kEAoqc0TLXHps=,tag:lCJ1st+2l4sKJtFtI5cJKQ==,type:comment] +#ENC[AES256_GCM,data:465TdUZCJf4xiATorcnOq7rrI3vnH8VXudDzsislTAtez8w0NnRtv1txlWTKa6knn4X02g==,iv:mwXHg8M6c1AU4av8hG1RpwXKMDDtT58hxeucmKiHy/0=,tag:cACoYb5j+J5hFhoRurfMhg==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:sOTJhEwMr90=,iv:xXsLG3MizwwFuH1a2uC7WTlE/wBDUdj9+SAHTIZeh60=,tag:H2ZLi7u0SB09ATt6PhQrWw==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:JqTM0syVNz4=,iv:RIkSsWz2I6AldE65JM/txMaI9cYbjEUczVQe0MzvSkw=,tag:UPa+CE0FonmM+UDKKHviJA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:qCND4tBPDg==,iv:aTL6gJJO1yA0JqcsbJLQtaQbVmVK/wX3wAc/XfgIk3s=,tag:AHpctuVy+L+y4vDO3EyZ0A==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:a/4X0qK41RW9JhlH3SsRsGZwPTPM8CgQx0czwfv9fSLGeSlFIa5Gd6naihWflQ==,iv:3b3MxxLsb2J1uVEIrqL5Hl430r/Rr2brK1C6Zi3/jQA=,tag:o0EKKFzTK0/csCwBg8otBw==,type:str] +PGHOST=ENC[AES256_GCM,data:S6A=,iv:qd0U00+HQfX8PGGifhGmJ5F282fK8+0x1ejqBYKJjR8=,tag:kVKk+MPHOxsdVkzQU7VKzA==,type:str] +PGPORT=ENC[AES256_GCM,data:oxUQ8Q==,iv:NqiCUtE5uE6GJ7aNtBDKZMGHGFfzLCaWfOh/Zf/S34I=,tag:0viecm7Xd9dHW6tGWJhuiA==,type:str] +PGUSER=ENC[AES256_GCM,data:IM1eXdo6KGA=,iv:ftKqX4wwsgWFPkW+bjaHzrcrmGbHgu++epUlpJVZkuI=,tag:r4cs2H/kBQSixSV+Cj1xWw==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:m64uP4NF0F0=,iv:KYsJxHUrtePgVCMB1f17b9L4Ktva0ylOZy5hr0uzLtI=,tag:q7tqp7i/hw3MCIpuB8e/Qw==,type:str] +PGDATABASE=ENC[AES256_GCM,data:q1LnMUHmqA==,iv:U3u49slkA/io5SWadfeSBQrMMwo71WHYy64hBJdsWpA=,tag:54gUNHrJsROV08UYwYtOtw==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:LZ3lBUY=,iv:zQfWbER+x77lJvbBsbKx7o5/6VrgHPVx4X6vdyHdeVc=,tag:Uv1598lu9nieMKP2yKD5Mw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:A/EdIDbN2Yl7rB5KMg==,iv:l/XhiJHIc1Ponph7JTXZ1u1QQg4Il9KbsaRceoh+BDY=,tag:9ZX4TP1LjG3F/JS4NIcC4A==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:xf27kjJQn7GaEfMzFw==,iv:Y7p2F7uE6rp8ntK7jF5q0pnHuZ7q0WNShEujvc73Ehc=,tag:6+s8VkcsCdQIY915VuDOCA==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:LDUNR+q4X3uqXrCOlyU=,iv:de6A0xUtIu/+UTNQPExeg4ZoZI2c3MuyJi8HmW3Gsxs=,tag:mskab+X9jSeJfUPrYV/Q+A==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:emKlJ8RJtSB+eKE=,iv:e+6gGFc9k9Ecnwu3Vc6Y8wiTejDI8VFqJTRpRa5Hyv0=,tag:L16xW/SzmQg7PjNkgxTusA==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:Fdm55u0duuHA8kU=,iv:MupG5XUiJi9aZTzIFrV4D0nt7sT7S4c5sLmx250G7iM=,tag:mdEXqwlOJ961A4wQ4n5yyA==,type:str] +S3_REGION=ENC[AES256_GCM,data:9AZAnE4TiOPH,iv:yRJK0mRh55+1I9nzSG/PIlYPYCzAoYKORewaUbkpElY=,tag:LHZVB/hh7TsVkE3LOexSAw==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:x9KzNHCBo9m8Tqj1zdD+0MA=,iv:mISODtpy/HTycLXz1urt1T1miC/L75Q4OQXikkGpbjY=,tag:PK7iwt7OL7Thykntp+/AXg==,type:str] +#ENC[AES256_GCM,data:dMHOgIaJx8zyqL0t5g8AtEMSUgFZOH3+FJO0ukISqYwbCI7U+hTdJ2/xgFOKJOXDiTY3R2aFp69qRetqsCnkOKNreA==,iv:eNbvnndut14mh1GvWnUF/7ddHPRFHujj8WP7Q/bti7Q=,tag:1zSJg2PeZnZ120HZV5eFow==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:KGN90wx1oIJnUiHVYfEF97QQvlPsNBn9,iv:1rDSTi9y+G+9vWk8UXQoMLVomrC7MsUkeGoiXvG3Cz4=,tag:RtWbFcIM84JRCIz6F89DEg==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:ZAMo,iv:lf/zIwV2hWnoidVtYbnvT/K/26gY8vtdf3byje/py8k=,tag:wr23vowjxNPa6yaP3CddOw==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:9TYf,iv:9bdOxzunyUddm1al5F5oLoyvssqzufVbO0Ab/rotGNU=,tag:Eh1d9HYHBBlZqbt4A4ahNg==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:g4Ia,iv:GU+kFitTxbrMCv7mOIFaRlssK3HItaNqqOYYkAiAs6s=,tag:1cvohPZLegEnB06nkat8Vg==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:3G7+,iv:1jHrT502+KqI7bufvFIAZJpOkOY8ccZof2rCqCLE5ow=,tag:s4yyPpAE/hmVCn2QwJcMZg==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:kzMw,iv:GmUf3mPlDLlUSG47nae52OiZl3tXd7lUv4dsx11PurM=,tag:n22KXQ9LDjIW4LXMbU1Q+A==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:HQ/1,iv:xrl9zcX6vMn8aZSiUeFljNdyy7MD4JZ+GUU4+zwdON8=,tag:FMvdqdKc6piETXCmTHiE/A==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:xGDuXvq/chJXLJ49+NjjP8re,iv:UZ2qzdLAZhSXlcW/H+PMxSIAetTjAs8PnDY7A6N3o7o=,tag:mAdC4uxXkW3EDOy5dGxhOw==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:0BE7,iv:K55o2HnMWx++XZ6LhLD41VnSF6wjPcFYfzpQWzLr5o8=,tag:OblGXqR3nkv2r+BiPI2ZVA==,type:str] +API_KEY=ENC[AES256_GCM,data:Y/8e,iv:3H1vIn/to+5vdcGUieGoNz4/SgNfIfVGrgm36bxUfYU=,tag:iqO99H5KHUz2qUyeisAZBQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4OEZ5M0F5Y0N1dXZYZnJk\naEN4dU10SWlRd21XVlVqVk52WUlOT1BhampBCkNiRm1oNjhaMWRoMVhrY0ZiT1FQ\nVnQwemc4WkpJSmJxRFFhQWJKQjRmTTAKLS0tIFNYeFc3UE1waWpHZzhjN2RlUjc0\nSzJhaDJRRTdXK3hGTEl0aUE3c1NybHcKo6kOkStvwnx7rd0bTP7RXpR+vkxVZwO4\nxoOg5D+yqYInjbSMQ6QXwp9YXq65esIUQWosL4RQcb28G9Bpy94ASw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKYThXaFhnN0tVUU9sVjJ6\nRFY1Mk9rVDRFcjZ5eTZjbTNuNWpROFpXdXlRCkRNUkhhYVRjZjhRSEIxU1NJdlpD\nQVR5MDRMc2pZMnovU1NiOTdDLzBOSXMKLS0tIDhQUU1ReDlpWThPU1V2QSszd3ZT\nVHFGYW9YOTNmTmxOQlU5OGM2clIxdW8KEHDxeC7oWHY04chaVsUzutowlbQAlR14\n/sgSspLISHdXNw/7vksI62GB5OmbCF9/316LY01yClFpKvbGcZe3fA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuais4V2psME5SZTM5aGcx\nTGZic3Q4SlF4bEVxczV3dWpuZnZWZE9QVzJVClRvL0Y5QWVOa1M4dk9uMEEyUEZG\na1BWN2h5bjR1Tlh3SEdSODJzQVVSZm8KLS0tIDVpWVhVOUVBbkVmMXViUWhsUjJE\nN3MzbnlvbjU2T2ExQW5hT255QXJGVEkKCN+5m5iKtJ3kTapjyrT6hYvhWefzgX50\no7AZTgwnTHRKc6R3leYBxOd3Bj0orMQIW5I8kAlcBhCamEO9N2kJ0w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTdFMrWVlYWnQyS0FaR21t\na3Nsb1FSVVRxMDN5b0F6TDBoMHNDNW0yc2lFCmpKRE0yWEhPM1BWbXBJT0U1SHNl\nNzJKSnJRREZsajBCVjFreDNWcE5XNkEKLS0tIE9LMUxOdUlNQzdoNnFKRW82ZHA5\nZ3JjdHFaVG94TlRZVUpFK1BTRXVHeXMKbUrmQBwDMgY3c3OlIeN7UHQZHkHTBzBP\n16trH9mVU3vsbYCxanrY+hy6E90LeaU5tnntHXb0HMqGDl6vgCNHYQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnSjBPSTUxd2ZWbXBnNUI4\nVUN2U2QzNFN5bVMwMURwc0JmeFA3L0dBVlM4ClJMZk5NNzhUSmZhNkVxcmpMYngy\nVzgwN3ZwVGUrbkx1cDhUMUQzaXlmbEUKLS0tIHNwRzZBa3kzaU0rUGZYK05vTUV3\nWWtua0x3VjRrUU9ZbituaUhIWGdrQmsK1nthXNZi7AcO131jznkmUi7PwouOU4MQ\nrqUa/hhuRna+qf/aSO84QRT1LhNwqjthpIr9KZc0Yp/CYGbl7vN00A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5bUFyTGwwL0ZwaVArSnZ1\ndUJkQnV2NVhTQnQyK2JGSUc3aHAyZ3N5UVNVCkF5WnFPU0RxMUFqOUtQeitQbzdD\nNHRNaGZBNUtTMlJFbzcvRGo3YklmTFUKLS0tIFlQZHdTSVd1V0JERDZEcjR3Q0RZ\nZlc4c0VLalFQK2krQjcxT0ZHb21PcEkK0tfMklh/5YsvkJ4P/iIT1TjWEcmtYJob\n7kOqk4B10aA1v4NmeqGBpf+stqXebUblpQmEXq5gmMQFlawFWHFPIQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRajRHcnR2ZnBQNG5YZ3g4\ncFJaNjVGRk52NzhhZzBXTUNmaFhiZXdrL2djCkp5SlNhbnJrV0tUdEJtbEN1QUo3\nM3g2MlVSdVhvMklGTTlZcXdjQk5ZWU0KLS0tIEV2cEVoQWd0dGV6bjdmRTlaZitx\nd04yeWk5R1NYQ0JaellJR3ZQSC9jazgKxkFPQu1+/4BRbUtQ9Ouk9QJKp1JGXhyb\n0UZnAU0C1BXzxMFMrIzaFYd8kzoPhdRcx5u3Js+8kpxorh8Xjr0Bkw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0Y0RNMGh4eTdNWWNobWlY\ncGsxTDVrZ2xmOGhnRjlob01sQ21mSmJvdWdVCmcwaVJBNnczQ2VXZmM3ZXlGbUVH\ncUtBMnRYZHk3M0xZcVZyQ29jMTVxSTAKLS0tIHdVNGNZWkJxaGZnNDBKMTFFSDJl\nbnVYZ0d1L05qbFhZWXoxazFvQ0tRYkkKA6qOZA6z/d01xmV6zomUA8JUrTUywKro\nUz0bkgsHnvElWv13CBaYEDMHZmkhWq+shnr+tYUXrXx4RLbq3a70EA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQd21OenNjOVBRUnVwNCta\nSlZtNGpGbWtyNk90SjFiTEc0dUMybjByU0UwCll5bHdHY3BEUm1jVmkzYm5lMzFJ\neWVERFg1N1FqVFFLMS9wR3JDb1g4MkkKLS0tIDhIeVRjN3BVNFBlcFhndDVEL1oy\nTDdHMnR0cVBySDN0SStlRlkxeEhNQXcKwJp57r6hio95y+fFapvS2Wl/7/yr4WaW\nt5rlTU6EWw2Bu5OFMI71hmiyDPPbYbQlbh7GZFs4+KRDv9yR1aiPOw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBScWxBREtCWWZ3TXYrR3Qw\nbFA4Q05VVktiVUZ1RjZqUi9pRllwRDU3Sm1FCmJhbUZQTFZZL2kyN0tNUlQwWVlD\ndDBtekZndlgzUDlxN01MWE13ZVJaTGsKLS0tIFRpRlN4a3lOSWJuU2p3UWRsb2ti\ncnoweWV3ZlBhOEx5cXZzNTBKbDN3eTgKgV/v4wrEnBXdDe0wiT9iX/abq1RxJ6Kv\nh6USU/cUJqElUU5Nu8rYqlVyrJw9zF5hq+L0XomOGWyYdfwWW9qXaQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBacnNtU0UvY1p0a1VHWjVz\nRWZzemc1dDdJRWs0MjZTVWhEUTNmK3NDQWhnCkdveE1yTXFOL2NIMmFjMXlpOVVT\nOE9Qc21nSTl1MzJ3cHZNTTUwK2FRTVUKLS0tIFAyd3BJQndMeWxrSEQ2U1lIYVgw\naFBIaDF6cUNLR2dJYTdSYzltUVp1OGMKOOj0Y/vulG6/GDdqm0QfmlrhAsoP8wgO\nvayThyjBXYhAG+66RnfyqqtgkI9jN8sMpBrRKhBFghwV8iCAuYMW/g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzTS9mK0ljd1NRbUJtU2J2\nY1NHbWZzem9NZ3R6VnQvMEJnSm0zdG4xaUVZCi9zL3FNRytMUmd2eVU5ekxYZVpz\ndXVwd3Nrd25kamRMZW1wbHM0RUo2N1EKLS0tIHNSUGVESHBjRmQ0eVY4WndsRWlQ\ncWNqUUF5cUtDUFhTVFBIdTRUNjcxWDAKWtdnGqv+POmO3gyPfn4gxEF6bndbVMPN\nkr2jYlNlk+yLxin5t2eZXnwEdHKD6/JPrzobaV722Y3gcy4SMBrx3g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4S3dtR3BjK1Rqb01NbzZM\nemlNYjlEbmsyeFR3YkNNd3ZielJlb2Ftc1NvCmdvOGtnVWU1T0xrSGp6OURYTlhG\nYjRNVHJQTkFvZVFYSVhOQnF4RklqbTgKLS0tIDJ3d0NjMU5wWERKRU5vMm42QXNB\nZ3liUkl2bUlFbThWWVBWaEpVVXNuWFUKunCGKcseSLVufzTaB/e5BS5VOCWvVWof\nlcjbWJJSMYl5sFakAm6fYVI7nwDXupfpRpPpmaCMj6TNhzosGYvdcg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_lastmodified=2026-04-06T10:33:35Z -sops_mac=ENC[AES256_GCM,data:FhzbTx/c9Cikj+q3nFeunA5flcDL/IDuLzbTNqFiMloqUl2nLgfqP/MnPzti3/IS45EgIQlK8Tc3prSN5B6NDKH0UN0M1xvbe9p2eeoDQJk8I/OqpqrhqkfnClbk82DIQvjps4TqhJZidu7LHV0g+lF33Uwl0F3a1rMwkRL6umo=,iv:SkKnb7RqNRQGix2rKrv0oALUDOc0leChmb+abgcB4UY=,tag:HlDtB4atTYGXEt+0OCnSMA==,type:str] +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJTlk3cDZJY1NMTk11Mytn\nWmttVGw3bE9TVnFOeUVnRzJCM2Z6cEU1eVhNClc0ekxTVS81d0s0VXB6U3VwMm05\nb05teE5lcEduak9kc2FRS0Q3Z1VSaTQKLS0tIFRhbnJ1Zzc3NkZHSWNhalJ4UHFC\nZDhZUWxNcWhvdWNicTd6d1dEWGVaREUKxO3w6806edbl1Rhvio3bpv+wcL+sCcCb\nxbV/IgLmbzmqA01HW1p93OfDtZtEy8jezZCpKPHoAgRiu+rEs3cT5g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 +sops_lastmodified=2026-04-13T14:32:27Z +sops_mac=ENC[AES256_GCM,data:WCLvmygTPyk3i+DpenmlsQozigDD0G24+zwlvsyV/CJ92GnihXji5lGPaY23Z1K+2pPKdyPhft0+z8z8nbhHX+OZtDGQnkOjszEebt9f0bNmaAwbUDXm4XJCgQkUpPxN5PqVAFBWXzVh0CnDNEfTFSVOwAJau5o1PAfBtuwpJ6c=,iv:0vxrtsNONxHh5OAjMIY2rfgpDjnGcHIRvZFrlduLffQ=,tag:V0VZ6hLbw/HtcvIQkUlFrg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index 71249e26d9..88b370812c 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,53 +1,55 @@ -#ENC[AES256_GCM,data:EUk6PIzXsseMFS4wuOnFQj91hGFwV1hzfi3w2DQtroWV,iv:Gr9+RpcxLEZ0/s37D5tEdejqHCKFe2PBonqh7J4NKUQ=,tag:ELZGUZkCUoirFfUC+SWTmg==,type:comment] -#ENC[AES256_GCM,data:zD2eJw0olC7BZUYmFfI+ui2rJOHotGFvfXsJtVV6Fs9eddGy2puY27q1MqfFJZ1HS8qd1YpWTqprPb0=,iv:WM22N8dLhJSE/zNA+ASjwENeSuZ9Cfx+FuF7T2tM9Yw=,tag:CBzIFOJIyHUJprY0+fAvJw==,type:comment] -#ENC[AES256_GCM,data:GgsiNd0FA23Ml4AOVn0gpzzjrFimTi6QEBIDJoWjR8lFjNSEQIbBUzdwSBUJtRW9/kpE9nciaRioyRhuzbf5riEy4g==,iv:v/rX0FvZBCVQjH6KJvOsRvBOzzapSpJ1S5xtD5BeuJ0=,tag:va2QU1onE+vV7leJjjuajA==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:0rThpmSzlemAo9bEedewZKEhZw==,iv:mHZIqB+V3LY7qkxq8aSmd+J8OLTpDJQAIK/r7Sr9zJU=,tag:RPtpmXfP0dzNn2h4WDREKw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:hZlG9x0gFG0f0FzC+SPCWnV1s/Tulm18OhOY,iv:7UM8dBIV3yaGOakYSkm49dpEEnoWYojpoNppLHfPGFY=,tag:1tu98rRDaRdiD/aHBVThNw==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:uZ5vn1rC3WA=,iv:TkJZImdU6aafkJ0Ye6cdaT3/Z+w4/7QemlAS6guKCus=,tag:UjqhwiubHrWGKKZqwLvu8A==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:hCmhLFmyazk=,iv:7Cyq18Hb4iK5PQfBqb4xwJ8vL2POEJyElYUa5hx93gU=,tag:pH0L4Z1ijcO9kPMQIdKRMw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:ISSMJidN,iv:0xkYpUb1dg9Bp13XCdIPIJwelfZGd07hNDY7pIBKJjg=,tag:wtZVSRcSuW/oSGqqHWX+4g==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:3LAclVCQWrG+7CdFXPnj47QVzEvXAyUbQDesSeCl4jZ4TG6dl99x56fJTBTF+jYOszdkjnps37yQ2du6U8zFoVHUdbgh3bEJBw==,iv:sgxvIo8HqTZDrFQGN0TawKvcwnbRCV1mKf6fAwbxepU=,tag:zKeU/TY3o8vo7kWA7x05jQ==,type:str] -PGHOST=ENC[AES256_GCM,data:Wu8=,iv:bf6higOwpwLgZ2gSHU3vtsBWIknD8IqSRE+FJymZNvY=,tag:xWgR/KULnc5q+ht5r/q6sg==,type:str] -PGPORT=ENC[AES256_GCM,data:wUDbkA==,iv:vu5OWULm4wUsdvla8ng9MYYuavj28z31xRMH0FkpB5o=,tag:iie9hQz66wEC1ButsZNC0w==,type:str] -PGUSER=ENC[AES256_GCM,data:w2SIl1KPFkKE8XWEZEPApg==,iv:qcPcosmKNdNBap2ZvXkODc1+AL2LRCpuyoySXvZx97I=,tag:9l9dP2RqRXe323VIuwHbNQ==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:tskXQm/SiPq4v/mtnzfvZZjqhqU=,iv:kMCrdDbO3IIYrr6Fq3wlBDnFAKeFDX0XXA5CMFfpksc=,tag:acZGDyb30y7ZShxmtIOEYw==,type:str] -PGDATABASE=ENC[AES256_GCM,data:k7pH4TISVtrgCQZBNKQ=,iv:FT/tVKCe8Uzj6fKt3tjGEQ5sm/MJZTb2cfCcbhH8yzI=,tag:XERwNJlVJya6OJyGtws6IQ==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:eOykTCQ=,iv:bEYSu68W3pHnDPJBG4qeBcnr30gWHgKRTS0QiLH6Jjk=,tag:fXp6f3nNtKnXACcRbzax5w==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:B9teVQllUozOjWAclQ==,iv:WlwU2agbABSFfZ0Ai8MAf3nLmDm2f0ngXjyYV2ctZVg=,tag:pfJesr2Wc+1JkT6cS4Qdig==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:m5IhnP4bmLwvhRH1MQ==,iv:YwrFzZy4V9DTgIHB6kjuaHkf9bYR3qlWOg387lioC2E=,tag:j94mHdsseLMCz2qWX1XN0w==,type:str] -ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:J7+yZke6,iv:nmGO4MnTHkF02hT+Swus0AdzMUnLQAqnlVQbmaV8Ibc=,tag:+lygXbeROCrFv7WY0FniOQ==,type:str] -ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:2MvQ0tTCJKlELzw=,iv:mVOi3FAknw098g2AY+h43mbtZ9YT3PNt6fkOmzBTaKo=,tag:cDIcHbJvB8h6P5ZXULv1pA==,type:str] -ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:fR04nwkgZ8jFC0s=,iv:lJcMu0xS5AsKN9X+LZ70RELGF4u1eI0uKTbpyQcoTQQ=,tag:SSaKB4Sn620gwXm9ilRYkQ==,type:str] -ASSETS_REGION=ENC[AES256_GCM,data:AHtDF/GoJc/C,iv:F7XuISy3MXp77A9xAaMryKs4mQZPrb7Oebl9bBVAfJQ=,tag:kK4IHFGO7tCsV+16Xg4Dng==,type:str] -ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:NKCglvQc9KIoARg9kNhx8qM=,iv:d4RdlJQURPKGeNDlXDONDkTW0vA1yYCvWQZlRLQh2EI=,tag:AdpBoDVZ2/IznMTlqPIxrw==,type:str] -ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:PVQHF4MFGv02V5c5l2X/UYsix+q5E4Phim3j7qhuXkv+Nw==,iv:+wE5+eDgFT8CPqDrzXuR8Jc8sm7Et1KIGXMuMBkXK/U=,tag:hSEpd5211TbOINqpT9lpiw==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:GE+jlsFsEhlT/NrhRASHOUo=,iv:UgnJ9aS4Et+otQCIyAQN0A6FasbHLBVxeYuG+/BW7Vc=,tag:KDtGbGOWtME8RYGMYEeY9Q==,type:str] -S3_REGION=ENC[AES256_GCM,data:bfsZhVI6SUQt,iv:eqbKTZ/JEi8CViY4nbOLIp2txcdUxXk+BFfPQt0oYXE=,tag:XpbvEPh1dPTC3dfn7HZxuA==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:WaJmPKLU0xgz2filfafc7YfCXKNpQLrt,iv:qbnYSvd+j/vJge3jdckmjhg6GKc2+QTK6EBAE34HA4g=,tag:tfbitWsNF2k6hSfLoawytQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:nUfu,iv:YkcgqQqaw3EhllxJrODxKcxK6XLRamKl6R409oP8wLs=,tag:kAei09a2qd9iAKi9AXjbXQ==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:jTdA,iv:ulzrjrcYakwL0CVZLmyhXkHXpq+xqXbQiQAKQL11P6s=,tag:ObCFVmmbd3VN620xGQKvxw==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:+PaC,iv:4yAKdeIlgnF6xHNOT0Z6CR7Nu3rG6waJCvkgfhNOFL8=,tag:jEiAaXp0kUn3s+cP8bjKyg==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:Fkgy,iv:tDcWCgTpMQvAhMXzu/HokUCYNlzfiEc+FjGcI3VkaZQ=,tag:/a9h4511XDbmk16s+DmcCA==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:OKMx,iv:38RLXgWXNzA/XgJ22Qil4ZBo2Obo2uKHA3SYtWfOCC8=,tag:2LhnzeXIkabpXBwWXNTe9w==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:eXcO,iv:jOd0V1n+g/CV04x92oLLD7BHj0FOaTKjTqeOv4GdT+M=,tag:M1pg4Sf/VhDIw/8dQRWtPA==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:/osaHe00IZD9Uz/gDyca4Sg=,iv:cGZ4j0VC4v5Th8Qn9r4hT3vH6Ne6SE4EA/yLarIWHNI=,tag:an3A9I/ze6AYxwLVEJiMCA==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:47eY,iv:tMJArSXqZiDqWiotXFmFyW0WqR+3kvkxuCk2lp2IhyU=,tag:3qWyEBnHXFlm8qfniQJ93g==,type:str] -API_KEY=ENC[AES256_GCM,data:r9MF,iv:7JBUNs84+/+l9vWP/eMY51YcvxeiCAWYfBRfKZQUSpc=,tag:i2eKY5CYm2dDJmZFV5S9Ew==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXUmtQMy9ZREpPa0NLRGsv\naU1VMW83cUJlWjFTMjJreW42UnltWUI0L2h3CmJxdzRXa2FPaERHR0xyUHY5SDFv\nb282VktXSWlrdk1NN1hSbzgzSDNhYUEKLS0tIHg0MHR5WHhJcDFna0JDbUR3c0I5\ncVJqaGw1UE9VclhOSDNaeUR0UzZVeEkKmrjBiCf23E1uxNtCXr8zpVvP2gMAdUFC\nV7fk+zpa3443cc/2AvSAiWxyXHblykN+cxc+suNUDNv1QtQlqG7RIg==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:jBfsGj0lELXA+9bOa1c+baucIqv/vk61JiHTI6pzIXPI,iv:EMbgYPTznNSNrXxiotkSquzG0BSu2OKMP1GsIA1F4zE=,tag:QNXLyFBU03BxlRrYGJ7ulg==,type:comment] +#ENC[AES256_GCM,data:nGC//rBOZ2jFyAL+6WVggvPsNjNQFJvWMXk8J1RhMklyOZ87w6ARRQF8xeFsG//A0L3fs5Yl36EgXOk=,iv:3s3xYuOvtH7izw3tEG0OfXcnM23NDxsgTGSvL1TYngo=,tag:rz/9wrr3zjYXNRGVy83gPA==,type:comment] +#ENC[AES256_GCM,data:vtK18WGlINUoV9db6JE4jLrml+OY1aNIB+HnmfIyw4Okhhq0ssX0MiArZJYK6nsHCCZF6Oq6R2lSug8fM5whzHhTfQ==,iv:jkmfJMOFoRt5qdim1iqhRx0BJTpET7948pigLfQ8TTA=,tag:rwl8fVR5yAlIxfwJJrPnHg==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:4+onYA5m+li/w4hgjvEFuvv7mQ==,iv:LpNlUY9eAbmxAXC39KURh/8JPU3f22qcPjyLdCeepvE=,tag:wIxAeb5zBtcWsznLu8b6Tw==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:A+ETgDe3dKGbiZhzZx8xInakUzMsVPiVW/w+,iv:KUnoOExAhuBN9n9qp+FmDTgI3OJkAY9jJCGUhaqAHUk=,tag:aHPRu/bxGSZ6S0HEJP+0zw==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:fKf9SvRalyA=,iv:7BlAXYMc/sgyVGM+Q2/RcReWgtR44OX9SOM4hhxWK9M=,tag:qDzVxnVu1+qkTyTMDA2AvA==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:uFpP+8ZK7dQ=,iv:+gWxhFVelmoYyFA5VlgyVs6K2ZLKKN86kt6RVhk1WX0=,tag:eb6tcb4mbn73sjgJCj7HKQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:lBg/ArB2,iv:05tf+p3Auw4uF/egEkNOHjSQywY3MU0gTofCMNcabY4=,tag:tqTtFUYAH6dEVZq9vfy19A==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:0kjz4bx91yGHIcsnQQQ80o82Lk58l/hj2M8BcK64r8mbNRJrfz82ruGwXe0qvYUi0nLy0KSNMIg3DdPBGI+wfYg9XP4V6W+1EQ==,iv:qypCSI6KWoEoHGWkBXGBnrCcaUFvxQyLakTAFKSvKZw=,tag:uyA1EnbSHDVk5kyim8W03g==,type:str] +PGHOST=ENC[AES256_GCM,data:eiE=,iv:PvgvxfTdux4PqO2vkVHclv6SzXsn3fXFuBZVxv1erJ4=,tag:F3jbsWKn9yn0FLF9LuVSRQ==,type:str] +PGPORT=ENC[AES256_GCM,data:HxUoYg==,iv:169zP133qf1VYTgDtZUy7Nar5ZmyItarnnRclXYCA6M=,tag:viiX72zPhFl1cauz5LAW1g==,type:str] +PGUSER=ENC[AES256_GCM,data:mzP+0pNjyYgEBb4QovkvTg==,iv:5bP5BJTLRomPDLditZdpUmV2oIDHwvKC+1VG8Rr2MZg=,tag:8N/zolPfBMl3vb7AqMCuqA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:AggsmIoWpoNcYvUaEAI19NUoR7Q=,iv:cgpa+YPhiqWTFdamly86cYDZwPdtCegCGBdgKkunpfw=,tag:VuT1LWMC3b6TF6PW3eg1EQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:IXRXa0dGj3WkKtpoits=,iv:Cum3Za1lzltMA09wRY/tLCqHzkmhFB7oLQDh97yD2v8=,tag:jPbv4yNqMJRgBZKrW5ch9Q==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:qh5ksYk=,iv:it16z4hlmi3DTZW6EQOEcSRGFnpQ5PDhomneXcMG3Gs=,tag:TKSXCIKy4EdfLJbCnw5Wtg==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:YspKA8Qhw3V/NFZFbA==,iv:3fxzt0hG+iuJITiK6rD79w3smxbDxywYwN26IQpIwUM=,tag:Xl0w6j0m+MmqaWKi0VvNww==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:Jrvkuwh5NjSTL2WCVw==,iv:Pf5mUuwnbwwkPqzllwvTGykMHwXBVPyJ8NVI6ERxs2U=,tag:qdpdyGL4KgkkV+9v0YS47w==,type:str] +ASSETS_BUCKET_NAME=ENC[AES256_GCM,data:n0U/aYZ5,iv:b2LjDM45jnjXkEPwJ/RDyJqQkGJ5KvFD7if5MBF8Cdg=,tag:+SUUSe9M0fWlcXw9kEGZNA==,type:str] +ASSETS_UPLOAD_KEY=ENC[AES256_GCM,data:mZD9n56wtSXZaQs=,iv:mYQQuk58xMlraigwUWrf+1wt/S+cUZ7jMdhfYDEedpc=,tag:Eq0XXTxekzg/ioGdi+8oZA==,type:str] +ASSETS_UPLOAD_SECRET_KEY=ENC[AES256_GCM,data:uPF46yiEEcFQuh8=,iv:CjH2+eupf4jwxQ23QS9XYnhIv78pmQQ6N6w1E5JN/nc=,tag:zQjA7KtgwQ+6Vp4O3LLzzA==,type:str] +ASSETS_REGION=ENC[AES256_GCM,data:Nuj+Aao6z8Vr,iv:p4iQePHZsoR952Jbg/voHQbl6c3cIBhs3LMymX0auWo=,tag:0R7OtuKA900dFuP0ehbKjA==,type:str] +ASSETS_STORAGE_ENDPOINT=ENC[AES256_GCM,data:sOgNc94JqJUEoh3wvelMdXw=,iv:OVlUCsS5KdOxfQsZnvPZMdB0qIaMLamkn6hrSH6/0bE=,tag:x6Ph3624JjnKoODM9ZZKAw==,type:str] +ASSETS_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:E9shxLdr4BYEVOHUvx7AWKgCh5ApVNrjFWIBidKxkHoZKQ==,iv:7e6nW/l8eNFNciT6xhj4fappCWDW8HAonLViBmcVAD4=,tag:s4zvj3cCAyTgfvHT8DVwPA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:XaJhGFvSNHsWnPaQNawdljs=,iv:I8IEr00Xzo7NL+U0QEKMG8hyeG/Uv5rgK/BV8x+wacw=,tag:XJg/snjcBiaQWSwSyDHA6A==,type:str] +S3_REGION=ENC[AES256_GCM,data:i1ioAs9Zf7W1,iv:iBUFL5iB/xpEZjmno45RbSHOpgvPBLEZk2Wj9wzJIj4=,tag:NZahlJP3P7b0XQS9eacCSQ==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:ykZ22VnUbvvnWcARbw5e5GXMM9NTuiJb,iv:1xvAlIPRMDDCMifr8zc4baSUYyNBVPpVMnaOcENPJd0=,tag:evgWhFZVvDJWQ3aJy1cfOQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:q8pI,iv:seYXfOxntVyrw8RQfTtYtsGhWShusPyjO2L1rJGRZb0=,tag:pc24Cp9LlrcTaVIOnHNFKw==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:6U/g,iv:q/nEH53LCjp4vP26Ow4vTiHMlZryeVbiFMS4cCpW90I=,tag:z3s7CxHOLQbmOURQTY0Lug==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:WGTr,iv:DjIQ4OKBKhOKMbWOuJ6KRwaLww+hceRME2t1VsY8Nc0=,tag:Yo4l1QoR3kCwvW8JlrAKIw==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:w5bE,iv:4unkjSu+Lw+rjG0pywisubCl+LDhz87rRTVNGiQhhcs=,tag:JDrnj+M3LBH8bghHKJVKvw==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:67lp,iv:+fe8Fhz9CJmtYrgwceNp5bAgF+LmDDhspylfSe79cL0=,tag:hC2ugXr9VJxbqc0ZfN1T7A==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:Xfby,iv:Vk76o/rl73hNVW5E57RxAp2iff+hmDJJiEQ3ITQHNJA=,tag:M1nVkFSFSnqhFRFiUSM5Fg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rI0rM8obYtmeD2nNJ6miYLc=,iv:kuEytDV2tnG63x3UTwgQszlkEoeGUU1RRN3i68/BMzM=,tag:FwZgxLwU+HAFFqF1BW9jLQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:/anK,iv:LtvlyuLD0ob4jTqP9uujmeb9W7zyR7I6faJDYuu7PX4=,tag:iO0O7OAW7JEvqVyAddy20A==,type:str] +API_KEY=ENC[AES256_GCM,data:Exq7,iv:bcex5MFI63QGzq8LtT5EK/aFbOYB0NQfDnMCStsQBvY=,tag:OfBC6qO96vSPA5j337ucUA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFZ0RHeHhzZklVTXV0Tkkz\nNHVTL3lKWkVZdGJuNzE0a05DOU9lRVR5NEFVCml4dGFMWVlFOTVzWHBvZ1lxOFQr\nMEdsVmNKRVE1dXJNa2tqMktEUDhNQWcKLS0tIENoTkN0VUZtVnh0NnUvMnc4bWV6\nVW1aRFdNaTdJS0drT0llcXZTY3N0SUUKEGUKXBiRB5Ns/wsh5QszpyIVHuZJ+ber\n5czeZDWDDl9Vx5WYOt0M/4TC6rJQ6hkfj+Ps+eKycitnVTOnOnpASA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnME9uSXF3TU90VFFEb0Vr\nTHlFT1JCZGxUMVBLNDJ0bkdMTmU0YktNY0NRCjIvakQrRjc4OVB3WDdwWEt0Sjd0\nWUxvT001SnVsZGhrWjV1MzJjOGNnS3MKLS0tIC8xK01yYnRiMzIyTDd1dVpGaUNh\nU1lmZnREUktRRkpQOHlpcVBOQlVlVVEKQW699/iBFbah1OOVbcClLoyWadsDGYaf\nMz+5EvDFwO7LPxld3uTkXNh0tNuXmi6T85c09FM7BPqarNMsBbqVJA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvUms2VWdqQTZJaU1TS0Zp\najd1YlpIUEhIRkVjR201R25heTJkc0E3WVdNCnVsUUJCNjA2OTdXaEpXSEs0UnBB\nWGNqdGJuQ3RyS0J4cEVvRTlHbUJGdjgKLS0tIHYvU0NFZWZtd1lxRGlxdnVlK3o4\naXJ6TTBnUUVneGltdnpwQWtKdk94cG8Kln39W0fSwaiv3hG8df3oQ1Lc+W1N7BN+\nkbHBe4nZm7d0/vzMogNwQYfHzgRZbsLqaizqsyysgUDYwGAbVYrhJw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByY3F3ZFU5KzBVYklIbmR1\nQjloZFFnZEMvekxrTUpOb3FMUnpFekZXODNZCmhRNjZiNGZjVHVlTTFPSDJnNGFG\nS3NyWFF0UFBxL0ZGYUhxeGpGVldBVEEKLS0tIGVwclczRERPTENWMGl2VmtTaTBQ\nTWVIanRTMURaWmFJSWZwTkZSRUlRbEkKqMEEWUGjLYbDwd3q8isW/mg5c+MNPcod\naSh7XqVcOyDBUBr1yuQ1DY2itMY+x502HNzUl84i67mep0k619jgTA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvT2ZobHYxMFhsSE95clVP\nSzNYQklqNEhFeEE0MWNpa1dyZXBCN1B6RkdrClVWS1VkbXBuRkdXWS9kUUFIWDRs\nZTlFNkhXaWc5MHJNckxzVEx3ejkvblEKLS0tIHhqaytBbVRPdjZkWVdVZWtvbEho\nWGpna1BSck1CeFFrOWYyNC9JNzFiYk0KgQpy/ZypRK4wbttPicRsxbAs/woK6Kq4\ntzAsBHjn/0WL0aqgFe9sJkiGp+o6z9FKeZ6+3VkgJSJlozQGYwgIog==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtU05jcmxMeUJWZnpISkd6\nTFZFNkxPMjBXOVNSSmxwWUNZczdtZXYxWTFVCitCclkyV2hsUnJzcGhvbXluc3N2\nOGVsUldjaEpxMVFMRVZzNm9mV0N6SjQKLS0tIHBEOFhlbDNFTThOZW1HZU0veldX\nMmZiNkZBZzA4QVlyRTJRTzBSVXJPSUkKEGiTA2DpTTOUI/dxrQSYoQhiS6DM4Q/t\nOMAA3OU05t2n0SeWUoJ5yFJ2PcFWTkXnUG173e/ip5zpdL/el7dDRw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIS1c3bEp0R1BLMlB1L204\nM09HeURSbVVWNmpaNVgvcDBxWDhyRGpsc0YwCll1UmRvdHpYSGVDSHBpSUpEN3VU\nbUlQR0w0YkZxNCt0Mk4zaG5ibjRwenMKLS0tIE96cXQrZGhCMzEyOVBLZjMwT2xW\nd2RKMWJqWURPbmwwUnpYY0x6RDVNZ0UKSb18GsEhmsHM5OTPnd41C4MIBWO9X7BC\nOWMxa/OBFcnmGxD9+/ULklCaIIAklLfYhuZ6VjmjJtPHLcUFrZ+sBw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1NzZpYk9RMithS0xieWZ1\nVGo0VURsOWQ3VTJjK1V3amtVR3dCQ2twZjF3Cm5IbkliWmp5dXpFSUl1YURJelZD\nb0ZDaExNc3NNQUFpK2p0UUZCdHhMNjgKLS0tIHRRck13c2crMXF1TnFha2NpMHBD\nVlovMGxyMmx4TWVYdUF3NHhQRTVNa3cKE/patQW9NnZ6LnbGT21gs6F9ggCCbveI\nff0kfaLVFaG073PGSRlS/6pI6kY10E8VWWUTjsA1tBZM3vLsZ0fq7A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMYzdVekdobTdkUmQ5R090\nZE5mUVliRTFZOEJUZFg0MU1YTUkxNXpPbkRRCkNUeXM4QWtudG5XK0VEMDBxZzAz\nUlU2aXp4UUF0Y3J0QTJYUVplclg0ZVkKLS0tIHJsMXBGTFZmdUpFakFLOVZxblA0\nSFkzL2hERmkxTStYZjRsY1oxcjBuc1UKrnliWi/B3ilvTBdZC7kBUSUxbwmeZfin\nGSwhZT/5dEaE7yekUu/66GqfClsV2NZ7t8g16PnNAavUzBYQcfL2oA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYajZNZkxacjY5L2Q4KzBu\nS25iZ082a1FSSVpwODR5S2I1U09CTE5wWEVFCjAxOEZ4STAzcDZILzBxeWVYK090\nNTBQUlpSMmlhSDhRNkUxaWFLb1p3SlkKLS0tIE1MYXVuaEhDd1ROdGdlbUZKckZv\nRWFLRWNGUWZ2TVg1Qi9hZCttSlc4TlUKR5vNkVuEqf4sBxCPFdse4XInlB8xqA0z\n3szMwE8r8fIzKg8j8chh3yb3H2aHel2WJanF7+omB8H19Fvq1+3NcQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHbU15MytNY05OcjJZanhl\nZk9kNjNOeE1Za2JyNzJCclIyMWNHRGVkczBrClkxVERHVit6Smhvdnh0RHFQQ2JE\nNWF1YmZzSGljbUtBbExkV1JSWGdoMTQKLS0tIDZORGlLZzF0Yk1MQllyUmRvQ2Rk\nT0E2K3UvdSsvYVFuQysrdGFMU3lLZGcKkG1ghacfvcuFiYuR9Ir1YsdJE/Ufq/OW\nHlYgXa20CP5VDRN3n2qqUpqCOOm7e7HGB3w4oCYRFQezDxgi+kpl6Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSWTRCcGowV1c2blhrZjRP\nczBBaldMemM0SGI4dzRiVWdMbEkxM0VXRlhzCkNpaVFqSnZJbU5RWkIweGo0WU9L\neW5WTzN1T1djR1Z5WlVDdmZteVJ0SmcKLS0tIHZ4WUxhdzJXQzFYTG5ET1dCUi9m\nOW5IbWpESUd6K1ZZNHh1M20rNWxTTEUKTjqTQD+SCcfLdj8J9PFMgNfUkqScy3DN\ncSYOwbpH2ObVhvvmgLqjR+RQdLkpb2itf4cufKspSi5d6uA2AQfwtw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2cnNuTGRmMDZVWDR6TTNu\nZm1wbmlvZng3OEVQcSsrVEMwOHJnU3dOc2lZCmQ0dVZSc09LdGVNOXNxdS9Uazkv\nYTNORkt4YkJMNVlrQVpzQ1lrYXZnclEKLS0tIE9oMjZ5NCtxL3JVbHhLSi9XdWZG\nMzJudm01SU5jVlZtMHpKb0srY25hYTgKqmAMHejcPI8uJQ8JzeCKfiioSJJ1cwFq\nDZC0scbcazUJDiJw3ZFluYTAr7Q9eqFvcQmEHQSYFiLg8NcMIo38og==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_lastmodified=2026-04-06T10:33:40Z -sops_mac=ENC[AES256_GCM,data:oZ7HHxAKttSyIEhkQ1pWPUwKD95EXNYUXKaO90T1ye4AWRpFPcBIfOkCk0eyOJyD1iPpj7MgzTcNcyCC14Q4G2ZnNQE/Gy4ma4UQSCcGqG85AqYWJ81Blj4thzWxZLpE1ZDqGNJilI0zQeMu2fH39rrFrBqt5b81X6TKYMCjvEc=,iv:sBkqMnLIEHmg8Bxv/wO109qKItTO+zFfGvHAhwwLoqI=,tag:5t82yBl7V6ITFVoh3imWoA==,type:str] +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxVjNqMmE0SGJ2UlZEN2Fl\nRWVCZlhmV1JSZTN1T0dFT016bEJBNzVTOEZzCkdsc3E1SG9VWEJCQUNLZzVsVkJi\nU25mRlZkcTN2OU1uQzVLN3M3d1FqT1EKLS0tIDVCeHJ3QW41RW1NdUdUc0J2ZmR0\nNzZVdG9tWURGRmZ6RUc0UDFJWXV2SUkK2kQ+pTHulS1oFtYhTOjxtYoTNgLxzdEF\nfhKRnVOiTxzxelKp+qi28k0ELL4FjW1SzaqlO5GXfcpYVfFnP+rymg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 +sops_lastmodified=2026-04-13T14:32:24Z +sops_mac=ENC[AES256_GCM,data:eY7D1NUVIqFAUs5zN+FiR4CpWN0+pC/VHH4dDF9GoVo2rzSujLWAdkp1lgUMx8tjg7fk/u8vUnlkUUgMrQ153RZvp62PyM2qFTBLCpuvDhzgt55wGkaDEnYSq2gbxMorK+J0r2VKHWfI1FvqmrvZicptjce+0ZTkwAINgvM5sPI=,iv:aFTeReA4AYm0Oq+vOvFHrfz1zvMsDbwqu9+Gw3iIxNg=,tag:73Ks+cbvGkaySZuRMa9teg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.sops.yaml b/infra/.sops.yaml index 40eddb2aa2..155163bdb1 100644 --- a/infra/.sops.yaml +++ b/infra/.sops.yaml @@ -15,3 +15,4 @@ creation_rules: - age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx - age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy - age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s + - age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 From dcc65ebb34bb1e7fcd95f474ef1c4889f5808bae Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Mon, 13 Apr 2026 16:58:53 +0200 Subject: [PATCH 064/153] fix: remove minio from prod --- infra/stack.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/infra/stack.yml b/infra/stack.yml index faf65a671a..8b4634c7a1 100644 --- a/infra/stack.yml +++ b/infra/stack.yml @@ -28,7 +28,6 @@ services: HOSTNAME: '0.0.0.0' NODE_ENV: production PORT: '3000' - PUBPUB_URL: ${PUBPUB_URL} SITE_BUILDER_ENDPOINT: http://site-builder:4000 networks: [appnet] healthcheck: @@ -120,14 +119,6 @@ services: restart_policy: condition: any - inbucket: - image: inbucket/inbucket:latest - networks: [appnet] - deploy: - replicas: 1 - restart_policy: - condition: any - networks: appnet: driver: overlay @@ -137,6 +128,5 @@ networks: volumes: pgdata: - minio_data: caddy_data: caddy_config: From 1688d346cf4b05e953a86dd26475044cf66ae6ce Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 13:20:18 +0200 Subject: [PATCH 065/153] fix: remove mention of custom caddy --- Dockerfile.caddy | 9 - infra/Caddyfile | 33 +- pnpm-lock.yaml | 1808 +--------------------------------- self-host/caddy/Caddyfile | 32 +- self-host/docker-compose.yml | 14 +- 5 files changed, 48 insertions(+), 1848 deletions(-) delete mode 100644 Dockerfile.caddy diff --git a/Dockerfile.caddy b/Dockerfile.caddy deleted file mode 100644 index 388120b5ce..0000000000 --- a/Dockerfile.caddy +++ /dev/null @@ -1,9 +0,0 @@ -FROM caddy:builder-alpine AS builder - -RUN xcaddy build --with github.com/sagikazarmark/caddy-fs-s3 - -FROM caddy:alpine - -COPY --from=builder /usr/bin/caddy /usr/bin/caddy - -CMD ["caddy", "run", "--config", "/etc/caddy/Caddyfile"] \ No newline at end of file diff --git a/infra/Caddyfile b/infra/Caddyfile index 47ffda4e3b..79ee27011f 100644 --- a/infra/Caddyfile +++ b/infra/Caddyfile @@ -6,27 +6,28 @@ {$PUBPUB_HOSTNAME} { encode gzip - handle_path /assets* { - reverse_proxy minio:9000 - } - - handle_path /assets-ui* { - reverse_proxy minio:9001 - } - handle_path /site-builder* { reverse_proxy site-builder:4000 } handle_path /sites/* { - root * /sites - file_server { - fs s3 { - bucket {$S3_BUCKET_NAME:assets} - region {$S3_REGION:us-east-1} - endpoint {$S3_ENDPOINT:http://minio:9000} - access_key {$S3_ACCESS_KEY} - secret_key {$S3_SECRET_KEY} + @pathWithSlash path_regexp dir (.+)/$ + handle @pathWithSlash { + redir {re.dir.1} permanent + } + + rewrite * /assets{uri} + + reverse_proxy host.docker.internal:{minio_port} { + @error status 403 404 + handle_response @error { + rewrite * {uri}/index.html + reverse_proxy host.docker.internal:{minio_port} { + @nestedError status 404 + handle_response @nestedError { + respond "Not found" 404 + } + } } } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9dbac2a503..deba9ad6e1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1590,112 +1590,6 @@ importers: specifier: 'catalog:' version: 5.9.2 - site-builder: - dependencies: - '@astrojs/react': - specifier: ^4.2.4 - version: 4.3.0(@types/node@22.17.2)(@types/react-dom@19.1.7(@types/react@19.1.10))(@types/react@19.1.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - '@aws-sdk/client-s3': - specifier: ^3.525.0 - version: 3.864.0 - '@aws-sdk/lib-storage': - specifier: ^3.787.0 - version: 3.864.0(@aws-sdk/client-s3@3.864.0) - '@hono/node-server': - specifier: ^1.14.1 - version: 1.19.1(hono@4.9.7) - '@hono/zod-validator': - specifier: ^0.4.3 - version: 0.4.3(hono@4.9.7)(zod@3.25.76) - '@pubpub/tailwind': - specifier: workspace:* - version: link:../config/tailwind - '@t3-oss/env-core': - specifier: ^0.12.0 - version: 0.12.0(typescript@5.9.2)(zod@3.25.76) - '@tailwindcss/typography': - specifier: ^0.5.16 - version: 0.5.16(tailwindcss@4.1.17) - '@tailwindcss/vite': - specifier: ^4.1.17 - version: 4.1.17(vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) - '@ts-rest/core': - specifier: 'catalog:' - version: 3.51.0(@types/node@22.17.2)(zod@3.25.76) - '@ts-rest/serverless': - specifier: ^3.52.1 - version: 3.52.1(@ts-rest/core@3.51.0(@types/node@22.17.2)(zod@3.25.76))(@types/aws-lambda@8.10.145)(zod@3.25.76) - archiver: - specifier: ^6.0.2 - version: 6.0.2 - astro: - specifier: ^5.7.3 - version: 5.13.5(@types/node@22.17.2)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.46.4)(terser@5.43.1)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1) - astro-pdf: - specifier: ^1.6.0 - version: 1.7.2(astro@5.13.5(@types/node@22.17.2)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.46.4)(terser@5.43.1)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2) - contracts: - specifier: 'workspace:' - version: link:../packages/contracts - dotenv: - specifier: ^16.4.5 - version: 16.6.1 - hono: - specifier: ^4.9.7 - version: 4.9.7 - mime-types: - specifier: ^2.1.35 - version: 2.1.35 - react: - specifier: catalog:react19 - version: 19.2.3 - react-dom: - specifier: catalog:react19 - version: 19.2.3(react@19.2.3) - tailwindcss: - specifier: 'catalog:' - version: 4.1.17 - tailwindcss-animate: - specifier: ^1.0.6 - version: 1.0.7(tailwindcss@4.1.17) - tsconfig: - specifier: workspace:* - version: link:../config/tsconfig - tsx: - specifier: ^4.19.3 - version: 4.20.5 - ui: - specifier: 'workspace:' - version: link:../packages/ui - utils: - specifier: 'workspace:' - version: link:../packages/utils - zod: - specifier: 'catalog:' - version: 3.25.76 - devDependencies: - '@astrojs/check': - specifier: ^0.9.4 - version: 0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2) - '@types/archiver': - specifier: ^6.0.2 - version: 6.0.3 - '@types/mime-types': - specifier: ^2.1.4 - version: 2.1.4 - '@types/node': - specifier: '22' - version: 22.17.2 - '@types/react': - specifier: catalog:react19 - version: 19.1.10 - '@types/react-dom': - specifier: catalog:react19 - version: 19.1.7(@types/react@19.1.10) - dotenv-cli: - specifier: ^5.0.1 - version: 5.1.0 - site-builder-2: dependencies: '@aws-sdk/client-s3': @@ -1801,53 +1695,6 @@ packages: '@asamuzakjp/css-color@3.2.0': resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} - '@astrojs/check@0.9.4': - resolution: {integrity: sha512-IOheHwCtpUfvogHHsvu0AbeRZEnjJg3MopdLddkJE70mULItS/Vh37BHcI00mcOJcH1vhD3odbpvWokpxam7xA==} - hasBin: true - peerDependencies: - typescript: ^5.0.0 - - '@astrojs/compiler@2.12.2': - resolution: {integrity: sha512-w2zfvhjNCkNMmMMOn5b0J8+OmUaBL1o40ipMvqcG6NRpdC+lKxmTi48DT8Xw0SzJ3AfmeFLB45zXZXtmbsjcgw==} - - '@astrojs/internal-helpers@0.7.2': - resolution: {integrity: sha512-KCkCqR3Goym79soqEtbtLzJfqhTWMyVaizUi35FLzgGSzBotSw8DB1qwsu7U96ihOJgYhDk2nVPz+3LnXPeX6g==} - - '@astrojs/language-server@2.15.4': - resolution: {integrity: sha512-JivzASqTPR2bao9BWsSc/woPHH7OGSGc9aMxXL4U6egVTqBycB3ZHdBJPuOCVtcGLrzdWTosAqVPz1BVoxE0+A==} - hasBin: true - peerDependencies: - prettier: ^3.0.0 - prettier-plugin-astro: '>=0.11.0' - peerDependenciesMeta: - prettier: - optional: true - prettier-plugin-astro: - optional: true - - '@astrojs/markdown-remark@6.3.6': - resolution: {integrity: sha512-bwylYktCTsLMVoCOEHbn2GSUA3c5KT/qilekBKA3CBng0bo1TYjNZPr761vxumRk9kJGqTOtU+fgCAp5Vwokug==} - - '@astrojs/prism@3.3.0': - resolution: {integrity: sha512-q8VwfU/fDZNoDOf+r7jUnMC2//H2l0TuQ6FkGJL8vD8nw/q5KiL3DS1KKBI3QhI9UQhpJ5dc7AtqfbXWuOgLCQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - - '@astrojs/react@4.3.0': - resolution: {integrity: sha512-N02aj52Iezn69qHyx5+XvPqgsPMEnel9mI5JMbGiRMTzzLMuNaxRVoQTaq2024Dpr7BLsxCjqMkNvelqMDhaHA==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - peerDependencies: - '@types/react': ^17.0.50 || ^18.0.21 || ^19.0.0 - '@types/react-dom': ^17.0.17 || ^18.0.6 || ^19.0.0 - react: ^17.0.2 || ^18.0.0 || ^19.0.0 - react-dom: ^17.0.2 || ^18.0.0 || ^19.0.0 - - '@astrojs/telemetry@3.3.0': - resolution: {integrity: sha512-UFBgfeldP06qu6khs/yY+q1cDAaArM2/7AEIqQ9Cuvf7B1hNLq0xDrZkct+QoIGyjq56y8IaE2I3CTvG99mlhQ==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0} - - '@astrojs/yaml2ts@0.2.2': - resolution: {integrity: sha512-GOfvSr5Nqy2z5XiwqTouBBpy5FyI6DEe+/g/Mk5am9SjILN1S5fOEvYK0GuWHg98yS/dobP4m8qyqw/URW35fQ==} - '@aws-crypto/crc32@5.2.0': resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} engines: {node: '>=16.0.0'} @@ -2739,9 +2586,6 @@ packages: '@bundled-es-modules/tough-cookie@0.1.6': resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} - '@capsizecss/unpack@2.4.0': - resolution: {integrity: sha512-GrSU71meACqcmIUxPYOJvGKF0yryjN/L1aCuE9DViCTJI7bfkjgYDPD1zbNDcINJwSSP6UaBZY9GAbYDO7re0Q==} - '@chevrotain/cst-dts-gen@11.0.3': resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} @@ -2910,27 +2754,6 @@ packages: '@electric-sql/pglite@0.3.7': resolution: {integrity: sha512-5c3mybVrhxu5s47zFZtIGdG8YHkKCBENOmqxnNBjY53ZoDhADY/c5UqBDl159b7qtkzNPtbbb893wL9zi1kAuw==} - '@emmetio/abbreviation@2.3.3': - resolution: {integrity: sha512-mgv58UrU3rh4YgbE/TzgLQwJ3pFsHHhCLqY20aJq+9comytTXUDNGG/SMtSeMJdkpxgXSXunBGLD8Boka3JyVA==} - - '@emmetio/css-abbreviation@2.1.8': - resolution: {integrity: sha512-s9yjhJ6saOO/uk1V74eifykk2CBYi01STTK3WlXWGOepyKa23ymJ053+DNQjpFcy1ingpaO7AxCcwLvHFY9tuw==} - - '@emmetio/css-parser@0.4.0': - resolution: {integrity: sha512-z7wkxRSZgrQHXVzObGkXG+Vmj3uRlpM11oCZ9pbaz0nFejvCDmAiNDpY75+wgXOcffKpj4rzGtwGaZxfJKsJxw==} - - '@emmetio/html-matcher@1.3.0': - resolution: {integrity: sha512-NTbsvppE5eVyBMuyGfVu2CRrLvo7J4YHb6t9sBFLyY03WYhXET37qA4zOYUjBWFCRHO7pS1B9khERtY0f5JXPQ==} - - '@emmetio/scanner@1.0.4': - resolution: {integrity: sha512-IqRuJtQff7YHHBk4G8YZ45uB9BaAGcwQeVzgj/zj8/UdOhtQpEIupUhSk8dys6spFIWVZVeK20CzGEnqR5SbqA==} - - '@emmetio/stream-reader-utils@0.1.0': - resolution: {integrity: sha512-ZsZ2I9Vzso3Ho/pjZFsmmZ++FWeEd/txqybHTm4OgaZzdS8V9V/YYWQwg5TC38Z7uLWUV1vavpLLbjJtKubR1A==} - - '@emmetio/stream-reader@2.2.0': - resolution: {integrity: sha512-fXVXEyFA5Yv3M3n8sUGT7+fvecGrZP4k6FnWWMSZVQf69kAq0LLpaBQLGcPR30m3zMmKYhECP4k/ZkzvhEW5kw==} - '@emnapi/core@0.45.0': resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==} @@ -3399,65 +3222,33 @@ packages: peerDependencies: react: ^16.13 || ^17 || ^18 || ^19 - '@img/sharp-darwin-arm64@0.33.5': - resolution: {integrity: sha512-UT4p+iz/2H4twwAoLCqfA9UH5pI6DggwKEGuaPy7nCVQ8ZsiY5PIcrRvD1DzuY3qYL07NtIQcWnBSY/heikIFQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [darwin] - '@img/sharp-darwin-arm64@0.34.3': resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] - '@img/sharp-darwin-x64@0.33.5': - resolution: {integrity: sha512-fyHac4jIc1ANYGRDxtiqelIbdWkIuQaI84Mv45KvGRRxSAa7o7d1ZKAOBaYbnepLC1WqxfpimdeWfvqqSGwR2Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [darwin] - '@img/sharp-darwin-x64@0.34.3': resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.0.4': - resolution: {integrity: sha512-XblONe153h0O2zuFfTAbQYAX2JhYmDHeWikp1LM9Hul9gVPjFY427k6dFEcOL72O01QxQsWi761svJ/ev9xEDg==} - cpu: [arm64] - os: [darwin] - '@img/sharp-libvips-darwin-arm64@1.2.0': resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} cpu: [arm64] os: [darwin] - '@img/sharp-libvips-darwin-x64@1.0.4': - resolution: {integrity: sha512-xnGR8YuZYfJGmWPvmlunFaWJsb9T/AO2ykoP3Fz/0X5XV2aoYBPkX6xqCQvUTKKiLddarLaxpzNe+b1hjeWHAQ==} - cpu: [x64] - os: [darwin] - '@img/sharp-libvips-darwin-x64@1.2.0': resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} cpu: [x64] os: [darwin] - '@img/sharp-libvips-linux-arm64@1.0.4': - resolution: {integrity: sha512-9B+taZ8DlyyqzZQnoeIvDVR/2F4EbMepXMc/NdVbkzsJbzkUjhXv/70GQJ7tdLA4YJgNP25zukcxpX2/SueNrA==} - cpu: [arm64] - os: [linux] - '@img/sharp-libvips-linux-arm64@1.2.0': resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linux-arm@1.0.5': - resolution: {integrity: sha512-gvcC4ACAOPRNATg/ov8/MnbxFDJqf/pDePbBnuBDcjsI8PssmjoKMAz4LtLaVi+OnSb5FK/yIOamqDwGmXW32g==} - cpu: [arm] - os: [linux] - '@img/sharp-libvips-linux-arm@1.2.0': resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} cpu: [arm] @@ -3468,64 +3259,32 @@ packages: cpu: [ppc64] os: [linux] - '@img/sharp-libvips-linux-s390x@1.0.4': - resolution: {integrity: sha512-u7Wz6ntiSSgGSGcjZ55im6uvTrOxSIS8/dgoVMoiGE9I6JAfU50yH5BoDlYA1tcuGS7g/QNtetJnxA6QEsCVTA==} - cpu: [s390x] - os: [linux] - '@img/sharp-libvips-linux-s390x@1.2.0': resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} cpu: [s390x] os: [linux] - '@img/sharp-libvips-linux-x64@1.0.4': - resolution: {integrity: sha512-MmWmQ3iPFZr0Iev+BAgVMb3ZyC4KeFc3jFxnNbEPas60e1cIfevbtuyf9nDGIzOaW9PdnDciJm+wFFaTlj5xYw==} - cpu: [x64] - os: [linux] - '@img/sharp-libvips-linux-x64@1.2.0': resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} cpu: [x64] os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - resolution: {integrity: sha512-9Ti+BbTYDcsbp4wfYib8Ctm1ilkugkA/uscUn6UXK1ldpC1JjiXbLfFZtRlBhjPZ5o1NCLiDbg8fhUPKStHoTA==} - cpu: [arm64] - os: [linux] - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} cpu: [arm64] os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - resolution: {integrity: sha512-viYN1KX9m+/hGkJtvYYp+CCLgnJXwiQB39damAO7WMdKWlIhmYTfHjwSbQeUK/20vY154mwezd9HflVFM1wVSw==} - cpu: [x64] - os: [linux] - '@img/sharp-libvips-linuxmusl-x64@1.2.0': resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} cpu: [x64] os: [linux] - '@img/sharp-linux-arm64@0.33.5': - resolution: {integrity: sha512-JMVv+AMRyGOHtO1RFBiJy/MBsgz0x4AWrT6QoEVVTyh1E39TrCUpTRI7mx9VksGX4awWASxqCYLCV4wBZHAYxA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - '@img/sharp-linux-arm64@0.34.3': resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linux-arm@0.33.5': - resolution: {integrity: sha512-JTS1eldqZbJxjvKaAkxhZmBqPRGmxgu+qFKSInv8moZ2AmT5Yib3EQ1c6gp493HvrvV8QgdOXdyaIBrhvFhBMQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm] - os: [linux] - '@img/sharp-linux-arm@0.34.3': resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3538,59 +3297,30 @@ packages: cpu: [ppc64] os: [linux] - '@img/sharp-linux-s390x@0.33.5': - resolution: {integrity: sha512-y/5PCd+mP4CA/sPDKl2961b+C9d+vPAveS33s6Z3zfASk2j5upL6fXVPZi7ztePZ5CuH+1kW8JtvxgbuXHRa4Q==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [s390x] - os: [linux] - '@img/sharp-linux-s390x@0.34.3': resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] - '@img/sharp-linux-x64@0.33.5': - resolution: {integrity: sha512-opC+Ok5pRNAzuvq1AG0ar+1owsu842/Ab+4qvU879ippJBHvyY5n2mxF1izXqkPYlGuP/M556uh53jRLJmzTWA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - '@img/sharp-linux-x64@0.34.3': resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-linuxmusl-arm64@0.33.5': - resolution: {integrity: sha512-XrHMZwGQGvJg2V/oRSUfSAfjfPxO+4DkiRh6p2AFjLQztWUuY/o8Mq0eMQVIY7HJ1CDQUJlxGGZRw1a5bqmd1g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [arm64] - os: [linux] - '@img/sharp-linuxmusl-arm64@0.34.3': resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] - '@img/sharp-linuxmusl-x64@0.33.5': - resolution: {integrity: sha512-WT+d/cgqKkkKySYmqoZ8y3pxx7lx9vVejxW/W4DOFMYVSkErR+w7mf2u8m/y4+xHe7yY9DAXQMWQhpnMuFfScw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [linux] - '@img/sharp-linuxmusl-x64@0.34.3': resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] - '@img/sharp-wasm32@0.33.5': - resolution: {integrity: sha512-ykUW4LVGaMcU9lu9thv85CbRMAwfeadCJHRsg2GmeRa/cJxsVY9Rbd57JcMxBkKHag5U/x7TSBpScF4U8ElVzg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [wasm32] - '@img/sharp-wasm32@0.34.3': resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -3602,24 +3332,12 @@ packages: cpu: [arm64] os: [win32] - '@img/sharp-win32-ia32@0.33.5': - resolution: {integrity: sha512-T36PblLaTwuVJ/zw/LaH0PdZkRz5rd3SmMHX8GSmR7vtNSP5Z6bQkExdSK7xGWyxLw4sUknBuugTelgw2faBbQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [ia32] - os: [win32] - '@img/sharp-win32-ia32@0.34.3': resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] - '@img/sharp-win32-x64@0.33.5': - resolution: {integrity: sha512-MpY/o8/8kj+EcnxwvrP4aTJSWw/aZ7JIGR4aBeZkZw5B7/Jn+tY9/VNwtcoGmdT7GfggGIU4kygOMSbYnOrAbg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - cpu: [x64] - os: [win32] - '@img/sharp-win32-x64@0.34.3': resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -5263,16 +4981,6 @@ packages: '@protobufjs/utf8@1.1.0': resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} - '@puppeteer/browsers@2.10.8': - resolution: {integrity: sha512-f02QYEnBDE0p8cteNoPYHHjbDuwyfbe4cCIVlNi8/MRicIxFW4w4CfgU0LNgWEID6s06P+hRJ1qjpBLMhPRCiQ==} - engines: {node: '>=18'} - hasBin: true - - '@puppeteer/browsers@2.6.1': - resolution: {integrity: sha512-aBSREisdsGH890S2rQqK82qmQYU3uFpSH8wcZWHgHzl3LfzsxAKbLNiAG9mO8v1Y0UICBeClICxPJvyr0rcuxg==} - engines: {node: '>=18'} - hasBin: true - '@radix-ui/number@1.1.1': resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} @@ -7024,11 +6732,6 @@ packages: peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' - '@tailwindcss/vite@4.1.17': - resolution: {integrity: sha512-4+9w8ZHOiGnpcGI6z1TVVfWaX/koK7fKeSYF3qlYg2xpBtbteP2ddBxiarL+HVgfSJGeK5RIxRQmKm4rTJJAwA==} - peerDependencies: - vite: ^5.2.0 || ^6 || ^7 - '@tanstack/query-core@5.85.5': resolution: {integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==} @@ -7377,9 +7080,6 @@ packages: '@types/estree@1.0.8': resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} - '@types/fontkit@2.0.8': - resolution: {integrity: sha512-wN+8bYxIpJf+5oZdrdtaX04qUuWHcKxcDEgRS9Qm9ZClSHjzEn13SxUC+5eRM+4yXIeTYk8mTzLAWGF64847ew==} - '@types/geojson@7946.0.16': resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} @@ -7570,9 +7270,6 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@types/yauzl@2.10.3': - resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260119.1': resolution: {integrity: sha512-siuRD9Shh5gVrgYG5HEWxFxG/dkZa4ndupGWKMfM4DwMG7zLeFayi6sB9yiwpD0d203ts01D7uTnTCALdiWXmQ==} cpu: [arm64] @@ -7906,32 +7603,6 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} - '@volar/kit@2.4.23': - resolution: {integrity: sha512-YuUIzo9zwC2IkN7FStIcVl1YS9w5vkSFEZfPvnu0IbIMaR9WHhc9ZxvlT+91vrcSoRY469H2jwbrGqpG7m1KaQ==} - peerDependencies: - typescript: '*' - - '@volar/language-core@2.4.23': - resolution: {integrity: sha512-hEEd5ET/oSmBC6pi1j6NaNYRWoAiDhINbT8rmwtINugR39loROSlufGdYMF9TaKGfz+ViGs1Idi3mAhnuPcoGQ==} - - '@volar/language-server@2.4.23': - resolution: {integrity: sha512-k0iO+tybMGMMyrNdWOxgFkP0XJTdbH0w+WZlM54RzJU3WZSjHEupwL30klpM7ep4FO6qyQa03h+VcGHD4Q8gEg==} - - '@volar/language-service@2.4.23': - resolution: {integrity: sha512-h5mU9DZ/6u3LCB9xomJtorNG6awBNnk9VuCioGsp6UtFiM8amvS5FcsaC3dabdL9zO0z+Gq9vIEMb/5u9K6jGQ==} - - '@volar/source-map@2.4.23': - resolution: {integrity: sha512-Z1Uc8IB57Lm6k7q6KIDu/p+JWtf3xsXJqAX/5r18hYOTpJyBn0KXUR8oTJ4WFYOcDzWC9n3IflGgHowx6U6z9Q==} - - '@volar/typescript@2.4.23': - resolution: {integrity: sha512-lAB5zJghWxVPqfcStmAP1ZqQacMpe90UrP5RJ3arDyrhy4aCUQqmxPPLB2PWDKugvylmO41ljK7vZ+t6INMTag==} - - '@vscode/emmet-helper@2.11.0': - resolution: {integrity: sha512-QLxjQR3imPZPQltfbWRnHU6JecWTF1QSWhx3GAKQpslx7y3Dp6sIIXhKjiUJ/BR9FX8PVthjr9PD6pNwOJfAzw==} - - '@vscode/l10n@0.0.18': - resolution: {integrity: sha512-KYSIHVmslkaCDyw013pphY+d7x1qV8IZupYfeIfzNA+nsaWHbn5uPuQRvdRFsa9zFzGeudPuoGoZ1Op4jrJXIQ==} - '@webassemblyjs/ast@1.14.1': resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} @@ -8180,17 +7851,6 @@ packages: resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true - astro-pdf@1.7.2: - resolution: {integrity: sha512-uhoqXm58jcHwCRbmkEgtXnISygEjJHOrp77lFFkgW68R9RPt0SlxFZxB9mA2gpJ3RsitrEL3/iinJuB7ZJ9m1A==} - engines: {node: '>=18.0.0'} - peerDependencies: - astro: ^4.4.4 || ^5.0.0 - - astro@5.13.5: - resolution: {integrity: sha512-XmBzkl13XU97+n/QiOM5uXQdAVe0yKt5gO+Wlgc8dHRwHR499qhMQ5sMFckLJweUINLzcNGjP3F5nG4wV8a2XA==} - engines: {node: 18.20.8 || ^20.3.0 || >=22.0.0, npm: '>=9.6.5', pnpm: '>=7.1.0'} - hasBin: true - async-function@1.0.0: resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} engines: {node: '>= 0.4'} @@ -8223,10 +7883,6 @@ packages: axios@1.11.0: resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} - axobject-query@4.1.0: - resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} - engines: {node: '>= 0.4'} - b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} @@ -8258,36 +7914,6 @@ packages: bare-events@2.6.1: resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} - bare-fs@4.2.2: - resolution: {integrity: sha512-5vn+bdnlCYMwETIm1FqQXDP6TYPbxr2uJd88ve40kr4oPbiTZJVrTNzqA3/4sfWZeWKuQR/RkboBt7qEEDtfMA==} - engines: {bare: '>=1.16.0'} - peerDependencies: - bare-buffer: '*' - peerDependenciesMeta: - bare-buffer: - optional: true - - bare-os@3.6.2: - resolution: {integrity: sha512-T+V1+1srU2qYNBmJCXZkUY5vQ0B4FSlL3QDROnKQYOqeiQR8UbjNHlPa+TIbM4cuidiN9GaTaOZgSEgsvPbh5A==} - engines: {bare: '>=1.14.0'} - - bare-path@3.0.0: - resolution: {integrity: sha512-tyfW2cQcB5NN8Saijrhqn0Zh7AnFNsnczRcuWODH0eYAXBsJ5gVxAUuNr7tsHSC6IZ77cA0SitzT+s47kot8Mw==} - - bare-stream@2.7.0: - resolution: {integrity: sha512-oyXQNicV1y8nc2aKffH+BUHFRXmx6VrPzlnaEvMhram0nPBrKcEdcyBg5r08D0i8VxngHFAiVyn1QKXpSG0B8A==} - peerDependencies: - bare-buffer: '*' - bare-events: '*' - peerDependenciesMeta: - bare-buffer: - optional: true - bare-events: - optional: true - - base-64@1.0.0: - resolution: {integrity: sha512-kwDPIFCGx0NZHog36dj+tHiwP4QMzsZ3AgMViUBKI0+V5n4U0ufTCUMhnQ04diaRI8EX/QcPfql7zlhZ7j4zgg==} - base16@1.0.0: resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} @@ -8321,9 +7947,6 @@ packages: bl@4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} - blob-to-buffer@1.2.9: - resolution: {integrity: sha512-BF033y5fN6OCofD3vgHmNtwZWRcq9NLyyxyILx9hfMy1sXYy4ojFl765hJ2lP0YaN2fuxPaLO2Vzzoxy0FLFFA==} - bowser@2.12.0: resolution: {integrity: sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==} @@ -8331,10 +7954,6 @@ packages: resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} engines: {node: '>=14.16'} - boxen@8.0.1: - resolution: {integrity: sha512-F3PH5k5juxom4xktynS7MoFY+NUWH5LC4CnH11YB8NPew+HLpmBLCybSAEyb2F+4pRXhuhWqFesoQd6DAyc2hw==} - engines: {node: '>=18'} - brace-expansion@1.1.12: resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} @@ -8345,9 +7964,6 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - brotli@1.3.3: - resolution: {integrity: sha512-oTKjJdShmDuGW94SyyaoQvAjf30dZaHnjJ8uAF+u2/vGJkJbJPJAT1gDiOJP5v1Zb6f9KEyW/1HpuaWIXtGHPg==} - browserslist@4.25.3: resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -8406,10 +8022,6 @@ packages: resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} engines: {node: '>=14.16'} - camelcase@8.0.0: - resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} - engines: {node: '>=16'} - caniuse-lite@1.0.30001735: resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==} @@ -8519,11 +8131,6 @@ packages: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} engines: {node: '>=6.0'} - chromium-bidi@0.11.0: - resolution: {integrity: sha512-6CJWHkNRoyZyjV9Rwv2lYONZf1Xm0IuDyNq97nwSsxxP3wf5Bwy15K5rOvVKMtJ127jJBmxFUanSAOjgFRxgrA==} - peerDependencies: - devtools-protocol: '*' - ci-info@3.8.0: resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} engines: {node: '>=8'} @@ -8532,10 +8139,6 @@ packages: resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} engines: {node: '>=8'} - ci-info@4.3.0: - resolution: {integrity: sha512-l+2bNRMiQgcfILUi33labAZYIWlH1kWDp+ecNo5iisRKrbm0xcRyCww71/YU0Fkw0mAFpz9bJayXPjey6vkmaQ==} - engines: {node: '>=8'} - cjs-module-lexer@1.4.3: resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} @@ -8607,10 +8210,6 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - clone@2.1.2: - resolution: {integrity: sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==} - engines: {node: '>=0.8'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} @@ -8694,9 +8293,6 @@ packages: resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} engines: {node: '>= 12'} - common-ancestor-path@1.0.1: - resolution: {integrity: sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w==} - commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} @@ -8750,17 +8346,10 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - cookie-es@1.2.2: - resolution: {integrity: sha512-+W7VmiVINB+ywl1HGXJXmrqkOhpKrIiVZV6tQuV54ZyQC7MMuBt81Vc336GMLoHBq5hV/F9eXgt5Mnx0Rha5Fg==} - cookie@0.7.2: resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} engines: {node: '>= 0.6'} - cookie@1.0.2: - resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} - engines: {node: '>=18'} - core-js-compat@3.45.0: resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==} @@ -8793,15 +8382,6 @@ packages: typescript: optional: true - cosmiconfig@9.0.0: - resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} - engines: {node: '>=14'} - peerDependencies: - typescript: '>=4.9.5' - peerDependenciesMeta: - typescript: - optional: true - crc-32@1.2.2: resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} engines: {node: '>=0.8'} @@ -8824,9 +8404,6 @@ packages: cropperjs@1.6.2: resolution: {integrity: sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==} - cross-fetch@3.2.0: - resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} @@ -8835,17 +8412,10 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} - crossws@0.3.5: - resolution: {integrity: sha512-ojKiDvcmByhwa8YYqbQI/hg7MEU0NC03+pSdEq4ZUnZR9xXpwk7E43SMNGkn+JxJGPFtNvQ48+vV2p+P1ml5PA==} - crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} - css-tree@3.1.0: - resolution: {integrity: sha512-0eW44TGN5SQXU1mWSkKwFstI/22X2bG1nYzZTYMAWjylYURhse752YgbE4Cx46AC+bAvI+/dYTPRk1LqSUnu6w==} - engines: {node: ^10 || ^12.20.0 || ^14.13.0 || >=15.0.0} - css.escape@1.5.1: resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} @@ -9137,9 +8707,6 @@ packages: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} - defu@6.1.4: - resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} - degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -9167,9 +8734,6 @@ packages: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - destr@2.0.5: - resolution: {integrity: sha512-ugFTXCtDZunbzasqBxrK93Ik/DRYsO6S/fedkWEMKqt04xZ4csmnmwGDBAb07QWNaGMAmnTIemsYZCksjATwsA==} - detect-indent@6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} engines: {node: '>=8'} @@ -9181,22 +8745,9 @@ packages: detect-node-es@1.1.0: resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} - deterministic-object-hash@2.0.2: - resolution: {integrity: sha512-KxektNH63SrbfUyDiwXqRb1rLwKt33AmMv+5Nhsw1kqZ13SJBRTgZHtGbE+hH3a1mVW1cz+4pqSWVPAtLVXTzQ==} - engines: {node: '>=18'} - - devalue@5.3.2: - resolution: {integrity: sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==} - devlop@1.1.0: resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} - devtools-protocol@0.0.1367902: - resolution: {integrity: sha512-XxtPuC3PGakY6PD7dG66/o8KwJ/LkH2/EKe19Dcw58w53dv4/vSQEkn/SzuyhHE2q4zPgCkxQBxus3VV4ql+Pg==} - - dfa@1.2.0: - resolution: {integrity: sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q==} - diacritics@1.3.0: resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} @@ -9207,17 +8758,10 @@ packages: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - diff@5.2.0: - resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} - engines: {node: '>=0.3.1'} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} - dlv@1.1.3: - resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} - doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} @@ -9271,10 +8815,6 @@ packages: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} - dset@3.1.4: - resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} - engines: {node: '>=4'} - dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} @@ -9288,12 +8828,6 @@ packages: electron-to-chromium@1.5.207: resolution: {integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==} - emmet@2.4.11: - resolution: {integrity: sha512-23QPJB3moh/U9sT4rQzGgeyyGIrcM+GH5uVYg2C6wZIxAIJq7Ng3QLT79tl8FUwDXhyq9SusfknOrofAKqvgyQ==} - - emoji-regex@10.5.0: - resolution: {integrity: sha512-lb49vf1Xzfx080OKA0o6l8DQQpV+6Vg95zyCJX9VB/BqKYlhG7N4wgROUUHRA+ZPUefLnteQOad7z1kT2bV7bg==} - emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -9514,11 +9048,6 @@ packages: engines: {node: '>=16.0.0'} hasBin: true - extract-zip@2.0.1: - resolution: {integrity: sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==} - engines: {node: '>= 10.17.0'} - hasBin: true - fast-copy@3.0.2: resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} @@ -9567,9 +9096,6 @@ packages: fault@2.0.1: resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} - fd-slicer@1.1.0: - resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} - fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} engines: {node: '>=12.0.0'} @@ -9610,10 +9136,6 @@ packages: resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} engines: {node: '>=18'} - flattie@1.1.1: - resolution: {integrity: sha512-9UbaD6XdAL97+k/n+N7JwX46K/M6Zc6KcFYskrYL8wbBV/Uyk0CTAMY0VT+qiK5PM7AIc9aTWYtq65U7T+aCNQ==} - engines: {node: '>=8'} - follow-redirects@1.15.11: resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} engines: {node: '>=4.0'} @@ -9623,12 +9145,6 @@ packages: debug: optional: true - fontace@0.3.0: - resolution: {integrity: sha512-czoqATrcnxgWb/nAkfyIrRp6Q8biYj7nGnL6zfhTcX+JKKpWHFBnb8uNMw/kZr7u++3Y3wYSYoZgHkCcsuBpBg==} - - fontkit@2.0.4: - resolution: {integrity: sha512-syetQadaUEDNdxdugga9CpEYVaQIxOwk7GlwZWWZ19//qW4zE5bknOKeMBDYAASwnpaSHKJITRLMF9m1fp3s6g==} - for-each@0.3.5: resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} engines: {node: '>= 0.4'} @@ -9722,10 +9238,6 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-east-asian-width@1.3.1: - resolution: {integrity: sha512-R1QfovbPsKmosqTnPoRFiJ7CF9MLRgb53ChvMZm+r4p76/+8yKDy17qLL2PKInORy2RkZZekuK0efYgmzTkXyQ==} - engines: {node: '>=18'} - get-intrinsic@1.3.0: resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} engines: {node: '>= 0.4'} @@ -9742,10 +9254,6 @@ packages: resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} engines: {node: '>= 0.4'} - get-stream@5.2.0: - resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} - engines: {node: '>=8'} - get-stream@6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -9874,9 +9382,6 @@ packages: resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} engines: {node: '>=14.0.0'} - h3@1.15.4: - resolution: {integrity: sha512-z5cFQWDffyOe4vQ9xIqNfCZdV4p//vy6fBnr8Q1AWnVZ0teurKMG66rLj++TKwKPUP3u7iMUvrvKaEUiQw2QWQ==} - hachure-fill@0.5.2: resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} @@ -10021,9 +9526,6 @@ packages: html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - html-escaper@3.0.3: - resolution: {integrity: sha512-RuMffC89BOWQoY0WKGpIhn5gX3iI54O6nRA0yC124NYVtzjmFWBIiFd8M0x+ZdX0P9R4lADg1mgP8C7PxGOWuQ==} - html-to-text@9.0.5: resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} engines: {node: '>=14'} @@ -10044,9 +9546,6 @@ packages: htmlparser2@8.0.2: resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} - http-cache-semantics@4.2.0: - resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} - http-proxy-agent@7.0.0: resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} engines: {node: '>= 14'} @@ -10118,9 +9617,6 @@ packages: import-in-the-middle@1.14.2: resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} - import-meta-resolve@4.2.0: - resolution: {integrity: sha512-Iqv2fzaTQN28s/FwZAoFq0ZSs/7hMAHJVX+w8PZl3cY19Pxk6jFFalxQoIfW2826i/fDLXv8IiEZRIT0lDuWcg==} - indent-string@4.0.0: resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} engines: {node: '>=8'} @@ -10181,9 +9677,6 @@ packages: resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} engines: {node: '>= 12'} - iron-webcrypto@1.2.1: - resolution: {integrity: sha512-feOM6FaSr6rEABp/eDfVseKyTMDt+KGpeB35SkVn9Tyn0CqvVsY3EwI0v5i8nMHyJnzCIQf7nsy3p41TPkJZhg==} - is-alphabetical@2.0.1: resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} @@ -10582,12 +10075,6 @@ packages: resolution: {integrity: sha512-OCzaRMK8HobtX8fp37uIVmL8CY1IGc/a6gLsDqz3quExFR09/U78HUzWYr7T31UEB6+Eu0/8dkVD5fFDOl9a8w==} engines: {node: '>= 8'} - jsonc-parser@2.3.1: - resolution: {integrity: sha512-H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==} - - jsonc-parser@3.3.1: - resolution: {integrity: sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==} - jsondiffpatch@0.4.1: resolution: {integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==} engines: {node: '>=8.17.0'} @@ -11088,9 +10575,6 @@ packages: peerDependencies: react: ^18.0 || ^19.0 - mdast-util-definitions@6.0.0: - resolution: {integrity: sha512-scTllyX6pnYNZH/AIp/0ePz6s4cZtARxImwoPJ7kS42n+MnVsI4XbnG6d4ibehRIldYMWM2LD7ImQblVhUejVQ==} - mdast-util-directive@3.1.0: resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} @@ -11148,9 +10632,6 @@ packages: mdast-util-to-string@4.0.0: resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} - mdn-data@2.12.2: - resolution: {integrity: sha512-IEn+pegP1aManZuckezWCO+XZQDplx1366JoVhTpMpBB1sPey/SbveZQUosKiKiGYjg1wH4pMlNgXbCiYgihQA==} - mdurl@2.0.0: resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} @@ -11422,9 +10903,6 @@ packages: mudder@2.1.1: resolution: {integrity: sha512-0/F//kjoRlefsazFcGxa7FAuwRNDoX3ALal7W9uOZgE9QKxKatFM1NKu3tkmxMAFvUXoIHN2b/PlIt5B+hJirQ==} - muggle-string@0.4.1: - resolution: {integrity: sha512-VNTrAak/KhO2i8dqqnqnAHOa3cYBwXEZe9h+D5h/1ZqFSTEFHdM65lR7RoIqq3tBBYavsOXV84NoHXZ0AkPyqQ==} - mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} @@ -11456,10 +10934,6 @@ packages: neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} - neotraverse@0.6.18: - resolution: {integrity: sha512-Z4SmBUweYa09+o6pG+eASabEpP6QkQ70yHj351pQoEXIs8uHbaU2DWVmzBANKgflPa47A50PtB2+NgRpQvr7vA==} - engines: {node: '>= 10'} - netmask@2.0.2: resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} engines: {node: '>= 0.4.0'} @@ -11521,9 +10995,6 @@ packages: no-case@2.3.2: resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} - node-fetch-native@1.6.7: - resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==} - node-fetch@2.6.11: resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} engines: {node: 4.x || >=6.0.0} @@ -11551,9 +11022,6 @@ packages: encoding: optional: true - node-mock-http@1.0.2: - resolution: {integrity: sha512-zWaamgDUdo9SSLw47we78+zYw/bDr5gH8pH7oRRs8V3KmBtu8GLgGIbV2p/gRPd3LWpEOpjQj7X1FOU3VFMJ8g==} - node-plop@0.26.3: resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} engines: {node: '>=8.9.4'} @@ -11657,12 +11125,6 @@ packages: resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} engines: {node: '>=0.10.0'} - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} - - ohash@2.0.11: - resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} - on-exit-leak-free@2.1.2: resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} engines: {node: '>=14.0.0'} @@ -11748,10 +11210,6 @@ packages: resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - p-limit@6.2.0: - resolution: {integrity: sha512-kuUqqHNUqoIWp/c467RI4X6mmyuojY5jGutNU0wVTmEOOfcuwLqyMVoAi9MKi2Ak+5i9+nhmrK4ufZE8069kHA==} - engines: {node: '>=18'} - p-locate@4.1.0: resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} engines: {node: '>=8'} @@ -11818,9 +11276,6 @@ packages: resolution: {integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==} hasBin: true - pako@0.2.9: - resolution: {integrity: sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==} - param-case@2.1.1: resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} @@ -11920,9 +11375,6 @@ packages: peberminta@0.9.0: resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} - pend@1.2.0: - resolution: {integrity: sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==} - pg-cloudflare@1.2.7: resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} @@ -12089,15 +11541,6 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-plugin-astro@0.14.1: - resolution: {integrity: sha512-RiBETaaP9veVstE4vUwSIcdATj6dKmXljouXc/DDNwBSPTp8FRkLGDSGFClKsAFeeg+13SB0Z1JZvbD76bigJw==} - engines: {node: ^14.15.0 || >=16.0.0} - - prettier@2.8.7: - resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} - engines: {node: '>=10.13.0'} - hasBin: true - prettier@3.6.2: resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} engines: {node: '>=14'} @@ -12245,16 +11688,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - puppeteer-core@23.11.1: - resolution: {integrity: sha512-3HZ2/7hdDKZvZQ7dhhITOUg4/wOrDRjyK2ZBllRB0ZCOi9u0cwq1ACHDjBB+nX+7+kltHjQvBRdeY7+W0T+7Gg==} - engines: {node: '>=18'} - - puppeteer@23.11.1: - resolution: {integrity: sha512-53uIX3KR5en8l7Vd8n5DUv90Ae9QDQsyIthaUFVzwV6yU750RjqRznEtNMBT20VthqAdemnJN+hxVdmMHKt7Zw==} - engines: {node: '>=18'} - deprecated: < 24.15.0 is no longer supported - hasBin: true - qs@6.14.0: resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} engines: {node: '>=0.6'} @@ -12275,9 +11708,6 @@ packages: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - radix3@1.1.2: - resolution: {integrity: sha512-b484I/7b8rDEdSDKckSSBA8knMpcdsXudlE/LNL639wFoHKwLbEkQFZHWEYwDC0wa0FKUcCY+GAF73Z7wxNVFA==} - ramda@0.30.1: resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==} @@ -12637,12 +12067,6 @@ packages: resolution: {integrity: sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==} engines: {node: '>=8'} - request-light@0.5.8: - resolution: {integrity: sha512-3Zjgh+8b5fhRJBQZoy+zbVKpAQGLyka0MPgW3zruTF4dFFJ8Fqcfu9YsAvi/rvdcaTeWG3MkbZv4WKxAn/84Lg==} - - request-light@0.7.0: - resolution: {integrity: sha512-lMbBMrDoxgsyO+yB3sDcrDuX85yYt7sS8BfQd11jtbW/z5ZWgLZRcEGLsLoYw7I0WSUGQBs8CC8ScIxkTX1+6Q==} - require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -12690,9 +12114,6 @@ packages: resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - restructure@3.0.2: - resolution: {integrity: sha512-gSfoiOEA0VPE6Tukkrr7I0RBdE0s7H1eFCDBk05l1KIQT1UIKNc5JZy6jdyW6eYH3aR3g5b3PuL77rq0hvwtAw==} - retext-latin@4.0.0: resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} @@ -12768,9 +12189,6 @@ packages: rxjs@7.8.2: resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} - s.color@0.0.15: - resolution: {integrity: sha512-AUNrbEUHeKY8XsYr/DYpl+qk5+aM+DChopnWOPEzn8YKzOhv4l2zH6LzZms3tOZP3wwdOyc0RmTciyi46HLIuA==} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -12796,9 +12214,6 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass-formatter@0.7.9: - resolution: {integrity: sha512-CWZ8XiSim+fJVG0cFLStwDvft1VI7uvXdCNJYXhDvowiv+DsbD1nXLiQ4zrE5UBvj5DWZJ93cwN0NX5PMsr1Pw==} - saxes@6.0.0: resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} engines: {node: '>=v12.22.7'} @@ -12882,10 +12297,6 @@ packages: shallow-equal@3.1.0: resolution: {integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==} - sharp@0.33.5: - resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - sharp@0.34.3: resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} @@ -12964,10 +12375,6 @@ packages: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} - smol-toml@1.4.2: - resolution: {integrity: sha512-rInDH6lCNiEyn3+hH8KVGFdbjc099j47+OSgbMrfDYX1CmXLfdKd7qi6IfcWj2wFxvSVkuI46M+wPGYfEOEj6g==} - engines: {node: '>= 18'} - snake-case@2.1.0: resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} @@ -13102,10 +12509,6 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string-width@7.2.0: - resolution: {integrity: sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==} - engines: {node: '>=18'} - string.prototype.trim@1.2.10: resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} @@ -13214,9 +12617,6 @@ packages: stylis@4.3.6: resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} - suf-log@2.5.3: - resolution: {integrity: sha512-KvC8OPjzdNOe+xQ4XWJV2whQA0aM1kGVczMQ8+dStAO6KfEB140JEVQ9dE76ONZ0/Ylf67ni4tILPJB41U0eow==} - supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} @@ -13271,9 +12671,6 @@ packages: resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} engines: {node: '>=6'} - tar-fs@3.1.0: - resolution: {integrity: sha512-5Mty5y/sOF1YWj1J6GiBodjlDc05CUR8PKXrsnFAiSG0xA+GHeWLovaZPYUDXkH/1iKRf2+M5+OrRgzC7O9b7w==} - tar-stream@2.2.0: resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} engines: {node: '>=6'} @@ -13351,9 +12748,6 @@ packages: resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} engines: {node: '>=8'} - tiny-inflate@1.0.3: - resolution: {integrity: sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==} - tiny-invariant@1.3.3: resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} @@ -13608,9 +13002,6 @@ packages: resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} - typed-query-selector@2.12.0: - resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} - typedarray.prototype.slice@1.0.5: resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} engines: {node: '>= 0.4'} @@ -13618,12 +13009,6 @@ packages: typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} - typesafe-path@0.2.2: - resolution: {integrity: sha512-OJabfkAg1WLZSqJAJ0Z6Sdt3utnbzr/jh+NAHoyWHJe8CMSy79Gm085094M9nvTPy22KzTVn5Zq5mbapCI/hPA==} - - typescript-auto-import-cache@0.3.6: - resolution: {integrity: sha512-RpuHXrknHdVdK7wv/8ug3Fr0WNsNi5l5aB8MYYuXhq2UH5lnEB1htJ1smhtD5VeCsGr2p8mUDtd83LCQDFVgjQ==} - typescript@5.9.2: resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} engines: {node: '>=14.17'} @@ -13640,19 +13025,10 @@ packages: engines: {node: '>=0.8.0'} hasBin: true - ultrahtml@1.6.0: - resolution: {integrity: sha512-R9fBn90VTJrqqLDwyMph+HGne8eqY1iPfYhPzZrvKpIfwkWZbcYlfpsb8B9dTvBfpy1/hqAD7Wi8EKfP9e8zdw==} - unbox-primitive@1.1.0: resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} engines: {node: '>= 0.4'} - unbzip2-stream@1.4.3: - resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - - uncrypto@0.1.3: - resolution: {integrity: sha512-Ql87qFHB3s/De2ClA9e0gsnS6zXG27SkTiSJwjCc9MebbfapQfuPzumMIUMi38ezPZVNFcHI9sUIepeQfw8J8Q==} - undici-types@6.21.0: resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} @@ -13671,16 +13047,10 @@ packages: resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} engines: {node: '>=4'} - unicode-properties@1.4.1: - resolution: {integrity: sha512-CLjCCLQ6UuMxWnbIylkisbRj31qxHPAurvena/0iwSVbQ2G1VY5/HjV0IRabOEbDHlzZlRdCrD4NhB0JtU40Pg==} - unicode-property-aliases-ecmascript@2.1.0: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unicode-trie@2.0.0: - resolution: {integrity: sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ==} - unicorn-magic@0.1.0: resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} engines: {node: '>=18'} @@ -13688,9 +13058,6 @@ packages: unified@11.0.5: resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} - unifont@0.5.2: - resolution: {integrity: sha512-LzR4WUqzH9ILFvjLAUU7dK3Lnou/qd5kD+IakBtBK4S15/+x2y9VX+DcWQv6s551R6W+vzwgVS6tFg3XggGBgg==} - unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} @@ -13755,68 +13122,6 @@ packages: resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} engines: {node: '>=14.0.0'} - unstorage@1.17.0: - resolution: {integrity: sha512-l9Z7lBiwtNp8ZmcoZ/dmPkFXFdtEdZtTZafCSnEIj3YvtkXeGAtL2rN8MQFy/0cs4eOLpuRJMp9ivdug7TCvww==} - peerDependencies: - '@azure/app-configuration': ^1.8.0 - '@azure/cosmos': ^4.2.0 - '@azure/data-tables': ^13.3.0 - '@azure/identity': ^4.6.0 - '@azure/keyvault-secrets': ^4.9.0 - '@azure/storage-blob': ^12.26.0 - '@capacitor/preferences': ^6.0.3 || ^7.0.0 - '@deno/kv': '>=0.9.0' - '@netlify/blobs': ^6.5.0 || ^7.0.0 || ^8.1.0 || ^9.0.0 || ^10.0.0 - '@planetscale/database': ^1.19.0 - '@upstash/redis': ^1.34.3 - '@vercel/blob': '>=0.27.1' - '@vercel/functions': ^2.2.12 - '@vercel/kv': ^1.0.1 - aws4fetch: ^1.0.20 - db0: '>=0.2.1' - idb-keyval: ^6.2.1 - ioredis: ^5.4.2 - uploadthing: ^7.4.4 - peerDependenciesMeta: - '@azure/app-configuration': - optional: true - '@azure/cosmos': - optional: true - '@azure/data-tables': - optional: true - '@azure/identity': - optional: true - '@azure/keyvault-secrets': - optional: true - '@azure/storage-blob': - optional: true - '@capacitor/preferences': - optional: true - '@deno/kv': - optional: true - '@netlify/blobs': - optional: true - '@planetscale/database': - optional: true - '@upstash/redis': - optional: true - '@vercel/blob': - optional: true - '@vercel/functions': - optional: true - '@vercel/kv': - optional: true - aws4fetch: - optional: true - db0: - optional: true - idb-keyval: - optional: true - ioredis: - optional: true - uploadthing: - optional: true - update-browserslist-db@1.1.3: resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true @@ -13995,14 +13300,6 @@ packages: yaml: optional: true - vitefu@1.1.1: - resolution: {integrity: sha512-B/Fegf3i8zh0yFbpzZ21amWzHmuNlLlmJT6n7bu5e+pCHUKQIfXSYokrqOBGEMMe9UG2sostKQF9mml/vYaWJQ==} - peerDependencies: - vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0-beta.0 - peerDependenciesMeta: - vite: - optional: true - vitest@3.2.4: resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} @@ -14031,115 +13328,26 @@ packages: jsdom: optional: true - volar-service-css@0.0.62: - resolution: {integrity: sha512-JwNyKsH3F8PuzZYuqPf+2e+4CTU8YoyUHEHVnoXNlrLe7wy9U3biomZ56llN69Ris7TTy/+DEX41yVxQpM4qvg==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-emmet@0.0.62: - resolution: {integrity: sha512-U4dxWDBWz7Pi4plpbXf4J4Z/ss6kBO3TYrACxWNsE29abu75QzVS0paxDDhI6bhqpbDFXlpsDhZ9aXVFpnfGRQ==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-html@0.0.62: - resolution: {integrity: sha512-Zw01aJsZRh4GTGUjveyfEzEqpULQUdQH79KNEiKVYHZyuGtdBRYCHlrus1sueSNMxwwkuF5WnOHfvBzafs8yyQ==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-prettier@0.0.62: - resolution: {integrity: sha512-h2yk1RqRTE+vkYZaI9KYuwpDfOQRrTEMvoHol0yW4GFKc75wWQRrb5n/5abDrzMPrkQbSip8JH2AXbvrRtYh4w==} - peerDependencies: - '@volar/language-service': ~2.4.0 - prettier: ^2.2 || ^3.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - prettier: - optional: true - - volar-service-typescript-twoslash-queries@0.0.62: - resolution: {integrity: sha512-KxFt4zydyJYYI0kFAcWPTh4u0Ha36TASPZkAnNY784GtgajerUqM80nX/W1d0wVhmcOFfAxkVsf/Ed+tiYU7ng==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-typescript@0.0.62: - resolution: {integrity: sha512-p7MPi71q7KOsH0eAbZwPBiKPp9B2+qrdHAd6VY5oTo9BUXatsOAdakTm9Yf0DUj6uWBAaOT01BSeVOPwucMV1g==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - volar-service-yaml@0.0.62: - resolution: {integrity: sha512-k7gvv7sk3wa+nGll3MaSKyjwQsJjIGCHFjVkl3wjaSP2nouKyn9aokGmqjrl39mi88Oy49giog2GkZH526wjig==} - peerDependencies: - '@volar/language-service': ~2.4.0 - peerDependenciesMeta: - '@volar/language-service': - optional: true - - vscode-css-languageservice@6.3.7: - resolution: {integrity: sha512-5TmXHKllPzfkPhW4UE9sODV3E0bIOJPOk+EERKllf2SmAczjfTmYeq5txco+N3jpF8KIZ6loj/JptpHBQuVQRA==} - - vscode-html-languageservice@5.5.1: - resolution: {integrity: sha512-/ZdEtsZ3OiFSyL00kmmu7crFV9KwWR+MgpzjsxO60DQH7sIfHZM892C/E4iDd11EKocr+NYuvOA4Y7uc3QzLEA==} - - vscode-json-languageservice@4.1.8: - resolution: {integrity: sha512-0vSpg6Xd9hfV+eZAaYN63xVVMOTmJ4GgHxXnkLCh+9RsQBkWKIghzLhW2B9ebfG+LQQg8uLtsQ2aUKjTgE+QOg==} - engines: {npm: '>=7.0.0'} - - vscode-jsonrpc@6.0.0: - resolution: {integrity: sha512-wnJA4BnEjOSyFMvjZdpiOwhSq9uDoK8e/kpRJDTaMYzwlkrhG1fwDIZI94CLsLzlCK5cIbMMtFlJlfR57Lavmg==} - engines: {node: '>=8.0.0 || >=10.0.0'} - vscode-jsonrpc@8.2.0: resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} engines: {node: '>=14.0.0'} - vscode-languageserver-protocol@3.16.0: - resolution: {integrity: sha512-sdeUoAawceQdgIfTI+sdcwkiK2KU+2cbEYA0agzM2uqaUy2UpnnGHtWTHVEtS0ES4zHU0eMFRGN+oQgDxlD66A==} - vscode-languageserver-protocol@3.17.5: resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} vscode-languageserver-textdocument@1.0.12: resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} - vscode-languageserver-types@3.16.0: - resolution: {integrity: sha512-k8luDIWJWyenLc5ToFQQMaSrqCHiLwyKPHKPQZ5zz21vM+vIVUSvsRpcbiECH4WR88K2XZqc4ScRcZ7nk/jbeA==} - vscode-languageserver-types@3.17.5: resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} - vscode-languageserver@7.0.0: - resolution: {integrity: sha512-60HTx5ID+fLRcgdHfmz0LDZAXYEV68fzwG0JWwEPBode9NuMYTIxuYXPg4ngO8i8+Ou0lM7y6GzaYWbiDL0drw==} - hasBin: true - vscode-languageserver@9.0.1: resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} hasBin: true - vscode-nls@5.2.0: - resolution: {integrity: sha512-RAaHx7B14ZU04EU31pT+rKz2/zSl7xMsfIZuo8pd+KZO6PXtQmpevpq3vxvWNcrGbdmhM/rr5Uw5Mz+NBfhVng==} - vscode-uri@3.0.8: resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} - vscode-uri@3.1.0: - resolution: {integrity: sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==} - w3c-keyname@2.2.8: resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} @@ -14211,10 +13419,6 @@ packages: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-pm-runs@1.1.0: - resolution: {integrity: sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==} - engines: {node: '>=4'} - which-typed-array@1.1.19: resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} engines: {node: '>= 0.4'} @@ -14236,10 +13440,6 @@ packages: resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} engines: {node: '>=12'} - widest-line@5.0.0: - resolution: {integrity: sha512-c9bZp7b5YtRj2wOe6dlj32MK+Bx/M/d+9VB2SHM1OtsUHR0aV0tdP6DWh/iMt0kWi1t5g1Iudu6hQRNd1A4PVA==} - engines: {node: '>=18'} - wildcard@1.1.2: resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} @@ -14262,10 +13462,6 @@ packages: resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} engines: {node: '>=12'} - wrap-ansi@9.0.0: - resolution: {integrity: sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q==} - engines: {node: '>=18'} - wrappy@1.0.2: resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} @@ -14304,9 +13500,6 @@ packages: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} - xxhash-wasm@1.1.0: - resolution: {integrity: sha512-147y/6YNh+tlp6nd/2pWq38i9h6mz/EuQ6njIrmW8D1BS5nCqs0P6DG+m6zTGnNz5I+uhZ0SHxBs9BsPrwcKDA==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -14321,18 +13514,10 @@ packages: resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} engines: {node: '>=18'} - yaml-language-server@1.15.0: - resolution: {integrity: sha512-N47AqBDCMQmh6mBLmI6oqxryHRzi33aPFPsJhYy3VTUGCdLHYjGh4FZzpUjRlphaADBBkDmnkM/++KNIOHi5Rw==} - hasBin: true - yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - yaml@2.2.2: - resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==} - engines: {node: '>= 14'} - yaml@2.3.1: resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} engines: {node: '>= 14'} @@ -14350,9 +13535,6 @@ packages: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} - yauzl@2.10.0: - resolution: {integrity: sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==} - yjs@13.6.19: resolution: {integrity: sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==} engines: {node: '>=16.0.0', npm: '>=8.0.0'} @@ -14369,18 +13551,10 @@ packages: resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} engines: {node: '>=12.20'} - yocto-spinner@0.2.3: - resolution: {integrity: sha512-sqBChb33loEnkoXte1bLg45bEBsOP9N1kzQh5JZNKj/0rik4zAPTNSAVPj3uQAdc6slYJ0Ksc403G2XgxsJQFQ==} - engines: {node: '>=18.19'} - yoctocolors-cjs@2.1.2: resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} engines: {node: '>=18'} - yoctocolors@2.1.2: - resolution: {integrity: sha512-CzhO+pFNo8ajLM2d2IW/R93ipy99LWjtwblvC1RsoSUMZgyLbYFr221TnSNT7GjGdYui6P459mw9JH/g/zW2ug==} - engines: {node: '>=18'} - zip-stream@4.1.1: resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} engines: {node: '>= 10'} @@ -14389,26 +13563,12 @@ packages: resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} engines: {node: '>= 12.0.0'} - zod-to-json-schema@3.24.6: - resolution: {integrity: sha512-h/z3PKvcTcTetyjl1fkj79MHNEjm+HpD6NXheWjzOekY7kV+lwDYnHw+ivHkijnCSMz1yJaWBD9vu/Fcmk+vEg==} - peerDependencies: - zod: ^3.24.1 - - zod-to-ts@1.2.0: - resolution: {integrity: sha512-x30XE43V+InwGpvTySRNz9kB7qFU8DlyEy7BsSTCHPH1R0QasMmHWZDCzYm6bVXtj/9NNJAZF3jW8rzFvH5OFA==} - peerDependencies: - typescript: ^4.9.4 || ^5.0.2 - zod: ^3 - zod-validation-error@5.0.0: resolution: {integrity: sha512-hmk+pkyKq7Q71PiWVSDUc3VfpzpvcRHZ3QPw9yEMVvmtCekaMeOHnbr3WbxfrgEnQTv6haGP4cmv0Ojmihzsxw==} engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.25.0 || ^4.0.0 - zod@3.23.8: - resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==} - zod@3.25.76: resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} @@ -14485,116 +13645,6 @@ snapshots: '@csstools/css-tokenizer': 3.0.4 lru-cache: 10.4.3 - '@astrojs/check@0.9.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2)': - dependencies: - '@astrojs/language-server': 2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2) - chokidar: 4.0.3 - kleur: 4.1.5 - typescript: 5.9.2 - yargs: 17.7.2 - transitivePeerDependencies: - - prettier - - prettier-plugin-astro - - '@astrojs/compiler@2.12.2': {} - - '@astrojs/internal-helpers@0.7.2': {} - - '@astrojs/language-server@2.15.4(prettier-plugin-astro@0.14.1)(prettier@3.6.2)(typescript@5.9.2)': - dependencies: - '@astrojs/compiler': 2.12.2 - '@astrojs/yaml2ts': 0.2.2 - '@jridgewell/sourcemap-codec': 1.5.5 - '@volar/kit': 2.4.23(typescript@5.9.2) - '@volar/language-core': 2.4.23 - '@volar/language-server': 2.4.23 - '@volar/language-service': 2.4.23 - fast-glob: 3.3.3 - muggle-string: 0.4.1 - volar-service-css: 0.0.62(@volar/language-service@2.4.23) - volar-service-emmet: 0.0.62(@volar/language-service@2.4.23) - volar-service-html: 0.0.62(@volar/language-service@2.4.23) - volar-service-prettier: 0.0.62(@volar/language-service@2.4.23)(prettier@3.6.2) - volar-service-typescript: 0.0.62(@volar/language-service@2.4.23) - volar-service-typescript-twoslash-queries: 0.0.62(@volar/language-service@2.4.23) - volar-service-yaml: 0.0.62(@volar/language-service@2.4.23) - vscode-html-languageservice: 5.5.1 - vscode-uri: 3.1.0 - optionalDependencies: - prettier: 3.6.2 - prettier-plugin-astro: 0.14.1 - transitivePeerDependencies: - - typescript - - '@astrojs/markdown-remark@6.3.6': - dependencies: - '@astrojs/internal-helpers': 0.7.2 - '@astrojs/prism': 3.3.0 - github-slugger: 2.0.0 - hast-util-from-html: 2.0.3 - hast-util-to-text: 4.0.2 - import-meta-resolve: 4.2.0 - js-yaml: 4.1.0 - mdast-util-definitions: 6.0.0 - rehype-raw: 7.0.0 - rehype-stringify: 10.0.1 - remark-gfm: 4.0.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.2 - remark-smartypants: 3.0.2 - shiki: 3.11.0 - smol-toml: 1.4.2 - unified: 11.0.5 - unist-util-remove-position: 5.0.0 - unist-util-visit: 5.0.0 - unist-util-visit-parents: 6.0.1 - vfile: 6.0.3 - transitivePeerDependencies: - - supports-color - - '@astrojs/prism@3.3.0': - dependencies: - prismjs: 1.30.0 - - '@astrojs/react@4.3.0(@types/node@22.17.2)(@types/react-dom@19.1.7(@types/react@19.1.10))(@types/react@19.1.10)(jiti@2.6.1)(lightningcss@1.30.2)(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)': - dependencies: - '@types/react': 19.1.10 - '@types/react-dom': 19.1.7(@types/react@19.1.10) - '@vitejs/plugin-react': 4.7.0(vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) - react: 19.2.3 - react-dom: 19.2.3(react@19.2.3) - ultrahtml: 1.6.0 - vite: 6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - transitivePeerDependencies: - - '@types/node' - - jiti - - less - - lightningcss - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - yaml - - '@astrojs/telemetry@3.3.0': - dependencies: - ci-info: 4.3.0 - debug: 4.4.1 - dlv: 1.1.3 - dset: 3.1.4 - is-docker: 3.0.0 - is-wsl: 3.1.0 - which-pm-runs: 1.1.0 - transitivePeerDependencies: - - supports-color - - '@astrojs/yaml2ts@0.2.2': - dependencies: - yaml: 2.8.1 - '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 @@ -16047,14 +15097,6 @@ snapshots: '@types/tough-cookie': 4.0.5 tough-cookie: 4.1.4 - '@capsizecss/unpack@2.4.0': - dependencies: - blob-to-buffer: 1.2.9 - cross-fetch: 3.2.0 - fontkit: 2.0.4 - transitivePeerDependencies: - - encoding - '@chevrotain/cst-dts-gen@11.0.3': dependencies: '@chevrotain/gast': 11.0.3 @@ -16316,29 +15358,6 @@ snapshots: '@electric-sql/pglite@0.3.7': {} - '@emmetio/abbreviation@2.3.3': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/css-abbreviation@2.1.8': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/css-parser@0.4.0': - dependencies: - '@emmetio/stream-reader': 2.2.0 - '@emmetio/stream-reader-utils': 0.1.0 - - '@emmetio/html-matcher@1.3.0': - dependencies: - '@emmetio/scanner': 1.0.4 - - '@emmetio/scanner@1.0.4': {} - - '@emmetio/stream-reader-utils@0.1.0': {} - - '@emmetio/stream-reader@2.2.0': {} - '@emnapi/core@0.45.0': dependencies: tslib: 2.8.1 @@ -16742,92 +15761,48 @@ snapshots: dependencies: react: 19.2.3 - '@img/sharp-darwin-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-arm64': 1.0.4 - optional: true - '@img/sharp-darwin-arm64@0.34.3': optionalDependencies: '@img/sharp-libvips-darwin-arm64': 1.2.0 optional: true - '@img/sharp-darwin-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-darwin-x64': 1.0.4 - optional: true - '@img/sharp-darwin-x64@0.34.3': optionalDependencies: '@img/sharp-libvips-darwin-x64': 1.2.0 optional: true - '@img/sharp-libvips-darwin-arm64@1.0.4': - optional: true - '@img/sharp-libvips-darwin-arm64@1.2.0': optional: true - '@img/sharp-libvips-darwin-x64@1.0.4': - optional: true - '@img/sharp-libvips-darwin-x64@1.2.0': optional: true - '@img/sharp-libvips-linux-arm64@1.0.4': - optional: true - '@img/sharp-libvips-linux-arm64@1.2.0': optional: true - '@img/sharp-libvips-linux-arm@1.0.5': - optional: true - - '@img/sharp-libvips-linux-arm@1.2.0': + '@img/sharp-libvips-linux-arm@1.2.0': optional: true '@img/sharp-libvips-linux-ppc64@1.2.0': optional: true - '@img/sharp-libvips-linux-s390x@1.0.4': - optional: true - '@img/sharp-libvips-linux-s390x@1.2.0': optional: true - '@img/sharp-libvips-linux-x64@1.0.4': - optional: true - '@img/sharp-libvips-linux-x64@1.2.0': optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.0.4': - optional: true - '@img/sharp-libvips-linuxmusl-arm64@1.2.0': optional: true - '@img/sharp-libvips-linuxmusl-x64@1.0.4': - optional: true - '@img/sharp-libvips-linuxmusl-x64@1.2.0': optional: true - '@img/sharp-linux-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm64': 1.0.4 - optional: true - '@img/sharp-linux-arm64@0.34.3': optionalDependencies: '@img/sharp-libvips-linux-arm64': 1.2.0 optional: true - '@img/sharp-linux-arm@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-arm': 1.0.5 - optional: true - '@img/sharp-linux-arm@0.34.3': optionalDependencies: '@img/sharp-libvips-linux-arm': 1.2.0 @@ -16838,51 +15813,26 @@ snapshots: '@img/sharp-libvips-linux-ppc64': 1.2.0 optional: true - '@img/sharp-linux-s390x@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-s390x': 1.0.4 - optional: true - '@img/sharp-linux-s390x@0.34.3': optionalDependencies: '@img/sharp-libvips-linux-s390x': 1.2.0 optional: true - '@img/sharp-linux-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linux-x64': 1.0.4 - optional: true - '@img/sharp-linux-x64@0.34.3': optionalDependencies: '@img/sharp-libvips-linux-x64': 1.2.0 optional: true - '@img/sharp-linuxmusl-arm64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - optional: true - '@img/sharp-linuxmusl-arm64@0.34.3': optionalDependencies: '@img/sharp-libvips-linuxmusl-arm64': 1.2.0 optional: true - '@img/sharp-linuxmusl-x64@0.33.5': - optionalDependencies: - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - optional: true - '@img/sharp-linuxmusl-x64@0.34.3': optionalDependencies: '@img/sharp-libvips-linuxmusl-x64': 1.2.0 optional: true - '@img/sharp-wasm32@0.33.5': - dependencies: - '@emnapi/runtime': 1.4.5 - optional: true - '@img/sharp-wasm32@0.34.3': dependencies: '@emnapi/runtime': 1.4.5 @@ -16891,15 +15841,9 @@ snapshots: '@img/sharp-win32-arm64@0.34.3': optional: true - '@img/sharp-win32-ia32@0.33.5': - optional: true - '@img/sharp-win32-ia32@0.34.3': optional: true - '@img/sharp-win32-x64@0.33.5': - optional: true - '@img/sharp-win32-x64@0.34.3': optional: true @@ -19008,33 +17952,6 @@ snapshots: '@protobufjs/utf8@1.1.0': {} - '@puppeteer/browsers@2.10.8': - dependencies: - debug: 4.4.1 - extract-zip: 2.0.1 - progress: 2.0.3 - proxy-agent: 6.5.0 - semver: 7.7.2 - tar-fs: 3.1.0 - yargs: 17.7.2 - transitivePeerDependencies: - - bare-buffer - - supports-color - - '@puppeteer/browsers@2.6.1': - dependencies: - debug: 4.4.1 - extract-zip: 2.0.1 - progress: 2.0.3 - proxy-agent: 6.5.0 - semver: 7.7.2 - tar-fs: 3.1.0 - unbzip2-stream: 1.4.3 - yargs: 17.7.2 - transitivePeerDependencies: - - bare-buffer - - supports-color - '@radix-ui/number@1.1.1': {} '@radix-ui/primitive@1.1.3': {} @@ -21019,13 +19936,6 @@ snapshots: postcss-selector-parser: 6.0.10 tailwindcss: 4.1.17 - '@tailwindcss/vite@4.1.17(vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': - dependencies: - '@tailwindcss/node': 4.1.17 - '@tailwindcss/oxide': 4.1.17 - tailwindcss: 4.1.17 - vite: 6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - '@tanstack/query-core@5.85.5': {} '@tanstack/query-devtools@5.84.0': {} @@ -21421,10 +20331,6 @@ snapshots: '@types/estree@1.0.8': {} - '@types/fontkit@2.0.8': - dependencies: - '@types/node': 22.17.2 - '@types/geojson@7946.0.16': {} '@types/glob@7.2.0': @@ -21629,11 +20535,6 @@ snapshots: '@types/uuid@9.0.8': {} - '@types/yauzl@2.10.3': - dependencies: - '@types/node': 22.17.2 - optional: true - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260119.1': optional: true @@ -21959,18 +20860,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-react@4.7.0(vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))': - dependencies: - '@babel/core': 7.28.3 - '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.3) - '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.3) - '@rolldown/pluginutils': 1.0.0-beta.27 - '@types/babel__core': 7.20.5 - react-refresh: 0.17.0 - vite: 6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - transitivePeerDependencies: - - supports-color - '@vitest/browser@3.0.5(@types/node@20.19.11)(playwright@1.53.0)(typescript@5.9.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1))(vitest@3.2.4)': dependencies: '@testing-library/dom': 10.4.1 @@ -22087,56 +20976,6 @@ snapshots: loupe: 3.2.0 tinyrainbow: 2.0.0 - '@volar/kit@2.4.23(typescript@5.9.2)': - dependencies: - '@volar/language-service': 2.4.23 - '@volar/typescript': 2.4.23 - typesafe-path: 0.2.2 - typescript: 5.9.2 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - - '@volar/language-core@2.4.23': - dependencies: - '@volar/source-map': 2.4.23 - - '@volar/language-server@2.4.23': - dependencies: - '@volar/language-core': 2.4.23 - '@volar/language-service': 2.4.23 - '@volar/typescript': 2.4.23 - path-browserify: 1.0.1 - request-light: 0.7.0 - vscode-languageserver: 9.0.1 - vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - - '@volar/language-service@2.4.23': - dependencies: - '@volar/language-core': 2.4.23 - vscode-languageserver-protocol: 3.17.5 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - - '@volar/source-map@2.4.23': {} - - '@volar/typescript@2.4.23': - dependencies: - '@volar/language-core': 2.4.23 - path-browserify: 1.0.1 - vscode-uri: 3.1.0 - - '@vscode/emmet-helper@2.11.0': - dependencies: - emmet: 2.4.11 - jsonc-parser: 2.3.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - - '@vscode/l10n@0.0.18': {} - '@webassemblyjs/ast@1.14.1': dependencies: '@webassemblyjs/helper-numbers': 1.13.2 @@ -22434,122 +21273,6 @@ snapshots: astring@1.9.0: {} - astro-pdf@1.7.2(astro@5.13.5(@types/node@22.17.2)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.46.4)(terser@5.43.1)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1))(typescript@5.9.2): - dependencies: - '@puppeteer/browsers': 2.10.8 - astro: 5.13.5(@types/node@22.17.2)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.46.4)(terser@5.43.1)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1) - kleur: 4.1.5 - p-map: 7.0.3 - puppeteer: 23.11.1(typescript@5.9.2) - transitivePeerDependencies: - - bare-buffer - - bufferutil - - supports-color - - typescript - - utf-8-validate - - astro@5.13.5(@types/node@22.17.2)(ioredis@5.7.0)(jiti@2.6.1)(lightningcss@1.30.2)(rollup@4.46.4)(terser@5.43.1)(tsx@4.20.5)(typescript@5.9.2)(yaml@2.8.1): - dependencies: - '@astrojs/compiler': 2.12.2 - '@astrojs/internal-helpers': 0.7.2 - '@astrojs/markdown-remark': 6.3.6 - '@astrojs/telemetry': 3.3.0 - '@capsizecss/unpack': 2.4.0 - '@oslojs/encoding': 1.1.0 - '@rollup/pluginutils': 5.2.0(rollup@4.46.4) - acorn: 8.15.0 - aria-query: 5.3.2 - axobject-query: 4.1.0 - boxen: 8.0.1 - ci-info: 4.3.0 - clsx: 2.1.1 - common-ancestor-path: 1.0.1 - cookie: 1.0.2 - cssesc: 3.0.0 - debug: 4.4.1 - deterministic-object-hash: 2.0.2 - devalue: 5.3.2 - diff: 5.2.0 - dlv: 1.1.3 - dset: 3.1.4 - es-module-lexer: 1.7.0 - esbuild: 0.25.9 - estree-walker: 3.0.3 - flattie: 1.1.1 - fontace: 0.3.0 - github-slugger: 2.0.0 - html-escaper: 3.0.3 - http-cache-semantics: 4.2.0 - import-meta-resolve: 4.2.0 - js-yaml: 4.1.0 - kleur: 4.1.5 - magic-string: 0.30.17 - magicast: 0.3.5 - mrmime: 2.0.1 - neotraverse: 0.6.18 - p-limit: 6.2.0 - p-queue: 8.1.0 - package-manager-detector: 1.3.0 - picomatch: 4.0.3 - prompts: 2.4.2 - rehype: 13.0.2 - semver: 7.7.2 - shiki: 3.11.0 - smol-toml: 1.4.2 - tinyexec: 0.3.2 - tinyglobby: 0.2.14 - tsconfck: 3.1.6(typescript@5.9.2) - ultrahtml: 1.6.0 - unifont: 0.5.2 - unist-util-visit: 5.0.0 - unstorage: 1.17.0(ioredis@5.7.0) - vfile: 6.0.3 - vite: 6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vitefu: 1.1.1(vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) - xxhash-wasm: 1.1.0 - yargs-parser: 21.1.1 - yocto-spinner: 0.2.3 - zod: 3.25.76 - zod-to-json-schema: 3.24.6(zod@3.25.76) - zod-to-ts: 1.2.0(typescript@5.9.2)(zod@3.25.76) - optionalDependencies: - sharp: 0.33.5 - transitivePeerDependencies: - - '@azure/app-configuration' - - '@azure/cosmos' - - '@azure/data-tables' - - '@azure/identity' - - '@azure/keyvault-secrets' - - '@azure/storage-blob' - - '@capacitor/preferences' - - '@deno/kv' - - '@netlify/blobs' - - '@planetscale/database' - - '@types/node' - - '@upstash/redis' - - '@vercel/blob' - - '@vercel/functions' - - '@vercel/kv' - - aws4fetch - - db0 - - encoding - - idb-keyval - - ioredis - - jiti - - less - - lightningcss - - rollup - - sass - - sass-embedded - - stylus - - sugarss - - supports-color - - terser - - tsx - - typescript - - uploadthing - - yaml - async-function@1.0.0: {} async@3.2.6: {} @@ -22582,8 +21305,6 @@ snapshots: transitivePeerDependencies: - debug - axobject-query@4.1.0: {} - b4a@1.6.7: {} babel-plugin-macros@3.1.0: @@ -22623,30 +21344,6 @@ snapshots: bare-events@2.6.1: optional: true - bare-fs@4.2.2: - dependencies: - bare-events: 2.6.1 - bare-path: 3.0.0 - bare-stream: 2.7.0(bare-events@2.6.1) - optional: true - - bare-os@3.6.2: - optional: true - - bare-path@3.0.0: - dependencies: - bare-os: 3.6.2 - optional: true - - bare-stream@2.7.0(bare-events@2.6.1): - dependencies: - streamx: 2.22.1 - optionalDependencies: - bare-events: 2.6.1 - optional: true - - base-64@1.0.0: {} - base16@1.0.0: {} base64-js@1.5.1: {} @@ -22674,8 +21371,6 @@ snapshots: inherits: 2.0.4 readable-stream: 3.6.2 - blob-to-buffer@1.2.9: {} - bowser@2.12.0: {} boxen@7.0.0: @@ -22689,17 +21384,6 @@ snapshots: widest-line: 4.0.1 wrap-ansi: 8.1.0 - boxen@8.0.1: - dependencies: - ansi-align: 3.0.1 - camelcase: 8.0.0 - chalk: 5.6.0 - cli-boxes: 3.0.0 - string-width: 7.2.0 - type-fest: 4.41.0 - widest-line: 5.0.0 - wrap-ansi: 9.0.0 - brace-expansion@1.1.12: dependencies: balanced-match: 1.0.2 @@ -22713,10 +21397,6 @@ snapshots: dependencies: fill-range: 7.1.1 - brotli@1.3.3: - dependencies: - base64-js: 1.5.1 - browserslist@4.25.3: dependencies: caniuse-lite: 1.0.30001735 @@ -22777,8 +21457,6 @@ snapshots: camelcase@7.0.1: {} - camelcase@8.0.0: {} - caniuse-lite@1.0.30001735: {} case-anything@2.1.13: {} @@ -22906,18 +21584,10 @@ snapshots: chrome-trace-event@1.0.4: {} - chromium-bidi@0.11.0(devtools-protocol@0.0.1367902): - dependencies: - devtools-protocol: 0.0.1367902 - mitt: 3.0.1 - zod: 3.23.8 - ci-info@3.8.0: {} ci-info@3.9.0: {} - ci-info@4.3.0: {} - cjs-module-lexer@1.4.3: {} class-variance-authority@0.7.1: @@ -22982,8 +21652,6 @@ snapshots: clone@1.0.4: {} - clone@2.1.2: {} - clsx@2.1.1: {} cluster-key-slot@1.1.2: {} @@ -23056,8 +21724,6 @@ snapshots: commander@8.3.0: {} - common-ancestor-path@1.0.1: {} - commondir@1.0.1: {} compress-commons@4.1.2: @@ -23126,12 +21792,8 @@ snapshots: convert-source-map@2.0.0: {} - cookie-es@1.2.2: {} - cookie@0.7.2: {} - cookie@1.0.2: {} - core-js-compat@3.45.0: dependencies: browserslist: 4.25.3 @@ -23170,15 +21832,6 @@ snapshots: optionalDependencies: typescript: 5.9.2 - cosmiconfig@9.0.0(typescript@5.9.2): - dependencies: - env-paths: 2.2.1 - import-fresh: 3.3.1 - js-yaml: 4.1.0 - parse-json: 5.2.0 - optionalDependencies: - typescript: 5.9.2 - crc-32@1.2.2: {} crc32-stream@4.0.3: @@ -23197,12 +21850,6 @@ snapshots: cropperjs@1.6.2: {} - cross-fetch@3.2.0: - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - cross-spawn@7.0.3: dependencies: path-key: 3.1.1 @@ -23215,17 +21862,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 - crossws@0.3.5: - dependencies: - uncrypto: 0.1.3 - crypto-random-string@2.0.0: {} - css-tree@3.1.0: - dependencies: - mdn-data: 2.12.2 - source-map-js: 1.2.1 - css.escape@1.5.1: {} cssesc@3.0.0: {} @@ -23512,8 +22150,6 @@ snapshots: has-property-descriptors: 1.0.2 object-keys: 1.1.1 - defu@6.1.4: {} - degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -23552,42 +22188,26 @@ snapshots: dequal@2.0.3: {} - destr@2.0.5: {} - detect-indent@6.1.0: {} detect-libc@2.0.4: {} detect-node-es@1.1.0: {} - deterministic-object-hash@2.0.2: - dependencies: - base-64: 1.0.0 - - devalue@5.3.2: {} - devlop@1.1.0: dependencies: dequal: 2.0.3 - devtools-protocol@0.0.1367902: {} - - dfa@1.2.0: {} - diacritics@1.3.0: {} diff-match-patch@1.0.5: {} diff@4.0.2: {} - diff@5.2.0: {} - dir-glob@3.0.1: dependencies: path-type: 4.0.0 - dlv@1.1.3: {} - doctrine@3.0.0: dependencies: esutils: 2.0.3 @@ -23644,8 +22264,6 @@ snapshots: dotenv@16.6.1: {} - dset@3.1.4: {} - dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -23660,13 +22278,6 @@ snapshots: electron-to-chromium@1.5.207: {} - emmet@2.4.11: - dependencies: - '@emmetio/abbreviation': 2.3.3 - '@emmetio/css-abbreviation': 2.1.8 - - emoji-regex@10.5.0: {} - emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -24023,16 +22634,6 @@ snapshots: - supports-color - tedious - extract-zip@2.0.1: - dependencies: - debug: 4.4.1 - get-stream: 5.2.0 - yauzl: 2.10.0 - optionalDependencies: - '@types/yauzl': 2.10.3 - transitivePeerDependencies: - - supports-color - fast-copy@3.0.2: {} fast-copy@4.0.2: {} @@ -24075,10 +22676,6 @@ snapshots: dependencies: format: 0.2.2 - fd-slicer@1.1.0: - dependencies: - pend: 1.2.0 - fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 @@ -24117,27 +22714,8 @@ snapshots: path-exists: 5.0.0 unicorn-magic: 0.1.0 - flattie@1.1.1: {} - follow-redirects@1.15.11: {} - fontace@0.3.0: - dependencies: - '@types/fontkit': 2.0.8 - fontkit: 2.0.4 - - fontkit@2.0.4: - dependencies: - '@swc/helpers': 0.5.17 - brotli: 1.3.3 - clone: 2.1.2 - dfa: 1.2.0 - fast-deep-equal: 3.1.3 - restructure: 3.0.2 - tiny-inflate: 1.0.3 - unicode-properties: 1.4.1 - unicode-trie: 2.0.0 - for-each@0.3.5: dependencies: is-callable: 1.2.7 @@ -24240,8 +22818,6 @@ snapshots: get-caller-file@2.0.5: {} - get-east-asian-width@1.3.1: {} - get-intrinsic@1.3.0: dependencies: call-bind-apply-helpers: 1.0.2 @@ -24264,10 +22840,6 @@ snapshots: dunder-proto: 1.0.1 es-object-atoms: 1.1.1 - get-stream@5.2.0: - dependencies: - pump: 3.0.3 - get-stream@6.0.1: {} get-stream@8.0.1: {} @@ -24468,18 +23040,6 @@ snapshots: - encoding - supports-color - h3@1.15.4: - dependencies: - cookie-es: 1.2.2 - crossws: 0.3.5 - defu: 6.1.4 - destr: 2.0.5 - iron-webcrypto: 1.2.1 - node-mock-http: 1.0.2 - radix3: 1.1.2 - ufo: 1.6.1 - uncrypto: 0.1.3 - hachure-fill@0.5.2: {} handlebars@4.7.8: @@ -24767,8 +23327,6 @@ snapshots: html-escaper@2.0.2: {} - html-escaper@3.0.3: {} - html-to-text@9.0.5: dependencies: '@selderee/plugin-htmlparser2': 0.11.0 @@ -24794,8 +23352,6 @@ snapshots: domutils: 3.2.2 entities: 4.5.0 - http-cache-semantics@4.2.0: {} - http-proxy-agent@7.0.0: dependencies: agent-base: 7.1.4 @@ -24873,8 +23429,6 @@ snapshots: cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 - import-meta-resolve@4.2.0: {} - indent-string@4.0.0: {} inflight@1.0.6: @@ -24958,8 +23512,6 @@ snapshots: ip-address@10.0.1: {} - iron-webcrypto@1.2.1: {} - is-alphabetical@2.0.1: {} is-alphanumerical@2.0.1: @@ -25292,10 +23844,6 @@ snapshots: jsonata@2.1.0: {} - jsonc-parser@2.3.1: {} - - jsonc-parser@3.3.1: {} - jsondiffpatch@0.4.1: dependencies: chalk: 2.4.2 @@ -25762,12 +24310,6 @@ snapshots: marked: 7.0.4 react: 19.2.3 - mdast-util-definitions@6.0.0: - dependencies: - '@types/mdast': 4.0.4 - '@types/unist': 3.0.3 - unist-util-visit: 5.0.0 - mdast-util-directive@3.1.0: dependencies: '@types/mdast': 4.0.4 @@ -25968,8 +24510,6 @@ snapshots: dependencies: '@types/mdast': 4.0.4 - mdn-data@2.12.2: {} - mdurl@2.0.0: {} memfs-browser@3.5.10302: @@ -26457,8 +24997,6 @@ snapshots: mudder@2.1.1: {} - muggle-string@0.4.1: {} - mute-stream@0.0.8: {} mute-stream@2.0.0: {} @@ -26475,8 +25013,6 @@ snapshots: neo-async@2.6.2: {} - neotraverse@0.6.18: {} - netmask@2.0.2: {} new-github-issue-url@0.2.1: {} @@ -26616,8 +25152,6 @@ snapshots: dependencies: lower-case: 1.1.4 - node-fetch-native@1.6.7: {} - node-fetch@2.6.11: dependencies: whatwg-url: 5.0.0 @@ -26630,8 +25164,6 @@ snapshots: dependencies: whatwg-url: 5.0.0 - node-mock-http@1.0.2: {} - node-plop@0.26.3: dependencies: '@babel/runtime-corejs3': 7.28.3 @@ -26729,14 +25261,6 @@ snapshots: dependencies: isobject: 3.0.1 - ofetch@1.4.1: - dependencies: - destr: 2.0.5 - node-fetch-native: 1.6.7 - ufo: 1.6.1 - - ohash@2.0.11: {} - on-exit-leak-free@2.1.2: {} on-headers@1.0.2: {} @@ -26845,10 +25369,6 @@ snapshots: dependencies: yocto-queue: 1.2.1 - p-limit@6.2.0: - dependencies: - yocto-queue: 1.2.1 - p-locate@4.1.0: dependencies: p-limit: 2.3.0 @@ -26923,8 +25443,6 @@ snapshots: '@pagefind/linux-x64': 1.3.0 '@pagefind/windows-x64': 1.3.0 - pako@0.2.9: {} - param-case@2.1.1: dependencies: no-case: 2.3.2 @@ -27034,8 +25552,6 @@ snapshots: peberminta@0.9.0: {} - pend@1.2.0: {} - pg-cloudflare@1.2.7: optional: true @@ -27222,16 +25738,6 @@ snapshots: prelude-ls@1.2.1: {} - prettier-plugin-astro@0.14.1: - dependencies: - '@astrojs/compiler': 2.12.2 - prettier: 3.6.2 - sass-formatter: 0.7.9 - optional: true - - prettier@2.8.7: - optional: true - prettier@3.6.2: {} pretty-bytes@6.1.1: {} @@ -27470,35 +25976,6 @@ snapshots: punycode@2.3.1: {} - puppeteer-core@23.11.1: - dependencies: - '@puppeteer/browsers': 2.6.1 - chromium-bidi: 0.11.0(devtools-protocol@0.0.1367902) - debug: 4.4.1 - devtools-protocol: 0.0.1367902 - typed-query-selector: 2.12.0 - ws: 8.18.3 - transitivePeerDependencies: - - bare-buffer - - bufferutil - - supports-color - - utf-8-validate - - puppeteer@23.11.1(typescript@5.9.2): - dependencies: - '@puppeteer/browsers': 2.6.1 - chromium-bidi: 0.11.0(devtools-protocol@0.0.1367902) - cosmiconfig: 9.0.0(typescript@5.9.2) - devtools-protocol: 0.0.1367902 - puppeteer-core: 23.11.1 - typed-query-selector: 2.12.0 - transitivePeerDependencies: - - bare-buffer - - bufferutil - - supports-color - - typescript - - utf-8-validate - qs@6.14.0: dependencies: side-channel: 1.1.0 @@ -27513,8 +25990,6 @@ snapshots: quick-lru@5.1.1: {} - radix3@1.1.2: {} - ramda@0.30.1: {} ramda@0.31.3: {} @@ -28075,10 +26550,6 @@ snapshots: replace-string@3.1.0: {} - request-light@0.5.8: {} - - request-light@0.7.0: {} - require-directory@2.1.1: {} require-from-string@2.0.2: {} @@ -28127,8 +26598,6 @@ snapshots: onetime: 5.1.2 signal-exit: 3.0.7 - restructure@3.0.2: {} - retext-latin@4.0.0: dependencies: '@types/nlcst': 2.0.3 @@ -28230,9 +26699,6 @@ snapshots: dependencies: tslib: 2.8.1 - s.color@0.0.15: - optional: true - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -28260,11 +26726,6 @@ snapshots: safer-buffer@2.1.2: {} - sass-formatter@0.7.9: - dependencies: - suf-log: 2.5.3 - optional: true - saxes@6.0.0: dependencies: xmlchars: 2.2.0 @@ -28372,33 +26833,6 @@ snapshots: shallow-equal@3.1.0: {} - sharp@0.33.5: - dependencies: - color: 4.2.3 - detect-libc: 2.0.4 - semver: 7.7.2 - optionalDependencies: - '@img/sharp-darwin-arm64': 0.33.5 - '@img/sharp-darwin-x64': 0.33.5 - '@img/sharp-libvips-darwin-arm64': 1.0.4 - '@img/sharp-libvips-darwin-x64': 1.0.4 - '@img/sharp-libvips-linux-arm': 1.0.5 - '@img/sharp-libvips-linux-arm64': 1.0.4 - '@img/sharp-libvips-linux-s390x': 1.0.4 - '@img/sharp-libvips-linux-x64': 1.0.4 - '@img/sharp-libvips-linuxmusl-arm64': 1.0.4 - '@img/sharp-libvips-linuxmusl-x64': 1.0.4 - '@img/sharp-linux-arm': 0.33.5 - '@img/sharp-linux-arm64': 0.33.5 - '@img/sharp-linux-s390x': 0.33.5 - '@img/sharp-linux-x64': 0.33.5 - '@img/sharp-linuxmusl-arm64': 0.33.5 - '@img/sharp-linuxmusl-x64': 0.33.5 - '@img/sharp-wasm32': 0.33.5 - '@img/sharp-win32-ia32': 0.33.5 - '@img/sharp-win32-x64': 0.33.5 - optional: true - sharp@0.34.3: dependencies: color: 4.2.3 @@ -28513,8 +26947,6 @@ snapshots: smart-buffer@4.2.0: {} - smol-toml@1.4.2: {} - snake-case@2.1.0: dependencies: no-case: 2.3.2 @@ -28685,12 +27117,6 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string-width@7.2.0: - dependencies: - emoji-regex: 10.5.0 - get-east-asian-width: 1.3.1 - strip-ansi: 7.1.0 - string.prototype.trim@1.2.10: dependencies: call-bind: 1.0.8 @@ -28796,11 +27222,6 @@ snapshots: stylis@4.3.6: {} - suf-log@2.5.3: - dependencies: - s.color: 0.0.15 - optional: true - supports-color@5.5.0: dependencies: has-flag: 3.0.0 @@ -28845,16 +27266,6 @@ snapshots: tapable@2.2.2: {} - tar-fs@3.1.0: - dependencies: - pump: 3.0.3 - tar-stream: 3.1.7 - optionalDependencies: - bare-fs: 4.2.2 - bare-path: 3.0.0 - transitivePeerDependencies: - - bare-buffer - tar-stream@2.2.0: dependencies: bl: 4.1.0 @@ -28944,8 +27355,6 @@ snapshots: tildify@2.0.0: {} - tiny-inflate@1.0.3: {} - tiny-invariant@1.3.3: {} tinybench@2.9.0: {} @@ -29202,8 +27611,6 @@ snapshots: possible-typed-array-names: 1.1.0 reflect.getprototypeof: 1.0.10 - typed-query-selector@2.12.0: {} - typedarray.prototype.slice@1.0.5: dependencies: call-bind: 1.0.8 @@ -29217,12 +27624,6 @@ snapshots: typedarray@0.0.6: {} - typesafe-path@0.2.2: {} - - typescript-auto-import-cache@0.3.6: - dependencies: - semver: 7.7.2 - typescript@5.9.2: {} uc.micro@2.1.0: {} @@ -29232,8 +27633,6 @@ snapshots: uglify-js@3.19.3: optional: true - ultrahtml@1.6.0: {} - unbox-primitive@1.1.0: dependencies: call-bound: 1.0.4 @@ -29241,13 +27640,6 @@ snapshots: has-symbols: 1.1.0 which-boxed-primitive: 1.1.1 - unbzip2-stream@1.4.3: - dependencies: - buffer: 5.7.1 - through: 2.3.8 - - uncrypto@0.1.3: {} - undici-types@6.21.0: {} undici-types@7.10.0: {} @@ -29261,18 +27653,8 @@ snapshots: unicode-match-property-value-ecmascript@2.2.0: {} - unicode-properties@1.4.1: - dependencies: - base64-js: 1.5.1 - unicode-trie: 2.0.0 - unicode-property-aliases-ecmascript@2.1.0: {} - unicode-trie@2.0.0: - dependencies: - pako: 0.2.9 - tiny-inflate: 1.0.3 - unicorn-magic@0.1.0: {} unified@11.0.5: @@ -29285,12 +27667,6 @@ snapshots: trough: 2.2.0 vfile: 6.0.3 - unifont@0.5.2: - dependencies: - css-tree: 3.1.0 - ofetch: 1.4.1 - ohash: 2.0.11 - unique-string@2.0.0: dependencies: crypto-random-string: 2.0.0 @@ -29384,19 +27760,6 @@ snapshots: acorn: 8.15.0 webpack-virtual-modules: 0.6.2 - unstorage@1.17.0(ioredis@5.7.0): - dependencies: - anymatch: 3.1.3 - chokidar: 4.0.3 - destr: 2.0.5 - h3: 1.15.4 - lru-cache: 10.4.3 - node-fetch-native: 1.6.7 - ofetch: 1.4.1 - ufo: 1.6.1 - optionalDependencies: - ioredis: 5.7.0 - update-browserslist-db@1.1.3(browserslist@4.25.3): dependencies: browserslist: 4.25.3 @@ -29585,23 +27948,6 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): - dependencies: - esbuild: 0.25.9 - fdir: 6.5.0(picomatch@4.0.3) - picomatch: 4.0.3 - postcss: 8.5.6 - rollup: 4.46.4 - tinyglobby: 0.2.14 - optionalDependencies: - '@types/node': 22.17.2 - fsevents: 2.3.3 - jiti: 2.6.1 - lightningcss: 1.30.2 - terser: 5.43.1 - tsx: 4.20.5 - yaml: 2.8.1 - vite@6.3.5(@types/node@24.3.0)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: esbuild: 0.25.9 @@ -29619,10 +27965,6 @@ snapshots: tsx: 4.20.5 yaml: 2.8.1 - vitefu@1.1.1(vite@6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)): - optionalDependencies: - vite: 6.3.5(@types/node@22.17.2)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1) - vitest@3.2.4(@types/debug@4.1.12)(@types/node@20.19.11)(@vitest/browser@3.0.5)(jiti@2.6.1)(jsdom@25.0.1)(lightningcss@1.30.2)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1): dependencies: '@types/chai': 5.2.2 @@ -29710,93 +28052,8 @@ snapshots: - tsx - yaml - volar-service-css@0.0.62(@volar/language-service@2.4.23): - dependencies: - vscode-css-languageservice: 6.3.7 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - - volar-service-emmet@0.0.62(@volar/language-service@2.4.23): - dependencies: - '@emmetio/css-parser': 0.4.0 - '@emmetio/html-matcher': 1.3.0 - '@vscode/emmet-helper': 2.11.0 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - - volar-service-html@0.0.62(@volar/language-service@2.4.23): - dependencies: - vscode-html-languageservice: 5.5.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - - volar-service-prettier@0.0.62(@volar/language-service@2.4.23)(prettier@3.6.2): - dependencies: - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - prettier: 3.6.2 - - volar-service-typescript-twoslash-queries@0.0.62(@volar/language-service@2.4.23): - dependencies: - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - - volar-service-typescript@0.0.62(@volar/language-service@2.4.23): - dependencies: - path-browserify: 1.0.1 - semver: 7.7.2 - typescript-auto-import-cache: 0.3.6 - vscode-languageserver-textdocument: 1.0.12 - vscode-nls: 5.2.0 - vscode-uri: 3.1.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - - volar-service-yaml@0.0.62(@volar/language-service@2.4.23): - dependencies: - vscode-uri: 3.1.0 - yaml-language-server: 1.15.0 - optionalDependencies: - '@volar/language-service': 2.4.23 - - vscode-css-languageservice@6.3.7: - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - - vscode-html-languageservice@5.5.1: - dependencies: - '@vscode/l10n': 0.0.18 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-uri: 3.1.0 - - vscode-json-languageservice@4.1.8: - dependencies: - jsonc-parser: 3.3.1 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-nls: 5.2.0 - vscode-uri: 3.1.0 - - vscode-jsonrpc@6.0.0: {} - vscode-jsonrpc@8.2.0: {} - vscode-languageserver-protocol@3.16.0: - dependencies: - vscode-jsonrpc: 6.0.0 - vscode-languageserver-types: 3.16.0 - vscode-languageserver-protocol@3.17.5: dependencies: vscode-jsonrpc: 8.2.0 @@ -29804,24 +28061,14 @@ snapshots: vscode-languageserver-textdocument@1.0.12: {} - vscode-languageserver-types@3.16.0: {} - vscode-languageserver-types@3.17.5: {} - vscode-languageserver@7.0.0: - dependencies: - vscode-languageserver-protocol: 3.16.0 - vscode-languageserver@9.0.1: dependencies: vscode-languageserver-protocol: 3.17.5 - vscode-nls@5.2.0: {} - vscode-uri@3.0.8: {} - vscode-uri@3.1.0: {} - w3c-keyname@2.2.8: {} w3c-xmlserializer@5.0.0: @@ -29926,8 +28173,6 @@ snapshots: is-weakmap: 2.0.2 is-weakset: 2.0.4 - which-pm-runs@1.1.0: {} - which-typed-array@1.1.19: dependencies: available-typed-arrays: 1.0.7 @@ -29953,10 +28198,6 @@ snapshots: dependencies: string-width: 5.1.2 - widest-line@5.0.0: - dependencies: - string-width: 7.2.0 - wildcard@1.1.2: {} word-wrap@1.2.5: {} @@ -29981,12 +28222,6 @@ snapshots: string-width: 5.1.2 strip-ansi: 7.1.0 - wrap-ansi@9.0.0: - dependencies: - ansi-styles: 6.2.1 - string-width: 7.2.0 - strip-ansi: 7.1.0 - wrappy@1.0.2: {} ws@8.17.1: {} @@ -29999,8 +28234,6 @@ snapshots: xtend@4.0.2: {} - xxhash-wasm@1.1.0: {} - y18n@5.0.8: {} yallist@3.1.1: {} @@ -30009,25 +28242,8 @@ snapshots: yallist@5.0.0: {} - yaml-language-server@1.15.0: - dependencies: - ajv: 8.17.1 - lodash: 4.17.21 - request-light: 0.5.8 - vscode-json-languageservice: 4.1.8 - vscode-languageserver: 7.0.0 - vscode-languageserver-textdocument: 1.0.12 - vscode-languageserver-types: 3.17.5 - vscode-nls: 5.2.0 - vscode-uri: 3.1.0 - yaml: 2.2.2 - optionalDependencies: - prettier: 2.8.7 - yaml@1.10.2: {} - yaml@2.2.2: {} - yaml@2.3.1: {} yaml@2.8.1: {} @@ -30044,11 +28260,6 @@ snapshots: y18n: 5.0.8 yargs-parser: 21.1.1 - yauzl@2.10.0: - dependencies: - buffer-crc32: 0.2.13 - fd-slicer: 1.1.0 - yjs@13.6.19: dependencies: lib0: 0.2.114 @@ -30059,14 +28270,8 @@ snapshots: yocto-queue@1.2.1: {} - yocto-spinner@0.2.3: - dependencies: - yoctocolors: 2.1.2 - yoctocolors-cjs@2.1.2: {} - yoctocolors@2.1.2: {} - zip-stream@4.1.1: dependencies: archiver-utils: 3.0.4 @@ -30079,21 +28284,10 @@ snapshots: compress-commons: 5.0.3 readable-stream: 3.6.2 - zod-to-json-schema@3.24.6(zod@3.25.76): - dependencies: - zod: 3.25.76 - - zod-to-ts@1.2.0(typescript@5.9.2)(zod@3.25.76): - dependencies: - typescript: 5.9.2 - zod: 3.25.76 - zod-validation-error@5.0.0(zod@3.25.76): dependencies: zod: 3.25.76 - zod@3.23.8: {} - zod@3.25.76: {} zod@4.0.0-beta.20250424T163858: diff --git a/self-host/caddy/Caddyfile b/self-host/caddy/Caddyfile index d381c02f35..4efdbcd159 100644 --- a/self-host/caddy/Caddyfile +++ b/self-host/caddy/Caddyfile @@ -3,9 +3,9 @@ } example.com { - # keep this if you want your files to be accessible at example.com/a* + # keep this if you want your files to be accessible at example.com/assets* # this should instead be a subdomain, like assets.example.com - handle_path /a* { + handle_path /assets* { reverse_proxy minio:9000 } @@ -18,16 +18,24 @@ example.com { } # serve static sites from s3/minio - # requires caddy built with s3fs module (see Dockerfile.caddy) - handle_path /sites/* { - root * /sites - file_server { - fs s3 { - bucket {$S3_BUCKET_NAME:assets} - region {$S3_REGION:us-east-1} - endpoint {$S3_ENDPOINT:http://minio:9000} - access_key {$S3_ACCESS_KEY} - secret_key {$S3_SECRET_KEY} + handle_path /sites/* { + @pathWithSlash path_regexp dir (.+)/$ + handle @pathWithSlash { + redir {re.dir.1} permanent + } + + rewrite * /assets{uri} + + reverse_proxy host.docker.internal:{minio_port} { + @error status 403 404 + handle_response @error { + rewrite * {uri}/index.html + reverse_proxy host.docker.internal:{minio_port} { + @nestedError status 404 + handle_response @nestedError { + respond "Not found" 404 + } + } } } } diff --git a/self-host/docker-compose.yml b/self-host/docker-compose.yml index 3cc5be40c5..30604e10a6 100644 --- a/self-host/docker-compose.yml +++ b/self-host/docker-compose.yml @@ -13,7 +13,7 @@ services: minio-init: condition: service_completed_successfully platform: linux/amd64 - image: ghcr.io/pubpub/platform:latest + image: ghcr.io/knowledgefutures/pubplatform:latest env_file: .env environment: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} @@ -29,7 +29,7 @@ services: db: condition: service_started platform: linux/amd64 - image: ghcr.io/pubpub/platform-jobs:latest + image: ghcr.io/knowledgefutures/pubplatform-jobs:latest env_file: .env environment: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} @@ -67,7 +67,7 @@ services: # note: requires the caddy-sites image built from Dockerfile.caddy # you can build it with: docker build -f Dockerfile.caddy -t ghcr.io/pubpub/caddy-sites:latest . caddy: - image: ghcr.io/pubpub/caddy-sites:latest + image: caddy:latest depends_on: - platform - platform-jobs @@ -90,7 +90,13 @@ services: image: minio/minio:latest env_file: .env healthcheck: - test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/ready"] + test: + [ + "CMD", + "curl", + "-f", + "http://localhost:9000/minio/health/ready", + ] interval: 1m30s timeout: 30s retries: 5 From 568d57b9f01f6a42b00aece301dd9a8f504a4ada Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 13:30:52 +0200 Subject: [PATCH 066/153] fix: readd sitebuilder image to test --- .github/workflows/e2e.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index a03400b9d2..10735368a5 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -87,6 +87,7 @@ jobs: run: | echo "core_label=ghcr.io/knowledgefutures/platform:$IMAGE_TAG" >> $GITHUB_OUTPUT echo "jobs_label=ghcr.io/knowledgefutures/platform-jobs:$IMAGE_TAG" >> $GITHUB_OUTPUT + echo "site_builder_label=ghcr.io/knowledgefutures/platform-site-builder:$IMAGE_TAG" >> $GITHUB_OUTPUT - name: Install dependencies run: pnpm install --frozen-lockfile --prefer-offline @@ -110,6 +111,7 @@ jobs: env: INTEGRATION_TESTS_IMAGE: ${{ steps.label.outputs.core_label }} JOBS_IMAGE: ${{ steps.label.outputs.jobs_label }} + SITE_BUILDER_IMAGE: ${{ steps.label.outputs.site_builder_label }} - name: Log out Container ID for health check id: log-container-id @@ -131,6 +133,7 @@ jobs: env: INTEGRATION_TESTS_IMAGE: ${{steps.label.outputs.core_label}} JOBS_IMAGE: ${{steps.label.outputs.jobs_label}} + SITE_BUILDER_IMAGE: ${{steps.label.outputs.site_builder_label}} - name: Upload core playwright snapshots artifact if: failure() && matrix.package == 'core' From 3a9874a6e868a3e8a30cf308af36a5f602083f88 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 13:33:52 +0200 Subject: [PATCH 067/153] fix: better error reporting --- core/lib/server/migrate.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/lib/server/migrate.ts b/core/lib/server/migrate.ts index 4b2fa60db6..31e513baac 100644 --- a/core/lib/server/migrate.ts +++ b/core/lib/server/migrate.ts @@ -157,6 +157,9 @@ export async function runMigrations() { .set({ logs: String(err) }) .where("id", "=", id) .execute() + + logger.error({ msg: `Error applying migration ${dir}`, sql: migrationSql, err }) + throw err } From 1e5204d3efb4693399a9fb98d1db5366dd1ce0bd Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 13:37:15 +0200 Subject: [PATCH 068/153] fix: cascade drop --- .../migration.sql | 37 +++++++++++++------ 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql b/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql index 61103ae9e7..60d8973667 100644 --- a/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql +++ b/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql @@ -1,20 +1,35 @@ /* - Warnings: - - - The values [buildJournalSite] on the enum `Action` will be removed. If these variants are still used in the database, this will fail. - -*/ + Warnings: + - The values [buildJournalSite] on the enum `Action` will be removed. If these variants are still used in the database, this will fail. + */ -- Delete buildJournalSite action instances -DELETE FROM "action_instances" WHERE "action" = 'buildJournalSite'; -DELETE FROM "action_config_defaults" WHERE "action" = 'buildJournalSite'; +DELETE FROM "action_instances" +WHERE "action" = 'buildJournalSite'; + +DELETE FROM "action_config_defaults" +WHERE "action" = 'buildJournalSite'; -- AlterEnum BEGIN; -CREATE TYPE "Action_new" AS ENUM ('log', 'email', 'http', 'move', 'googleDriveImport', 'datacite', 'buildSite', 'createPub'); -ALTER TABLE "action_instances" ALTER COLUMN "action" TYPE "Action_new" USING ("action"::text::"Action_new"); -ALTER TABLE "action_config_defaults" ALTER COLUMN "action" TYPE "Action_new" USING ("action"::text::"Action_new"); +CREATE TYPE "Action_new" AS ENUM( + 'log', + 'email', + 'http', + 'move', + 'googleDriveImport', + 'datacite', + 'buildSite', + 'createPub' +); +ALTER TABLE "action_instances" + ALTER COLUMN "action" TYPE "Action_new" + USING ("action"::text::"Action_new"); +ALTER TABLE "action_config_defaults" + ALTER COLUMN "action" TYPE "Action_new" + USING ("action"::text::"Action_new"); ALTER TYPE "Action" RENAME TO "Action_old"; ALTER TYPE "Action_new" RENAME TO "Action"; -DROP TYPE "Action_old"; +DROP TYPE "Action_old" CASCADE; COMMIT; + From d50ea1440c5897227dd39125cfccd4a1c5a27c84 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 13:48:20 +0200 Subject: [PATCH 069/153] fix: allow inbucket --- infra/Caddyfile.gateway | 2 +- infra/stack.preview.yml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index d005aa4990..a0cdb60a53 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -49,7 +49,7 @@ } } - handle_path /emails/* { + handle_path /emails* { reverse_proxy host.docker.internal:{inbucket_port} } diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index ae3d1317a1..047bfcbc5b 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -129,6 +129,8 @@ services: inbucket: image: inbucket/inbucket:latest networks: [appnet] + environment: + INBUCKET_WEB_BASEPATH: /emails ports: - target: 9000 published: ${INBUCKET_PORT} From 4ee8bcd3b6f19e6786857bf650f4d296f3cd0003 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 13:49:58 +0200 Subject: [PATCH 070/153] fix: expose mock notify server port --- infra/Caddyfile.gateway | 10 +++++++--- infra/stack.preview.yml | 14 ++++++++++++++ 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index a0cdb60a53..159cb6687d 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -8,13 +8,17 @@ on_demand } - map {labels.2} {platform_port} {builder_port} {minio_port} {minio_console_port} {inbucket_port} { - ~^pr-(\d+)$ "1$1" "2$1" "3$1" "4$1" "5$1" - default "" "" "" "" "" + map {labels.2} {platform_port} {builder_port} {minio_port} {minio_console_port} {inbucket_port} {mock_notify_port} { + ~^pr-(\d+)$ "1$1" "2$1" "3$1" "4$1" "5$1" "6$1" + default "" "" "" "" "" "" } encode gzip + handle_path /mock-notify* { + reverse_proxy host.docker.internal:{mock_notify_port} + } + handle_path /assets* { reverse_proxy host.docker.internal:{minio_port} } diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 047bfcbc5b..d7b771f55a 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -140,6 +140,20 @@ services: replicas: 1 restart_policy: condition: any + + mock-notify: + image: ghcr.io/knowledgefutures/mock-notify-server:${IMAGE_TAG} + networks: [appnet] + ports: + - target: 8080 + published: ${MOCK_NOTIFY_PORT} + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: on-failure + max_attempts: 5 networks: appnet: From cc42f5bedc7a638f3ef8d33a4c0f11817919274e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 14:01:31 +0200 Subject: [PATCH 071/153] fix(skip-build): set env vars correctly --- .github/workflows/deploy-stack.yml | 3 ++- infra/Caddyfile.gateway | 9 +++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 2a186858af..ab8975016f 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -143,11 +143,12 @@ jobs: MINIO_PORT="3${PR_NUM}" MINIO_CONSOLE_PORT="4${PR_NUM}" INBUCKET_PORT="5${PR_NUM}" + MOCK_NOTIFY_PORT="6${PR_NUM}" sudo env IMAGE_TAG="$IMAGE_TAG" DEPLOY_HOST="$DEPLOY_HOST" \ PLATFORM_PORT="$PLATFORM_PORT" BUILDER_PORT="$BUILDER_PORT" \ MINIO_PORT="$MINIO_PORT" MINIO_CONSOLE_PORT="$MINIO_CONSOLE_PORT" \ - INBUCKET_PORT="$INBUCKET_PORT" \ + INBUCKET_PORT="$INBUCKET_PORT" MOCK_NOTIFY_PORT="$MOCK_NOTIFY_PORT" \ docker stack deploy -c "$STACK_FILE" \ --with-registry-auth --resolve-image always --prune "$STACK_NAME" diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index 159cb6687d..fb099d9b64 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -8,6 +8,7 @@ on_demand } + # this is configured in the deploy-stack.yml workflow map {labels.2} {platform_port} {builder_port} {minio_port} {minio_console_port} {inbucket_port} {mock_notify_port} { ~^pr-(\d+)$ "1$1" "2$1" "3$1" "4$1" "5$1" "6$1" default "" "" "" "" "" "" @@ -15,10 +16,6 @@ encode gzip - handle_path /mock-notify* { - reverse_proxy host.docker.internal:{mock_notify_port} - } - handle_path /assets* { reverse_proxy host.docker.internal:{minio_port} } @@ -57,6 +54,10 @@ reverse_proxy host.docker.internal:{inbucket_port} } + handle_path /mock-notify* { + reverse_proxy host.docker.internal:{mock_notify_port} + } + handle { reverse_proxy host.docker.internal:{platform_port} } From 6f16004d8983bc89630b9dc8129e6e4779cfb5c1 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 14:13:04 +0200 Subject: [PATCH 072/153] fix: correct mock notify --- Dockerfile | 2 -- infra/stack.preview.yml | 4 +++- mock-notify/next.config.ts | 1 + 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a554830d7d..b454d542c8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -134,8 +134,6 @@ WORKDIR /usr/src/app COPY --from=withpackage --chown=node:node /usr/src/app/core/.next/standalone ./ COPY --from=withpackage --chown=node:node /usr/src/app/core/.next/static ./core/.next/static COPY --from=withpackage --chown=node:node /usr/src/app/core/public ./core/public -# needed to set the database url correctly based on PGHOST variables -COPY --from=withpackage --chown=node:node /usr/src/app/core/.env.docker ./core/.env # migration sql files, applied automatically during startup instrumentation COPY --from=withpackage --chown=node:node /usr/src/app/core/prisma/migrations ./core/prisma/migrations diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index d7b771f55a..a19d9953b5 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -142,8 +142,10 @@ services: condition: any mock-notify: - image: ghcr.io/knowledgefutures/mock-notify-server:${IMAGE_TAG} + image: ghcr.io/knowledgefutures/mock-coar-notify-server:${IMAGE_TAG} networks: [appnet] + environment: + BASE_PATH: /mock-notify ports: - target: 8080 published: ${MOCK_NOTIFY_PORT} diff --git a/mock-notify/next.config.ts b/mock-notify/next.config.ts index f172758858..e0b3350f80 100644 --- a/mock-notify/next.config.ts +++ b/mock-notify/next.config.ts @@ -2,6 +2,7 @@ import type { NextConfig } from "next" const nextConfig: NextConfig = { reactStrictMode: true, + basePath: process.env.BASE_PATH || "", } export default nextConfig From 276fe32421cb34a3f09aa90c2ad3761e02165766 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 14:41:14 +0200 Subject: [PATCH 073/153] fix: fix things --- .github/workflows/deploy-stack.yml | 3 +++ .github/workflows/ghcr-build-all.yml | 1 - Dockerfile | 9 +++++++++ infra/Caddyfile.gateway | 2 +- infra/stack.preview.yml | 4 +--- mock-notify/next.config.ts | 1 + 6 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index ab8975016f..c448d6b582 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -135,6 +135,9 @@ jobs: if [[ "$USES_GATEWAY" == "true" ]]; then echo "deploying gateway stack..." sudo docker stack deploy -c stack.gateway.yml --prune gateway + # caddy reads its config once at startup, force a restart so it + # picks up any changes to the bind-mounted Caddyfile + sudo docker service update --force gateway_proxy # derive host ports from PR number (prefix digit + pr number) PR_NUM="${STACK_NAME##*-}" diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index 3139648d6f..6698821132 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -64,7 +64,6 @@ jobs: uses: ./.github/workflows/ghcr-build-template.yml with: package: mock-notify - target: jobs ghcr_image_name: mock-coar-notify-server publish_latest: ${{ inputs.publish_latest }} image_tag: ${{ inputs.image_tag }} diff --git a/Dockerfile b/Dockerfile index b454d542c8..fed7443dd6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -138,3 +138,12 @@ COPY --from=withpackage --chown=node:node /usr/src/app/core/public ./core/public COPY --from=withpackage --chown=node:node /usr/src/app/core/prisma/migrations ./core/prisma/migrations CMD ["node", "--enable-source-maps", "core/server.js"] + +### Mock Notify + +FROM prod-setup AS next-app-mock-notify +WORKDIR /usr/src/app +COPY --from=withpackage --chown=node:node /usr/src/app/mock-notify/.next/standalone ./ +COPY --from=withpackage --chown=node:node /usr/src/app/mock-notify/.next/static ./mock-notify/.next/static + +CMD ["node", "mock-notify/server.js"] diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index fb099d9b64..716e0827f4 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -50,7 +50,7 @@ } } - handle_path /emails* { + handle /emails* { reverse_proxy host.docker.internal:{inbucket_port} } diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index a19d9953b5..bd090bc402 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -144,10 +144,8 @@ services: mock-notify: image: ghcr.io/knowledgefutures/mock-coar-notify-server:${IMAGE_TAG} networks: [appnet] - environment: - BASE_PATH: /mock-notify ports: - - target: 8080 + - target: 3000 published: ${MOCK_NOTIFY_PORT} protocol: tcp mode: host diff --git a/mock-notify/next.config.ts b/mock-notify/next.config.ts index e0b3350f80..2eb04d5c31 100644 --- a/mock-notify/next.config.ts +++ b/mock-notify/next.config.ts @@ -3,6 +3,7 @@ import type { NextConfig } from "next" const nextConfig: NextConfig = { reactStrictMode: true, basePath: process.env.BASE_PATH || "", + output: "standalone", } export default nextConfig From a0eecf7d40a19fe00521c010ed98974fdf42fae6 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 15:07:13 +0200 Subject: [PATCH 074/153] fix: debug automation run --- core/actions/api/serverAction.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/actions/api/serverAction.tsx b/core/actions/api/serverAction.tsx index 3a549f084a..1ef3f36c2f 100644 --- a/core/actions/api/serverAction.tsx +++ b/core/actions/api/serverAction.tsx @@ -5,6 +5,7 @@ import type { RunAutomationArgs } from "../_lib/runAutomation" import type { AutomationRunResult } from "../results" import { AutomationEvent, Capabilities, MembershipType } from "db/public" +import { logger } from "logger" import { getLoginData } from "~/lib/authentication/loginData" import { userCan } from "~/lib/authorization/capabilities" @@ -12,7 +13,7 @@ import { defineServerAction } from "~/lib/server/defineServerAction" import { runAutomation } from "../_lib/runAutomation" import { getActionByName } from "." -export const runAutomationManual = defineServerAction(async function runActionInstance( +export const runAutomationManual = defineServerAction(async function runAutomationManual( args: Omit & { manualActionInstancesOverrideArgs: { [actionInstanceId: ActionInstancesId]: Record @@ -85,6 +86,8 @@ export const runAutomationManual = defineServerAction(async function runActionIn }) if (!result.success) { + logger.error({ msg: "Automation run failed", result }) + return { success: false, error: result.actionRuns From 81e9970385f0c4a9ecc19063187e78bb71abb049 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 15:08:30 +0200 Subject: [PATCH 075/153] fix: invert prose in dark mode --- packages/ui/src/editors/LexicalEditor.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ui/src/editors/LexicalEditor.tsx b/packages/ui/src/editors/LexicalEditor.tsx index 21377531aa..2aa2ac8850 100644 --- a/packages/ui/src/editors/LexicalEditor.tsx +++ b/packages/ui/src/editors/LexicalEditor.tsx @@ -96,7 +96,7 @@ export const LexicalEditor = (props: LexicalEditorProps) => { ariaLabelledBy={props["aria-labelledby"]} className={cn( "editor", - "prose prose-sm", + "prose prose-sm dark:prose-invert", props.singleLine ? "min-h-5" : "min-h-[200px]", // Copied from ui/src/input.tsx "w-full min-w-0 rounded-md border border-input bg-background px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30", From 5bbd6397da6e68f7de0bcdcd30ad120d43e024f4 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 15:11:02 +0200 Subject: [PATCH 076/153] fix: correct notify subpath --- .github/workflows/ghcr-build-all.yml | 1 + .github/workflows/ghcr-build-template.yml | 5 +++++ Dockerfile | 3 +++ core/prisma/seeds/coar-notify.ts | 2 +- infra/Caddyfile.gateway | 2 +- infra/stack.preview.yml | 1 + 6 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ghcr-build-all.yml b/.github/workflows/ghcr-build-all.yml index 6698821132..1b63f91879 100644 --- a/.github/workflows/ghcr-build-all.yml +++ b/.github/workflows/ghcr-build-all.yml @@ -64,6 +64,7 @@ jobs: uses: ./.github/workflows/ghcr-build-template.yml with: package: mock-notify + base_path: /mock-notify ghcr_image_name: mock-coar-notify-server publish_latest: ${{ inputs.publish_latest }} image_tag: ${{ inputs.image_tag }} diff --git a/.github/workflows/ghcr-build-template.yml b/.github/workflows/ghcr-build-template.yml index 246eb9d86a..1daaf6c96f 100644 --- a/.github/workflows/ghcr-build-template.yml +++ b/.github/workflows/ghcr-build-template.yml @@ -19,6 +19,10 @@ on: image_tag: type: string description: "Override the image tag (e.g. v1.2.3). Falls back to git describe." + base_path: + type: string + default: "" + description: "Base path for Next.js apps (e.g. /mock-notify). Baked into the build." outputs: image-sha: description: 'Full GHCR image ref with SHA tag' @@ -85,6 +89,7 @@ jobs: build-args: | PACKAGE=${{ inputs.package }} CI=true + BASE_PATH=${{ inputs.base_path }} secrets: | SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} target: ${{ steps.label.outputs.target }} diff --git a/Dockerfile b/Dockerfile index fed7443dd6..b737df72d9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -78,6 +78,9 @@ ENV DOCKERBUILD=1 ARG CI ENV CI=$CI +ARG BASE_PATH="" +ENV BASE_PATH=$BASE_PATH + RUN --mount=type=secret,id=SENTRY_AUTH_TOKEN,env=SENTRY_AUTH_TOKEN \ pnpm --filter $PACKAGE build diff --git a/core/prisma/seeds/coar-notify.ts b/core/prisma/seeds/coar-notify.ts index a9e927a4e9..c6481609e1 100644 --- a/core/prisma/seeds/coar-notify.ts +++ b/core/prisma/seeds/coar-notify.ts @@ -12,7 +12,7 @@ import { env } from "~/lib/env/env" import { seedCommunity } from "../seed/seedCommunity" const WEBHOOK_PATH = "coar-inbox" -const REMOTE_INBOX_URL = "http://localhost:4001/api/inbox" +const REMOTE_INBOX_URL = process.env.MOCK_NOTIFY_INBOX_URL ?? "http://localhost:4001/api/inbox" const adminId = "dddddddd-dddd-4ddd-dddd-dddddddddd01" as UsersId const joeAuthorId = "dddddddd-dddd-4ddd-dddd-dddddddddd02" as UsersId diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index 716e0827f4..14d1672e26 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -54,7 +54,7 @@ reverse_proxy host.docker.internal:{inbucket_port} } - handle_path /mock-notify* { + handle /mock-notify* { reverse_proxy host.docker.internal:{mock_notify_port} } diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index bd090bc402..f4bedc49f4 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -16,6 +16,7 @@ services: FLAGS: "uploads:off,invites:off,disabled-actions:http+email" DB_RESET: "true" DB_SEED: "true" + MOCK_NOTIFY_INBOX_URL: http://mock-notify:3000/mock-notify/api/inbox networks: [appnet] ports: - target: 3000 From 6427290fe813e0b65324030068449e88ecf67a57 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 15:49:44 +0200 Subject: [PATCH 077/153] feat: set correct urls for mock-notify --- .../developers/docs/openapi.json/openApi.ts | 4 +- infra/stack.preview.yml | 2 + mock-notify/next.config.ts | 7 +- mock-notify/src/app/components/HomeClient.tsx | 179 ++++++++++++++++++ .../src/app/components/NotificationCard.tsx | 7 +- .../app/components/SendNotificationForm.tsx | 102 +++++----- mock-notify/src/app/page.tsx | 175 +---------------- .../app/reviews/sample-review/docmap/route.ts | 7 +- .../src/app/reviews/sample-review/route.ts | 7 +- mock-notify/src/lib/urls.ts | 9 + 10 files changed, 277 insertions(+), 222 deletions(-) create mode 100644 mock-notify/src/app/components/HomeClient.tsx create mode 100644 mock-notify/src/lib/urls.ts diff --git a/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts b/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts index 51c534e8e7..5bdced24fc 100644 --- a/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts +++ b/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts @@ -6,6 +6,8 @@ import { generateOpenApi } from "@ts-rest/open-api" import { siteApi } from "contracts" +import { env } from "~/lib/env/env" + type TraverseContractResult = "SKIP" | "CONTINUE" | "STOP" const traverseContract = ( @@ -54,7 +56,7 @@ export const createOpenApiDocument = (communitySlug?: string): OpenAPIObject => description: "The development API server", }, { - url: "https://app.pubpub.org/", + url: env.PUBPUB_URL, description: "The production API server", }, ], diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index f4bedc49f4..7f84f8c233 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -145,6 +145,8 @@ services: mock-notify: image: ghcr.io/knowledgefutures/mock-coar-notify-server:${IMAGE_TAG} networks: [appnet] + environment: + PUBPUB_URL: https://${DEPLOY_HOST} ports: - target: 3000 published: ${MOCK_NOTIFY_PORT} diff --git a/mock-notify/next.config.ts b/mock-notify/next.config.ts index 2eb04d5c31..d264af46c1 100644 --- a/mock-notify/next.config.ts +++ b/mock-notify/next.config.ts @@ -1,9 +1,14 @@ import type { NextConfig } from "next" +const basePath = process.env.BASE_PATH || "" + const nextConfig: NextConfig = { reactStrictMode: true, - basePath: process.env.BASE_PATH || "", + basePath, output: "standalone", + env: { + NEXT_PUBLIC_BASE_PATH: basePath, + }, } export default nextConfig diff --git a/mock-notify/src/app/components/HomeClient.tsx b/mock-notify/src/app/components/HomeClient.tsx new file mode 100644 index 0000000000..e1bf4cabff --- /dev/null +++ b/mock-notify/src/app/components/HomeClient.tsx @@ -0,0 +1,179 @@ +"use client" + +import type { PayloadTemplateType } from "~/lib/payloads" +import type { StoredNotification } from "~/lib/store" +import type { AppConfig } from "~/lib/urls" + +import { useCallback, useEffect, useRef, useState } from "react" + +import { apiUrl } from "~/lib/urls" +import { NotificationCard, type ResponsePrefill } from "./NotificationCard" +import { SendNotificationForm } from "./SendNotificationForm" + +export function HomeClient({ config }: { config: AppConfig }) { + const [notifications, setNotifications] = useState([]) + const [filter, setFilter] = useState<"all" | "received" | "sent">("all") + const [isLoading, setIsLoading] = useState(true) + const [prefill, setPrefill] = useState(undefined) + const [formKey, setFormKey] = useState(0) + const formRef = useRef(null) + + const fetchNotifications = useCallback(async () => { + try { + const params = filter !== "all" ? `?direction=${filter}` : "" + const res = await fetch(apiUrl(`/api/notifications${params}`)) + const data = await res.json() + setNotifications(data.notifications) + } catch (error) { + // biome-ignore lint/suspicious/noConsole: shh + console.error("Failed to fetch notifications:", error) + } finally { + setIsLoading(false) + } + }, [filter]) + + useEffect(() => { + void fetchNotifications() + const interval = setInterval(fetchNotifications, 2000) + return () => clearInterval(interval) + }, [fetchNotifications]) + + const handleClearAll = async () => { + if (!confirm("Are you sure you want to clear all notifications?")) return + + await fetch(apiUrl("/api/notifications"), { method: "DELETE" }) + setNotifications([]) + } + + const handleDelete = async (id: string) => { + await fetch(apiUrl(`/api/notifications/${id}`), { method: "DELETE" }) + setNotifications((prev) => prev.filter((n) => n.id !== id)) + } + + const handleRespond = (_responseType: PayloadTemplateType, newPrefill: ResponsePrefill) => { + setPrefill(newPrefill) + setFormKey((k) => k + 1) + formRef.current?.scrollIntoView({ behavior: "smooth", block: "start" }) + } + + const handleSent = () => { + setPrefill(undefined) + void fetchNotifications() + } + + const receivedCount = notifications.filter((n) => n.direction === "received").length + const sentCount = notifications.filter((n) => n.direction === "sent").length + + return ( +
+
+
+ {/* Send Notification Form */} +
+ + {prefill && ( + + )} +
+ + {/* Notifications List */} +
+
+ {/* Header with filters */} +
+
+

Notifications

+
+ + + +
+
+ + {notifications.length > 0 && ( + + )} +
+ + {/* Notifications */} +
+ {isLoading ? ( +
+ Loading notifications... +
+ ) : notifications.length === 0 ? ( +
+ No notifications yet. Send one or wait for incoming + requests. +
+ ) : ( + notifications.map((notification, index) => ( + handleDelete(notification.id)} + onRespond={handleRespond} + /> + )) + )} +
+
+
+
+
+
+ ) +} diff --git a/mock-notify/src/app/components/NotificationCard.tsx b/mock-notify/src/app/components/NotificationCard.tsx index 2dff1e6979..a9221c179e 100644 --- a/mock-notify/src/app/components/NotificationCard.tsx +++ b/mock-notify/src/app/components/NotificationCard.tsx @@ -1,6 +1,7 @@ "use client" import type { StoredNotification } from "~/lib/store" +import type { AppConfig } from "~/lib/urls" import { useState } from "react" @@ -11,6 +12,7 @@ import { } from "~/lib/payloads" interface NotificationCardProps { + config: AppConfig notification: StoredNotification notifications: StoredNotification[] onDelete: () => void @@ -28,6 +30,7 @@ export interface ResponsePrefill { } export function NotificationCard({ + config, notification, notifications, onDelete, @@ -134,7 +137,7 @@ export function NotificationCard({ templateType: responseType, inReplyTo: payload.inReplyTo ?? payload.id, inReplyToObjectUrl, - originUrl: payload.origin?.id ?? "http://localhost:4001", + originUrl: payload.origin?.id ?? config.selfUrl, targetServiceUrl: payload.target?.id ?? "", } onRespond(responseType, prefill) @@ -146,7 +149,7 @@ export function NotificationCard({ templateType: responseType, inReplyTo: payload.id, inReplyToObjectUrl: payload.object?.id ?? "", - originUrl: "http://localhost:4001", + originUrl: config.selfUrl, targetServiceUrl: payload.origin?.id ?? "", } onRespond(responseType, prefill) diff --git a/mock-notify/src/app/components/SendNotificationForm.tsx b/mock-notify/src/app/components/SendNotificationForm.tsx index 58639f0a7f..939190b618 100644 --- a/mock-notify/src/app/components/SendNotificationForm.tsx +++ b/mock-notify/src/app/components/SendNotificationForm.tsx @@ -1,6 +1,7 @@ "use client" import type { CoarNotifyPayload } from "~/lib/store" +import type { AppConfig } from "~/lib/urls" import { useState } from "react" @@ -13,10 +14,11 @@ import { createRejectPayload, type PayloadTemplateType, } from "~/lib/payloads" +import { apiUrl } from "~/lib/urls" interface SendNotificationFormProps { + config: AppConfig onSent: () => void - /** Pre-fill values for a response to an existing notification */ prefill?: { targetUrl?: string templateType?: PayloadTemplateType @@ -38,73 +40,79 @@ const TEMPLATE_OPTIONS: PayloadTemplateType[] = [ "Reject", ] -export function SendNotificationForm({ onSent, prefill }: SendNotificationFormProps) { +function makeTemplateDefaults(pubpubUrl: string): Record< + PayloadTemplateType, + { targetUrl: string; targetServiceUrl: string } +> { + return { + "Offer Review": { + targetUrl: `${pubpubUrl}/api/v0/c/coar-us2-unjournal/site/webhook/coar-inbox`, + targetServiceUrl: `${pubpubUrl}/c/coar-us2-unjournal`, + }, + "Announce Review": { + targetUrl: `${pubpubUrl}/api/v0/c/coar-us1-arcadia/site/webhook/coar-inbox`, + targetServiceUrl: `${pubpubUrl}/c/coar-us1-arcadia`, + }, + "Offer Ingest": { + targetUrl: `${pubpubUrl}/api/v0/c/coar-us4-repository/site/webhook/coar-inbox`, + targetServiceUrl: `${pubpubUrl}/c/coar-us4-repository`, + }, + "Announce Ingest": { + targetUrl: `${pubpubUrl}/api/v0/c/coar-us4-repository/site/webhook/coar-inbox`, + targetServiceUrl: `${pubpubUrl}/c/coar-us4-repository`, + }, + Accept: { + targetUrl: `${pubpubUrl}/api/v0/c/coar-us1-arcadia/site/webhook/coar-inbox`, + targetServiceUrl: `${pubpubUrl}/c/coar-us1-arcadia`, + }, + Reject: { + targetUrl: `${pubpubUrl}/api/v0/c/coar-us1-arcadia/site/webhook/coar-inbox`, + targetServiceUrl: `${pubpubUrl}/c/coar-us1-arcadia`, + }, + } +} + +export function SendNotificationForm({ config, onSent, prefill }: SendNotificationFormProps) { + const { pubpubUrl, selfUrl } = config + const templateDefaults = makeTemplateDefaults(pubpubUrl) + const [mode, setMode] = useState("template") + const [targetUrl, setTargetUrl] = useState( - prefill?.targetUrl ?? - "http://localhost:3000/api/v0/c/coar-us2-unjournal/site/webhook/coar-inbox" + prefill?.targetUrl ?? templateDefaults["Offer Review"].targetUrl ) + const [templateType, setTemplateType] = useState( prefill?.templateType ?? "Offer Review" ) + const [customPayload, setCustomPayload] = useState("") const [isSending, setIsSending] = useState(false) const [error, setError] = useState(null) const [success, setSuccess] = useState(false) - // Template fields - using complete URLs instead of IDs const [objectUrl, setObjectUrl] = useState( prefill?.inReplyToObjectUrl ?? "https://www.biorxiv.org/content/10.1101/2024.01.01.123456" ) const [objectCiteAs, setObjectCiteAs] = useState("") const [objectItemUrl, setObjectItemUrl] = useState("") - const [reviewUrl, setReviewUrl] = useState("http://localhost:4001/reviews/sample-review") - const [originUrl, setOriginUrl] = useState(prefill?.originUrl ?? "http://localhost:4001") + const [reviewUrl, setReviewUrl] = useState(`${selfUrl}/reviews/sample-review`) + const [originUrl, setOriginUrl] = useState(prefill?.originUrl ?? selfUrl) const [targetServiceUrl, setTargetServiceUrl] = useState( - prefill?.targetServiceUrl ?? "http://localhost:3000" + prefill?.targetServiceUrl ?? pubpubUrl ) const [serviceName, setServiceName] = useState("Mock Review Service") const [inReplyTo, setInReplyTo] = useState(prefill?.inReplyTo ?? "") const [inReplyToUrl, setInReplyToUrl] = useState(prefill?.inReplyToObjectUrl ?? "") const [workUrl, setWorkUrl] = useState( - "http://localhost:3000/c/coar-us4-repository/pub/{pubId}" + `${pubpubUrl}/c/coar-us4-repository/pub/{pubId}` ) - // Default target URLs per template type for demo convenience - const TEMPLATE_DEFAULTS: Record< - PayloadTemplateType, - { targetUrl: string; targetServiceUrl: string } - > = { - "Offer Review": { - targetUrl: "http://localhost:3000/api/v0/c/coar-us2-unjournal/site/webhook/coar-inbox", - targetServiceUrl: "http://localhost:3000/c/coar-us2-unjournal", - }, - "Announce Review": { - targetUrl: "http://localhost:3000/api/v0/c/coar-us1-arcadia/site/webhook/coar-inbox", - targetServiceUrl: "http://localhost:3000/c/coar-us1-arcadia", - }, - "Offer Ingest": { - targetUrl: "http://localhost:3000/api/v0/c/coar-us4-repository/site/webhook/coar-inbox", - targetServiceUrl: "http://localhost:3000/c/coar-us4-repository", - }, - "Announce Ingest": { - targetUrl: "http://localhost:3000/api/v0/c/coar-us4-repository/site/webhook/coar-inbox", - targetServiceUrl: "http://localhost:3000/c/coar-us4-repository", - }, - Accept: { - targetUrl: "http://localhost:3000/api/v0/c/coar-us1-arcadia/site/webhook/coar-inbox", - targetServiceUrl: "http://localhost:3000/c/coar-us1-arcadia", - }, - Reject: { - targetUrl: "http://localhost:3000/api/v0/c/coar-us1-arcadia/site/webhook/coar-inbox", - targetServiceUrl: "http://localhost:3000/c/coar-us1-arcadia", - }, - } - const handleTemplateChange = (newType: PayloadTemplateType) => { setTemplateType(newType) + if (!prefill) { - const defaults = TEMPLATE_DEFAULTS[newType] + const defaults = templateDefaults[newType] setTargetUrl(defaults.targetUrl) setTargetServiceUrl(defaults.targetServiceUrl) } @@ -165,13 +173,14 @@ export function SendNotificationForm({ onSent, prefill }: SendNotificationFormPr try { let payload: CoarNotifyPayload + if (mode === "template") { payload = generatePayload() } else { payload = JSON.parse(customPayload) } - const res = await fetch("/api/send", { + const res = await fetch(apiUrl("/api/send"), { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify({ targetUrl, payload }), @@ -278,7 +287,6 @@ export function SendNotificationForm({ onSent, prefill }: SendNotificationFormPr type="text" value={reviewUrl} onChange={(e) => setReviewUrl(e.target.value)} - placeholder="http://localhost:4000/review/..." className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" /> @@ -290,7 +298,6 @@ export function SendNotificationForm({ onSent, prefill }: SendNotificationFormPr type="text" value={inReplyToUrl} onChange={(e) => setInReplyToUrl(e.target.value)} - placeholder="http://localhost:3000/c/community/pub/..." className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" /> @@ -344,7 +351,6 @@ export function SendNotificationForm({ onSent, prefill }: SendNotificationFormPr type="text" value={reviewUrl} onChange={(e) => setReviewUrl(e.target.value)} - placeholder="http://localhost:4001/review/..." className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" /> @@ -386,19 +392,18 @@ export function SendNotificationForm({ onSent, prefill }: SendNotificationFormPr type="text" value={reviewUrl} onChange={(e) => setReviewUrl(e.target.value)} - placeholder="http://localhost:4001/review/..." className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" />
@@ -533,7 +538,6 @@ export function SendNotificationForm({ onSent, prefill }: SendNotificationFormPr value={targetUrl} onChange={(e) => setTargetUrl(e.target.value)} className="w-full rounded-md border border-gray-300 px-3 py-2 text-sm focus:border-blue-500 focus:outline-none focus:ring-1 focus:ring-blue-500" - placeholder="http://localhost:3000/api/v0/c/..." />
diff --git a/mock-notify/src/app/page.tsx b/mock-notify/src/app/page.tsx index e0fa5fbf99..284ae6baeb 100644 --- a/mock-notify/src/app/page.tsx +++ b/mock-notify/src/app/page.tsx @@ -1,172 +1,17 @@ -"use client" +import type { AppConfig } from "~/lib/urls" -import type { PayloadTemplateType } from "~/lib/payloads" -import type { StoredNotification } from "~/lib/store" +import { HomeClient } from "./components/HomeClient" -import { useCallback, useEffect, useRef, useState } from "react" +const basePath = process.env.BASE_PATH || "" -import { NotificationCard, type ResponsePrefill } from "./components/NotificationCard" -import { SendNotificationForm } from "./components/SendNotificationForm" +export default function Page() { + const pubpubUrl = process.env.PUBPUB_URL || "http://localhost:3000" -export default function Home() { - const [notifications, setNotifications] = useState([]) - const [filter, setFilter] = useState<"all" | "received" | "sent">("all") - const [isLoading, setIsLoading] = useState(true) - const [prefill, setPrefill] = useState(undefined) - const [formKey, setFormKey] = useState(0) - const formRef = useRef(null) + const selfUrl = basePath + ? `${pubpubUrl}${basePath}` + : `http://localhost:${process.env.PORT || "4001"}` - const fetchNotifications = useCallback(async () => { - try { - const params = filter !== "all" ? `?direction=${filter}` : "" - const res = await fetch(`/api/notifications${params}`) - const data = await res.json() - setNotifications(data.notifications) - } catch (error) { - // biome-ignore lint/suspicious/noConsole: shh - console.error("Failed to fetch notifications:", error) - } finally { - setIsLoading(false) - } - }, [filter]) + const config: AppConfig = { pubpubUrl, selfUrl } - useEffect(() => { - void fetchNotifications() - // Poll for new notifications every 2 seconds - const interval = setInterval(fetchNotifications, 2000) - return () => clearInterval(interval) - }, [fetchNotifications]) - - const handleClearAll = async () => { - if (!confirm("Are you sure you want to clear all notifications?")) return - await fetch("/api/notifications", { method: "DELETE" }) - setNotifications([]) - } - - const handleDelete = async (id: string) => { - await fetch(`/api/notifications/${id}`, { method: "DELETE" }) - setNotifications((prev) => prev.filter((n) => n.id !== id)) - } - - const handleRespond = (_responseType: PayloadTemplateType, newPrefill: ResponsePrefill) => { - setPrefill(newPrefill) - // Force form to re-mount with new prefill values - setFormKey((k) => k + 1) - // Scroll to form - formRef.current?.scrollIntoView({ behavior: "smooth", block: "start" }) - } - - const handleSent = () => { - setPrefill(undefined) - void fetchNotifications() - } - - const receivedCount = notifications.filter((n) => n.direction === "received").length - const sentCount = notifications.filter((n) => n.direction === "sent").length - - return ( -
-
-
- {/* Send Notification Form */} -
- - {prefill && ( - - )} -
- - {/* Notifications List */} -
-
- {/* Header with filters */} -
-
-

Notifications

-
- - - -
-
- {notifications.length > 0 && ( - - )} -
- - {/* Notifications */} -
- {isLoading ? ( -
- Loading notifications... -
- ) : notifications.length === 0 ? ( -
- No notifications yet. Send one or wait for incoming - requests. -
- ) : ( - notifications.map((notification, index) => ( - handleDelete(notification.id)} - onRespond={handleRespond} - /> - )) - )} -
-
-
-
-
-
- ) + return } diff --git a/mock-notify/src/app/reviews/sample-review/docmap/route.ts b/mock-notify/src/app/reviews/sample-review/docmap/route.ts index c815b1e2fe..0bebb186ac 100644 --- a/mock-notify/src/app/reviews/sample-review/docmap/route.ts +++ b/mock-notify/src/app/reviews/sample-review/docmap/route.ts @@ -1,5 +1,8 @@ -const MOCK_BASE = "http://localhost:4001" -const REVIEW_URL = `${MOCK_BASE}/reviews/sample-review` +const basePath = process.env.BASE_PATH || "" +const pubpubUrl = process.env.PUBPUB_URL || "http://localhost:4001" + +const selfUrl = basePath ? `${pubpubUrl}${basePath}` : pubpubUrl +const REVIEW_URL = `${selfUrl}/reviews/sample-review` const CORS_HEADERS = { "Access-Control-Allow-Origin": "*", diff --git a/mock-notify/src/app/reviews/sample-review/route.ts b/mock-notify/src/app/reviews/sample-review/route.ts index 196862802b..c1f0111812 100644 --- a/mock-notify/src/app/reviews/sample-review/route.ts +++ b/mock-notify/src/app/reviews/sample-review/route.ts @@ -1,5 +1,8 @@ -const MOCK_BASE = "http://localhost:4001" -const REVIEW_URL = `${MOCK_BASE}/reviews/sample-review` +const basePath = process.env.BASE_PATH || "" +const pubpubUrl = process.env.PUBPUB_URL || "http://localhost:4001" + +const selfUrl = basePath ? `${pubpubUrl}${basePath}` : pubpubUrl +const REVIEW_URL = `${selfUrl}/reviews/sample-review` const CORS_HEADERS = { "Access-Control-Allow-Origin": "*", diff --git a/mock-notify/src/lib/urls.ts b/mock-notify/src/lib/urls.ts new file mode 100644 index 0000000000..0d44fee584 --- /dev/null +++ b/mock-notify/src/lib/urls.ts @@ -0,0 +1,9 @@ +const basePath = process.env.NEXT_PUBLIC_BASE_PATH ?? "" + +/** prefix a path with the app's basePath for client-side fetch calls */ +export const apiUrl = (path: string) => `${basePath}${path}` + +export interface AppConfig { + pubpubUrl: string + selfUrl: string +} From 2d80b5827ea9e3d57ae441ad2d5388e1333329b5 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 14 Apr 2026 16:08:16 +0200 Subject: [PATCH 078/153] fix: make coar page dynamic --- .../app/components/SendNotificationForm.tsx | 18 ++++++------------ mock-notify/src/app/page.tsx | 2 ++ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/mock-notify/src/app/components/SendNotificationForm.tsx b/mock-notify/src/app/components/SendNotificationForm.tsx index 939190b618..69f357a878 100644 --- a/mock-notify/src/app/components/SendNotificationForm.tsx +++ b/mock-notify/src/app/components/SendNotificationForm.tsx @@ -40,10 +40,9 @@ const TEMPLATE_OPTIONS: PayloadTemplateType[] = [ "Reject", ] -function makeTemplateDefaults(pubpubUrl: string): Record< - PayloadTemplateType, - { targetUrl: string; targetServiceUrl: string } -> { +function makeTemplateDefaults( + pubpubUrl: string +): Record { return { "Offer Review": { targetUrl: `${pubpubUrl}/api/v0/c/coar-us2-unjournal/site/webhook/coar-inbox`, @@ -98,15 +97,11 @@ export function SendNotificationForm({ config, onSent, prefill }: SendNotificati const [objectItemUrl, setObjectItemUrl] = useState("") const [reviewUrl, setReviewUrl] = useState(`${selfUrl}/reviews/sample-review`) const [originUrl, setOriginUrl] = useState(prefill?.originUrl ?? selfUrl) - const [targetServiceUrl, setTargetServiceUrl] = useState( - prefill?.targetServiceUrl ?? pubpubUrl - ) + const [targetServiceUrl, setTargetServiceUrl] = useState(prefill?.targetServiceUrl ?? pubpubUrl) const [serviceName, setServiceName] = useState("Mock Review Service") const [inReplyTo, setInReplyTo] = useState(prefill?.inReplyTo ?? "") const [inReplyToUrl, setInReplyToUrl] = useState(prefill?.inReplyToObjectUrl ?? "") - const [workUrl, setWorkUrl] = useState( - `${pubpubUrl}/c/coar-us4-repository/pub/{pubId}` - ) + const [workUrl, setWorkUrl] = useState(`${pubpubUrl}/c/coar-us4-repository/pub/{pubId}`) const handleTemplateChange = (newType: PayloadTemplateType) => { setTemplateType(newType) @@ -398,8 +393,7 @@ export function SendNotificationForm({ config, onSent, prefill }: SendNotificati
diff --git a/core/app/components/pubs/PubCard/PubCardClient.tsx b/core/app/components/pubs/PubCard/PubCardClient.tsx index 97d2fb2be9..28a3d3c207 100644 --- a/core/app/components/pubs/PubCard/PubCardClient.tsx +++ b/core/app/components/pubs/PubCard/PubCardClient.tsx @@ -193,7 +193,7 @@ export const PubCardHeader = ({ return (
{children}
diff --git a/core/lib/env/flags.ts b/core/lib/env/flags.ts index 075eecc536..bd497bae29 100644 --- a/core/lib/env/flags.ts +++ b/core/lib/env/flags.ts @@ -43,6 +43,21 @@ const flagSchema = z.union([ .transform((s) => (s ? s.split("+").map((a) => a.trim()) : [])) .pipe(actionSchema.array()), ]), + z.tuple([ + z.literal("http-allowed-domains"), + z + .string() + .optional() + .transform((s) => + s + ? s + .split("+") + .map((domain) => domain.trim()) + .filter((domain) => domain.length > 0) + : [] + ) + .pipe(z.string().array()), + ]), z.tuple([ z.literal("invites"), z.string().transform(flagStateToBoolean).optional().default("on"), @@ -51,6 +66,10 @@ const flagSchema = z.union([ z.literal("uploads"), z.string().transform(flagStateToBoolean).optional().default("on"), ]), + z.tuple([ + z.literal("show-test-only-tools"), + z.string().transform(flagStateToBoolean).optional().default("off"), + ]), ]) export const flagsSchema = z diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index bbf83b3e3d..00ac32ea01 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -9,12 +9,19 @@ # this is configured in the deploy-stack.yml workflow map {labels.2} {platform_port} {builder_port} {minio_port} {minio_console_port} {inbucket_port} {mock_notify_port} { ~^pr-(\d+)$ "1$1" "2$1" "3$1" "4$1" "5$1" "6$1" + ~^pr-(\d+)-assets$ "1$1" "2$1" "3$1" "4$1" "5$1" "6$1" sandbox "19000" "29000" "39000" "49000" "59000" "69000" + sandbox-assets "19000" "29000" "39000" "49000" "59000" "69000" default "" "" "" "" "" "" } encode gzip + @assetsHost host_regexp assets ^(?:pr-\d+-assets|sandbox-assets)\.pubstar\.org$ + handle @assetsHost { + reverse_proxy host.docker.internal:{minio_port} + } + handle_path /assets* { reverse_proxy host.docker.internal:{minio_port} } diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 0ef28647b0..dd12c121e2 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -1,173 +1,172 @@ # yaml-language-server: $schema=https://raw.githubusercontent.com/swarmlibs/dockerstack-schema/main/schema/dockerstack-spec.json services: + platform: + image: ghcr.io/knowledgefutures/platform:${IMAGE_TAG} + env_file: ['.env.${STACK_NAME}'] + environment: + HOSTNAME: '0.0.0.0' + NODE_ENV: production + PORT: '3000' + DEPLOY_VERSION: ${IMAGE_TAG} + PUBPUB_URL: https://${DEPLOY_HOST} + PUBPUB_HOSTNAME: ${DEPLOY_HOST} + SITE_BUILDER_ENDPOINT: http://site-builder:4000 + S3_ENDPOINT: https://${ASSETS_HOST} + S3_PUBLIC_ENDPOINT: https://${ASSETS_HOST} + FLAGS: 'uploads:on,invites:on,disabled-actions:http,http-allowed-domains:localhost+127.0.0.1+.pubstar.org,show-test-only-tools:on' + DB_RESET: 'true' + DB_SEED: 'true' + MOCK_NOTIFY_INBOX_URL: http://mock-notify:3000/mock-notify/api/inbox + networks: [appnet] + ports: + - target: 3000 + published: ${PLATFORM_PORT} + protocol: tcp + mode: host + healthcheck: + test: + - CMD-SHELL + - > + node -e "require('http') + .get('http://127.0.0.1:3000/api/health', r => process.exit(r.statusCode < 400 ? 0 : 1)) + .on('error', () => process.exit(1));" + interval: 10s + timeout: 3s + retries: 6 + start_period: 60s + deploy: + replicas: 1 + restart_policy: + condition: on-failure - platform: - image: ghcr.io/knowledgefutures/platform:${IMAGE_TAG} - env_file: [".env.${STACK_NAME}"] - environment: - HOSTNAME: "0.0.0.0" - NODE_ENV: production - PORT: "3000" - DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: https://${DEPLOY_HOST} - PUBPUB_HOSTNAME: ${DEPLOY_HOST} - SITE_BUILDER_ENDPOINT: http://site-builder:4000 - S3_ENDPOINT: https://${DEPLOY_HOST}/assets - S3_PUBLIC_ENDPOINT: https://${DEPLOY_HOST}/assets - FLAGS: "uploads:off,invites:off,disabled-actions:http+email" - DB_RESET: "true" - DB_SEED: "true" - MOCK_NOTIFY_INBOX_URL: http://mock-notify:3000/mock-notify/api/inbox - networks: [appnet] - ports: - - target: 3000 - published: ${PLATFORM_PORT} - protocol: tcp - mode: host - healthcheck: - test: - - CMD-SHELL - - > - node -e "require('http') - .get('http://127.0.0.1:3000/api/health', r => process.exit(r.statusCode < 400 ? 0 : 1)) - .on('error', () => process.exit(1));" - interval: 10s - timeout: 3s - retries: 6 - start_period: 60s - deploy: - replicas: 1 - restart_policy: - condition: on-failure + platform-jobs: + image: ghcr.io/knowledgefutures/platform-jobs:${IMAGE_TAG} + env_file: ['.env.${STACK_NAME}'] + environment: + NODE_ENV: production + DEPLOY_VERSION: ${IMAGE_TAG} + PUBPUB_URL: http://platform:3000 + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: on-failure - platform-jobs: - image: ghcr.io/knowledgefutures/platform-jobs:${IMAGE_TAG} - env_file: [".env.${STACK_NAME}"] - environment: - NODE_ENV: production - DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: http://platform:3000 - networks: [appnet] - deploy: - replicas: 1 - restart_policy: - condition: on-failure + site-builder: + image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} + env_file: ['.env.${STACK_NAME}'] + environment: + NODE_ENV: production + DEPLOY_VERSION: ${IMAGE_TAG} + PUBPUB_URL: http://platform:3000 + PORT: '4000' + SITES_BASE_URL: https://${DEPLOY_HOST}/sites + S3_ENDPOINT: https://${ASSETS_HOST} + S3_PUBLIC_ENDPOINT: https://${ASSETS_HOST} + networks: [appnet] + ports: + - target: 4000 + published: ${BUILDER_PORT} + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: on-failure - site-builder: - image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} - env_file: [".env.${STACK_NAME}"] - environment: - NODE_ENV: production - DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: http://platform:3000 - PORT: "4000" - SITES_BASE_URL: https://${DEPLOY_HOST}/sites - S3_ENDPOINT: https://${DEPLOY_HOST}/assets - S3_PUBLIC_ENDPOINT: https://${DEPLOY_HOST}/assets - networks: [appnet] - ports: - - target: 4000 - published: ${BUILDER_PORT} - protocol: tcp - mode: host - deploy: - replicas: 1 - restart_policy: - condition: on-failure + db: + image: postgres:15 + env_file: ['.env.${STACK_NAME}'] + volumes: + - pgdata:/var/lib/postgresql/data + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any - db: - image: postgres:15 - env_file: [".env.${STACK_NAME}"] - volumes: - - pgdata:/var/lib/postgresql/data - networks: [appnet] - deploy: - replicas: 1 - restart_policy: - condition: any + cache: + image: valkey/valkey:8-alpine + networks: [appnet] + deploy: + replicas: 1 + restart_policy: + condition: any - cache: - image: valkey/valkey:8-alpine - networks: [appnet] - deploy: - replicas: 1 - restart_policy: - condition: any + minio: + image: minio/minio:latest + env_file: ['.env.${STACK_NAME}'] + command: server --console-address ":9001" /data + environment: + MINIO_BROWSER_REDIRECT_URL: https://${DEPLOY_HOST}/assets-ui + networks: [appnet] + ports: + - target: 9000 + published: ${MINIO_PORT} + protocol: tcp + mode: host + - target: 9001 + published: ${MINIO_CONSOLE_PORT} + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: any - minio: - image: minio/minio:latest - env_file: [".env.${STACK_NAME}"] - command: server --console-address ":9001" /data - environment: - MINIO_BROWSER_REDIRECT_URL: https://${DEPLOY_HOST}/assets-ui - networks: [appnet] - ports: - - target: 9000 - published: ${MINIO_PORT} - protocol: tcp - mode: host - - target: 9001 - published: ${MINIO_CONSOLE_PORT} - protocol: tcp - mode: host - deploy: - replicas: 1 - restart_policy: - condition: any + minio-init: + image: minio/mc:latest + env_file: ['.env.${STACK_NAME}'] + entrypoint: > + /bin/sh -c ' + /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; + /usr/bin/mc mb --ignore-existing myminio/"$${S3_BUCKET_NAME}"; + /usr/bin/mc anonymous set download myminio/"$${S3_BUCKET_NAME}"; + /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}";' + networks: [appnet] + deploy: + mode: replicated-job + replicas: 1 + restart_policy: + condition: on-failure + max_attempts: 5 - minio-init: - image: minio/mc:latest - env_file: [".env.${STACK_NAME}"] - entrypoint: > - /bin/sh -c ' - /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; - /usr/bin/mc mb --ignore-existing myminio/"$${S3_BUCKET_NAME}"; - /usr/bin/mc anonymous set download myminio/"$${S3_BUCKET_NAME}"; - /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; - /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}";' - networks: [appnet] - deploy: - mode: replicated-job - replicas: 1 - restart_policy: - condition: on-failure - max_attempts: 5 + inbucket: + image: inbucket/inbucket:latest + networks: [appnet] + environment: + INBUCKET_WEB_BASEPATH: /emails + ports: + - target: 9000 + published: ${INBUCKET_PORT} + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: any - inbucket: - image: inbucket/inbucket:latest - networks: [appnet] - environment: - INBUCKET_WEB_BASEPATH: /emails - ports: - - target: 9000 - published: ${INBUCKET_PORT} - protocol: tcp - mode: host - deploy: - replicas: 1 - restart_policy: - condition: any - - mock-notify: - image: ghcr.io/knowledgefutures/mock-coar-notify-server:${IMAGE_TAG} - networks: [appnet] - environment: - PUBPUB_URL: https://${DEPLOY_HOST} - ports: - - target: 3000 - published: ${MOCK_NOTIFY_PORT} - protocol: tcp - mode: host - deploy: - replicas: 1 - restart_policy: - condition: on-failure - max_attempts: 5 + mock-notify: + image: ghcr.io/knowledgefutures/mock-coar-notify-server:${IMAGE_TAG} + networks: [appnet] + environment: + PUBPUB_URL: https://${DEPLOY_HOST} + ports: + - target: 3000 + published: ${MOCK_NOTIFY_PORT} + protocol: tcp + mode: host + deploy: + replicas: 1 + restart_policy: + condition: on-failure + max_attempts: 5 networks: - appnet: - driver: overlay + appnet: + driver: overlay volumes: - pgdata: + pgdata: From 8c25796b2db97479fe7d60cec037ce60cdd90274 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 14:49:30 +0200 Subject: [PATCH 113/153] chore: lint --- core/app/(user)/communities/actions.ts | 2 +- core/lib/authentication/actions.ts | 2 +- site-builder-2/server/server.ts | 6 +++++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/core/app/(user)/communities/actions.ts b/core/app/(user)/communities/actions.ts index 2d4b321021..7e53b544e8 100644 --- a/core/app/(user)/communities/actions.ts +++ b/core/app/(user)/communities/actions.ts @@ -11,9 +11,9 @@ import { db } from "~/kysely/database" import { isUniqueConstraintError } from "~/kysely/errors" import { getLoginData } from "~/lib/authentication/loginData" import { createSiteBuilderToken } from "~/lib/server/apiAccessTokens" +import { normalizeAssetUrl } from "~/lib/server/assets" import { autoRevalidate } from "~/lib/server/cache/autoRevalidate" import { defineServerAction } from "~/lib/server/defineServerAction" -import { normalizeAssetUrl } from "~/lib/server/assets" import { slugifyString } from "~/lib/string" export const createCommunity = defineServerAction(async function createCommunity({ diff --git a/core/lib/authentication/actions.ts b/core/lib/authentication/actions.ts index db4caac862..a21b5cba70 100644 --- a/core/lib/authentication/actions.ts +++ b/core/lib/authentication/actions.ts @@ -35,8 +35,8 @@ import { updateUser, } from "~/lib/server/user" import { LAST_VISITED_COOKIE } from "../../app/components/LastVisitedCommunity/constants" -import { normalizeAssetUrl } from "../server/assets" import { createSiteBuilderToken } from "../server/apiAccessTokens" +import { normalizeAssetUrl } from "../server/assets" import { findCommunityBySlug } from "../server/community" import * as Email from "../server/email" import { insertCommunityMemberships, selectCommunityMemberships } from "../server/member" diff --git a/site-builder-2/server/server.ts b/site-builder-2/server/server.ts index dc6213d96d..f1f45aedec 100644 --- a/site-builder-2/server/server.ts +++ b/site-builder-2/server/server.ts @@ -621,7 +621,11 @@ const router = tsr.router(siteBuilderApi, { const zipFileName = `site-${timestamp}.zip` const zipUploadId = "site-archives" - const zipInternalUrl = await createZipAndUploadToS3(distDir, zipUploadId, zipFileName) + const zipInternalUrl = await createZipAndUploadToS3( + distDir, + zipUploadId, + zipFileName + ) const subpath = body.subpath ?? body.automationRunId const s3Prefix = `sites/${communitySlug}/${subpath}` From ce85567a638bcfe82ae09e3f5108b963ca5edc65 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 15:58:51 +0200 Subject: [PATCH 114/153] fix: untemporary all files, not just first, and return public url --- core/app/(user)/settings/AvatarEditor.tsx | 4 +- core/app/components/pubs/PubEditor/actions.ts | 96 +++++++---- core/lib/server/assets.ts | 156 ++++++++++++++---- packages/context-editor/src/ContextEditor.tsx | 3 +- .../customRenderers/fileUpload/fileUpload.tsx | 37 ++++- 5 files changed, 221 insertions(+), 75 deletions(-) diff --git a/core/app/(user)/settings/AvatarEditor.tsx b/core/app/(user)/settings/AvatarEditor.tsx index bb60501a8f..8c4a460995 100644 --- a/core/app/(user)/settings/AvatarEditor.tsx +++ b/core/app/(user)/settings/AvatarEditor.tsx @@ -1,3 +1,5 @@ +import type { FileUploadProps } from "ui/customRenderers/fileUpload/fileUpload" + import { useState } from "react" import dynamic from "next/dynamic" import { ImagePlus, XIcon } from "lucide-react" @@ -28,7 +30,7 @@ export const AvatarEditor = ({ initials: string avatar: string | null onEdit: (avatar: string | null) => void - upload: (fileName: string) => Promise + upload: FileUploadProps["upload"] allowedFileTypes?: string[] showDeleteButton?: boolean label?: string diff --git a/core/app/components/pubs/PubEditor/actions.ts b/core/app/components/pubs/PubEditor/actions.ts index 0e1f097234..2046c00a92 100644 --- a/core/app/components/pubs/PubEditor/actions.ts +++ b/core/app/components/pubs/PubEditor/actions.ts @@ -14,7 +14,12 @@ import { getLoginData } from "~/lib/authentication/loginData" import { userCan, userCanCreatePub, userCanEditPub } from "~/lib/authorization/capabilities" import { parseRichTextForPubFieldsAndRelatedPubs } from "~/lib/fields/richText" import { createLastModifiedBy } from "~/lib/lastModifiedBy" -import { ApiError, createPubRecursiveNew, makeFileUploadPermanent } from "~/lib/server" +import { + ApiError, + createPubRecursiveNew, + makeFileUploadPermanent, + normalizeAssetUrl, +} from "~/lib/server" import { findCommunityBySlug } from "~/lib/server/community" import { defineServerAction } from "~/lib/server/defineServerAction" import { getForm, grantFormAccess } from "~/lib/server/form" @@ -93,29 +98,45 @@ export const createPubRecursive = defineServerAction(async function createPubRec userId: user.id as UsersId, }) - const fileUploads: { fileName: string; tempUrl: string }[] = [] + const fileUploadsByTempUrl = new Map() const fileUploadSchema = getJsonSchemaByCoreSchemaType(CoreSchemaType.FileUpload) const filteredValues = values ? Object.fromEntries( - Object.entries(values).filter(([slug, value]) => { + Object.entries(values).flatMap(([slug, value]) => { const element = form.elements.find((element) => element.slug === slug) if (!element) { - return false + return [] } + if ( - element.schemaName === CoreSchemaType.FileUpload && - Value.Check(fileUploadSchema, value) && - value.length > 0 + element.schemaName !== CoreSchemaType.FileUpload || + !Value.Check(fileUploadSchema, value) ) { - fileUploads.push({ - tempUrl: value[0].fileUploadUrl, - fileName: value[0].fileName, - }) + return [[slug, value]] } - return true + + const normalizedFiles = value.map((file) => { + const normalizedUrl = normalizeAssetUrl(file.fileUploadUrl) + const isTemporaryUpload = normalizedUrl.includes("/temporary/") + + if (isTemporaryUpload && !fileUploadsByTempUrl.has(normalizedUrl)) { + fileUploadsByTempUrl.set(normalizedUrl, { + tempUrl: normalizedUrl, + fileName: file.fileName, + }) + } + + return { + ...file, + fileUploadUrl: normalizedUrl, + } + }) + + return [[slug, normalizedFiles]] }) ) : {} + const fileUploads = Array.from(fileUploadsByTempUrl.values()) logger.debug({ msg: "creating pub", filteredValues, fileUploads }) try { // need this in order to test it properly @@ -205,10 +226,6 @@ export const updatePub = defineServerAction(async function updatePub({ return ApiError.NOT_LOGGED_IN } - if (!community) { - return ApiError.COMMUNITY_NOT_FOUND - } - if (!formSlug) { return ApiError.UNAUTHORIZED } @@ -244,7 +261,7 @@ export const updatePub = defineServerAction(async function updatePub({ }) const normalizedValues = normalizePubValues(processedVals) - const fileUploads: { fileName: string; tempUrl: string }[] = [] + const fileUploadsByTempUrl = new Map() const fileUploadSchema = getJsonSchemaByCoreSchemaType(CoreSchemaType.FileUpload) for (const { slug, value, relatedPubId } of normalizedValues) { @@ -253,44 +270,59 @@ export const updatePub = defineServerAction(async function updatePub({ continue } + let valueToPersist = value if ( element.schemaName === CoreSchemaType.FileUpload && - Value.Check(fileUploadSchema, value) && - value.length > 0 && - // otherwise it will try to make permanent already-permanent files - // FIXME: better check than this - value[0].fileUploadUrl.includes("temporary") + Value.Check(fileUploadSchema, value) ) { - fileUploads.push({ - tempUrl: value[0].fileUploadUrl, - fileName: value[0].fileName, + const normalizedFiles = value.map((file) => { + const normalizedUrl = normalizeAssetUrl(file.fileUploadUrl) + const isTemporaryUpload = normalizedUrl.includes("/temporary/") + + if (isTemporaryUpload && !fileUploadsByTempUrl.has(normalizedUrl)) { + fileUploadsByTempUrl.set(normalizedUrl, { + tempUrl: normalizedUrl, + fileName: file.fileName, + }) + } + + return { + ...file, + fileUploadUrl: normalizedUrl, + } }) + + valueToPersist = normalizedFiles as typeof value } if (relatedPubId) { - updateQuery.relate(slug, value, relatedPubId, { + updateQuery.relate(slug, valueToPersist, relatedPubId, { replaceExisting: false, }) } else { - updateQuery.set(slug, value) + updateQuery.set(slug, valueToPersist) } } + const fileUploads = Array.from(fileUploadsByTempUrl.values()) + for (const { slug, relatedPubId } of deleted) { updateQuery.unrelate(slug, relatedPubId) } - const [pub] = await Promise.all([ - updateQuery.executeAndReturnPub(), - ...fileUploads.map(({ fileName, tempUrl }) => + const pub = await updateQuery.executeAndReturnPub() + + await Promise.all( + fileUploads.map(({ fileName, tempUrl }) => makeFileUploadPermanent({ pubId, tempUrl, fileName, userId: loginData.user.id, }) - ), - ]) + ) + ) + return pub } catch (error) { logger.error(error) diff --git a/core/lib/server/assets.ts b/core/lib/server/assets.ts index 409f8e6ee0..9c642a8ab8 100644 --- a/core/lib/server/assets.ts +++ b/core/lib/server/assets.ts @@ -13,6 +13,7 @@ import { getSignedUrl } from "@aws-sdk/s3-request-presigner" import { sql } from "kysely" import { logger } from "logger" +import { tryCatch } from "utils/try-catch" import { db } from "~/kysely/database" import { env } from "../env/env" @@ -22,6 +23,10 @@ import { getCommunitySlug } from "./cache/getCommunitySlug" let s3Client: S3Client export type FileMetadata = InputTypeForCoreSchemaType[number] +export type SignedUploadTarget = { + signedUrl: string + publicUrl: string +} const trimSlashes = (value: string) => value.replace(/^\/+|\/+$/g, "") @@ -160,6 +165,51 @@ const getTemporaryS3ObjectKey = (fileUrl: string) => { return candidates.find((candidate) => candidate.startsWith("temporary/")) ?? null } +const isS3GetObjectPermissionError = (error: unknown) => { + if (!error || typeof error !== "object") { + return false + } + + const s3Error = error as { name?: string; message?: string } + return s3Error.name === "AccessDenied" && s3Error.message?.includes("s3:GetObject") === true +} + +const copyObjectViaPublicEndpoint = async ({ + sourceKey, + destinationKey, + s3Client, +}: { + sourceKey: string + destinationKey: string + s3Client: S3Client +}) => { + const sourceUrl = buildS3PublicUrl(sourceKey) + const sourceResponse = await fetch(sourceUrl, { cache: "no-store" }) + + if (!sourceResponse.ok) { + throw new Error(`Unable to download source object from public endpoint: ${sourceUrl}`) + } + + const sourceContentType = + sourceResponse.headers.get("content-type") ?? "application/octet-stream" + const sourceBody = Buffer.from(await sourceResponse.arrayBuffer()) + + const upload = new Upload({ + client: s3Client, + params: { + Bucket: env.S3_BUCKET_NAME, + Key: destinationKey, + Body: sourceBody, + ContentType: sourceContentType, + }, + queueSize: 3, + partSize: 1024 * 1024 * 5, + leavePartsOnError: false, + }) + + await upload.done() +} + export const normalizeAssetUrl = (fileUrl: string) => { const key = getS3ObjectKey(fileUrl) @@ -269,29 +319,27 @@ export const generateSignedAssetUploadUrl = async ( const communitySlug = await getCommunitySlug() const key = `${kind === "temporary" ? "temporary/" : ""}${communitySlug}/${userId}/${crypto.randomUUID()}/${fileName}` - const client = getSignedUploadS3Client() - - const bucket = env.S3_BUCKET_NAME - const command = new PutObjectCommand({ - Bucket: bucket, - Key: key, - }) - - return await getSignedUrl( - client, - command, - kind === "temporary" ? { expiresIn: 3600 } : undefined - ) + return generateSignedUploadUrl(key, kind === "temporary" ? { expiresIn: 3600 } : undefined) } -const generateSignedUploadUrl = async (key: string) => { +const generateSignedUploadUrl = async ( + key: string, + options?: { expiresIn?: number } +): Promise => { const client = getSignedUploadS3Client() - const bucket = env.S3_BUCKET_NAME const command = new PutObjectCommand({ - Bucket: bucket, + Bucket: env.S3_BUCKET_NAME, Key: key, }) - return await getSignedUrl(client, command) + + const signedUrl = options?.expiresIn + ? await getSignedUrl(client, command, { expiresIn: options.expiresIn }) + : await getSignedUrl(client, command) + + return { + signedUrl, + publicUrl: buildS3PublicUrl(key), + } } export const generateSignedUserAvatarUploadUrl = async (userId: UsersId, fileName: string) => { @@ -390,33 +438,73 @@ export const makeFileUploadPermanent = async ( copyCommand, }) - await s3Client.send(copyCommand) + const [copyErr] = await tryCatch(s3Client.send(copyCommand)) + + if (copyErr) { + if (!isS3GetObjectPermissionError(copyErr)) { + throw copyErr + } + + logger.warn({ + msg: "S3 copy requires get object permission, retrying with public endpoint download", + source, + newKey, + }) + + await copyObjectViaPublicEndpoint({ + sourceKey: source, + destinationKey: newKey, + s3Client, + }) + } logger.info({ msg: "Waiting for object to exist", newKey, }) - await waitUntilObjectExists( - { - client: s3Client, - maxWaitTime: 10, - minDelay: 1, - }, - { Bucket: env.S3_BUCKET_NAME, Key: newKey } + const [waitErr] = await tryCatch( + waitUntilObjectExists( + { + client: s3Client, + maxWaitTime: 10, + minDelay: 1, + }, + { Bucket: env.S3_BUCKET_NAME, Key: newKey } + ) ) + + if (waitErr && !isS3GetObjectPermissionError(waitErr)) { + throw waitErr + } logger.debug({ msg: "successfully copied temp file to permanent directory", newKey, tempUrl }) await trx .updateTable("pub_values") .where("pub_values.pubId", "=", pubId) - //@ts-expect-error - .where((eb) => eb.ref("value", "->>").at(0).key("fileUploadUrl"), "=", tempUrl) - .set((eb) => ({ - value: eb.fn("jsonb_set", [ - "value", - sql.raw("'{0,fileUploadUrl}'"), - eb.val(JSON.stringify(newFileUrl)), - ]), + .where( + (eb) => + eb.fn("jsonb_path_exists", [ + "value", + sql.raw("'$[*] ? (@.fileUploadUrl == $url)'"), + eb.val(JSON.stringify({ url: tempUrl })), + ]), + "=", + true + ) + .set(() => ({ + value: sql`( + select coalesce( + jsonb_agg( + case + when file_entry->>'fileUploadUrl' = ${tempUrl} + then jsonb_set(file_entry, '{fileUploadUrl}', to_jsonb(${newFileUrl}::text)) + else file_entry + end + ), + '[]'::jsonb + ) + from jsonb_array_elements(pub_values.value) as file_entry + )`, lastModifiedBy: createLastModifiedBy({ userId }), })) .execute() @@ -448,7 +536,7 @@ export const uploadFileToS3 = async ( contentType: string queueSize?: number partSize?: number - progressCallback?: (progress: any) => void + progressCallback?: (progress: unknown) => void } ): Promise => { const client = getS3Client() diff --git a/packages/context-editor/src/ContextEditor.tsx b/packages/context-editor/src/ContextEditor.tsx index 3e548af6ac..74ad4ccf14 100644 --- a/packages/context-editor/src/ContextEditor.tsx +++ b/packages/context-editor/src/ContextEditor.tsx @@ -12,6 +12,7 @@ import "katex/dist/katex.min.css" import type { Node } from "prosemirror-model" import type { ForwardRefExoticComponent, RefAttributes, RefObject } from "react" +import type { FileUploadProps } from "ui/customRenderers/fileUpload/fileUpload" import { useEffect, useId, useImperativeHandle, useMemo, useRef, useState } from "react" import { ProseMirror, ProseMirrorDoc, reactKeys } from "@handlewithcare/react-prosemirror" @@ -53,7 +54,7 @@ export interface ContextEditorProps { NodeViewComponentProps & RefAttributes > /* A react component that is given the ContextAtom pubtype and renders it accordingly */ hideMenu?: boolean - upload: (fileName: string) => Promise + upload: FileUploadProps["upload"] /** * Ref to the context editor getter diff --git a/packages/ui/src/customRenderers/fileUpload/fileUpload.tsx b/packages/ui/src/customRenderers/fileUpload/fileUpload.tsx index e574f9dbbd..6466b8b4ca 100644 --- a/packages/ui/src/customRenderers/fileUpload/fileUpload.tsx +++ b/packages/ui/src/customRenderers/fileUpload/fileUpload.tsx @@ -18,6 +18,13 @@ import AwsS3Multipart from "@uppy/aws-s3" const pluginName = "AwsS3Multipart" as const +export type SignedUploadTarget = { + signedUrl: string + publicUrl: string +} + +export type UploadResponse = string | SignedUploadTarget | { error: string } + export type FormattedFile = { id: string fileName: string @@ -30,7 +37,7 @@ export type FormattedFile = { } export type FileUploadProps = { - upload: (fileName: string) => Promise + upload: (fileName: string) => Promise onUpdateFiles: (files: FormattedFile[]) => void disabled?: boolean id?: string @@ -47,6 +54,11 @@ const FileUpload = forwardRef(function FileUpload(props: FileUploadProps, _ref) const handler = () => { const uploadedFiles = uppy.getFiles() const formattedFiles = uploadedFiles.map((file) => { + const publicUploadUrl = + typeof file.meta.publicUploadUrl === "string" + ? file.meta.publicUploadUrl + : undefined + return { id: file.id, fileName: file.name, @@ -54,7 +66,7 @@ const FileUpload = forwardRef(function FileUpload(props: FileUploadProps, _ref) fileType: file.type, fileSize: file.size, fileMeta: file.meta, - fileUploadUrl: file.response?.uploadURL, + fileUploadUrl: publicUploadUrl ?? file.response?.uploadURL, filePreview: file.preview, } }) as FormattedFile[] @@ -80,22 +92,33 @@ const FileUpload = forwardRef(function FileUpload(props: FileUploadProps, _ref) throw new Error("File name is required") } - const signedUrl = await props.upload(file.name) + const uploadResponse = await props.upload(file.name) + + if (typeof uploadResponse === "object" && "error" in uploadResponse) { + throw new Error(uploadResponse.error) + } + + const uploadTarget = + typeof uploadResponse === "string" + ? { signedUrl: uploadResponse, publicUrl: undefined } + : uploadResponse - if (typeof signedUrl === "object" && "error" in signedUrl) { - throw new Error(signedUrl.error) + if (uploadTarget.publicUrl) { + uppy.setFileMeta(file.id, { + publicUploadUrl: uploadTarget.publicUrl, + }) } return { method: "PUT", - url: signedUrl, + url: uploadTarget.signedUrl, headers: { "content-type": file.type, }, } }, }) - }, [props.upload, uppy.getPlugin]) + }, [props.upload, uppy.getPlugin, uppy.setFileMeta]) return ( Date: Thu, 23 Apr 2026 16:04:40 +0200 Subject: [PATCH 115/153] fix: dnot use hallucinated host_regexp --- infra/Caddyfile.gateway | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/Caddyfile.gateway b/infra/Caddyfile.gateway index 00ac32ea01..47d2f93351 100644 --- a/infra/Caddyfile.gateway +++ b/infra/Caddyfile.gateway @@ -17,7 +17,7 @@ encode gzip - @assetsHost host_regexp assets ^(?:pr-\d+-assets|sandbox-assets)\.pubstar\.org$ + @assetsHost header_regexp assets Host ^(?:pr-\d+-assets|sandbox-assets)\.pubstar\.org$ handle @assetsHost { reverse_proxy host.docker.internal:{minio_port} } From 6e06dd58e08b5693a0a3c964629e220b19e03096 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 16:54:51 +0200 Subject: [PATCH 116/153] fix: correct smtp enpoints --- infra/.env.preview.enc | 86 +++++++++++++++++++++--------------------- infra/.env.sandbox.enc | 86 +++++++++++++++++++++--------------------- 2 files changed, 86 insertions(+), 86 deletions(-) diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index f316a78737..cb45dd9955 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,53 +1,53 @@ -#ENC[AES256_GCM,data:UZYGWSH5K4LY6jH4EN7viDAeNUw2YMzSpaWWaIPbylew,iv:rij/tHT+Mvbd947434dfEnumXCHSt0h4G7bAJ70oRkQ=,tag:myuo6okFmR+sXoV/TS1zqQ==,type:comment] -#ENC[AES256_GCM,data:iMclWdHY7czN/v9zFHDrGzwPFewB7o0H6Pf9r82ftUOdKkf0rr0MXt6sbWwGKlKHTUNCfeGedfAOf2I=,iv:r5ZTfFcoVO5narGJQcE1/vL2ntGDy7HPxrxTyRGgUE8=,tag:yqyhvAuq/e/6ebv5x/78sg==,type:comment] -#ENC[AES256_GCM,data:66ZH4C0BYXTUtMEsgbllk1uGHW7aAg7zCurSSeYOkEPtWf6IiMm2KrpscsGcN0IDOCwIiy+gSjsGUj2y6L80xlRpJQ==,iv:yz4JDS5KOa74wWUFNrRnxTCicutoapeqEMWnrO+UFyY=,tag:jpVLx+lFYOIef4Cozaw6yA==,type:comment] -#ENC[AES256_GCM,data:kU4sd8+MokOpc3KncBg/3fb4lH7dJvmVepLYlgftC0py37lv+VnSAt1TDLwRstyI8Q==,iv:9qN+MVQ78YRRf+wH8S6I41EtQOi/bFVnkN/UftbeG+M=,tag:Ksi2lho49npwYgbZ3qiLaw==,type:comment] -#ENC[AES256_GCM,data:ANmnWLJfP0gouED9CL2IteoIMgOGCfI1JmwZ/LgVr1AsWmjg7j+4R5TzDvOV0TE2D5CegA==,iv:I+XD3VGNo0P/+yndfCzrWj+/PIYV4fNMPWW/bzElHQE=,tag:UKB+4qaHFHZsZmhuQDUrWg==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:avBG/IUyx+4=,iv:LgTjvcrCTuN9TRdHHqF9+JP1qYvl/2CjmBrWX6AEZdE=,tag:55dcrhPSo8XWt3uNst8dTg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:HdeXYBUoo2k=,iv:cXu/c+OsSWB3dxepRdeFCz/qByYKrddhgiZ+GfvlHfE=,tag:IqB/o+3kKq4T4a14mIdVmQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:dRSZ9c9R1Q==,iv:FoRlYtQOaHttkZf7Lr4zElRzN445lQ1U58yfpsm8vMQ=,tag:+O3WSpMywpZemdgyzjbNHw==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:Gtqtnx24OKLsHPciNQhgu8stzVOoRDd3Cb6SF16f+YCmFZARPnLZNRgIOj7rPw==,iv:JmVEMerOSXf/LjyNyZyA9DaBFsPeFsfzmCMV047ElEc=,tag:tU4CkdfuWEVXe2BwkUbk9A==,type:str] -PGHOST=ENC[AES256_GCM,data:dPk=,iv:2JLFruif2CCfA0x1zM8v/z9E1IHJRdq7lML4k3e4zZc=,tag:yrq0zjNyrhKAk2ynvzyV4w==,type:str] -PGPORT=ENC[AES256_GCM,data:E8BysQ==,iv:QdQSj6lmDajdhl90T6eqBMxMOubyCctTunSRS4MZX+o=,tag:aUQKmDUa/s5a3gayCTF14g==,type:str] -PGUSER=ENC[AES256_GCM,data:nyZWJ5TXe6Q=,iv:CSX5hxSAAO8pxbgX7Y4aO/CzMkEGpNntt1Kl6m4Cnuo=,tag:4kwx3I3flD9eZ4bVmkOBzw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:yCEUtdqZjhM=,iv:S9nIe9/L1NpEocszy+3XDxOvggMGEsBSi4TRG1XUEA8=,tag:boc1YDFYu0Gh68ybe/Q/vg==,type:str] -PGDATABASE=ENC[AES256_GCM,data:STkKAyvUzg==,iv:M6tT0xKY4J/6zhHaTEotqVzqFB8mWHkPKQ73kC6kf1M=,tag:0XLm/uhsZKI8EaGHNpjiOg==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:DXSE7Ho=,iv:VDLUewcb+W8X/NllhdNS6b5COOto3aAVzHliwVbUsjM=,tag:yKVpzJtmTrFqLPeYwN7zIg==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:5D19Ul2mVuDQLiITIA==,iv:g7Cd5atF3kfPIJPXzKtZg6N7zkv5oAforQaGXG5avak=,tag:hUdSqMmNDqoHnHOxiyhebA==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:sp7tokWBlkmoUtIdmg==,iv:GQp6PzMAQ6nxV6edLkS+dBhK9SIUy7fht5Nwvjpl85g=,tag:cAqPD2hqJXtu1ACw5ksk2w==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:/T1rlFcPzBKmRE+3aCY=,iv:e+6mfqNuwx8gf4ajijUuZEF0W96HvN+Wj2HitQ5eV9c=,tag:TSUMSVMchrQaQfjPhCweRg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:MAIW05F+xSq45s8=,iv:RDQaiE0tdG/CQKBuc84Zg+OfPcurhTEKwvyJ1w2qoWo=,tag:cyqmm7H6aUsS3jjZMmXsKQ==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:Mjt5tl/HQtGaGww=,iv:HLQhFkC/D2ZJ6K0mx21HNTjiqUfVxl54WwQge520YL0=,tag:psrxe+IMDDaqxYDO13hYow==,type:str] -S3_REGION=ENC[AES256_GCM,data:t40oRffatsiS,iv:V+hyfptoJXS9VTNBzLdgcASKN/YOVd8tjPYlSLccnA4=,tag:srY6ul23ZNuwQmGAhKq9uA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:NJNR8TvZze/TcAWCxUU/78Y=,iv:K5sY+OQIPCohoaL39TfCyp89+jrlFB0su0FKzWUBS24=,tag:L1Nr/1uoqV4KhiCFwojTvQ==,type:str] -#ENC[AES256_GCM,data:0YtPqWavJho08mK2ufQnI2PzLZFP2R+K/OQiqXI8WwisFnfCaPu+WBB6MrBP+bDzUP0WUoJjOBT6r7NAm3DpvvjrMQ==,iv:FG8a+TwXR4UkiB7yonSueNbs41eTeIcAKpir2Kvsh3I=,tag:yKX6r2WNBcoSqyrDTNv+mQ==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:TpMnbOzFc4BVVrqRtmg2Wjc/6Q7wlveo,iv:+orATFrRdq7zGydKc//XkqQvhSeWdPMwFnfQFLm2jC4=,tag:qsHFDb9MLX0bYF3Bdg5NEw==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:y/PB,iv:4IlLawKY36Z7h+0kxHeHNavP5pRvUfq7dynlUgGpFd4=,tag:btzW/mk+MB97VVkal7B27A==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:zK2R,iv:Bd6SDwcO4adhASDPQvrituop7fXHb0fQWVzIeEmBsp4=,tag:hn0CfcvmRib8VCKGt/1lcA==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:pAUV,iv:rj8goZP1/23pU3WcYe8/in00QTJ2XNXClfAYXXptX7I=,tag:5/UdJMGnKyNYR+4GDxDPsg==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:C1ss,iv:Czc8wwNILbcDsRbqk16BvnPDoQHd+Pw29gYO0mB1n1I=,tag:gC4ar8sziJSsEEWSkOgCRw==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:o7f9,iv:uuSMBjzSb77cGxE58Y1SkX3xB0YySaOsIzs3JmMg88k=,tag:sBOjyQh5GOgpCHPlOtIK8Q==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:GvD6,iv:px82OZ6ZFnNvH1CotOYukwokhIfjv0kIn0IekN/5LL0=,tag:8KnjVStkZy4TDdufromXmA==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:gBWfNXdyMa0RrrMW8qym1Dfi,iv:BgqRdANu33m3/yXkUtcDgOpri2UA7lw3tMMCnNjHeRg=,tag:aqC4WKHI8kL8KbYGmOMzdg==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:bkwO,iv:raci6k+F8PHW/2v4BFnvQ8GwWSeWg+BRmBWuTxP2u1s=,tag:ibcr+x4Nm2PdHm6txxYScA==,type:str] -API_KEY=ENC[AES256_GCM,data:jfN3,iv:h+G5CYv41VSRZ49aYPSOZudsDY9ArxySaknabAKgRbQ=,tag:Q00nAxz9NRFYi77YXM6wAQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArOGE5eDFjKzJOQ0hQbTNW\ndTVIbUx6TXVzd3JFWHhUZnhlNm0rZzQrUFJ3CkpINURKN0xKUEh6bzhtbmFJVjk5\naTdLeDFWelQyTHJhMk1sNzkwbk9oajQKLS0tIDJ1RGNyUE10NHJlOElabjFqclVI\nMGhBTkZjb1hWSEVsQzZhKzUvcEJnLzQKh4p2hXR1W2gkBazLyhHbCNWVjPc33Iwx\nzHOSrxZgZwK1NJ7b7vkSu5oUfvTi0CHM+rUHSuQQfRANP+5TINpkHQ==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:U5JF7APOQ3Z37cv1LTHlkAwQuz0nYN3OV5XqeX+q7vf+,iv:V1GthYIglAZ2rBfiIlj5Hi8cPqEZEVwcOTuySjRlJ8s=,tag:c7jxdbcsy2H8ipqKoaYPfA==,type:comment] +#ENC[AES256_GCM,data:P0kaWdUBOVdIBS5p73RiJKk/AesKHf5+u8CzQU3X6No9xl9Cso7dIcBOHIe0OoOp07VThBF7DNGj2H4=,iv:RqMWEKc+AGRHulG4zS1xzrQPaCi/KuksjiXbwvG5pT8=,tag:Z+HJ45YtEyP4kEAxG3sNcw==,type:comment] +#ENC[AES256_GCM,data:Ncyt3jHPceAVHni2ku8j67y7YvSvqQ78Or/OJN1Z0wQgAb20YL8AkK7Q2Dt/GJhXMUDwic0opPjmlISfgpv2wWAc6w==,iv:p+z1hLVptz5zRj6Wnx8L1p6aWxJC7W7kKOCrn4q65t0=,tag:sG5thP4GshxzEYEzlpnq7w==,type:comment] +#ENC[AES256_GCM,data:gJYnkk128BnZBuBCUad5x4MGuv2lm5gzDdPqo2552LPPqa8sLWEEfOXMJRYazE69Pg==,iv:NK3xmeTQjOHR5V+l82r/+eCCEF9PV+fqmuZPWAwbWE0=,tag:TtVgsywdHcvXLBX/HTAxNw==,type:comment] +#ENC[AES256_GCM,data:36vnl+m6HNLHApWq/0meETLmNfCryyWkYDz8A6VTHwxNXi79rtVEMb4VXoUL1NlDnm7+7g==,iv:SleTNiaODR2/loMlcJZ6105hY5d3EN0OwvwanuIS4kY=,tag:+qcLVCKZEOTGvO3TC4vt4w==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:2VAnKOhKA4o=,iv:nx9KiSLIExMQJpigUbOtMzobQ5r2rTaljmsRdNjXBCg=,tag:7e0mnTduq3a7F1HRR5qm1A==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:ddvTbWWPAD4=,iv:Oeg6SaI8jLZ2G0JVgq2u0I/vn/wH9U8V0mKsgM4Jopk=,tag:mtvasT9lEYBfEQay6JSkhA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:/17RMTjfSA==,iv:xmDQagb0RIQZw0fUtDmmxLXqVADWAPqCeD9akYvUDLs=,tag:NPmReGeTf6h/BriYarc7vw==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:vrvQ+VeZgmCScIj/lX594SS2wF/hPYwTTbAwmPI0k75KSVzpnUXpbE5D6kpVHA==,iv:QB4yJKtQTiI2ob3qCf3yBkyJNnMPErfi+BafNieadAg=,tag:n+OvqNfSA5704nSHZPnBAw==,type:str] +PGHOST=ENC[AES256_GCM,data:DTg=,iv:sfcLJKC2dlOPrcTxExndWylenWRXsHkLUub8qPuqXkM=,tag:gljNhp97DNXupck7lbELAg==,type:str] +PGPORT=ENC[AES256_GCM,data:H+3Gmw==,iv:p7gDYFh5Y+UIb1Gt8aWSJGoa2uyQ3vq6mvRa1yZsifI=,tag:jfLOHYSPQ/ysf4/OF8S1Bw==,type:str] +PGUSER=ENC[AES256_GCM,data:yP/HiJDPq7I=,iv:3OPW8Mt0bLeGAvsuO4EgMkgb3LOyBPHL9+9jZqwatuY=,tag:prFdUHmGkAQxIGenCumwtQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:uzuIHRqgsqo=,iv:mPBGmAkRzJfoQJFxpS7pVPsxOWYwhFf9WQSvtBqy/uw=,tag:k1RoPHzFOatl/3YHM+3yEA==,type:str] +PGDATABASE=ENC[AES256_GCM,data:vpT23+V9Bw==,iv:cpDGpGpS5/l7pCpJC5wpRi4ti0wGxZNkwOFzHB/WNW0=,tag:i+hoHgLeZuwO4B2Z5ep6Og==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:sm0+tFE=,iv:cmi+NGWeEYXwjQUG7l2X1LznYz4w9CiNM9iZhN0dUSE=,tag:gl4KqAobDvO8u/nSoFmdxw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:jqgbBHHaTxtDrhgdgA==,iv:aQcQBkBx7YWCrwB03pRUaD5St9CUXUZq0Fnq1aQseFk=,tag:nqF/YlKO3NvTEamu5EILpQ==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:5h/8I2g64AWFG3uIbQ==,iv:QdDuIsEUKxOf0huuAr+dc9zuBnjCckJB86IOI1+kFsk=,tag:EPoSmHDnY1lxrIbFpwLZgg==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:7FzQ5U57BuqDL60ixcs=,iv:/tGU7pdKtQxaunL5N+5UNcKEJayuiiq3lj2OJYZGebM=,tag:jEMK1yJok34N0EddbZEZRg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:lOafy+wM80HWWZA=,iv:qQlKy+l63Qp3JetwG3nRf5Qshv8zxYKokiKAniUHgmo=,tag:ujyk289br7W4XVsbG7qxsQ==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:wRugrKs7uHayGkA=,iv:TYHH4mkcoHPMZTDvpeXnTmQV5akdnSpPeB6GdTFcmnQ=,tag:od423+ARnF7Agq3dNZ39OQ==,type:str] +S3_REGION=ENC[AES256_GCM,data:+5L2QYof9CBU,iv:Yc/Tf2H1yiNskRcDiiO6O6hycO4mfPZuhjC/XTKmqPE=,tag:ZO3YwHdZ7LbcfEqfI3IPCg==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:j6a4PurDF6mQHQ3tFRNx2Bk=,iv:9vy8V1jsFlSEsOIrV7LVOBAkBbbv5wGKaOB1X6Nn8nA=,tag:qOqKngs/w5/fSZ7LTAZCYg==,type:str] +#ENC[AES256_GCM,data:qWpHCXOSTV4Vg8ztHNDZkUzZCGhsKu2ngQFvFs9YYkomN/N8pzWmslSOS+tFIz5AKWq9bduVSitQG8+WiO6U8DK1Yg==,iv:UdnIT9gB1T8bxsb1y9O2y3T53KwTSraj6xJvZgJCwOQ=,tag:WjiSd4IE/KqB0958k9ykZg==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:8ty0XvsDeG3keJljgQ6VReD+YdfAqNrE,iv:sC6clavDe/BjMMqiYwoEYWeghEyjMgvheS0Ee8gflRo=,tag:u1LYsk6b7dPiTx7/13Z+lQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:2nu1,iv:2XR/s/pImC/cIJT4NJK2rmdBpJRmBTa2Q2DfpdJHWvE=,tag:36NdlapRSIIOZJFGdeuKww==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:eXfMtt34FdU=,iv:srR/5ipf447bm1QZkMu9GJQxRimH/vqZKBDcaaPO69s=,tag:9qFafymyxTjPLbNk359fFQ==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:l9i84Q==,iv:mmbdA/xm3RR8ZRAxiD4Fxhse+wbRkhf00+1M6THiJ9k=,tag:oDUgXR26EBEULdPwZUeU7g==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:Yviw,iv:RTR6Xy8oL+A63BlM85cRb17vVC+wMeMgelj+sMMMZOQ=,tag:1gS4//yEIq4ERo3Vr8re0Q==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:jJ2W,iv:xG6OXolFaNV2Oq20RhZ2qhUEFj3ZtjmuGuB38eVGLC4=,tag:eRwHDUHq1KKZd01XJaAOCQ==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:symX,iv:fWkQhQkp4T5ahMTrQpy8KNieLQbVz9F2wwNgggxvMGE=,tag:1/aFYoBKKL+/Mr1KoLw81A==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:xVviZ7nLEpMmNVcA5DdUL9K0,iv:vqewrRqvKYVzhuZswioQeExH+/ckldmyeHpQhoteCng=,tag:08WJzQkcY4Xt8L0WG8KCXQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:v0g/,iv:iBEz2tFXPoqhbLZusNNw0pWMuDittfITy7uTadghDv4=,tag:po8814kqzZjFijwpuSpC/A==,type:str] +API_KEY=ENC[AES256_GCM,data:srgi,iv:AXJIj7HjvYcHWuY3jPJICDNVbwHoqa5SqYKpYYq6myM=,tag:Dfogc/yQQ6I1UMxumIRo8A==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxTmFFbzk4WGtCYm9ZVy9B\nNjBUNk1JU1RPWWFNb0NpQS85UnBqaG1sbUc0CjVyay9MLzNtcDAwRm1Cc09BeWFW\nY0tnWHJ6UXFPbzhGbFB5czg3VVBhWkkKLS0tIGVUemZ5Z0dtUkdLTFczU1dsL25J\nWXdZOUJBYmUzckh4OC9nVW9JVklYb2sK7ZzCaQvoWIlKA7kQKHHbkIjeRaXda+cg\ns6CN2rwTg+LmdhYRvZymT6fS5cuKY7QPupJtz/ktau5c/tMKM7qxow==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDbUJ1WWZjZm5VQ3U1SnVj\nanRJSHVrSndIUC9ScjN3Q1Vnci9Xc294QmlFCnlDQmNOVi9WSzFGVENBd0JRNmtD\nSmRIL3dyMm5SaHEvZUVyVElVRy92Z1EKLS0tIGhObWhLTWh6WEF1cmlXMElIUVl0\nT1M2UHFHN2hRcWFBdkEwQWVtUXo1eUkKB2CVKa/nfpZw2wJKqHlbe0gPTro4VTsU\n7n0pmw8VDggRu5OCUm54Py7xkm2BeRF9nFe38asaBCB4kX7o/jB1Xw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhTUFjQXl2MkxBYjEzNTA4\nZ2g1YXNhTkIxY0VZWmJkZS9pNmNaSzhmQVZ3CjN5TUNTYnl6NzFWZUk3d2NJYUk4\neDNwS1JTaE5zN094MDhJNEhuUGJTVXMKLS0tIFBvUUhUZzNaWGdlT01zWjhZRXR5\nTG5tdVIzdnNCSU5EQ1luMWMrZzFkT3MKOOA2Q39goCFLDQNam7MihH/XA1rqBf1+\n5zq3yoB2pOiShh+QL6zOUhidhyr6DQ9LkdoXTiZRuWUJdhuhTNPaKg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzVXd4Wm1CMGxHdWphb0gv\nYzArVWlOYXVFMjBYcjRrZzkzenRyOXhVWWtNCms0NHZGeWlkZGhhTnpGVXFBd003\nUjZ0ZndqQWJQeXR3bW9waGhZQ3dRZXcKLS0tIDlxcUdOd0hadGtJS0lBdHVYNzI4\nd29Jakg2REtRWjh2aHc3b0hzeWkxQ2MKiHdLiwH+3CyCpW1MkL7S3UlfjAvPMCWx\nflJga0Hbj1CtCY69mZGwxf34WS/18PDHYdHp3LyrA63yQtkIErheDQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwRVFFcHpDaUU4cy9vdTd3\nYXBCS3hQY0RDN1hBWUNZV3FoVXR2NllzNUZjCjYxdGJhWTVIQmNQTGs4VndNenhu\nUWF4Y0JNcTZsSEtiaUE2a1M2L0ZEUGsKLS0tIGo3azdSVmdDUElOb3VTQlVuVDhE\ndzJ5eVdPRTJmWng3OFAvdkZlOE92aVkKD+CiQmSkaAo01YrPF4mnSZETWsGkiiwJ\nRUPVgDHmLyuQk00BhKpYkXp9c8jWYFJ2AZppjCO9rnsQKi8TDHdSMg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkQ0o3SEJwdTZscm5TTnBO\nQlBhOUMxMUVmZlpWUFhuazUzemY4bFErM2pRClQ2WHkzNDVMNllpbUNvM3MvUmhj\nT1h2SUhVS0VHeXNqVHIzQWxMUFJDZjgKLS0tIGx5KzF2dm9NR1VoeXhlTTNGVWI2\nZEtjT2lNdnJ3clpNRGhmY0t3cVZKWE0KtoNzpyyRFdavW1GOV863D1t+t1gSexEP\nDHi61FHJfOYI05N1JecxNTw9GoPtIAu7r1b8gsrnlT5YbXImfWCCWg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpZGlKTk1FUVQwU1hDREVV\nRWNRcUgzMG9JUHFXM2xDUkI1bDRybWIxcmtzCkp0MzB0ZnFjTVRrUTROS3ZxQUNO\nSjBxdVZtaHUxYTlVN1QrZzFjeUREd00KLS0tIHV3WDlvUzYySWhwWHBIUXVEVldv\nTjdTQ21pNExMNXpEYjE3eWJpTjFYd2sKmq/cmBY5ZFECdeR3T9kIxGFMOEFy4pd7\nnfcm+qO6NwaqfKMfTNi7Kaz22IU98n3TXPJF664SqbjIukXISE5zww==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnUFc2bEdvQ0JsMHJNYndX\nMjZ6eWRoR1R6L0FHSHpsei83VVFabEJLcWhnCm1rTTZOekhXNnZwdUJYOG1CaXlj\nNkx2WkdQVzN6VHM2Q0F5bHVJeXA1S1kKLS0tIDZqL0VhOERMbWJsTmVXcld5MlQw\ndmc0K0EvSkJGb3Q4aWwxT3RiNWsvNm8K73B4OiBIKkslmMshU/+N6ZuSxSOu2DlH\nD/ZR9+Ux88XyrKtMc4ieBE7cNmF3IotWYFF530kBOG9Ph7RWoa0vlg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBdVpZTWZrdDU0ZHZONTJL\nb3orOWM0UzFPYndnVEhtUGZzcC8zSUhBQm5VCjZLV0l3UVJSOW5pOUxWbW5ydVpk\nVWpxcW52ZXorc0NLdTVJY0FTSTA4QkkKLS0tIG50ZTNYSFMrSUp1TkdFcUdMYVJ3\nQ1N5aVU3eEc0RGxSU1gzR2dEbnBNTFEKEf52hq1av2c0lliIWgapjQuUpNjTeqk0\ntiC/L2EB2xS/FYti+g83Qh+7L886ZBQMxsrNFBQJKKvOzgowiEuZUg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQZWIzZkIzQzJqaVlsd2Vy\nVGZwZXF5YUtqODFhRUFCdDI2R0p3aVpBZHhnCkdqZWFaZlR4R1dySW5sZVdNdlhH\ncGhiYVhDTWt4bDFhd1BGdEtsSU0xNVUKLS0tIGpXV2hvcE5RaUxQZjlVYm1qMTdS\nSyttY3MrNjFoRHpoSDFtV1dlSFJHRk0KRwhM36Ngd5oYNhonb3L35VHQ5przi2y0\n3Wf7kFjDl9vwO1o0l3b2LZ+i23yDfETWcAwt7hZwPnT1gZ3kJ6oGPw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBYXFhZ2VrS2NpWTkvaU5L\nY0EyOXVVaVFvd0xPaUZNSHd4NGtEc21LZVUwClRvVmM2ejdwMHF4Rk5NL3VPaUdx\nMG5FUXFmNkdLTkxJem4wY3JSTVVWRncKLS0tIEJ6TmNybEhZREJpTFg1QjcxbENl\nZXFLT0xNSFBoMi8xQTFleEp2TllTUlUKXil90gc2zPI4fCOuwP42LRJHB4EMoejF\nlycoBCrRlQRLchQVzU4IpNVhNtGKlIl5TVlRt5IQiX78AbSk3sExHA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHWlhlTDNwak1aVXdhbFZ2\nUzdWYVdYK1ArUGt4dnoxYzRlOXg5OEttcVdBCmJlMlc1ZkNZYmRMYjNjZFlIb1E2\ndGhPTGpXRE9laW5oQ1I2cU1zOHFaeTAKLS0tIForckFJZC9YaXZhVm5rc0JmOEtp\nYStXV0IwSi85cTMrMTEzWFg3UW1iYjgKIjqf7Yo6Fo2tDhTZzhEhGLKzqIHqisIB\n4Pj34dl5Ff9ePiQDVrgzthI7MnnSAHvk2H3KQLwGg8aLfwHehrxADw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBscC9HQWw1SjQwaTFSNWNt\nVmZmZ0tOOEliKzhtcEVRUk81QVpLY1pUZW1JCmdhSFcraGxPWlAzQVQxdUh0MG16\nYnYwT3J1clY4YkpvZGQ2a1JjRmJRdWsKLS0tIGsvdExlTHBBUmtBUmR0MFBlaGlS\nSkdlbzZLMitLQ1BWdTI4SmU0U0g4eFkKRPYv5HnVezkcVr5p8gjepHVxI03wsMeP\nqb4fpyc7yvKxGie2hdrQsfTsoIZGu449tzBe2QQXig96aBV2WJatyg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2b3dYTlF5YmVzT00rQ0tU\nT3lpNCtGN01jMUF2dmMvTkhad2FnbzErK1N3CkUzeDl0YlpuUW1lUW5pRnMrYnVw\nU21BUE45ajB3YjZTNHJVYzdKTVI1clUKLS0tIEZNR1dib1g2ZW5IUnNOckhpdlQ5\naUlvR2ljRENCN280OGZrWitsdVRoZ0UKqf/UwGqispdXa9d9GwBsUB0NHY47YaG4\nK1dmByYKCwQ39Cvbol7GUlkAtJDB9w5djBgPyIspSzz3ky/7gMLV4Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAybEpNOUcrUUc2NUllYWFz\nbjhpWkV2eENHVzJVR0JGMDZmaWRRMWpyNjJnCi9RY1VtNk1tVjIrWXN1R1V3U21U\nbzNZZ3kyN0tMdExsVXpCOXZuZXBUS2cKLS0tIHA2aHZoaTJZYlZqVGMyZEhWU0FT\nL1c5MXhwTTVqbWVkdXZvR0VxeCsxdTQKioQtOwD/BKO6daesGtZaGat0Yr3mCtJR\n1wTSmwnBvC3/248aMt3WlXv3SAzxsu/0oBotlS8O4wAFY8rLXrlcYw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-20T18:36:38Z -sops_mac=ENC[AES256_GCM,data:7CwSqQ42ITwGMu+fK305ZVdoHih9nKXSREn685LQhdIUExan1RErH7svOaZVVa10Wte7hmId7rs3Ku6BMqPEHezg74kLEhuXej+Aatz7gSoRgrxL7s80WQR82xhDKYJKu8BvxndwuCkTXzXQIjQep++tlAplk6ZsZw0y8FB/QU0=,iv:bZfjvy6BKjWrI4wdbIT0gYJVBlu5cUENu92z7629iew=,tag:Q3Rvs9guZL655DHNZav6/g==,type:str] +sops_lastmodified=2026-04-23T14:54:21Z +sops_mac=ENC[AES256_GCM,data:roklXM8wHzEOmhkcaGNMHtzQbjkHEihAGNQjYUi0OdfxU9B4J+Wua9gwagTX5CGxCiR+cwqLKK9gFPU4Q30iLrM1xb6EEAtJ2SLx3X0qrlfVaNjsPn0T5xG40esD5OFbdWgHIjlezW9gxLisRF4B0qv2ILfEBRaONaixBz7EP7E=,iv:fv+9JVOOLX+xtO0vBt+imAWSw0ctm/LfIGZzgQo8fJQ=,tag:ZhbWNFcKMiRYtX6yCAKmWA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index 8697244122..f99a43a715 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,53 +1,53 @@ -#ENC[AES256_GCM,data:p9iMlP1IHGrQFMdxIL4qJrfKpWk8qrSAMJBGyB9QDJI+,iv:OUdrwHn/h3um9iNvODqk2+LFx8TQ2MVpKn9EQ5YJb3c=,tag:ZZHQOHw+xwFUkjyQlprrTA==,type:comment] -#ENC[AES256_GCM,data:2Qcrz5mWEk9gWuY4HXqibyp6Ls6U4j+WNZ8dtR2KMmLmiCh7rB6RSMSkB3qddldMVxdys95ygsmq6BQ=,iv:eCrmZT9WcGYe3H3uXoNSsDSLoCdIrpJR+HBXYCDD5Vo=,tag:17cQ6GRwnSWPJJUG04+6jw==,type:comment] -#ENC[AES256_GCM,data:bg8BnXx4H9PEhxxiBGOYxkvtPa0WxhzIWLVK9Eht1wbzQHMdUB58jS8udGA61Yi7S4N8Sj9URQQg7FaDJWpZuZXKjA==,iv:68xMyXbvOGWKAY8zCj0VSawLqLz+WpdDwLB97l7HjY0=,tag:rDPECXQWghTKB3XrVotNmA==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:kwUuIU69UoSwNPT/NrUQN4no9A==,iv:H2r5WMak+YKEgNmXICFABPaidPuvRXlymlJbS9M9L8Q=,tag:dI6oPIgwSarTYCixlVZfrw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:SYq5WfVP3eBN5Gltul7O7hhC4PF4dTKY6kTn,iv:C7BtDSENE2GnYC3g7BW1X9FZfSQQjOOD9lx3D1TEroM=,tag:/RJ3I/WCcmaSaaSDsbfk2g==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:EwCs7jWd2Es=,iv:/twWs5mynNvTyyby+Txt65Siq1Z9Nvr8AcK1mSTnlYo=,tag:DO/PTVpS7rUsPPxh+J32SA==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:NQDIGTjOdcU=,iv:TH5S/17rYYoHubmho05AktUqdaseajntdypXLgVHmPw=,tag:9INekJ+sA3tSy+F+nz/u3A==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:tu6zRG9XMQ==,iv:7ZHd56zUhtZnK5m46QzI6gMu3adIYcUAm95DKrXJIn4=,tag:PzEdPQiKJw4Eko21v2JI4A==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:VlmOxwiHE59qjOVnsYhiLwq/13V/lUzF6k/y1jTpxJcJS+DqL0GU7q+PYt6zdg==,iv:ti7VHXLgw1yPgQTnrUhdWIyd2Xt8Pzkfs+C0997dimQ=,tag:FAi3wOJMq17zo28rtZSflQ==,type:str] -PGHOST=ENC[AES256_GCM,data:tzQ=,iv:RKuGR2kuNw81bKyFj2k/kRp6d1uWJ3a85Op0xCp3lew=,tag:BnI9luz5sc31DY1yhBFIrA==,type:str] -PGPORT=ENC[AES256_GCM,data:SUYSeA==,iv:AIK96sY8X8KK7VLwImwkGyyoxdGDaVZQTvJSxkbSmik=,tag:B7O9aCPzAE0O8dwCunbLww==,type:str] -PGUSER=ENC[AES256_GCM,data:i2lcEzn4GXg=,iv:nIS3n6bxjlTtUUoQfxhTJHAyju7uEw9o0kJN2mttakw=,tag:1Oii6wtztBZV3C2+qFamPA==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:6cMJS8QL0gU=,iv:KeztOI5wboSkdd/TQezzViGAoL/lOxLYRyPyJEC2HNo=,tag:7p3w29JPNuhIfnh52Q3+7g==,type:str] -PGDATABASE=ENC[AES256_GCM,data:Il/4cIj96Q==,iv:jPfrVeLndLWKCthEQjnvm5dayyhfgxvHpZUpRi/XryY=,tag:oEL7x/Ee/BT5KFedSrKMZg==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:cmhGUk4=,iv:At4ieCDu0HnkPoerxoOl1q5fVXbbj8yW2sHB73wFH4I=,tag:5l/oC8vZPteRhyPFP2Q+Gg==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:a/B3/n+5pM54VX8NaQ==,iv:48PxXqUU9WelDKrr9x+OGTR72HQHDGL+qq59hrxVn7I=,tag:WR0N8DVqVpZFUuMDlgpjuQ==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:aONkqZ02uT4lfotIEA==,iv:DV5QSunOtiKlUDu4xp1Qi+oB7WF2xUBVW4MJWV8kdu0=,tag:6dAfU5kEl+anvOgGIz91nQ==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:yMenj1Suy70aSWbhN3s=,iv:6nsn6w/piAjFauyh/Pckhdm399Qm/rZ+tXhZdl3/EOg=,tag:a9d/C0CNdLt9AsolgfmrUQ==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:WsqMRcntf/VvK7g=,iv:BtyelqdxO+6qv0Tp930XgJY5BP8uMY4/Sc4LWN/2AlE=,tag:4JHaeaHUrAzoo6TGS5Mhow==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:b70ljDpJBfaMOns=,iv:o116pU2o15tDOJzd0vHe4caextjVNn2rRK2ud1yafYw=,tag:2BZ/ziYGIp7iNCyuMXM81w==,type:str] -S3_REGION=ENC[AES256_GCM,data:nb5A5CSP0xft,iv:0Y7wr+rxrL2IFdusZoiywgN7OIElFyXs7tMR8xsxUwA=,tag:TsRZGIXdiYxMxsEr0s6rYg==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:OH59LM3So6QRV0Wya3t7ARw=,iv:T+OmVFb8cyA4lvBZZTuL6ewRlhh1qvn2ZVsI8cKcfps=,tag:6y59VXwVXx/15uZLbfK8/g==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:ULhXXjJKohgdUUrQ5ULWOFyuckcOcTNJCCRawkgMChbumw==,iv:zxxCM0TedJHIp3TOyBYR9EQE2jYRQbfxLS0Whm5qDDE=,tag:7TWoXsugqJoK6ZC6BiHUMA==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:ay3OlY17o+AL+BzsNwAVzXRuQ1ZBxg+p,iv:0+hF+V9uDr+yo8EICeTAjB8U4rHkKjrwZcGebn5Fq3E=,tag:52ASzQZAdP4GmPCOrJXiPQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:7QkG,iv:Pz1CQLdom/YoOyDe6ZHBgnuwdG78PJti3/wa01gr8zU=,tag:wJaVuGHaZEYg6xbDayD1AA==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:3B9/,iv:Oqiw9hyUKSmr9ewpP2WMYE5u2Le7ZbKhX2hVF6hlWB8=,tag:0PC7BM5tF6GqUG+0oPOFGg==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:m1q+,iv:GASjx1zPrwlcNAKTSlRCGkavKTo3w5fBDLw7xcrR/xg=,tag:Q8h+Xfsw2USTWQL0k+CDcA==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:E1mV,iv:+Pysf6GWXljYwIBruMNo/KQOxckK+/XwYYqolnmb7Kg=,tag:DMDIQDTwpUgWU+62gkn8oA==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:IrJw,iv:e//P7MN4F2r4ObU3AilIjfBZYKt74cdxFrDp4iNWgrQ=,tag:4WhqLUgXcN0xWFNNJVvT2g==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:Rx4d,iv:Mf+8f9/fyR0sUsMGOGN1fgSW6l8g3R9X4e94arWXxZg=,tag:xRgFSG/fo10i0qNdHg+BZQ==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:BDoHDO0xDK7Blmjbal0eoije,iv:0/GQbJ3kmXzGcEqwg5kwz7fKmf/fVj3OHJ8QekSrb20=,tag:513WDrMQIO9FFahY5a0Hwg==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:xOBZ,iv:yFwnyFO1DQjcmEMGhl3kmq0LK/duR0Q+6jn7iFnA8Ug=,tag:xc7edUrT0W/N5Ig7UYJDKQ==,type:str] -API_KEY=ENC[AES256_GCM,data:YpEg,iv:z/WlwaHV5R1G+1PD4FPLB/ooalj9358JYrB/iQ314fk=,tag:PPgz6KmeKnWb2aot0e5oCw==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmc0RmbGR4TzE5Q3BoTm1L\naEM3a1JYcTAvdFJQdjlicTRzVWk1TXdhYVZ3CnY4cEVJTW0wVm8yZmRiYWtUZ1Yw\nTWZoalB2NkNKL0xjWHRKSDNZQWdBL00KLS0tIE9wZHgrLzVGLytpNzUyVElmREh1\nc1Z0MjVoSTQ1T2piRkpZVkJUWllRWjgKf/RvzMCRN8s7hWlMGY6bnpSqxhP8ZMgD\n7jRIKYIIyPjsaucvaz70iDbV1UlqK8a7yVfA4ClvqYNNoY6MnlKyYg==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:PM1fZhdC35KHpdcYur5qMmSrddmKgoipnfwpgf3Q6I2j,iv:fll78xjM3h9HIj6ccToZ4WDSuD0qv5y5GV9m6iUxQuI=,tag:0tu5UhSJ1ZGQm5G/6Ljikw==,type:comment] +#ENC[AES256_GCM,data:gSYmyZuokHTx6pDgJ/KV07VjvqO0EN7vZlQEQQKMY/hH4iVWqtVakWnaqKHugOQkZ/rjsXYJrChsyok=,iv:JMOEltnRHrO3U2TYD5Zp8w72TEMidw5jcOBWnJD+vKc=,tag:gIh6tmQ9UzIZb6/tn+pItA==,type:comment] +#ENC[AES256_GCM,data:kUSZifc1rDiM5dXF+dkr0bO8xP8rZNCphMPxF+qwdy9i1dDefQkpTn4OqZp3v9KnWc1U1/eGK4ewqrDKkn3JeBtq1g==,iv:ms83bCukYpTSzeX6+82vizjfl1nqcdzGrKidsZyE4TQ=,tag:bWHkFDLv6pQESVy39YsAZw==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:zaB8QWbVDyDBArTjdsgluysu9w==,iv:fcC1nv2eHvpRo8R5Gu4oB/zRbS7CA+HaI97hSa+OPaE=,tag:Rp2z5X10ukawHxcprovMvw==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:Z7tME1h7kM1qDwMtkCW62qTrcmuuV1ofIPCw,iv:pE38q4A9rDNqOhJWyAmGTi+MwAuczn42vaapVM7vu5s=,tag:UjiLhsPBj/FfoS8f8kC4qw==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:gLzpdHKX0NU=,iv:RzU1BpoEsMV18NY6lQrCe3Iwc5pjA69q6dYGCiDJ8v4=,tag:0FKdnJLszh3dIdbnDUrNKQ==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:RgqdW8ZD1Ag=,iv:glL2Pmg8bMc61MS0I+JIBlflNqktFheBQPgYe8/BiYw=,tag:zrcsZ0upQubLqIvqvWCdRA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:g94aWQMIZg==,iv:hkPC89XCJcv9znmblBtLM2UqELke0SQozIxBdAkmx88=,tag:sZJu4sOo26U0mV2rsJYdYg==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:AZRIZ84yNWXMVhL/S98A95lkpQVPScZc7A6QS+W2u8FVjxKxYPNpcbp/Pzj77Q==,iv:e7LZoxpm9yxec/4lW6xqJutyQtjsM0/Gtv8rqOwekbg=,tag:/cEuDuoe/zWg1sSICTU34g==,type:str] +PGHOST=ENC[AES256_GCM,data:Z7E=,iv:Na9M62C0+h+2tz8Ih041WcyD88lRPpRegAtZTIsB+YQ=,tag:G2MF0xpohg/I8MTyw6rCiQ==,type:str] +PGPORT=ENC[AES256_GCM,data:PRr6+A==,iv:VQ2Xj009tQzJtSb25tpveyN2M3yRWvA9ujn88gdZyEI=,tag:UThpovbxSGZ263pyvbNw1w==,type:str] +PGUSER=ENC[AES256_GCM,data:c4J8pPJr9do=,iv:YELd1S5RKuYmQPrYdSgEd4keAY3xoTwV1sAMDCNdi2I=,tag:OGDQiUFizd+EE8eu7EKwUA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:NRpv/z8VQfQ=,iv:fKovNLBdsOj47RCWac8SfhsFj1p2kGqhRJDHzBYySjs=,tag:BxmcI+7E9BVx7RTb73rz1w==,type:str] +PGDATABASE=ENC[AES256_GCM,data:QanAp753SA==,iv:p/6GyYi7dEzF6WaIQUVFIDvOxYkPVUmox+Zqvf8POLc=,tag:3El3rZOjrmPu+OlbdAusIQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:y/gV7Ik=,iv:xIXbeJ1Hj2Zr+tPMVyV0a7kbTXYt1iUljENwihDXy1w=,tag:Q2pSLl6dYBU16arGKEWODw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:pseU80j9AUxGichuiA==,iv:YuPZpDCWGNmElIDOzX/tiKFR0C6sP+TeLP+8G5JuRGI=,tag:dh1WiQj+sKefJHKdoGRYFQ==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:TCye2KJ/XIrWY2IyNA==,iv:WFNcyCptGtD9sJCA5jY4zmxIWW+oHmjb36jJjGS1His=,tag:ImzdJzyh4H9G50b48nURiQ==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:+70tJLF7e0NeclU5Ewc=,iv:LVnm0jk5awvPIgRSDkkJ0j9T6Mq8tzUfXSZCSEk1Ex0=,tag:pGnSsj7QS3I0iXQng7+EEg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:7wfC9OhprlTZNKk=,iv:XD0UJUFLNnZoB7xTgD3kuXhal9bRbeO+fC4Bac3X6JU=,tag:ZTgFTCfUTpo5DH/iaxNWoQ==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:c0G/g3eZddj7qpw=,iv:2Vg9XWKj7LU7XdGGIc2OT+3KVhzE6c65mAYCy5PYU44=,tag:T/JmCBl9Zl8dCSPsLn6vnA==,type:str] +S3_REGION=ENC[AES256_GCM,data:KCBRZ2xgQzk1,iv:dFw8rPPihj8ZCBrb+lRUAmoqYCCknslK9s7SOYqFevw=,tag:2cLGWwi03dqEKh9qpM/L1A==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:cRwmilkqgXZF78qgn0QSOkc=,iv:jLnBRM69ZU8l4dftWtnfAn0m2NLvpnqhqlmDERrKOPI=,tag:CbCM2VilqmTCLGbS8M6vTQ==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:8vQwEgu4nPDnYCA7oDjfbkIj4nyMbVZ2n1zDOOUlfoFjnw==,iv:r/l0CvFrgtQck+GMXU8CTOyHt2KX6075T6Pyn67PPao=,tag:62W8JARMAHBS16J1mBj8wQ==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:y681J+MQ/1pCq/q45hLwJsdfVum2aQJ/,iv:db9eaYuGrrCx5uBbDA+ZJGDC7bPaKVtB6a2RPSWGLgE=,tag:QBqwxfZ9MXgprh89AbT51A==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:zeiC,iv:7jx3DXVvWAJJ9AMwN4n2CJascnw5DSgHbzZabHRtJS4=,tag:XDtZhGZiD9yZIujhhzM75w==,type:str] +MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:HP/SNc3kfds=,iv:FhreJUQ2zCBrnFRXAKv4RFVUfIH/OaExCaOH0UCLTSk=,tag:ntesCLYO8Y9yA8UKKskfZQ==,type:str] +MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:1BcjqA==,iv:qPngC635kew/cRQhISSW+I2oE18CNTGfcYyrLT1dLIc=,tag:k9DYKtPugamBFWhY5FqCDQ==,type:str] +MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:alCw,iv:z+QN4pbOGnOCJWpK9GnRljqgVCKHup084OHl/EqkPvk=,tag:q4sz9g7/ayqW9AbnqqazzQ==,type:str] +MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:AVrb,iv:6cSE49M2WpIH32d2d3zQny7TvBas2YkRhDlqtwbYQqQ=,tag:WeHa2blzxG+PzVeoE0tSrw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:G4QD,iv:oQu7uPqqoY4AYpEgy0lnpPex+CQUanP8RXMeY7FmanI=,tag:mtjhcoJcdqy+orDNka1dpQ==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:X1PgwKsL7eNDQxh7Rtjsaxp+,iv:tkShFRBElAIXU8zJLInatVIPglyfgEdJPVG3YH6ntF8=,tag:jNW3Ad7mRb1QKK9Dht+aUA==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:6WgM,iv:y5ClcG7JPn9EnRf4oWoNhtcz5FpiAleDAarxcLUDbig=,tag:fzMOiKLBajxJm4Ao9GJ8hg==,type:str] +API_KEY=ENC[AES256_GCM,data:JqWn,iv:m/J+7iJSgmjGtJzTA8S03LhWGju2iInhcDZQVs8iAs4=,tag:silcuagUfW5xG6WBbM8DAA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOQXZGcG9Sb1p4WlUvQkp4\nV1VlU0V4cFNaYi9pSlRzdFhkQ1NzV1ZVTUIwCkF0bi9NeTIvUThkeFV3em1Eemp2\nVjhxMU5pM3JSendOaUhuaVpYazNJUFEKLS0tIGp0VlN5bk0wNG5kMmd2ZWw2b1N3\nMDdVZjRYUHh6OWhOUlZMd21FYWozeUUKYjWsWWc8bIbUKV/9NdRrP6yFSxe6FpJL\nzhiup40baB4TGFeXzi0N3HAMF9rcT6dy8zXedTeBK039p8EDGwtOYg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDQUlMQkhwK1ZNYVZxQUJO\nV3NFeGU2NndSZDZxbklVYU9nWEdnYnowTmhJCmdySTg5WHRSR1NwWTVtd0Qxb21j\nTWZRQXl1VWVwKytPMVdiUFVUcWVRY1UKLS0tIFJodTNNT2FVNFN1eTM1TGZqZTJT\nRURIYmZnSU5Eck5mdW9kM2RwL2pjQUUKE2x+0zXrVrAHVX1d2Udj38xaLvg1kJF/\nhy4r1g/kWCFvrpDAVMQYBVxmAKKrZLJxm7jdRsNUQYKxaFBclMuEjw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpVEJKQmpkaUtncTlDb3dx\nclRvUjlYc2dWSktzcGJTRjNsUnZBZ1ZJTVFZClJDVzJ0d0RXTTFuN0ZmRnJmcUwv\nWSthc3JyaFEyVWozNGhHbGZOemhaWFEKLS0tIEpQUzlmYi94YXpPOU05QUVqRERP\nMFpSYjdJL24yUitWbi9HV1JvcGxWMm8Ki7m7AFooKu5aWKwUTcT1Kszu4f+lGqmA\nmPhc7o/jPmdWqOWrgHL8bxbz4AQQBSRjqsaKc7DpSMYNU6y9ZPn3nQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSDVjVFZ2cWw0dEsrL0RY\nb1hZNHgwOXBIc3l6aWgyUTBHb3dYQ0pxWFNrCmN6c0RvcWZueEc0WVV3QTBNbkJP\nNFB3S01WODdqUXRHdFQyYUxmSkdzdE0KLS0tIDJJR3dYQzJQdk9mYzk2N1JFb1lx\nWjYwK2hSeVZNTVJUdm9GS3FFbkg5T1UK1QN1MP+vqm3n+q5Vym2JMDh2l6r8IXyX\nSDEr4FMvAb7Jh7vbe/ZT3/j30oX3oPwxlZ4La3utDCAUrIBNkb14Tw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTUZ3MlhmOG9TUm9tcm8v\nZXNxQ2JMQjlrUTJ2bWRRcko4UGppMjRrcEM4ClMxUVpsaGdlOEFZb2Fsdzc2ZUxi\ncXJUb0lMeHJOWVZ1M0s5NXFSbUxSWjgKLS0tIEtBNEdXK01VSy9tSkVoY2RRL0dG\nbXFaVWFxakRsM1d2eTBjSmkwbzdlVmsKF/xkYw9AXIcdiEAvhORfesablNfFtv5+\ny5TJ7lvc5PFZW+9egaFrH0W6RO7Ly4qO4IG3mjMxVgQFO+PXqJiyYQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDMHc4aUNNVjV3OVBiT09U\nbHNMakozdzcwck5SbHhwdWFaVndzdlplemkwCkVHU01xK2RYWGh2a1pFMkRRTEsy\ndjZQMVFUbXA1ZG1zV0NzQ0JoRjYrY3MKLS0tIFJUM3h5dGl4TGFLSWRqZlc1OU9Q\nNmg0ZHRwVlM1eVBOQlhDelJnOHNvNlUKRTpEyFR8qObU5yUXqhN5/y5wgKg9+3Xe\n8b1jhUm5372AgZ8Y/vPmSsFYftpmGO/kPra0e9/Rt7NZRuFQ9babFg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5WG11TlVXclhPa3R6K2dF\nM2xIT2J3V005NkdjWldLN2xnUk8rY0N5WUZZCnN4T1l5MStHcmZXeEU4VDduUEhI\ncUZvSzNtcFZ6S0g3NGhaYkVEaUNQb00KLS0tIHBabWVUbzIyMi9hcVRIRU1iamFG\nT2UzMk52OWlHcG1yUVI4c2NGS1grOVEKzR1ckP+YiA/7k9pncFlRl2xVBBpGBhYr\nH+5NAZ1HMp1P6rxhSkgN6qb/xddeJx6fyskgH/4MXdoBWxu8N4YUcw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBObnZwckpYVi9DVkxFTk5h\nL3JRVVBGUDAvVEJLd2tWNGE5SHBLdG5ZYUY4CktCUEhnaXIwNWZpczByYUlRZExX\nWEVSUUVlckRMaEp4dHJPa2dDMGFyQUEKLS0tIEEraFdzU1VHTTZ3TUI3NEZMaFVJ\ndmpLalJRalRWSDRML0czRElNaTk5Q1EKWRJg3hG5aznPgMsQnxBVj3T9fF8fLf0s\no3+wryQM8B6nJBIsDbhXZ2Weclvjgg8kAJYtRqqBnQkWaKenM+UOfQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJaUNUUUhkWGFBSm5FUUFj\nVnJ6QlRKRUJWanBqUWJZV1VnRTk5alF0ZGlRCjN4a1p6dEtBcURzVHdoTEdkQ0lV\nRXVFSmFPMEl2V1RnbFFNNTNtVGMxdG8KLS0tIGVhak43bXFWZ1craUdkVW5PT2JZ\na2ZWQnU0dWRxK2t1NmYwbzJHSnR6dzQKDsL8odY0cG/g9lqdwFEYBlo31NnQgXny\nR2ebeU4B2/Tl7xfQkFZEZUYnYuASA+oc0mMEiEiqosCnQQ6278yjxw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOUm1BMzQwUVBDRXpEcVFu\nd3Q4ZjlxUTBxemY0SC8wMnNvT1NEb1F2T3g0CkxBQXNhcWQ4ZU5RZTNmQUJDZ2dL\nT1dnNEs5OTJBQmZreHJzZ2dXaGhYY2MKLS0tIDNUcEo1VzRJTGc3ZzBtbVlxS25p\nUjdzVGVWMXJLSUJENGlSTDViSDg5OTgKL1BHZS0q5+jIrr93jM2ZL3Y+Zca/90H3\nA9snkmWbR0BbNClybAaUT6J4lDnIAQxydQGkTdxrzu7nafwtIyauGA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1WGN6Y0xUZXNoUFJhRHlS\nbEMzYWdTSlRFbXEzSndIaC9xN1ZaQW9YV1VBCjZiODFaeUVRTU1TSVBuWGc2dG5z\nM0x1QUlQeU1aT0kvV0U0aURTUTIrd0UKLS0tIGdEWExubjRWYjNVN1plT1RQWmNR\nbVc3bnJkeHBuaWdCaGlhY1VFazFta3MKlWMHxsMeqhW5H7gWvPpvP7VxK+1QQPXk\n2MqtCeKQ4ytBCQ8WGzfeb8P1T+uef7O9SdRuTIvp1NTGwJagwlGLqA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4cWlXcVZWNjRLTE5HeWtU\nV0M0TkUwL0dvb2JDY1MvbUZtdFZwd2ZmWWtRCmVvUUdZN1B0ZHBha3JETzkvNWNh\nZkFvZkFSbXlkcGpOdkUzdG8zU2dBaG8KLS0tIEtuZ1FNWGZQd01JdENzNkY4ejZm\nbHNEMURteGt4TEgybk1yUSttSldZVXMK2iAoeh+DeWaGhZYt25ZrFVDFiWycMAia\n5iYixJuJhonly4Tjg1b8MEV9GFf64QZtxAGDJb5l6xNZn7nyJGr70Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOZDZQNkpZSjZSbmJ1UmRJ\nY2VjbjRCQXVwRHNvUnJ0em9YVmJoS0F2SFZrCllaU2s5M2w3RG5QUU1IWDRVd1Zp\nUEZwMElSSnJVOW84YUtyNFRZVUdDOXMKLS0tIGlhZjY2Z3ZzUm1yVzh1UC8zbTBo\nWnhseEpHL0hkZmJXT1VxV0pRSTUzbW8KR8YUwYe+Lo5E7oNf0IbN3ET46JmzpCVo\ns7K3X9PWlYjKxFFPF5Dhgeox9F1+H2QW6tGFbYyh/pSq3fTb6EbQHg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvSGloL3pNZWN4L09ZOVRi\nclhBQWlvRVZDbXRaN3pXUE5qWituWnUyWm5BCjluakFxOEU0VDFDVWV6Rm5nWEVi\nODZIVVBNVmhTbGV6YjFlOFhLQ1FnWDQKLS0tIEdDcHg4T1B3YlBuQnNEaUxyUVFE\nQkNUSkpVV0JqMUZpcytzUnpkalg1a0kKIyK4e9stHSuPpPdHx8wjN1HKWWTdpYcE\nbAV43fBoq/msWUnVpXWyhftCjQwsPXOdOU96yRJ83oFvDB1NOOGZOA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtOVM1a2NVZWhNcytGeHNk\naXBiY1VyMFRiSWVENDNZNmtPK2Y3Ym5EZUE4CnM1ZElOUUlOZmkzUEpGdXVyakpZ\nYW4ybE9ocndIcXJjQlN1VVI3YmNLbkkKLS0tIFFtSDJMK0U1V0I5MVlMR1N2ck40\nV2dYSWNMK1RYMlZ6K1FGNHh4QmVac2MKYNi070eC+b4bByzj+aRLrD4DgxMlwjsz\nr/VlDHbKnY17nxtzcBebio/VutH3OMSdzzwZ7to2BAN1BLGlHkRgVQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-20T18:49:45Z -sops_mac=ENC[AES256_GCM,data:+uRgS1bqXooDUR54pNCKZJ77sEVaJ2QysaRKK8YygZ7A5kRD8ld9RLeXlyt2R7KD9NwuMDjZIKKO+NwZioRaQbyedURWhXUqZCmcZYOvVpPw4pW5GgDoGWibrgXEIUY86PzZ6QLBnB8IUv1jr1RMGuyMWuoWPjeMN72Y+prn6VM=,iv:UOviBt6acwIDGot2aspeKDvm0oOORPI3sfzGgHG/EP0=,tag:R7+uVNSPqRBC3lVLSx3JcA==,type:str] +sops_lastmodified=2026-04-23T14:54:18Z +sops_mac=ENC[AES256_GCM,data:GabZkCsnQjhZUVFsY0StvwdfY9bTIxUPVBpA7UMLqWKKUgpkDxpxO+Esgt4oHL/xbX3YyFze84NlaUmPu71uW5vQf+s3jNAv9yVZLtI29eFydIw5//7FpAPGWNPF07qIPUkejq3Z5+r0xKObe7ZkVSLbrftA8yKNp7BHeiELLzI=,iv:ekxoN5hl2zfY17My/OFZ4z9P94U7IQUxkRyuycOeiDQ=,tag:BkqJl93n39dkxzFry1lG8Q==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From 796b61ad72c7569e06b110b86bfb390fd90b30a2 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 16:56:44 +0200 Subject: [PATCH 117/153] fix: remove mailgun prefix --- .env.example | 8 ++-- core/.env.development | 8 ++-- core/lib/env/env.ts | 16 +++---- core/lib/server/email.tsx | 4 +- core/lib/server/mailgun.ts | 25 ++++------ infra/.env.enc | 94 +++++++++++++++++++------------------- infra/.env.example | 8 ++-- infra/.env.preview.enc | 86 +++++++++++++++++----------------- infra/.env.sandbox.enc | 86 +++++++++++++++++----------------- self-host/.env.example | 8 ++-- self-host/README.md | 56 +++++++++++------------ 11 files changed, 197 insertions(+), 202 deletions(-) diff --git a/.env.example b/.env.example index 7093236b2f..9a23c335ad 100644 --- a/.env.example +++ b/.env.example @@ -29,10 +29,10 @@ S3_ENDPOINT=http://localhost:9000 # S3_PUBLIC_ENDPOINT=https://assets.pubstar.org # Email configuration -MAILGUN_SMTP_HOST=localhost -MAILGUN_SMTP_PORT=54325 -MAILGUN_SMTP_USERNAME=xxx -MAILGUN_SMTP_PASSWORD=xxx +SMTP_HOST=localhost +SMTP_PORT=54325 +SMTP_USERNAME=xxx +SMTP_PASSWORD=xxx # Application configuration API_KEY=super_secret_key diff --git a/core/.env.development b/core/.env.development index 87e237ebb8..584950972f 100644 --- a/core/.env.development +++ b/core/.env.development @@ -1,5 +1,5 @@ -MAILGUN_SMTP_HOST=localhost -MAILGUN_SMTP_PORT=54325 +SMTP_HOST=localhost +SMTP_PORT=54325 API_KEY=super_secret_key DATABASE_URL=postgresql://postgres:postgres@localhost:54322/postgres PUBPUB_URL=http://localhost:3000 @@ -11,8 +11,8 @@ ASSETS_UPLOAD_KEY=pubpubuser ASSETS_UPLOAD_SECRET_KEY=pubpubpass ASSETS_STORAGE_ENDPOINT=http://localhost:9000 -MAILGUN_SMTP_PASSWORD=xxx -MAILGUN_SMTP_USERNAME=xxx +SMTP_PASSWORD=xxx +SMTP_USERNAME=xxx OTEL_SERVICE_NAME=pubpub-v7-dev HONEYCOMB_API_KEY=xxx diff --git a/core/lib/env/env.ts b/core/lib/env/env.ts index 688502bd1c..0dee395071 100644 --- a/core/lib/env/env.ts +++ b/core/lib/env/env.ts @@ -33,14 +33,14 @@ export const env = createEnv({ KYSELY_DEBUG: z.string().optional(), KYSELY_ARTIFICIAL_LATENCY: z.coerce.number().optional(), LOG_LEVEL: z.enum(["benchmark", "debug", "info", "warn", "error"]).optional(), - MAILGUN_SMTP_PASSWORD: selfHostedOptional(z.string()), - MAILGUN_SMTP_USERNAME: selfHostedOptional(z.string()), - MAILGUN_SMTP_HOST: selfHostedOptional(z.string()), - MAILGUN_SMTP_PORT: selfHostedOptional(z.string()), - MAILGUN_SMTP_FROM: z.string().optional(), - MAILGUN_SMTP_FROM_NAME: z.string().optional(), - MAILGUN_INSECURE_SENDMAIL: z.string().optional(), - MAILGUN_SMTP_SECURITY: z.enum(["ssl", "tls", "none"]).optional(), + SMTP_PASSWORD: selfHostedOptional(z.string()), + SMTP_USERNAME: selfHostedOptional(z.string()), + SMTP_HOST: selfHostedOptional(z.string()), + SMTP_PORT: selfHostedOptional(z.string()), + SMTP_FROM: z.string().optional(), + SMTP_FROM_NAME: z.string().optional(), + INSECURE_SENDMAIL: z.string().optional(), + SMTP_SECURITY: z.enum(["ssl", "tls", "none"]).optional(), OTEL_SERVICE_NAME: z.string().optional(), HONEYCOMB_API_KEY: z.string().optional(), PUBPUB_URL: z.string().url(), diff --git a/core/lib/server/email.tsx b/core/lib/server/email.tsx index edbbe23038..0ca84925ff 100644 --- a/core/lib/server/email.tsx +++ b/core/lib/server/email.tsx @@ -23,8 +23,8 @@ type RequiredOptions = Required> & XOR<{ html: string }, { text: string }> export const DEFAULT_OPTIONS = { - from: env.MAILGUN_SMTP_FROM ?? "hello@pubpub.org", - name: env.MAILGUN_SMTP_FROM_NAME ?? "PubPub Team", + from: env.SMTP_FROM ?? "hello@pubpub.org", + name: env.SMTP_FROM_NAME ?? "PubPub Team", } as const function buildSend(emailPromise: () => Promise) { diff --git a/core/lib/server/mailgun.ts b/core/lib/server/mailgun.ts index f9ee2de922..43bcd64f31 100644 --- a/core/lib/server/mailgun.ts +++ b/core/lib/server/mailgun.ts @@ -25,11 +25,11 @@ const NO_CONFIG = { } as const satisfies Partial const guessSecurityType = () => { - if (env.MAILGUN_SMTP_PORT === "465") { + if (env.SMTP_PORT === "465") { return "ssl" } - if (env.MAILGUN_SMTP_PORT === "587") { + if (env.SMTP_PORT === "587") { return "tls" } @@ -37,7 +37,7 @@ const guessSecurityType = () => { } const getSecurityConfig = () => { - const securityType = env.MAILGUN_SMTP_SECURITY ?? guessSecurityType() + const securityType = env.SMTP_SECURITY ?? guessSecurityType() if (securityType === "ssl") { return SSL_CONFIG @@ -53,14 +53,9 @@ const getSecurityConfig = () => { export const getSmtpClient = () => { const securityConfig = getSecurityConfig() - if ( - !env.MAILGUN_SMTP_HOST || - !env.MAILGUN_SMTP_PORT || - !env.MAILGUN_SMTP_USERNAME || - !env.MAILGUN_SMTP_PASSWORD - ) { + if (!env.SMTP_HOST || !env.SMTP_PORT || !env.SMTP_USERNAME || !env.SMTP_PASSWORD) { throw new Error( - "Missing required SMTP configuration. Please set MAILGUN_SMTP_HOST, MAILGUN_SMTP_PORT, MAILGUN_SMTP_USERNAME, and MAILGUN_SMTP_PASSWORD in order to send emails." + "Missing required SMTP configuration. Please set SMTP_HOST, SMTP_PORT, SMTP_USERNAME, and SMTP_PASSWORD in order to send emails." ) } @@ -68,12 +63,12 @@ export const getSmtpClient = () => { smtpclient = nodemailer.createTransport({ ...securityConfig, pool: true, - host: env.MAILGUN_SMTP_HOST, - port: parseInt(env.MAILGUN_SMTP_PORT, 10), - secure: securityConfig.secure && env.MAILGUN_SMTP_HOST !== "localhost" && !env.CI, + host: env.SMTP_HOST, + port: parseInt(env.SMTP_PORT, 10), + secure: securityConfig.secure && env.SMTP_HOST !== "localhost" && !env.CI, auth: { - user: env.MAILGUN_SMTP_USERNAME, - pass: env.MAILGUN_SMTP_PASSWORD, + user: env.SMTP_USERNAME, + pass: env.SMTP_PASSWORD, }, }) } diff --git a/infra/.env.enc b/infra/.env.enc index 17f9cd00cc..8735263eec 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,57 +1,57 @@ -#ENC[AES256_GCM,data:2f9Yz3VbD6e5atbIojaNYRsKAm+Ydvl6/1SZ61feF9cB,iv:GLfYnFdpkYsq5uQ/p5bViiA+7I24hCeF6bBZmlLIu5w=,tag:B8E7/r1mDOLDc+gDCx1Guw==,type:comment] -#ENC[AES256_GCM,data:/HipH5MKELoFnltnVjfy2omhxBi4kxuvX2YcSO6YRCFfg7Vjm7LrpHA8j+wNJewoovLNdgXd/wF5C0A=,iv:SYo59G3Ib04zndM0xnWonwy7vhFs8uxStBk42SYcPAc=,tag:GHblHqEtJBBGGs2Hylsmew==,type:comment] -#ENC[AES256_GCM,data:sx/lzxx6JjRmUwado42N7+y8+rH7k4aeD5IOMYQxbDNZNtGCRAw+DBZn61vrzP6D90AkQUwKgrLcMYbYy562TKtpTw==,iv:eTVPmQg8kO04gbAwcWR1x3rZlw4lZYFUUi9GkoZvY3s=,tag:z5dayNVV3fNfWbMYdfS0LA==,type:comment] -#ENC[AES256_GCM,data:CLX5RlqvBYJgyM9bIzY8wuAQDw8nBIBarNR6KOI8deIR+6yxiot6elvgRoHqQ1cMNg==,iv:9/Q+bztJTw7nuG1RV/aGU2v0C/eqQomCKFnsbfgcYNo=,tag:e3/aokDyz/xmw/c+vxJL+g==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:Z+fMlcrps5QGVQhmBItc,iv:Kfhnoc6i9gZagbeOFXrLuON1uJ5EY2fSONulqWpxNF0=,tag:4DgFyhxiNLXztpShQnqaNQ==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:F977DG0P3YPapUF4/XQAzlvZmOhjTwE=,iv:6o1RlmIEehAnmdv/zHNN6+nYa20Q4SrHMNWdVOyuG10=,tag:D274kaw5YkM+c38dCiZJxw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:fZ7SwwvEMv6JJmVDXaoEe6iJ7f+mkSE=,iv:WgSwX5wdb1mxgYwFJ9HWtw9VH/1lg1RezqfjGnu1Jss=,tag:kzI7uxQ5wdS1RwNsPWY1jA==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:Oofqs+dw5Rw=,iv:8GpkMWPODNHzd/icmm2c0gQ0os+zDufd665/ODZGouc=,tag:1OABm80AwvdjaGGAnLDD/g==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:701k01D3fV57qhR4NNjw7mdqlq8cTI+ItvOrulDHIW6hRQ0aCGcn0KDMYvJVIfIPk4lzhz1RvYqP3tyzJwagRg==,iv:iuZ5NMn5mGPq/4uBch09VmQ4qem4mDLll6rVBa7Hwts=,tag:j+CkPXSQYDPBJMrp9yEFnQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:0s7+oavyxQ==,iv:WDyovRtMzyOFRj9KTad0c22dp5jKFNEaU+JbIP8riXQ=,tag:5y0PwxURwTG4scEzEBT/2w==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:12e6ulODoLfGY0Kgyea3aWjzRcTToIBi9f9pUt+dzEb4+bht4p20XlwhVd0sKndsQuCwvadt3wKsMW9e4p74VbaKr3SVfDlDP/u0pkeVlZXOjVYhXAgWvk3T04i1+z/6n81m+L2/,iv:zjpe6qPyNgUXUDhRrUo7Op/vR6GA5mR7O9nnCHqeYJY=,tag:g8Kz6c75KiOV80YZzbvpzg==,type:str] -PGHOST=ENC[AES256_GCM,data:XRM=,iv:cZ+TnhTn+4D13s/j3xIV3IrzZiQ9M07J3dqL9oReEIY=,tag:QA0KujF6+3yMiuNC74fgdQ==,type:str] -PGPORT=ENC[AES256_GCM,data:r1TO6A==,iv:CVd/x0K2anSl2Xy+jrLDwoC+y5AUC9R9bupT2JrPLtg=,tag:NPCjzHngSh5JnbxZNrWyRQ==,type:str] -PGUSER=ENC[AES256_GCM,data:fRPx93wcIcY=,iv:rGvemEDcstVt4A9pn7gj3/pZdXV/5Uava/V8dz3hRkM=,tag:Tq+gMJ/kTl3+hz9THj7YVw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:mwjG5W7NcD6ZJvIq2aEPy9bCC2wR6zqX94Pygo4thH0tWAna/T6/A7uDj7rD4ueOjtI/HmqcgIzgWYoOzhAq/g==,iv:2sJRSYJXvlRsHjF8k5Iid4BnIgfNqtigrmJYdi84YAI=,tag:Y1SfCibf6SoIDhJ+k/1/KA==,type:str] -PGDATABASE=ENC[AES256_GCM,data:UxN09bkS8A==,iv:nh01Fk+ole3sqrsmuLX6N2xqs3kC2BYdzn5nD1WW10s=,tag:uyUp+G/iWAmBUYkZq7x//w==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:I8o9D1Q=,iv:3b+R8r8HD41of1GOkeImXI/EcNRYGTZaxyoaqh/hN2U=,tag:1Dk5nVIStGiDIonSB3qMcQ==,type:str] -#ENC[AES256_GCM,data:vMD9CkBwz/vwJDp3JMO0Gb719xCzPnE4GI1/fs06,iv:CTHcTr1wcAs2Pf4YPIxZIhyK0lcDzdpakxRGKstrsf4=,tag:YuUw2JVzaSqlYQSgU7TLbQ==,type:comment] -#ENC[AES256_GCM,data:DkKqKwjR4kPLKW7ET40H7QOKHrj/H3ISFyHWaYjDWUoMLQ==,iv:eMUK5A1HyBNaV9oY9jtd46WfxdxrUcaolHlnnCw4c4E=,tag:nOHtB3o6vB8mSPkaOjpptA==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:wnqWa/fWkdfqsHMrakF149It,iv:EeKKoQxNegYjN3Hye7MWNsPHvO6tEJ9dgMLzVAH4A80=,tag:+CdlYQIv9zssjfSIVwIU2A==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:Xh0aXXMGpqtHbj7vdxN72OGG4io=,iv:hfPpd6eIqnpRwFpTc7PGQeGNH58dHzXz/v2kdjH7jZs=,tag:doXvjoJl6r7O4FBERi2qIg==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:gUe0loW8nqkOrGxE/K+yUdk2bTEc6f46/IH73ipKidch4NwOjkg4oA==,iv:A9euKXdwwHdqa9thGVHeSkzjRst3gnLmY997FbEkkN4=,tag:5OsfCoEmbqndsjEOfdcnLg==,type:str] -S3_REGION=ENC[AES256_GCM,data:dPnQ7gk4iRKS,iv:NvMLOcH/Yjoqcy8pV/NpVMZOam5Uw5ylZ9Jo6AHfr5w=,tag:DUcR44zV8VS2G+JchgTsrA==,type:str] -#ENC[AES256_GCM,data:z8DJzPoL6HX4FMHXVwby7dgjNen4VRYGCuJS+Hzb,iv:cuiYAPxEqo8c2QVxoJ/NgLYfShiqxF1F23z24RCowi8=,tag:PRKBSko+XgSVOuzN3k/5cg==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:87UV7aeEk0f1,iv:sMJTA/61W03pYDsjf+3Ie4IpYNYem2os7FBYcl4jFGQ=,tag:h8xLa3yFxv8RSuRQEvUtSQ==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:Oe7BG7FBWGZCdBznU+PKgYXygpFCnTbW,iv:77GzHNoNzeRo6gj1P2N6gkfQ3wXJhrQtzBrFokgv+xw=,tag:ggBLVBcgb9dBVdZXSI5G9w==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:tPqDE8d1lpAvH1tpfY47mQ==,iv:CKV5X+KNL130mN0IbqK3P787M+jKQsfzHBSpA+VKMc0=,tag:ihM4J/4Bb3ZBphdbSKHZPA==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:CLMq,iv:DSGIq/RsOkVrRmAXGj3XXbiWOhIkQAIXeEC8qqyypGQ=,tag:9NtAIH5if8RqRXl8u1A6TQ==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:UB82qxlvBHZa1RJJPXbs/28VXIsD7kxOmT6SPPRF1Ck=,iv:oXP+bw9eZNr0ERAytCewJ3A8GPvsiw4YtwiNHzC99Jw=,tag:ZR6PCmCbO0KldmkQNHZqRQ==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:ywWbq4wYAncIE8nPv11Jpw==,iv:jafC0du8ZrhcnlEx2TKXiEDv0HJYFYnCPqaVGrpGeMs=,tag:1iPkKBzUAXy1Zl1TZTesYg==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:QrNFuvdC0vBohyrroBSGSklalDpYbqxmjIkIokZRcH1uyoK8A+FB7DZAmmdkliz10bAdeDU5Fl6XlKUkGqzvCbvZkL8zoZByrEsOwBtpAVYBiE9GzGBmnxBy519KMejtm+ayLOrD3BAaGwEQEZl3YubFXh8R34TtQt+p+7VPqXvNT/2g5AnmwW/v29kZ3+ALS5E8ZBhFqziSJPNjqbCA4GNxHxjxrky/fkkyLBGv1uma0EsyuTHwjTKqUsDKWKhru+IBIpDK0DJAsHsy8Q1do7wHCzj1tW3oRwyoamIXY/hITtxkIac/o/aF2vySfKYewOpDTeOFIddT8L9M68eluhIxVmwFHm8CF0dAjVzrEgoEHdRnKURccrxq3IkpF8/yeQhr2yf2lyCTemt4Vx2YigMQRdJn/cavvo4ctG6z4NEbYminc554zvTvG1+AeMWl9Nmtpm+Ub35VVLIW/Vj1t6RMHlS0qT3nqm5v56QEo4Hjwe/VatnMUQcW6cNwy1qgx7TTDDcWzitFkFnDQ2WyZSHb9zR1IjXiqJgCOfL5HtSxY7uhiUQi+a6OY6YPyi/qBUtMtLMSDua3UIw1rPny2/ownF3eshrvtcTwxvHdYPQuYI9yNfpr4cdTIkUN7AchKkaHF60Q/nvdDyanHjsZ5nS5VOk2s7WrpJjnA+NQgiawHSzNfOLkxxWZ/FpiWkAVk2tUPrWHtwLcj4gFurnNJVVfN4BbMWD0TdJNQ9K9Evxzt1D7gY4MX99GHAL1c7cAxZuEFDUVReDQiEhqtHGLbQyMv3GcLSHhP7uQunkITvpDlZU7KIkskUwJkE3c7vqCeYZYfFpou5Rj6tIhOiBwUNmYx0hSpdTfvw40tBjTzrAPd+mbq/w8/bKBsxwJ3IG52hXd3DIf+T4ZzpsvSBQu+yb0hs6fP3RZ3hUwjx3TT3tIwp8nzws6g9b93JcljGpSM31lpwRv7A7hiuJcvskRGQHYS9R5zEjsjBYLaMOq72gdNY1iWFGMDfFqN73vx0eOWhLkU/3/kN1yBi0TdPXM/AKnyrBGFB4VgvQxpmRRl8Vah/da+ZdsnVSBK3d6K2AGDV+AAsGnHWeJkOLlDUpy//p6La8pedJCcNlF2ai6Cf3Axcx8197dfANHk1GhlzjSpaYAZi3dNeNgTB2l7mmaLZB3Vy/R+c5tvLM+lgjp4ir7Finl66Hs2tlYpSTZvdP/3m+hdovy3RbQf0jLfxqr7uHMhvY4Vi1njSvGOiJWuwGWNWRQ4Ax4egQM/CIhSa0rrslUyEdZktUMpxRnZ5CD5Tqxao2u7vtf/tTV/o1iI/VePmZQ0N5/diIvi3NvqiXbeY1+wxVbYR61tGkykwnZsBvMHl6YeN3UQDk0RW7AAHjsohVkhku+MjrdBQ4HhEVAwpOHxLHerAh30e0osRAjhjfU6m9WP92S/2Hp/S8TGsaj866qYeyWON2DzDbVS5ModzRgTEK+tFxQHn39FhKPdUUHeq4AzCW4uOsl0cmpKzaO74tHrWPbnopTbdbFkyoCfJAQ+44duxmEuAl9FLfwbuBnu82q46sboiibT1RAeXOmqL3CSiq+sxwuRqy1pzW0ug5b5XIMEudp+ZdMVyzyDKeRc1HtCnGS75PROHrSi54Dlqi45BklAJ/RQzn8UIl+DCfiCAyvfOyZ0ZPwZeOm3OvKHIRejdoTRr3Nau8Khu/o9Jk95x7NXsfHSoK6ruUZnseSmYqMLIHLlVTNNy1KkKtUumdt4juZNgJ8CrMkQbCisauytjJsxQnoKYzeIScDnUhfsfxpScv4NYvMjE8OBr5J+uc8x3YUIC7H83wmwVnwJP084o2zS9f2Ad/vQGCw0AJMOyd80OFYw3RTL5SYEUnPEZZrIHp+VZighW9HBMR9tctRlOSu7Pk+PUoEYK0/nSAz+rXWUTHbJ2hTKKHawBWmQPgPrHmTKAeNdhdb5UTqjtL/Qe+vl2qIGvUkqG5OygHq4Us42oHCjCASuQDpTQ986nwNge8IkMoNw/Ty8P9G8KlK64oh+mfAChUA5xfgVQilSeiWfsD9zIz/aQPWYanpsiSiTjMBXgUmSc59UGCrjcchDsEi13YyzghD6UGl0NISJaSJPNFFuTov92OmSfen9ZQ89KIlEGcaYhbbRdnQNCzN2v3UJC0wl5DvP66QX1K/BxubbGuvO27SWKm+iG+fOHWDlCvGz6GWLlKvI0Ozgobzy9gOxMXSRIOg8KEHAMDSLPozBrwEtUoU5CWJBSKI5lpYMdU/jWHxiRNA4uR4NcTHGBVukC5tbEG7LZ+zRDX8cbfm/MqDrBNdES42c7HnfssMhFYpMOpJsOBg27T0xiZa2T00CnVuNiNScK601A08p/gIn1q5Wu3JeN0T9YO9qYrn3XYJsa2wuAAAOx2rhG4GSk3+ljrdDvpRhzDmuby0c3MpQlZyan3hFgiAZ7QIaM0ea+2ZsokCD4VBi92szeAE+p7/fmJ43EXNVkQsZ5+XaOWk5HeCaqn01vFtqXmzOLkf1VuLJenegLrNxfPg29w0adS8q4skhr/IRdJvQocOvRcJn/+cAOXPJ0hQdZzn4Zd8mkF59HIz7MtKJ7FTh3GPOEA7kwYSkBdmijkDjpamSO01FNTWPh1QLwa3aj2uyF6SfiPTFqFO6EZxsE9V5n1BWCfXjjG1zayeC+5Q73yTzRjs8NtWtnD4obByI7z/md+mNTnIYm4lnSup4OVhd9E+Byu1WFpKHfOtOSX47Q6qx4ffEeqCh/J7IBJwPgwpAxGTMt8Rly7LwfGDFuYRtf2i4tAkmLvzXB0C3zXRN1+I3YQDHRf5MkpHQttj3553pVZOyLq/e4Ad6tdL7G3+QG6mI3o78na1WAOXnSHIKTmyYolqGKhgr0sUmP2ixl/wFeH910g49OflJngGCaaUlG50erx4SfbmgdtDDmz7Q3C/0Zc4OooyRGRzZbl9xIASo2bzNHJ/5pGxz7qGE7EErou/pRXAYuELAHKpZi9aM8Eb7O7i2reSbb/2IL5FQ+rQ6/V91ex6lW1MswkU+Fz5ay6OvJL3aNqEI+hRV/JAZO071PB9SdcCrb5eSgI35r7C7hV0dAIoGlMtWaX6TDW67GxdKVcSTcNZ/FYSwqI2MZ5Ra1Tmw5VbN5CCWju/DokCnAH/OLDQZW3HHT9tfKvLsREHXHXPsQV5aBJDxGjAn6U0gNwaK0JAS3SSxELkh9JJHZpJGxeCCK31wytJtHCxagcNVOi+i6bZJVQV3dO36MkEUjb0FxryAemj8lNZ4gQvMymaSdTLLcxhcilL+jQiKRg2NQOcDqHh36Dm3rPv7PeCocVpFiuRv//eGHapTLiDbl/AICtArl0ZCrImlh2qbUCzIzwztHmzfbT1UNkN2goICmgnX0TC6ULHI+0+CMN1nUIK3DFR8JIaHctxBdyeeZZviJ92DQPZkwKTBlGQjVFqGWYPGeA6tylKgW0wPVS8SGA2pKrspySA8yJKx8lOFp6HO1I4rJKlXfJJWc0Rai/823uJ2gyZ/AZRRDGHorAZ67nbSIICzBAeInFIPpFiiRZTxrJMk8jprm699bpRud+B4Z93q/ndgBg/MFU9alZHpSfq5JAwTDowJ2cSo4JahEiBrRYU79T0lTpakWZCr43fu9NRMJF23R6c6ToWNw0dTJq5P1kgB3ePbnZyFdk1tAe2P8g9yvYw/4LZJvi1oVUHMmZY2+3Zxi4Gbp4/xm+vJBEolyjbtttnzUOGiQ+QGV9Pu152F5jraz23K9Bv5JbBReGtJV0w/BkthNo0I7qaQjPq5PhRFYwOPw89TJwglU0XPvMrXIeSKgccPMNU4+qsdG63P1A8103jjjcssBT8rfjdXVAfbKtm5D9m4ZkcPf726hkF1DUq12mK7Tg3FNtkHRzNQvIdsBP82iGE22R6EVscolSa6KTJCOjuk/Wpk2A26szW3RhzYQBns/yUf9eN8k/P2JDguBOwc1Z5gChWXxOJH5X/YrJejAhJS+FUJj2PkA6c1TMQHGTpvHyeTypNINYLXTjZ6N3WHf/ObES1Wz3YBxIzsf4eC92yICDQVa2pj66sLo5c6iUeciK5AsdKr6kyO8DZk/h7ZnbUnL0Ymq0h8wmq5nol/00cyzOI4cRQM/wwt/9S1qGe5XaiE2gQSA==,iv:M99ovMBtcaYikHlVXoPYXLEXLS6C9gIjWXjnEhOYtKE=,tag:U8wfO3ld4zgvd1PjVZFk8Q==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:bsAVk1Vflw==,iv:wyhSboCrYyBkMlUQGBiJtJL9sOlt8NXoRapzCDL3jjo=,tag:uCvVxEpqfkMP68jSm337uQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:LYUhsu26QcbUDps6dPgTdP+DsYuPb3ylURwdL5+QI3nAQho9PMz9pYbfkNCOeBBz2ENgyrtpJkAfSVKSgPkSZw==,iv:2yjmeRT9wFWo4bcVPLnthaNgcso1kfnYs55Yc6fbmDY=,tag:GSN4IJpupfQYVPxopcaSDg==,type:str] -API_KEY=ENC[AES256_GCM,data:aTrlJ75Yk/M9tkajWDVIEuE6oXquq/9R5N3AflbzrUE=,iv:BmM+/Jwt1FokogoTgJh0MRSmIIIEAIuz1x1m0pELaxs=,tag:43pZv8dcOeJgesI+BAw/BA==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:q8bZG/uWc8z/3+k8aXJxiCbLpzbaacYu,iv:8x/TmyKrQlbx6U/+nT7weZG6EU37i/f6VzilkueOsrU=,tag:uw7B+WAPW1cY080tVeBixg==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:PmhdDcO4DMt20/U=,iv:sjw4TR+uaMOzyza+4hh3ApQcqW8Y/Srhimg65zw1KkQ=,tag:g6CwvA/VwXJkobRhKxdf0w==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:yLhT2T/706saZg4EoasA,iv:HWdTCVYcslE8oW38W569rav5Xn4kshYQA/3wpb3HWVU=,tag:HLXbO8X3lyhJJ8D7C5NfcA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUMDlHYnUwQ1VFN2c4TURy\naTNONDY2Kzdqb3J6d280bjF4N1l2R0gwR1Y0CmtGTkRDVFcwbWpYcnBNalIzeWp1\ndHdjOThoZkVxbmVua2lBekV1bHRQdm8KLS0tIE0xRmRzTytJMTNHcGpkZjBCQzcy\nOU1HRlo5ZzNVT3JCbVJDbmg2NFVWcWcKlsdTT3Wd8O15FcsRKdUrTek3tvjylAhH\nnEDJAxjCGvbG0vIOfJrynh8dDYUBtwR0XSUJs+tnctOAp2FoJtfgXw==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:U1IsqdBNN5fNJ2g5YJYgdAeibUwxW4JFgYUrkqU7MyWK,iv:RTtiy9p6JE3KqnuCYKmB85WOxgYB4bhc4TdnouImTpY=,tag:kfhx9LVivpNtEx2Tl1vxlA==,type:comment] +#ENC[AES256_GCM,data:Y9fceg5pTTrz1BjwWkBVZdxXBTCMErkeSxtuVIj4ojrID7i1g8ZFEt2GXK5Xzg9sQ7AHFZphTdpKjmc=,iv:hjy6yD79MudIcqJyC1Jl6b7s5EJ+QkeccTmc6gWvQSQ=,tag:vYRpJqaQgbfOaIlf5iPlqQ==,type:comment] +#ENC[AES256_GCM,data:2WNVS7p9btKsGEZtoXYfhvzT9avkqODqXrLCvDv4XTiVjAS+2qcMB+Jzt1roXNniR1Ji+A0zUZSOFhsH722O6HLCzg==,iv:bhKCID3a5AaX81SDq9TnNEhRCiwWsuMqbIfBKssYsnE=,tag:6Lm2EF3+6+zRPRuDktzEMg==,type:comment] +#ENC[AES256_GCM,data:gdvikZQh2i/85HKwz6E/4FPkFHSRRrvpwuRP5of9VsWVINhzrASDzgYJwYxOUruj/A==,iv:TlorC9yfNvwsJxV+c0R2XA96PFy5ZKNCzAaprjWoCH4=,tag:2QE+KzZNDSfitpqQ+gLhkA==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:3gb0CvT8FyOhj23/Vwe9,iv:TCXpY+sQxhaUjr89MOBUeNhbLc2yCBQvVjH+XD3RX0M=,tag:+72LohqA0wjam8iVASVPrg==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:vThErPn8sKAFTxtwyieNMsdLRtIQsAo=,iv:EP/jLIu1NDgy0eMgQhqkUojh9H0PIjF5OBQ4WdhrRL8=,tag:rsWa9Os1zlqvxxcz6Rd1pg==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:ll26no71yLaNY7c3ZYyl/S7vxDys6TY=,iv:fiwArqAIzTS1t+iL9ylxqPmnxKE9nwp++FMx9zQsEdg=,tag:iOlI2nOzFrbLIIsls2VerA==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:U890K+t5LXw=,iv:9Ea6sJluGA9CxCFnEfizDCQ5We5hv+7QP/ePSUQeP2g=,tag:EuHw/VYCH/73g495CvPQWg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:sIh4GHMuPLinp6wybcy2LzYNtAnXaibhy9AaYhiIlNoNutGE528o3xUIxUmafWP3tc8AUNkeB0NCoagxgMPPpQ==,iv:xkNj4FzuJdv3o/Oq9r3OvrHRxFq0bE5yH4y1j2PW/24=,tag:ktcADJ4dy6TybjXRVO5q7Q==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:riUAWsbDOg==,iv:3YQft8wCQl7aB9CtcYtemABPzyH8B0xPApu6EjYJcDc=,tag:E9HyF13Rvs5AP2HpO5zEMQ==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:APOavSf19hcS2tDbHXWc4RXMYPNLzW9aJmKhAp7FniNc4rOzAu2km023UFnkx9bKO2eY5oSeiDI+oLR4eeVIaZdya6QqlkqJ30ovV65F0N4P589TJLjegXY8+bR+jImJ1MAbw2sv,iv:MvOZkjU89LPYmyNdO96FG3z7Mq+7Pcd6gTpsljtcdNU=,tag:7KuRuMgGIPWdDNfYsMz9SA==,type:str] +PGHOST=ENC[AES256_GCM,data:7jc=,iv:lWyHUlZ7CZzrIIiJdMPGnEsI2QFnZJsH1ksB1Kt1bnQ=,tag:8fh002YEHQORy9cr5nCeVA==,type:str] +PGPORT=ENC[AES256_GCM,data:dATpDw==,iv:7rWYwMamquCVyDHSO2sYPwk5aBut8GFORTbAUooAaHU=,tag:vKoCsxOO4FLlZmojd5BABg==,type:str] +PGUSER=ENC[AES256_GCM,data:mZlgJ3saJy8=,iv:Jb1ejqBGXSh3NFx3sIz4sUcVl5WMhgsMfFyDWFx5ZWI=,tag:3HTis6mYILqRuixZ6xj4wQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:i80A+CdhBvaOkjnuQ6MtTA4AbojrTMtrhjh81INfjQ+mn7NjNfUm4NWpyk93iIjMVNiCUJb6SQdpdnhtogwrHA==,iv:Cd60WiAP5BZlm435JVoDmjDGZPwO63bZg7nO2MSiD78=,tag:pELGVK0i2ZzwDvy6a0qC4Q==,type:str] +PGDATABASE=ENC[AES256_GCM,data:JQOwj/Grfg==,iv:vO6vSUkj0Oc+08Q1tSZD1/pQBvQhkDgRYgq+xUXZezU=,tag:KVCdcbMBrr/tK/gpcfKG/g==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:rpSC1qg=,iv:ld/elGsdl1Kze+dyBw8xax87FP4rfWh4Q8yA9FpVUM8=,tag:v6vAy196r8WPR5lnZxUynA==,type:str] +#ENC[AES256_GCM,data:EnQLzWRQ2YA+Tbz5Yx5RZxob+1QjKULLxI8CwnJx,iv:ObXZwTO3KivI6n0RRfC7TumZhfjGW5sCIlwO7CsulBk=,tag:spBVnrpeGytJEYxiRJ3yIA==,type:comment] +#ENC[AES256_GCM,data:KnuI95mptLshwQtJKUAeMDQ4i6JWLUY/uZ56SK3pptOtTw==,iv:3UKcFr6ge2J0mpYp3S4/7Za1NsSpPZCaggLSY1LbBfU=,tag:MaMltCokwsK8La8W5b9zmg==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:ZBt4cPr3OnNBH6GGaqtoE/BU,iv:O3f3Ux9Iz+Ot7qQ8nHspBgSdvbqLROZZYlT2+efXzLg=,tag:kpBrFv8sv0hxDk2TYPpq6Q==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:/v5ZcfIDxib0pVxzPlCjZCLbcmw=,iv:2rP82RdSp+xB9CY9GhNg5K7fVcVBinwM6q8lE3ypLBE=,tag:5cMVzm4g27xnkvmDlihitw==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:aYEJUZIohW+fz69RlFhHKIcRlcxLoLh8doB8NhdL+Em8Pj63NSp3dA==,iv:05uNUETX0WnkkD1a+LUiWjBAshOn6uJkXolWeagCuvk=,tag:oKg+PuEX5J9GNBHfu0akYg==,type:str] +S3_REGION=ENC[AES256_GCM,data:STqILak/FKD1,iv:N/Pb34Jvvo9MraGdpKGIDiQ8AJa2Z18s+jZ/5vyzK00=,tag:kpu4pzjMbMRa3MVmRrtyJQ==,type:str] +#ENC[AES256_GCM,data:5nvRt+KCu9yvCn4MnAR5U2h60VfTysWHOixc+EwX,iv://oQRUcbNZ7Ik5l6CzRobZKU38MgMYftTdUAwMVrQUk=,tag:xFhHNh7/nITHZgUNCxIngQ==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:PzzjXRlWm5DZ,iv:/1opEOnOr9ch542CzMsd1ohjheDNfi4Y39IjHHaOFyk=,tag:iKYKFYoQLMASp17kPeL/zg==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:d317Vn9W0O/anhmFQ1uFpPQ/pqv4aij5,iv:lL/Ek7+i3N6XZQPwOtLmHgbTiweXlOFscX7okvm1kSo=,tag:V3+Wi8oNYpPVglCosqiV8g==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:eL4P5mZe1ZEHTDYBQVStNA==,iv:65NUq69rtAuW+y/R9ikgYRtpb6Kexq+7OGpGEOL8gwY=,tag:X2+ZEGT+W4Dfx7knE0FPsw==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:PJmn,iv:g0knYOWsvDVbzCcvxfkIqnsgmRYsLaGb/xZoyVben6s=,tag:vSciJdXNyu0is8rD5/5tIg==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:cXcdAJued1j4O3AtGmfvGH12cpvyU7xP0uYp/U7ZKiI=,iv:Kggdgofru22TSnPC0ADMgwUKiiBYAg2vf+G9uAHSBnE=,tag:VYJKsCObVnRlXjBj6qfAEg==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:mC+B6HRpwZeXNcXJmvb2WQ==,iv:sN0UYUaJbZ3J2zEsPntMqzbMFdojBpFGzNwrHWGxtdk=,tag:m8c07CfxO1nejI9MhqhHfw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:zCtyiTDLUAly7AruU+OhfU4zNjC1qtJFB8tSHLsAEof/gGKb51O3tr35vX5878FA8KWE4ZUE2qJJlZ2HGuk2jWbAe88ido72eDLMAzS1H5UdoNA/9qT7Fh77zzluD3lkXR6M8KH0AddlvkJu7B5CQDge9/FnMUCh8ah4iAu/Y61EX/33lYyqvdrt0xnYruZ4vWh8Z1hxfQ4eeZplxEXO0GJLNQkY765Jus60ZLuDMWqCHEKwQiDiMA9gFQqPRHvYax6d5Uh4M523NprJhTI6avgbClJushW+gW/oE8R5kBf2q1jR8fIsmF9enUTD0zTnb61wkjg07C0i6FZrInXYSia/VwYfT5BAQRNh6/AbyWAf/OUYF/03PzvAdcXiQtFpPV5zZaAHFxtWXFR0WUcP9iBE6T8JnzY5DRErWuJBWfBnZvrUGE6Ior6rBOA0R121hQnQZ3me0XAsKd/JdbEB3xpASEgCAXlyfzvghnBs7qFMVS3FCkg2W7kQFGnhV3riMpjIR1octcPSGEy2GqMX1Vft3YLALVg7fvP1KHDAKGoqK0o43u6CyYhuWQC5KTSbf6D7eZG3LC+Y5J3y6t6GmFnOYr8mFmwnm2Qt0Daokk+DFakPlexwzlUw9bmTLEVDR1RhfQ7pFrzlmyb/z/k7LiDyRsBzoLLYZFPAy6CZmL3NveW1Md6lNemcEB+uvU4Jv28z4wIbg5YVyfoEQf4BuBpNPPtQkj+qWSkINQXURt4pdAC6Q6RXlqdg/zZiJXxilKlZ1tFCCW56ZR6NJdJCpEGQvOcifjQkST+0NCJl7i4v+DiSyyWwNCs5aRzsfOXDS/6DPhiIDpeo2/d+4v+A+T6ug/OCf7yxzJrsiBJn/Wt8I+56EAHjXdPx7LPvAChnIvx5sJTdVKKKyrhngKQnlV4HCOr37isT4isMIXARuykP51K6a4fGZTYq0/dLJH7bFt67qFl4WUb2nfbUTkI5IV4UR5f4ylB9ctNdAP9ea572IWsogQgjNMKTcoaGfc2vWOIZUlHQ7bZKWNOE3SR0KCbyJRYcKDaQATwie+oi8TVsDd6THz1MfrRaEqMzeSgffsgZfkRieQGPiYHmN+PKdYlJnSv01uOikTwbjme1moEDeM+ulQW6i6Y04IOhNaTEgcUtODzoEdOGIGgH8Xl3TBHuzt7W9BS8chvxEpIpGzGDKfFCM341csUPHyDTi1igNruGhsF8JtDoBEWAUhdoWHGYYcP5ta+fo0q4qhwVoPhe+vDjCzSfH/g0G+Dsd+1SqKfxZHGLhQ7O/wHedxvmUK9xKqx3M5rJutLiDw5E2sh/3+Pva5tMA6qAG5cozNOjspw6wpKfqGARN4TV0RF+ex4y0q0UfTcDy6Vf+4yUP4AiepLL0R027V3PWxlQRRwgUBFQDaUCUpMjgtt2AdBJHy7VSzFSgH+Amjeqqjz60jk4/3EZkWR8q+fKN0xfUqkj+CLE2JSKn1Cl3kpnNDkiuK/UpwUS+sP0+YFqUR9Q1ETZ8KtGABAhjWTEoAwPAKyM8sxi/o548G+EcSEtCgIFMlp7J5ITwUdIstgXg8wWElqkedlyzdD9Wf/zLzDeUdR35SdXhgYzDxMg/Phb0izLUjwKAHAwHqAD1msD06F1c01wonXffDKgMTi5bweZWoHQyA9PZQFRn2MxWH2R9NwdCMuNKncuG/OoZ9zjwOeKAN498WE3kKawX2BmAgXOiwmFJzbIU8Pp5x8HXJR+nVriZLN64HpdqbEoYHhMF523IA8EQ/Ayy5WjyC2reOKW/a4XqQo8D/JEypLvXhRVdTchf3f287lRCrMHyJaaJ1E37/1uGaXPvC5g/42nPBYcMm0A3qhBkEeP5RL9ry/Gc3Ct/REEltJjMURVmbj9HouvhYKnpoZ4s5GszwySXgFs+bm4HKQkWRbJse0hRh9f0nR7krjh+KTtW3S2wsaz41hOiC8t+CD86UzOVjtId9j11ADhF7YvQrGwDqrq9tmjsoQe4OfYwteNxYjlm0bRhHJwc1nZR2d2XrtxA5IDVrCAiDoT1ZWW7FGjnPrazzf2ofon9YGTXXMS6jTNjxWXvho+1lZIoSZl1SfKUJxYdKD/HN+uwO02FM+MQjYbAPTdGMkxAp0SdLqEKWLKRFrunuXqDKKjuORDXGIu0ydOLqP4VJDQ7Xl+rYq1wWPn2EtnYgGwVMUBEwPjHgf+HutlBsvUtR5iH0LOP2mXS7gda4iyAK3LWvPdbWAneLBh8k3Rq7Sdjslb2b21TyJhne2jtRqor8OgfQEKokT9OSnksjLZSH7tkEw6ECt0DrccKw1nH9qbFtt3GsZnbkURaQkW2OFj1D/9GLy0Fo9TAMuKsMnLJj2MuVD4BvxT/4BLGgJZ1tIMvtral/Zq2FJM+GSNQP90jbn0D4ptOuLeXpOvEPez+x4vGfmPVONrEPzFjBjKL8VHIpkezbZ4WpKusyE4xYMERqRXKn0gUE7wBxJbkAeR1PCmNbtLLYPESXduysA2rHRwYZTU4ATVg1yHXZ71UQ+guJ58CupvdDAtNCbYF+rY0ejVsM/pyjjDyBJt7Ph3B7TZ6o1x6Metu4EYcna3Kciz43hbYIETmhrPUiqmbBznveWnYCmgLT9E01+DVSykoc0sCSQ6VWP+cex0pArpHEGjXYpDpGlrXGVezEqhdsEk8xPHMsTTMwahJTxMXRfrOiuyUngOw2v/oQ+iaDBFyOld87xQ2gKILMJL+RWXbB5vY/WvyvD7uqHx5T9sDteC1jGDXyGOw7Dnm1MlYWuLENBQkYC+n0xUNCRIrHRJvHQDVrn1EdOiwK4tVE30LkjZQclJj8B8IEG0kTmMCCObDdre77l/P7k++qYbCHSU9NjTpNk85twVj/GlMWgNsodFph9ADZskOVFd9s0kBOWEziK4TnyX3fiNvoPoSXfqj2/cngzrdF6f7aTmuHYTa03DxpxGgEIpHjZCFumnxm1jCpN5/ZsG2R4Gpmvcnlzdi+ty8wfVqwybwVYP+FkpHesNVwlExU5XywMHLxR3jsm20xLpqdq0fqJvI+CvKg/SCDmZ0o3MASPuzbluGlWPIsAwDVl0e3zcm3IC3l8HV8IqSocAnJFMgQJz5VQ8xbTCWhb6yQkeWMsLkhdrwlMa8hJRfT4mzaIzf8878Yw9yL50Wg+EIWZfMW2KkJOR2hJqF7zRYCtM6Kc5OxF8P3lEhFHo33DFJrYF7hfwjb9J1M3b2Bu0k3+H3si/zczi+LaTJhy1LG+fJdAHfpELm1RAs7G9hQ8moVcOYSa89WjJS6CscMqHoL7B0dzlDNaWTjwGum+zD9WQhnKaZkLOj6Wf0WedIe59+Q+/G5WPKOgdmn6oUvQ9bUuxy4DnPYcG48Vy+Mc063aQMcY5Y//gkgB2J5vQJPLqpvr+h66i6k8mdk7Sp4WzqxGkbbIcfy81UhqchpbiyzwCUQD3QfJE/Jjct+D/0EsAIP94IwghuiTeZp+cHcs/jxYOaWClz34uVbWji5F40NxCO8wyEBkeWI8YvL9Q0m4qeWeYdnfeY2V6ukGTyvOrZEzsaWddeo/j/jwgTkfnp7J+yld20aJRWjCODe7jhZTgZiaBT72yu4y1Y6Xeg5I3azTQkAb5DGL5SxDoe7HLu+QPalJTQKqemUs8KvuBE8bCa4E/9cXdOjO4DzKQfb80hE7sZvpIcgPhZSej8tT2AJBf7se8Xe09KyN+PM5z6CcLAiinj6/wF0zBo4cT4RJ6Zf2i0Yi/qsx1Eveh2dHY8i4PhNaaGVdTT0VUcdc2cKoRAvrpVtYOUR+WIwDTJDpaCTfs7O7MrPHjQFVdp62XJPGTiz/tMUxp3EiE9SWLez+xBf7w0BeMpk1KWFGMufoh5N47IUDw1ThANeqhsPujcvnp2zf9yNzJ0tTG1rRWybOALDbK3JLc4M377JE2gOzenSaan7tEBomxfgq2MD3hB4P5NGQ2RWIbAcrKQsW+uW6wFsDa10gQSKHKH+k56xDq3S9HnI+QkQncnqssO5mygXfALnBIJdF+DM1pGtWXjDXJyfBngC4iqKR9Wux0zuXrYIpFmB6EkVBw6+YHndIjAkihibw5P0r6AFc1r0xjPdaoTDQ/LuLPRMJsirME61Igv+MR6k6tNVIjIUsjBuVTj7F9gcK0HA==,iv:h7zOm6fgIhS0b3ZynfJSxEImmWgIqPzo49Iec5XHFYk=,tag:TP3f6RKotyDOBwQGcnP3Ug==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:QqgbEzy5kA==,iv:Rly7jYqO1M9u/r4mdc788qWSryPbgaB4H6XFBZcDrNc=,tag:V9C8Y/fZrssljPlzEu/62Q==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:mj5Yrs+ZeaQbFjOApnkJPhMny+bUL4UBDvaflw3S1KE5dQquxjQFUhvWPc1YnxJ2NDvVFQ0Uovl/+TXA1GGILw==,iv:nP80+eo8bpHJM9aQgpc+yLdZdK711xF3Q1AsJD55LjI=,tag:8yQd9+rVWPADEBREMnVOgw==,type:str] +API_KEY=ENC[AES256_GCM,data:rllOIAk8WS9M4ygz26V9upxWGkyW5TGwMaJCsZ/cK4Q=,iv:ZE/wyVT7P8lA8T3jvhXBvFS8U9m9qZJnbN5Z1Zlq7rg=,tag:OvsgecUZDwyce/OijV84Sg==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:seqeAuMrt6iHeZRNvTsFQeZBo3yUZJ8A,iv:1nkM8U2lMVK2JwW+G8oNage/OIK1WCTR8Mo8UGB894g=,tag:sNwX6rKjZbNOOKjsBb/fGg==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:iyjaTcP66uoN1kM=,iv:IOTMqNprCE9QExLSZu0WqTR+Z+jvVCEVXqcCaDxb/Rs=,tag:MaiFLWPoenihmVUZeqBqiQ==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:ju21F83pCFdl9hlyzt6k,iv:psqXK7pY1eQ1w38VEUljxOk0PsaFhtj233/lxTg8l6w=,tag:CedWIksUjm1Xi91bcz/3tA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjU1dxUVh5SnNuWXpqZWtr\nWnh0T0JzUFpkd0piQ3Y4a1NNa2hlWkE3SkNzCkR3V1dpRGFyNXpkdE5BQ2QxcE0w\ndXFpc1g5VDY1NzNRWjdBUThHeEtiRmcKLS0tIGVhU1ZJclZIdWh2M1JWTE0vYkNv\nL1dXbHU5KzJRdG9RSFpYWVBBL083S1EKHesSH6hENKD3Xul/6RTROt400KFy01z4\neSlyOA4YaYngijseQopEkO8qFzwSDrlPswFD+C4hjYuCPs7H5xD3EQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByT0ZvVld3aXJRWHVkelZT\nYnhFYWQ0eVlEU25QSktIb1hKa2Z1UGNxV25NCkJOb1NPcVRibTBuYityRnNEdENC\nSGtkZ3c5MTZTMU9hbnk5M0s1U1RxVFUKLS0tIDdLaUVZMC9kbFNXNktUYmc3aE52\nSVd3QitPaTVxbXZTU0xlMnlGVndQelEKW5BYomDKJ1NTboYMTofwBCVK2wnQK6io\n3UF8ddWRMmQY6v+dacUl82DQot+Dvk7jqQFO5+VmdBbMTcxyFO57Ag==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHYmkySGtvQkw1UzFpVXRY\nRGVEc0xTYTFCNHU3SDNYQ1VWZEJaUFN0RG1NCkM5Y3pKeHFyZVppN3FCUDZRc0NZ\nUzV5VURlc000bmZGQ3BoOHE3alNBbGMKLS0tIGU3bTBUTCsvTGdiT1djOUF4QUJ4\nc3ZJcTd3Z0txQWRXc1hqeURKbkxaR00KYsKb+5J1wJYE1vwUnebI1Ulz5hoZ4NoA\nNZ12fJ8LqgUqybpoHudFW37SMl1PdAfiiM6vEjK1AUuCWzEqbqaPRQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3SVVya2NmTWxlSldpNDcv\naGljTmpLaVZEOFNPZ09DVU0xbG0vNzByZUIwCkVnOFh6RmxwSkx2OXg3aSsvZGFo\nSFZTS0c2UFZJc3FGaTBxWXJUd25OYmsKLS0tIFoxemZBdFhDclJiWW9KT1kwdXJa\nRjM3cStYVHhpK3djMTVGNjNDemR4OUEKwcp482t6OQggCc9fHNZ4QCospRimdaGI\n651ch8hQn6Imqq0YCvDhGSezfJWEXUkcvetwHdsDq2/EACJhSL6KDg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ZGxRTy94ZEZmUjNwZEtF\nWEgxNW1rcnlFc3lERFUraHZubU9oSFhWOWdnCjRyWG9hUDdsRDFWN3lsU1RiekJ6\nVzl3dXM1eVZySXkxNVpWdGtMNCtiSjgKLS0tIEpCZXc0NTZaekcySmV4S3RRSVRD\nWmxKdE9hakhaS0xON0psMHlqNFpxU1kKtLsp7cge+FtHDSc9Jnh96lcarW3QqGoE\nvma3wl865VjTSKz4Pt1pDBtrr00BNUtUWwknvOcpBRyjE/LjqCdgjg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4enN2SkYzRFhESGkvWkZY\nZnBvbDlpclMwU0pNajFzMnZNQmFkMk5NbHk0CkVyUzZaNmF0cTVaajdJa3UxeWpQ\nSjhXeGpMUWRtNWRiMXJ1V0xyT2xveTQKLS0tIEQya0FUVFkwMVQrUUhkU1BLUktX\nekM4OVYrc0ZOM21hOThiemVPVzhUeU0K3k1KIOqg376iqcKEzFsvGbZ84EivIYsf\nBPNYdYSIQavxvQg8RSRKrp0rvmX2YA1nAchiLFvwK8KPokPllshjnQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3Qmg0aXNlVW5hc3VwbFRY\nWG1rbWtWYUJmNWVRZzBrVldPb3VzM3hKY2hjClFwWTdqck5RZXdvd1NKNklnSm0w\ncHpZbnMxbDRZZUVBTHc0Yy9FazZhWW8KLS0tIDVXaVRtUDAzRkZ1cnRtNGMyTlJN\nUGJmdW5CQk1uQUJiMmtvM21wenhlQmsKAXRcst/kjCmj44ETDdrkIJ8XNcURJwwg\n5ud026zAq92iYYPdDmsO0juvX1GstYM4jYnS3g97s5yEzeMS3JqUyA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3SDl1K1dzbEJSQVdIZGNa\nNC9rTTVYdUozT1gybmlQOGVBRFBMRkttNEJZCnI2bDUrc25EeDRQSEVjTEg2SnF6\nV1pqZUF1cTBObkZLTWgvMDdRSENQU1UKLS0tIFNDS0dtOGRtT2IyaDkySlBscWFo\nNTRxY1NSaWJ3VGZZMm8wRWNMVU82K00KO0KZNcekKONmz6GLH9k67X1H499qfVgu\nTriw88Ljsypqnm0KJPv1EKz5Cgi/ADAtOTvwn0PS41XNBAgdeMcYEg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwMjIzeWlCMWpISGtVcVFo\nWjVzVFlwV3hmL0VEb1hRM1NiT0F3Z2o4R25vCitIYy82Y0JKL2lQMTVGcS9YUXF6\nc2E5QTJtSCt1L1p3RDRHdVRpQnlITWsKLS0tIHluc2k1SzhQNjZvaW5rRzkwUEtm\nSzM4OVdrdUlEWDBFRXBBZURTSEJ0M1EKmszWeFhI0kvBrbKR8m/rPLERkdHYJ5tW\nIdmFlG4b2ryqC6lxBOhu5OFoAvhw5PfNjAqz2GSRT9sSsBVHLBTREg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQS2pVSFJwOUZjTzk1ZU1T\nUjg4TU8xdm1FWVUyNUpIUUlQQ3kzMDlaQ0RNCkRKWDcyeWtFcGNRMlJJSjZwbkJH\nanRJUlU4UmtRZVBnQzBKT1VBR3lWeEEKLS0tIFRYUklKN1BFTmE1eksyeTdZTkhC\nODZlTldLQTNmWUUzdUxlTnZxc1p5M1kKtNZEsGfY6I0GWdYd6jvG/Ir0XgDk9Q0f\n6nq3jRHH5CEK23Zzwl89LJHZZh4UWJQB5x65vRncA3tuLV+7rmYk/Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZmppY2tWZDd3c1ZwQmhE\nd3M3YnpNbHZ3OVExY2JvZ0h0U2d6eVpVS0RBCmN5WTg2UFVUSEtBckNWTGdPQWxR\naTNNb0x5dGhUZXZsQ0czVDk0UUw4dHcKLS0tIHpDNy81ays5dG5PZnVIWVU3Q25N\ndW9MeWsxdENmbVgrU25DYmc5LzFObU0KUWtoT9kKyv+xUSsn52Ouidi8mBgnXFYl\n+4CxRxY+GRt6gUsg/TYeDjM1yBCvOaUFQYSF0z4EGZ++viuCI8/z0A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTalBwN1l4MXRYbzZVVFdI\nSDZxeEY1UFlIM0hLUWkrV0RhSU1HK2pUQ0JJCndFTktYdXVGdXVMbnRpL1FtdG5G\nK1ZNeVNpdkF3M2tjZ0YrMjF2YWoyaDQKLS0tIFJMTDZVd3Q4VHVnMkwzOW1uZEFN\nb1ZiQVNKTHh5SUhuUnh6M2owcFRyUUEKNyqw+5Oa00hykWoFof/HAEHHA8cGr9do\nUr2ovqfIxCZyKEcL8AJSlOpSzdPQGpTEDg2F3BfYOe9Ta/UUUFMmFA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhNnRVTllrU2dFUkRjdndZ\ncDMyczZqUXEwdjR4TFlwMGpSWm1uc0dJbjNJCmpFRXdiNUUwM3hvUm1UN0I3M1Fq\nVmF3Q2xlZnp1K0IzU1I1aHhBNUNIMzQKLS0tIFRDemtWc2NzZ0hkRGp4UVVqdXpU\nbEpSaDRWTGdkOVVGVmJtWkNCZE5YWncKXWm6ywwekEcHSKkafpyY4ehwHmTaBNEX\ntQ4bcX/dLoyEMgBnn3d1C8qCkGaX28rWuMHcugxlMkxs+apyBccghg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwWTlENEMxeCtiMEsrZWQ4\nUWU3YURxUG5tYlJoZmNlcEpod042ang5WkNJClNQK0tVN2FhdGhpRHBwdGZ3WXJN\nQWJTRTUreU5RNXNFcS91ekRvS2dPWWMKLS0tIFdVZmtWbmtwTFNNbHhzQ1ZBalA4\nOThUOUlabDkxMlZkb2tLQmpmcWQvZTAKbL4V/GRetQqwAhXeyWvOrRjRVtkL9DGM\nfFZTXEG8fu43+qbTp/ebjn27bTWiCChlI21KZ+mcAavYl4+jTwAPuA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHRmM1d2Fab3kzS2R5bXN2\nVmQ0Skh2VUI5SnQxYmJXSGFNMW44Mm5uMXh3CmRVWmJPeDcwWGZZZ3VZK252UFlH\nRU1Iak0yeEdGU3dBSnFXc0dDcUZyKzQKLS0tIEVQakY1ZnBEdDhQcStiYzJERy9q\nRkE5TE8yRWc0S1A4Z3dhVzZPU1Eyd2sKJnSZzuVE5EevgGgjvsezcnsSfTGqgXF1\nESLHK5zO3nSGmducQIpLtUVMADtD8kLsc27Ng4lV4eAq7GMTRFVVBg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T12:27:06Z -sops_mac=ENC[AES256_GCM,data:eT/ZuVsycSUNVKphsVpkqn86/MGuTnUWelnke5CpDlDx4aUQXkVj/HD5g+ik8lFqoNDiKzmFTy9xv+VRBdTAFkSM+sjzfuaApa4BOjzl+d7cWb8BkZoffWVM6S7AwlgdJuz/IpKJL8PdEsMJU7ogTV9hNDsSI1a1/wIL/x2hTeU=,iv:aiZ1zMHJEqUspkBmuT8KvC9fnmJsGho4pv+M2sTPU2w=,tag:g3NfWgGh/gOK1eoizakbSg==,type:str] +sops_lastmodified=2026-04-23T14:56:05Z +sops_mac=ENC[AES256_GCM,data:A5GQxrspNEngUTfqydNRBibwJdoFO4kGXbcj4deXW1SHW/JW3IR1sXlfNQ6ew9aEaYUNTyM0i+EM0qZHKnaQOnhwCcvEhaY3FzXpZ7c4o7hYBDvYqpAHurXr2UHi6iPlZRN1kidQ9klq5Vt8jXgX1N6dVrP1eBAEmsLWxpSJfSs=,iv:Ea+k8F1AMa5nh+H1EnlNVIveDJPXw075qkFZBX6gu/c=,tag:8qKrqH1J2n8bGj+ta7DV3A==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.example b/infra/.env.example index ddde0d1e72..1759e99e87 100644 --- a/infra/.env.example +++ b/infra/.env.example @@ -35,10 +35,10 @@ SITE_BUILDER_ENDPOINT=http://site-builder:4000 SITE_BUILDER_API_KEY= JWT_SECRET= -MAILGUN_SMTP_HOST= -MAILGUN_SMTP_PORT=587 -MAILGUN_SMTP_PASSWORD= -MAILGUN_SMTP_USERNAME= +SMTP_HOST= +SMTP_PORT=587 +SMTP_PASSWORD= +SMTP_USERNAME= GCLOUD_KEY_FILE=xxx OTEL_SERVICE_NAME=pubstar-v7-prod diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index cb45dd9955..11f2e60d95 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,53 +1,53 @@ -#ENC[AES256_GCM,data:U5JF7APOQ3Z37cv1LTHlkAwQuz0nYN3OV5XqeX+q7vf+,iv:V1GthYIglAZ2rBfiIlj5Hi8cPqEZEVwcOTuySjRlJ8s=,tag:c7jxdbcsy2H8ipqKoaYPfA==,type:comment] -#ENC[AES256_GCM,data:P0kaWdUBOVdIBS5p73RiJKk/AesKHf5+u8CzQU3X6No9xl9Cso7dIcBOHIe0OoOp07VThBF7DNGj2H4=,iv:RqMWEKc+AGRHulG4zS1xzrQPaCi/KuksjiXbwvG5pT8=,tag:Z+HJ45YtEyP4kEAxG3sNcw==,type:comment] -#ENC[AES256_GCM,data:Ncyt3jHPceAVHni2ku8j67y7YvSvqQ78Or/OJN1Z0wQgAb20YL8AkK7Q2Dt/GJhXMUDwic0opPjmlISfgpv2wWAc6w==,iv:p+z1hLVptz5zRj6Wnx8L1p6aWxJC7W7kKOCrn4q65t0=,tag:sG5thP4GshxzEYEzlpnq7w==,type:comment] -#ENC[AES256_GCM,data:gJYnkk128BnZBuBCUad5x4MGuv2lm5gzDdPqo2552LPPqa8sLWEEfOXMJRYazE69Pg==,iv:NK3xmeTQjOHR5V+l82r/+eCCEF9PV+fqmuZPWAwbWE0=,tag:TtVgsywdHcvXLBX/HTAxNw==,type:comment] -#ENC[AES256_GCM,data:36vnl+m6HNLHApWq/0meETLmNfCryyWkYDz8A6VTHwxNXi79rtVEMb4VXoUL1NlDnm7+7g==,iv:SleTNiaODR2/loMlcJZ6105hY5d3EN0OwvwanuIS4kY=,tag:+qcLVCKZEOTGvO3TC4vt4w==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:2VAnKOhKA4o=,iv:nx9KiSLIExMQJpigUbOtMzobQ5r2rTaljmsRdNjXBCg=,tag:7e0mnTduq3a7F1HRR5qm1A==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:ddvTbWWPAD4=,iv:Oeg6SaI8jLZ2G0JVgq2u0I/vn/wH9U8V0mKsgM4Jopk=,tag:mtvasT9lEYBfEQay6JSkhA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:/17RMTjfSA==,iv:xmDQagb0RIQZw0fUtDmmxLXqVADWAPqCeD9akYvUDLs=,tag:NPmReGeTf6h/BriYarc7vw==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:vrvQ+VeZgmCScIj/lX594SS2wF/hPYwTTbAwmPI0k75KSVzpnUXpbE5D6kpVHA==,iv:QB4yJKtQTiI2ob3qCf3yBkyJNnMPErfi+BafNieadAg=,tag:n+OvqNfSA5704nSHZPnBAw==,type:str] -PGHOST=ENC[AES256_GCM,data:DTg=,iv:sfcLJKC2dlOPrcTxExndWylenWRXsHkLUub8qPuqXkM=,tag:gljNhp97DNXupck7lbELAg==,type:str] -PGPORT=ENC[AES256_GCM,data:H+3Gmw==,iv:p7gDYFh5Y+UIb1Gt8aWSJGoa2uyQ3vq6mvRa1yZsifI=,tag:jfLOHYSPQ/ysf4/OF8S1Bw==,type:str] -PGUSER=ENC[AES256_GCM,data:yP/HiJDPq7I=,iv:3OPW8Mt0bLeGAvsuO4EgMkgb3LOyBPHL9+9jZqwatuY=,tag:prFdUHmGkAQxIGenCumwtQ==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:uzuIHRqgsqo=,iv:mPBGmAkRzJfoQJFxpS7pVPsxOWYwhFf9WQSvtBqy/uw=,tag:k1RoPHzFOatl/3YHM+3yEA==,type:str] -PGDATABASE=ENC[AES256_GCM,data:vpT23+V9Bw==,iv:cpDGpGpS5/l7pCpJC5wpRi4ti0wGxZNkwOFzHB/WNW0=,tag:i+hoHgLeZuwO4B2Z5ep6Og==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:sm0+tFE=,iv:cmi+NGWeEYXwjQUG7l2X1LznYz4w9CiNM9iZhN0dUSE=,tag:gl4KqAobDvO8u/nSoFmdxw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:jqgbBHHaTxtDrhgdgA==,iv:aQcQBkBx7YWCrwB03pRUaD5St9CUXUZq0Fnq1aQseFk=,tag:nqF/YlKO3NvTEamu5EILpQ==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:5h/8I2g64AWFG3uIbQ==,iv:QdDuIsEUKxOf0huuAr+dc9zuBnjCckJB86IOI1+kFsk=,tag:EPoSmHDnY1lxrIbFpwLZgg==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:7FzQ5U57BuqDL60ixcs=,iv:/tGU7pdKtQxaunL5N+5UNcKEJayuiiq3lj2OJYZGebM=,tag:jEMK1yJok34N0EddbZEZRg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:lOafy+wM80HWWZA=,iv:qQlKy+l63Qp3JetwG3nRf5Qshv8zxYKokiKAniUHgmo=,tag:ujyk289br7W4XVsbG7qxsQ==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:wRugrKs7uHayGkA=,iv:TYHH4mkcoHPMZTDvpeXnTmQV5akdnSpPeB6GdTFcmnQ=,tag:od423+ARnF7Agq3dNZ39OQ==,type:str] -S3_REGION=ENC[AES256_GCM,data:+5L2QYof9CBU,iv:Yc/Tf2H1yiNskRcDiiO6O6hycO4mfPZuhjC/XTKmqPE=,tag:ZO3YwHdZ7LbcfEqfI3IPCg==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:j6a4PurDF6mQHQ3tFRNx2Bk=,iv:9vy8V1jsFlSEsOIrV7LVOBAkBbbv5wGKaOB1X6Nn8nA=,tag:qOqKngs/w5/fSZ7LTAZCYg==,type:str] -#ENC[AES256_GCM,data:qWpHCXOSTV4Vg8ztHNDZkUzZCGhsKu2ngQFvFs9YYkomN/N8pzWmslSOS+tFIz5AKWq9bduVSitQG8+WiO6U8DK1Yg==,iv:UdnIT9gB1T8bxsb1y9O2y3T53KwTSraj6xJvZgJCwOQ=,tag:WjiSd4IE/KqB0958k9ykZg==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:8ty0XvsDeG3keJljgQ6VReD+YdfAqNrE,iv:sC6clavDe/BjMMqiYwoEYWeghEyjMgvheS0Ee8gflRo=,tag:u1LYsk6b7dPiTx7/13Z+lQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:2nu1,iv:2XR/s/pImC/cIJT4NJK2rmdBpJRmBTa2Q2DfpdJHWvE=,tag:36NdlapRSIIOZJFGdeuKww==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:eXfMtt34FdU=,iv:srR/5ipf447bm1QZkMu9GJQxRimH/vqZKBDcaaPO69s=,tag:9qFafymyxTjPLbNk359fFQ==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:l9i84Q==,iv:mmbdA/xm3RR8ZRAxiD4Fxhse+wbRkhf00+1M6THiJ9k=,tag:oDUgXR26EBEULdPwZUeU7g==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:Yviw,iv:RTR6Xy8oL+A63BlM85cRb17vVC+wMeMgelj+sMMMZOQ=,tag:1gS4//yEIq4ERo3Vr8re0Q==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:jJ2W,iv:xG6OXolFaNV2Oq20RhZ2qhUEFj3ZtjmuGuB38eVGLC4=,tag:eRwHDUHq1KKZd01XJaAOCQ==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:symX,iv:fWkQhQkp4T5ahMTrQpy8KNieLQbVz9F2wwNgggxvMGE=,tag:1/aFYoBKKL+/Mr1KoLw81A==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:xVviZ7nLEpMmNVcA5DdUL9K0,iv:vqewrRqvKYVzhuZswioQeExH+/ckldmyeHpQhoteCng=,tag:08WJzQkcY4Xt8L0WG8KCXQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:v0g/,iv:iBEz2tFXPoqhbLZusNNw0pWMuDittfITy7uTadghDv4=,tag:po8814kqzZjFijwpuSpC/A==,type:str] -API_KEY=ENC[AES256_GCM,data:srgi,iv:AXJIj7HjvYcHWuY3jPJICDNVbwHoqa5SqYKpYYq6myM=,tag:Dfogc/yQQ6I1UMxumIRo8A==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxTmFFbzk4WGtCYm9ZVy9B\nNjBUNk1JU1RPWWFNb0NpQS85UnBqaG1sbUc0CjVyay9MLzNtcDAwRm1Cc09BeWFW\nY0tnWHJ6UXFPbzhGbFB5czg3VVBhWkkKLS0tIGVUemZ5Z0dtUkdLTFczU1dsL25J\nWXdZOUJBYmUzckh4OC9nVW9JVklYb2sK7ZzCaQvoWIlKA7kQKHHbkIjeRaXda+cg\ns6CN2rwTg+LmdhYRvZymT6fS5cuKY7QPupJtz/ktau5c/tMKM7qxow==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:QjECCPZD/0ofl6bVYOGTheNyzs5uVfrqxo7R4vLVEVV7,iv:MMwqV/7obc7R5JvFcxR2Ci1j3b1ZV25ewGg1DiWIwdA=,tag:xSLev3IIUYUlfCebbZzjqg==,type:comment] +#ENC[AES256_GCM,data:HW/8HH6mQKNgoQD0ytCeRBfuYOsUr52wuBwkuWe9+90qlETdnYq6k+Oqi0wG/D01ootVnnTbeVQQcPs=,iv:OMlDjTuiYfowT0hr8UiIz7KoF7nf0wZje5SHJYz7FYE=,tag:zzIPQnvwAAkn38dVBEYXqw==,type:comment] +#ENC[AES256_GCM,data:nS58qSGoNP/pS9a/Pz7mV7PzqFXGiyASAg971QtKVJ1uHwHoUWbNg8atCm5WKtQQfV/KhDqHV40zcCTLaOhzNo3kgw==,iv:hfS0bWR832pF65kbSdgG6+vJsUDmOXw1Osmc8nyyibc=,tag:uQ6g5KSUvyqULJ3ET3aX9w==,type:comment] +#ENC[AES256_GCM,data:X5bp6O3CSFMBfHJ+HUTgoDo4oH5qPoTr+9EdmXf1An0qx3VUCF8vox+ZG0maQls7yw==,iv:kDUnXJ+82gjLtX6JSenfOCcn03hU4IQQTA6xlJjoRDg=,tag:RCYDv1lhcNtSXM9iVaXQkQ==,type:comment] +#ENC[AES256_GCM,data:1sp0qrdZavgZWR6MSFxiAal/G3q0gkCzfaMA6DgTwPXUu4laElXEgVbDk8qmMi48gSigew==,iv:OeGULdULHILIl/TZGRF4ydsqOxwTduRBSDf6nDQXp/U=,tag:OVgAj3AvnD62/0waYp+18g==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:Uw4vPTEcHuU=,iv:ZCuuzvQ+pPOVZr8x5lIlTqKutxD2nhmM1nf5lTnensk=,tag:wXzPrOVc+2oNdQEeNLNPvQ==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:58+JIagEUqw=,iv:9SzJStqNx9TwCXHnVwRJPGr9M4gqWXwWxV8y/PFHc3k=,tag:IN/QpH+2ZI9RrIVO6lLOGw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:G9yFy1vXfQ==,iv:VTb7lc+4TawIFP3hSmvCgdI58kOmpMOL89ApH+X5t70=,tag:aeeamKx73E6x9TJNnqG4UA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:C1DcN91+qp29UpWmeeIh7vcU0m0uThTR9sKYZ2vZmP8oF5S9gtWFCqUr7ZBkUQ==,iv:ZcQiARU/IJAj3uNtYLUM4mEoWaFseFRViySliqzXSPA=,tag:HkLqfgX2d1GYxhBAuq5vzQ==,type:str] +PGHOST=ENC[AES256_GCM,data:xpE=,iv:RzaG+H8hXqvxjlHkoKWUs/4SGB5+RKrQqfJpb6oKkLk=,tag:wVskNaGBfzqOSbxiUnAp0g==,type:str] +PGPORT=ENC[AES256_GCM,data:23+jUw==,iv:lFdtC1hlP+EKGiahByrbZ6/2Is1fXKtTPTdeAMR8eE8=,tag:ArC2NeulVVOGu4Jxf0NaQg==,type:str] +PGUSER=ENC[AES256_GCM,data:AMPV2frNLN0=,iv:Lu7i6zeMpmwknmUzfqLr8dbzkLXQTwJrAlor7eQxW9o=,tag:q8hEvceP0+A/yEp2VxOK+g==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:4kF/w4/ECz8=,iv:Ef3xPbXQAMy/4suD3aFWMb2DFE128FkLiCzyryPxDnM=,tag:8+hes5YVmxbEGv2uq586YQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:575QfOOKUg==,iv:lnwmAIws6JZtlb1OPJciDwBH/hxpyVJjkI/e+d5hDKY=,tag:JQe1DUGsx9H7NFQ4KspuwA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:Kn5y3lA=,iv:i/3IC4sQI8D0gpfkBsFtHK49iuzHWfQBWgA+Up3+jSI=,tag:yM0i7gqfYU6ovtPePK6SkQ==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:rCZN9t7P/gkhtjwjwg==,iv:eeEXLMhj8m/+s/9Nini0FU/kCWS/EvvuyQkcTVFagUk=,tag:SkycLJjWTWd/mN7Cqet7FQ==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:xImMHV7U9SzGHKtpiw==,iv:VxjVIDOOqux1B3ReXTK4YE2BaCqLzHnK0dwG2K4IwJo=,tag:BsyAzseG0umUnsGA05V+9g==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:2xvecqAJ4Fd5W3uCg54=,iv:e+v8YUHsschmhTBF+3OP/AQpO7+XugbAHDYuaGVSmtU=,tag:ZIjloCuEIdJWaos9aSanXQ==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:nXHXlzzXmgROfYU=,iv:u9MsmmfhYa3t9zvuvdLFky/I86+OH3Rn69tl1xGn3ps=,tag:Y0xvAi/xXObsmmz40JgH4g==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:0kF6D+dP2h68CRo=,iv:dTU8xrna/od7RsojgOO8D+CY9lV72umKVOise9jbgXg=,tag:EB/SZag+EiDcFDaGbk6rWw==,type:str] +S3_REGION=ENC[AES256_GCM,data:ipMyL2uYIya5,iv:STCwscZfM9r4XXzosa8RlmFR8SQrkYUz/gzSfJQxvZ0=,tag:2mQ60OzFkr9ga0hyad2yXw==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:HRqOZy43QONGoozYI2aJZE8=,iv:BLRQR5kkBJwqNoLiQG9yb9bKgpnWoKWd+yfRMIrj+Z8=,tag:UNcLAgnpdHHWMsKOf0KVJg==,type:str] +#ENC[AES256_GCM,data:yyQy/4DfKsLExBll71HYicqdjrU4C8fII/lbajYkkxS//x20iH9bbUW1ac3cQJD2GBYkDRQr5SLkde9gXxED19H3XA==,iv:oEfe9Esg+L5kFIB5ranauq+3mx5Hrjx6alkvyWNZhe4=,tag:DwuOcODMXl91FQ2CCqvLjw==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:8z/rcthOpYNeHoYWoDSjm1XorlZHb2LA,iv:9neExVEuEshejtCtVTb2KLQYO9gjQWYUH7zB39jdDBk=,tag:WvxkLr5W09Bmj6R0VAeqng==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:X6hR,iv:60AMTmcf3k6vL4Xhdyt500qHG1p2OWvx8459jnM1MlU=,tag:HnxsaY+T5FWiuFyFJ2Mf8w==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:o5d+rftLt7E=,iv:cvEAgTfNTyRzEIHxI7+ZjyukKyUc17FifnD8S22KM/M=,tag:XWK2St24Y/tx2zFfipSv1g==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:Z/+7pw==,iv:6Y7GQ6SgUGGsnUuL2mtJoq22Sltn9dJKpovIU9IkiGY=,tag:HjHtqf0yRDLPavH+OmEWGQ==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:SjI4,iv:EFNw+3lEo6asOr/nb2SeYzf4UFlGxfaJepnRxc7MfN0=,tag:O+MisoMhaiT9WezRyOBW+Q==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:P7la,iv:eLmiWIwrBiZ2wxeZNDPIgdzyJzMaEDu6W+BsbxFS0Z4=,tag:VMWAC+ixtRAxyydfsOeNEg==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:o027,iv:mQyQ+ItdkB/vXgAoA9HWSR6JOC+Ir+T9XVxCxjlJOaI=,tag:MAMmIpsjelbOF6IQxJTg/A==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rya2fU9JwcjTivsj50rtxWmB,iv:x/nRWdIcIFYtWeTamtPH4nnhrdDBPQwwgfEXNOnekPU=,tag:WN/T3VHBACpCDojhhOdXkQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:8uwC,iv:wgows4IVmvhiV2OsqLpDGRGmAbPGwfTCIEuO+/ptRQA=,tag:w3mlQljA3k8+F8TZMZ/lww==,type:str] +API_KEY=ENC[AES256_GCM,data:rhmP,iv:MDqZaXG3EUJ2yV9BQMNWCSXFvSUjq0r6tCZ1VUmkusA=,tag:qBXrZh7IQm/2fprk1M0s8A==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSXpNTG5IVWVmZytyZ3RF\nL01ZN2h4ajNnWm1wYmFOUjljVGh2SExOR1UwCjRhaS93YzBaZzNtT2FxcmN6Mjh6\naTI5cGZWeEhPVDFlbzdrU2tHa2U0QmcKLS0tIFk4SlJob1NIWXgvTi9kUlVPVGxz\ndEFmcGlVeEVjSTFVbmhnVndYQjFMQWsKSmcTikOSci9V3b0XZSZ4Gw7C+sg5teeQ\nFhE6n5bVrodtF+C4t/B2iWkY42vRZWFqgtDVJBE44Kx+YkwKhvjXxw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhTUFjQXl2MkxBYjEzNTA4\nZ2g1YXNhTkIxY0VZWmJkZS9pNmNaSzhmQVZ3CjN5TUNTYnl6NzFWZUk3d2NJYUk4\neDNwS1JTaE5zN094MDhJNEhuUGJTVXMKLS0tIFBvUUhUZzNaWGdlT01zWjhZRXR5\nTG5tdVIzdnNCSU5EQ1luMWMrZzFkT3MKOOA2Q39goCFLDQNam7MihH/XA1rqBf1+\n5zq3yoB2pOiShh+QL6zOUhidhyr6DQ9LkdoXTiZRuWUJdhuhTNPaKg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxTXRWQnJtWlR1d3hGNmJj\nbkFoSXRRTnQ5SDRCWnFYemR2Ym4wN2E5ZWxNCmZuaThEZXc2MEZaU3IyQm9CMURT\nTGkvWjAvdk9JazRqWi9OYjlUR2Eya1EKLS0tIGY4enNWWCsrNGFpaVVDQ01QcGwx\nSGJyTlgzb3lONGs3MC9hc2tVU0EvZ0EKomG1M1WyMipGycVn6RLSoRVyYVyu9r7P\n/Vz3G5rLaEuPWBjzFJROZHyGpgCTYDeqG0F4lUntA52uxJd6AxdcIw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwRVFFcHpDaUU4cy9vdTd3\nYXBCS3hQY0RDN1hBWUNZV3FoVXR2NllzNUZjCjYxdGJhWTVIQmNQTGs4VndNenhu\nUWF4Y0JNcTZsSEtiaUE2a1M2L0ZEUGsKLS0tIGo3azdSVmdDUElOb3VTQlVuVDhE\ndzJ5eVdPRTJmWng3OFAvdkZlOE92aVkKD+CiQmSkaAo01YrPF4mnSZETWsGkiiwJ\nRUPVgDHmLyuQk00BhKpYkXp9c8jWYFJ2AZppjCO9rnsQKi8TDHdSMg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSFdFSjZSZklHK0FhekFF\nV1NKMUdabkVESzluODl1bUpFRGltZlN6am5nCjZLTTBodTVaOE5OMEMxZjZXVGZp\nL3UwOTR5ZlRQbUlPMHdmNDVSeVVGNGcKLS0tIGtWVnBwbENwdnBPMHcrcGJqSGpD\nL3hZY1VZMjBVT2Uwd0x5MHVUM1RGOXcKgYphC8MzPxiFNxbwYEe7yhpYKz49emO4\nZsED2Nlz7fiAfIcKZZIWKHEXvvVzw/TLbRF+cvozf9ciemHAOkYq1A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpZGlKTk1FUVQwU1hDREVV\nRWNRcUgzMG9JUHFXM2xDUkI1bDRybWIxcmtzCkp0MzB0ZnFjTVRrUTROS3ZxQUNO\nSjBxdVZtaHUxYTlVN1QrZzFjeUREd00KLS0tIHV3WDlvUzYySWhwWHBIUXVEVldv\nTjdTQ21pNExMNXpEYjE3eWJpTjFYd2sKmq/cmBY5ZFECdeR3T9kIxGFMOEFy4pd7\nnfcm+qO6NwaqfKMfTNi7Kaz22IU98n3TXPJF664SqbjIukXISE5zww==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDaFVUSEw3bEl3QnVtQnRn\nRHVuTUk0MWIvZWU3MFAyQ2dnMWIxcmhLYkVvCmpNVHV4Z0FjMExKcC8rMzJ5NSs1\nbEdSYXR0clZpRFR4OVQ3aEJLMXNHUGMKLS0tIEZjYXdCakMxUjBMTGZ3d1p0bHJ2\nSXY1M0RxQkFkM2hwa09ONFl4ZC90bFUKR2OP7vtitVg5sZMSqS3NTAWyS0RiHn9s\na9vEMloNq9VLSRc+kVKev5Lu6heMpjqo9E0q/YdQ1xfTxCOSRHyhaA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBdVpZTWZrdDU0ZHZONTJL\nb3orOWM0UzFPYndnVEhtUGZzcC8zSUhBQm5VCjZLV0l3UVJSOW5pOUxWbW5ydVpk\nVWpxcW52ZXorc0NLdTVJY0FTSTA4QkkKLS0tIG50ZTNYSFMrSUp1TkdFcUdMYVJ3\nQ1N5aVU3eEc0RGxSU1gzR2dEbnBNTFEKEf52hq1av2c0lliIWgapjQuUpNjTeqk0\ntiC/L2EB2xS/FYti+g83Qh+7L886ZBQMxsrNFBQJKKvOzgowiEuZUg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiN1JLbERwdzlKT08yZ09E\nMFUwOVA5K0xzeldDOTcxTGdUMmVkMkxKdldBCjQzWEg1Q1dqYWxYd0NZbEZFeCtO\nWkhKNkNpUmdTczNRSDRScUhHRFFXNTQKLS0tIExkemxyMGx5bDR2Qm02SmxDYW9M\nRWxWdWNYeUYxbG8wODEzdWplZ29JOUkK1lHxXEwDEsnTVWCgLIP1CnMXe9VmxgIF\nMUuYkZ1E0enmIBmMs4icH/ql6GqFbmKTzwBaLtVswCrqLxZsECgo1w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBYXFhZ2VrS2NpWTkvaU5L\nY0EyOXVVaVFvd0xPaUZNSHd4NGtEc21LZVUwClRvVmM2ejdwMHF4Rk5NL3VPaUdx\nMG5FUXFmNkdLTkxJem4wY3JSTVVWRncKLS0tIEJ6TmNybEhZREJpTFg1QjcxbENl\nZXFLT0xNSFBoMi8xQTFleEp2TllTUlUKXil90gc2zPI4fCOuwP42LRJHB4EMoejF\nlycoBCrRlQRLchQVzU4IpNVhNtGKlIl5TVlRt5IQiX78AbSk3sExHA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhZ0tpOGxDWHpORi9CWHlR\nWmlRSlFEV1drYitGTUxGSDVPSm9DVzZzMkF3Cm5udC9ZUjJJdlhzVXR2REM1VjZ4\nWWh0WXJIWHV5eUJ4MlNVTW5yT0FsaTAKLS0tIFpjMllvaVdPM1ByVFh4MnZQQkNl\nUGZHeWFTSlIyRHc5Mjd2SjlqWVg3TkEKLazoCPz2g0A4yOZfDI9lwF323CgRLgFk\ncIk/57W4bd/TSOu7VItt95uMDdVsWpOa+3lGf3fkrVBRst8A+xmH8g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBscC9HQWw1SjQwaTFSNWNt\nVmZmZ0tOOEliKzhtcEVRUk81QVpLY1pUZW1JCmdhSFcraGxPWlAzQVQxdUh0MG16\nYnYwT3J1clY4YkpvZGQ2a1JjRmJRdWsKLS0tIGsvdExlTHBBUmtBUmR0MFBlaGlS\nSkdlbzZLMitLQ1BWdTI4SmU0U0g4eFkKRPYv5HnVezkcVr5p8gjepHVxI03wsMeP\nqb4fpyc7yvKxGie2hdrQsfTsoIZGu449tzBe2QQXig96aBV2WJatyg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVKzJCRGV4ZDBnZFJ1TWVR\nVFJ1Vk1mWDgxN1JhNWpzUmlCVzI5cDYxTHhJCkM0aTNLRVdyWGxFRnJyc2FrUTJK\nVnJHQzAxWEZIYzdrb0cweldHVHRGSE0KLS0tIGdPMmg2L1Jkc3FEb0srdmkzbXcx\nVWZycjFjMjl6WG94N3FMbG56MWQ1OVEKx+LT8bGKjvjepwKRRrbtKN89ZXexIoUo\njuZCzcOe3sBy6ZjIJ1IUX7pRckdNGFHuBg4V7sjH/t1VbxihsQHUEw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAybEpNOUcrUUc2NUllYWFz\nbjhpWkV2eENHVzJVR0JGMDZmaWRRMWpyNjJnCi9RY1VtNk1tVjIrWXN1R1V3U21U\nbzNZZ3kyN0tMdExsVXpCOXZuZXBUS2cKLS0tIHA2aHZoaTJZYlZqVGMyZEhWU0FT\nL1c5MXhwTTVqbWVkdXZvR0VxeCsxdTQKioQtOwD/BKO6daesGtZaGat0Yr3mCtJR\n1wTSmwnBvC3/248aMt3WlXv3SAzxsu/0oBotlS8O4wAFY8rLXrlcYw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMclo3M3dHeVA5Q01GN2ll\nbHVuNWFsN29YYjhnSzdObU9yTkdmdXZlcEZnClZCSzl4c29zZnZnZVZDTGl2UGJZ\nY2E5VkxHNy9nYkpVVXllRlVSNzVBaHMKLS0tIHB4Y1FJZzBjeXJUa3VJUzNEcGZl\nRDU1aG5sZytDZHFLS1R3Sy9OeWdBZkUKE2qmIzaKcctI+4qcSs2FHsdIsgwtc8wp\n+BiCaywNn0GduYT0DekA+NNypq/n0Yjqu/jGJWsf9fNDGxWsp6TGlQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T14:54:21Z -sops_mac=ENC[AES256_GCM,data:roklXM8wHzEOmhkcaGNMHtzQbjkHEihAGNQjYUi0OdfxU9B4J+Wua9gwagTX5CGxCiR+cwqLKK9gFPU4Q30iLrM1xb6EEAtJ2SLx3X0qrlfVaNjsPn0T5xG40esD5OFbdWgHIjlezW9gxLisRF4B0qv2ILfEBRaONaixBz7EP7E=,iv:fv+9JVOOLX+xtO0vBt+imAWSw0ctm/LfIGZzgQo8fJQ=,tag:ZhbWNFcKMiRYtX6yCAKmWA==,type:str] +sops_lastmodified=2026-04-23T14:56:11Z +sops_mac=ENC[AES256_GCM,data:zN8T0A009uUwjtaFCB1kUYvauzh70ryM3/CIWvmjbfJure9wMfL4OnGhb1crZaDe+1Ahwi0UNAkkS3QAdaSc+cbQwBVb3TuXpxxZk6dgZiTPOWSR7mUXNlq04Aw4lYNkVBmL4vdtkUDjLUGZZhKnANbcKlczQAfAviqYROEf7GI=,iv:uM8+s8c07tGZ5ueAXK+mJ2eFE0nta1uXeS4o6up28LM=,tag:DxaGsck6rEw2J1nyaaZLKw==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index f99a43a715..13e081ae5d 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,53 +1,53 @@ -#ENC[AES256_GCM,data:PM1fZhdC35KHpdcYur5qMmSrddmKgoipnfwpgf3Q6I2j,iv:fll78xjM3h9HIj6ccToZ4WDSuD0qv5y5GV9m6iUxQuI=,tag:0tu5UhSJ1ZGQm5G/6Ljikw==,type:comment] -#ENC[AES256_GCM,data:gSYmyZuokHTx6pDgJ/KV07VjvqO0EN7vZlQEQQKMY/hH4iVWqtVakWnaqKHugOQkZ/rjsXYJrChsyok=,iv:JMOEltnRHrO3U2TYD5Zp8w72TEMidw5jcOBWnJD+vKc=,tag:gIh6tmQ9UzIZb6/tn+pItA==,type:comment] -#ENC[AES256_GCM,data:kUSZifc1rDiM5dXF+dkr0bO8xP8rZNCphMPxF+qwdy9i1dDefQkpTn4OqZp3v9KnWc1U1/eGK4ewqrDKkn3JeBtq1g==,iv:ms83bCukYpTSzeX6+82vizjfl1nqcdzGrKidsZyE4TQ=,tag:bWHkFDLv6pQESVy39YsAZw==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:zaB8QWbVDyDBArTjdsgluysu9w==,iv:fcC1nv2eHvpRo8R5Gu4oB/zRbS7CA+HaI97hSa+OPaE=,tag:Rp2z5X10ukawHxcprovMvw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:Z7tME1h7kM1qDwMtkCW62qTrcmuuV1ofIPCw,iv:pE38q4A9rDNqOhJWyAmGTi+MwAuczn42vaapVM7vu5s=,tag:UjiLhsPBj/FfoS8f8kC4qw==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:gLzpdHKX0NU=,iv:RzU1BpoEsMV18NY6lQrCe3Iwc5pjA69q6dYGCiDJ8v4=,tag:0FKdnJLszh3dIdbnDUrNKQ==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:RgqdW8ZD1Ag=,iv:glL2Pmg8bMc61MS0I+JIBlflNqktFheBQPgYe8/BiYw=,tag:zrcsZ0upQubLqIvqvWCdRA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:g94aWQMIZg==,iv:hkPC89XCJcv9znmblBtLM2UqELke0SQozIxBdAkmx88=,tag:sZJu4sOo26U0mV2rsJYdYg==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:AZRIZ84yNWXMVhL/S98A95lkpQVPScZc7A6QS+W2u8FVjxKxYPNpcbp/Pzj77Q==,iv:e7LZoxpm9yxec/4lW6xqJutyQtjsM0/Gtv8rqOwekbg=,tag:/cEuDuoe/zWg1sSICTU34g==,type:str] -PGHOST=ENC[AES256_GCM,data:Z7E=,iv:Na9M62C0+h+2tz8Ih041WcyD88lRPpRegAtZTIsB+YQ=,tag:G2MF0xpohg/I8MTyw6rCiQ==,type:str] -PGPORT=ENC[AES256_GCM,data:PRr6+A==,iv:VQ2Xj009tQzJtSb25tpveyN2M3yRWvA9ujn88gdZyEI=,tag:UThpovbxSGZ263pyvbNw1w==,type:str] -PGUSER=ENC[AES256_GCM,data:c4J8pPJr9do=,iv:YELd1S5RKuYmQPrYdSgEd4keAY3xoTwV1sAMDCNdi2I=,tag:OGDQiUFizd+EE8eu7EKwUA==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:NRpv/z8VQfQ=,iv:fKovNLBdsOj47RCWac8SfhsFj1p2kGqhRJDHzBYySjs=,tag:BxmcI+7E9BVx7RTb73rz1w==,type:str] -PGDATABASE=ENC[AES256_GCM,data:QanAp753SA==,iv:p/6GyYi7dEzF6WaIQUVFIDvOxYkPVUmox+Zqvf8POLc=,tag:3El3rZOjrmPu+OlbdAusIQ==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:y/gV7Ik=,iv:xIXbeJ1Hj2Zr+tPMVyV0a7kbTXYt1iUljENwihDXy1w=,tag:Q2pSLl6dYBU16arGKEWODw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:pseU80j9AUxGichuiA==,iv:YuPZpDCWGNmElIDOzX/tiKFR0C6sP+TeLP+8G5JuRGI=,tag:dh1WiQj+sKefJHKdoGRYFQ==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:TCye2KJ/XIrWY2IyNA==,iv:WFNcyCptGtD9sJCA5jY4zmxIWW+oHmjb36jJjGS1His=,tag:ImzdJzyh4H9G50b48nURiQ==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:+70tJLF7e0NeclU5Ewc=,iv:LVnm0jk5awvPIgRSDkkJ0j9T6Mq8tzUfXSZCSEk1Ex0=,tag:pGnSsj7QS3I0iXQng7+EEg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:7wfC9OhprlTZNKk=,iv:XD0UJUFLNnZoB7xTgD3kuXhal9bRbeO+fC4Bac3X6JU=,tag:ZTgFTCfUTpo5DH/iaxNWoQ==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:c0G/g3eZddj7qpw=,iv:2Vg9XWKj7LU7XdGGIc2OT+3KVhzE6c65mAYCy5PYU44=,tag:T/JmCBl9Zl8dCSPsLn6vnA==,type:str] -S3_REGION=ENC[AES256_GCM,data:KCBRZ2xgQzk1,iv:dFw8rPPihj8ZCBrb+lRUAmoqYCCknslK9s7SOYqFevw=,tag:2cLGWwi03dqEKh9qpM/L1A==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:cRwmilkqgXZF78qgn0QSOkc=,iv:jLnBRM69ZU8l4dftWtnfAn0m2NLvpnqhqlmDERrKOPI=,tag:CbCM2VilqmTCLGbS8M6vTQ==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:8vQwEgu4nPDnYCA7oDjfbkIj4nyMbVZ2n1zDOOUlfoFjnw==,iv:r/l0CvFrgtQck+GMXU8CTOyHt2KX6075T6Pyn67PPao=,tag:62W8JARMAHBS16J1mBj8wQ==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:y681J+MQ/1pCq/q45hLwJsdfVum2aQJ/,iv:db9eaYuGrrCx5uBbDA+ZJGDC7bPaKVtB6a2RPSWGLgE=,tag:QBqwxfZ9MXgprh89AbT51A==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:zeiC,iv:7jx3DXVvWAJJ9AMwN4n2CJascnw5DSgHbzZabHRtJS4=,tag:XDtZhGZiD9yZIujhhzM75w==,type:str] -MAILGUN_SMTP_HOST=ENC[AES256_GCM,data:HP/SNc3kfds=,iv:FhreJUQ2zCBrnFRXAKv4RFVUfIH/OaExCaOH0UCLTSk=,tag:ntesCLYO8Y9yA8UKKskfZQ==,type:str] -MAILGUN_SMTP_PORT=ENC[AES256_GCM,data:1BcjqA==,iv:qPngC635kew/cRQhISSW+I2oE18CNTGfcYyrLT1dLIc=,tag:k9DYKtPugamBFWhY5FqCDQ==,type:str] -MAILGUN_SMTP_PASSWORD=ENC[AES256_GCM,data:alCw,iv:z+QN4pbOGnOCJWpK9GnRljqgVCKHup084OHl/EqkPvk=,tag:q4sz9g7/ayqW9AbnqqazzQ==,type:str] -MAILGUN_SMTP_USERNAME=ENC[AES256_GCM,data:AVrb,iv:6cSE49M2WpIH32d2d3zQny7TvBas2YkRhDlqtwbYQqQ=,tag:WeHa2blzxG+PzVeoE0tSrw==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:G4QD,iv:oQu7uPqqoY4AYpEgy0lnpPex+CQUanP8RXMeY7FmanI=,tag:mtjhcoJcdqy+orDNka1dpQ==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:X1PgwKsL7eNDQxh7Rtjsaxp+,iv:tkShFRBElAIXU8zJLInatVIPglyfgEdJPVG3YH6ntF8=,tag:jNW3Ad7mRb1QKK9Dht+aUA==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:6WgM,iv:y5ClcG7JPn9EnRf4oWoNhtcz5FpiAleDAarxcLUDbig=,tag:fzMOiKLBajxJm4Ao9GJ8hg==,type:str] -API_KEY=ENC[AES256_GCM,data:JqWn,iv:m/J+7iJSgmjGtJzTA8S03LhWGju2iInhcDZQVs8iAs4=,tag:silcuagUfW5xG6WBbM8DAA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOQXZGcG9Sb1p4WlUvQkp4\nV1VlU0V4cFNaYi9pSlRzdFhkQ1NzV1ZVTUIwCkF0bi9NeTIvUThkeFV3em1Eemp2\nVjhxMU5pM3JSendOaUhuaVpYazNJUFEKLS0tIGp0VlN5bk0wNG5kMmd2ZWw2b1N3\nMDdVZjRYUHh6OWhOUlZMd21FYWozeUUKYjWsWWc8bIbUKV/9NdRrP6yFSxe6FpJL\nzhiup40baB4TGFeXzi0N3HAMF9rcT6dy8zXedTeBK039p8EDGwtOYg==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:as2oaG9wYLYM8X4ttshjzwYS5Avt5fsbajXjkZutMYZF,iv:iXTzmdaP6kju5lORoB2w7QldKZHiM8Dc5u9VkZPsD4o=,tag:kk68kdx5HIGHxt5crFFj4Q==,type:comment] +#ENC[AES256_GCM,data:2XW5fUvWC7LyMCfQUnCLjxqMdvVKaV0HfAFpJvpcMDkx/kfpbUmlc/cwvIklXZ/914nlR650n3utyXU=,iv:OEvsFFBZs/Bn9DIaStqulq6/CM6ob2lTxvJLVAWZ7wU=,tag:OXx/PIfBKKB60AOmeo/oVw==,type:comment] +#ENC[AES256_GCM,data:Pjb0aKdSTS/Y0g+Rr0PJ7iT+1GSTU16QtNd9bytTP+riDWnfz5oO2kQ7+43lUDsWPNiDNmmc6nMsNSMWzt71mCcWGA==,iv:R1bvVVZB20TnR09ipbHwQN+fjcoRGS5QteW5hd5xOk4=,tag:G9rZs+drbWIBVpicf6g+Lw==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:16NiIY0uoFVuyckfm+ZEXBePbA==,iv:rS0l3bU4oByf084VHozmSyMXBnjGZ+BmW5PFnhqfTY4=,tag:jIaH5ptymdinuktB2hogaA==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:gIe3oZBUpQ0vrWVTToOnutRzpLkWu8NqGMbB,iv:yw7xGToi2hHrahb+ZQ2EuFHgU0JaP1FwGBIgOnCe7B8=,tag:kSl4jTmqUc72Yr6OnORr0Q==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:8RMLmbtu/Aw=,iv:6YLG8YK9SJmbLSh3TZp+tybM4s895Wd/iYdqx7VWjYk=,tag:3RdxqHzIi5NJO80q7Qj34w==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:MbCnMuLebPQ=,iv:xSMxO5t4CoZWOZ+Hzt6MIne1pdAcO1ww1E6l+4gpDfs=,tag:ECsaLzVrC1Ak3DTmSEOIxQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:+7WoetNYQg==,iv:6tDcTrky+fk+IavogRr1PEiV34Icry93vVjcA0a8jbc=,tag:/kYW4o7L3ovoWm1Jguc/iA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:M/2uVs70yV6+Cm9ZtfHS8fg7dQxmK2yglaCePM0+Vh+8jnExXHdgempuETJ1yA==,iv:bGvHhyGxM+IA7JHYqJhgmwZAEVCPmABbMr0CFLI39Ic=,tag:ogFsbQRGkkwWxsKwBQ3Uqw==,type:str] +PGHOST=ENC[AES256_GCM,data:PCA=,iv:na7pcFTMf4eUL6YPpAnqlGLhbxXZQuVi+/i2o5NPxTg=,tag:5KT6wKBJbEzabYw3ZLGXkw==,type:str] +PGPORT=ENC[AES256_GCM,data:cjsQGQ==,iv:2IvJrSkWdwDA70aiXF4//FqPLamCIwfWH9leb01/7OM=,tag:XfN3kr2lwZEfEqHbJ/VsqA==,type:str] +PGUSER=ENC[AES256_GCM,data:Uqg1rq4FOsY=,iv:K5hRVBEUEZIV7gWmFGRm2mI+GWUPMaiRyOM866vV/bw=,tag:VGs3oFoTDEN4oqxrpEm0pg==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:ygDDAPEKlM8=,iv:vTOV6O/r5EsSd+QUcoDJadDjpR6JiYnev52oJG5nCzg=,tag:iLdzgbw0KRHdGXiTHcl+uQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:BEn4xZh5ew==,iv:LtkLRZxhH1f/QSnv071//CnLZB6YwAHS6OfG2RGH1RU=,tag:OlxY203TGMWN3tAKH5NnWQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:XGiOcVE=,iv:7ql3g/Bn/xsB05dHsPgUeKPvxS6MPk2Be7tr155MzfQ=,tag:+bkcVgit9RZ4wpEe2Fo65g==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:XdIS9kZTCV2VNo7hzA==,iv:Nh5SgxuZ6QXPuF2eK/IVyKAv58VQXFWIi3PDcgnp84k=,tag:auRx2Raogv9Yd6j3Zl76fA==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:Am3l5p66HAeKlnYSUw==,iv:sRIBVlMTAuOvZDiL7mDKN6e2iV19WCN/zPtPv4xZ4yo=,tag:jXgD95EnoekrKFY8ij/wUA==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:ErpD+xcN3yyr7JmN8/Y=,iv:uqSRFOullXpwBOZW+NNyxDD5l/HBM8qSiNXoGeV8WbI=,tag:ZxQwWzlCA+Nd+FG7p5br8A==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:a9CTY1L8RZwP4U0=,iv:cGux0v214gfm4xEqiq1wVhuRqttLQ6A0XSJsZjChrAA=,tag:KFoSv1FSqoLyG/ERHow6Yw==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:B30gI98Gnh7ssII=,iv:hOaHJr6oRu4YqMwjQJdwtyulsIh+K4kBfoIO+RGFPc0=,tag:ZtSijs+AzgO52NW1h04TRA==,type:str] +S3_REGION=ENC[AES256_GCM,data:OjqcbU2e98mk,iv:BjHbvE4bXUzyeiEH5jidp3lenHxbryNO22r5zFnkYJI=,tag:ZNVVGZHnVdzOk93ddvexgA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:vWaSgME3IHb4sMlmKbhJjUU=,iv:TB11g5Hdp+D1M18C6EbEgATI9XQs3O+HSQvjhq3PlqU=,tag:lblbJf+y6sRZOIxLJMujkw==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:wKxd8Rpo9u6/mzjogMgzihH37p+FrF7AQjFVrIxPIZaKHg==,iv:j+eE4/ms5riJSP49bBnGQTHIyOGi0E1SbBQIKyN35P0=,tag:5vCRd7iYvJ5LmopvJsHkhw==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:hiQdlfI3jLoJcyOmi9o/bI2UrJMiHG73,iv:YvlF9JbBXKAkRUMvYDPy5Kra0jTpcV0rfJPp4f/fLKQ=,tag:uuoCmthPZCAlqlJB62ZMKg==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:RZSu,iv:HEZp8TpI6HhqnkDS96BRR8f+YW2MMTP0Wzy+rYuZgYw=,tag:gC8MZGpRZuABxYmga64MeA==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:9aSr6mH0jOI=,iv:eokWSt5+smadKpSZzw9IMLV8N6aDz+CSPpj0Y6a7uFE=,tag:NBlr+zEB+WPxSkYMMA+Jig==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:sv52MA==,iv:ZCCd1EUQdWrnW1vnSORAJmY7VzbdnwGyV7yVR3masIM=,tag:+DUV+Pg/26AIPHuaV+A4eA==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:nUQY,iv:o4W3Y/9G3D/s3iQzwPtvHf+BrQnc7rPQjOGaIu2Q+FI=,tag:1b8W2NZclP/1tjYLhmCXjg==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:Lur5,iv:ufsO4Wge3gZGBzwuB3rOnxdIwJMzSwK5RGMsDAqO/qg=,tag:9f+SChJFR4hWZu8w3OXkqA==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:kCqN,iv:hLdHAF3bdQ5jegshQ2CYdab2KT7/nKiqCbrvJPzIRs8=,tag:cxL+XOfDX43TT5XVo3PVNQ==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rXRKqsSs97xyfjugI8a7P2tL,iv:KIZhx/J4wRd5RgpqDT9BuZSAi3QcIpzpQcU2pcvi+DQ=,tag:QJWtEMK3IbU3wynh6vMXFg==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:LqQ3,iv:H1K/DHPdO8Xr7rVbArfaon4b1/Vu4HWzWxeiynKX41k=,tag:RLNWBeRiw+EaiWpIqx+FLg==,type:str] +API_KEY=ENC[AES256_GCM,data:ARyq,iv:3SuA4VzH7Sad6+1cRCXq5ds/PLVHM4y9flRUHCJRxwE=,tag:rP+U31ffoHDgLfqTeDQKwA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWTEczaDhvNmhZTUkzcTJx\nNTg1S0YrZnVyWUVjcmNZY1k0eWVoR2ZaMFh3Ckt6ZklFNG1XYXprSnRDaGFOeUk5\nYnhweUFVRkRtZm1Ud1FxSFd2blJsaEEKLS0tIFdMeFcyZnRITnh6WlRkRGhRTkFJ\na0d1MCtSbDFabk1SckljcDIvRnh1ODAKvwRfy7KLJ6vIMCcmMGQ5h4JpEsmNMUhM\nkE8x+tKXddpwNwWGSNkoJDHD8BPCi37du0qkT+ChD0UYtwwmEW7Xaw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpVEJKQmpkaUtncTlDb3dx\nclRvUjlYc2dWSktzcGJTRjNsUnZBZ1ZJTVFZClJDVzJ0d0RXTTFuN0ZmRnJmcUwv\nWSthc3JyaFEyVWozNGhHbGZOemhaWFEKLS0tIEpQUzlmYi94YXpPOU05QUVqRERP\nMFpSYjdJL24yUitWbi9HV1JvcGxWMm8Ki7m7AFooKu5aWKwUTcT1Kszu4f+lGqmA\nmPhc7o/jPmdWqOWrgHL8bxbz4AQQBSRjqsaKc7DpSMYNU6y9ZPn3nQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUZ0crQlBMTzI3WjFLbTNi\nRzFZbHNYYXV1b1h3dEFjaEhWMm5pMFIvWlVZCk5PNTFjWWUxSG52STRyOFlvSTRy\na3hKSDVWU2tRYXl2QS96MmRrcUhHeUkKLS0tIEJZSm9Kd3JpVG9EdUh3bGgyNlJ6\neWdvdWh3QjZrV2lweXgzcEhwM2FzZm8Kk2ZdwLlpRVyixoGLX07IMyx/WDXviCZw\nyQMzjW6L3ZozTiqCBb3iT/Ng57X1l6R/ucho2y67+waKpM0cp5HvlQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaTUZ3MlhmOG9TUm9tcm8v\nZXNxQ2JMQjlrUTJ2bWRRcko4UGppMjRrcEM4ClMxUVpsaGdlOEFZb2Fsdzc2ZUxi\ncXJUb0lMeHJOWVZ1M0s5NXFSbUxSWjgKLS0tIEtBNEdXK01VSy9tSkVoY2RRL0dG\nbXFaVWFxakRsM1d2eTBjSmkwbzdlVmsKF/xkYw9AXIcdiEAvhORfesablNfFtv5+\ny5TJ7lvc5PFZW+9egaFrH0W6RO7Ly4qO4IG3mjMxVgQFO+PXqJiyYQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbTYwVUF3WnBMTFAxdm5u\nTElON3dRMENoa3hYdzVzeTZuQjdXd0EvNldvCmJjbnN0SjlJUmZlRzNZdTluUUYw\nTHNtMlVydk01dlZYWndJV1YyRXgyQjAKLS0tIFMxUzFHQUFZR3I0U0kveDRGUEND\nc3RaTDN4UE5LQUxxd3U2bStxUXEvN2cKvzzuf3Mvmyj16t2D1lvaxdbpZl74wHpx\nP3o3XxoLfRtSYBnCOq7tUX9Gd+vjCTYQEjq8XdKhcfCzBba3lIcEIw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5WG11TlVXclhPa3R6K2dF\nM2xIT2J3V005NkdjWldLN2xnUk8rY0N5WUZZCnN4T1l5MStHcmZXeEU4VDduUEhI\ncUZvSzNtcFZ6S0g3NGhaYkVEaUNQb00KLS0tIHBabWVUbzIyMi9hcVRIRU1iamFG\nT2UzMk52OWlHcG1yUVI4c2NGS1grOVEKzR1ckP+YiA/7k9pncFlRl2xVBBpGBhYr\nH+5NAZ1HMp1P6rxhSkgN6qb/xddeJx6fyskgH/4MXdoBWxu8N4YUcw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGT01jT1dCLzlZU1k4N2Mx\ndldIbmNCT3pSS3AwU3kyNVFseDdOWnQ5NXpvCmVsdE5yUFVxVHZoUVUybWRiaXFz\nYTQ4RCtiMHFLVmV5RlhIcnpSdHlIUHMKLS0tIHAzaW5sd2o1dEpuVzY4NXNJdWdu\nWXh6L3NtTytLUW9YY0RwcWhwWjZrR28KpHiRlF/ilkZ5kbeee1Cn8K5J+RX/JMuk\n8ZoKRoUmAm1GxSBm4ryHjefOtbzSBxrXf/Nd4/TNQoJsTsWt3ik3ew==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJaUNUUUhkWGFBSm5FUUFj\nVnJ6QlRKRUJWanBqUWJZV1VnRTk5alF0ZGlRCjN4a1p6dEtBcURzVHdoTEdkQ0lV\nRXVFSmFPMEl2V1RnbFFNNTNtVGMxdG8KLS0tIGVhak43bXFWZ1craUdkVW5PT2JZ\na2ZWQnU0dWRxK2t1NmYwbzJHSnR6dzQKDsL8odY0cG/g9lqdwFEYBlo31NnQgXny\nR2ebeU4B2/Tl7xfQkFZEZUYnYuASA+oc0mMEiEiqosCnQQ6278yjxw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSSnlJRE85MCsxcmdTaC93\nSkdsb3MwSFlLRVpSSmVTRDVPSHZUeXVuSFQ4CklDNWFlbGZxVnYzY3U2ajJXMzlq\nSVhjUTJpRm9qNmpNM2hHWmtsVmg5WHcKLS0tIHRDNDFwMHpWQ0UreHozbnFINGlk\nT3lSa0VOQ20xQTNUWHdVWTRJelZpZUUKhaABId1ICWqFZsV8+34fEcUO37gVdBpN\nznIS+LV1pxPt/FnlfqtUbtSBchSy/en/Is3//4tqgI6h6jMRC6+cKA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1WGN6Y0xUZXNoUFJhRHlS\nbEMzYWdTSlRFbXEzSndIaC9xN1ZaQW9YV1VBCjZiODFaeUVRTU1TSVBuWGc2dG5z\nM0x1QUlQeU1aT0kvV0U0aURTUTIrd0UKLS0tIGdEWExubjRWYjNVN1plT1RQWmNR\nbVc3bnJkeHBuaWdCaGlhY1VFazFta3MKlWMHxsMeqhW5H7gWvPpvP7VxK+1QQPXk\n2MqtCeKQ4ytBCQ8WGzfeb8P1T+uef7O9SdRuTIvp1NTGwJagwlGLqA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4T21sayt5Wnl1MHg1ZUp4\nNUh1SXpVays2MWVYYmVTYzg2aGhLUmF4bW5jClFVd3gzWnA3b2RJTmZWemV5MEQr\ndFhQUDEraURXeVdpalkwSGZLSTBqeTgKLS0tIDE3Z3FnRUo2OEJ6TG8wSHE0Q3Ru\ncTlVODNKb0VwOFpBMjhSN3BUNDk3UWcKxjjX0ZYb5NnwwaANtgSKL6vdcVthIC6d\nNSa5Wf2uRyLzSpN2CVMx2gv3mzw7nL8Lcbo6rK5M3D/C8EcZFUYSZw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOZDZQNkpZSjZSbmJ1UmRJ\nY2VjbjRCQXVwRHNvUnJ0em9YVmJoS0F2SFZrCllaU2s5M2w3RG5QUU1IWDRVd1Zp\nUEZwMElSSnJVOW84YUtyNFRZVUdDOXMKLS0tIGlhZjY2Z3ZzUm1yVzh1UC8zbTBo\nWnhseEpHL0hkZmJXT1VxV0pRSTUzbW8KR8YUwYe+Lo5E7oNf0IbN3ET46JmzpCVo\ns7K3X9PWlYjKxFFPF5Dhgeox9F1+H2QW6tGFbYyh/pSq3fTb6EbQHg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsN0MxVnBYWlBhVXV5WkhH\nVW5nakM4Qm9oMU94ZGpZU3MwY1orVVZ5amswCnJsT1paUjdmYjRaS3JhUStVQVJw\nZHdOYXA3Sk45VjNLNVZTYlB1L0p0Rk0KLS0tIEtqRGZBajM4QjBPc2V6MkllcVV2\nNDJZUGFOQ3JURk5aVEtyU3NqbXpLY1UKTJAVVxuPWZOBJ552eFAK8XuFTAn1/6D1\nIgJQ6J1j0moXTP304ZSDvKPAYXSitgMouLynkthW/8GWce2widKZmQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtOVM1a2NVZWhNcytGeHNk\naXBiY1VyMFRiSWVENDNZNmtPK2Y3Ym5EZUE4CnM1ZElOUUlOZmkzUEpGdXVyakpZ\nYW4ybE9ocndIcXJjQlN1VVI3YmNLbkkKLS0tIFFtSDJMK0U1V0I5MVlMR1N2ck40\nV2dYSWNMK1RYMlZ6K1FGNHh4QmVac2MKYNi070eC+b4bByzj+aRLrD4DgxMlwjsz\nr/VlDHbKnY17nxtzcBebio/VutH3OMSdzzwZ7to2BAN1BLGlHkRgVQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuRnR4VXFUTURudHFheFZL\nVVI0SGpvVmFpVFpETHVoUkRPYVlKVmx4WVdRCnV2bWd6MDhUTERERGF1SVlFczZv\ndWpCcUpFOGVZbitiQmIzaHNyZm10NkEKLS0tIFhPT0tRMDI4eGcvVEZJcU1QS1Bq\nTnIybHRFUnBkMGlEU0xZUGNUejFQUkkKa5gYIa9C2I8vnEz/1XtHGXNBDNcrijjJ\n5v1s9x/uh4KV2SlXs0OerP6d9wFdYcjisZHSqd5Aqh0ocV2K6f/4NA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T14:54:18Z -sops_mac=ENC[AES256_GCM,data:GabZkCsnQjhZUVFsY0StvwdfY9bTIxUPVBpA7UMLqWKKUgpkDxpxO+Esgt4oHL/xbX3YyFze84NlaUmPu71uW5vQf+s3jNAv9yVZLtI29eFydIw5//7FpAPGWNPF07qIPUkejq3Z5+r0xKObe7ZkVSLbrftA8yKNp7BHeiELLzI=,iv:ekxoN5hl2zfY17My/OFZ4z9P94U7IQUxkRyuycOeiDQ=,tag:BkqJl93n39dkxzFry1lG8Q==,type:str] +sops_lastmodified=2026-04-23T14:56:09Z +sops_mac=ENC[AES256_GCM,data:t95btov2s//tekbxZ++sVLHGVFq+znudWSljvQlLT7DohAOaQO1GlHRnsed+BvzuedBk1++DwnVrygFX+WQKIULlglRGLXOWj6Bs0CZvOyfb4/ypxohmWl218iT6ORVCqf3Q2RIhrJANC72Z0ckeGdt3EWzeuyM+qSd0SQ/hdTM=,iv:ZYp2Idh0yODD1gB8uDAfrJH5Ugbz0SOS8aVp7WNyhck=,tag:5RdKsjITJc2vL14jUbCuLQ==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/self-host/.env.example b/self-host/.env.example index 3e5d2705fc..dcbd19d00b 100644 --- a/self-host/.env.example +++ b/self-host/.env.example @@ -32,10 +32,10 @@ S3_ENDPOINT="http://localhost:9000" # if hostname matches S3_BUCKET_NAME => / # otherwise => // -MAILGUN_SMTP_HOST=localhost -MAILGUN_SMTP_PORT=54325 -MAILGUN_SMTP_PASSWORD="xxx" -MAILGUN_SMTP_USERNAME="xxx" +SMTP_HOST=localhost +SMTP_PORT=54325 +SMTP_PASSWORD="xxx" +SMTP_USERNAME="xxx" API_KEY="super_secret_key" diff --git a/self-host/README.md b/self-host/README.md index 25e1fa9871..6a1666aee4 100644 --- a/self-host/README.md +++ b/self-host/README.md @@ -163,12 +163,12 @@ Other providers may likely work as well, but are not tested. To use Mailgun, you will need to create an account on [Mailgun](https://www.mailgun.com/) and set the following environment variables: ```sh -MAILGUN_SMTP_HOST="smtp.mailgun.org" -MAILGUN_SMTP_PORT=587 -MAILGUN_SMTP_USERNAME="postmaster@your-mailgun-domain.mailgun.org" -MAILGUN_SMTP_PASSWORD="your-mailgun-password" -MAILGUN_SMTP_FROM="email@your-mailgun-domain.mailgun.org" -MAILGUN_SMTP_FROM_NAME="Your Organization" +SMTP_HOST="smtp.mailgun.org" +SMTP_PORT=587 +SMTP_USERNAME="postmaster@your-mailgun-domain.mailgun.org" +SMTP_PASSWORD="your-mailgun-password" +SMTP_FROM="email@your-mailgun-domain.mailgun.org" +SMTP_FROM_NAME="Your Organization" ``` ##### Gmail @@ -178,24 +178,24 @@ To use Gmail to relay emails through PubPub, you will need to create an [app pas You will be limited to 2000 emails per day by default this way. ```sh -MAILGUN_SMTP_HOST="smtp.gmail.com" -MAILGUN_SMTP_PORT=587 # or 465 for SSL -MAILGUN_SMTP_USERNAME="email@gmail.com" -MAILGUN_SMTP_PASSWORD="your app password" # this will be a 16 character string -MAILGUN_SMTP_FROM="email@gmail.com" # technically optional, but you will almost definitely need to set this. -MAILGUN_SMTP_FROM_NAME="Your Organization" # Optional, will default to "PubPub Team" +SMTP_HOST="smtp.gmail.com" +SMTP_PORT=587 # or 465 for SSL +SMTP_USERNAME="email@gmail.com" +SMTP_PASSWORD="your app password" # this will be a 16 character string +SMTP_FROM="email@gmail.com" # technically optional, but you will almost definitely need to set this. +SMTP_FROM_NAME="Your Organization" # Optional, will default to "PubPub Team" ``` If you need a higher limit of 10,000 emails, you can use the SMTP relay service. This will require extra configuration however: https://support.google.com/a/answer/176600?hl=en ```sh -MAILGUN_SMTP_HOST="smtp-relay.gmail.com" -MAILGUN_SMTP_PORT=587 # or 465 for SSL -MAILGUN_SMTP_USERNAME="email@gmail.com" -MAILGUN_SMTP_PASSWORD="your app password" # this will be a 16 character string -MAILGUN_SMTP_FROM="email@gmail.com" # technically optional, but you will almost definitely need to set this. -MAILGUN_SMTP_FROM_NAME="Your Organization" # Optional, will default to "PubPub Team" +SMTP_HOST="smtp-relay.gmail.com" +SMTP_PORT=587 # or 465 for SSL +SMTP_USERNAME="email@gmail.com" +SMTP_PASSWORD="your app password" # this will be a 16 character string +SMTP_FROM="email@gmail.com" # technically optional, but you will almost definitely need to set this. +SMTP_FROM_NAME="Your Organization" # Optional, will default to "PubPub Team" ``` ##### Office 365 @@ -205,12 +205,12 @@ You can (for now) send emails through Office 365 Outlook/Exchange through SMTP, You cannot send emails through shared mailboxes, you will need to an existing Microsoft account with a valid Office 365 subscription. ```sh -MAILGUN_SMTP_HOST="smtp.office365.com" -MAILGUN_SMTP_PORT=587 -MAILGUN_SMTP_USERNAME="email@outlook.com" -MAILGUN_SMTP_PASSWORD="your-password" -MAILGUN_SMTP_FROM="email@outlook.com" # technically optional, but you will almost definitely need to set this, as it will use `hello@pubpub.org` by default. -MAILGUN_SMTP_FROM_NAME="Your Organization" # Optional, will default to "PubPub Team" +SMTP_HOST="smtp.office365.com" +SMTP_PORT=587 +SMTP_USERNAME="email@outlook.com" +SMTP_PASSWORD="your-password" +SMTP_FROM="email@outlook.com" # technically optional, but you will almost definitely need to set this, as it will use `hello@pubpub.org` by default. +SMTP_FROM_NAME="Your Organization" # Optional, will default to "PubPub Team" ``` ##### No email @@ -235,16 +235,16 @@ You may want to use your own postgres database instead, in which case you can di ```yml db: - condition: service_started + condition: service_started ``` from the `depends_on` section of the `platform` service. ```yml platform: - depends_on: - db: - condition: service_started + depends_on: + db: + condition: service_started ``` #### MinIO From bf863d4afb0d33a995fd4f940c3f296332586ae3 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 17:34:06 +0200 Subject: [PATCH 118/153] fix: use ses --- infra/.env.enc | 94 +++++++++++++++++++++++++------------------------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/infra/.env.enc b/infra/.env.enc index 8735263eec..37d2511dd4 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,57 +1,57 @@ -#ENC[AES256_GCM,data:U1IsqdBNN5fNJ2g5YJYgdAeibUwxW4JFgYUrkqU7MyWK,iv:RTtiy9p6JE3KqnuCYKmB85WOxgYB4bhc4TdnouImTpY=,tag:kfhx9LVivpNtEx2Tl1vxlA==,type:comment] -#ENC[AES256_GCM,data:Y9fceg5pTTrz1BjwWkBVZdxXBTCMErkeSxtuVIj4ojrID7i1g8ZFEt2GXK5Xzg9sQ7AHFZphTdpKjmc=,iv:hjy6yD79MudIcqJyC1Jl6b7s5EJ+QkeccTmc6gWvQSQ=,tag:vYRpJqaQgbfOaIlf5iPlqQ==,type:comment] -#ENC[AES256_GCM,data:2WNVS7p9btKsGEZtoXYfhvzT9avkqODqXrLCvDv4XTiVjAS+2qcMB+Jzt1roXNniR1Ji+A0zUZSOFhsH722O6HLCzg==,iv:bhKCID3a5AaX81SDq9TnNEhRCiwWsuMqbIfBKssYsnE=,tag:6Lm2EF3+6+zRPRuDktzEMg==,type:comment] -#ENC[AES256_GCM,data:gdvikZQh2i/85HKwz6E/4FPkFHSRRrvpwuRP5of9VsWVINhzrASDzgYJwYxOUruj/A==,iv:TlorC9yfNvwsJxV+c0R2XA96PFy5ZKNCzAaprjWoCH4=,tag:2QE+KzZNDSfitpqQ+gLhkA==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:3gb0CvT8FyOhj23/Vwe9,iv:TCXpY+sQxhaUjr89MOBUeNhbLc2yCBQvVjH+XD3RX0M=,tag:+72LohqA0wjam8iVASVPrg==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:vThErPn8sKAFTxtwyieNMsdLRtIQsAo=,iv:EP/jLIu1NDgy0eMgQhqkUojh9H0PIjF5OBQ4WdhrRL8=,tag:rsWa9Os1zlqvxxcz6Rd1pg==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:ll26no71yLaNY7c3ZYyl/S7vxDys6TY=,iv:fiwArqAIzTS1t+iL9ylxqPmnxKE9nwp++FMx9zQsEdg=,tag:iOlI2nOzFrbLIIsls2VerA==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:U890K+t5LXw=,iv:9Ea6sJluGA9CxCFnEfizDCQ5We5hv+7QP/ePSUQeP2g=,tag:EuHw/VYCH/73g495CvPQWg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:sIh4GHMuPLinp6wybcy2LzYNtAnXaibhy9AaYhiIlNoNutGE528o3xUIxUmafWP3tc8AUNkeB0NCoagxgMPPpQ==,iv:xkNj4FzuJdv3o/Oq9r3OvrHRxFq0bE5yH4y1j2PW/24=,tag:ktcADJ4dy6TybjXRVO5q7Q==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:riUAWsbDOg==,iv:3YQft8wCQl7aB9CtcYtemABPzyH8B0xPApu6EjYJcDc=,tag:E9HyF13Rvs5AP2HpO5zEMQ==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:APOavSf19hcS2tDbHXWc4RXMYPNLzW9aJmKhAp7FniNc4rOzAu2km023UFnkx9bKO2eY5oSeiDI+oLR4eeVIaZdya6QqlkqJ30ovV65F0N4P589TJLjegXY8+bR+jImJ1MAbw2sv,iv:MvOZkjU89LPYmyNdO96FG3z7Mq+7Pcd6gTpsljtcdNU=,tag:7KuRuMgGIPWdDNfYsMz9SA==,type:str] -PGHOST=ENC[AES256_GCM,data:7jc=,iv:lWyHUlZ7CZzrIIiJdMPGnEsI2QFnZJsH1ksB1Kt1bnQ=,tag:8fh002YEHQORy9cr5nCeVA==,type:str] -PGPORT=ENC[AES256_GCM,data:dATpDw==,iv:7rWYwMamquCVyDHSO2sYPwk5aBut8GFORTbAUooAaHU=,tag:vKoCsxOO4FLlZmojd5BABg==,type:str] -PGUSER=ENC[AES256_GCM,data:mZlgJ3saJy8=,iv:Jb1ejqBGXSh3NFx3sIz4sUcVl5WMhgsMfFyDWFx5ZWI=,tag:3HTis6mYILqRuixZ6xj4wQ==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:i80A+CdhBvaOkjnuQ6MtTA4AbojrTMtrhjh81INfjQ+mn7NjNfUm4NWpyk93iIjMVNiCUJb6SQdpdnhtogwrHA==,iv:Cd60WiAP5BZlm435JVoDmjDGZPwO63bZg7nO2MSiD78=,tag:pELGVK0i2ZzwDvy6a0qC4Q==,type:str] -PGDATABASE=ENC[AES256_GCM,data:JQOwj/Grfg==,iv:vO6vSUkj0Oc+08Q1tSZD1/pQBvQhkDgRYgq+xUXZezU=,tag:KVCdcbMBrr/tK/gpcfKG/g==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:rpSC1qg=,iv:ld/elGsdl1Kze+dyBw8xax87FP4rfWh4Q8yA9FpVUM8=,tag:v6vAy196r8WPR5lnZxUynA==,type:str] -#ENC[AES256_GCM,data:EnQLzWRQ2YA+Tbz5Yx5RZxob+1QjKULLxI8CwnJx,iv:ObXZwTO3KivI6n0RRfC7TumZhfjGW5sCIlwO7CsulBk=,tag:spBVnrpeGytJEYxiRJ3yIA==,type:comment] -#ENC[AES256_GCM,data:KnuI95mptLshwQtJKUAeMDQ4i6JWLUY/uZ56SK3pptOtTw==,iv:3UKcFr6ge2J0mpYp3S4/7Za1NsSpPZCaggLSY1LbBfU=,tag:MaMltCokwsK8La8W5b9zmg==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:ZBt4cPr3OnNBH6GGaqtoE/BU,iv:O3f3Ux9Iz+Ot7qQ8nHspBgSdvbqLROZZYlT2+efXzLg=,tag:kpBrFv8sv0hxDk2TYPpq6Q==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:/v5ZcfIDxib0pVxzPlCjZCLbcmw=,iv:2rP82RdSp+xB9CY9GhNg5K7fVcVBinwM6q8lE3ypLBE=,tag:5cMVzm4g27xnkvmDlihitw==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:aYEJUZIohW+fz69RlFhHKIcRlcxLoLh8doB8NhdL+Em8Pj63NSp3dA==,iv:05uNUETX0WnkkD1a+LUiWjBAshOn6uJkXolWeagCuvk=,tag:oKg+PuEX5J9GNBHfu0akYg==,type:str] -S3_REGION=ENC[AES256_GCM,data:STqILak/FKD1,iv:N/Pb34Jvvo9MraGdpKGIDiQ8AJa2Z18s+jZ/5vyzK00=,tag:kpu4pzjMbMRa3MVmRrtyJQ==,type:str] -#ENC[AES256_GCM,data:5nvRt+KCu9yvCn4MnAR5U2h60VfTysWHOixc+EwX,iv://oQRUcbNZ7Ik5l6CzRobZKU38MgMYftTdUAwMVrQUk=,tag:xFhHNh7/nITHZgUNCxIngQ==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:PzzjXRlWm5DZ,iv:/1opEOnOr9ch542CzMsd1ohjheDNfi4Y39IjHHaOFyk=,tag:iKYKFYoQLMASp17kPeL/zg==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:d317Vn9W0O/anhmFQ1uFpPQ/pqv4aij5,iv:lL/Ek7+i3N6XZQPwOtLmHgbTiweXlOFscX7okvm1kSo=,tag:V3+Wi8oNYpPVglCosqiV8g==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:eL4P5mZe1ZEHTDYBQVStNA==,iv:65NUq69rtAuW+y/R9ikgYRtpb6Kexq+7OGpGEOL8gwY=,tag:X2+ZEGT+W4Dfx7knE0FPsw==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:PJmn,iv:g0knYOWsvDVbzCcvxfkIqnsgmRYsLaGb/xZoyVben6s=,tag:vSciJdXNyu0is8rD5/5tIg==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:cXcdAJued1j4O3AtGmfvGH12cpvyU7xP0uYp/U7ZKiI=,iv:Kggdgofru22TSnPC0ADMgwUKiiBYAg2vf+G9uAHSBnE=,tag:VYJKsCObVnRlXjBj6qfAEg==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:mC+B6HRpwZeXNcXJmvb2WQ==,iv:sN0UYUaJbZ3J2zEsPntMqzbMFdojBpFGzNwrHWGxtdk=,tag:m8c07CfxO1nejI9MhqhHfw==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:zCtyiTDLUAly7AruU+OhfU4zNjC1qtJFB8tSHLsAEof/gGKb51O3tr35vX5878FA8KWE4ZUE2qJJlZ2HGuk2jWbAe88ido72eDLMAzS1H5UdoNA/9qT7Fh77zzluD3lkXR6M8KH0AddlvkJu7B5CQDge9/FnMUCh8ah4iAu/Y61EX/33lYyqvdrt0xnYruZ4vWh8Z1hxfQ4eeZplxEXO0GJLNQkY765Jus60ZLuDMWqCHEKwQiDiMA9gFQqPRHvYax6d5Uh4M523NprJhTI6avgbClJushW+gW/oE8R5kBf2q1jR8fIsmF9enUTD0zTnb61wkjg07C0i6FZrInXYSia/VwYfT5BAQRNh6/AbyWAf/OUYF/03PzvAdcXiQtFpPV5zZaAHFxtWXFR0WUcP9iBE6T8JnzY5DRErWuJBWfBnZvrUGE6Ior6rBOA0R121hQnQZ3me0XAsKd/JdbEB3xpASEgCAXlyfzvghnBs7qFMVS3FCkg2W7kQFGnhV3riMpjIR1octcPSGEy2GqMX1Vft3YLALVg7fvP1KHDAKGoqK0o43u6CyYhuWQC5KTSbf6D7eZG3LC+Y5J3y6t6GmFnOYr8mFmwnm2Qt0Daokk+DFakPlexwzlUw9bmTLEVDR1RhfQ7pFrzlmyb/z/k7LiDyRsBzoLLYZFPAy6CZmL3NveW1Md6lNemcEB+uvU4Jv28z4wIbg5YVyfoEQf4BuBpNPPtQkj+qWSkINQXURt4pdAC6Q6RXlqdg/zZiJXxilKlZ1tFCCW56ZR6NJdJCpEGQvOcifjQkST+0NCJl7i4v+DiSyyWwNCs5aRzsfOXDS/6DPhiIDpeo2/d+4v+A+T6ug/OCf7yxzJrsiBJn/Wt8I+56EAHjXdPx7LPvAChnIvx5sJTdVKKKyrhngKQnlV4HCOr37isT4isMIXARuykP51K6a4fGZTYq0/dLJH7bFt67qFl4WUb2nfbUTkI5IV4UR5f4ylB9ctNdAP9ea572IWsogQgjNMKTcoaGfc2vWOIZUlHQ7bZKWNOE3SR0KCbyJRYcKDaQATwie+oi8TVsDd6THz1MfrRaEqMzeSgffsgZfkRieQGPiYHmN+PKdYlJnSv01uOikTwbjme1moEDeM+ulQW6i6Y04IOhNaTEgcUtODzoEdOGIGgH8Xl3TBHuzt7W9BS8chvxEpIpGzGDKfFCM341csUPHyDTi1igNruGhsF8JtDoBEWAUhdoWHGYYcP5ta+fo0q4qhwVoPhe+vDjCzSfH/g0G+Dsd+1SqKfxZHGLhQ7O/wHedxvmUK9xKqx3M5rJutLiDw5E2sh/3+Pva5tMA6qAG5cozNOjspw6wpKfqGARN4TV0RF+ex4y0q0UfTcDy6Vf+4yUP4AiepLL0R027V3PWxlQRRwgUBFQDaUCUpMjgtt2AdBJHy7VSzFSgH+Amjeqqjz60jk4/3EZkWR8q+fKN0xfUqkj+CLE2JSKn1Cl3kpnNDkiuK/UpwUS+sP0+YFqUR9Q1ETZ8KtGABAhjWTEoAwPAKyM8sxi/o548G+EcSEtCgIFMlp7J5ITwUdIstgXg8wWElqkedlyzdD9Wf/zLzDeUdR35SdXhgYzDxMg/Phb0izLUjwKAHAwHqAD1msD06F1c01wonXffDKgMTi5bweZWoHQyA9PZQFRn2MxWH2R9NwdCMuNKncuG/OoZ9zjwOeKAN498WE3kKawX2BmAgXOiwmFJzbIU8Pp5x8HXJR+nVriZLN64HpdqbEoYHhMF523IA8EQ/Ayy5WjyC2reOKW/a4XqQo8D/JEypLvXhRVdTchf3f287lRCrMHyJaaJ1E37/1uGaXPvC5g/42nPBYcMm0A3qhBkEeP5RL9ry/Gc3Ct/REEltJjMURVmbj9HouvhYKnpoZ4s5GszwySXgFs+bm4HKQkWRbJse0hRh9f0nR7krjh+KTtW3S2wsaz41hOiC8t+CD86UzOVjtId9j11ADhF7YvQrGwDqrq9tmjsoQe4OfYwteNxYjlm0bRhHJwc1nZR2d2XrtxA5IDVrCAiDoT1ZWW7FGjnPrazzf2ofon9YGTXXMS6jTNjxWXvho+1lZIoSZl1SfKUJxYdKD/HN+uwO02FM+MQjYbAPTdGMkxAp0SdLqEKWLKRFrunuXqDKKjuORDXGIu0ydOLqP4VJDQ7Xl+rYq1wWPn2EtnYgGwVMUBEwPjHgf+HutlBsvUtR5iH0LOP2mXS7gda4iyAK3LWvPdbWAneLBh8k3Rq7Sdjslb2b21TyJhne2jtRqor8OgfQEKokT9OSnksjLZSH7tkEw6ECt0DrccKw1nH9qbFtt3GsZnbkURaQkW2OFj1D/9GLy0Fo9TAMuKsMnLJj2MuVD4BvxT/4BLGgJZ1tIMvtral/Zq2FJM+GSNQP90jbn0D4ptOuLeXpOvEPez+x4vGfmPVONrEPzFjBjKL8VHIpkezbZ4WpKusyE4xYMERqRXKn0gUE7wBxJbkAeR1PCmNbtLLYPESXduysA2rHRwYZTU4ATVg1yHXZ71UQ+guJ58CupvdDAtNCbYF+rY0ejVsM/pyjjDyBJt7Ph3B7TZ6o1x6Metu4EYcna3Kciz43hbYIETmhrPUiqmbBznveWnYCmgLT9E01+DVSykoc0sCSQ6VWP+cex0pArpHEGjXYpDpGlrXGVezEqhdsEk8xPHMsTTMwahJTxMXRfrOiuyUngOw2v/oQ+iaDBFyOld87xQ2gKILMJL+RWXbB5vY/WvyvD7uqHx5T9sDteC1jGDXyGOw7Dnm1MlYWuLENBQkYC+n0xUNCRIrHRJvHQDVrn1EdOiwK4tVE30LkjZQclJj8B8IEG0kTmMCCObDdre77l/P7k++qYbCHSU9NjTpNk85twVj/GlMWgNsodFph9ADZskOVFd9s0kBOWEziK4TnyX3fiNvoPoSXfqj2/cngzrdF6f7aTmuHYTa03DxpxGgEIpHjZCFumnxm1jCpN5/ZsG2R4Gpmvcnlzdi+ty8wfVqwybwVYP+FkpHesNVwlExU5XywMHLxR3jsm20xLpqdq0fqJvI+CvKg/SCDmZ0o3MASPuzbluGlWPIsAwDVl0e3zcm3IC3l8HV8IqSocAnJFMgQJz5VQ8xbTCWhb6yQkeWMsLkhdrwlMa8hJRfT4mzaIzf8878Yw9yL50Wg+EIWZfMW2KkJOR2hJqF7zRYCtM6Kc5OxF8P3lEhFHo33DFJrYF7hfwjb9J1M3b2Bu0k3+H3si/zczi+LaTJhy1LG+fJdAHfpELm1RAs7G9hQ8moVcOYSa89WjJS6CscMqHoL7B0dzlDNaWTjwGum+zD9WQhnKaZkLOj6Wf0WedIe59+Q+/G5WPKOgdmn6oUvQ9bUuxy4DnPYcG48Vy+Mc063aQMcY5Y//gkgB2J5vQJPLqpvr+h66i6k8mdk7Sp4WzqxGkbbIcfy81UhqchpbiyzwCUQD3QfJE/Jjct+D/0EsAIP94IwghuiTeZp+cHcs/jxYOaWClz34uVbWji5F40NxCO8wyEBkeWI8YvL9Q0m4qeWeYdnfeY2V6ukGTyvOrZEzsaWddeo/j/jwgTkfnp7J+yld20aJRWjCODe7jhZTgZiaBT72yu4y1Y6Xeg5I3azTQkAb5DGL5SxDoe7HLu+QPalJTQKqemUs8KvuBE8bCa4E/9cXdOjO4DzKQfb80hE7sZvpIcgPhZSej8tT2AJBf7se8Xe09KyN+PM5z6CcLAiinj6/wF0zBo4cT4RJ6Zf2i0Yi/qsx1Eveh2dHY8i4PhNaaGVdTT0VUcdc2cKoRAvrpVtYOUR+WIwDTJDpaCTfs7O7MrPHjQFVdp62XJPGTiz/tMUxp3EiE9SWLez+xBf7w0BeMpk1KWFGMufoh5N47IUDw1ThANeqhsPujcvnp2zf9yNzJ0tTG1rRWybOALDbK3JLc4M377JE2gOzenSaan7tEBomxfgq2MD3hB4P5NGQ2RWIbAcrKQsW+uW6wFsDa10gQSKHKH+k56xDq3S9HnI+QkQncnqssO5mygXfALnBIJdF+DM1pGtWXjDXJyfBngC4iqKR9Wux0zuXrYIpFmB6EkVBw6+YHndIjAkihibw5P0r6AFc1r0xjPdaoTDQ/LuLPRMJsirME61Igv+MR6k6tNVIjIUsjBuVTj7F9gcK0HA==,iv:h7zOm6fgIhS0b3ZynfJSxEImmWgIqPzo49Iec5XHFYk=,tag:TP3f6RKotyDOBwQGcnP3Ug==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:QqgbEzy5kA==,iv:Rly7jYqO1M9u/r4mdc788qWSryPbgaB4H6XFBZcDrNc=,tag:V9C8Y/fZrssljPlzEu/62Q==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:mj5Yrs+ZeaQbFjOApnkJPhMny+bUL4UBDvaflw3S1KE5dQquxjQFUhvWPc1YnxJ2NDvVFQ0Uovl/+TXA1GGILw==,iv:nP80+eo8bpHJM9aQgpc+yLdZdK711xF3Q1AsJD55LjI=,tag:8yQd9+rVWPADEBREMnVOgw==,type:str] -API_KEY=ENC[AES256_GCM,data:rllOIAk8WS9M4ygz26V9upxWGkyW5TGwMaJCsZ/cK4Q=,iv:ZE/wyVT7P8lA8T3jvhXBvFS8U9m9qZJnbN5Z1Zlq7rg=,tag:OvsgecUZDwyce/OijV84Sg==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:seqeAuMrt6iHeZRNvTsFQeZBo3yUZJ8A,iv:1nkM8U2lMVK2JwW+G8oNage/OIK1WCTR8Mo8UGB894g=,tag:sNwX6rKjZbNOOKjsBb/fGg==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:iyjaTcP66uoN1kM=,iv:IOTMqNprCE9QExLSZu0WqTR+Z+jvVCEVXqcCaDxb/Rs=,tag:MaiFLWPoenihmVUZeqBqiQ==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:ju21F83pCFdl9hlyzt6k,iv:psqXK7pY1eQ1w38VEUljxOk0PsaFhtj233/lxTg8l6w=,tag:CedWIksUjm1Xi91bcz/3tA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjU1dxUVh5SnNuWXpqZWtr\nWnh0T0JzUFpkd0piQ3Y4a1NNa2hlWkE3SkNzCkR3V1dpRGFyNXpkdE5BQ2QxcE0w\ndXFpc1g5VDY1NzNRWjdBUThHeEtiRmcKLS0tIGVhU1ZJclZIdWh2M1JWTE0vYkNv\nL1dXbHU5KzJRdG9RSFpYWVBBL083S1EKHesSH6hENKD3Xul/6RTROt400KFy01z4\neSlyOA4YaYngijseQopEkO8qFzwSDrlPswFD+C4hjYuCPs7H5xD3EQ==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:hiuk0+np0m3u4Bh9FacOWo6Pfvbm7P7CnOgSTmzlvEBy,iv:LVJSyxcwS9j15BlF4CZbsXiaevzY1AIaCeSRFaaLZME=,tag:M3SzApKZBVvvtyW9GZF2zw==,type:comment] +#ENC[AES256_GCM,data:1bupgLvwPsIis2qYaeG+tkvyfPHI59kRT378ER3UITdZLFuDEhYhQXqWfZ41IichERCbFyxKDVUo3lU=,iv:c8eMVOhLkvzYyjBy7DdSC98okIMjfYKpSeJtVzQ1wx8=,tag:qkg3f0e5HAH/x21zXAYmMA==,type:comment] +#ENC[AES256_GCM,data:I9f89sRh4xst9LEO4UTue8jT5lX9DEcCpk2jc/1dbZWS8uNFVcviG3Zuw/DAOeUkbtH5LnVDMtZUKSEX10+eLCKQvQ==,iv:L5xca2wd/E2JYddNkn1yptQllAPTPGdjOYsorA6BFBY=,tag:nKhLkTESpOiu0IE/MeTyaw==,type:comment] +#ENC[AES256_GCM,data:4CqlDjeGGRZODuoo04c+c3oflqH/83S1NBNxvNaOcWrmzAW05ewquZSgYciAB+Qfsg==,iv:jst6hagdY65fLXi1THuIiPm7uacEkr9wltw9PGjRNlc=,tag:CHMcw8sqF0s7btEXPWRAuA==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:wGdoRudbuxilORY+bkaq,iv:BghghcRql7+5YOKEc5DHa+NSaeWi5AMqvM8foeiNnFo=,tag:OyFWD0AqaFoVut5DtaB+mQ==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:27XeVUH02T6KlJRoTyTqP/8FtcyyFHI=,iv:vJa1TH8PSYA6UBrUhP6eCebR9+RMWbl1DfZ6FRTS2gI=,tag:M7ZONsxO8ZlFXd8gHI+DXw==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:GmrtsYq5gP9Dube87fW3qy4av2U/XCE=,iv:WVmMsXkF0+XVB9FtSj1bUL5VWbrWm1BDhk3Scu59/yo=,tag:c8uHm5slZcouR2JJHgt44g==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:xEsvhWuob1Q=,iv:yPuqMRfPicDsh6NDsNr15ATAWLCVbVan7MOEZUABXlQ=,tag:2vp5a77vRoB1oIA5ZjGrFg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:SibfdEoMh7fIUMyiJPVDK/aHTIyttwJ+m8Aj612FsivMsohpfN12K6hZU/4pRv4tVoa0YbF/AvTYZ/ZzVje8Og==,iv:wLBZnVsbCjw7u4rV+LDtcESBotIKACafRz4on9KJuTM=,tag:Xw7J8dDd+PtoTKmhLIuoYg==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:mPVe16C50w==,iv:3dnmPynOE5+9w5+Bhq9mriQBX5xrtR//gRP6Y4E3Fo4=,tag:RK/3YjCwivQgivgSUZo75w==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:8hLEtVz5HU7S96yHjKrwKQhYwM1yrWoMNWDAzvLaUapVLacz2J2v5VaI8N0B9S3xPvj59KCS/t2sl8p3tgBWXKUKGlH5Zmn63syft5TGlNZXHQB7PqMhG++mFuTakgZjpEO25He+,iv:6+K2tal/AAbE+ZyknxOiZiJuXdAQ/XB0FRt+6rcfmNU=,tag:ww2iw9Pov04CdYJg/tvElA==,type:str] +PGHOST=ENC[AES256_GCM,data:79Y=,iv:epLVekzj6wfAJx6CiuIQ0zNAdfr0KE7/kuGYaAsAUDQ=,tag:KDh5NspcGi8mVT0SF2Lr1w==,type:str] +PGPORT=ENC[AES256_GCM,data:GqZ4tg==,iv:Q/jGXQBxkvW+Fn1CpV/Ct0I5D3NyIztF7hKRyr/CvA4=,tag:cGa3ejKGZVZFazBCTXEmZg==,type:str] +PGUSER=ENC[AES256_GCM,data:c+n15ishLNU=,iv:RYqgXH5HJOQ0f5x4N8VD823MlRBnUz7S6fu600hIKzA=,tag:z8naOM+uK1SVYcU34jNeXg==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:rx0PGQmb0uV4/f3pfXEclWeW2esd4j4g4Dd8EMt0H0ORsy4ufxqNQ8QfLZ8Hmzlxoa/NQspyo0P2q55eDGhGtA==,iv:NxxvpxwgMtBsLRMKsinlcZLvRglJIInpJ8KKKfs/HjQ=,tag:yOi/ZP8qRol4RgOK8jTg0A==,type:str] +PGDATABASE=ENC[AES256_GCM,data:1V8QJcZfGw==,iv:zHBYWfR8wiRNHc+Gn1NjXvdCzxUPPJ8unwic5/6pLOo=,tag:s5m0YcfXwS3S6ZvxR6MGUA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:+34RPc8=,iv:x8NoFq9rJOuGZAsz0Iv2t9rcjG2ZUm2+Z6gYjeSjkjc=,tag:7kwL5UGIG/iYOSSlrnSqmA==,type:str] +#ENC[AES256_GCM,data:lki0ignZavRsBMQ6WDdGZDirvr+q4dH3vzyh5/vz,iv:1m1/bXH4YjFRR2AsZHQPbbUcAnLnSksQzGd2w/q5E4c=,tag:otQA2kpcspg4FOdu8vwMQg==,type:comment] +#ENC[AES256_GCM,data:ELqT3kitiIpjVVbcrxLK988uSojMSOk4IMHp7DM7t2EoKw==,iv:JsODv96Y/4Xs3uQfdXGB5x/3cXHjP1ftPYoyRIOeJUA=,tag:9hh4bjEDmLT/Zxim3x1tow==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:pJO5EWV/k5G49SCNrRe5Hjth,iv:DpaL0sq+2u2yXCPPHkFyAgx1nuxIFPewv8xhj9hbBP4=,tag:CBg1nhZEpqFjiftvLZKhPw==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:fmsR15SVGyXMPgqoIshY7GpOTCM=,iv:WEgGl1zGU1NTz/rZQAVoBmBHvOtT8YT400l/hzXtW7U=,tag:op3YjjxHOA6Ry4nzcmOfcQ==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:ciKTqxAEuv4KgRFFPwi4ca1ZK4j3QD6AO3HA7XxgOh6DdeHviFgkNw==,iv:TFmPUwDVrzlZ3dsUdaS0tywevJ7DjKGyEFiv1pQVJUk=,tag:+1by8MEzIyFb2Sxrb8qtvQ==,type:str] +S3_REGION=ENC[AES256_GCM,data:wK1XQzHqrKOv,iv:+u1cRYFqbBOcYAFKmLWNATDDA/3ySXIb2weWpezMkBc=,tag:k2gHVNHvJgEGgaym4hOJ7A==,type:str] +#ENC[AES256_GCM,data:CpeTr78OprRE7Oy6RSgfGVou5mUyqeFVrYgh4LPZ,iv:Upqwj0YQZ39uXQR6cJ16eNO4kH9fyXayY0kKESHAxnI=,tag:GUijXGgDeAaAgaOuiSHbuQ==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:7gRnwdHvu2yk,iv:atux9FmRbSg6eiSdGdLIs4YU1RzfKOgrPLrIH3vV1i4=,tag:5Qbc6rKTSWJBwwdTi7+9yA==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:f5HoexsgEpcyBHhuQ8Ej19jtHzkiT4wH,iv:gxbBNtnC5J067F3v13qRKTo/3PSBAvEEZDcSn0aT5ws=,tag:SSnBjullhc2rS8WAyubDtw==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:LSAMFs6ctOhka3GEOGfZOLHgxikiqvFJqgxrI4VgxJJxnA==,iv:+uDHdst8tl8A+6YmqgwufkwGeAWIsAMjoW8IsuvNBSw=,tag:GyFpxzH/WYbyteGsGL6FBQ==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:d05u,iv:3y0NUUJXsILjCJXAHSywfBOJyjTThalFyd1gFJZwVJM=,tag:kHSBSgtMLSeVUPaQCrQvAQ==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:QiAjYoX5wb2+heAHBOacUcCQs6AvOqG9jDUboHEG6Axvz3Q+07CpwKkQW1M=,iv:HxXYCG/Qk2t5vsMxlVsy7FQ5cQYJo79yodAfzwdM37I=,tag:qU1f8qbYdgyYRtRioYCpxA==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:BGnN0NOS4OXeCSgI/p7RwHnxsPU=,iv:J0ct0QsEUE+RVkwaNaBv1Cb6vEL//nfz95vldmHvA2M=,tag:K7wyNYF1/XpNG21HIk2Wyw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:vxH5OZ6sH8SBz10Act02eBNOmxBmulY2W9vF8YUi7M9TopZl+ZmQomVfah7FFNiWpnXIysVrhp3yv5H1O4n/mSVDgEkdpudHWMwmaaz/hp1vDnXNEOltu8mDDe/tvBaa9hTAEVZalxAoXQFs3yV1XDgwqgd6KwAoNNm/kRXbF4MlWXwfltyQOaFwTcx2ibLm66VSqCtxPp1MMmbOynvFXyPgl2I+4Dz+QImgMmMKgLVDQaiFuojXqbM7CPne5hyjbm3tzyiOLOM5LRS+TsIQETQm7TTappMO/1S5DVmrz7+Jn/aFiVgxICPMo+/uhbAVTk5xAV2+YuJOm4uG3/kYmsjrEoghAowCkkaTh0rt0zLka02Cu5JxXkk3LWoolGRdIl8YLCa/ROXTdZW0QHcCmhNyfr2Q+AUFZtp+QZW4qewct5aBPJdDmLvS+UOlY9lvQDJEu8URPT5TaDDp1by7PtvovFDgTu359PWaeqBOE7PAEBkHolQi08WYLzFN5beHacGAxY9Hg1gkgQxPpOx5wd/hfUODfcE7LxuXgyDoqoQ1Obc8jGFl0PYgja7NSLeQaxPXwh0Um14wDoEBlrj4LOSRAAn1BTtRIKakb99//KZ2G/5mXoGWrPcr0oZ94fzDnS4gYwG/JULfhVyAUSTAryyj3vp2St5oDjB1w3RWbDZEzcl9eDxvgN2d9PWT2NHP7stJ0aTeAJFc0SL8C65oaNjGJRyC5snWnRbTO+rVQV0E1QBemVEN7Ti+F8erizmZMYSx+/FN0dIAW76jHpH8j9JBEQAONS4HXx1IqqB0WBjvZgNZ+6ankRkXgRwjAulE2A2R1JydZp/cbiOVYY7ilLr2rKH+90XrVuxgrgI7uzX8rjwYaE6JIRPqW1Sug/UwoCPVEwWUGD57nD8Nsl2QkxOuhIUgJCMyczVFCM+FUzksjvpXKGfWq4/1egK/Wn1TXkPFL3skS5zv928OZVsc1py9UEb3hKVYwsn7TJMTdQUTzUgTh7sI6KNbDPgUxHKMNcbh6WfCrhjltWIFwIlu4o5TMZthoebFGFj/rBwZcwnHBfdWxfy8a/r05J44ZYn2LtFgBxDjVRaYNd/KkUWS84uYA8Ap+DoqSb9JK6HUeBTMGuwdmwy1sl+S/EuvguOj83eePPl3R+PukaVBsoTxXKPeFBnwmkG/bbwCmYAHyjRJMYRQfDgJP9g8CjMndIDvTwCz2c3Y3a7UPZUZ405Oiui9D8MhVNcJuSW2qjGWgZn+FZ9+87aHJ9f5dmLVW5bwSs9pdxOqBSXkSwUR9cMkDxzm1bMyZ47ZqiXOdNo05AlSouD04lyheaHDSk+vUzCh0NRpb4TOay7XHOrOOFmPUd2izsKFdu6jQvZPL6b0DaZWtxhdVUH6MmkSH0CkcFSCz5q1fPbz6ba/Z724HbYoxYNQ50uQpUWzjGhuMJF4YANaaFBi/G7MNcCuRGLUjVevx3jSAlXksa2AZXQ01+NeyVjAGTuMubQCvkzx7WTy6kMxTDrPTDtpJW3b5GX8xQC9+j9dmJOahhQ77AOHMRQNdQy2RyNDImjLGg3ximl+g9XwAv72D2aDrK+LzhOJ4QETjl99MV2mkg6Gm3YEO4tEftog3pTK5SD74ZIOZqLKa2rNNW8L9JuTRpLl88nJTOCAJwADsk/cfW3xkLcosq6aGpLzDF/WK4oYyQ+Fl1mi2sC/IFxWk1xwskrnY2YH4lyH8ZfF8OGu4dhF7gs92NFqrRbQ9jCpJvPxuZ8aTP5hWWnSGzwoHCVoDDWbM1FYkxLJXZht5W+/PTJyJZXJIXb0BkRzkCYYDxzeyjaJpJeaLG4V1IY36psy7tINxWxqeHrtwv0xvRd+JrEQZfmQ8nY3k0W5nVUJ9O/uAqQbOCEsr8et0X1fTCItyyjVVf/34NwMdUTJgJTBS1KU1U0FH9JTMZIHyCTjs5k8SQEQSxh64HBckKiZsmCnY/gcKicfIIsOI0++P8dUzbzZKSfmBb6qWOcyRe14yUTMMsJMJcYmCaD5iGidkP1vXdAzDwnMjILUG+/sVuMgAFFpRbGmguRv0U6UjfizRKqdsm7xCD4vK71Iru4FO8NBk0cGlPmqw+ZAHhO9fHMO3Bo1rlHT0/Q48gwom5iI/1zIAVOHBWPPP8qMp+9Rronjsf1g7GYdaIJaGjTFkavSNN0LYyAPpnS3JKFNFOKsIFMS8xJg+dfqfvn0Ryc+r5vb2V+9c8Vtz8SDh1XU6JHHrRz04OjlpoMSJ+Omui5m8hJP9aNWeYZMDGd5dJk5js2JChOpn5dR7/lBO+0RGqyh90zED7b2AIxhQjXLMct2ofIu/NT83NA6OH+CGCDpnng0rnDEaaJpn3z3pWPwMILtrSeE+OIqY2X/MHVDIECjsg/zK8IzhOql6BFT1CMiIfRPmzcTOtSj05bTbqR1epqRLnwMbIoBxFwp70jrT/VqNPZ1I6gttQkoJT7tMIjMUGzmt9OMStP0XUKj8IGjRnkFXw+oRPV9U/mS9W7gKGyHrqcfNdwv+RiHO1/uVoi15oxN8LlsTg0vMqCtUOkSg8pFrvmz1N/adwczt0YcgaIphV1Fp7KwL9eSGqEc7ngaMJHgU034tjQjkEXZFrrHU9DUc7qHBX8DB+/yza79okxoNH5JkIxWyfZ/Mn+pEVsxjsy2mssclGR6aK3G0AdjoPIZC1Gr0cs5uSJHKa+ENDW4e446nOIFUGorgd+cmWGge8eozYmIObtvatbsqdt/OWjik39/ckJqJcjxh72sLLLPYCMIptDvEcTEgxsK6oTPI/9ezQYJajmhOxqrAhW7sP1Vi1URYeREl8AjcrMmDaf02W6eb2xo/UFdxf8HrAAPDDFqSpF6pHudKOCYGD11iWpgPKYeqSORpEPrg3BBkdcC5Yrt3DKMnceNN4h/HmmRNYMmU/NC6+MKhk7xIwQ/GT+HZklTE+qofeQglQZsTx1txG4qQweO3AbuopfgWY3VB9BS2ndSfEt18Is/p45bBzYyOo5DTrr/qWgUBEhQau+HS0x+5ERL8loM2AJK+CzHOQYmUwSIQ4GM9VFuNevlVsTrYaGq9GviCQN38hj9YJMf4z0amzBMegQ0dPhkSqRfr+LvOYlxma1Lvhk7px1/7DeJTuEsLlu+6P7Qq+16q+mK28ioAkBNqIhi6o58Jk0fTUNtBroy+WQ5gxqIRQGvvVRvdzY4kbll0n5m5A0CXgpej0uMPuH5zfrEDfxnvQn1te9olC8mM6DPiAdKOuU1rQoDdLbd0NwdQlNUBiCZWt5y1FHBlSP49BTYMoYA+jnZ8v8wEw4oTXhbT25caUtBYOnXqt3i1We8kJ9IN7jmYXHg+EKsyhLusmadX6iYCx+LC2+7024mV9i0EQ9dqbq5mTuHk3JGyZy8wOGGHnEZnrrcCKupRW9MimIXqkxnhSMm1ysyjQUp5Z+pGVjy4gTKiRRskYS31vaZx0lPkcBwLZbD+P3NeyM9emMTAA+wXB9kDVjeEjWdCwIINhB18z2my4Hx9SjgYclBpZ2wrGEaeQ/Po++SePmxHSMEeW/qopzHcz/yUbJAFwHbF8NVWMhUw0ivU7EaLE3TgmiWkqe8k5y7VbrG63i6338r1DoLbp7tS9dF0xxjJ38a50a2bAuXMc8ajaqsacP1BiyxiMPrHQr/s5NhQli0K3E74BNs3mtt73SuxmZQlU/jwgS0GnO17XAhDiBRyrvGXVVRF1XmbOvInVP/gDemMhpx9e/Kwpu/DH4MVveC0EwrIDKVU3rGGlQEOwg7dJ1bysnYNTvjIC3b9KLGJcZrUqr63B1ccV2luXASzmjaOxzfh+iYr0y0iS/Bfm81PMiJh9Q0lpIadK+xqEVsXxVyOq84QzZUeyMF7/zGuVWWFi2hjvCTM1IaipieF7Z8nNYJHn2EZROd9oWUbTXqU8bzSqoFUym9pDOjR2poUAsra57OgKsChD8yDD+jekHCMTXAO9dLpnTeMjWkfCSJ2BK/L3VBfa9I1uIozaR7ydjOIrjxor/YrxutD07eaHho2X6flRNLjtx6wxk3mVCzEjGmYZuGK5qf8MeoP3YQ/Zixfkk0bxSg+KKWWg+lOsXigbljTJTQ6w+SRgE/UoReK1RXJzktnEBL6XluwshyWyX9C8BJTjCHrp7wEA==,iv:KPiPsGHave83YfdhurZZUL+NJvN40jIFJTcoEg8LISk=,tag:EQXBzCup14YxAelqIo0LNg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:sWdPyvYFuw==,iv:jTJvGRern3j3GIF8ZJLDuUGWV+5+aHWYdlSRCzgXpD4=,tag:uGxjOK7Q/r/OZmuHUzoQ6A==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:KtOIwryGZaxjGq+5YqaRx6yPGfDoqlGprNKcKIVWpSrTyOFZpJP8GZtkdRk4tatetjJZM/vVjIgIS1VIuM9LfA==,iv:SBgn0RAVmORiH34Q+mWcilhAZrmBhcnjHfIbor/Uk8Q=,tag:BlzTwvh6uqubWVikAD83+w==,type:str] +API_KEY=ENC[AES256_GCM,data:i2Hy8dgRZqF7nCVHTvrzfFfGocUQCHUSJRlMl3GmkkI=,iv:CU4XsyxBvcnMazEjwEebozYCBgxQz7KvUvFqRcrWvo4=,tag:KpKAlpnngtkebbKTRyS/tg==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:S045Bwi8U/p5V4Zccpw5zn+aVzu5LUHW,iv:tIOnZWL310aeSxkp2KentgJjc8HXR3G2V32s/mlYrVg=,tag:YbCv097NEjVQkNU+MS3IYg==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:q4oIMJ3K7jYLYSQ=,iv:CAlm03LqtDha3A7UQLKpd3eDyf7J9x1q7c/sze9GxkE=,tag:S+fiQjfeDIuiAiazAn3/2w==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:khlOo7BfkxpFW1zz4et3,iv:4KKEwo+CkPhDr4GP/OAQYlQupEA+owhY1O32LWnC46c=,tag:mwZEJ/WPufh6ke3oJ2mj2w==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpaGxTUEdlTEJ1TVF4N2Uz\ndXRDUEd4SkNqN1dZek1iZ05ac2Y1QzZkN3lBCjQyS251TW42S2xucXpKcFRSZkZk\nV3NpSE9VSytwUFJyQmxkdkIrQUw2MEUKLS0tIGQzMkpOTGs1WVVKenlORDdiR2Ev\ncE11dGljRnVNck0xWmM4cFZYUGtaOW8KuMD+8uhX9dk2BMHCtoOY/9VLbDPNmhKE\nuXUcmdK62k666t6mgq486JT1xqBYWigO6LxkIZftcEDaL+JQ7b44BQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHYmkySGtvQkw1UzFpVXRY\nRGVEc0xTYTFCNHU3SDNYQ1VWZEJaUFN0RG1NCkM5Y3pKeHFyZVppN3FCUDZRc0NZ\nUzV5VURlc000bmZGQ3BoOHE3alNBbGMKLS0tIGU3bTBUTCsvTGdiT1djOUF4QUJ4\nc3ZJcTd3Z0txQWRXc1hqeURKbkxaR00KYsKb+5J1wJYE1vwUnebI1Ulz5hoZ4NoA\nNZ12fJ8LqgUqybpoHudFW37SMl1PdAfiiM6vEjK1AUuCWzEqbqaPRQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPYzJVMDEzT1IvaUEzSWlG\nZDZmc3FodFJ1QUFNcW1uYk1QOGdsSVdHT1JzCnE1WkZySUhSNjNDS0ZuV3ZNeDdB\nb2IzbHM1MHdSdzR0b01iM1p1SWREemcKLS0tIGxuYmhnR2J4ZU1rQTVMTndBS3hm\nbmR4SWpqS0s2VTgzeVludmF3c0FjemsKRtghUgG1UDZVXili/5BOuX29Ofr31Eqo\novUOtf5xd7zWrDymYipX7A6Ty2Ys/NSkMC9qtLM9Z9YLW466LsLdqw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0ZGxRTy94ZEZmUjNwZEtF\nWEgxNW1rcnlFc3lERFUraHZubU9oSFhWOWdnCjRyWG9hUDdsRDFWN3lsU1RiekJ6\nVzl3dXM1eVZySXkxNVpWdGtMNCtiSjgKLS0tIEpCZXc0NTZaekcySmV4S3RRSVRD\nWmxKdE9hakhaS0xON0psMHlqNFpxU1kKtLsp7cge+FtHDSc9Jnh96lcarW3QqGoE\nvma3wl865VjTSKz4Pt1pDBtrr00BNUtUWwknvOcpBRyjE/LjqCdgjg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEVG1TL1grcU9ZT3VqNVd4\nUlNBTGsxYTFhZ1NyVFA4VElRTEp3Ynp1U2l3CnZteUlvZ0EzWjFrSHdWMk5kT0Zn\nVmdwTWppSnoxK01yaXEyVEc2RHgyMmsKLS0tIDh6Wno5cng1VE9JNytIYmE3WUhx\ndm02OGNrTC9EM3p3M0JHSndPOWhQNncK2CUcT0wK1l1NSKhyp10ZsU/QRPCzevH5\nRU4ieLERLziIjv2RCg8QDRTI+Ui2dtGtfo21mCnkMlW/s+Q6brSx5Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3Qmg0aXNlVW5hc3VwbFRY\nWG1rbWtWYUJmNWVRZzBrVldPb3VzM3hKY2hjClFwWTdqck5RZXdvd1NKNklnSm0w\ncHpZbnMxbDRZZUVBTHc0Yy9FazZhWW8KLS0tIDVXaVRtUDAzRkZ1cnRtNGMyTlJN\nUGJmdW5CQk1uQUJiMmtvM21wenhlQmsKAXRcst/kjCmj44ETDdrkIJ8XNcURJwwg\n5ud026zAq92iYYPdDmsO0juvX1GstYM4jYnS3g97s5yEzeMS3JqUyA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuQ1pEdzE1R0N0SlZ0ZFNT\nYjFPZ1VzcjcwTWVieWJsNVhyRTNnbE43cno0ClJiZjgxUlJmUWlWNTJNcHZLVHNy\nUGwrUkdmRXhLcTRUZkwzUEl5NURCMVUKLS0tICtDYmlvb0RPeHp1cUxwWk5Qd2N3\ndUV4UmFrR0VuSEc0RHhESGZhK3ZEeWMKGCk1J1wRJgS3b7ZBNf1/oiqa2phTKF+M\ntyBoaW8ynHcQccDjAoS/RkmY6FUrHmcZP+z8mtrkrwI51j1KpUU9eA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwMjIzeWlCMWpISGtVcVFo\nWjVzVFlwV3hmL0VEb1hRM1NiT0F3Z2o4R25vCitIYy82Y0JKL2lQMTVGcS9YUXF6\nc2E5QTJtSCt1L1p3RDRHdVRpQnlITWsKLS0tIHluc2k1SzhQNjZvaW5rRzkwUEtm\nSzM4OVdrdUlEWDBFRXBBZURTSEJ0M1EKmszWeFhI0kvBrbKR8m/rPLERkdHYJ5tW\nIdmFlG4b2ryqC6lxBOhu5OFoAvhw5PfNjAqz2GSRT9sSsBVHLBTREg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBReWYrZHZWS1VVZkVZQ2Zw\nMVJhTm1pSXBoNkhVSWZlbUtnUFpJdDFhVUJjCklBb3QrWnZuZ0VNaWlJa3pOV2ND\nWVpod0puYUlLYzlocXhiNTNqcy9GWlUKLS0tIFUySG9uaFh2cW1pbjdqZkhJSlZr\nTW5hNWlHYjUyMGFoa2tUYngzNXA3cjgKn1wpHq3/xQQ5wtiM2KjzVZrwa/BLCUOQ\nlXmnNJ6xty7vE10I8HSFH25xEDhDpQ53NgOZdH9yUfWJJoBm99Fz4g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwZmppY2tWZDd3c1ZwQmhE\nd3M3YnpNbHZ3OVExY2JvZ0h0U2d6eVpVS0RBCmN5WTg2UFVUSEtBckNWTGdPQWxR\naTNNb0x5dGhUZXZsQ0czVDk0UUw4dHcKLS0tIHpDNy81ays5dG5PZnVIWVU3Q25N\ndW9MeWsxdENmbVgrU25DYmc5LzFObU0KUWtoT9kKyv+xUSsn52Ouidi8mBgnXFYl\n+4CxRxY+GRt6gUsg/TYeDjM1yBCvOaUFQYSF0z4EGZ++viuCI8/z0A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNR2EyZjlBMEZQeDlOcy8z\nemFKSWovVU05Z1R0Q2wrTytrQWxEY2RmOW04Ck9hNW5sUW9iVENMdkhacUsyZ2sz\nS3BaUnZ4UWduSVdsTWhqR3AwSkliU28KLS0tIHMvaE00Zzd0VmNKSzFtYmYwMzhq\nSGsvTlgycVNCZ2Z4MmdiZ3NkekxBN0UKaKzeBvhO7Icj3L9hXsXdjSTxJJ2Gx+KF\nvZzMOZay+9m9Y84VOoCgK1Fy1lJUFR4KkgAASiWc7dE5Kps7FFua9A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhNnRVTllrU2dFUkRjdndZ\ncDMyczZqUXEwdjR4TFlwMGpSWm1uc0dJbjNJCmpFRXdiNUUwM3hvUm1UN0I3M1Fq\nVmF3Q2xlZnp1K0IzU1I1aHhBNUNIMzQKLS0tIFRDemtWc2NzZ0hkRGp4UVVqdXpU\nbEpSaDRWTGdkOVVGVmJtWkNCZE5YWncKXWm6ywwekEcHSKkafpyY4ehwHmTaBNEX\ntQ4bcX/dLoyEMgBnn3d1C8qCkGaX28rWuMHcugxlMkxs+apyBccghg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ekVnSURGYWVHaWdLaGJ4\nU2VNdEZUeDNITER6K0RWdkk1UmV6L2c2cHhBCmlQU0x5V0RnU0FOS0ZuQ0I3RnJm\nNkVFaFpOK1ZCaDVsTHdEZWMvYW5yZU0KLS0tIEhhdnBUSjh5VStDVmJMUEs4RzJI\nYXBOajZjUDYyb1ZpVUxsOEl3Mzc0K0EKwiYtKHYs2xcX5YRRhz/ilJP3WaXLA5bb\nfbpkepHGRnpnM79P3mJWrdfGVrmvoYnIwLlUHAjas8RBQTnzWUdEZg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHRmM1d2Fab3kzS2R5bXN2\nVmQ0Skh2VUI5SnQxYmJXSGFNMW44Mm5uMXh3CmRVWmJPeDcwWGZZZ3VZK252UFlH\nRU1Iak0yeEdGU3dBSnFXc0dDcUZyKzQKLS0tIEVQakY1ZnBEdDhQcStiYzJERy9q\nRkE5TE8yRWc0S1A4Z3dhVzZPU1Eyd2sKJnSZzuVE5EevgGgjvsezcnsSfTGqgXF1\nESLHK5zO3nSGmducQIpLtUVMADtD8kLsc27Ng4lV4eAq7GMTRFVVBg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmNkxyOCsrUTRJUDJGS2U0\nTFowbEFmaHd2eHJaR1hvdHNKZEExTEVScEh3Cm9uWVpEQjJmT0Q3bWV2bkFjdU1u\nRWhGMXhqTWNiVU15TFNjMVdMVWE5MWsKLS0tIHV1QWMwNE92bnRKcHRrZUNUejkz\nR0xUUFBnd1BiZ0N2cFBuK1paN1pnTncKjlzdQXgaw5hI6++2zWD+d9BmQnGyowaI\n5xEubjsWIPFgw8uELR1i/73+upWt/b/J7MnRL8o2JN3FkP86w5UUtQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T14:56:05Z -sops_mac=ENC[AES256_GCM,data:A5GQxrspNEngUTfqydNRBibwJdoFO4kGXbcj4deXW1SHW/JW3IR1sXlfNQ6ew9aEaYUNTyM0i+EM0qZHKnaQOnhwCcvEhaY3FzXpZ7c4o7hYBDvYqpAHurXr2UHi6iPlZRN1kidQ9klq5Vt8jXgX1N6dVrP1eBAEmsLWxpSJfSs=,iv:Ea+k8F1AMa5nh+H1EnlNVIveDJPXw075qkFZBX6gu/c=,tag:8qKrqH1J2n8bGj+ta7DV3A==,type:str] +sops_lastmodified=2026-04-23T15:33:55Z +sops_mac=ENC[AES256_GCM,data:2RdOfSAXBEB5kATqIGJhXk6kUkgve/hOv1Ag80RyR6m8Ec+Zd5cCNuuypJrEOAGKtx896XaS9AH+jugjO2rCQVd9diQKnibVNd+9dqA5WAEh0FnWYFun0HChkiXda0ycGZFkTR82EcYafDXNt5uj05pW6WQK0jSNhtghSjeiMLQ=,iv:j2+h5hnY7g9IHKj1cAFr5O1q2gsfQ3tQeRN5B4ubKKs=,tag:/4eH00p8/kfOeNLYM8FC7g==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From 207ecef756547b9a12fa20843d48cdbe55051c56 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 17:53:16 +0200 Subject: [PATCH 119/153] fix: correct .env --- .env.docker-compose.dev | 8 ++++---- core/.env.template | 2 -- 2 files changed, 4 insertions(+), 6 deletions(-) delete mode 100644 core/.env.template diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index 017fef7222..1fa6c81bbc 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -32,14 +32,14 @@ DATABASE_URL=postgresql://postgres:postgres@db:5432/postgres JWT_SECRET=xxx -MAILGUN_SMTP_PASSWORD=xxx +SMTP_PASSWORD=xxx +SMTP_USERNAME=omitted +SMTP_HOST=inbucket +SMTP_PORT=2500 GCLOUD_KEY_FILE=xxx -MAILGUN_SMTP_HOST=inbucket -MAILGUN_SMTP_PORT=2500 # this needs to be localhost:54324 instead of inbucket:9000 bc we are almost always running the integration tests from outside the docker network INBUCKET_URL=http://localhost:54324 -MAILGUN_SMTP_USERNAME=omitted OTEL_SERVICE_NAME=core.core PUBPUB_URL=http://localhost:3000 API_KEY=xxx diff --git a/core/.env.template b/core/.env.template deleted file mode 100644 index 264b00e44b..0000000000 --- a/core/.env.template +++ /dev/null @@ -1,2 +0,0 @@ -OTEL_SERVICE_NAME="pubpub-v7-dev" # should be shared across components but not environments -HONEYCOMB_API_KEY="" From e974f5ddc0d58205ce7dd430893a65b6fdbec767 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 18:10:26 +0200 Subject: [PATCH 120/153] fix: require smtp from --- .env.docker-compose.dev | 2 + core/.env.development | 5 +- core/.env.docker | 1 - core/lib/env/env.ts | 4 +- core/lib/server/email.tsx | 4 +- core/package.json | 9 ++-- infra/.env.enc | 96 ++++++++++++++++++++------------------- infra/.env.preview.enc | 88 +++++++++++++++++------------------ infra/.env.sandbox.enc | 88 +++++++++++++++++------------------ 9 files changed, 154 insertions(+), 143 deletions(-) delete mode 100644 core/.env.docker diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index 1fa6c81bbc..55d72dbc18 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -36,6 +36,8 @@ SMTP_PASSWORD=xxx SMTP_USERNAME=omitted SMTP_HOST=inbucket SMTP_PORT=2500 +SMTP_FROM=dev@pubstar.org +SMTP_FROM_NAME=Pubstar Team GCLOUD_KEY_FILE=xxx # this needs to be localhost:54324 instead of inbucket:9000 bc we are almost always running the integration tests from outside the docker network diff --git a/core/.env.development b/core/.env.development index 584950972f..c15ffff219 100644 --- a/core/.env.development +++ b/core/.env.development @@ -30,4 +30,7 @@ SITE_BUILDER_ENDPOINT=http://localhost:4000 VALKEY_HOST='localhost' -FLAGS=show-test-only-tools:on \ No newline at end of file +FLAGS=show-test-only-tools:on + +SMTP_FROM=dev@pubstar.org +SMTP_FROM_NAME=Pubstar Team \ No newline at end of file diff --git a/core/.env.docker b/core/.env.docker deleted file mode 100644 index d7f38fe8ce..0000000000 --- a/core/.env.docker +++ /dev/null @@ -1 +0,0 @@ -DATABASE_URL=postgresql://${PGUSER}:${PGPASSWORD}@${PGHOST}:${PGPORT}/${PGDATABASE} diff --git a/core/lib/env/env.ts b/core/lib/env/env.ts index 0dee395071..ec3c139bed 100644 --- a/core/lib/env/env.ts +++ b/core/lib/env/env.ts @@ -37,8 +37,8 @@ export const env = createEnv({ SMTP_USERNAME: selfHostedOptional(z.string()), SMTP_HOST: selfHostedOptional(z.string()), SMTP_PORT: selfHostedOptional(z.string()), - SMTP_FROM: z.string().optional(), - SMTP_FROM_NAME: z.string().optional(), + SMTP_FROM: selfHostedOptional(z.string().email()), + SMTP_FROM_NAME: selfHostedOptional(z.string()), INSECURE_SENDMAIL: z.string().optional(), SMTP_SECURITY: z.enum(["ssl", "tls", "none"]).optional(), OTEL_SERVICE_NAME: z.string().optional(), diff --git a/core/lib/server/email.tsx b/core/lib/server/email.tsx index 0ca84925ff..7d1e16b50d 100644 --- a/core/lib/server/email.tsx +++ b/core/lib/server/email.tsx @@ -23,8 +23,8 @@ type RequiredOptions = Required> & XOR<{ html: string }, { text: string }> export const DEFAULT_OPTIONS = { - from: env.SMTP_FROM ?? "hello@pubpub.org", - name: env.SMTP_FROM_NAME ?? "PubPub Team", + from: env.SMTP_FROM, + name: env.SMTP_FROM_NAME } as const function buildSend(emailPromise: () => Promise) { diff --git a/core/package.json b/core/package.json index 9f35e8ad21..939331f58c 100644 --- a/core/package.json +++ b/core/package.json @@ -10,7 +10,6 @@ "db:migrate-dev": "pnpm migrate-dev", "db:migrate-deploy": "pnpm migrate-deploy", "db:migrate-diff": "pnpm migrate-diff", - "db:migrate-docker": "pnpm migrate-docker", "db:prisma": "pnpm prisma", "db:studio": "pnpm prisma studio", "db:generate-history-table": "pnpm exec tsx prisma/scripts/history-tables/generate-history-table.mts", @@ -32,7 +31,6 @@ "migrate-dev": "dotenv -e .env.local -e .env.development prisma migrate dev && tsx prisma/consolidate-triggers.ts && pnpm --filter db make-kysely-types", "migrate-deploy": "dotenv -e .env.local -e .env.development prisma migrate deploy", "migrate-diff": "dotenv -e .env.local -e .env.development prisma migrate diff", - "migrate-docker": "dotenv -e .env.docker -- prisma migrate deploy", "prisma": "dotenv -e .env.local -e .env.development prisma", "prisma-studio": "dotenv -e .env.local -e .env.development prisma studio", "start": "next start", @@ -50,7 +48,10 @@ "storybook": "SKIP_VALIDATION=true PUBPUB_URL=http://localhost:6006 storybook dev -p 6006 --no-open", "build-storybook": "SKIP_VALIDATION=true storybook build" }, - "files": [".next", "public"], + "files": [ + ".next", + "public" + ], "prisma": { "__comment": "The #register-loader goes to the correct file based on the .imports setting below", "seed": "tsx --import #register-loader prisma/seed.ts" @@ -232,4 +233,4 @@ "imports": { "#register-loader": "./prisma/seed/stubs/register-loader.js" } -} +} \ No newline at end of file diff --git a/infra/.env.enc b/infra/.env.enc index 37d2511dd4..3226007568 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,57 +1,59 @@ -#ENC[AES256_GCM,data:hiuk0+np0m3u4Bh9FacOWo6Pfvbm7P7CnOgSTmzlvEBy,iv:LVJSyxcwS9j15BlF4CZbsXiaevzY1AIaCeSRFaaLZME=,tag:M3SzApKZBVvvtyW9GZF2zw==,type:comment] -#ENC[AES256_GCM,data:1bupgLvwPsIis2qYaeG+tkvyfPHI59kRT378ER3UITdZLFuDEhYhQXqWfZ41IichERCbFyxKDVUo3lU=,iv:c8eMVOhLkvzYyjBy7DdSC98okIMjfYKpSeJtVzQ1wx8=,tag:qkg3f0e5HAH/x21zXAYmMA==,type:comment] -#ENC[AES256_GCM,data:I9f89sRh4xst9LEO4UTue8jT5lX9DEcCpk2jc/1dbZWS8uNFVcviG3Zuw/DAOeUkbtH5LnVDMtZUKSEX10+eLCKQvQ==,iv:L5xca2wd/E2JYddNkn1yptQllAPTPGdjOYsorA6BFBY=,tag:nKhLkTESpOiu0IE/MeTyaw==,type:comment] -#ENC[AES256_GCM,data:4CqlDjeGGRZODuoo04c+c3oflqH/83S1NBNxvNaOcWrmzAW05ewquZSgYciAB+Qfsg==,iv:jst6hagdY65fLXi1THuIiPm7uacEkr9wltw9PGjRNlc=,tag:CHMcw8sqF0s7btEXPWRAuA==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:wGdoRudbuxilORY+bkaq,iv:BghghcRql7+5YOKEc5DHa+NSaeWi5AMqvM8foeiNnFo=,tag:OyFWD0AqaFoVut5DtaB+mQ==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:27XeVUH02T6KlJRoTyTqP/8FtcyyFHI=,iv:vJa1TH8PSYA6UBrUhP6eCebR9+RMWbl1DfZ6FRTS2gI=,tag:M7ZONsxO8ZlFXd8gHI+DXw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:GmrtsYq5gP9Dube87fW3qy4av2U/XCE=,iv:WVmMsXkF0+XVB9FtSj1bUL5VWbrWm1BDhk3Scu59/yo=,tag:c8uHm5slZcouR2JJHgt44g==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:xEsvhWuob1Q=,iv:yPuqMRfPicDsh6NDsNr15ATAWLCVbVan7MOEZUABXlQ=,tag:2vp5a77vRoB1oIA5ZjGrFg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:SibfdEoMh7fIUMyiJPVDK/aHTIyttwJ+m8Aj612FsivMsohpfN12K6hZU/4pRv4tVoa0YbF/AvTYZ/ZzVje8Og==,iv:wLBZnVsbCjw7u4rV+LDtcESBotIKACafRz4on9KJuTM=,tag:Xw7J8dDd+PtoTKmhLIuoYg==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:mPVe16C50w==,iv:3dnmPynOE5+9w5+Bhq9mriQBX5xrtR//gRP6Y4E3Fo4=,tag:RK/3YjCwivQgivgSUZo75w==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:8hLEtVz5HU7S96yHjKrwKQhYwM1yrWoMNWDAzvLaUapVLacz2J2v5VaI8N0B9S3xPvj59KCS/t2sl8p3tgBWXKUKGlH5Zmn63syft5TGlNZXHQB7PqMhG++mFuTakgZjpEO25He+,iv:6+K2tal/AAbE+ZyknxOiZiJuXdAQ/XB0FRt+6rcfmNU=,tag:ww2iw9Pov04CdYJg/tvElA==,type:str] -PGHOST=ENC[AES256_GCM,data:79Y=,iv:epLVekzj6wfAJx6CiuIQ0zNAdfr0KE7/kuGYaAsAUDQ=,tag:KDh5NspcGi8mVT0SF2Lr1w==,type:str] -PGPORT=ENC[AES256_GCM,data:GqZ4tg==,iv:Q/jGXQBxkvW+Fn1CpV/Ct0I5D3NyIztF7hKRyr/CvA4=,tag:cGa3ejKGZVZFazBCTXEmZg==,type:str] -PGUSER=ENC[AES256_GCM,data:c+n15ishLNU=,iv:RYqgXH5HJOQ0f5x4N8VD823MlRBnUz7S6fu600hIKzA=,tag:z8naOM+uK1SVYcU34jNeXg==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:rx0PGQmb0uV4/f3pfXEclWeW2esd4j4g4Dd8EMt0H0ORsy4ufxqNQ8QfLZ8Hmzlxoa/NQspyo0P2q55eDGhGtA==,iv:NxxvpxwgMtBsLRMKsinlcZLvRglJIInpJ8KKKfs/HjQ=,tag:yOi/ZP8qRol4RgOK8jTg0A==,type:str] -PGDATABASE=ENC[AES256_GCM,data:1V8QJcZfGw==,iv:zHBYWfR8wiRNHc+Gn1NjXvdCzxUPPJ8unwic5/6pLOo=,tag:s5m0YcfXwS3S6ZvxR6MGUA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:+34RPc8=,iv:x8NoFq9rJOuGZAsz0Iv2t9rcjG2ZUm2+Z6gYjeSjkjc=,tag:7kwL5UGIG/iYOSSlrnSqmA==,type:str] -#ENC[AES256_GCM,data:lki0ignZavRsBMQ6WDdGZDirvr+q4dH3vzyh5/vz,iv:1m1/bXH4YjFRR2AsZHQPbbUcAnLnSksQzGd2w/q5E4c=,tag:otQA2kpcspg4FOdu8vwMQg==,type:comment] -#ENC[AES256_GCM,data:ELqT3kitiIpjVVbcrxLK988uSojMSOk4IMHp7DM7t2EoKw==,iv:JsODv96Y/4Xs3uQfdXGB5x/3cXHjP1ftPYoyRIOeJUA=,tag:9hh4bjEDmLT/Zxim3x1tow==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:pJO5EWV/k5G49SCNrRe5Hjth,iv:DpaL0sq+2u2yXCPPHkFyAgx1nuxIFPewv8xhj9hbBP4=,tag:CBg1nhZEpqFjiftvLZKhPw==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:fmsR15SVGyXMPgqoIshY7GpOTCM=,iv:WEgGl1zGU1NTz/rZQAVoBmBHvOtT8YT400l/hzXtW7U=,tag:op3YjjxHOA6Ry4nzcmOfcQ==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:ciKTqxAEuv4KgRFFPwi4ca1ZK4j3QD6AO3HA7XxgOh6DdeHviFgkNw==,iv:TFmPUwDVrzlZ3dsUdaS0tywevJ7DjKGyEFiv1pQVJUk=,tag:+1by8MEzIyFb2Sxrb8qtvQ==,type:str] -S3_REGION=ENC[AES256_GCM,data:wK1XQzHqrKOv,iv:+u1cRYFqbBOcYAFKmLWNATDDA/3ySXIb2weWpezMkBc=,tag:k2gHVNHvJgEGgaym4hOJ7A==,type:str] -#ENC[AES256_GCM,data:CpeTr78OprRE7Oy6RSgfGVou5mUyqeFVrYgh4LPZ,iv:Upqwj0YQZ39uXQR6cJ16eNO4kH9fyXayY0kKESHAxnI=,tag:GUijXGgDeAaAgaOuiSHbuQ==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:7gRnwdHvu2yk,iv:atux9FmRbSg6eiSdGdLIs4YU1RzfKOgrPLrIH3vV1i4=,tag:5Qbc6rKTSWJBwwdTi7+9yA==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:f5HoexsgEpcyBHhuQ8Ej19jtHzkiT4wH,iv:gxbBNtnC5J067F3v13qRKTo/3PSBAvEEZDcSn0aT5ws=,tag:SSnBjullhc2rS8WAyubDtw==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:LSAMFs6ctOhka3GEOGfZOLHgxikiqvFJqgxrI4VgxJJxnA==,iv:+uDHdst8tl8A+6YmqgwufkwGeAWIsAMjoW8IsuvNBSw=,tag:GyFpxzH/WYbyteGsGL6FBQ==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:d05u,iv:3y0NUUJXsILjCJXAHSywfBOJyjTThalFyd1gFJZwVJM=,tag:kHSBSgtMLSeVUPaQCrQvAQ==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:QiAjYoX5wb2+heAHBOacUcCQs6AvOqG9jDUboHEG6Axvz3Q+07CpwKkQW1M=,iv:HxXYCG/Qk2t5vsMxlVsy7FQ5cQYJo79yodAfzwdM37I=,tag:qU1f8qbYdgyYRtRioYCpxA==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:BGnN0NOS4OXeCSgI/p7RwHnxsPU=,iv:J0ct0QsEUE+RVkwaNaBv1Cb6vEL//nfz95vldmHvA2M=,tag:K7wyNYF1/XpNG21HIk2Wyw==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:vxH5OZ6sH8SBz10Act02eBNOmxBmulY2W9vF8YUi7M9TopZl+ZmQomVfah7FFNiWpnXIysVrhp3yv5H1O4n/mSVDgEkdpudHWMwmaaz/hp1vDnXNEOltu8mDDe/tvBaa9hTAEVZalxAoXQFs3yV1XDgwqgd6KwAoNNm/kRXbF4MlWXwfltyQOaFwTcx2ibLm66VSqCtxPp1MMmbOynvFXyPgl2I+4Dz+QImgMmMKgLVDQaiFuojXqbM7CPne5hyjbm3tzyiOLOM5LRS+TsIQETQm7TTappMO/1S5DVmrz7+Jn/aFiVgxICPMo+/uhbAVTk5xAV2+YuJOm4uG3/kYmsjrEoghAowCkkaTh0rt0zLka02Cu5JxXkk3LWoolGRdIl8YLCa/ROXTdZW0QHcCmhNyfr2Q+AUFZtp+QZW4qewct5aBPJdDmLvS+UOlY9lvQDJEu8URPT5TaDDp1by7PtvovFDgTu359PWaeqBOE7PAEBkHolQi08WYLzFN5beHacGAxY9Hg1gkgQxPpOx5wd/hfUODfcE7LxuXgyDoqoQ1Obc8jGFl0PYgja7NSLeQaxPXwh0Um14wDoEBlrj4LOSRAAn1BTtRIKakb99//KZ2G/5mXoGWrPcr0oZ94fzDnS4gYwG/JULfhVyAUSTAryyj3vp2St5oDjB1w3RWbDZEzcl9eDxvgN2d9PWT2NHP7stJ0aTeAJFc0SL8C65oaNjGJRyC5snWnRbTO+rVQV0E1QBemVEN7Ti+F8erizmZMYSx+/FN0dIAW76jHpH8j9JBEQAONS4HXx1IqqB0WBjvZgNZ+6ankRkXgRwjAulE2A2R1JydZp/cbiOVYY7ilLr2rKH+90XrVuxgrgI7uzX8rjwYaE6JIRPqW1Sug/UwoCPVEwWUGD57nD8Nsl2QkxOuhIUgJCMyczVFCM+FUzksjvpXKGfWq4/1egK/Wn1TXkPFL3skS5zv928OZVsc1py9UEb3hKVYwsn7TJMTdQUTzUgTh7sI6KNbDPgUxHKMNcbh6WfCrhjltWIFwIlu4o5TMZthoebFGFj/rBwZcwnHBfdWxfy8a/r05J44ZYn2LtFgBxDjVRaYNd/KkUWS84uYA8Ap+DoqSb9JK6HUeBTMGuwdmwy1sl+S/EuvguOj83eePPl3R+PukaVBsoTxXKPeFBnwmkG/bbwCmYAHyjRJMYRQfDgJP9g8CjMndIDvTwCz2c3Y3a7UPZUZ405Oiui9D8MhVNcJuSW2qjGWgZn+FZ9+87aHJ9f5dmLVW5bwSs9pdxOqBSXkSwUR9cMkDxzm1bMyZ47ZqiXOdNo05AlSouD04lyheaHDSk+vUzCh0NRpb4TOay7XHOrOOFmPUd2izsKFdu6jQvZPL6b0DaZWtxhdVUH6MmkSH0CkcFSCz5q1fPbz6ba/Z724HbYoxYNQ50uQpUWzjGhuMJF4YANaaFBi/G7MNcCuRGLUjVevx3jSAlXksa2AZXQ01+NeyVjAGTuMubQCvkzx7WTy6kMxTDrPTDtpJW3b5GX8xQC9+j9dmJOahhQ77AOHMRQNdQy2RyNDImjLGg3ximl+g9XwAv72D2aDrK+LzhOJ4QETjl99MV2mkg6Gm3YEO4tEftog3pTK5SD74ZIOZqLKa2rNNW8L9JuTRpLl88nJTOCAJwADsk/cfW3xkLcosq6aGpLzDF/WK4oYyQ+Fl1mi2sC/IFxWk1xwskrnY2YH4lyH8ZfF8OGu4dhF7gs92NFqrRbQ9jCpJvPxuZ8aTP5hWWnSGzwoHCVoDDWbM1FYkxLJXZht5W+/PTJyJZXJIXb0BkRzkCYYDxzeyjaJpJeaLG4V1IY36psy7tINxWxqeHrtwv0xvRd+JrEQZfmQ8nY3k0W5nVUJ9O/uAqQbOCEsr8et0X1fTCItyyjVVf/34NwMdUTJgJTBS1KU1U0FH9JTMZIHyCTjs5k8SQEQSxh64HBckKiZsmCnY/gcKicfIIsOI0++P8dUzbzZKSfmBb6qWOcyRe14yUTMMsJMJcYmCaD5iGidkP1vXdAzDwnMjILUG+/sVuMgAFFpRbGmguRv0U6UjfizRKqdsm7xCD4vK71Iru4FO8NBk0cGlPmqw+ZAHhO9fHMO3Bo1rlHT0/Q48gwom5iI/1zIAVOHBWPPP8qMp+9Rronjsf1g7GYdaIJaGjTFkavSNN0LYyAPpnS3JKFNFOKsIFMS8xJg+dfqfvn0Ryc+r5vb2V+9c8Vtz8SDh1XU6JHHrRz04OjlpoMSJ+Omui5m8hJP9aNWeYZMDGd5dJk5js2JChOpn5dR7/lBO+0RGqyh90zED7b2AIxhQjXLMct2ofIu/NT83NA6OH+CGCDpnng0rnDEaaJpn3z3pWPwMILtrSeE+OIqY2X/MHVDIECjsg/zK8IzhOql6BFT1CMiIfRPmzcTOtSj05bTbqR1epqRLnwMbIoBxFwp70jrT/VqNPZ1I6gttQkoJT7tMIjMUGzmt9OMStP0XUKj8IGjRnkFXw+oRPV9U/mS9W7gKGyHrqcfNdwv+RiHO1/uVoi15oxN8LlsTg0vMqCtUOkSg8pFrvmz1N/adwczt0YcgaIphV1Fp7KwL9eSGqEc7ngaMJHgU034tjQjkEXZFrrHU9DUc7qHBX8DB+/yza79okxoNH5JkIxWyfZ/Mn+pEVsxjsy2mssclGR6aK3G0AdjoPIZC1Gr0cs5uSJHKa+ENDW4e446nOIFUGorgd+cmWGge8eozYmIObtvatbsqdt/OWjik39/ckJqJcjxh72sLLLPYCMIptDvEcTEgxsK6oTPI/9ezQYJajmhOxqrAhW7sP1Vi1URYeREl8AjcrMmDaf02W6eb2xo/UFdxf8HrAAPDDFqSpF6pHudKOCYGD11iWpgPKYeqSORpEPrg3BBkdcC5Yrt3DKMnceNN4h/HmmRNYMmU/NC6+MKhk7xIwQ/GT+HZklTE+qofeQglQZsTx1txG4qQweO3AbuopfgWY3VB9BS2ndSfEt18Is/p45bBzYyOo5DTrr/qWgUBEhQau+HS0x+5ERL8loM2AJK+CzHOQYmUwSIQ4GM9VFuNevlVsTrYaGq9GviCQN38hj9YJMf4z0amzBMegQ0dPhkSqRfr+LvOYlxma1Lvhk7px1/7DeJTuEsLlu+6P7Qq+16q+mK28ioAkBNqIhi6o58Jk0fTUNtBroy+WQ5gxqIRQGvvVRvdzY4kbll0n5m5A0CXgpej0uMPuH5zfrEDfxnvQn1te9olC8mM6DPiAdKOuU1rQoDdLbd0NwdQlNUBiCZWt5y1FHBlSP49BTYMoYA+jnZ8v8wEw4oTXhbT25caUtBYOnXqt3i1We8kJ9IN7jmYXHg+EKsyhLusmadX6iYCx+LC2+7024mV9i0EQ9dqbq5mTuHk3JGyZy8wOGGHnEZnrrcCKupRW9MimIXqkxnhSMm1ysyjQUp5Z+pGVjy4gTKiRRskYS31vaZx0lPkcBwLZbD+P3NeyM9emMTAA+wXB9kDVjeEjWdCwIINhB18z2my4Hx9SjgYclBpZ2wrGEaeQ/Po++SePmxHSMEeW/qopzHcz/yUbJAFwHbF8NVWMhUw0ivU7EaLE3TgmiWkqe8k5y7VbrG63i6338r1DoLbp7tS9dF0xxjJ38a50a2bAuXMc8ajaqsacP1BiyxiMPrHQr/s5NhQli0K3E74BNs3mtt73SuxmZQlU/jwgS0GnO17XAhDiBRyrvGXVVRF1XmbOvInVP/gDemMhpx9e/Kwpu/DH4MVveC0EwrIDKVU3rGGlQEOwg7dJ1bysnYNTvjIC3b9KLGJcZrUqr63B1ccV2luXASzmjaOxzfh+iYr0y0iS/Bfm81PMiJh9Q0lpIadK+xqEVsXxVyOq84QzZUeyMF7/zGuVWWFi2hjvCTM1IaipieF7Z8nNYJHn2EZROd9oWUbTXqU8bzSqoFUym9pDOjR2poUAsra57OgKsChD8yDD+jekHCMTXAO9dLpnTeMjWkfCSJ2BK/L3VBfa9I1uIozaR7ydjOIrjxor/YrxutD07eaHho2X6flRNLjtx6wxk3mVCzEjGmYZuGK5qf8MeoP3YQ/Zixfkk0bxSg+KKWWg+lOsXigbljTJTQ6w+SRgE/UoReK1RXJzktnEBL6XluwshyWyX9C8BJTjCHrp7wEA==,iv:KPiPsGHave83YfdhurZZUL+NJvN40jIFJTcoEg8LISk=,tag:EQXBzCup14YxAelqIo0LNg==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:sWdPyvYFuw==,iv:jTJvGRern3j3GIF8ZJLDuUGWV+5+aHWYdlSRCzgXpD4=,tag:uGxjOK7Q/r/OZmuHUzoQ6A==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:KtOIwryGZaxjGq+5YqaRx6yPGfDoqlGprNKcKIVWpSrTyOFZpJP8GZtkdRk4tatetjJZM/vVjIgIS1VIuM9LfA==,iv:SBgn0RAVmORiH34Q+mWcilhAZrmBhcnjHfIbor/Uk8Q=,tag:BlzTwvh6uqubWVikAD83+w==,type:str] -API_KEY=ENC[AES256_GCM,data:i2Hy8dgRZqF7nCVHTvrzfFfGocUQCHUSJRlMl3GmkkI=,iv:CU4XsyxBvcnMazEjwEebozYCBgxQz7KvUvFqRcrWvo4=,tag:KpKAlpnngtkebbKTRyS/tg==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:S045Bwi8U/p5V4Zccpw5zn+aVzu5LUHW,iv:tIOnZWL310aeSxkp2KentgJjc8HXR3G2V32s/mlYrVg=,tag:YbCv097NEjVQkNU+MS3IYg==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:q4oIMJ3K7jYLYSQ=,iv:CAlm03LqtDha3A7UQLKpd3eDyf7J9x1q7c/sze9GxkE=,tag:S+fiQjfeDIuiAiazAn3/2w==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:khlOo7BfkxpFW1zz4et3,iv:4KKEwo+CkPhDr4GP/OAQYlQupEA+owhY1O32LWnC46c=,tag:mwZEJ/WPufh6ke3oJ2mj2w==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpaGxTUEdlTEJ1TVF4N2Uz\ndXRDUEd4SkNqN1dZek1iZ05ac2Y1QzZkN3lBCjQyS251TW42S2xucXpKcFRSZkZk\nV3NpSE9VSytwUFJyQmxkdkIrQUw2MEUKLS0tIGQzMkpOTGs1WVVKenlORDdiR2Ev\ncE11dGljRnVNck0xWmM4cFZYUGtaOW8KuMD+8uhX9dk2BMHCtoOY/9VLbDPNmhKE\nuXUcmdK62k666t6mgq486JT1xqBYWigO6LxkIZftcEDaL+JQ7b44BQ==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:UQlO2rMECRgH+mol53b1XStyMANKWsBB0zZvRm7c8wM6,iv:bqOgXG/ZVpTM0JR0yXyAXe6CxUyhizZeCll/ZGkMZHA=,tag:N5YmOy0FrWSYGeMlaFGSfQ==,type:comment] +#ENC[AES256_GCM,data:bMfUgGtx7d6M1u3nJBKfAFvT0Hr54vnZ943GSJsaqoJWytUUFVSGw1GQiliBG1qLWZkP1fN4pT7FblA=,iv:UwU8IBbI5vyK6tE+C99jvcFpwwZl/dWrqjtozOLEWTQ=,tag:POVIdz1OSH6uVQZluGaDMQ==,type:comment] +#ENC[AES256_GCM,data:8hkhkdmC60HPocN5axjN4FV8uEpdi3BFcFyusozRBucyEVcwh45rw2rEapDgjychgU8m2yPbq4UVbJvmuqUkrNYwUQ==,iv:vWN4SB6SfNa++mGlq7lBP4H/5DQpxVfGZakeDCXCdIU=,tag:UQdVV3gzi232Hgly7WNfyA==,type:comment] +#ENC[AES256_GCM,data:4k4Ij0qnMgQLY9vAQe/RKUkn1KfW3iNVq+nNU1qFb508AuIlWtWwqXQ+TiCTiffu+Q==,iv:v2LqOCrxp8keoO04hdWbzFZd65fz6GZo43jp9GGLcaU=,tag:8BDLPHuB6jQuZEQ+4RApNg==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:X2b/5oSh18ehiZx69How,iv:MZ6iivsVkcJrEadu9biWqwA7ci82QTbJs+EVl68iuKo=,tag:SMWvne/e77267gqdde6CcQ==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:8fqdcjFW291kypjDfUz9QVu5ALx3wsE=,iv:mdZToefLKS23+fGzYfssStVs2Qi5nSEJQGYntqCCi68=,tag:855TuSfe5Mg7KXo56Go7+A==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:nb2Wgz8xF0WzaUxOvN2fNH0zAVb7z0k=,iv:WKzx956QgxYOPzwPJwX50sz4ILzEojhc90J7Q/puwGQ=,tag:o9BSaLEuRYaKFFDi6s9+iQ==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:IaMyjfMsDQU=,iv:Yjh/hhHW2fIwyda0vYp7IiGtcclqG6E0cL3S69hSwMg=,tag:UPuzcknTufWr5HUgimWHyg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:ienT/EBhtDrEi8ENEXwlEOUFW2WpQN/qjYpJsn70hH+wzFncSOnUIbsMlApftuXuFL/3Ojg238i/E/UPNhdM6w==,iv:f4R8LE8aNCRo3hMEtdGHT5Gfc7nueXvpW2jLyzApgUM=,tag:N/UTtUz1097EQYStqbRHjw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:03HV91aXsg==,iv:NjE5Yt78+XA13VpQI/uly0QagSGWesCVQ+mn+OW28oo=,tag:x/5DZHUCnX5p4lPOzDisdg==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:LhHh9Yg/S5//GyWfoNagCIxovuzLyGouE+v+APw/Kvy6fOLYjzIwbMG6CN38H6D8fwYKZR6Bt0bsdN9fKvNum0N4IAVssGfbY2baSXOKL+8IW845gm8rVu+RgjfAms6f/BB9hH1d,iv:08FGB2RiVv8tPmGQydK6alxzYDzDvLC4SwALlwpAqG4=,tag:9V1k0e2sgfLzOQR09CoV5g==,type:str] +PGHOST=ENC[AES256_GCM,data:UmA=,iv:bm/cB+qDyT3CTJTZnvfg6RKOPKJBaWof4wjCSxH4HDo=,tag:ag+LeF2/5Q+STZbH6ewjTw==,type:str] +PGPORT=ENC[AES256_GCM,data:uS50+w==,iv:fUQN16Yda9g5ymc2t+QPYNfzbFiiqOV5B0DjHwgyjbc=,tag:fEOuL2O3oEQjFUML567Vcg==,type:str] +PGUSER=ENC[AES256_GCM,data:I9VxvbsV6p4=,iv:brcTFkQD0h1oNioHSTMOR+EfwFI4cgFOzevzt0NoeSU=,tag:J3OoOvj4cuEy6NfQzPTxbg==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:GmC/2wGzGsglB+8eHZiYl8/wejKbNEwujT3y0050RrTEPTYELbH+h6IsH+HnnnwXhwCDgDRVIJ0XdQQL83MMrQ==,iv:oxKs2fiEA1geGoJ1tYr2NdQ6xD8TnFHP4VQZM8+2h20=,tag:fnXezV6EKO72JhgUGw0kPA==,type:str] +PGDATABASE=ENC[AES256_GCM,data:70rY1Sj4Og==,iv:jIzLyE8Ol2G8Tf3WopGAi95K4GMyFLdNMvSMyqVd3QQ=,tag:tGwifdkau5D45CvnPHbzDQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:zOM3V6E=,iv:e1jyg4ip8i3wKyi3XZFFzCL0SKSwB00MEeRKGSF63Ng=,tag:RbsZXeu2RdfbGe5ipW8ihQ==,type:str] +#ENC[AES256_GCM,data:8yDxtNL+ZVXZkJuFa05PPoHhCCYicQ0KiDXfEL4E,iv:P95e+ZhCnZtSb/z5C0fTBRjUnQHJj33PUQSNzyjCLlA=,tag:tCf4US0XqdcLZecjbEYT1A==,type:comment] +#ENC[AES256_GCM,data:TwUTN5ZnwADBvj4i5hinSYTLE5Dlfqib3MRL/bYtFY0tew==,iv:8979ElGH4qRmyYshdckcZBNNMQzmzEk7BHha6+wb0bM=,tag:Zb31VZ2LTgPqDolBxeFmvA==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:ohWQcOI3fDJ3Vq/BCHPSdAfq,iv:oUXrDDitHOzNwPL+DTrNUV862tbU10n1es3vm1n+7CY=,tag:RgEUJPj8+RG2Ou12HHePVQ==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:zKyV/CpMY9+7oj80yuU1qRkW6Uc=,iv:oEou7z8UQJ0VkER/K11XXmQm8hhMfU3JXnJ/gAOCCtA=,tag:DsuA0+A49eGh/Fjz9At/8g==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:N03GMK+6g9p3eP9DVCcHw1xxrFE+QM6TwgCpl3tDausIMoWgoYFbxg==,iv:g+HQt1qEE7+nxm6+iOUFeRoZA55SZH1ZjuN/A8JksYA=,tag:pMsdCjQvrvsIzbRQazBDTw==,type:str] +S3_REGION=ENC[AES256_GCM,data:6Jc4BMmP0T1R,iv:H4lr0eqWUCb64VcRiZs2yUmcYO3F5s7pYtpKopFmDgo=,tag:NBRZZ4rrJcWSDykOc5aw/w==,type:str] +#ENC[AES256_GCM,data:7KhpFQAZtVF2N4EZ1s3lpsnkLW0K/rhoHO7XfiV8,iv:sRjWIdb8dTGHL84vH0LZQmUQsvg5N8EYJWCwvJrwBis=,tag:RBtjsg+8VOsUNjiS9D2+DQ==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:ANtOkUu2FMlv,iv:pYWT/NC7x3C9m1YvrG3XuIR2e92IhfahMfkf1HOUrqI=,tag:IDkpAIZv8Toq2aHymsVFGQ==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:H6xRoQ1wj8ruUS77JYNMbhrkhuFtvjx0,iv:JPbmXtYfw/segrWNd2LE7o5/2qDmvVPdg/NxJujzINQ=,tag:qocgZpMyICEKo0IgWeDB1g==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:oBK6VOWQ6HiRuFqzX3ctFfuNxn013M88Y70xR7SmJ8LAlg==,iv:U+PYT43z0aLyG9Yoptl116pyMjawbA6QYXeV1UAXvMA=,tag:oB+lVr5HUKLz0NZL3sEhDA==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:BWBI,iv:jgB+yzEG5rNqYA4vMcGh2sxgl8kxQqQo21h4bEKx848=,tag:PP4MLHmY5t7D6ZyHUxjKBg==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:/DWBfrLZe6Cthpd2YZaFpMrS7cGnilQhWdMt/KRbQ78QkcuGxYZ02489CWQ=,iv:lLEwKZFF1itykxWxuBW4OyYUJXUGXWzsoBTwd7Cel/k=,tag:amQbfz5Y9JAwSYQ1QiN8gw==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:YqxBXApI1d9oBWyJ7Y+lTvCgQeU=,iv:0IwEQYmKH+uPEjlwQMycqMcK3UV08kbTWr076lcYQ1c=,tag:ZM0QPWbg9pXU7p/XrYzLkg==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:DpLbMqw2rd1Gngalu36t,iv:kemedzQ1U09DmIzckRmWPtUy9jXv/9a/ka/CEkx/uhU=,tag:00NVh/FVYAo1tkIYcQOKmw==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:Cm/0l/y49KGqQ5W3,iv:SZoA0bg47BR+W1ZjP3zR1Lm66kO0gME3SjJ5vq7GPVU=,tag:onPx5IGfkYyx6XKm8dd6gQ==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:D/gs6oM1xVg/AQuidSdO4F4V1PIQsL/ML3vZsSaPmk+9A5K/2ua8gYiBZ1k36lyAvo74e/LvDIoOvq/upJOyGRBv+ilczc0stPYgF9Fqcx0DJPJjLwC6ZfVPTZbu1nJ1mSDVm4Bz4KgIjKdYQ4hIgnEFVQRR4WMl99/e3LSSS8eTBVGEp1YdgRKiMjMd+fM6K9fRVzsTaUIPIVP5xdEVJ/E71y92gLj5h7GHWCQmhy7Q6obz6Za1zlL8io05tD3s3XLXm2iWdZ0QJzAay3tqEPp69tAyyuWOP06uhLBkpR4DAFH9UV38bG+0UFNPCyb+4C+3yx7JcCKhPqspMKxZC+o3nBLU5qCvyYa/Eu9M8sahWJZr86oGE2S3xlJ+fMWjKarnS9f+4EdhEg9AQbdEPT3Y9VpAax24iFtip0C1ViNhx5oemvQtej0HEFVz9qXWwMgRTmC4F2J19ycQBW3vxaWn2/TRvkPV88fCmFFpu3Vxi9lwrIuhx5GonKmXstqMrInjEhXwxAw9SdFAAS50Bg3Cdt9cg+tVZW1PBE+cmzuUEBtT7+Ht1tjuxhkav4d8aPRjNFlUeTbbxai7sv4P9Y0zoqSHoONR+mVfeFvKYzAFMCMxUhe6Vbgf8LrWVVD3229n0jWpO6Byqc21JGJpyN616lL7JujTTNi1dtIMXzhUUmfNYfFxTISo4V8H1zjpczG0oducRw4O6Qa/WQrBJzoMnslUl2ehvZRd/oiDWCeGsQCLBmmXGBLfnGa+c8qdOmspwVOe+CfW/I7QEBkYBFakFK1eyJhJe6xFpaepzFMSpdO3073XXKaQ5FPJ18zjPvoXO5XnEnbJtRblPRrZttiaTZck/+mfWTbvMHR69L3zTUM1UE1oHHNKpXQlNCKna4jS9kQc+B9doAxUi+KWiwmNKm+IJdAa+mcX5w5qCdBhTQF/0lsrvkvy+Z5+htrtqX5ALBTc2AGO+g1pXQROpCrA4pMrOp6turF8kUL0PKZsZi4L2A4tKRxGd84ZAthaD8QrAtUXgJKPTrpFkahx6Y3G/TM7bwesA5srv4bg7gbj2psg7IhotWjm7mylaILBltYMmWUDnl38dCN2oVWcES6TpC6nTIBHQFgepeV2QCdFeoaGZcAdMybO3C2a2rfY2MkTe5XKIAtnCIsp8rrkb6aUoZndWg9L8H6dXoqxjrHt+fgz+sle/zw1Tyztzd/ZuLyQdIFmAnpPRcPdrH8nvt5RCYBqIWz2ECISPEj1S79A03EDbpMHkqytFEAlEk4Cxo5c5ac9dT8YzFAI5O1UFgOLT2gA38kpircZjw3wwd8/izo+4kTQQo3k74PWwQjZpeMVZcAQhG1T4tdD6pachMSFcygJNfmkR3tnQXy7Bv8su4dAwndwZ34itNeYjE9dJ4aZyteyq/hOaKgK2hwue8q4ZOPBFCXb7pW1Fbyh1vlQ/fXUGWmFuiLYrp16aq1AcfJAkU1rNWzGRjLaYOF+Rm79uiCx96Wd3oyrfHP4FCw1tlqG6OMjm/3gaBb0FwELGfN+RkheKrTTF2UauZ3s3jjbkqkouQh55FkFOy+GA/FqJjtdR2Z29BDYu5X2y/gZyKN/2hcsKk8L7k/AOZUqtIPMYnk2rsnlX8x2FDZXOZelqsQkjlfOulFnp0IaGPPKaevPMukSHvJBkybIsaPAeMX77L+KiByrJr14p9TzigvvWhqUuJo9wYmRYInlUHpVrJKmxfyjDbumcT46N0OOV5bpw7XRZI2iKPuR08fdNKyEmiqZePkGpf834fiQ7NIXSq8xXLilln2WsOKYyrJZtlkAQe+8L9K3hEB177SUlS+v21OsCwQAmXoBeG6k/vOuoyJ38P4g0DIRHzacFezK6/S7aTThAiA7k4+5pvA86Icju5wlDaO9yqNKXLGZ/6OCFEzh4ZKVgqW44LakkB34BQN81pjRmy7Qxk81ETp76MMn+d6yfASujSVAFq0++VB+tGNpaQsn7ErRvj7jKFvJebACpMNmw/dYPKwLGsyn9o4Xf5qrYtOGsBVoL1pwVz/r14j4DHy8EeuuwfEJn7LunhulXj5Cgvuc6MBlPlQgsyqxmcto2U33xpzFfarW16ItH9ZvHS86X82OKqSTp95qKiv1SD3lf18arhNiaQUBh5bAEvGab+R2sF1zS1dSwjJF/Ganx46M6U/O8WjTOrmrAfOKNyxq+Mt2O00lt75rkuY42M0zwr/+4IrdA9xS4S636cVlEfSF/FIBUHFam1HYDUhtB4BH7aeiZytavlDo7hbc8w3j78ADV+hHpM9Ydu0i/zPWUY/xcez6en+riARBVZF6bf2pYhuAmHMM2DsnLbFadvWz8lOGv69Lvby425A2Sl3xScE3ByfFgm6AVTOQhQwVdCImZpyFzpWTp0TWP2KkmRrXFmy7A35slq/QW9tyOxqu6S3eALogadxFyIaMScssRWVMozsbK7huGjyLm7IeSBYQ5maH6iUIexoPqulvv/WJjWYJlmdeU61lF2bzdmB6weVcp0/1a4yT1xT25iGv/WI3JvjlOx7JzSOpyIUPEbJfJXmiS8eQ+MlAw3R2vXuqOpIWf2SfD0jHtqVUV9AlVgC8bOUOa0cPOD7Nl4txeaUNQOZEqUbSyi7oeiKDwqPc6k72AFySCA+Fb8IlHThtmVnyylSOWfzxshlxCO96oTDgoTzz4S4U3QkGVp/JaGIlNVXLyGiqMmQUIANOZ0UN2/M9QL9QUMPYnLsxBqo9Wwmmr+PT9xl1o+Uigm6b6SvjUTyXoaccI4TxBWncFSVDAFJjV1dzoyke+DY1QTepxWQYYLGyjuiJP/1s7Cox5JXPnLaOTGKUdeDSVQQHoXJJTbZxJCNTtcHWyB7y6YKcIdMfLzvGu4y7cW+h98FtgvAdcCfjfgESDvYapD5DC8K2+IjYsUJjyjhLOZ1Ta/T7Q7DnSdmirUvdYjziEJF0qtZ8AIdtqDqp6hWLJTEbQwgin/XxI3H0E+BgOuo/MN6pCwWYz/oqp5nBKiGuH46qE4DE9NHwmuTfu3tsqyg4+SzEOxAxHXaRPBAU9bD2MWks8q7le8yMEN/8RRXb8pJsKOBF4tg8fNx+8+P7RJ54b0dI8EhH0HdM7usU6aTP1wl29iUFVLTYQhZenvVO+zi0y8KrPVQqRLNU2LPDzRYce81w83e1zkjZzCbtCtF57QWD2cMzKJMNpTm7CY+09zYkwsCiTf+P7BVFtPuF5EOYBvPvxbT4y0I3LXnojP0sOtCNyavmUxcoaozE7NRbz4EGv83wMDqqY1dkH7lM9yMDZd7CKV9KExQcNG2O9o0AWEq9Gl5Rw3YT+Or/kSAgGwejmaj/S+v/v003KBMDcoZ3NvYw14eRVDS4eBn69uSLZCnWolAiTOt+8U18bw72m7mM6aByaR7MpEMEwUGN9yecGV63+SsdSKOceLtMsJRQ/aG8KTLDLgEnNdoqB15kJeLjbkPeYCs1JVoidfKwfY5DUNod3MMNSYIElyHoj/Z48i5B6FB/lyOUJEiOP1WUrqNEuK71xQTscAZmRs4N/BnsbpUoRySIKSgZjxY2NtgoSM7Hb1M8Y1vjaF1DV6lBJ4fJyE7NGvzqvsrGUW6pAYAaFIhlGtDcVBFTwc8Gsw6TYJdJlrldmBoFvwbul1B95D0HaPpTriKcRf8XezG0wi70oCwDbpjlDHMZ+2AmMzj4VizrzU9+7B88ig+wuS6gRqcNclx7dubsAWBv5BK2Np1I2RhyVZpY1UZgy4xgt0Oi5EvQ35EaMEELaeEpfP43vczei3jj2bBBWSMyTsQk1W+Bm3gn0T8MwWejRq/ZHoyNVEbAovEhNDxGw2sBnacPcBYwiN9axQHtxv5D5HPoYqtbTn4rvfCmlZdMwnUyXClqbwNJE8b3Wcw48DdSKiZa4RCwFBHYBmEdHVteOnGlfdG37+6FpqZB5yHbb5pEZabExYUPF5pnrCf2NsZ01Xp7nHwdPnh4GoM6A85caCkyi9GsQpTOIVgJwIFTkbtBcI7FuK2I0wbPt/NYVHGGyYN7DZw6MlGhrZYZ0AUAEm0uWTBxDsXNvx+A+v2t17DRPPGAYxXRRjUlcLWmELohIShQNepXji6CPzxdwiYJa60tJtPNtWXWA73EOuRgo1Vn6IfhrxKMoAKO/g==,iv:9X44FSf6e49ZbllVl8gb8f82L9rMItvQa0flEtWI/Hc=,tag:9jceikaA6UDXtMR1kj9cvw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:AwmNkftduw==,iv:jeb7TuYFk69iehQ7WNEssRgcRhCqyparchcLk0kU/xs=,tag:x5Yaic2QOMau+TQr7zOR5g==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:CDoP2jc5gs+KrNtFKafCySqh71D8EFWnS2hIVj0dNgnI/I3oI8POfXrIg3zEsKV2MBMgNa3rdaZ1Na5QE8NG3A==,iv:gxfOZKYifRClxdk17JGpn9NFAD+gHDEAT/VJwgPtLjM=,tag:mF51lqqZhu3gRUZS+e9i/A==,type:str] +API_KEY=ENC[AES256_GCM,data:9RZpFR6GxbscWzfZ+JgV7mH+rpnUZ1esGkXn9kY34tY=,iv:N/y8fVAs3QrXI0gH7sfT7+6IbzoiZpOxqlUJxWIdvP8=,tag:notXKm3kCv8S4wNIAQl7Bw==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:STuP0n/EBHA72rAIu2aHbeQvGTYWAvTH,iv:18ccCF5rLTulmktPH1w/v8C7AUmjnf+mshyTgtg7S0Q=,tag:Vm5brbKynW0oDfqDqkWjjA==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:p6AG8CcCJtr1nq4=,iv:sI7WOCAt/D2voFIW9iYuoYhd0VdABO9xZGfXWYYL+us=,tag:PZxfyfdW4t1Mr7byKiOR+Q==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:IeQLvLhiTZmqqZ0OqFTF,iv:OEaC7U6jdGVMoJksl91mzUnlO2tgs/+f3oCtU08uctQ=,tag:+aSG8tuvjMyz1xhWE6Z0kw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0UitaMVMxcS9XWFUwTGR6\nU2FmaTQ3ZUFsQlQvdStNQktBUGJSb0EwZFc0CkdyZmI0NFc0Mmw2V1AvcjdsWWx5\nbFloWkNqRmtuM0pGVm9GMDFCNkhrVTAKLS0tIGNuUnMyM3NOMkJucG5wZzNTTjNK\nQWlGVkRNT2VibS9VSDRVcVBHNmx2YUkKoPCaE/6IBBHkNuBwneVPhz/pprK03+HT\nEdmlUmJNGVAWl5hDPLc4JXnjWXY1t57mej2QrqJfseIqKImxGODI3w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPYzJVMDEzT1IvaUEzSWlG\nZDZmc3FodFJ1QUFNcW1uYk1QOGdsSVdHT1JzCnE1WkZySUhSNjNDS0ZuV3ZNeDdB\nb2IzbHM1MHdSdzR0b01iM1p1SWREemcKLS0tIGxuYmhnR2J4ZU1rQTVMTndBS3hm\nbmR4SWpqS0s2VTgzeVludmF3c0FjemsKRtghUgG1UDZVXili/5BOuX29Ofr31Eqo\novUOtf5xd7zWrDymYipX7A6Ty2Ys/NSkMC9qtLM9Z9YLW466LsLdqw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBodkZwV2NYNGFGdE9BRll5\nMmVHczJCQXIrZlpNS2hJOFZ2cFBtRzQ0YUVNCjQ0TWJuODgxZjV4dGh1YTZ2NWhI\nb3luakpIT3gwMGhtUlQwRFdQWGh1V3MKLS0tIE9DbDdzV0VGcFJ2ejIwcFlSVGRE\nQVJyZVZRQ25ZOGVZaWJXamMwQnk2QjgKmiu+pihKy7TegzQOPEsdINRY7KNKllu1\n0i+k43zUeLM1kwJbUIWvI+a1PNznWzmKB9i2jjbUmo4LU19GEMHutQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBEVG1TL1grcU9ZT3VqNVd4\nUlNBTGsxYTFhZ1NyVFA4VElRTEp3Ynp1U2l3CnZteUlvZ0EzWjFrSHdWMk5kT0Zn\nVmdwTWppSnoxK01yaXEyVEc2RHgyMmsKLS0tIDh6Wno5cng1VE9JNytIYmE3WUhx\ndm02OGNrTC9EM3p3M0JHSndPOWhQNncK2CUcT0wK1l1NSKhyp10ZsU/QRPCzevH5\nRU4ieLERLziIjv2RCg8QDRTI+Ui2dtGtfo21mCnkMlW/s+Q6brSx5Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTZXFPcFU2dzZ2Tk1UU3BH\naUlYa3J1WFhVSnZTMG5yNkVxK2ZRMVlYTUJBCjhxczg0T1JEdkk4UEo2MytTL0dB\nMXl0TDcvbEUzQWMvdXlzWXdlQjV2azgKLS0tIHQ3ZlkvMU5ZRTFDcEM0bTZuN3Iv\nb1NXQzA1TGppcXU1VmdjV0Rza0hOTE0K0Z87gflEtAOSzfqLzGlQ1vwMwae2qdtm\ntG+/FvQ+fmllP5MELjR4QNyC9suayArMcvHbSS/txt3twaJY7Y7kSw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuQ1pEdzE1R0N0SlZ0ZFNT\nYjFPZ1VzcjcwTWVieWJsNVhyRTNnbE43cno0ClJiZjgxUlJmUWlWNTJNcHZLVHNy\nUGwrUkdmRXhLcTRUZkwzUEl5NURCMVUKLS0tICtDYmlvb0RPeHp1cUxwWk5Qd2N3\ndUV4UmFrR0VuSEc0RHhESGZhK3ZEeWMKGCk1J1wRJgS3b7ZBNf1/oiqa2phTKF+M\ntyBoaW8ynHcQccDjAoS/RkmY6FUrHmcZP+z8mtrkrwI51j1KpUU9eA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTcXJORnJyMDdGUkVhcXE5\naHBwSk54M3JUTEN3N0dvYkhJMlU0bXRjNkZZCnhmV0dXSlc1aWtiYk55K2FLbnlJ\nZ3EyQUsrMDdQcVBzbjJyU25UTXlmQjAKLS0tIERNVHUyWmVnZjd1RkMyOTUrMnZW\nRHNNQUo2MGhIekQraXhFTzRaV3pQazgK/wwKJDNSBK8bRfsE2KvW2kTFvNIWUAH8\nVZRDSOsHFslJYTd+5YaZNvXADCK+v1IvE0zdYTdz21ztwh9xd7cMbw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBReWYrZHZWS1VVZkVZQ2Zw\nMVJhTm1pSXBoNkhVSWZlbUtnUFpJdDFhVUJjCklBb3QrWnZuZ0VNaWlJa3pOV2ND\nWVpod0puYUlLYzlocXhiNTNqcy9GWlUKLS0tIFUySG9uaFh2cW1pbjdqZkhJSlZr\nTW5hNWlHYjUyMGFoa2tUYngzNXA3cjgKn1wpHq3/xQQ5wtiM2KjzVZrwa/BLCUOQ\nlXmnNJ6xty7vE10I8HSFH25xEDhDpQ53NgOZdH9yUfWJJoBm99Fz4g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBha0Y1MGczTC9UL2dmUS9B\nRlV3cmdJT21xV21MYmNJWmszQzkyMDVEY0I0Cmh4bldGZ2NQNnZFdlp6NzQ5Z0dP\nLytSeFV5ajV4TTBDMWNydEFZZGZqVzAKLS0tIFVuRzQwVWJ6R1FvNGxUbG9EUE9C\nOVlqNnlpUlRLMlFTSllGUFQ3djNneFkKKrX2RYW8zlBozWBsrwUT2ZdEagOBHK/h\nti3gJa50nIikx4nLq7DuVHPcIwti7g881/njSJVoyHdr9pP0poyuzA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNR2EyZjlBMEZQeDlOcy8z\nemFKSWovVU05Z1R0Q2wrTytrQWxEY2RmOW04Ck9hNW5sUW9iVENMdkhacUsyZ2sz\nS3BaUnZ4UWduSVdsTWhqR3AwSkliU28KLS0tIHMvaE00Zzd0VmNKSzFtYmYwMzhq\nSGsvTlgycVNCZ2Z4MmdiZ3NkekxBN0UKaKzeBvhO7Icj3L9hXsXdjSTxJJ2Gx+KF\nvZzMOZay+9m9Y84VOoCgK1Fy1lJUFR4KkgAASiWc7dE5Kps7FFua9A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4SmF1N1JxbHBadENQS0Mz\nRmhsU1VJbzl1YkYrQmQwVWwxSFYweUpiUkYwCklLVCtXb3Z1VEZBc2VkaGozYlEy\nNzR5U2NQdDNiSWVXejY5cVFOS3FzbnMKLS0tIE1CbytybzdidTBHUVYwdFVMN3Ur\nU0p0K0ZnOE1lb256Y1BQbVFYZGRkelkKJTR8cvngRw7scPH8FF0br6p3O+TQE34h\nqVFwEpHaiJllM2P3vsSGIEl+MdziWQquyC5QRJKG7GXcwSciOipnWg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ekVnSURGYWVHaWdLaGJ4\nU2VNdEZUeDNITER6K0RWdkk1UmV6L2c2cHhBCmlQU0x5V0RnU0FOS0ZuQ0I3RnJm\nNkVFaFpOK1ZCaDVsTHdEZWMvYW5yZU0KLS0tIEhhdnBUSjh5VStDVmJMUEs4RzJI\nYXBOajZjUDYyb1ZpVUxsOEl3Mzc0K0EKwiYtKHYs2xcX5YRRhz/ilJP3WaXLA5bb\nfbpkepHGRnpnM79P3mJWrdfGVrmvoYnIwLlUHAjas8RBQTnzWUdEZg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiNWI0eElxdnBkd3FVUUpv\nNy8vNjN2R3h4azZ5Sm5SMkRFQ0U3YktqWVFJCjNBY2hDbDE5Zk9DbFluUXdubDBm\nUW5TaG1jVzd2NktZZmI3V1dZUTJwZGMKLS0tIFZLbUkwaG9FV2lmU1V0TWo5N1o5\nRXNxdzhTNnVFSUxtNDdlN25tR08rRmcKzA1R+BFDQTC78Wz4rTgF9d4riZ1II7KW\ni0CFmYDKXukh5YJObIe2neRtNjfTFu+WhPw/NFwHNm56EA0vINhtYg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmNkxyOCsrUTRJUDJGS2U0\nTFowbEFmaHd2eHJaR1hvdHNKZEExTEVScEh3Cm9uWVpEQjJmT0Q3bWV2bkFjdU1u\nRWhGMXhqTWNiVU15TFNjMVdMVWE5MWsKLS0tIHV1QWMwNE92bnRKcHRrZUNUejkz\nR0xUUFBnd1BiZ0N2cFBuK1paN1pnTncKjlzdQXgaw5hI6++2zWD+d9BmQnGyowaI\n5xEubjsWIPFgw8uELR1i/73+upWt/b/J7MnRL8o2JN3FkP86w5UUtQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2SFlzdnVWS0ZjQ25yV0pZ\nTHAvNHkwejQwNjYydlZqWksrVVJmUUUycDB3ClFmZzNNOUpYYi9UNk1VeW45RGU4\nTU4yRFRVQ0RvWXRkRHJzQS9qcEpqRmsKLS0tIGRXakpuejRlYmdVNE5zc0l2LzAz\nOU43ZlQxRGszOUduMHZaU0hUWVNIQ2cKXuTVTN6YD9BYEd34vkQuHhfr3b2SGAGK\ni6+fXAhsy5oLzjg7GlnNIMdtBS9dIDIFY/ic1VGkhsLdqVYopnZQzQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T15:33:55Z -sops_mac=ENC[AES256_GCM,data:2RdOfSAXBEB5kATqIGJhXk6kUkgve/hOv1Ag80RyR6m8Ec+Zd5cCNuuypJrEOAGKtx896XaS9AH+jugjO2rCQVd9diQKnibVNd+9dqA5WAEh0FnWYFun0HChkiXda0ycGZFkTR82EcYafDXNt5uj05pW6WQK0jSNhtghSjeiMLQ=,iv:j2+h5hnY7g9IHKj1cAFr5O1q2gsfQ3tQeRN5B4ubKKs=,tag:/4eH00p8/kfOeNLYM8FC7g==,type:str] +sops_lastmodified=2026-04-23T16:07:09Z +sops_mac=ENC[AES256_GCM,data:2CC9ZQ0mFVmKw6nFWDfKWnIEdUkhJ6ve5LPGV1vEyoHY1isNu2k1CyA+kzV8PBSTJHtfBNxxYRyLOA37mPhaGf+eYW8RHGTgCphZ1IQ5bF0DlPKRc7p/LBS+A0Q1ghyWNTfERgWA21TkCu/PuYd5wWSRqJh5bnNssvAy5yWQN6o=,iv:I3ZJuVKOzxj16Yhs54AIMINBGyNST9/qC4+r7IjLJ8s=,tag:B88aHLeRCPikok3J+TQmQw==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index 11f2e60d95..e1bd4dfed7 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,53 +1,55 @@ -#ENC[AES256_GCM,data:QjECCPZD/0ofl6bVYOGTheNyzs5uVfrqxo7R4vLVEVV7,iv:MMwqV/7obc7R5JvFcxR2Ci1j3b1ZV25ewGg1DiWIwdA=,tag:xSLev3IIUYUlfCebbZzjqg==,type:comment] -#ENC[AES256_GCM,data:HW/8HH6mQKNgoQD0ytCeRBfuYOsUr52wuBwkuWe9+90qlETdnYq6k+Oqi0wG/D01ootVnnTbeVQQcPs=,iv:OMlDjTuiYfowT0hr8UiIz7KoF7nf0wZje5SHJYz7FYE=,tag:zzIPQnvwAAkn38dVBEYXqw==,type:comment] -#ENC[AES256_GCM,data:nS58qSGoNP/pS9a/Pz7mV7PzqFXGiyASAg971QtKVJ1uHwHoUWbNg8atCm5WKtQQfV/KhDqHV40zcCTLaOhzNo3kgw==,iv:hfS0bWR832pF65kbSdgG6+vJsUDmOXw1Osmc8nyyibc=,tag:uQ6g5KSUvyqULJ3ET3aX9w==,type:comment] -#ENC[AES256_GCM,data:X5bp6O3CSFMBfHJ+HUTgoDo4oH5qPoTr+9EdmXf1An0qx3VUCF8vox+ZG0maQls7yw==,iv:kDUnXJ+82gjLtX6JSenfOCcn03hU4IQQTA6xlJjoRDg=,tag:RCYDv1lhcNtSXM9iVaXQkQ==,type:comment] -#ENC[AES256_GCM,data:1sp0qrdZavgZWR6MSFxiAal/G3q0gkCzfaMA6DgTwPXUu4laElXEgVbDk8qmMi48gSigew==,iv:OeGULdULHILIl/TZGRF4ydsqOxwTduRBSDf6nDQXp/U=,tag:OVgAj3AvnD62/0waYp+18g==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:Uw4vPTEcHuU=,iv:ZCuuzvQ+pPOVZr8x5lIlTqKutxD2nhmM1nf5lTnensk=,tag:wXzPrOVc+2oNdQEeNLNPvQ==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:58+JIagEUqw=,iv:9SzJStqNx9TwCXHnVwRJPGr9M4gqWXwWxV8y/PFHc3k=,tag:IN/QpH+2ZI9RrIVO6lLOGw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:G9yFy1vXfQ==,iv:VTb7lc+4TawIFP3hSmvCgdI58kOmpMOL89ApH+X5t70=,tag:aeeamKx73E6x9TJNnqG4UA==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:C1DcN91+qp29UpWmeeIh7vcU0m0uThTR9sKYZ2vZmP8oF5S9gtWFCqUr7ZBkUQ==,iv:ZcQiARU/IJAj3uNtYLUM4mEoWaFseFRViySliqzXSPA=,tag:HkLqfgX2d1GYxhBAuq5vzQ==,type:str] -PGHOST=ENC[AES256_GCM,data:xpE=,iv:RzaG+H8hXqvxjlHkoKWUs/4SGB5+RKrQqfJpb6oKkLk=,tag:wVskNaGBfzqOSbxiUnAp0g==,type:str] -PGPORT=ENC[AES256_GCM,data:23+jUw==,iv:lFdtC1hlP+EKGiahByrbZ6/2Is1fXKtTPTdeAMR8eE8=,tag:ArC2NeulVVOGu4Jxf0NaQg==,type:str] -PGUSER=ENC[AES256_GCM,data:AMPV2frNLN0=,iv:Lu7i6zeMpmwknmUzfqLr8dbzkLXQTwJrAlor7eQxW9o=,tag:q8hEvceP0+A/yEp2VxOK+g==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:4kF/w4/ECz8=,iv:Ef3xPbXQAMy/4suD3aFWMb2DFE128FkLiCzyryPxDnM=,tag:8+hes5YVmxbEGv2uq586YQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:575QfOOKUg==,iv:lnwmAIws6JZtlb1OPJciDwBH/hxpyVJjkI/e+d5hDKY=,tag:JQe1DUGsx9H7NFQ4KspuwA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:Kn5y3lA=,iv:i/3IC4sQI8D0gpfkBsFtHK49iuzHWfQBWgA+Up3+jSI=,tag:yM0i7gqfYU6ovtPePK6SkQ==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:rCZN9t7P/gkhtjwjwg==,iv:eeEXLMhj8m/+s/9Nini0FU/kCWS/EvvuyQkcTVFagUk=,tag:SkycLJjWTWd/mN7Cqet7FQ==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:xImMHV7U9SzGHKtpiw==,iv:VxjVIDOOqux1B3ReXTK4YE2BaCqLzHnK0dwG2K4IwJo=,tag:BsyAzseG0umUnsGA05V+9g==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:2xvecqAJ4Fd5W3uCg54=,iv:e+v8YUHsschmhTBF+3OP/AQpO7+XugbAHDYuaGVSmtU=,tag:ZIjloCuEIdJWaos9aSanXQ==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:nXHXlzzXmgROfYU=,iv:u9MsmmfhYa3t9zvuvdLFky/I86+OH3Rn69tl1xGn3ps=,tag:Y0xvAi/xXObsmmz40JgH4g==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:0kF6D+dP2h68CRo=,iv:dTU8xrna/od7RsojgOO8D+CY9lV72umKVOise9jbgXg=,tag:EB/SZag+EiDcFDaGbk6rWw==,type:str] -S3_REGION=ENC[AES256_GCM,data:ipMyL2uYIya5,iv:STCwscZfM9r4XXzosa8RlmFR8SQrkYUz/gzSfJQxvZ0=,tag:2mQ60OzFkr9ga0hyad2yXw==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:HRqOZy43QONGoozYI2aJZE8=,iv:BLRQR5kkBJwqNoLiQG9yb9bKgpnWoKWd+yfRMIrj+Z8=,tag:UNcLAgnpdHHWMsKOf0KVJg==,type:str] -#ENC[AES256_GCM,data:yyQy/4DfKsLExBll71HYicqdjrU4C8fII/lbajYkkxS//x20iH9bbUW1ac3cQJD2GBYkDRQr5SLkde9gXxED19H3XA==,iv:oEfe9Esg+L5kFIB5ranauq+3mx5Hrjx6alkvyWNZhe4=,tag:DwuOcODMXl91FQ2CCqvLjw==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:8z/rcthOpYNeHoYWoDSjm1XorlZHb2LA,iv:9neExVEuEshejtCtVTb2KLQYO9gjQWYUH7zB39jdDBk=,tag:WvxkLr5W09Bmj6R0VAeqng==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:X6hR,iv:60AMTmcf3k6vL4Xhdyt500qHG1p2OWvx8459jnM1MlU=,tag:HnxsaY+T5FWiuFyFJ2Mf8w==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:o5d+rftLt7E=,iv:cvEAgTfNTyRzEIHxI7+ZjyukKyUc17FifnD8S22KM/M=,tag:XWK2St24Y/tx2zFfipSv1g==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:Z/+7pw==,iv:6Y7GQ6SgUGGsnUuL2mtJoq22Sltn9dJKpovIU9IkiGY=,tag:HjHtqf0yRDLPavH+OmEWGQ==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:SjI4,iv:EFNw+3lEo6asOr/nb2SeYzf4UFlGxfaJepnRxc7MfN0=,tag:O+MisoMhaiT9WezRyOBW+Q==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:P7la,iv:eLmiWIwrBiZ2wxeZNDPIgdzyJzMaEDu6W+BsbxFS0Z4=,tag:VMWAC+ixtRAxyydfsOeNEg==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:o027,iv:mQyQ+ItdkB/vXgAoA9HWSR6JOC+Ir+T9XVxCxjlJOaI=,tag:MAMmIpsjelbOF6IQxJTg/A==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rya2fU9JwcjTivsj50rtxWmB,iv:x/nRWdIcIFYtWeTamtPH4nnhrdDBPQwwgfEXNOnekPU=,tag:WN/T3VHBACpCDojhhOdXkQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:8uwC,iv:wgows4IVmvhiV2OsqLpDGRGmAbPGwfTCIEuO+/ptRQA=,tag:w3mlQljA3k8+F8TZMZ/lww==,type:str] -API_KEY=ENC[AES256_GCM,data:rhmP,iv:MDqZaXG3EUJ2yV9BQMNWCSXFvSUjq0r6tCZ1VUmkusA=,tag:qBXrZh7IQm/2fprk1M0s8A==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSXpNTG5IVWVmZytyZ3RF\nL01ZN2h4ajNnWm1wYmFOUjljVGh2SExOR1UwCjRhaS93YzBaZzNtT2FxcmN6Mjh6\naTI5cGZWeEhPVDFlbzdrU2tHa2U0QmcKLS0tIFk4SlJob1NIWXgvTi9kUlVPVGxz\ndEFmcGlVeEVjSTFVbmhnVndYQjFMQWsKSmcTikOSci9V3b0XZSZ4Gw7C+sg5teeQ\nFhE6n5bVrodtF+C4t/B2iWkY42vRZWFqgtDVJBE44Kx+YkwKhvjXxw==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:xPEW2ti+yu5X5KvTVrVT0nKsMAL8qJiUeO2iJr3zDegX,iv:+kczUDtC90Wx08OaYURLDtDZm1IB4ReWHYFBiVA4W/Q=,tag:51iLg/LQEKlD8Bn8uBbfrA==,type:comment] +#ENC[AES256_GCM,data:bMIuC9mdr64y7yLDCeF1PDYBgjcscTAUGEDzYsyenpO9hAFwyRh+Xb40FS5IqD+RaMP+BZPbEDczb4s=,iv:mj1zfuSyhETJcRNyEo6fWBVidreMbWJ72/hqHbfm1j0=,tag:sS9gcaVsudCqV/ieSHn3HQ==,type:comment] +#ENC[AES256_GCM,data:dHmkxYKAXWZgWUIaySBy34hxOLEmIwdtTf2NpqgS5xFidJEFl/Pwq3j67KGjM1X1ihnaAkYAnLIrWY+GXT16oXyKKA==,iv:ZeD4sfVZTnRmnYfIuMpLRuAMBgt7etE6lZcI637qs50=,tag:BiNHK/U6DzFhj+6TeWZO0A==,type:comment] +#ENC[AES256_GCM,data:FtTPQt+1tnHf5rQ2oUljgZHSsbiX7sh4h3txCG6nZ01WbZDAVXBV5qmypZuQ+Igl5A==,iv:1TWgLS3fSj2zySQ9qSUHwAP3AMLQgvCG9e0mHT4PxCI=,tag:g8Zz0vsC6q1TpkmrndicgA==,type:comment] +#ENC[AES256_GCM,data:Rasw4isced7Wu6PUJufweEciUBfflGMCb12t+Nbmt+fB+R16yK1/ZzRw/uLRuVKVCfjbDQ==,iv:7I0yabonenynn0+XYu52K5hs7ZgUB9RYe1clxRu+Pmo=,tag:QD6SMm4RISBhZPzErJf4Ww==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:UWNyQ7x4Yog=,iv:HfTI7pTFFfY6MBNMOkrzLZe3seo9hX+qXwLlMrrKoTo=,tag:kAMG8YkFwBg/pODaRVTFEg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:au8QFwvVxjk=,iv:OaxsJeYO7upGraujccFl7fSGbKf9z1DJ+RCNF6u9yX0=,tag:/7r10SthrH7WUHpy95d65Q==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:x29yhK0FPg==,iv:LDeVSMYMu+rakVMA3sADQccGXMKzCN7fCtOA/65E+cU=,tag:lCXhpptU0SPQ7nmPfhHbkg==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:Jt2N+vG4+W7m9aJ0czJrh3LjWZ6nNpBkLwoxLHC7r3NALbST4hH3kKh0GuKSbQ==,iv:48ICqtZgMtkjgY7NaTqT2C6dcOrCxAMC9V+X6UrdzY4=,tag:2rHlfM4gw6PxH24S6yYKmA==,type:str] +PGHOST=ENC[AES256_GCM,data:avU=,iv:saIcOGJk41bH2Ah376Ecxh93va9Ce3sB8yHuMJuBuXo=,tag:Qqw2vnAetJMG5a6Ogrh3Zw==,type:str] +PGPORT=ENC[AES256_GCM,data:XPjPtg==,iv:OjYLSbOcznhxWwXaD5s3GBeKJQ7b8TIQYKLpJPyNhww=,tag:97qBEJ/oAK4ZAA5vQKCQVQ==,type:str] +PGUSER=ENC[AES256_GCM,data:NqKqy/KoFIA=,iv:nqKZdhhFenRD6QNH1ufrdTpBkSAjHNE0cBNFovlM/Ls=,tag:HNqbCLPyrv2PZN+3DxUDqw==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:LddVO2r/nlY=,iv:v2BV9hVOPHPKxNhmFfyHqVVEynqstJwtf42CRNYjZU8=,tag:sRFyh1ef4Klmb+xbSTKakQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:4NHPvI/Hpg==,iv:b1NnRIimUNDjPZw/Jo+HOm+iWTS7vMoBVVOF9gdvQNg=,tag:5MEp1u+DmTfgE7yznJHGjw==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:/UzBgVY=,iv:wfzhRwAXAsniylwjn/G70jIQtq3uWpmAFXw44qCYsds=,tag:2RTQRf3Op+0Fj1L1qlL6fg==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:QnwcWFInd3h/bg4pHg==,iv:3fEgnJgFy2s7N/WRGLaQK+kLmaIJdTjNPIsqTv8cBxY=,tag:ZXT2tgVxDQBwJ7gGC849jA==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:rB+3cQ/kOg2+aBCfqw==,iv:D3yCT+JR6BSc87bOvnTy7jy4EuebkNMhpwVKsIKgnzc=,tag:9IsyECU5DU15fW/9qUijOg==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:3xHH0Rx50sfiVbjaEe8=,iv:TGqqYNY6LGT9jkqweRt9pwwXWH3ij9wN1d33a1lQzzk=,tag:SC9a+d95XDE2sS6m+RWapQ==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:6BGkI/1bOYpdNHU=,iv:0sIIDIKOyFzS9eJTyBBBzgHiDPLcxzHFN2nRcz5G7Sw=,tag:BWI9OMlkNnuZhv/mC4w6gg==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:F2CmsOXzBxLHJJw=,iv:37dreE5A9Gure18vePynUoVnNWViyYkzRbGA2hxYWS4=,tag:91gsf6SwWDyoxZLQJUIJjw==,type:str] +S3_REGION=ENC[AES256_GCM,data:qDoQDdDxFMhk,iv:3ju5eluMB7Buw4wIgBhppo0/7s0d7UEgW0IlvkpKbpA=,tag:mkRf/b5mByhRLws+O7UVQQ==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:o5oyg+alNCCKjUOoqgrpXc8=,iv:3+zGUpN9cAjvzNvvltZ9saePT0wCLvXjmFgDB5HlVHA=,tag:CpyTEkuXcUbN//bKM8B33Q==,type:str] +#ENC[AES256_GCM,data:dzwcgo6mht7l+3CBkQDQE1LUmjGZ686sv9yRlfHunVXbiiprYtPCzGvbOcY5SqXWU2ly9y/fOc/83XNRbWrWNNuMhQ==,iv:I7GdpmFF3P3YiDAVgcBUwVPMbhZSPhOtMp+w609GOSs=,tag:eD9HwiFkN/3xOCcLyHmLow==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:AMFg7yJsEFQeynmkIvPzVTJdDfeaiV9b,iv:vig0XoTpiMgFHOdaarSMzUs0tYdOU0SOOm2bmIWUrk0=,tag:Bl3bGbhZTw33DGsDeZUJYQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:c+Zp,iv:yD0M/HDsQmnQ9CldH4bV3ZwzVcKXDyVQSjKDim98wGk=,tag:zAkY6xyKQYGL3If0Opv9Xw==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:BtIAyzvCXl0=,iv:844SyJz1XK/fH1Lq2S06ZolR/aQc85cPGYwwb1Y552o=,tag:n4g1LiAFSPsWfUBsxlT7aw==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:U6VKYw==,iv:9vDuyR8nD/MjPDMa7Y1+yu1E0Dr7wNjpVBPrn4+NGmc=,tag:9iTibzJuq16CICqoppHtkQ==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:AiyC,iv:NH9rUKDQrhmEWqf2tr0T2rqvmwB9OOBMqCRimX8oj3M=,tag:VtHkhkuPA0tgr31gG6Mw/g==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:wwxo,iv:qbLH85/BvDuPP5LN6WaSBbExl2sTrwEggE3edhMizH8=,tag:GZv8T0Kz68tpgHKwoSg5jA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:P/BB6Bv7sx4J9ku0ODKe,iv:hHTZMtDhfggqPSVrHzjuHE5ww6YZ0XmmTtm5xYST1iM=,tag:l83r3468MVYkjS7BkneFCw==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:oLPi61L5u28dX46i,iv:UNaYudNpaFywq4mEbJHV2/ibdA+SZAFl+CiqGkPygSg=,tag:Fv4jl4ARHVvDRltgKA9xCg==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:c0h/,iv:Cva02JI4nKYuC4klKELQMlZZFHS5Fea8NUozDScJsTE=,tag:pQtwh6N6AQjn+1vwA+W3Fg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:bcxZ+8oJHx434E00Zwj986V7,iv:Jyv4HvS2olNgpzJOshAB0PD5lqnfKsm+MTukV+3ynuU=,tag:LYGOEKtoxY5t65Pi2bMHTA==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:sX36,iv:o/PzEoR9FsEUsA5UeKyvfC7LZ7UdefnQ3GjjiM6Lp44=,tag:F73SXJaPvNzo4hSIVX8pUQ==,type:str] +API_KEY=ENC[AES256_GCM,data:H0UG,iv:w0kjTF9V22OMM8DBRKB1inPXKOJy3PyjTeu15rFP8F4=,tag:JJzjKo3eMJ9ZLJCFFPuNLw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4NkY4RDhnME1NNjBsa1Z2\nRDJIT1VmTGxyNHZIUWZLOWlkNWpUMnhtdXpzCndkQWorNSsyc0I5SERrRHFlL1Ux\nZjFwMTBrbUJ6ald4RDhITlhoeUtIZFkKLS0tIDZNRjZXWG8wcFArRm5weDZONk5a\nR3ZZZUFEUUFRTnR2U2ZnVFpHRk5LMlUKMAgtF5hLwWDIHBrWmHwu7K8M4T2sFqvV\neGcH2F6GJc9q0nZC/A0rRk7ngsrHK5bdcdFRtghUXc8FY6MtLVwW4w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxTXRWQnJtWlR1d3hGNmJj\nbkFoSXRRTnQ5SDRCWnFYemR2Ym4wN2E5ZWxNCmZuaThEZXc2MEZaU3IyQm9CMURT\nTGkvWjAvdk9JazRqWi9OYjlUR2Eya1EKLS0tIGY4enNWWCsrNGFpaVVDQ01QcGwx\nSGJyTlgzb3lONGs3MC9hc2tVU0EvZ0EKomG1M1WyMipGycVn6RLSoRVyYVyu9r7P\n/Vz3G5rLaEuPWBjzFJROZHyGpgCTYDeqG0F4lUntA52uxJd6AxdcIw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZDU4ZndPbDZSOGVPc2ha\nWDJ6aFVZZDZ6TDVlRlBwS3RKNzcrckFoK0dzCm95MDZ3TjVKYjhMNDk5SlRwYThC\nWTBIV0NHMUM3YmRCeGkzamh1enRYUE0KLS0tIHZGNUtjTEV1Z2IwVFZrZWJUMWx3\nZnBkUi8wQkJvUEFDYzh1TVFZWDVTY00KmJU1ihoNJafnar1yIMLdMunAmJi3bKcJ\nxRErm93kUwgEhnQZQfb475DqLPt/GW7rPMBA8gMELdB9iMU22AwzDw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSFdFSjZSZklHK0FhekFF\nV1NKMUdabkVESzluODl1bUpFRGltZlN6am5nCjZLTTBodTVaOE5OMEMxZjZXVGZp\nL3UwOTR5ZlRQbUlPMHdmNDVSeVVGNGcKLS0tIGtWVnBwbENwdnBPMHcrcGJqSGpD\nL3hZY1VZMjBVT2Uwd0x5MHVUM1RGOXcKgYphC8MzPxiFNxbwYEe7yhpYKz49emO4\nZsED2Nlz7fiAfIcKZZIWKHEXvvVzw/TLbRF+cvozf9ciemHAOkYq1A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpUXcxMkhzVVU4YXF0eGxx\nQ05TNXlGdEJjNkJwRkx6dDdNNnNHY0ZHUkJFCnNHSWxjTVRFQ2hhd2pGM3VubUlU\nZEt5ZWFkeEk4RUNxT212aDNnQjQ3ZmsKLS0tIFRKU2dnanJEQmJEY0MrNTNJVzRy\nRDNxTkpCaVpYYk1zMGhJdWptWU0vZEEKku40r6861w2SLN4c0CEKYQeILACDBQqi\nsgWlR/mva0isWnyv1NPvhJI08SyLdCt12VqcmMojWYNUeta3Phxeyg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDaFVUSEw3bEl3QnVtQnRn\nRHVuTUk0MWIvZWU3MFAyQ2dnMWIxcmhLYkVvCmpNVHV4Z0FjMExKcC8rMzJ5NSs1\nbEdSYXR0clZpRFR4OVQ3aEJLMXNHUGMKLS0tIEZjYXdCakMxUjBMTGZ3d1p0bHJ2\nSXY1M0RxQkFkM2hwa09ONFl4ZC90bFUKR2OP7vtitVg5sZMSqS3NTAWyS0RiHn9s\na9vEMloNq9VLSRc+kVKev5Lu6heMpjqo9E0q/YdQ1xfTxCOSRHyhaA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzSDBZaXFKbGxObDZSS3VV\nRXM0R1QydVBYOWd3dkdobUgyYmMvM1hQNlVFClY3MlRiUzN6SVFORzBvZ1JpbEhs\nVDdIYXV1RzZrQ00wa200YXloejF3RGsKLS0tIDYvdkhNcWRsQVcxM0RnTlFyR0ZK\ncnpoVSsxaGgvQkpBVFFoOGp2TldkWVUKsHD8JmEzCFPLkBM/JWNUqQ1JZTYIHEcs\nl4lNJrfhEDeXP7YkrHotzrQzmF9PNOr2UBQE/UU35i8PoTm0v8XjOw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiN1JLbERwdzlKT08yZ09E\nMFUwOVA5K0xzeldDOTcxTGdUMmVkMkxKdldBCjQzWEg1Q1dqYWxYd0NZbEZFeCtO\nWkhKNkNpUmdTczNRSDRScUhHRFFXNTQKLS0tIExkemxyMGx5bDR2Qm02SmxDYW9M\nRWxWdWNYeUYxbG8wODEzdWplZ29JOUkK1lHxXEwDEsnTVWCgLIP1CnMXe9VmxgIF\nMUuYkZ1E0enmIBmMs4icH/ql6GqFbmKTzwBaLtVswCrqLxZsECgo1w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwSVlxcTRsb21XUFZmbmhF\nWGFkL3lZYW85Ym1vQW52WW5QaE5tdzJjdkE0CnNJaDdmeDdBNjdIckx1MmJoVXJI\nWG5CV005ZExmdTF4eXlTakhPR20xYTQKLS0tIEl0UGo1d21zblZ4T1h2Q2NXaE02\nWVNPNHIyU3NHalAzeXplRWprK1VmQzgKm86aapCIGH8gJ3s6OGN0dnx3VTSIob3f\noyvu2XTE17GU3FG6fWotZ7BKQfto+MgBH01ZixZnVsKXMg5acRqb2g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhZ0tpOGxDWHpORi9CWHlR\nWmlRSlFEV1drYitGTUxGSDVPSm9DVzZzMkF3Cm5udC9ZUjJJdlhzVXR2REM1VjZ4\nWWh0WXJIWHV5eUJ4MlNVTW5yT0FsaTAKLS0tIFpjMllvaVdPM1ByVFh4MnZQQkNl\nUGZHeWFTSlIyRHc5Mjd2SjlqWVg3TkEKLazoCPz2g0A4yOZfDI9lwF323CgRLgFk\ncIk/57W4bd/TSOu7VItt95uMDdVsWpOa+3lGf3fkrVBRst8A+xmH8g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxd3BtMHZtbDJBT3hudGll\nQTZ2SUdkaDQ0TGp4OGI1OWtZYnJaTEFyU3hRCmNmcEo5SnVmYUo5cGZtUnFNdkJi\ncmtDanVQSDN2b2didUlJQ3BJNU95VWsKLS0tIGE2aDRGN1k2VTdwSTZzSjd3NzF6\nNXJ3OVd1VnQ5d1ZHUytTd3M0eElRVnMKVUnjV4DgIuWRs7GXR+1r9eIeMzHUgFzl\nhq5w2dkTrS1w2l4y2PZJJ+sc6rxSFF28S0SZzXHDaXjT6phF98qW0g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVKzJCRGV4ZDBnZFJ1TWVR\nVFJ1Vk1mWDgxN1JhNWpzUmlCVzI5cDYxTHhJCkM0aTNLRVdyWGxFRnJyc2FrUTJK\nVnJHQzAxWEZIYzdrb0cweldHVHRGSE0KLS0tIGdPMmg2L1Jkc3FEb0srdmkzbXcx\nVWZycjFjMjl6WG94N3FMbG56MWQ1OVEKx+LT8bGKjvjepwKRRrbtKN89ZXexIoUo\njuZCzcOe3sBy6ZjIJ1IUX7pRckdNGFHuBg4V7sjH/t1VbxihsQHUEw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1czVOZ002Uzd1QmhkU2pY\nSDVRQWNVbUh5d2JSNk1jOEJDajg0RXMrNmtNCmV2cUlEMnZDT2NtanBLazFGS29Q\nczJMN21aZ1JHanBjWjNIRE5aWkVDWW8KLS0tIGx3Q2IwbVdEMlFvV1duR0wyamFO\nM3lrUmthSGFobFlQTEphcVF1UC9PUk0KTmN5qNl/iqog/CmlEhGoT/FjS4dLx4dV\neN3Q1gbx08I8ZOoHRniG1tuqabdrGPYIyNBa4X7ZvBru2IWN9zEGjQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMclo3M3dHeVA5Q01GN2ll\nbHVuNWFsN29YYjhnSzdObU9yTkdmdXZlcEZnClZCSzl4c29zZnZnZVZDTGl2UGJZ\nY2E5VkxHNy9nYkpVVXllRlVSNzVBaHMKLS0tIHB4Y1FJZzBjeXJUa3VJUzNEcGZl\nRDU1aG5sZytDZHFLS1R3Sy9OeWdBZkUKE2qmIzaKcctI+4qcSs2FHsdIsgwtc8wp\n+BiCaywNn0GduYT0DekA+NNypq/n0Yjqu/jGJWsf9fNDGxWsp6TGlQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSnV5R2t0a2U2dVZBTEVa\nb0phTFllU3VtUW9qOFhwYTlKeWtZeE9nem1vCmVjSkREUlRNenc3SnVlbzA0YndM\nai9SWUZBMExxeWhyeWFJMU1ZankrRkEKLS0tIG9HOHZHdkdsSnBrTXVKbzdEdGgr\nSkRMV0Zrc1JUVS93RDdXOW80NWNLejAKzqlHisTI7xLNWmWAuMyy7hW9QOWK5Fhc\no0Ubv3QG97RsDXB4YbvAgAhoj5Dq6bQYmyFjDO/Qa/EAcuFpBnk/sg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T14:56:11Z -sops_mac=ENC[AES256_GCM,data:zN8T0A009uUwjtaFCB1kUYvauzh70ryM3/CIWvmjbfJure9wMfL4OnGhb1crZaDe+1Ahwi0UNAkkS3QAdaSc+cbQwBVb3TuXpxxZk6dgZiTPOWSR7mUXNlq04Aw4lYNkVBmL4vdtkUDjLUGZZhKnANbcKlczQAfAviqYROEf7GI=,iv:uM8+s8c07tGZ5ueAXK+mJ2eFE0nta1uXeS4o6up28LM=,tag:DxaGsck6rEw2J1nyaaZLKw==,type:str] +sops_lastmodified=2026-04-23T16:07:21Z +sops_mac=ENC[AES256_GCM,data:B9SSgcMGnitCUAFtVeBqw0HkfOcOt4A7LCYHDeol4y1QEvtOFXpwmOgCnxl+fhakvscnWDQEWjJd2dhzlRij9IttXu1WbfyB0+YL9+38qRIEdR4ALgCighX+5f0bVEZImXfKU0OAkRkMWSAqfchyytmOvuO3fDcvYP17HCtoDGc=,iv:pIscD4cVo/DTXDaP0RBHLv3ffJinfHJT1mRWGWeMOp8=,tag:OvJh6uwwLpNpUOyyMKdpFw==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index 13e081ae5d..a23309a02b 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,53 +1,55 @@ -#ENC[AES256_GCM,data:as2oaG9wYLYM8X4ttshjzwYS5Avt5fsbajXjkZutMYZF,iv:iXTzmdaP6kju5lORoB2w7QldKZHiM8Dc5u9VkZPsD4o=,tag:kk68kdx5HIGHxt5crFFj4Q==,type:comment] -#ENC[AES256_GCM,data:2XW5fUvWC7LyMCfQUnCLjxqMdvVKaV0HfAFpJvpcMDkx/kfpbUmlc/cwvIklXZ/914nlR650n3utyXU=,iv:OEvsFFBZs/Bn9DIaStqulq6/CM6ob2lTxvJLVAWZ7wU=,tag:OXx/PIfBKKB60AOmeo/oVw==,type:comment] -#ENC[AES256_GCM,data:Pjb0aKdSTS/Y0g+Rr0PJ7iT+1GSTU16QtNd9bytTP+riDWnfz5oO2kQ7+43lUDsWPNiDNmmc6nMsNSMWzt71mCcWGA==,iv:R1bvVVZB20TnR09ipbHwQN+fjcoRGS5QteW5hd5xOk4=,tag:G9rZs+drbWIBVpicf6g+Lw==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:16NiIY0uoFVuyckfm+ZEXBePbA==,iv:rS0l3bU4oByf084VHozmSyMXBnjGZ+BmW5PFnhqfTY4=,tag:jIaH5ptymdinuktB2hogaA==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:gIe3oZBUpQ0vrWVTToOnutRzpLkWu8NqGMbB,iv:yw7xGToi2hHrahb+ZQ2EuFHgU0JaP1FwGBIgOnCe7B8=,tag:kSl4jTmqUc72Yr6OnORr0Q==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:8RMLmbtu/Aw=,iv:6YLG8YK9SJmbLSh3TZp+tybM4s895Wd/iYdqx7VWjYk=,tag:3RdxqHzIi5NJO80q7Qj34w==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:MbCnMuLebPQ=,iv:xSMxO5t4CoZWOZ+Hzt6MIne1pdAcO1ww1E6l+4gpDfs=,tag:ECsaLzVrC1Ak3DTmSEOIxQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:+7WoetNYQg==,iv:6tDcTrky+fk+IavogRr1PEiV34Icry93vVjcA0a8jbc=,tag:/kYW4o7L3ovoWm1Jguc/iA==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:M/2uVs70yV6+Cm9ZtfHS8fg7dQxmK2yglaCePM0+Vh+8jnExXHdgempuETJ1yA==,iv:bGvHhyGxM+IA7JHYqJhgmwZAEVCPmABbMr0CFLI39Ic=,tag:ogFsbQRGkkwWxsKwBQ3Uqw==,type:str] -PGHOST=ENC[AES256_GCM,data:PCA=,iv:na7pcFTMf4eUL6YPpAnqlGLhbxXZQuVi+/i2o5NPxTg=,tag:5KT6wKBJbEzabYw3ZLGXkw==,type:str] -PGPORT=ENC[AES256_GCM,data:cjsQGQ==,iv:2IvJrSkWdwDA70aiXF4//FqPLamCIwfWH9leb01/7OM=,tag:XfN3kr2lwZEfEqHbJ/VsqA==,type:str] -PGUSER=ENC[AES256_GCM,data:Uqg1rq4FOsY=,iv:K5hRVBEUEZIV7gWmFGRm2mI+GWUPMaiRyOM866vV/bw=,tag:VGs3oFoTDEN4oqxrpEm0pg==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:ygDDAPEKlM8=,iv:vTOV6O/r5EsSd+QUcoDJadDjpR6JiYnev52oJG5nCzg=,tag:iLdzgbw0KRHdGXiTHcl+uQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:BEn4xZh5ew==,iv:LtkLRZxhH1f/QSnv071//CnLZB6YwAHS6OfG2RGH1RU=,tag:OlxY203TGMWN3tAKH5NnWQ==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:XGiOcVE=,iv:7ql3g/Bn/xsB05dHsPgUeKPvxS6MPk2Be7tr155MzfQ=,tag:+bkcVgit9RZ4wpEe2Fo65g==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:XdIS9kZTCV2VNo7hzA==,iv:Nh5SgxuZ6QXPuF2eK/IVyKAv58VQXFWIi3PDcgnp84k=,tag:auRx2Raogv9Yd6j3Zl76fA==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:Am3l5p66HAeKlnYSUw==,iv:sRIBVlMTAuOvZDiL7mDKN6e2iV19WCN/zPtPv4xZ4yo=,tag:jXgD95EnoekrKFY8ij/wUA==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:ErpD+xcN3yyr7JmN8/Y=,iv:uqSRFOullXpwBOZW+NNyxDD5l/HBM8qSiNXoGeV8WbI=,tag:ZxQwWzlCA+Nd+FG7p5br8A==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:a9CTY1L8RZwP4U0=,iv:cGux0v214gfm4xEqiq1wVhuRqttLQ6A0XSJsZjChrAA=,tag:KFoSv1FSqoLyG/ERHow6Yw==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:B30gI98Gnh7ssII=,iv:hOaHJr6oRu4YqMwjQJdwtyulsIh+K4kBfoIO+RGFPc0=,tag:ZtSijs+AzgO52NW1h04TRA==,type:str] -S3_REGION=ENC[AES256_GCM,data:OjqcbU2e98mk,iv:BjHbvE4bXUzyeiEH5jidp3lenHxbryNO22r5zFnkYJI=,tag:ZNVVGZHnVdzOk93ddvexgA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:vWaSgME3IHb4sMlmKbhJjUU=,iv:TB11g5Hdp+D1M18C6EbEgATI9XQs3O+HSQvjhq3PlqU=,tag:lblbJf+y6sRZOIxLJMujkw==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:wKxd8Rpo9u6/mzjogMgzihH37p+FrF7AQjFVrIxPIZaKHg==,iv:j+eE4/ms5riJSP49bBnGQTHIyOGi0E1SbBQIKyN35P0=,tag:5vCRd7iYvJ5LmopvJsHkhw==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:hiQdlfI3jLoJcyOmi9o/bI2UrJMiHG73,iv:YvlF9JbBXKAkRUMvYDPy5Kra0jTpcV0rfJPp4f/fLKQ=,tag:uuoCmthPZCAlqlJB62ZMKg==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:RZSu,iv:HEZp8TpI6HhqnkDS96BRR8f+YW2MMTP0Wzy+rYuZgYw=,tag:gC8MZGpRZuABxYmga64MeA==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:9aSr6mH0jOI=,iv:eokWSt5+smadKpSZzw9IMLV8N6aDz+CSPpj0Y6a7uFE=,tag:NBlr+zEB+WPxSkYMMA+Jig==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:sv52MA==,iv:ZCCd1EUQdWrnW1vnSORAJmY7VzbdnwGyV7yVR3masIM=,tag:+DUV+Pg/26AIPHuaV+A4eA==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:nUQY,iv:o4W3Y/9G3D/s3iQzwPtvHf+BrQnc7rPQjOGaIu2Q+FI=,tag:1b8W2NZclP/1tjYLhmCXjg==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:Lur5,iv:ufsO4Wge3gZGBzwuB3rOnxdIwJMzSwK5RGMsDAqO/qg=,tag:9f+SChJFR4hWZu8w3OXkqA==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:kCqN,iv:hLdHAF3bdQ5jegshQ2CYdab2KT7/nKiqCbrvJPzIRs8=,tag:cxL+XOfDX43TT5XVo3PVNQ==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rXRKqsSs97xyfjugI8a7P2tL,iv:KIZhx/J4wRd5RgpqDT9BuZSAi3QcIpzpQcU2pcvi+DQ=,tag:QJWtEMK3IbU3wynh6vMXFg==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:LqQ3,iv:H1K/DHPdO8Xr7rVbArfaon4b1/Vu4HWzWxeiynKX41k=,tag:RLNWBeRiw+EaiWpIqx+FLg==,type:str] -API_KEY=ENC[AES256_GCM,data:ARyq,iv:3SuA4VzH7Sad6+1cRCXq5ds/PLVHM4y9flRUHCJRxwE=,tag:rP+U31ffoHDgLfqTeDQKwA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWTEczaDhvNmhZTUkzcTJx\nNTg1S0YrZnVyWUVjcmNZY1k0eWVoR2ZaMFh3Ckt6ZklFNG1XYXprSnRDaGFOeUk5\nYnhweUFVRkRtZm1Ud1FxSFd2blJsaEEKLS0tIFdMeFcyZnRITnh6WlRkRGhRTkFJ\na0d1MCtSbDFabk1SckljcDIvRnh1ODAKvwRfy7KLJ6vIMCcmMGQ5h4JpEsmNMUhM\nkE8x+tKXddpwNwWGSNkoJDHD8BPCi37du0qkT+ChD0UYtwwmEW7Xaw==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:9jS19wprfxb5daPug4yd6Cn0wU7FC9l1ZBQzn+NcKHyv,iv:QP40uKs3ZxG9Davzo/98rKMbyaIowBXFryM2J4UZ8BI=,tag:Zao1Cy50Fr4y2FAJq9mT6w==,type:comment] +#ENC[AES256_GCM,data:R0CAh4m45SSPuxVnk4QPh+LQgR1UDX+aCEMuQgc28SCcyDxr1qEse4R8YqYxcctLZIhlQt94whtxP4I=,iv:08/UI+BFyZxhr0T1ernwGCTShGMPk6+7OiRODPGxNG8=,tag:taUTUM984sMnVuZ91+WKcg==,type:comment] +#ENC[AES256_GCM,data:V5Xbv0sMWs8UrbH3ScAvEwHJAlY1EJHOrnbWq0Y1QlIMJTB09Sg7VJOVvEJY60bAKpq+JZuyl1ZTG8iX/1llNIAOpg==,iv:AC6K9Ubxm5cd62ACZVITFOrhVcdPHr9MzOXj4rc4mjc=,tag:Vd3M3cjpHLzVHI3nPBdfTg==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:5j/lr4VS5/BNU2MwEaFNK3vTXg==,iv:kb/EOIDpIfEiHhG4Yn02P6w5Wn7VtcLaRtQfB33aoaQ=,tag:ewyASFdA5Y0P7r3dXDrWVw==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:jYLR7Hf7IlEUpk1HYfcp95a6or2GT8wtdCaG,iv:x1v7pkfyQoB//JtmfXo0ndia1q5WT/qu3Yu3lMztXk8=,tag:spSppQAroJEGcrXsTtfz1w==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:/z8cDGQvpRQ=,iv:pK8aJx0S7xpbCTEsSNsIxCJNX9o+7jCaucri/j9HP/s=,tag:0LCRwrIR4XpCfGLFDW0zoA==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:0ihvlLrUGJk=,iv:qFnYqStgkFBwrS3GVsusBna01/QE/xrwsqdv/Zb1gCU=,tag:TU35OwMlNhHNt3Ojz2p3yg==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:a6/ZrHutXQ==,iv:mFY3I+zUGroyy+nby9ipdeyDA34/rOZZ1k+jg3eMYgE=,tag:H1wU+kEdEdc5I1siIDMVpQ==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:QGtiIlRnrdGpitz7uskl6GGCdaOZApTYXVzEKxF9FivdDEloKoijoplvIPEgMw==,iv:M9+imUawLXi6VYtmJ38btOt1LWrtw0QieZk1tSV646c=,tag:3Q4X3VzQWDUTxMrU1m13ZQ==,type:str] +PGHOST=ENC[AES256_GCM,data:tVo=,iv:oe1lO7qd0Hgab0nZaCEVjmPZvTfYVbLYENCDWvJCFrg=,tag:mBVQ7CMOhBWeSTaQuDuXxw==,type:str] +PGPORT=ENC[AES256_GCM,data:BEWIjA==,iv:y+y7Q4Tmn84a98N7Wr+3ugw48X5Jc4hUMdnM1bkJX5A=,tag:djVRmqVVw8XTq7MLmnge1g==,type:str] +PGUSER=ENC[AES256_GCM,data:+7uNaBjpsKw=,iv:HFNyQWNeLFIV1wvwW/jEMmLnOrziqluZltzkVNG3dJQ=,tag:+L8VEjLBWqwNHYuojdfNAg==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:lxI5qCntpUo=,iv:7hZoBcF9Kkoab3PReI5SzH2gr5WTng4IhZpwCgIdoCI=,tag:dNGOa4l475UnzeW35BueDw==,type:str] +PGDATABASE=ENC[AES256_GCM,data:WVhH17Fsag==,iv:TOi22oaVHmWCRoTDfDyOLkLyrFz6571usI29vCU9Keo=,tag:Kse111dXX08NixWcqHDAiA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:JUpQig4=,iv:y1M2wYhT2HixMXJPq8R3Ejl1ifYz9Qq2MmEYliyo+L0=,tag:dpGfO2OavJpeHAj2rZw64w==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:sI4V0/6Yz5OJS6od2g==,iv:na5vheC+J8gIb0mJiEgtlubbSwzGL5ulK8ZHWVKHPes=,tag:S66wUm+nYU0lbxW4ve2y4A==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:76uYHqwnp2Zykh+SDw==,iv:aq9KX05xq4d0mVMyc02bl7rAhtrLp1OGhl183pgYtk0=,tag:1ZtzEuqAK8v0ZuwR4wKG5g==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:eA0a3iCzTWaxIZvAK+4=,iv:Fo0pz+pBfS0BC/9GkausHexm/OXgVHzPb208V94BV3s=,tag:WzfztkqfAEnc+CnPKVMY7g==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:+NOsXtQ9FVjTM1M=,iv:d4bpCn0hI3VZiqWYoBfbr9OyTTaOgf52YvbSzAyhwT4=,tag:XprQfUToDzD4TZIu6LQGUw==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:p4g6QHySuMDnOKo=,iv:LZu5OJMqtJTYsA5Bvuqy/8EEiQZ8/iJyLHhr0ZwPGDo=,tag:jHELG9NZv/obPs0S0bQghg==,type:str] +S3_REGION=ENC[AES256_GCM,data:xTtHOIbS2khg,iv:tx5acnV5HsVl9MV1XiySo/h4ZEVmhYgx5jboM8gca+I=,tag:wLuH59zjApinRi/55u5OUA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:cZK2KGr1K2WA679dv0dDiWA=,iv:0wfvRx79hNKH61n3G4IRNVY4S70rl/Zrc1FSm09H5po=,tag:VRJZXCtbBYQYinYdhTzzng==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:aEmpfMYePJ7cTMJQv9yrV+0NsVpuywiqiqLfww3SSm5jdA==,iv:ZqKzvRP/2667y6nHXMZXjuKvNIcD2aXBxs0dk5h1Uok=,tag:CKPG+jN/uKNxWjvdusKtKw==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:2jY366rmuwjgxOH7jX/C5ks2F9Cu6yWv,iv:Fp0bxF0KrneoqEXEtKp2WYczvO+hyNULQvddpIhALh4=,tag:+X2NZGJOV9nlXWt6CmAcRA==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:ZcoH,iv:xVvm6oDXzoGZxsHfoOSA+qWDVHLywDL3kxLBfcj4b10=,tag:sqckRt0GyS8Wpd8d18oFhA==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:XZPg50iUjrM=,iv:2Q2mEiQM/8rg6H0y0yBMdYR8foHpq5t6DmkmUm0yWLU=,tag:GYJRdJTo0tf8j7On98xNUg==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:fHkFUg==,iv:QurHqZK8sUBuKH3IjHU5XdvVnZxLSQF++3jZbSoimMs=,tag:d4GgXAGizBQau7x/Lda1Cw==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:awRT,iv:iolxNn67FNxxjR2z5vTocnFAgv25AoiZn1C3abDQHno=,tag:HJnYiWIN1+uyVo9UoVz3pQ==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:VbRz,iv:Hs8jhwJLZ6rweGzuPui9sKpVWpvgSb2bBXlfYV3v+As=,tag:ROgGPJOZ6nl0FxlAWblVWA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:IBuFpNVlv2sTrzLo+CLU,iv:mh0heoTTwkFK+q2BRt3dqcIUobf0pQ0gMP9XNF8Vnz4=,tag:FrRVMV86L+vB46n0uh7syQ==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:ByaMQJRJG2S1X6Ck,iv:m0sGS/OBAodeCsr9vQ3MzZvPP14VNHVF0Td2MnawHIc=,tag:6VUALHZvXV3VtZ/xCh7N1w==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:lksz,iv:/+XaBc5it027Us0H4p+tl+m3V6XZkLhUQKLA5jqrMvQ=,tag:CfmqR0SDEWXr1LjJEJWmjA==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:nxstuUV+A6cBY9xnIA3kZL9W,iv:eCUabtXIAFT90kuG3gAYih+FKpSeQVduwPqaKSrIKtA=,tag:Tm4tTlanw93mi6TUpXK96Q==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:H7ac,iv:hnDco8MZkB+Wow+RE25oZIXl3FHUbronpRUyNwmctW8=,tag:5f7TY/6TX82IkpHUoppTaw==,type:str] +API_KEY=ENC[AES256_GCM,data:t1ZR,iv:jko79ew5iNLG9OVvnsZ2fNJpmWVK8UqIcQW1cZn5cIw=,tag:zaaJzmPfNTLXsJoQLidn5g==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwamRGTUlxOXBaS1FGSWNl\nbnRGUHFqKzg3eDRMV3BXS0JhNUNSMmtIQkdZCkZmei9pOUtONzBKMS9ZTVlndFpR\nbzhEa0wzZkFtS2VVbngraXljTWVSRHMKLS0tIFZkaWZqQ3BnYXAwWnJQRTllYk9m\nSGIza1hPQXhZUHR3UElFR25ONzc0QWcKKl6F9dpFxeIWOOygRj57PZYuezCfATv0\nHKEK1TmWOGESfBZRxTqzx2C5ndoR2XYF5pD/Oi448gvfMbSSQioBFQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUZ0crQlBMTzI3WjFLbTNi\nRzFZbHNYYXV1b1h3dEFjaEhWMm5pMFIvWlVZCk5PNTFjWWUxSG52STRyOFlvSTRy\na3hKSDVWU2tRYXl2QS96MmRrcUhHeUkKLS0tIEJZSm9Kd3JpVG9EdUh3bGgyNlJ6\neWdvdWh3QjZrV2lweXgzcEhwM2FzZm8Kk2ZdwLlpRVyixoGLX07IMyx/WDXviCZw\nyQMzjW6L3ZozTiqCBb3iT/Ng57X1l6R/ucho2y67+waKpM0cp5HvlQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWbTA4azNqZXZxWllGbnhO\nUzJsYWFsYVRNMlR4R3dwY0FWV09WSjRrK3ljCk5PcjMrOERTSVExVVpOcTNWcWZ6\ndlR5Nmg1L2FQVTRtYkt0RGVRNGh5WlEKLS0tIDNaRnk5YWhtU3IyTk9xdXFTei9M\nQ2E0SzVBQUFFMmNGS29STmRENWtTSVUKlq1UzYQOlMp/nK4JdnEaJtCZCgey9VYr\nlECwikTaJzIXmLhvffRK5nzyb9cHcikD32deTFH4xz5Is20+bQHu1w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQbTYwVUF3WnBMTFAxdm5u\nTElON3dRMENoa3hYdzVzeTZuQjdXd0EvNldvCmJjbnN0SjlJUmZlRzNZdTluUUYw\nTHNtMlVydk01dlZYWndJV1YyRXgyQjAKLS0tIFMxUzFHQUFZR3I0U0kveDRGUEND\nc3RaTDN4UE5LQUxxd3U2bStxUXEvN2cKvzzuf3Mvmyj16t2D1lvaxdbpZl74wHpx\nP3o3XxoLfRtSYBnCOq7tUX9Gd+vjCTYQEjq8XdKhcfCzBba3lIcEIw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKUFNJaVZ4VkRkYmFzTVlj\ncjZLM3Ivc2ZvZTQ3R2VMTHdKUHFPQTlRd0MwCk9BREZLQm5FRG5rL3NmN1pNaTZy\nc0dWdVBJa2lhU013MklBY29rY2k0MlUKLS0tIGRIdzJuQUR4M0pEV3hYaEVvc250\nSXQ4b0hDODQxaUs2djZieFNpRWEvYVEKN7zRLrVsf3y4QbgjPsd9r++0fFJUx9pR\nU3b4NnQeD3lSn3GHBajzZEscPoGgdC0M1SI5GZUlxgy2hyWEL5iOlw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGT01jT1dCLzlZU1k4N2Mx\ndldIbmNCT3pSS3AwU3kyNVFseDdOWnQ5NXpvCmVsdE5yUFVxVHZoUVUybWRiaXFz\nYTQ4RCtiMHFLVmV5RlhIcnpSdHlIUHMKLS0tIHAzaW5sd2o1dEpuVzY4NXNJdWdu\nWXh6L3NtTytLUW9YY0RwcWhwWjZrR28KpHiRlF/ilkZ5kbeee1Cn8K5J+RX/JMuk\n8ZoKRoUmAm1GxSBm4ryHjefOtbzSBxrXf/Nd4/TNQoJsTsWt3ik3ew==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMcVVXQ3MwZ1E4ZGFLL1Bp\ndG1wc0FRSXhvOXRPTGY5TlppMGVlMld1OTJ3CnBxWVRLYkFkNmtvYTRiNENQN09j\nTGtpWS9VRkIwdFR0U0ZXU2NCSXBWYmMKLS0tIHNUWlpFYWdnSXZuWUo2Wnh4M2tF\nNGl3Sll0dUR6dTZKeFVEd0Jhb29hc2cKTxWd8sh/2qKRRO+8KwHKSVhTI9hD1fJ/\nrB7qwax0fyODEeBglZzicYIuFLcqRrnRoYXv7MqnROKRV9yvh1iJvw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSSnlJRE85MCsxcmdTaC93\nSkdsb3MwSFlLRVpSSmVTRDVPSHZUeXVuSFQ4CklDNWFlbGZxVnYzY3U2ajJXMzlq\nSVhjUTJpRm9qNmpNM2hHWmtsVmg5WHcKLS0tIHRDNDFwMHpWQ0UreHozbnFINGlk\nT3lSa0VOQ20xQTNUWHdVWTRJelZpZUUKhaABId1ICWqFZsV8+34fEcUO37gVdBpN\nznIS+LV1pxPt/FnlfqtUbtSBchSy/en/Is3//4tqgI6h6jMRC6+cKA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaU1ByZm9RV1pZOERNUXRz\nNzR1SFdQOWQ3Qk0rOG02bm42MEVMQ1BMYkdzClM4NVloUWdYdGpnK2RWZ1YvR2FB\nQlFUOXQ5R2pPdVVlRFNOclBmMHpua0UKLS0tIDF1TGRzRUg0MXFhbWxFVUNhMGhi\na3R4TFA2M0I0OGExU0cvUmdhWER3Z0kK66ztONKjAnaruAF23GazEz80/iYMTkqw\nAW8jjwJ2yfL6AtF5KYkOnjaQvlzBbyqAFUPzp8sek3tS/NZFSS5e6g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4T21sayt5Wnl1MHg1ZUp4\nNUh1SXpVays2MWVYYmVTYzg2aGhLUmF4bW5jClFVd3gzWnA3b2RJTmZWemV5MEQr\ndFhQUDEraURXeVdpalkwSGZLSTBqeTgKLS0tIDE3Z3FnRUo2OEJ6TG8wSHE0Q3Ru\ncTlVODNKb0VwOFpBMjhSN3BUNDk3UWcKxjjX0ZYb5NnwwaANtgSKL6vdcVthIC6d\nNSa5Wf2uRyLzSpN2CVMx2gv3mzw7nL8Lcbo6rK5M3D/C8EcZFUYSZw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3ODk1dG5vSFJvdlR6WWV6\nMExMNy82cjJRbDFXczB0MWhjS1lOVVZKOERrCmp0Vys1VGZXczFRdTdWeTdoQ0tH\nbGI3d3RKT09NT1hBcTZsaU1vd0h5cFEKLS0tIFBwSmMrK2l3NzN2dGRiRXd6WWRB\neDhDelg2NUNzVTRrTG9xeGR2QWNxQVEKG6I+fb7+cYIkxGRTKQejtH4FsMYdJ0SV\nsjjTPYKM3MJX82Ob/zqD+qIUc6s3FYzWQrU3ypx7SfN4B7HJqEGFFw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsN0MxVnBYWlBhVXV5WkhH\nVW5nakM4Qm9oMU94ZGpZU3MwY1orVVZ5amswCnJsT1paUjdmYjRaS3JhUStVQVJw\nZHdOYXA3Sk45VjNLNVZTYlB1L0p0Rk0KLS0tIEtqRGZBajM4QjBPc2V6MkllcVV2\nNDJZUGFOQ3JURk5aVEtyU3NqbXpLY1UKTJAVVxuPWZOBJ552eFAK8XuFTAn1/6D1\nIgJQ6J1j0moXTP304ZSDvKPAYXSitgMouLynkthW/8GWce2widKZmQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvc2o0b215RHJKUGxqb1Jh\nS1VWOTBWZG1rZEkwYUpBdkt5aDdJeWxQZ1c4CjZDdmU2bGhXS24vVk84bDlsRTJm\nK2NvcVc5eFlnbnRTTFA1UGR5eUM5T3MKLS0tIGVMVkZ6WE5xRlA3dTFXR0F4a0N6\nYnk3bmIzYlFMYkxNNUtLb2RuNTlFUDQK8WyahwawQmjPl9GlXMA99wwTIkqzqEBb\nbKqTEaBdJgB6oIqcQVVqmZgIookouJu7oDDjep8Og3QXGFPYUdJ3Zw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuRnR4VXFUTURudHFheFZL\nVVI0SGpvVmFpVFpETHVoUkRPYVlKVmx4WVdRCnV2bWd6MDhUTERERGF1SVlFczZv\ndWpCcUpFOGVZbitiQmIzaHNyZm10NkEKLS0tIFhPT0tRMDI4eGcvVEZJcU1QS1Bq\nTnIybHRFUnBkMGlEU0xZUGNUejFQUkkKa5gYIa9C2I8vnEz/1XtHGXNBDNcrijjJ\n5v1s9x/uh4KV2SlXs0OerP6d9wFdYcjisZHSqd5Aqh0ocV2K6f/4NA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFTW96eHV1aWc3ZksvOS80\nSW4zYkxKbElNRnRNOWVaVW55YVZWbHRPS2lRCjE3dTRxS1ZNNTROdG81RklFWStY\nOGk1SGFNWldiNjBoVGdEZS9TNmx2QTAKLS0tIDJJRXY0aWZrRUxrL1V5N1RHZkhy\nMjJjSGFsNmYyL0hrZGx6RHdYUlptTlEKWg7T5PRH2NlJ/o3iX+jxE5yN2zyG43Jz\nWxiyfpirvk1jIU00nbLYq9GpYVF9heY9nqVkLJaFBY5A0CV/VKq3cA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T14:56:09Z -sops_mac=ENC[AES256_GCM,data:t95btov2s//tekbxZ++sVLHGVFq+znudWSljvQlLT7DohAOaQO1GlHRnsed+BvzuedBk1++DwnVrygFX+WQKIULlglRGLXOWj6Bs0CZvOyfb4/ypxohmWl218iT6ORVCqf3Q2RIhrJANC72Z0ckeGdt3EWzeuyM+qSd0SQ/hdTM=,iv:ZYp2Idh0yODD1gB8uDAfrJH5Ugbz0SOS8aVp7WNyhck=,tag:5RdKsjITJc2vL14jUbCuLQ==,type:str] +sops_lastmodified=2026-04-23T16:07:17Z +sops_mac=ENC[AES256_GCM,data:jE2SsdYz3TUQh5ELZKGY/rjrqtgsTbEWYxFo4ZxY6V0cA3lKbvv39DUP3Oaj7KPkmGnI3gwFw/KiammMghondZWjKGf6onqcpapabTd3/zIngHaoGqmUyj8r6y/yGiGLW9XhgJeHoMgfx4rA4DgtT0B+A/9+6EjbKqWRF6u1jrQ=,iv:HFOehESu5hXYsX7SeNodxz+6P/8dgWcOcQ2WI4++Gh0=,tag:tpcBEZnPXjc8V/mFhlDEnw==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From b9ad94bbd501e3d5c38636ff1d2b19832378c8d8 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 18:12:29 +0200 Subject: [PATCH 121/153] fix: aaaaa --- core/lib/server/email.tsx | 2 +- core/package.json | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/core/lib/server/email.tsx b/core/lib/server/email.tsx index 7d1e16b50d..251be37638 100644 --- a/core/lib/server/email.tsx +++ b/core/lib/server/email.tsx @@ -24,7 +24,7 @@ type RequiredOptions = Required> & export const DEFAULT_OPTIONS = { from: env.SMTP_FROM, - name: env.SMTP_FROM_NAME + name: env.SMTP_FROM_NAME, } as const function buildSend(emailPromise: () => Promise) { diff --git a/core/package.json b/core/package.json index 939331f58c..8d0fc1c0f0 100644 --- a/core/package.json +++ b/core/package.json @@ -48,10 +48,7 @@ "storybook": "SKIP_VALIDATION=true PUBPUB_URL=http://localhost:6006 storybook dev -p 6006 --no-open", "build-storybook": "SKIP_VALIDATION=true storybook build" }, - "files": [ - ".next", - "public" - ], + "files": [".next", "public"], "prisma": { "__comment": "The #register-loader goes to the correct file based on the .imports setting below", "seed": "tsx --import #register-loader prisma/seed.ts" @@ -233,4 +230,4 @@ "imports": { "#register-loader": "./prisma/seed/stubs/register-loader.js" } -} \ No newline at end of file +} From 4322e3b7e331a92214e256092a28153ced31712e Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 23 Apr 2026 18:26:46 +0200 Subject: [PATCH 122/153] fix: correct name --- infra/.env.enc | 98 +++++++++++++++++++++--------------------- infra/.env.preview.enc | 90 +++++++++++++++++++------------------- infra/.env.sandbox.enc | 90 +++++++++++++++++++------------------- 3 files changed, 139 insertions(+), 139 deletions(-) diff --git a/infra/.env.enc b/infra/.env.enc index 3226007568..f9b203ed11 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,59 +1,59 @@ -#ENC[AES256_GCM,data:UQlO2rMECRgH+mol53b1XStyMANKWsBB0zZvRm7c8wM6,iv:bqOgXG/ZVpTM0JR0yXyAXe6CxUyhizZeCll/ZGkMZHA=,tag:N5YmOy0FrWSYGeMlaFGSfQ==,type:comment] -#ENC[AES256_GCM,data:bMfUgGtx7d6M1u3nJBKfAFvT0Hr54vnZ943GSJsaqoJWytUUFVSGw1GQiliBG1qLWZkP1fN4pT7FblA=,iv:UwU8IBbI5vyK6tE+C99jvcFpwwZl/dWrqjtozOLEWTQ=,tag:POVIdz1OSH6uVQZluGaDMQ==,type:comment] -#ENC[AES256_GCM,data:8hkhkdmC60HPocN5axjN4FV8uEpdi3BFcFyusozRBucyEVcwh45rw2rEapDgjychgU8m2yPbq4UVbJvmuqUkrNYwUQ==,iv:vWN4SB6SfNa++mGlq7lBP4H/5DQpxVfGZakeDCXCdIU=,tag:UQdVV3gzi232Hgly7WNfyA==,type:comment] -#ENC[AES256_GCM,data:4k4Ij0qnMgQLY9vAQe/RKUkn1KfW3iNVq+nNU1qFb508AuIlWtWwqXQ+TiCTiffu+Q==,iv:v2LqOCrxp8keoO04hdWbzFZd65fz6GZo43jp9GGLcaU=,tag:8BDLPHuB6jQuZEQ+4RApNg==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:X2b/5oSh18ehiZx69How,iv:MZ6iivsVkcJrEadu9biWqwA7ci82QTbJs+EVl68iuKo=,tag:SMWvne/e77267gqdde6CcQ==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:8fqdcjFW291kypjDfUz9QVu5ALx3wsE=,iv:mdZToefLKS23+fGzYfssStVs2Qi5nSEJQGYntqCCi68=,tag:855TuSfe5Mg7KXo56Go7+A==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:nb2Wgz8xF0WzaUxOvN2fNH0zAVb7z0k=,iv:WKzx956QgxYOPzwPJwX50sz4ILzEojhc90J7Q/puwGQ=,tag:o9BSaLEuRYaKFFDi6s9+iQ==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:IaMyjfMsDQU=,iv:Yjh/hhHW2fIwyda0vYp7IiGtcclqG6E0cL3S69hSwMg=,tag:UPuzcknTufWr5HUgimWHyg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:ienT/EBhtDrEi8ENEXwlEOUFW2WpQN/qjYpJsn70hH+wzFncSOnUIbsMlApftuXuFL/3Ojg238i/E/UPNhdM6w==,iv:f4R8LE8aNCRo3hMEtdGHT5Gfc7nueXvpW2jLyzApgUM=,tag:N/UTtUz1097EQYStqbRHjw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:03HV91aXsg==,iv:NjE5Yt78+XA13VpQI/uly0QagSGWesCVQ+mn+OW28oo=,tag:x/5DZHUCnX5p4lPOzDisdg==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:LhHh9Yg/S5//GyWfoNagCIxovuzLyGouE+v+APw/Kvy6fOLYjzIwbMG6CN38H6D8fwYKZR6Bt0bsdN9fKvNum0N4IAVssGfbY2baSXOKL+8IW845gm8rVu+RgjfAms6f/BB9hH1d,iv:08FGB2RiVv8tPmGQydK6alxzYDzDvLC4SwALlwpAqG4=,tag:9V1k0e2sgfLzOQR09CoV5g==,type:str] -PGHOST=ENC[AES256_GCM,data:UmA=,iv:bm/cB+qDyT3CTJTZnvfg6RKOPKJBaWof4wjCSxH4HDo=,tag:ag+LeF2/5Q+STZbH6ewjTw==,type:str] -PGPORT=ENC[AES256_GCM,data:uS50+w==,iv:fUQN16Yda9g5ymc2t+QPYNfzbFiiqOV5B0DjHwgyjbc=,tag:fEOuL2O3oEQjFUML567Vcg==,type:str] -PGUSER=ENC[AES256_GCM,data:I9VxvbsV6p4=,iv:brcTFkQD0h1oNioHSTMOR+EfwFI4cgFOzevzt0NoeSU=,tag:J3OoOvj4cuEy6NfQzPTxbg==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:GmC/2wGzGsglB+8eHZiYl8/wejKbNEwujT3y0050RrTEPTYELbH+h6IsH+HnnnwXhwCDgDRVIJ0XdQQL83MMrQ==,iv:oxKs2fiEA1geGoJ1tYr2NdQ6xD8TnFHP4VQZM8+2h20=,tag:fnXezV6EKO72JhgUGw0kPA==,type:str] -PGDATABASE=ENC[AES256_GCM,data:70rY1Sj4Og==,iv:jIzLyE8Ol2G8Tf3WopGAi95K4GMyFLdNMvSMyqVd3QQ=,tag:tGwifdkau5D45CvnPHbzDQ==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:zOM3V6E=,iv:e1jyg4ip8i3wKyi3XZFFzCL0SKSwB00MEeRKGSF63Ng=,tag:RbsZXeu2RdfbGe5ipW8ihQ==,type:str] -#ENC[AES256_GCM,data:8yDxtNL+ZVXZkJuFa05PPoHhCCYicQ0KiDXfEL4E,iv:P95e+ZhCnZtSb/z5C0fTBRjUnQHJj33PUQSNzyjCLlA=,tag:tCf4US0XqdcLZecjbEYT1A==,type:comment] -#ENC[AES256_GCM,data:TwUTN5ZnwADBvj4i5hinSYTLE5Dlfqib3MRL/bYtFY0tew==,iv:8979ElGH4qRmyYshdckcZBNNMQzmzEk7BHha6+wb0bM=,tag:Zb31VZ2LTgPqDolBxeFmvA==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:ohWQcOI3fDJ3Vq/BCHPSdAfq,iv:oUXrDDitHOzNwPL+DTrNUV862tbU10n1es3vm1n+7CY=,tag:RgEUJPj8+RG2Ou12HHePVQ==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:zKyV/CpMY9+7oj80yuU1qRkW6Uc=,iv:oEou7z8UQJ0VkER/K11XXmQm8hhMfU3JXnJ/gAOCCtA=,tag:DsuA0+A49eGh/Fjz9At/8g==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:N03GMK+6g9p3eP9DVCcHw1xxrFE+QM6TwgCpl3tDausIMoWgoYFbxg==,iv:g+HQt1qEE7+nxm6+iOUFeRoZA55SZH1ZjuN/A8JksYA=,tag:pMsdCjQvrvsIzbRQazBDTw==,type:str] -S3_REGION=ENC[AES256_GCM,data:6Jc4BMmP0T1R,iv:H4lr0eqWUCb64VcRiZs2yUmcYO3F5s7pYtpKopFmDgo=,tag:NBRZZ4rrJcWSDykOc5aw/w==,type:str] -#ENC[AES256_GCM,data:7KhpFQAZtVF2N4EZ1s3lpsnkLW0K/rhoHO7XfiV8,iv:sRjWIdb8dTGHL84vH0LZQmUQsvg5N8EYJWCwvJrwBis=,tag:RBtjsg+8VOsUNjiS9D2+DQ==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:ANtOkUu2FMlv,iv:pYWT/NC7x3C9m1YvrG3XuIR2e92IhfahMfkf1HOUrqI=,tag:IDkpAIZv8Toq2aHymsVFGQ==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:H6xRoQ1wj8ruUS77JYNMbhrkhuFtvjx0,iv:JPbmXtYfw/segrWNd2LE7o5/2qDmvVPdg/NxJujzINQ=,tag:qocgZpMyICEKo0IgWeDB1g==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:oBK6VOWQ6HiRuFqzX3ctFfuNxn013M88Y70xR7SmJ8LAlg==,iv:U+PYT43z0aLyG9Yoptl116pyMjawbA6QYXeV1UAXvMA=,tag:oB+lVr5HUKLz0NZL3sEhDA==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:BWBI,iv:jgB+yzEG5rNqYA4vMcGh2sxgl8kxQqQo21h4bEKx848=,tag:PP4MLHmY5t7D6ZyHUxjKBg==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:/DWBfrLZe6Cthpd2YZaFpMrS7cGnilQhWdMt/KRbQ78QkcuGxYZ02489CWQ=,iv:lLEwKZFF1itykxWxuBW4OyYUJXUGXWzsoBTwd7Cel/k=,tag:amQbfz5Y9JAwSYQ1QiN8gw==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:YqxBXApI1d9oBWyJ7Y+lTvCgQeU=,iv:0IwEQYmKH+uPEjlwQMycqMcK3UV08kbTWr076lcYQ1c=,tag:ZM0QPWbg9pXU7p/XrYzLkg==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:DpLbMqw2rd1Gngalu36t,iv:kemedzQ1U09DmIzckRmWPtUy9jXv/9a/ka/CEkx/uhU=,tag:00NVh/FVYAo1tkIYcQOKmw==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:Cm/0l/y49KGqQ5W3,iv:SZoA0bg47BR+W1ZjP3zR1Lm66kO0gME3SjJ5vq7GPVU=,tag:onPx5IGfkYyx6XKm8dd6gQ==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:D/gs6oM1xVg/AQuidSdO4F4V1PIQsL/ML3vZsSaPmk+9A5K/2ua8gYiBZ1k36lyAvo74e/LvDIoOvq/upJOyGRBv+ilczc0stPYgF9Fqcx0DJPJjLwC6ZfVPTZbu1nJ1mSDVm4Bz4KgIjKdYQ4hIgnEFVQRR4WMl99/e3LSSS8eTBVGEp1YdgRKiMjMd+fM6K9fRVzsTaUIPIVP5xdEVJ/E71y92gLj5h7GHWCQmhy7Q6obz6Za1zlL8io05tD3s3XLXm2iWdZ0QJzAay3tqEPp69tAyyuWOP06uhLBkpR4DAFH9UV38bG+0UFNPCyb+4C+3yx7JcCKhPqspMKxZC+o3nBLU5qCvyYa/Eu9M8sahWJZr86oGE2S3xlJ+fMWjKarnS9f+4EdhEg9AQbdEPT3Y9VpAax24iFtip0C1ViNhx5oemvQtej0HEFVz9qXWwMgRTmC4F2J19ycQBW3vxaWn2/TRvkPV88fCmFFpu3Vxi9lwrIuhx5GonKmXstqMrInjEhXwxAw9SdFAAS50Bg3Cdt9cg+tVZW1PBE+cmzuUEBtT7+Ht1tjuxhkav4d8aPRjNFlUeTbbxai7sv4P9Y0zoqSHoONR+mVfeFvKYzAFMCMxUhe6Vbgf8LrWVVD3229n0jWpO6Byqc21JGJpyN616lL7JujTTNi1dtIMXzhUUmfNYfFxTISo4V8H1zjpczG0oducRw4O6Qa/WQrBJzoMnslUl2ehvZRd/oiDWCeGsQCLBmmXGBLfnGa+c8qdOmspwVOe+CfW/I7QEBkYBFakFK1eyJhJe6xFpaepzFMSpdO3073XXKaQ5FPJ18zjPvoXO5XnEnbJtRblPRrZttiaTZck/+mfWTbvMHR69L3zTUM1UE1oHHNKpXQlNCKna4jS9kQc+B9doAxUi+KWiwmNKm+IJdAa+mcX5w5qCdBhTQF/0lsrvkvy+Z5+htrtqX5ALBTc2AGO+g1pXQROpCrA4pMrOp6turF8kUL0PKZsZi4L2A4tKRxGd84ZAthaD8QrAtUXgJKPTrpFkahx6Y3G/TM7bwesA5srv4bg7gbj2psg7IhotWjm7mylaILBltYMmWUDnl38dCN2oVWcES6TpC6nTIBHQFgepeV2QCdFeoaGZcAdMybO3C2a2rfY2MkTe5XKIAtnCIsp8rrkb6aUoZndWg9L8H6dXoqxjrHt+fgz+sle/zw1Tyztzd/ZuLyQdIFmAnpPRcPdrH8nvt5RCYBqIWz2ECISPEj1S79A03EDbpMHkqytFEAlEk4Cxo5c5ac9dT8YzFAI5O1UFgOLT2gA38kpircZjw3wwd8/izo+4kTQQo3k74PWwQjZpeMVZcAQhG1T4tdD6pachMSFcygJNfmkR3tnQXy7Bv8su4dAwndwZ34itNeYjE9dJ4aZyteyq/hOaKgK2hwue8q4ZOPBFCXb7pW1Fbyh1vlQ/fXUGWmFuiLYrp16aq1AcfJAkU1rNWzGRjLaYOF+Rm79uiCx96Wd3oyrfHP4FCw1tlqG6OMjm/3gaBb0FwELGfN+RkheKrTTF2UauZ3s3jjbkqkouQh55FkFOy+GA/FqJjtdR2Z29BDYu5X2y/gZyKN/2hcsKk8L7k/AOZUqtIPMYnk2rsnlX8x2FDZXOZelqsQkjlfOulFnp0IaGPPKaevPMukSHvJBkybIsaPAeMX77L+KiByrJr14p9TzigvvWhqUuJo9wYmRYInlUHpVrJKmxfyjDbumcT46N0OOV5bpw7XRZI2iKPuR08fdNKyEmiqZePkGpf834fiQ7NIXSq8xXLilln2WsOKYyrJZtlkAQe+8L9K3hEB177SUlS+v21OsCwQAmXoBeG6k/vOuoyJ38P4g0DIRHzacFezK6/S7aTThAiA7k4+5pvA86Icju5wlDaO9yqNKXLGZ/6OCFEzh4ZKVgqW44LakkB34BQN81pjRmy7Qxk81ETp76MMn+d6yfASujSVAFq0++VB+tGNpaQsn7ErRvj7jKFvJebACpMNmw/dYPKwLGsyn9o4Xf5qrYtOGsBVoL1pwVz/r14j4DHy8EeuuwfEJn7LunhulXj5Cgvuc6MBlPlQgsyqxmcto2U33xpzFfarW16ItH9ZvHS86X82OKqSTp95qKiv1SD3lf18arhNiaQUBh5bAEvGab+R2sF1zS1dSwjJF/Ganx46M6U/O8WjTOrmrAfOKNyxq+Mt2O00lt75rkuY42M0zwr/+4IrdA9xS4S636cVlEfSF/FIBUHFam1HYDUhtB4BH7aeiZytavlDo7hbc8w3j78ADV+hHpM9Ydu0i/zPWUY/xcez6en+riARBVZF6bf2pYhuAmHMM2DsnLbFadvWz8lOGv69Lvby425A2Sl3xScE3ByfFgm6AVTOQhQwVdCImZpyFzpWTp0TWP2KkmRrXFmy7A35slq/QW9tyOxqu6S3eALogadxFyIaMScssRWVMozsbK7huGjyLm7IeSBYQ5maH6iUIexoPqulvv/WJjWYJlmdeU61lF2bzdmB6weVcp0/1a4yT1xT25iGv/WI3JvjlOx7JzSOpyIUPEbJfJXmiS8eQ+MlAw3R2vXuqOpIWf2SfD0jHtqVUV9AlVgC8bOUOa0cPOD7Nl4txeaUNQOZEqUbSyi7oeiKDwqPc6k72AFySCA+Fb8IlHThtmVnyylSOWfzxshlxCO96oTDgoTzz4S4U3QkGVp/JaGIlNVXLyGiqMmQUIANOZ0UN2/M9QL9QUMPYnLsxBqo9Wwmmr+PT9xl1o+Uigm6b6SvjUTyXoaccI4TxBWncFSVDAFJjV1dzoyke+DY1QTepxWQYYLGyjuiJP/1s7Cox5JXPnLaOTGKUdeDSVQQHoXJJTbZxJCNTtcHWyB7y6YKcIdMfLzvGu4y7cW+h98FtgvAdcCfjfgESDvYapD5DC8K2+IjYsUJjyjhLOZ1Ta/T7Q7DnSdmirUvdYjziEJF0qtZ8AIdtqDqp6hWLJTEbQwgin/XxI3H0E+BgOuo/MN6pCwWYz/oqp5nBKiGuH46qE4DE9NHwmuTfu3tsqyg4+SzEOxAxHXaRPBAU9bD2MWks8q7le8yMEN/8RRXb8pJsKOBF4tg8fNx+8+P7RJ54b0dI8EhH0HdM7usU6aTP1wl29iUFVLTYQhZenvVO+zi0y8KrPVQqRLNU2LPDzRYce81w83e1zkjZzCbtCtF57QWD2cMzKJMNpTm7CY+09zYkwsCiTf+P7BVFtPuF5EOYBvPvxbT4y0I3LXnojP0sOtCNyavmUxcoaozE7NRbz4EGv83wMDqqY1dkH7lM9yMDZd7CKV9KExQcNG2O9o0AWEq9Gl5Rw3YT+Or/kSAgGwejmaj/S+v/v003KBMDcoZ3NvYw14eRVDS4eBn69uSLZCnWolAiTOt+8U18bw72m7mM6aByaR7MpEMEwUGN9yecGV63+SsdSKOceLtMsJRQ/aG8KTLDLgEnNdoqB15kJeLjbkPeYCs1JVoidfKwfY5DUNod3MMNSYIElyHoj/Z48i5B6FB/lyOUJEiOP1WUrqNEuK71xQTscAZmRs4N/BnsbpUoRySIKSgZjxY2NtgoSM7Hb1M8Y1vjaF1DV6lBJ4fJyE7NGvzqvsrGUW6pAYAaFIhlGtDcVBFTwc8Gsw6TYJdJlrldmBoFvwbul1B95D0HaPpTriKcRf8XezG0wi70oCwDbpjlDHMZ+2AmMzj4VizrzU9+7B88ig+wuS6gRqcNclx7dubsAWBv5BK2Np1I2RhyVZpY1UZgy4xgt0Oi5EvQ35EaMEELaeEpfP43vczei3jj2bBBWSMyTsQk1W+Bm3gn0T8MwWejRq/ZHoyNVEbAovEhNDxGw2sBnacPcBYwiN9axQHtxv5D5HPoYqtbTn4rvfCmlZdMwnUyXClqbwNJE8b3Wcw48DdSKiZa4RCwFBHYBmEdHVteOnGlfdG37+6FpqZB5yHbb5pEZabExYUPF5pnrCf2NsZ01Xp7nHwdPnh4GoM6A85caCkyi9GsQpTOIVgJwIFTkbtBcI7FuK2I0wbPt/NYVHGGyYN7DZw6MlGhrZYZ0AUAEm0uWTBxDsXNvx+A+v2t17DRPPGAYxXRRjUlcLWmELohIShQNepXji6CPzxdwiYJa60tJtPNtWXWA73EOuRgo1Vn6IfhrxKMoAKO/g==,iv:9X44FSf6e49ZbllVl8gb8f82L9rMItvQa0flEtWI/Hc=,tag:9jceikaA6UDXtMR1kj9cvw==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:AwmNkftduw==,iv:jeb7TuYFk69iehQ7WNEssRgcRhCqyparchcLk0kU/xs=,tag:x5Yaic2QOMau+TQr7zOR5g==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:CDoP2jc5gs+KrNtFKafCySqh71D8EFWnS2hIVj0dNgnI/I3oI8POfXrIg3zEsKV2MBMgNa3rdaZ1Na5QE8NG3A==,iv:gxfOZKYifRClxdk17JGpn9NFAD+gHDEAT/VJwgPtLjM=,tag:mF51lqqZhu3gRUZS+e9i/A==,type:str] -API_KEY=ENC[AES256_GCM,data:9RZpFR6GxbscWzfZ+JgV7mH+rpnUZ1esGkXn9kY34tY=,iv:N/y8fVAs3QrXI0gH7sfT7+6IbzoiZpOxqlUJxWIdvP8=,tag:notXKm3kCv8S4wNIAQl7Bw==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:STuP0n/EBHA72rAIu2aHbeQvGTYWAvTH,iv:18ccCF5rLTulmktPH1w/v8C7AUmjnf+mshyTgtg7S0Q=,tag:Vm5brbKynW0oDfqDqkWjjA==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:p6AG8CcCJtr1nq4=,iv:sI7WOCAt/D2voFIW9iYuoYhd0VdABO9xZGfXWYYL+us=,tag:PZxfyfdW4t1Mr7byKiOR+Q==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:IeQLvLhiTZmqqZ0OqFTF,iv:OEaC7U6jdGVMoJksl91mzUnlO2tgs/+f3oCtU08uctQ=,tag:+aSG8tuvjMyz1xhWE6Z0kw==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0UitaMVMxcS9XWFUwTGR6\nU2FmaTQ3ZUFsQlQvdStNQktBUGJSb0EwZFc0CkdyZmI0NFc0Mmw2V1AvcjdsWWx5\nbFloWkNqRmtuM0pGVm9GMDFCNkhrVTAKLS0tIGNuUnMyM3NOMkJucG5wZzNTTjNK\nQWlGVkRNT2VibS9VSDRVcVBHNmx2YUkKoPCaE/6IBBHkNuBwneVPhz/pprK03+HT\nEdmlUmJNGVAWl5hDPLc4JXnjWXY1t57mej2QrqJfseIqKImxGODI3w==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:yx9KIliog6+5H6IsPqNAOoAaN4iwc+28Yaajzn7jhRhj,iv:N+jhYD5VHotHY9tnqmjdla4IiMEJIzKl4tqWtQv9pVM=,tag:WnrbMfHAiL333KOTqomH/A==,type:comment] +#ENC[AES256_GCM,data:pJ3VjS4e0TeggGUCLPa+4+F1NYWx91paUA/ffY0vWWDJUpf8ivr/Jv85eQFVBR7sk8yw5MO9NC6LADw=,iv:oCQtlZ7b31/op0dd8kWrAKe92Zc2Bznf5yO3W5tOuCM=,tag:z1mxBK9mMYjs8MFO7oHSVA==,type:comment] +#ENC[AES256_GCM,data:dfFpdAIkvJggdLyayutIYNtmYFu9lVk54iHMRD92FvVCCkb0zu8U4N87MRJMk8hCZshTdywcKq6R8eJXnGNJ8Iq9jA==,iv:2KZ3ZaG96+d5gX6pmtm0asNBghFnmFLdHIDKCEAUP6U=,tag:nrAJ0HKrAEFy/IsAATTIdA==,type:comment] +#ENC[AES256_GCM,data:nUOyYE5C9fViinr8fiD4mpUdaUdhTICzZe2/bfud1QDKe9pqPgx8mFqJNfcZgz4pQQ==,iv:l83DycBtw+vitLnslWtHbmt7uIYIuF76WP7GmqWrL3o=,tag:Er8cmFT0f4R3bUtMLeYpbQ==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:yL3am5+LtcgB59h15wzA,iv:Fd8YAisC3qy0ovlvMhr/0KFui3hnRPwg6v8KiSnvImw=,tag:J3bs1tGFCzxRmzArwo0VBg==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:p4xLl/NzrpAfhp+WzixfRerhj8AfmtU=,iv:3oQtsq25a7EYSb2IeEBX8ObLIS7kFmFMbYQ5anBHyN8=,tag:cd1XY92EM/whRJDgrex06A==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:yJiXMIVan4jG8En1pdjPVJba8l5ANXE=,iv:IFxBbzWPNQzuqr7kydrMQwb9fXcYAmciuNYCJ4M7pXs=,tag:5mWFODWIgvgXTjED8kAQww==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:Cj1Q/YHT9A8=,iv:e+olSU4YJBbqXZHDjulnc2ULmIt/xfrfPzbupFBbxWs=,tag:26ZjxXtIb+jTAGzoydVf/Q==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:ZRXVGP+apgH6XJogS2IvxGYyZmODcxBCuxNqyf/AjgUXD7BoAI2TzCYeJ0my+npsRcOy5e4ZfyDq2EXOu4apBA==,iv:ZPHhQ9icXwAMk1utJZGsXTt/KUi0+RncqiYZtwDnc98=,tag:AoARdiUeaQL+csGpEpVRVQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:7xafFD9INA==,iv:hO/Tgah7J5S168hxNupIv/wKaRjTd7dchuBNX3U6voI=,tag:NIuLSEEm5AvPWq5V6GMChw==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:04J74BOYT1K8XM6Z+Tbbvn6T5SVrkWDJnMLroSsuBJlEDko6sOYIoLLNMM8z+eCwAIORXOJvUzxNHuVx7kLUAnDDU3x/B5c80u71oH/nQ+cGDCBOS57cekGMz7bktzyXPxDzyKv3,iv:K0ajVpBtk3UdzoUymL7e6pYkqWVDGo03IXVtJXove7k=,tag:SlCGgIhEB6ApXpwf1s6Ssw==,type:str] +PGHOST=ENC[AES256_GCM,data:M/A=,iv:AydN8aBCRujs0f14+CVDr9avNIr17OWQBDkzWd2u47o=,tag:xal29gkc+snJPjLQXaLiTQ==,type:str] +PGPORT=ENC[AES256_GCM,data:S7SMmA==,iv:LgQzBOajqLdc56m/MO3xJZlqoSBNZFn0CBz0UqGi64g=,tag:WIZCqYpPjzL49n76Tk5P7Q==,type:str] +PGUSER=ENC[AES256_GCM,data:jJH2Tfi9hx4=,iv:6jcRTDnZ2kkPuf6qB3NAF7TMxnXN2cNcr2rXojMjn+Y=,tag:ReGSuGe38+cgbO9wwnG2Tw==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:iLT6Cwdm/OxPQ2XTt8mC+w8CWaPVpgfT5Sde7vijwThb/XcU0KTJfjKUc9QsYNK59VumvY7RajhawUnLQXXLww==,iv:OlP78ek8Is3QiONM3TBkEFj/x1hQfL3UK5daYoWNP6Y=,tag:D3bSfeS/GpSOLMYNtXP3XQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:vNegtEHOcA==,iv:XVC62qETkcoB6UArMn6WGJ21k4bpUpkgdA7QxTOT48g=,tag:VgbCNL1CPDCKKLcIuvMmzA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:wfWPXuA=,iv:uDKzB000ONJfGtArn/0DLLV1t9tqBMerDyMmwDG6HLk=,tag:CxQVHL8Q2Rn8ALMe0r7EFA==,type:str] +#ENC[AES256_GCM,data:zLPv0u5Fe6SVQyR9157CFbAHsjxIIj1Zmxlqibv3,iv:E5eGEaJYSpDCa4Ei81nsh4qRnjIrzlX9Tab7X4wzSyM=,tag:FuK7oApStEdllriil89mFA==,type:comment] +#ENC[AES256_GCM,data:Cfa7vCjkvwmpJsaUs7KyjcrcLGhhKgiWNgxuZDyqOLl0rw==,iv:342mSJ2acENtReJ0nu/xUOA1w3rtKZtgr4sgpf2g/rM=,tag:ZGpzFRdHsFBYDKD3oB+jEw==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:vqTwoOy6p4KWbYS/Yrs5Lt4Y,iv:IfmrvQ31JEPRqvRqH5meXISrVXu+vmSw//0gB9AHDAE=,tag:sxwnkdejzxP+MABDXh+OyA==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:nie1U3SGKUn53vJpGDWzw2064hs=,iv:HIuTN85cCi60iAF5kld1PkbA8fZZ3wEB5zw+2iQPVjo=,tag:uKY5MWew+oS4vPTBVw8u+A==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:zeviPdwYp/4GzlRpy3SKBmWPYVxcAXjPWg2rB1JblQSowcm3NRK1Eg==,iv:0lyiHDPhXqKT9VHq9+cCwHYmxWe7JtUmrwvtbpr0Dvo=,tag:TBKuMqHu8W+e0bG0fk59GQ==,type:str] +S3_REGION=ENC[AES256_GCM,data:43fT6QakXj9+,iv:CTNBQdtCH+MIe44Up2dnefV+GAoCssxQjyxpG9gEAM8=,tag:X6Qzf3oqCcztbwb6E4SJbg==,type:str] +#ENC[AES256_GCM,data:XAz6GsGQpml5nG11HFHKPTCEzUzOoXDb+Bv4VsWm,iv:4KpptdceBAYeJgLPdpN3ixHeH2SIRvEXl8lIPKZ+Y8s=,tag:ZS8DeJSiuOlEYCSCeWTiDw==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:bIap0JdmXWRk,iv:4uAipXfY0BFIFw4sNFPrZfmfuj93It2lLO8xRfuVLaA=,tag:U+jm9BrliL2pg/rUiHa33g==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:fXe6ZNxtk/Jld+7c7qVoHPYWYiHQiW29,iv:WfSYJ+0L4+DesrNAXiP0qJWjUxvlQqNanonVBYyPdIs=,tag:O7I5B9RWIdK+r7U8dBwLoA==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:p+jUvCOQ//K3tDGOx29maFNddhfprenepKuDlMLn9SbrcA==,iv:A9lzmKGlTGr1i8ApEz9LsE6UXYBL6XOdFJAjYsJNx9Q=,tag:UMNdHEhqE/hhHVFzJlmfmA==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:7Q8m,iv:ZyuPkp0HBCm25em9Zkv786Ki/8+dZ+ayHActz0HcD9I=,tag:oCoBYyokm3SZsZah1/atxQ==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:8+/C7KMhh1n7XeA1vZC8vocc4JlScXdzsnDka43NzYDHnl6QzdVPObkTbJ8=,iv:huv3/CD3jDwRyUxkndV1mb0/tApUp6aEh5uFUPpixvU=,tag:t/JAqUv/8deAlZVeTA+Hhg==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:6c5YjDKkf1mWloQ5oaZoyvRK6iA=,iv:6k5lsmdGeYnvmGVKYXkeZCQiMh833SB7GmYYOU3e6B4=,tag:bRO+xJ1Vqllwh53jmMJQnA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:6rDAsSIvxbqo+V9lhqw/,iv:Dw6JPwtO+h2sldQDmRhUAVxRbeKht/+iwNZ7IEvdpQ0=,tag:NjKV3n6sLfeeIolpmDMiFQ==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:Z+wO5UQdSogYk7m3,iv:ZIVFqa7MGzv+2WyYmb/fNiZSHlHxbyutTWsgWvZoc8U=,tag:PY5BPX06He8VFVYNMPIxaQ==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:fyEZhWWfHU+3aBy3SLXm0T7cj2xN0CmybwZ8bAXql9wdFGMV0rbGFmkYNKL64NJaprfroMFaiVmqqDPdok6g80ObcUuT2puS7plRbL8A4yV4ssO69PEeAsSbW4+naBgH2TM/s/ekCNRaGyhGCD2ie4cx21p3Xbswlmjw0zkoOvDCkJHKzUZ4Y1XqbyXDHXnKQ2KEvUdsq2neBhspHuLUlO4zPv6D7TYu8p/K8jvPzPs0VqD3dQtdXUSG7e3YGcAl6tRsKLRY/vj87aKlxDl2onusFLt3EWQW/zA8WoBHD2FW2rithxtYeHhDCX+0sEgtToyqPPh0q2t/OsKViiiJZ4gVFRlZFIe4xvq18zpptGeE2eKmYkd7mCrKR8RxLefsSknYJrlCYFRLhzs8WQhVTbUTjCFkEmA00tkhNNk4V/922YLXgCki7TNel3ePsHwEMZZxjj3uuF7ohUFaCYJU5dyXbOnohURK6AjFbNnc2OexaOiF/8yhEBoZZhphNKQKiroAKbW4bujfbDvapYC4aAtZ2T26xFuio7L1Z0F4h7VwrCsilJzV5Se2yhxwfi9wyS1YQqVGFFBmIA9VgfyyF1NVWqYCSTlzZdgUL+erKbhK1wwEdkZiDIJTFO0MJj2++xFgew3ZZBuEEhhbSKqQor/RsKIgtp/oNCJ3PYHZMYBylv7hnvaKIiJ0wFPCHNC544dIwu5JrCMeK2c1EolqKdqKHQV+Y6xd7b9B3aN4BYLOhrYOUdeXn4RBpMYbzQP9eCFDHMIf6Ud4lRTsERUU+CaPzsrifvhpzoDc6Gjg52Txlsltqv3RFRacj2rW6kYhNOuyDPXneFVKmUi2apSTcSv7GAJlv4oqzPVefMjqETBs/9FL+tY4hPmcHGxPqPbH81DH89fW4cgJ+1fQl8Rt77Yn6Q/9dnEmWD3iZMNq3vcTtc/ZvYHtkjPE3rLelxN2l/3LTf4QFYOCQEj5kKsNjhnal42khap4TVpd4/bcPigzFQDRQtSZ2AmBUdV72B2ZeWbtwgwbiUn+AapJdNR5hrd18SPyeUNIfi/21rdjcNwj09lePs8DCCOpeDMgFNTt9oHmlQKWOSTOVcx7vcmiwQYlMZfYQjIqlpkE/RspQpuCOCy3PT43YoDU5eVsq8CZL0XP97Bk+0TR1cvdtelHBh2XCiz2lplsYcY0M6DhrCjLsjNCUewLTh3CgQ2XXItksFFAmgTe5qWRkiKN/2/i1F4jDwV8uoc1lbe0FG6/AsPWqkB/PCOqe+1nbaoHulvE/XyYhJPwZbClq4WPBX27BtZoOORJXoNByevJcbG5xe1+Hf0YOgiHZGg4pktbJn8XvpDMnA5/SzLjz7FhW7I3MjD/w20v/Gh/hD8O1UqXDKrd8dma0DOOIKOgwo5v+6AIJar3a8J22hFO6oag3mWsxSjfUSjuIX/MWrHfSbVj1dTKrkRfFk0aAN/4ev2kWuXp0O5FwiuUxcBD+3rwgW5v46xMqCzjWQ/z4wtr8MJRr8id5pNYnL7r1YLRLpYAh/LnAoUytGlBnGQBa0qsstcLYgYdg+P4N6TUqQXDPNZLves4Ru9NEid8DlAzh9jDF3iFFySPuKxtKzv+06bULoW8RjGn9LlzEPbgShtRJgt0m5A4dtmoTS6lGS1OuiAxS7Sygpme+RltYOaVc6nLm44CdyL5TVpFAwHJiX10iidxUYVOFxMV87KVw+WU0LtRiQPt566bG1dVdbuVjq9uXzC+uUWcE02R4+lZ5XUEUeQfg9aMnso5i4n2fPH2dhRirbatrm6NgQYf0ZWEjks5ErsPm7kaAHBgUAFcpvHRXJBLFP9Xsor6ihhOXB+5cuM3s6UtiZ1bBjkleEJ22uI08peG5Ebk79b1ZHn046ma81mvowCXB+4ujTI32furkFLjd9uPcQCAtUfpPzfsemy8y66VHT65BJBGeAIAEmnPD3KtPMs9ThI51WGzRmTwIvHLWEUgLRj4nc4c5tNl58wPj8SXOAEUCUp0qfKwOCDQ9x35WhcNWi1QU2i4G/cf3lv0YJB47Cinhz7A6KTBqsF6cHJM8NVeLDhzU14s1Ji1WnbRbzmzZ6quhkma2PyaSY4n3w19SxLuU/ckVd2AObjqMlbZfEySHMh5jGU0kVK27M6/OGpfHlFIxRb+PMRt4kEGNgeOgbvEyzWUKWMGu3yFi7ncFO0s9d47w2TDz5fICuT499w5c85LQpg7KSgrff6BvdXyGThwWatW3B9tDGppmSoasHESNK88g28X2GCvQbGL34Gqkd4YfzOA12PBUBcyWu7hvLLPAItcSLEkuwQWyVRfIrG/+wiW3C7ARwERygxXWtq20YT9RSqqJ3zNBx0gpb6IU29A4MoLeZnkVmlr2T/Afk2Nj4kebgx+oL2vQALM3ZMsoWUv13oe0/XVtHjSnJpGfYiHSjgicZ6cULzCNsvKh+XxzEOfkUqUTI4MxEOuhETJAOvMF36TBLdFMSMDsX5Ssy9TuU17kG57NpqGO6YZAZRixuP5d7qyrU0UXKxWZ7g2C4biigMUCLraX3X+cqCA20VSinVdJ2whHPUhhLZiib4VbDYlJDBe+uaICKhRqGdGcUERE9CX7riDdedgE/MWmPLz86ljNDCsCcNEEQoBQjqTzd3lvMzkV290EKUD+GSSgd7qExCavkEe8I07G/s8UlwQBMHYSLu2tBa9a8HblkOQdxWWvcojgIwHjgdvV77WAy5CYBTVP/uO5301HoD/FXF0MMTvFGi5Dthe5S43EPgj467hTWA3vaI+nwCmXxGMHiZdpM+cpQXtM+3Npmgh4PwSsNnSPvcqjVFczx34wRs4KqD2QPQPBDW8grid7ITx67pGVkgIAgCFhQ8o0bl7evx0/3afQ0PDByGn/P8iU6QQdda/p2PzHJL25ZKRnBGKYfjp671D0sYleqWXD1c4jRfuNwBDxeJ0gd6TG+Aj8w+oXFOwg0lOMhjxfqnDAC87wZDmYOue8FPPrW5jNe5Vb21TP0F1RBK6X+keBWIFMlQqyLsSp0N/SrZAWgfsOYHrNBYBwhxDVbytUAX4ZFCcSVVyvYuETXuYxuGisDugQdnpBgKe5fISkgIL9Nmrv8v0bziUSBh0+J3DtZKas+BGdlhQ6m983IR+ayqAypjJVy4rFRdpR6mmGy6VnIGvJQur1UdbdAkGv4HqCbOA5FKO1UlWUYV9ndKuX0k9QuX7Lwi5/iuQfynely9xOJVD9FFrM+0FmmJxUaT7zEZUh4edQaCpcMIwCtL97wCdGdn0/7SU1BJuOS45fdu3usAk2068MG5KIPFUhuVvwGevqj10VbF+P/6nHzxeGJCgD5/WeWDpYZC2O43bsLd2vif4h9DVvKF+QrdrPuzVAvSkXsI6Uw5UOidwDDF0TdBAz/UuOMXgZ4mhurb2Mzeaeg/07GxEMslZt90akQiEDXTOVj2yxAKm+35p9KFuq8PLP10bH8e4tXQqmPeA0srrlNAkghz/2UEHhkkS2v3/bsmq4xQkMq9RCwjt8XZwXbh0WEpC82XSGm0ZhGmV8eZKCEMAha/5FpLziLOt0ves3IFXaqxtPEgcBYCy6Z1E/k0gD530xQl1rU+yoYfs26ntlpvJlcX68gl15YZGruyBTR0Ui4D6oJ/b2UTw6wDQq0qMqzTimYiTzHE0y9BuGx98bw+WwWof0ODlApsUJfFK8WE7vb/MrZrDrDtCa1y8odrZHqu2J6oX5iRULjd2Tw/5AOhxK/JfZ+XSzSCBI+b6sWBkrEFEV5lCCdv0WlyLQeO3mFR23u8RCgn41YmBOfrWr81eOqqnB7BEZyxJ6TWBRp+UiRdU49HI0/B5jAAjmMKRV3nDfpyXBNkHf+MUNiQFnsnH0vlqCpBibJ0RrcF1uZSoOETAnQSOv3T6XQ7+z13hfZ0DzzZvlMyKpDjVGVaFnYhm1h2ZcfGIpkq2vK8Y0C6nDW/MVzUy0gl/lS6RoN9FopeKL3m6BFtlWwoHwcsKIzLHy4Kw8y+7Ehq6ripGalLcqaiLMkN09NeHiGnlhdH/mW45jJQo8S5v6Bi69zUCT5GpHhcds7EQuMkHXXJAgeuwRhOT31C4LtdWzKY4dibHxF7QDGVXsI39xlT993xDSio9AFL3sZLK/KznHM5vcGwOsfzG7bqSqw==,iv:XC+o6qPV4s1RdOrf5ITvivyDEtB6TQT/5CYYcra7JI0=,tag:wCU/QIIfRer8TR9tQZzUMg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:EJarv2j5CQ==,iv:u/mx79RT9CbCRVyTKRaMJKlVf73PM3AR18v5/RitgFU=,tag:ZkAXkjAo3oiSfEmR0hcvaw==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:9bmwFyPDCZ++POiiUScqhp6HZfc5pq+N+U7YncwhIG0LqkPM3T8I0QRHKqwzWKYqVqWOKYWakvGPafp0DOlTtQ==,iv:tGSga/JZRsJn0eqfuKVwiyCsjFBBRklHpRQnatDJ8TE=,tag:VCnf8sHjdZI8dcgIBZ0i2Q==,type:str] +API_KEY=ENC[AES256_GCM,data:l/YgxAS4YSbttjDAuaiXFwJv7c4A5+Adhbk/QGidJUw=,iv:MZkc4NDjQgoXHBUovn2WKuf9fKvjvB+prC3givGUv8Q=,tag:7BjByRlAKk3u5wwkk2+LMg==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:oFd/WecNyWl487RrQy1CsYWHIwWKVuMC,iv:TiNcu9Xmh6vIsrhgU5L/uhWFl9oi9yAC4P4VruufHOU=,tag:zNbhJSwVpI3Md7ITElMwcg==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:x6EDx5TOzGX0i5c=,iv:rmwji20UGav0hDA+z5UNkYqgg5BflSR9ih+BuhiA974=,tag:a1Z7UvqebVwSkewd94MGZQ==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:Z5J4PmfvmUp12hkYAQgn,iv:5W/1V3I6bEtVuAvCrR0cZeA3gmIa5nRq8VD13yT8xgY=,tag:+DEDxspgJfbi2bj3uJlpZA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmOFpINkpYYmZtWXdFSGNM\nN054NmJvRlh1ZVdUOEd1OTdFbjhXQ0dnMDNZCjlhQi9ackVKZnUvOWFLc2Y0Tmhk\ncElCTkI0M1I0b0JRb2VPcTNPRmFha1UKLS0tIE44bW9UQ1BidzQ4Q0E0Z3RGRnIy\nc2ZpQThZZ3YwK3pScjRldnc1TDV1M3MKUd4yl+r2bKsxv4tNkfE+GYBEyAaLVdlb\nK+R48GVyvom8MNH7OzDSylm5a+VmZS2t8/W/ilFWLrk6FvzVMTLNbg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBodkZwV2NYNGFGdE9BRll5\nMmVHczJCQXIrZlpNS2hJOFZ2cFBtRzQ0YUVNCjQ0TWJuODgxZjV4dGh1YTZ2NWhI\nb3luakpIT3gwMGhtUlQwRFdQWGh1V3MKLS0tIE9DbDdzV0VGcFJ2ejIwcFlSVGRE\nQVJyZVZRQ25ZOGVZaWJXamMwQnk2QjgKmiu+pihKy7TegzQOPEsdINRY7KNKllu1\n0i+k43zUeLM1kwJbUIWvI+a1PNznWzmKB9i2jjbUmo4LU19GEMHutQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQdG9BMHFiVzhTOEVOdUZm\nenFrTlRFVStENTFyS01ZNmd5ZUF2WWJIMDM0CnA2UTI3cFJkUVU4MG1keHNyU0pL\nb3dERURVczBDWkYvMjA3bXdyVlJIcTQKLS0tIFB5MzFYdFhMMWxsWnhpMzJqSHBN\nQ3A3a1M5YVoxZVRTd1g3VDNFTGsrc1kKObD/uFtBwsAPKloL3O1GwNDfhvIsdxFH\nzaluLNO+USNz8WHU4FIkGUx3luIot2RXlICKBXH+EUwY3D5RMgN7LA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTZXFPcFU2dzZ2Tk1UU3BH\naUlYa3J1WFhVSnZTMG5yNkVxK2ZRMVlYTUJBCjhxczg0T1JEdkk4UEo2MytTL0dB\nMXl0TDcvbEUzQWMvdXlzWXdlQjV2azgKLS0tIHQ3ZlkvMU5ZRTFDcEM0bTZuN3Iv\nb1NXQzA1TGppcXU1VmdjV0Rza0hOTE0K0Z87gflEtAOSzfqLzGlQ1vwMwae2qdtm\ntG+/FvQ+fmllP5MELjR4QNyC9suayArMcvHbSS/txt3twaJY7Y7kSw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKOGZYQVBBQVQyVnBRSjY2\nSHk1MlpSYUl2MjdMWTZsSVgyQkIwbXhNZ1RvClpNWWM5UXdTUS9vekhITFRJVk03\ndDZaQXBXaTJDUzJkZmptZDFEOERqQmsKLS0tIFpqNlpkYjArbGtSM3FISmxpdDBL\nczFuNzRxUEtWR09jaVlCMzhjU0pIVkkKTVMP+T1D0GmMJW5XBNGhOVpQAjYrPyA5\nkLltmf2m4vqUT3ge1yZXvZ+yvrarpPyNT6TIZmXEwSKqAQil5zHdHQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTcXJORnJyMDdGUkVhcXE5\naHBwSk54M3JUTEN3N0dvYkhJMlU0bXRjNkZZCnhmV0dXSlc1aWtiYk55K2FLbnlJ\nZ3EyQUsrMDdQcVBzbjJyU25UTXlmQjAKLS0tIERNVHUyWmVnZjd1RkMyOTUrMnZW\nRHNNQUo2MGhIekQraXhFTzRaV3pQazgK/wwKJDNSBK8bRfsE2KvW2kTFvNIWUAH8\nVZRDSOsHFslJYTd+5YaZNvXADCK+v1IvE0zdYTdz21ztwh9xd7cMbw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkWnlVdWlyRk4yNEo0MFJL\nNE40Vit6WHNuRzlheDlYd04xcUpJL0trem40CjV0VWtjVTZ4VlFPM2JGbWpXY3Bh\nTXc1R3pFWDZ4TlhnYmJqdVM4elRYTUUKLS0tIEFvK3FOZXl5WVViMURKa0tkN0h1\nL1VZcXc3RDZmcHZYYmJ5K1NDNFFVZEkKhRMIeq94v/trPsnrhjrmahBFNF+3Vuli\ncW8KZzHdSOO0Qg3wCpebl3gnHPkLWlibyj8E6xWbsfCJ8RdfVMmE5A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBha0Y1MGczTC9UL2dmUS9B\nRlV3cmdJT21xV21MYmNJWmszQzkyMDVEY0I0Cmh4bldGZ2NQNnZFdlp6NzQ5Z0dP\nLytSeFV5ajV4TTBDMWNydEFZZGZqVzAKLS0tIFVuRzQwVWJ6R1FvNGxUbG9EUE9C\nOVlqNnlpUlRLMlFTSllGUFQ3djNneFkKKrX2RYW8zlBozWBsrwUT2ZdEagOBHK/h\nti3gJa50nIikx4nLq7DuVHPcIwti7g881/njSJVoyHdr9pP0poyuzA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ZnpWdDE3QU5WTnNHTlB4\nR2hHUTRtcm92SmM3L0g0MkltM3RTUXEwdjJnCkJpcDhzYnpnckZWS2Q0ejRhQWU5\nZHhXcGg1OEpJNkFyRlp0UWNyN0NOUk0KLS0tICt6V0xOT0s3QTY4bERvc0Vsb1pu\neFc4NCtENHFpeGhkZ0NETTQ1L3c5ZWsKD8vlDjsdv3106Ir5EjslFtGLV/ghKmz6\n1WglilfnkBpzHbYjnKQSMD+/3gB1L3C1HE2WFFDHwd2VF7/n2G/QWw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4SmF1N1JxbHBadENQS0Mz\nRmhsU1VJbzl1YkYrQmQwVWwxSFYweUpiUkYwCklLVCtXb3Z1VEZBc2VkaGozYlEy\nNzR5U2NQdDNiSWVXejY5cVFOS3FzbnMKLS0tIE1CbytybzdidTBHUVYwdFVMN3Ur\nU0p0K0ZnOE1lb256Y1BQbVFYZGRkelkKJTR8cvngRw7scPH8FF0br6p3O+TQE34h\nqVFwEpHaiJllM2P3vsSGIEl+MdziWQquyC5QRJKG7GXcwSciOipnWg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Nm04R2JCT093aGticEhk\nSitpelFiY01MZEVYUStab01zVTNKbDQwSTFNCmQ2QWZJdGlsbUh3dTNRYU1vRVky\nWXVua0FHN2dNVjdzcEZYWU8wcDBHeU0KLS0tIGtvNWJ6TG5ESTNsbjA2cG1HNW5B\nVzNUWUc0dlRpKzJGTTc2dXZENjhtbjgKMAMVnDOXCLFtW6dMkTsj1xX+BVSIxW2l\nx/RJKVFlCy97LbuPpcmEHbnQEZz35XMmLn5wOtn1HbsrheifJ/5MbA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiNWI0eElxdnBkd3FVUUpv\nNy8vNjN2R3h4azZ5Sm5SMkRFQ0U3YktqWVFJCjNBY2hDbDE5Zk9DbFluUXdubDBm\nUW5TaG1jVzd2NktZZmI3V1dZUTJwZGMKLS0tIFZLbUkwaG9FV2lmU1V0TWo5N1o5\nRXNxdzhTNnVFSUxtNDdlN25tR08rRmcKzA1R+BFDQTC78Wz4rTgF9d4riZ1II7KW\ni0CFmYDKXukh5YJObIe2neRtNjfTFu+WhPw/NFwHNm56EA0vINhtYg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2ZHFRYTZaV1p0VDd1UUFS\nYzhCaDRieGlCQ2JrV0Z2UFIwT3IySk9QWXowCldTa2RmcC9DVjBJTnlBd0ZxL3VO\nT283cHNwWk9KL0ZRb2QrZnlHNUdOdDgKLS0tIHM2Z280UmZOTEVSaTVkSmRlQ3hL\na0F0NzVmVVpsWWdVMnJ1NmppN2h5KzAK8r8EpqkQT+x16WKjY1Lcy80xpr9m9yzC\nccP/rjQyO+kP/ivt2g0eqyRbqZm7FgIJZw5nMrWK8K0W3FxEWk4Eaw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2SFlzdnVWS0ZjQ25yV0pZ\nTHAvNHkwejQwNjYydlZqWksrVVJmUUUycDB3ClFmZzNNOUpYYi9UNk1VeW45RGU4\nTU4yRFRVQ0RvWXRkRHJzQS9qcEpqRmsKLS0tIGRXakpuejRlYmdVNE5zc0l2LzAz\nOU43ZlQxRGszOUduMHZaU0hUWVNIQ2cKXuTVTN6YD9BYEd34vkQuHhfr3b2SGAGK\ni6+fXAhsy5oLzjg7GlnNIMdtBS9dIDIFY/ic1VGkhsLdqVYopnZQzQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzMHBsMThlMEZOVjFadzVa\nalozYWFMSW8yMURwcHNPcGRjejBpNThKTGdRCk00dU1hWWNpcS9Xb20wWjlURDdG\nY0EyWEdBczFzb1c0TlBsS0p3cjJsRFUKLS0tIGRjS3VFNjM5NTYwTW5qbGd0TE9H\nZ1NuQ005UDZJMjFlcndxRHFTUVZ1MEUK5c/hf6ReM+LsuR1ZHV30GgWCqgklwOHz\n2OIkF1TNruICW26kKil3rgyfRo8d7vA0M//jAJr/CzhNZqX7jrqwqg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T16:07:09Z -sops_mac=ENC[AES256_GCM,data:2CC9ZQ0mFVmKw6nFWDfKWnIEdUkhJ6ve5LPGV1vEyoHY1isNu2k1CyA+kzV8PBSTJHtfBNxxYRyLOA37mPhaGf+eYW8RHGTgCphZ1IQ5bF0DlPKRc7p/LBS+A0Q1ghyWNTfERgWA21TkCu/PuYd5wWSRqJh5bnNssvAy5yWQN6o=,iv:I3ZJuVKOzxj16Yhs54AIMINBGyNST9/qC4+r7IjLJ8s=,tag:B88aHLeRCPikok3J+TQmQw==,type:str] +sops_lastmodified=2026-04-23T16:26:33Z +sops_mac=ENC[AES256_GCM,data:BSYKmPBzZxfgwINE9GAJIUX9H1ASV1WL5FYH5GtaplSDyXyao0aKms7BMBuCDnnacCSCF+KvfMB0aBNJvhiMCtNAIkiTCJOXH7v0oHkG5eJ8PA/AWweAki0aFSe0x+vdREILPBBNcyxGuR7ChjOf4c6lV5at6ofdiuva8yJi/Dg=,iv:L+3beuxnDQ/0hplVjgVu9M/Xk3fHTbFKw8ApfmM4Ho8=,tag:y5LDrOxuPRTM2RTE3tWF/Q==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index e1bd4dfed7..3cfddc2189 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,55 +1,55 @@ -#ENC[AES256_GCM,data:xPEW2ti+yu5X5KvTVrVT0nKsMAL8qJiUeO2iJr3zDegX,iv:+kczUDtC90Wx08OaYURLDtDZm1IB4ReWHYFBiVA4W/Q=,tag:51iLg/LQEKlD8Bn8uBbfrA==,type:comment] -#ENC[AES256_GCM,data:bMIuC9mdr64y7yLDCeF1PDYBgjcscTAUGEDzYsyenpO9hAFwyRh+Xb40FS5IqD+RaMP+BZPbEDczb4s=,iv:mj1zfuSyhETJcRNyEo6fWBVidreMbWJ72/hqHbfm1j0=,tag:sS9gcaVsudCqV/ieSHn3HQ==,type:comment] -#ENC[AES256_GCM,data:dHmkxYKAXWZgWUIaySBy34hxOLEmIwdtTf2NpqgS5xFidJEFl/Pwq3j67KGjM1X1ihnaAkYAnLIrWY+GXT16oXyKKA==,iv:ZeD4sfVZTnRmnYfIuMpLRuAMBgt7etE6lZcI637qs50=,tag:BiNHK/U6DzFhj+6TeWZO0A==,type:comment] -#ENC[AES256_GCM,data:FtTPQt+1tnHf5rQ2oUljgZHSsbiX7sh4h3txCG6nZ01WbZDAVXBV5qmypZuQ+Igl5A==,iv:1TWgLS3fSj2zySQ9qSUHwAP3AMLQgvCG9e0mHT4PxCI=,tag:g8Zz0vsC6q1TpkmrndicgA==,type:comment] -#ENC[AES256_GCM,data:Rasw4isced7Wu6PUJufweEciUBfflGMCb12t+Nbmt+fB+R16yK1/ZzRw/uLRuVKVCfjbDQ==,iv:7I0yabonenynn0+XYu52K5hs7ZgUB9RYe1clxRu+Pmo=,tag:QD6SMm4RISBhZPzErJf4Ww==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:UWNyQ7x4Yog=,iv:HfTI7pTFFfY6MBNMOkrzLZe3seo9hX+qXwLlMrrKoTo=,tag:kAMG8YkFwBg/pODaRVTFEg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:au8QFwvVxjk=,iv:OaxsJeYO7upGraujccFl7fSGbKf9z1DJ+RCNF6u9yX0=,tag:/7r10SthrH7WUHpy95d65Q==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:x29yhK0FPg==,iv:LDeVSMYMu+rakVMA3sADQccGXMKzCN7fCtOA/65E+cU=,tag:lCXhpptU0SPQ7nmPfhHbkg==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:Jt2N+vG4+W7m9aJ0czJrh3LjWZ6nNpBkLwoxLHC7r3NALbST4hH3kKh0GuKSbQ==,iv:48ICqtZgMtkjgY7NaTqT2C6dcOrCxAMC9V+X6UrdzY4=,tag:2rHlfM4gw6PxH24S6yYKmA==,type:str] -PGHOST=ENC[AES256_GCM,data:avU=,iv:saIcOGJk41bH2Ah376Ecxh93va9Ce3sB8yHuMJuBuXo=,tag:Qqw2vnAetJMG5a6Ogrh3Zw==,type:str] -PGPORT=ENC[AES256_GCM,data:XPjPtg==,iv:OjYLSbOcznhxWwXaD5s3GBeKJQ7b8TIQYKLpJPyNhww=,tag:97qBEJ/oAK4ZAA5vQKCQVQ==,type:str] -PGUSER=ENC[AES256_GCM,data:NqKqy/KoFIA=,iv:nqKZdhhFenRD6QNH1ufrdTpBkSAjHNE0cBNFovlM/Ls=,tag:HNqbCLPyrv2PZN+3DxUDqw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:LddVO2r/nlY=,iv:v2BV9hVOPHPKxNhmFfyHqVVEynqstJwtf42CRNYjZU8=,tag:sRFyh1ef4Klmb+xbSTKakQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:4NHPvI/Hpg==,iv:b1NnRIimUNDjPZw/Jo+HOm+iWTS7vMoBVVOF9gdvQNg=,tag:5MEp1u+DmTfgE7yznJHGjw==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:/UzBgVY=,iv:wfzhRwAXAsniylwjn/G70jIQtq3uWpmAFXw44qCYsds=,tag:2RTQRf3Op+0Fj1L1qlL6fg==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:QnwcWFInd3h/bg4pHg==,iv:3fEgnJgFy2s7N/WRGLaQK+kLmaIJdTjNPIsqTv8cBxY=,tag:ZXT2tgVxDQBwJ7gGC849jA==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:rB+3cQ/kOg2+aBCfqw==,iv:D3yCT+JR6BSc87bOvnTy7jy4EuebkNMhpwVKsIKgnzc=,tag:9IsyECU5DU15fW/9qUijOg==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:3xHH0Rx50sfiVbjaEe8=,iv:TGqqYNY6LGT9jkqweRt9pwwXWH3ij9wN1d33a1lQzzk=,tag:SC9a+d95XDE2sS6m+RWapQ==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:6BGkI/1bOYpdNHU=,iv:0sIIDIKOyFzS9eJTyBBBzgHiDPLcxzHFN2nRcz5G7Sw=,tag:BWI9OMlkNnuZhv/mC4w6gg==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:F2CmsOXzBxLHJJw=,iv:37dreE5A9Gure18vePynUoVnNWViyYkzRbGA2hxYWS4=,tag:91gsf6SwWDyoxZLQJUIJjw==,type:str] -S3_REGION=ENC[AES256_GCM,data:qDoQDdDxFMhk,iv:3ju5eluMB7Buw4wIgBhppo0/7s0d7UEgW0IlvkpKbpA=,tag:mkRf/b5mByhRLws+O7UVQQ==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:o5oyg+alNCCKjUOoqgrpXc8=,iv:3+zGUpN9cAjvzNvvltZ9saePT0wCLvXjmFgDB5HlVHA=,tag:CpyTEkuXcUbN//bKM8B33Q==,type:str] -#ENC[AES256_GCM,data:dzwcgo6mht7l+3CBkQDQE1LUmjGZ686sv9yRlfHunVXbiiprYtPCzGvbOcY5SqXWU2ly9y/fOc/83XNRbWrWNNuMhQ==,iv:I7GdpmFF3P3YiDAVgcBUwVPMbhZSPhOtMp+w609GOSs=,tag:eD9HwiFkN/3xOCcLyHmLow==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:AMFg7yJsEFQeynmkIvPzVTJdDfeaiV9b,iv:vig0XoTpiMgFHOdaarSMzUs0tYdOU0SOOm2bmIWUrk0=,tag:Bl3bGbhZTw33DGsDeZUJYQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:c+Zp,iv:yD0M/HDsQmnQ9CldH4bV3ZwzVcKXDyVQSjKDim98wGk=,tag:zAkY6xyKQYGL3If0Opv9Xw==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:BtIAyzvCXl0=,iv:844SyJz1XK/fH1Lq2S06ZolR/aQc85cPGYwwb1Y552o=,tag:n4g1LiAFSPsWfUBsxlT7aw==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:U6VKYw==,iv:9vDuyR8nD/MjPDMa7Y1+yu1E0Dr7wNjpVBPrn4+NGmc=,tag:9iTibzJuq16CICqoppHtkQ==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:AiyC,iv:NH9rUKDQrhmEWqf2tr0T2rqvmwB9OOBMqCRimX8oj3M=,tag:VtHkhkuPA0tgr31gG6Mw/g==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:wwxo,iv:qbLH85/BvDuPP5LN6WaSBbExl2sTrwEggE3edhMizH8=,tag:GZv8T0Kz68tpgHKwoSg5jA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:P/BB6Bv7sx4J9ku0ODKe,iv:hHTZMtDhfggqPSVrHzjuHE5ww6YZ0XmmTtm5xYST1iM=,tag:l83r3468MVYkjS7BkneFCw==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:oLPi61L5u28dX46i,iv:UNaYudNpaFywq4mEbJHV2/ibdA+SZAFl+CiqGkPygSg=,tag:Fv4jl4ARHVvDRltgKA9xCg==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:c0h/,iv:Cva02JI4nKYuC4klKELQMlZZFHS5Fea8NUozDScJsTE=,tag:pQtwh6N6AQjn+1vwA+W3Fg==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:bcxZ+8oJHx434E00Zwj986V7,iv:Jyv4HvS2olNgpzJOshAB0PD5lqnfKsm+MTukV+3ynuU=,tag:LYGOEKtoxY5t65Pi2bMHTA==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:sX36,iv:o/PzEoR9FsEUsA5UeKyvfC7LZ7UdefnQ3GjjiM6Lp44=,tag:F73SXJaPvNzo4hSIVX8pUQ==,type:str] -API_KEY=ENC[AES256_GCM,data:H0UG,iv:w0kjTF9V22OMM8DBRKB1inPXKOJy3PyjTeu15rFP8F4=,tag:JJzjKo3eMJ9ZLJCFFPuNLw==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4NkY4RDhnME1NNjBsa1Z2\nRDJIT1VmTGxyNHZIUWZLOWlkNWpUMnhtdXpzCndkQWorNSsyc0I5SERrRHFlL1Ux\nZjFwMTBrbUJ6ald4RDhITlhoeUtIZFkKLS0tIDZNRjZXWG8wcFArRm5weDZONk5a\nR3ZZZUFEUUFRTnR2U2ZnVFpHRk5LMlUKMAgtF5hLwWDIHBrWmHwu7K8M4T2sFqvV\neGcH2F6GJc9q0nZC/A0rRk7ngsrHK5bdcdFRtghUXc8FY6MtLVwW4w==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:kCYAQ8qMHHDKrk5CG1hO4PQLnpS5yX3xLHm7zPd36y0/,iv:z23VDU1T98+bgUkWddkCWxTnpwA8I4zP5QqZ/CxHzGc=,tag:ks+bswwkr0nBYgu04d9o+w==,type:comment] +#ENC[AES256_GCM,data:wKeqYzxXZl1OY1XpXBbj0Yy8WKQ1lxE6sRhRo/UCFduz8R6yIX1IJZFo6zIh2WFllJgF3Hq2dWto0wQ=,iv:vpv0ZHQM6YamEGnwccJOCbv7Dg/S6K2ZWzdq4sSTZeg=,tag:YR9Y5fD24U8qpJQ7R9S2aA==,type:comment] +#ENC[AES256_GCM,data:OdDsrRG/Qh0RntIFW11TRmwAurJpGPWEiC+LLoDnb60kQ6h389DlaWRUNHA5r86VxPBbWhiMYFRGWoTV6pnU9wmLtQ==,iv:OKbTXcos2wkOY1ld8yWAF1YX23bjLKo0WYui3DlBtIs=,tag:R47RdXGT7BKvfe3k+ycFfA==,type:comment] +#ENC[AES256_GCM,data:Djj3OiGfdclwSukYQGxpn/YD41FxTza3QQyULK3O99C8uWwmhi68wkxkbmi9Au42YQ==,iv:+iiMkSJT217+8qPRY3jqJ0V5VPFSa6qiQLoilcivj0Y=,tag:Jdkf63fhZRhQd06uw3gj8Q==,type:comment] +#ENC[AES256_GCM,data:Hh47fHainHKNg9YD9yoJzFxQdHlcRJ++VO8RBjM8xoN6FrXBQoDFAW5SDN0p2sI08qRpkQ==,iv:mbXu6rbZKPPRJvO9Cc8WkmtoXJG1OWraVEI0nXE3ytw=,tag:5gaPT70kFlzX5Vo3BYAXxw==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:HTWdLA6w8ZY=,iv:ZCxFs72H7hdgxshkLSRBlBNwJ79xhj/xzJKRFqYpVQU=,tag:K+UnJ7WPc62bVEP/tmnyhA==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:Vg2h9Zb5Acc=,iv:BODl/9/X0TElgDYX3jYQa8ESRnvD7c8KJqJ8+lg21W0=,tag:ncaC4TD1UAvf0SKbbRTzAQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:Gtpy5CDErQ==,iv:DI4w9af3C3+nj3zeFTEstPrsjfhmUEEltxhLhTo4pFE=,tag:+NvIC7AVceXTH3XWrA5kCw==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:ly93BdauImWG/AkwkMXMqoxISauyasaJtC/R1CIqNYDl7PjnXfSmTnPc7cpggA==,iv:quQkm/vaCZGv1CQNgtUrnEZo3hVRFFCIDeOtkpT3Mq8=,tag:OPRC+f0S4ZKF0lKx+FiRuQ==,type:str] +PGHOST=ENC[AES256_GCM,data:IbA=,iv:l4pHXhu0seOp5NIk5TkKZ4J/dbxnFsqWBMZTI5eAAJg=,tag:0PKSj0g7+tw2tQ3h1rnoaA==,type:str] +PGPORT=ENC[AES256_GCM,data:WDR/gg==,iv:0seU0BvF9LPW2UCVeK0rC4XrOh/cmSszVbno/8qEhHk=,tag:GwM0f2rIGwfOFJ9DpadFVw==,type:str] +PGUSER=ENC[AES256_GCM,data:Syr2Y5WaEhY=,iv:kzzXCgr8NOS14KT9fMhhKQsHwFXZSRIoJRJRZHf87s4=,tag:hjFTKoiGR6VH0UZblKOFlQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:/ebpuC5Ytm0=,iv:N95RcTEGLKvH/S2QWaJ6IbzBOYBmZ4LIGUNHcDxUl7U=,tag:hW08vwfrMeZl+ecgjwlVig==,type:str] +PGDATABASE=ENC[AES256_GCM,data:3skzavHl1g==,iv:tXwhlTlIqUY6YeGdEOo3u6MyoeSG4UC2za/VLPVtyiE=,tag:QbUeVzEUgyt5GjqaBF2ytA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:3h7iDuc=,iv:NbF/UvWxP4lFFadMmxtblPeehTnTe9xiXWGxITArCXs=,tag:QvSDSfmm1ZRLYGL4Bo0KUw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:LYT/4J5VeOBR4F3Zaw==,iv:1swrjgDk0iOf3m2/JIT71UhdNqk9VixRl41VmXcavx0=,tag:CE1Yb5zO5bguRZXUr79xEA==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:qo5hX0T3BrGjBSDemw==,iv:Ofsn6Rc3vWKjkKuL2VtzC3j6tR9+77tk22gDzBQs/7Y=,tag:Py5aOk/xTuov/8fJ1X7+Hw==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:jVfKm82+9mjXdrq1/fQ=,iv:YpmjH+O8A2oaJ6aPWOy8WwW2aqEGcFv6RVf1fqQGECk=,tag:sIWk0cZCTeAFnr5jBnzpwg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:+DigcbSu5Q5guKs=,iv:TamdKnADog7e8zxZOBPPHNoET7WAQtFHgzNIpzJc4os=,tag:6eI5NTpLbZTy9o7VepS9ew==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:fz7eC7g9SA/VAjU=,iv:QRGIC8W8fqMLOMk+RUIBoHRu1htJ4/pA/sGgW2hjcHw=,tag:8INtdQGvqkUsnkQ2WEmp+Q==,type:str] +S3_REGION=ENC[AES256_GCM,data:hOuHnH+bZgG+,iv:9NyuGsrOXMSy79hWaksWhSCqANTwVUuEifO9UuotJsk=,tag:EzABOHfcDeKJV43+asLIZA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:SEvobFjekN30XC9o8XChdgE=,iv:Qdo/UTdP4LiKbzb6zdHo86sUjosZVs7K4jFArMXBbVM=,tag:BPQITURywUrB//LOPlwfBQ==,type:str] +#ENC[AES256_GCM,data:8zPc9L0daGDolCinvaou8ydbbvGLiTPMju+a0zizhO0hIIpSFrTqEQ9moOIRuwQwS3cagJSake4uBPDlItTgjbm0Yg==,iv:4PvziHPjhpvEPkU0PXuIEMWCZYdrkHBYvw+5Z9NS5nk=,tag:KZVWYo9dTPpANRRi7S+XNw==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:qg6HRKiF+VlQJTvCjr9NuDfoW+C2uDPN,iv:L+j5ghOD7cCXHDFbq1Oxy9dzRGx79FQpJO+plS0oAqY=,tag:FBXSBBvESGRVMhcDINyCjA==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:f39M,iv:pPWrOayfmoRLjJrRTleiCZr0/TjnAX0aSVi0t7tvY+8=,tag:8f+OT0GK/T+4wYHNs23ihQ==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:3bxSJno0R3I=,iv:eXdFMN9DEQARWROlRKJKg8hrN+55wtpHSmbhs9X0il4=,tag:VWeVRC9tBf7hIeRAov5Thw==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:Oq/h2Q==,iv:A6XXwcJA7ln0rtWHni50sfcGtNty4Uj6vVUcroFqOdI=,tag:gYJrAT4zRidgYha2SLUKpA==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:/6of,iv:zpFdrhTtFRM9whl3i5aXY7a7sv3ycDzvKcdIKEuDZrI=,tag:hJZxI2BrxclitnAeobU2aw==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:fkvz,iv:Lcjqgk/EXAyvExF4j7pnOnwEIbl06/tQlzdn0qqS4sI=,tag:JOkamdOvW1OAaSzcBYh1NQ==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:WdGPUU5d4c313JMMIP+p,iv:EVO/kvpa7iOazghcTs9S2TveCG8p/zSmFYEYp5OreJI=,tag:r4gsNLaanIXTPfvApDN2GQ==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:xmjPcbm5ErDt7XK7,iv:bT7SpKlaYXA2mjYaP8/mWHglkJ9e0k7nqmx7Nkf1vJ8=,tag:NQ/ld8GckIHKuA0FhpyqYA==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:LUoH,iv:04jdzEK91gVGOusP3ErnkqLrlQnp7PkCnZn2YQGgBBw=,tag:pd/Jiy/LfH88CxNhaTgcCA==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:zoK85+D0E8xrH2hh8OLDSHjA,iv:VEMyTPOQqFMSrno+KkaTmFnZpkeaOSLHSZhsf33UP+8=,tag:bVL04J1rTN2pDjDTOGStIw==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:TaE9,iv:7F0BE9gmWS3raJgIKunNqEDzH9kZGnsFOTufThHZaBY=,tag:iBjADtrAoK+56CoLbyCw1A==,type:str] +API_KEY=ENC[AES256_GCM,data:BTkS,iv:TpB+ixtH7JHo8Gevi+qtyqK/BRuharYMvcUPAtwsJfo=,tag:u3cs3TTYtkNEuVc/9mdDNQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5aThyUlZ4MGp1Y2hQcGFF\nRzFTZ1R2OVVVYUt4MURSOTVqcFRnRXhPakFjCjQvRVJLQWdwR1RyN0hhZUtWRnRS\nMDhDNFpTeW5zVDRFSjRPUStlcXZBWXcKLS0tIGlqdnYzV3VjOWk4VHpjRCtSaHZM\nQ0VjMXVjUEUwbWtvbW5UZFcrLzVOTGsKJkFI9yqeKG9gIRy0Fcnue67jLKpB2+N6\nPNV2gMsxqI20b9U0IJbydvsQqkNF2IMqlFL9n8Wxfy+as2C55CacaA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYZDU4ZndPbDZSOGVPc2ha\nWDJ6aFVZZDZ6TDVlRlBwS3RKNzcrckFoK0dzCm95MDZ3TjVKYjhMNDk5SlRwYThC\nWTBIV0NHMUM3YmRCeGkzamh1enRYUE0KLS0tIHZGNUtjTEV1Z2IwVFZrZWJUMWx3\nZnBkUi8wQkJvUEFDYzh1TVFZWDVTY00KmJU1ihoNJafnar1yIMLdMunAmJi3bKcJ\nxRErm93kUwgEhnQZQfb475DqLPt/GW7rPMBA8gMELdB9iMU22AwzDw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnMU1SczZCdm4wcCtzRE5n\nd3hrN2svYmFwRUM2ZmkxMDdneldWWG9hWENVCkxnOHJnVDdqb2FJaWhpdUZKUE9J\naFpZUnk2dENOdlJzcG9tbklIU2pNNUEKLS0tIDNFMVkxamRkMUs4QjlOWmlGQXVz\naXVrRWVyNHdOMFdFK2x3Nm8vR2FHN28KkZLAxdnbux/ntflgW4hE+RKVVNXC/FW7\n7Tarr78s6/aLjyplvDajjr+elzgLnU3jS3pNJZoBEXl23yB8fu4K0w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpUXcxMkhzVVU4YXF0eGxx\nQ05TNXlGdEJjNkJwRkx6dDdNNnNHY0ZHUkJFCnNHSWxjTVRFQ2hhd2pGM3VubUlU\nZEt5ZWFkeEk4RUNxT212aDNnQjQ3ZmsKLS0tIFRKU2dnanJEQmJEY0MrNTNJVzRy\nRDNxTkpCaVpYYk1zMGhJdWptWU0vZEEKku40r6861w2SLN4c0CEKYQeILACDBQqi\nsgWlR/mva0isWnyv1NPvhJI08SyLdCt12VqcmMojWYNUeta3Phxeyg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmbmd5L0VTbFNjU1R3NGxD\nU0RQRHFTQXF0bVIwWExwNDAyL1kzOGttRlZFCmtLSkNBUThMRmJHL1oxUjJNeTUv\nM0JlUEFKcUdFZGlCOThZTVdwRi94bkEKLS0tIGNoeHBDcWx6QVgyOC9XU01YQ21E\ncnZ3VUNSVkV3ZnVCNSt5L014YVh5VmMKFyq1AnfHPuCs0iI2t4NuEF7HtMmnwq8l\ng04M7HlZ4UUPlKly/hB+BZuJou1W8Ts6Mf69xhkXNs5I3mmHMAqNUA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzSDBZaXFKbGxObDZSS3VV\nRXM0R1QydVBYOWd3dkdobUgyYmMvM1hQNlVFClY3MlRiUzN6SVFORzBvZ1JpbEhs\nVDdIYXV1RzZrQ00wa200YXloejF3RGsKLS0tIDYvdkhNcWRsQVcxM0RnTlFyR0ZK\ncnpoVSsxaGgvQkpBVFFoOGp2TldkWVUKsHD8JmEzCFPLkBM/JWNUqQ1JZTYIHEcs\nl4lNJrfhEDeXP7YkrHotzrQzmF9PNOr2UBQE/UU35i8PoTm0v8XjOw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0b0RnRkQ3UFgyZWp2MXNt\nckErMDBvVDF4U1psczc2WjVCa2s2TUIra3hBCnRrNkdTSFl6YjM4dEtRS3AwOXZY\nU1pPVWIrL2ZMOHdncDBCMnRZMklnK1kKLS0tIFY1SGJ5UitxV3lQNDlUMVJGVVhR\nQzFvd1Q1b1c5VXRqMlQ0TzcyZWtFWHcKsX54+OIbJ4oqNG7Kq7GHqmad7Y2OBi+p\n9uFXzjGD+OK/Hswo3v2b/44WzEEFf1TGokJ2bI9mYmGCGKEtcYox3g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwSVlxcTRsb21XUFZmbmhF\nWGFkL3lZYW85Ym1vQW52WW5QaE5tdzJjdkE0CnNJaDdmeDdBNjdIckx1MmJoVXJI\nWG5CV005ZExmdTF4eXlTakhPR20xYTQKLS0tIEl0UGo1d21zblZ4T1h2Q2NXaE02\nWVNPNHIyU3NHalAzeXplRWprK1VmQzgKm86aapCIGH8gJ3s6OGN0dnx3VTSIob3f\noyvu2XTE17GU3FG6fWotZ7BKQfto+MgBH01ZixZnVsKXMg5acRqb2g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcEoyQ292MFhTaTRhZjdi\nSTFRMWhnb0lGV1huek1vMmdEaXZpbWJsKzNZCmdQeE94c29yMVJjL1d5WElLYWFY\nVm5QRU0vdGdjOHMxSjdMNFFGT1hlTmcKLS0tIHVyQ0xabjVKZUFSMFpkQlJUcnJT\nOXEzYldqZnFUdVBGd1ZWZ1hhSEpmVFUK3cUFPiRFm68LCzTPrVy/L0aKkIbMccB7\noY6EC2T7J7Gsj6w9yAjhuAjurypabq43IjzPL+4QIfyDs+mAm9UEew==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxd3BtMHZtbDJBT3hudGll\nQTZ2SUdkaDQ0TGp4OGI1OWtZYnJaTEFyU3hRCmNmcEo5SnVmYUo5cGZtUnFNdkJi\ncmtDanVQSDN2b2didUlJQ3BJNU95VWsKLS0tIGE2aDRGN1k2VTdwSTZzSjd3NzF6\nNXJ3OVd1VnQ5d1ZHUytTd3M0eElRVnMKVUnjV4DgIuWRs7GXR+1r9eIeMzHUgFzl\nhq5w2dkTrS1w2l4y2PZJJ+sc6rxSFF28S0SZzXHDaXjT6phF98qW0g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyNGZtRFVyeExoMytMNnVO\nL0JlZ0lJMjZnL1duVVBHRHJkVnBLUUI5Um1FCkNNSTlzN3hoQXBJU3Z5dmxUUzB4\nRTNNU3o3c05Pb3JUWll2dXNmdmJGdUUKLS0tIEFIVy80bFZnaVp2Z2Zxb3J3dUhL\nd2FKRW9FY1orODUwR3Y2c3I5emhGRUEKSF7WMMC1HcRA+bTJFE2fLnS4T5flf4oF\nhCfklcB4a++gGJr/pZXitSPFMEGVFIHmoyFDFm6YiKHcrB+IfXuShQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1czVOZ002Uzd1QmhkU2pY\nSDVRQWNVbUh5d2JSNk1jOEJDajg0RXMrNmtNCmV2cUlEMnZDT2NtanBLazFGS29Q\nczJMN21aZ1JHanBjWjNIRE5aWkVDWW8KLS0tIGx3Q2IwbVdEMlFvV1duR0wyamFO\nM3lrUmthSGFobFlQTEphcVF1UC9PUk0KTmN5qNl/iqog/CmlEhGoT/FjS4dLx4dV\neN3Q1gbx08I8ZOoHRniG1tuqabdrGPYIyNBa4X7ZvBru2IWN9zEGjQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvLzhKSG9kTnUyNEo2L1lC\nd1NQWlZKVEZwbndOeXp5QTk1d0JPK01CL3lzCmExT0kveEplUDVRUmwzUy9VaTFu\nZE9xeS8zNElxeU5LaVpOOW5OMTdtUTAKLS0tIG83cGVqOWlSZWVQSWQrOEIzcDJp\neXJrY3lqSG5qaWZoeWpSK0NhUnp1bEUKPnOEcN6OAtqUZK0GluQchj48BmNtZhoV\nr3Rm3D8m/KErWe1XOFEtVvLpK6rJjxrMRVHz8IGb5CQFrh38zgrfBw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOSnV5R2t0a2U2dVZBTEVa\nb0phTFllU3VtUW9qOFhwYTlKeWtZeE9nem1vCmVjSkREUlRNenc3SnVlbzA0YndM\nai9SWUZBMExxeWhyeWFJMU1ZankrRkEKLS0tIG9HOHZHdkdsSnBrTXVKbzdEdGgr\nSkRMV0Zrc1JUVS93RDdXOW80NWNLejAKzqlHisTI7xLNWmWAuMyy7hW9QOWK5Fhc\no0Ubv3QG97RsDXB4YbvAgAhoj5Dq6bQYmyFjDO/Qa/EAcuFpBnk/sg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtUDFZNHB1OS9ka2FSUXNw\nSkRTVDVxejh1ckZRbUg4ZHBCYkxQbUNnMGlBCjdwZ0c5TnhxWXZ2ZnplNGdQeW5P\nai8yVE8rbG5lZ2NkbWdMWTkyRDRrUDQKLS0tIFZWRUtuSmFsTzY3T09tZjhVKy9x\nVHBQTmRHMXJJMmZuRGJQb3ZXSzhTSWcKURBbtCOqc/Ug2ZGJUd/GDrSAikLXFocS\nRCbq7sVVinH9gmg/VKeVQJ99HymPIGKrbaR6aPnxt4fAZ3dp4w8joQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T16:07:21Z -sops_mac=ENC[AES256_GCM,data:B9SSgcMGnitCUAFtVeBqw0HkfOcOt4A7LCYHDeol4y1QEvtOFXpwmOgCnxl+fhakvscnWDQEWjJd2dhzlRij9IttXu1WbfyB0+YL9+38qRIEdR4ALgCighX+5f0bVEZImXfKU0OAkRkMWSAqfchyytmOvuO3fDcvYP17HCtoDGc=,iv:pIscD4cVo/DTXDaP0RBHLv3ffJinfHJT1mRWGWeMOp8=,tag:OvJh6uwwLpNpUOyyMKdpFw==,type:str] +sops_lastmodified=2026-04-23T16:26:36Z +sops_mac=ENC[AES256_GCM,data:ZRPKklV+xCZ8xrSmVu964r7ik0jvHOM2hLUhXC2iLzymswKm9S/iR6qJE7mvOjfK5fEYc7eTve3zDh1iaGJ9u/JzYjSMHWbSDOomCV6UrXs+g/9b8bDqZUuuobo5CfZ1/wkC+nxzVCjcy2m3CW+l24T6HYC4Uf1I6xwSDwH9mHE=,iv:PahoyqWRpcbBs50akhafM38ThCle5y5bv+U6+BXOX+g=,tag:ulxuFXGu6z8NIX8I6yISTg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index a23309a02b..77b48b5bcc 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,55 +1,55 @@ -#ENC[AES256_GCM,data:9jS19wprfxb5daPug4yd6Cn0wU7FC9l1ZBQzn+NcKHyv,iv:QP40uKs3ZxG9Davzo/98rKMbyaIowBXFryM2J4UZ8BI=,tag:Zao1Cy50Fr4y2FAJq9mT6w==,type:comment] -#ENC[AES256_GCM,data:R0CAh4m45SSPuxVnk4QPh+LQgR1UDX+aCEMuQgc28SCcyDxr1qEse4R8YqYxcctLZIhlQt94whtxP4I=,iv:08/UI+BFyZxhr0T1ernwGCTShGMPk6+7OiRODPGxNG8=,tag:taUTUM984sMnVuZ91+WKcg==,type:comment] -#ENC[AES256_GCM,data:V5Xbv0sMWs8UrbH3ScAvEwHJAlY1EJHOrnbWq0Y1QlIMJTB09Sg7VJOVvEJY60bAKpq+JZuyl1ZTG8iX/1llNIAOpg==,iv:AC6K9Ubxm5cd62ACZVITFOrhVcdPHr9MzOXj4rc4mjc=,tag:Vd3M3cjpHLzVHI3nPBdfTg==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:5j/lr4VS5/BNU2MwEaFNK3vTXg==,iv:kb/EOIDpIfEiHhG4Yn02P6w5Wn7VtcLaRtQfB33aoaQ=,tag:ewyASFdA5Y0P7r3dXDrWVw==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:jYLR7Hf7IlEUpk1HYfcp95a6or2GT8wtdCaG,iv:x1v7pkfyQoB//JtmfXo0ndia1q5WT/qu3Yu3lMztXk8=,tag:spSppQAroJEGcrXsTtfz1w==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:/z8cDGQvpRQ=,iv:pK8aJx0S7xpbCTEsSNsIxCJNX9o+7jCaucri/j9HP/s=,tag:0LCRwrIR4XpCfGLFDW0zoA==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:0ihvlLrUGJk=,iv:qFnYqStgkFBwrS3GVsusBna01/QE/xrwsqdv/Zb1gCU=,tag:TU35OwMlNhHNt3Ojz2p3yg==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:a6/ZrHutXQ==,iv:mFY3I+zUGroyy+nby9ipdeyDA34/rOZZ1k+jg3eMYgE=,tag:H1wU+kEdEdc5I1siIDMVpQ==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:QGtiIlRnrdGpitz7uskl6GGCdaOZApTYXVzEKxF9FivdDEloKoijoplvIPEgMw==,iv:M9+imUawLXi6VYtmJ38btOt1LWrtw0QieZk1tSV646c=,tag:3Q4X3VzQWDUTxMrU1m13ZQ==,type:str] -PGHOST=ENC[AES256_GCM,data:tVo=,iv:oe1lO7qd0Hgab0nZaCEVjmPZvTfYVbLYENCDWvJCFrg=,tag:mBVQ7CMOhBWeSTaQuDuXxw==,type:str] -PGPORT=ENC[AES256_GCM,data:BEWIjA==,iv:y+y7Q4Tmn84a98N7Wr+3ugw48X5Jc4hUMdnM1bkJX5A=,tag:djVRmqVVw8XTq7MLmnge1g==,type:str] -PGUSER=ENC[AES256_GCM,data:+7uNaBjpsKw=,iv:HFNyQWNeLFIV1wvwW/jEMmLnOrziqluZltzkVNG3dJQ=,tag:+L8VEjLBWqwNHYuojdfNAg==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:lxI5qCntpUo=,iv:7hZoBcF9Kkoab3PReI5SzH2gr5WTng4IhZpwCgIdoCI=,tag:dNGOa4l475UnzeW35BueDw==,type:str] -PGDATABASE=ENC[AES256_GCM,data:WVhH17Fsag==,iv:TOi22oaVHmWCRoTDfDyOLkLyrFz6571usI29vCU9Keo=,tag:Kse111dXX08NixWcqHDAiA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:JUpQig4=,iv:y1M2wYhT2HixMXJPq8R3Ejl1ifYz9Qq2MmEYliyo+L0=,tag:dpGfO2OavJpeHAj2rZw64w==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:sI4V0/6Yz5OJS6od2g==,iv:na5vheC+J8gIb0mJiEgtlubbSwzGL5ulK8ZHWVKHPes=,tag:S66wUm+nYU0lbxW4ve2y4A==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:76uYHqwnp2Zykh+SDw==,iv:aq9KX05xq4d0mVMyc02bl7rAhtrLp1OGhl183pgYtk0=,tag:1ZtzEuqAK8v0ZuwR4wKG5g==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:eA0a3iCzTWaxIZvAK+4=,iv:Fo0pz+pBfS0BC/9GkausHexm/OXgVHzPb208V94BV3s=,tag:WzfztkqfAEnc+CnPKVMY7g==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:+NOsXtQ9FVjTM1M=,iv:d4bpCn0hI3VZiqWYoBfbr9OyTTaOgf52YvbSzAyhwT4=,tag:XprQfUToDzD4TZIu6LQGUw==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:p4g6QHySuMDnOKo=,iv:LZu5OJMqtJTYsA5Bvuqy/8EEiQZ8/iJyLHhr0ZwPGDo=,tag:jHELG9NZv/obPs0S0bQghg==,type:str] -S3_REGION=ENC[AES256_GCM,data:xTtHOIbS2khg,iv:tx5acnV5HsVl9MV1XiySo/h4ZEVmhYgx5jboM8gca+I=,tag:wLuH59zjApinRi/55u5OUA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:cZK2KGr1K2WA679dv0dDiWA=,iv:0wfvRx79hNKH61n3G4IRNVY4S70rl/Zrc1FSm09H5po=,tag:VRJZXCtbBYQYinYdhTzzng==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:aEmpfMYePJ7cTMJQv9yrV+0NsVpuywiqiqLfww3SSm5jdA==,iv:ZqKzvRP/2667y6nHXMZXjuKvNIcD2aXBxs0dk5h1Uok=,tag:CKPG+jN/uKNxWjvdusKtKw==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:2jY366rmuwjgxOH7jX/C5ks2F9Cu6yWv,iv:Fp0bxF0KrneoqEXEtKp2WYczvO+hyNULQvddpIhALh4=,tag:+X2NZGJOV9nlXWt6CmAcRA==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:ZcoH,iv:xVvm6oDXzoGZxsHfoOSA+qWDVHLywDL3kxLBfcj4b10=,tag:sqckRt0GyS8Wpd8d18oFhA==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:XZPg50iUjrM=,iv:2Q2mEiQM/8rg6H0y0yBMdYR8foHpq5t6DmkmUm0yWLU=,tag:GYJRdJTo0tf8j7On98xNUg==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:fHkFUg==,iv:QurHqZK8sUBuKH3IjHU5XdvVnZxLSQF++3jZbSoimMs=,tag:d4GgXAGizBQau7x/Lda1Cw==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:awRT,iv:iolxNn67FNxxjR2z5vTocnFAgv25AoiZn1C3abDQHno=,tag:HJnYiWIN1+uyVo9UoVz3pQ==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:VbRz,iv:Hs8jhwJLZ6rweGzuPui9sKpVWpvgSb2bBXlfYV3v+As=,tag:ROgGPJOZ6nl0FxlAWblVWA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:IBuFpNVlv2sTrzLo+CLU,iv:mh0heoTTwkFK+q2BRt3dqcIUobf0pQ0gMP9XNF8Vnz4=,tag:FrRVMV86L+vB46n0uh7syQ==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:ByaMQJRJG2S1X6Ck,iv:m0sGS/OBAodeCsr9vQ3MzZvPP14VNHVF0Td2MnawHIc=,tag:6VUALHZvXV3VtZ/xCh7N1w==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:lksz,iv:/+XaBc5it027Us0H4p+tl+m3V6XZkLhUQKLA5jqrMvQ=,tag:CfmqR0SDEWXr1LjJEJWmjA==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:nxstuUV+A6cBY9xnIA3kZL9W,iv:eCUabtXIAFT90kuG3gAYih+FKpSeQVduwPqaKSrIKtA=,tag:Tm4tTlanw93mi6TUpXK96Q==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:H7ac,iv:hnDco8MZkB+Wow+RE25oZIXl3FHUbronpRUyNwmctW8=,tag:5f7TY/6TX82IkpHUoppTaw==,type:str] -API_KEY=ENC[AES256_GCM,data:t1ZR,iv:jko79ew5iNLG9OVvnsZ2fNJpmWVK8UqIcQW1cZn5cIw=,tag:zaaJzmPfNTLXsJoQLidn5g==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwamRGTUlxOXBaS1FGSWNl\nbnRGUHFqKzg3eDRMV3BXS0JhNUNSMmtIQkdZCkZmei9pOUtONzBKMS9ZTVlndFpR\nbzhEa0wzZkFtS2VVbngraXljTWVSRHMKLS0tIFZkaWZqQ3BnYXAwWnJQRTllYk9m\nSGIza1hPQXhZUHR3UElFR25ONzc0QWcKKl6F9dpFxeIWOOygRj57PZYuezCfATv0\nHKEK1TmWOGESfBZRxTqzx2C5ndoR2XYF5pD/Oi448gvfMbSSQioBFQ==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:Hwdf2pk2sq4tbqPYUV3i2yHiO0KFzC8nwC5BnQq/Pg5u,iv:b6Vwum9SJjVRK3m8b7cQaDH785aVDeGzJ6Bbr7z9e9M=,tag:rTE4ZP/B975HPbTCvVgiCg==,type:comment] +#ENC[AES256_GCM,data:q9FnIVngLJYukKetBdNStfjGMAnc6CqI2xTSaOZ7lBbrnDojLx3abT80djTGTfgz2nRPbXq2QazUtlg=,iv:K3XLRUqIwg9wqioALaRB8294o8XZDA5grLtFrHTFyls=,tag:RMKls2LtBk+6iLDKPMA6+g==,type:comment] +#ENC[AES256_GCM,data:p71pg4MqDjOnHIKPAq5O7F1RfRwFDa7sUD/t+c3gPr8hMouULsLCwhj5lMs4Prmrh0QS6ljKIS7GX7nLhPf7+Zy7Jg==,iv:IjgYNGrLqeKc9BaVsr9fCnGiEae22NhOyOT0Y2+XsYQ=,tag:sdF2m8yDSDCQctinvAcKSA==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:RMsPH7eP5uXymXX3WVLsLEsvrg==,iv:b6UR7JjGxtNRJAi8UXih4IxJNjvcOXM9pfl7yvZH2fQ=,tag:ZwNELpiVaqTJUD15YErHvQ==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:CMWPQFkyhOrTlnqAhWOe9NQHsTM7hdYBlsLK,iv:qbLCq5XQzadDY74UE9DcIHhc7rXftKZnwRT1mfNEDSk=,tag:v109EY48lrghe6Seb4b8DQ==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:L4+26lYsSJw=,iv:fQZNiuuq0fvzc9LgYhInj+E1b+f1PgekT7QgCwmzqHk=,tag:ud7izPKiOXc0orVn+7Mu2w==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:0NMYvJ3Z8e4=,iv:MqAjiScssYF/nnUlpizaZu7kbMBY4SzhT57080aQ3T4=,tag:PlwwqEIpPCPE3B7/4/sQcA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data://61deQkDA==,iv:+aSJ9CGgRY8xyFFkGo/Rp81uXyX5UZ9y3WpXFBLJp+g=,tag:s1xKK/CgFt0opddyX/CKAw==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:ODtZq5cB2buDhJV/yHxlU8K6Ces3jx7UQpY508mKRUxz7plL3LJe6lfCR1HWRA==,iv:K0MBexXyFqIAJqOUz+3tAVDPNwnO3dn2AZbNCNo/uA4=,tag:bsUOMrw8mZFR4R8r/Kagcg==,type:str] +PGHOST=ENC[AES256_GCM,data:yRg=,iv:AnNBo2xbNcR61pI18NX+WqqpKSFwwNd3HxYMHJIiJOo=,tag:xqK6wxKzzkL4GQplmcDHfg==,type:str] +PGPORT=ENC[AES256_GCM,data:L2CICw==,iv:fs3nDbkMXQHKaMALQOO8MFHW6GXJonqamoUDf31iL8Y=,tag:3mRqtDooclrDNlZYZwrEKA==,type:str] +PGUSER=ENC[AES256_GCM,data:7rTljtCtmRo=,iv:Iq6FqPpIYR6NBhRtGc2XH+h4jgXV/TNpnQ8bShYoyLg=,tag:x01ognj/9aDxj04+axwXcw==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:QS1fIAZivAY=,iv:/WKANKwdhcD4LJ9y+4vsuQNBi283UE8cQ8tL+Dj0l2Q=,tag:+O07YLptwJt8EjoyKMrK4g==,type:str] +PGDATABASE=ENC[AES256_GCM,data:TVb+NBbzKA==,iv:YeRUJ6TkTRbjgxXd1Y48uxUl7LDOVSeqXsYucr6AGqk=,tag:6Z39g20X52KhG1PkdG/Pkg==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:kMYwjF0=,iv:xxFd0BMR13JHXWjDetCeAR4XC88UcPQMclYnqyqwwxI=,tag:9BI2KjteFL6w0PaiWF7/bw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:yye/hGW1PC4oHeD0dw==,iv:RZgC939MhX+9YfIvOg+Zm75Mp0VzRBuHsR8yl5gOChs=,tag:Cqn7SZzeWx1+hke0b/J/lw==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:ugHbqZpWX23P4OyKtw==,iv:b5/v7pJ6fE6gS3sZ2L+X0GggDGk0T/Tc5YJH3p79O3Q=,tag:7eQS3cypF+eoFqib1ApNAA==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:G01xyTWJzNta8cnIAXs=,iv:jf67ZloFjzUnY8kMQUaAhlxvi2dm8DsTWVxj1G8u7RE=,tag:BFXQIhpYo/vowkMJ4qB+wg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:e2JFj9HDVXw2HN4=,iv:PWOE9upZnqu3r4VdVQrPrxE2IVMVsgQtc8iPFAL71Bc=,tag:GOvOTaFcOsSpDoolPh+Ubw==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:lfSxyQlY3sUrMus=,iv:AhRLFWzqX1yfViBlWI7r8EfyWHOVR21dy0HVHTEIjsc=,tag:Uo28l68kM68TLKKnJaXi7A==,type:str] +S3_REGION=ENC[AES256_GCM,data:S1zmnhZj0lmz,iv:sPnQG3Yr6vXAM8rJeL2Q6vT70v9HelqDY9rkMnBh458=,tag:25x1tnx9bfC62B9tVtnR0g==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:Aq8Et0BulM+tME1x9b+n/Mk=,iv:OIIar2FWgnVvSKbPbEkcsaCA4sOGHHYI2cMmlHc2Jfc=,tag:zv89Xf1wdF66Vg+xofQJ1Q==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:3ZG4Wt+dtGOB4InSV0kREsBeK0g2OczV4ltddbbtlK3drw==,iv:jDiYair3OkwDzZNlBain/QMAqce1PSsThGAYAdkwNQc=,tag:PvF1aRCM5KRV0TAx4Nvz0Q==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:G3ilnrT0vELU/DXOZq4WzyZphCIcuUsG,iv:g4hwgyXsvENfW2U1AyumKSCPxKOGIG6mWvbI+qEHLo0=,tag:QZ1lP8HZZuVvzQDPp7/hhQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:smsi,iv:+PFZVP19Ca1xEc+e/ABcgeQUKFyAgxFCFHCXirtjTGo=,tag:e/IrzgKt/7QE7NmG97WRCw==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:wNr6ozOTgQI=,iv:SDvMNNfDxl2IYnFWyCvfNchQyGQiF5xJ352stVEZvv8=,tag:O1CPeAEIchbWiH88Madagg==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:FpGbhw==,iv:SsPTCQDv4SIaVl8xzIi+ug+OtezSq0byqKy9rF+mzTI=,tag:TPLThhjcGib0HimUDN6Tnw==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:OZRI,iv:eHbtCIyHmxuM/+5DXL053xDDQsSyYUkncVrKJg0OUfo=,tag:32VcS+yel2UJHrvoxTd5eA==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:+ktb,iv:zfW+LFySE3AYuFINR1Ywn10LccdcnWmL3v9q4gPXNTk=,tag:raxj3dJTAMqlZtDZ4efQlA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:NFZSwIc70HMwG9jBeTJh,iv:Xv7qqfTZq2wLBdzDXYgNmV73OdjyRYwQc7u+Iav8xMs=,tag:ClijrlE379KDG7906ceESQ==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:Xhk2H/F9oA2ou3im,iv:yqSgPHhu4LzMXdvsyuflbhtyvITl0I7P0i2M4auoXlo=,tag:U1Chywrrd95uCnZNuMAz1A==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:FBNS,iv:3yNSZaYV5F07vj+gsx1YRpE/Qb/KkcnYvN3dN3uzcmc=,tag:j3EzY68I9tDuvDLgYYqCbw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:P8zDg90Iokmm/jR0Fj9usV+N,iv:O0AMCRYnYdMlVGdZJkcinyhtQj7jek0MlnW723wCpd0=,tag:UkK8K1YBg4AW0RyiF1K+Bg==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:Rq/a,iv:zA3WRkHp/7ZG3Xombbu54DELuVebn4oRQiQ5nVYCn8g=,tag:+AGccr5rgQQX4mrSPZtzGw==,type:str] +API_KEY=ENC[AES256_GCM,data:hwBo,iv:XlRpPUXI+XOzwrqD0E0ns7jelDP2m+cfNq/u0l7j9WA=,tag:y9RcF80VlFbooErFLYhsNQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4WTc0elZMcitaYlNReXM3\nb0tLcG5FOFVaY0o1a2o3Zk9qdkN1eE5zckFZCk04bXp5akNiMFlQVEZoUk9zeHM3\neDNHZ3ZmWFQ2QWxoUG1CaDhoUXJtSEEKLS0tIE9waEsrbGkxVmZTRWVaV2lzRUJR\nalZjcWpzZlRWYnZXQXhsVzlsTHZDa2sK2TMwa/XVKKWtipWeTCC4LhO6sJdt3BVk\n8Wc4ffZ2rs2xOfK7PMM/B3IFFW4e2EWCTa/vj8Lx6Aey5sKbwk0vkw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWbTA4azNqZXZxWllGbnhO\nUzJsYWFsYVRNMlR4R3dwY0FWV09WSjRrK3ljCk5PcjMrOERTSVExVVpOcTNWcWZ6\ndlR5Nmg1L2FQVTRtYkt0RGVRNGh5WlEKLS0tIDNaRnk5YWhtU3IyTk9xdXFTei9M\nQ2E0SzVBQUFFMmNGS29STmRENWtTSVUKlq1UzYQOlMp/nK4JdnEaJtCZCgey9VYr\nlECwikTaJzIXmLhvffRK5nzyb9cHcikD32deTFH4xz5Is20+bQHu1w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuaDhRV3F5R0J1YXpHbkda\ndDJ0Vis5U0d5VjdZNjA2SEU0a3V3WjRTakdJCjFkWXZyKy9jdDRTcGR4VWlkSFNT\nNGkwU0hTbmJXT3NaOXpZeTEyVmszVDQKLS0tIGNINFh0Ym9UNlB1cXJVdUw5NHlB\nUlJEaHduMEg4SUhmbmZuTFRKSFRJOUkKM0RaM8pp7J6PtBLwC/DAxB60a8D8KBH9\nn+pWaujxhzX5U12ydDGVsBEuwZLiW83m03S+q4WciJiuJi0A4hZROA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKUFNJaVZ4VkRkYmFzTVlj\ncjZLM3Ivc2ZvZTQ3R2VMTHdKUHFPQTlRd0MwCk9BREZLQm5FRG5rL3NmN1pNaTZy\nc0dWdVBJa2lhU013MklBY29rY2k0MlUKLS0tIGRIdzJuQUR4M0pEV3hYaEVvc250\nSXQ4b0hDODQxaUs2djZieFNpRWEvYVEKN7zRLrVsf3y4QbgjPsd9r++0fFJUx9pR\nU3b4NnQeD3lSn3GHBajzZEscPoGgdC0M1SI5GZUlxgy2hyWEL5iOlw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkVnpDT0dmWGViQmxPSFF3\nZEFQUk1WZDhLblk2RHJNR0QvZ0NwQkZhTEhBCk1FQk1HVkduTmIyK1ExT2hMUnVE\nakk1Vk4wM0JmKy9FU3hubXBUNFNIYVEKLS0tIEo0VnRscmNyY2xWd05uYjM2TGdG\nVWFpTEszMm5xTUtrcldxenFxcHpTQ3cKMZdPzZqRe20rVetiUeSUqqJnrbQDBqVz\nZfE816ygBQKXBRgV2SCa15DUoL9YP25lrhgz4UDPqpPd0HAM8DmYRA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMcVVXQ3MwZ1E4ZGFLL1Bp\ndG1wc0FRSXhvOXRPTGY5TlppMGVlMld1OTJ3CnBxWVRLYkFkNmtvYTRiNENQN09j\nTGtpWS9VRkIwdFR0U0ZXU2NCSXBWYmMKLS0tIHNUWlpFYWdnSXZuWUo2Wnh4M2tF\nNGl3Sll0dUR6dTZKeFVEd0Jhb29hc2cKTxWd8sh/2qKRRO+8KwHKSVhTI9hD1fJ/\nrB7qwax0fyODEeBglZzicYIuFLcqRrnRoYXv7MqnROKRV9yvh1iJvw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ZStwOTVJZ1dsN21udlhy\nTTBFaEFKV2lHZktBSVlncGEyZmxkMmRCVVNzCnRiS25JNWZnbExtdW0zMjNzM2dC\nekVPNkVUUGNVZ0xxT09CVkFSRmhIUzQKLS0tIGNmYmZhdHM1eDZoMXJhcWlwY0dj\nV2ZnS04rc1dzZmV6VE5xSmZEQzBJZU0KuJC6pdz2vN6Cq2KHwyGcUgQ0BB0zldtF\nVw/MHm1KxaikLBMW243o0IIrUC+rSJD+61gHWj8wNduKJbSM6ZS0JA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaU1ByZm9RV1pZOERNUXRz\nNzR1SFdQOWQ3Qk0rOG02bm42MEVMQ1BMYkdzClM4NVloUWdYdGpnK2RWZ1YvR2FB\nQlFUOXQ5R2pPdVVlRFNOclBmMHpua0UKLS0tIDF1TGRzRUg0MXFhbWxFVUNhMGhi\na3R4TFA2M0I0OGExU0cvUmdhWER3Z0kK66ztONKjAnaruAF23GazEz80/iYMTkqw\nAW8jjwJ2yfL6AtF5KYkOnjaQvlzBbyqAFUPzp8sek3tS/NZFSS5e6g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3eEVsNmZrdVBGbFJpTGZj\nbUtTUnlYNWt3NUJ2WXI4MUovODV0QmJ2dUh3CkZiemhmczdXSkFoSUU5VnhOQ2FB\naEhyckV3TTVocW5kdmpDRnpuQ01qdm8KLS0tIHF3Y3lVL245eEFXc0JsZ1p6MEx5\nTlV6ajFDb2tSK3VFUWZ4WVBtNyt0WDQKrkMaew6U545aBtYxVYXhpJHIaazR6PuI\n4tYCw0QSnKGSk8bk0mk3a6wtNqKymUS7E7Bcwt7SDmP6/dGy5Ryllg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3ODk1dG5vSFJvdlR6WWV6\nMExMNy82cjJRbDFXczB0MWhjS1lOVVZKOERrCmp0Vys1VGZXczFRdTdWeTdoQ0tH\nbGI3d3RKT09NT1hBcTZsaU1vd0h5cFEKLS0tIFBwSmMrK2l3NzN2dGRiRXd6WWRB\neDhDelg2NUNzVTRrTG9xeGR2QWNxQVEKG6I+fb7+cYIkxGRTKQejtH4FsMYdJ0SV\nsjjTPYKM3MJX82Ob/zqD+qIUc6s3FYzWQrU3ypx7SfN4B7HJqEGFFw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNDNoSlZnS1lRZlJTS1Zz\nOWZpNUhkR0VoM3B1aVpDdVBrUWlrenJ4dEFJCkNqSzQzZmtLVytYYkxuTXlLY1l6\nb1JUbHJRWWJ0Q004Yk91b1VYVTdXVVEKLS0tIDlPSUpzR2ZETE53cXNMWWFZRXVO\nUWdSbXI4YStObW53czZCU2NRZXZ5N1kKi0hlYD0UpDV6TckFElYr9W/eu35h3F0G\nrTNhD0pnbCUhw2xUFJENxq6Q/XidHb6zsd0tCtyqoFRHKFKyb+QQQQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvc2o0b215RHJKUGxqb1Jh\nS1VWOTBWZG1rZEkwYUpBdkt5aDdJeWxQZ1c4CjZDdmU2bGhXS24vVk84bDlsRTJm\nK2NvcVc5eFlnbnRTTFA1UGR5eUM5T3MKLS0tIGVMVkZ6WE5xRlA3dTFXR0F4a0N6\nYnk3bmIzYlFMYkxNNUtLb2RuNTlFUDQK8WyahwawQmjPl9GlXMA99wwTIkqzqEBb\nbKqTEaBdJgB6oIqcQVVqmZgIookouJu7oDDjep8Og3QXGFPYUdJ3Zw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5WG8rZEZoT1JvdXI4Zk85\nUEtUbDdWTG1zVCtUWWNyZmV2dGJ4MWY1RW5ZCllWQ0M2R1hOQVZ5SFJvczczVVp4\ndCtxWld1K2lTbEc3VUlkemNhVnpCdjAKLS0tIHkzd2dPY0V1NEt6TnowbTU3OGpa\nYlRIUXZHR3dKNXdCb3hIUDhwUFAwUlkKw10DtY6YTHii/4WH+19z33AOKoj9iZgw\nc+ybfLAh+Cn74Qkm8SIC0ww/TmBoTy79D8wLZgnKKznv3pc9bDaU4Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFTW96eHV1aWc3ZksvOS80\nSW4zYkxKbElNRnRNOWVaVW55YVZWbHRPS2lRCjE3dTRxS1ZNNTROdG81RklFWStY\nOGk1SGFNWldiNjBoVGdEZS9TNmx2QTAKLS0tIDJJRXY0aWZrRUxrL1V5N1RHZkhy\nMjJjSGFsNmYyL0hrZGx6RHdYUlptTlEKWg7T5PRH2NlJ/o3iX+jxE5yN2zyG43Jz\nWxiyfpirvk1jIU00nbLYq9GpYVF9heY9nqVkLJaFBY5A0CV/VKq3cA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0QUVhb3pSVzlYWFoxTjY4\nQlJzdVJZMnN4bThsekxHclRFcTVzaWQvVjJJCjJCQWZxRWNKVUtPQllnUHhIMkVs\nOGZaOTFyVlBudU5UNDR2UTRXV2pkNjQKLS0tIG9CUzNUMCtXUG5YbEhkMVhodUNs\nc213MDh6djVDMTBYeDVmd0hJb0ljMEUKeq+rrHpjE8gYLJeOg5AOILrZQTzn2r2z\n8rMcRi1QFCIeubVvqfo3QmfzwjNTiXtUjePbP67E+mh5YjoZGyXKwA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T16:07:17Z -sops_mac=ENC[AES256_GCM,data:jE2SsdYz3TUQh5ELZKGY/rjrqtgsTbEWYxFo4ZxY6V0cA3lKbvv39DUP3Oaj7KPkmGnI3gwFw/KiammMghondZWjKGf6onqcpapabTd3/zIngHaoGqmUyj8r6y/yGiGLW9XhgJeHoMgfx4rA4DgtT0B+A/9+6EjbKqWRF6u1jrQ=,iv:HFOehESu5hXYsX7SeNodxz+6P/8dgWcOcQ2WI4++Gh0=,tag:tpcBEZnPXjc8V/mFhlDEnw==,type:str] +sops_lastmodified=2026-04-23T16:26:38Z +sops_mac=ENC[AES256_GCM,data:AwuWnpP2dVBGq/M0E5z68nWkxob+2JgaEdx5dwzCmxUnIWpHdAlrVasjiIPrrwHGAu6g+FZC8BwWets1hP0jzG+JRh41nlmqvbGR5oIU+8U6Aq5o6XRDJmXZsFXKWWsuOvXzthVhJcnJWGV0x51Zd4MqmNMyirLKC3Dp5anlY4g=,iv:sbB1oMh6eUYHQWH9iievR3WTBCu3BkUXslMOqjdR8iM=,tag:J3SkP37QmUyWWddUnwIcXg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From ee0fd59287fe9552b8f9b6412443e5fcd25fad10 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 11:53:32 +0200 Subject: [PATCH 123/153] fix: allow insecure email on sandbox/preview --- core/lib/server/mailgun.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/core/lib/server/mailgun.ts b/core/lib/server/mailgun.ts index 43bcd64f31..84c9f29294 100644 --- a/core/lib/server/mailgun.ts +++ b/core/lib/server/mailgun.ts @@ -65,7 +65,10 @@ export const getSmtpClient = () => { pool: true, host: env.SMTP_HOST, port: parseInt(env.SMTP_PORT, 10), - secure: securityConfig.secure && env.SMTP_HOST !== "localhost" && !env.CI, + secure: + securityConfig.secure && + (env.SMTP_HOST !== "localhost" || env.SMTP_HOST !== "inbucket") && + !env.CI, auth: { user: env.SMTP_USERNAME, pass: env.SMTP_PASSWORD, From e1ad47a10a942f76e7f534463a493781c6ff2924 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 12:24:58 +0200 Subject: [PATCH 124/153] fix: don't skip validation, it breaks test --- core/.env.development | 10 +++++----- core/package.json | 17 ++++++++++------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/core/.env.development b/core/.env.development index c15ffff219..3ab95ba2c7 100644 --- a/core/.env.development +++ b/core/.env.development @@ -3,13 +3,13 @@ SMTP_PORT=54325 API_KEY=super_secret_key DATABASE_URL=postgresql://postgres:postgres@localhost:54322/postgres PUBPUB_URL=http://localhost:3000 -ASSETS_BUCKET_NAME=assets.v7.pubpub.org -ASSETS_REGION=us-east-1 # mninio defaults -ASSETS_UPLOAD_KEY=pubpubuser -ASSETS_UPLOAD_SECRET_KEY=pubpubpass -ASSETS_STORAGE_ENDPOINT=http://localhost:9000 +S3_BUCKET_NAME=assets.v7.pubpub.org +S3_REGION=us-east-1 +S3_ACCESS_KEY=pubpubuser +S3_SECRET_KEY=pubpubpass +S3_STORAGE_ENDPOINT=http://localhost:9000 SMTP_PASSWORD=xxx SMTP_USERNAME=xxx diff --git a/core/package.json b/core/package.json index 8d0fc1c0f0..f983f6ce49 100644 --- a/core/package.json +++ b/core/package.json @@ -4,9 +4,9 @@ "version": "0.0.0", "private": true, "scripts": { - "playwright:test:base": "SKIP_VALIDATION=true NODE_OPTIONS='--import #register-loader' dotenv -e .env.local -e .env.development playwright test", + "playwright:test:base": "NODE_OPTIONS='--import #register-loader' dotenv -e .env.local -e .env.development playwright test", "playwright:test": "TEST_IGNORE=' ' pnpm playwright:test:base playwright/_first_tests/initialUser.spec.ts && TEST_IGNORE='**/initialUser.spec.ts' pnpm playwright:test:base", - "playwright:ui": "dotenv SKIP_VALIDATION=true NODE_OPTIONS='--import #register-loader' playwright test --ui", + "playwright:ui": "dotenv NODE_OPTIONS='--import #register-loader' playwright test --ui", "db:migrate-dev": "pnpm migrate-dev", "db:migrate-deploy": "pnpm migrate-deploy", "db:migrate-diff": "pnpm migrate-diff", @@ -37,9 +37,9 @@ "start:dev": "dotenv -e .env.local -e .env.development pnpm start | pino-pretty", "reset-base": "PRISMA_SCHEMA_DISABLE_ADVISORY_LOCK=true dotenv -e .env.local -e .env.development prisma migrate reset -- --preview-feature --force | pino-pretty", "reset": "pnpm reset-base && pnpm clear-cache", - "test": "SKIP_VALIDATION=true vitest --logHeapUsage", - "test-run": "SKIP_VALIDATION=true vitest run --logHeapUsage", - "test-run-no-reset": "SKIP_VALIDATION=true SKIP_RESET=true vitest run", + "test": "vitest --logHeapUsage", + "test-run": "vitest run --logHeapUsage", + "test-run-no-reset": "SKIP_RESET=true vitest run", "test-run-with-jobs": "pnpm exec concurrently \"pnpm --filter jobs dev\" \"pnpm --filter core test-run\" --success=first -k", "type-check": "tsc --noEmit", "type-check:go": "tsgo --noEmit", @@ -48,7 +48,10 @@ "storybook": "SKIP_VALIDATION=true PUBPUB_URL=http://localhost:6006 storybook dev -p 6006 --no-open", "build-storybook": "SKIP_VALIDATION=true storybook build" }, - "files": [".next", "public"], + "files": [ + ".next", + "public" + ], "prisma": { "__comment": "The #register-loader goes to the correct file based on the .imports setting below", "seed": "tsx --import #register-loader prisma/seed.ts" @@ -230,4 +233,4 @@ "imports": { "#register-loader": "./prisma/seed/stubs/register-loader.js" } -} +} \ No newline at end of file From d00689a1d29c648d547a9760bf23990e23125740 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 15:44:50 +0200 Subject: [PATCH 125/153] fix(skip-build): format --- .vscode/settings.json | 2 +- core/package.json | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index 1495392b2e..58fdc527d5 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -41,7 +41,7 @@ } }, "[json]": { - "editor.defaultFormatter": "vscode.json-language-features", + "editor.defaultFormatter": "biomejs.biome", "editor.codeActionsOnSave": { "source.biome": "always", "source.fixAll.biome": "always" diff --git a/core/package.json b/core/package.json index f983f6ce49..ca8282c644 100644 --- a/core/package.json +++ b/core/package.json @@ -48,10 +48,7 @@ "storybook": "SKIP_VALIDATION=true PUBPUB_URL=http://localhost:6006 storybook dev -p 6006 --no-open", "build-storybook": "SKIP_VALIDATION=true storybook build" }, - "files": [ - ".next", - "public" - ], + "files": [".next", "public"], "prisma": { "__comment": "The #register-loader goes to the correct file based on the .imports setting below", "seed": "tsx --import #register-loader prisma/seed.ts" @@ -233,4 +230,4 @@ "imports": { "#register-loader": "./prisma/seed/stubs/register-loader.js" } -} \ No newline at end of file +} From 20fc9fd2e032c9921a186f0411eae69f88d36703 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 15:56:41 +0200 Subject: [PATCH 126/153] fix(skip-build): correct port for inbucket --- infra/.env.preview.enc | 90 +++++++++++++++++++++--------------------- infra/.env.sandbox.enc | 90 +++++++++++++++++++++--------------------- 2 files changed, 90 insertions(+), 90 deletions(-) diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index 3cfddc2189..6cd0cf7024 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,55 +1,55 @@ -#ENC[AES256_GCM,data:kCYAQ8qMHHDKrk5CG1hO4PQLnpS5yX3xLHm7zPd36y0/,iv:z23VDU1T98+bgUkWddkCWxTnpwA8I4zP5QqZ/CxHzGc=,tag:ks+bswwkr0nBYgu04d9o+w==,type:comment] -#ENC[AES256_GCM,data:wKeqYzxXZl1OY1XpXBbj0Yy8WKQ1lxE6sRhRo/UCFduz8R6yIX1IJZFo6zIh2WFllJgF3Hq2dWto0wQ=,iv:vpv0ZHQM6YamEGnwccJOCbv7Dg/S6K2ZWzdq4sSTZeg=,tag:YR9Y5fD24U8qpJQ7R9S2aA==,type:comment] -#ENC[AES256_GCM,data:OdDsrRG/Qh0RntIFW11TRmwAurJpGPWEiC+LLoDnb60kQ6h389DlaWRUNHA5r86VxPBbWhiMYFRGWoTV6pnU9wmLtQ==,iv:OKbTXcos2wkOY1ld8yWAF1YX23bjLKo0WYui3DlBtIs=,tag:R47RdXGT7BKvfe3k+ycFfA==,type:comment] -#ENC[AES256_GCM,data:Djj3OiGfdclwSukYQGxpn/YD41FxTza3QQyULK3O99C8uWwmhi68wkxkbmi9Au42YQ==,iv:+iiMkSJT217+8qPRY3jqJ0V5VPFSa6qiQLoilcivj0Y=,tag:Jdkf63fhZRhQd06uw3gj8Q==,type:comment] -#ENC[AES256_GCM,data:Hh47fHainHKNg9YD9yoJzFxQdHlcRJ++VO8RBjM8xoN6FrXBQoDFAW5SDN0p2sI08qRpkQ==,iv:mbXu6rbZKPPRJvO9Cc8WkmtoXJG1OWraVEI0nXE3ytw=,tag:5gaPT70kFlzX5Vo3BYAXxw==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:HTWdLA6w8ZY=,iv:ZCxFs72H7hdgxshkLSRBlBNwJ79xhj/xzJKRFqYpVQU=,tag:K+UnJ7WPc62bVEP/tmnyhA==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:Vg2h9Zb5Acc=,iv:BODl/9/X0TElgDYX3jYQa8ESRnvD7c8KJqJ8+lg21W0=,tag:ncaC4TD1UAvf0SKbbRTzAQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:Gtpy5CDErQ==,iv:DI4w9af3C3+nj3zeFTEstPrsjfhmUEEltxhLhTo4pFE=,tag:+NvIC7AVceXTH3XWrA5kCw==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:ly93BdauImWG/AkwkMXMqoxISauyasaJtC/R1CIqNYDl7PjnXfSmTnPc7cpggA==,iv:quQkm/vaCZGv1CQNgtUrnEZo3hVRFFCIDeOtkpT3Mq8=,tag:OPRC+f0S4ZKF0lKx+FiRuQ==,type:str] -PGHOST=ENC[AES256_GCM,data:IbA=,iv:l4pHXhu0seOp5NIk5TkKZ4J/dbxnFsqWBMZTI5eAAJg=,tag:0PKSj0g7+tw2tQ3h1rnoaA==,type:str] -PGPORT=ENC[AES256_GCM,data:WDR/gg==,iv:0seU0BvF9LPW2UCVeK0rC4XrOh/cmSszVbno/8qEhHk=,tag:GwM0f2rIGwfOFJ9DpadFVw==,type:str] -PGUSER=ENC[AES256_GCM,data:Syr2Y5WaEhY=,iv:kzzXCgr8NOS14KT9fMhhKQsHwFXZSRIoJRJRZHf87s4=,tag:hjFTKoiGR6VH0UZblKOFlQ==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:/ebpuC5Ytm0=,iv:N95RcTEGLKvH/S2QWaJ6IbzBOYBmZ4LIGUNHcDxUl7U=,tag:hW08vwfrMeZl+ecgjwlVig==,type:str] -PGDATABASE=ENC[AES256_GCM,data:3skzavHl1g==,iv:tXwhlTlIqUY6YeGdEOo3u6MyoeSG4UC2za/VLPVtyiE=,tag:QbUeVzEUgyt5GjqaBF2ytA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:3h7iDuc=,iv:NbF/UvWxP4lFFadMmxtblPeehTnTe9xiXWGxITArCXs=,tag:QvSDSfmm1ZRLYGL4Bo0KUw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:LYT/4J5VeOBR4F3Zaw==,iv:1swrjgDk0iOf3m2/JIT71UhdNqk9VixRl41VmXcavx0=,tag:CE1Yb5zO5bguRZXUr79xEA==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:qo5hX0T3BrGjBSDemw==,iv:Ofsn6Rc3vWKjkKuL2VtzC3j6tR9+77tk22gDzBQs/7Y=,tag:Py5aOk/xTuov/8fJ1X7+Hw==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:jVfKm82+9mjXdrq1/fQ=,iv:YpmjH+O8A2oaJ6aPWOy8WwW2aqEGcFv6RVf1fqQGECk=,tag:sIWk0cZCTeAFnr5jBnzpwg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:+DigcbSu5Q5guKs=,iv:TamdKnADog7e8zxZOBPPHNoET7WAQtFHgzNIpzJc4os=,tag:6eI5NTpLbZTy9o7VepS9ew==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:fz7eC7g9SA/VAjU=,iv:QRGIC8W8fqMLOMk+RUIBoHRu1htJ4/pA/sGgW2hjcHw=,tag:8INtdQGvqkUsnkQ2WEmp+Q==,type:str] -S3_REGION=ENC[AES256_GCM,data:hOuHnH+bZgG+,iv:9NyuGsrOXMSy79hWaksWhSCqANTwVUuEifO9UuotJsk=,tag:EzABOHfcDeKJV43+asLIZA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:SEvobFjekN30XC9o8XChdgE=,iv:Qdo/UTdP4LiKbzb6zdHo86sUjosZVs7K4jFArMXBbVM=,tag:BPQITURywUrB//LOPlwfBQ==,type:str] -#ENC[AES256_GCM,data:8zPc9L0daGDolCinvaou8ydbbvGLiTPMju+a0zizhO0hIIpSFrTqEQ9moOIRuwQwS3cagJSake4uBPDlItTgjbm0Yg==,iv:4PvziHPjhpvEPkU0PXuIEMWCZYdrkHBYvw+5Z9NS5nk=,tag:KZVWYo9dTPpANRRi7S+XNw==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:qg6HRKiF+VlQJTvCjr9NuDfoW+C2uDPN,iv:L+j5ghOD7cCXHDFbq1Oxy9dzRGx79FQpJO+plS0oAqY=,tag:FBXSBBvESGRVMhcDINyCjA==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:f39M,iv:pPWrOayfmoRLjJrRTleiCZr0/TjnAX0aSVi0t7tvY+8=,tag:8f+OT0GK/T+4wYHNs23ihQ==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:3bxSJno0R3I=,iv:eXdFMN9DEQARWROlRKJKg8hrN+55wtpHSmbhs9X0il4=,tag:VWeVRC9tBf7hIeRAov5Thw==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:Oq/h2Q==,iv:A6XXwcJA7ln0rtWHni50sfcGtNty4Uj6vVUcroFqOdI=,tag:gYJrAT4zRidgYha2SLUKpA==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:/6of,iv:zpFdrhTtFRM9whl3i5aXY7a7sv3ycDzvKcdIKEuDZrI=,tag:hJZxI2BrxclitnAeobU2aw==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:fkvz,iv:Lcjqgk/EXAyvExF4j7pnOnwEIbl06/tQlzdn0qqS4sI=,tag:JOkamdOvW1OAaSzcBYh1NQ==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:WdGPUU5d4c313JMMIP+p,iv:EVO/kvpa7iOazghcTs9S2TveCG8p/zSmFYEYp5OreJI=,tag:r4gsNLaanIXTPfvApDN2GQ==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:xmjPcbm5ErDt7XK7,iv:bT7SpKlaYXA2mjYaP8/mWHglkJ9e0k7nqmx7Nkf1vJ8=,tag:NQ/ld8GckIHKuA0FhpyqYA==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:LUoH,iv:04jdzEK91gVGOusP3ErnkqLrlQnp7PkCnZn2YQGgBBw=,tag:pd/Jiy/LfH88CxNhaTgcCA==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:zoK85+D0E8xrH2hh8OLDSHjA,iv:VEMyTPOQqFMSrno+KkaTmFnZpkeaOSLHSZhsf33UP+8=,tag:bVL04J1rTN2pDjDTOGStIw==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:TaE9,iv:7F0BE9gmWS3raJgIKunNqEDzH9kZGnsFOTufThHZaBY=,tag:iBjADtrAoK+56CoLbyCw1A==,type:str] -API_KEY=ENC[AES256_GCM,data:BTkS,iv:TpB+ixtH7JHo8Gevi+qtyqK/BRuharYMvcUPAtwsJfo=,tag:u3cs3TTYtkNEuVc/9mdDNQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5aThyUlZ4MGp1Y2hQcGFF\nRzFTZ1R2OVVVYUt4MURSOTVqcFRnRXhPakFjCjQvRVJLQWdwR1RyN0hhZUtWRnRS\nMDhDNFpTeW5zVDRFSjRPUStlcXZBWXcKLS0tIGlqdnYzV3VjOWk4VHpjRCtSaHZM\nQ0VjMXVjUEUwbWtvbW5UZFcrLzVOTGsKJkFI9yqeKG9gIRy0Fcnue67jLKpB2+N6\nPNV2gMsxqI20b9U0IJbydvsQqkNF2IMqlFL9n8Wxfy+as2C55CacaA==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:ZlwsUvseGRU1ZrfJCW+0nnBciErw0toxdP7YwPmDFY+L,iv:5GxLLwaNgb0EkoWPSLQ1e8fLqRwXrcbELo5LsJ+SmeQ=,tag:QibETvJeoPbpRwJbSw+quA==,type:comment] +#ENC[AES256_GCM,data:LMn8aGFiiG8I3Pv596Sllif55DYJ9Zxr4o6ir2ig1/fhcPEfz2JPPTVLdE7qyzkGux8itN7kXBZMkcc=,iv:BqFIZ2VLEJhfEscXU0ByEFVWiGOGWJamapXOO+et+iY=,tag:rm/iMW5gxxGsLugNlvEh0g==,type:comment] +#ENC[AES256_GCM,data:qDEMa8FusdbAW5U7Eyzm4YW9AsV595nH32ILxYFVhwj0PpI8Ddk7GQLaGhUW54P2bgBaG+2e/vF1RM6p5C7izEvIAA==,iv:k8uip3RDCdb40joDjzoc3JTFLtrCN9DCmpytD8RbM/4=,tag:cc/tt+f6zVvINvRBMA55zw==,type:comment] +#ENC[AES256_GCM,data:kWmqsbNBigWvDaRVzIiD9LKnbYfq2ciuu4UPMK0GBph9sutNFJ284Smff2I9qNqJug==,iv:PpGmKMhG/8/6K6YIKmVENBxQvyuTa+WHqlXtPWPICmI=,tag:bIO6tOX8JMbDER4CBktZew==,type:comment] +#ENC[AES256_GCM,data:+6Nvr5TVacYqDxzuDm+PQxKb2d7Tf3xhbiT7YM8RLAEYuQy/5zfZupkY7/Ny+1G4SQHkww==,iv:0az0lXcCSLsaygXUyMVchAHVogACsufzVqBSVWpae2o=,tag:YjWh3VwueZkooxv3da9jXA==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:yrw8t+7M2Dc=,iv:KWn59XO/EPyyG43GO1DQZ99GEpTHQWkNh7LBiM6Td7s=,tag:LhsP6SItB9fh9deUcJYIWQ==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:T4K7AMdcyYA=,iv:Di2f3dNs4rG566mXl13CFqF9/lE7xRLbZnabRrkdMHg=,tag:Lmnls34p0dYLuRA3t7e3Jw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:+pgewKZqEg==,iv:th+lnsvwEQWDT7iFEXuNrLJr7or7aytPY5R1Kbo97X0=,tag:jrfsAiVAILyvyg7PdxIU2A==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:mP/AExNo3EGhUVDAHo+Atm+ZT2zwMa+vfIn+52knripXvcj4AKJ1Rp/clFa+jg==,iv:yjxrHLw/GV3OPs4BCfN7bv0PopuWMoGnI70vXdJe7eU=,tag:dh/Gb02xTMIjbLgbQcojxg==,type:str] +PGHOST=ENC[AES256_GCM,data:3rc=,iv:5ErMPa1Vv1oB/mCjbIV0vTJusiMlmvvDTxmBdLlq9Qg=,tag:TfSYpGOK9b1XBDpdvVNnCw==,type:str] +PGPORT=ENC[AES256_GCM,data:UUMEZA==,iv:GiHgc2ZBWlJLhcNheN/j1XIK98C9g+ERO8mRNXqdmBE=,tag:1MJFT9V1e9pYbUt9FToYdg==,type:str] +PGUSER=ENC[AES256_GCM,data:OIIvvT/TKdw=,iv:KeJYYrW0C4wrPmWc0p1jOlzE162lkm9XUYR5IYMpFjU=,tag:BSgScY5hHasoHzSg1PItLg==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:DkwExG5PGhc=,iv:Oe8X1EI4aySV8yAYzdXufIOrb2cXlMvO4pcy+w5ZSz4=,tag:iaIpyer9pk4oLh0FcUAqNA==,type:str] +PGDATABASE=ENC[AES256_GCM,data:VmY5Z/ItHw==,iv:LAHkBIwi7nLyvzVaHX2FCMUItpIIzo0t/IRJUqyo06A=,tag:q4Fq7m8+l6RyNq31nrViBg==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:u4rHimQ=,iv:dAKwHSKO92neBTI7SO7PaXhRhXKA23MxkKaqqg6DEY4=,tag:Eomoy0ovlTwRlxmK2DQmEw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:hlIx6A84y+xcGBny5g==,iv:8L9jx4eEMxGHrX1twwMCeHFiNK1oasY0fxadDSjY3O4=,tag:T8IMLgn+yQSWK9XD3it4Pg==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:NuTYLWlchpj8MBwxuQ==,iv:m5qiYllf6Nk7UbgGIy/Dg7oTti2cZsAGbJs7mZlbuu0=,tag:nVM4hCDvAxvQAnaaqvVxKg==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:1OCMU3NPIdjSjUCSjAI=,iv:3puIV+v0S7+Tmw4jV63+XgE0cpz1MxlXLzqrCkD+1P0=,tag:PGhgA00mJopKVJKG1aZTTw==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:z9A1V5rTWaj7oUo=,iv:iRJ1/PepBffosBbzHQ9Y0AyUlUJN13oLa4/AaT1gcoA=,tag:6Vu6qkTDiYmcPFmQ7xT7Fg==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:Z17IDw+i8jWz28s=,iv:Li80DSWRQiipcmZW8nc3mM4h8U6Ui5gIKxYOkX0w7YA=,tag:ioNlMbDVkGQRwCAh05D/Bg==,type:str] +S3_REGION=ENC[AES256_GCM,data:M9WxWxKzWXl1,iv:z3Dukgni2ougfY6qzU8HckOgXtjaOQW1KFmwzNRmQLI=,tag:R48ItB1o/vXKQeNPLxvjYg==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:XsvrotsxTSo+zJy4Tqu7vhw=,iv:Fga80ZBuga31NKpabTMM8FuTYDwKNf+15ar7NB25d+Y=,tag:j0YaoPrLYrOArpEA5lCEJg==,type:str] +#ENC[AES256_GCM,data:5eRA8MgaTeCl7XOWlmZLPwX0iQZizVaYEY8N6FrIRrIjb+ZfEIs+xV8Xeflm3pZI8rGzwt8f+kyDAXSaf0SLmB7O+g==,iv:xiAtGz3fKc5jJiafLdQQRMnT6TlqjzKpDC1zadg7YJM=,tag:ZtefnPNNqca9pdhOIJLb9w==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:utjYi6ZenF8Pqrl+1EFOSfEkvH/Rn5p0,iv:tip0wcIRpPKtvF7PLxcfo9V8YfhqSnxkq9gt9BcceI0=,tag:BtAoEWp5Ub51IUT3SPTBBQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:Uyf+,iv:qpD0oN0+YU8ltYLPbSPPhPm2UTNR+w6GHaDPyXZJVeY=,tag:Rs5Izcy/YVJgc7nMCVa49w==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:nIbqU9vhggw=,iv:gcWhozlrsG7ktXIhzLzkjqYqhvxK3uR4e6VosXsIKx4=,tag:YlX6rTap/3L2TW2x4IedCQ==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:AXLk+g==,iv:0UjiDFr/I+ZKARk4eXCgwRd/EX0wJU3zDZ/+ImMrxhw=,tag:VqlyAsKOU4yux08bk3sMpQ==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:DiMt,iv:kqT/odRRzbDpDW+cGpIEq93f44oTUudYdHq0HrqwL9c=,tag:cHty5QhLwnNVdTLwbc1a2A==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:TDbt,iv:eM1bjmARkHxTzSkEWIi2EnAW9sjXlk+WfaGZ/3L5XCU=,tag:FkMBGtNljR+fjDloxcqPaw==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:tw6bNlOsp5DDC5eAEN58,iv:1UrCSrC90jQh7HDekBOVFjsTSM5thGT33U2IhxIdMyw=,tag:hEWMKt9h0vVCJ4+lils4nA==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:j0x2lcHEy5LCtI02,iv:jbQcXNVaXKyoB5sQu0dZNsppqH/BifNV1FunIAt5ciA=,tag:1msc/du6ogHC5sakJF/M4A==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:jiNa,iv:se0FL5rSVG8xzUl3UGhJGcrNPol/XVDyV2qjymAN3jY=,tag:TtEGRtquVGq4r8obry/CpA==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:LBeax/oFSHQ14fFyJQkGHIVy,iv:eAs7etbQDDrvfThpvoz0xzAFxuJlQTupzw0sjQsE50U=,tag:kiqBrqLkXCVWg4dOzAeZ/Q==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:UY3s,iv:kihrTsVfv/PWJgOlAwv0Y0Ky0WkNQma91WHxJnuHv8o=,tag:6w+OfVh6lqpIXtIOE68YMQ==,type:str] +API_KEY=ENC[AES256_GCM,data:grwf,iv:p4M6sZESnKYGbfvkGMwhTWVTklzfJR0YDs4vF66DHrQ=,tag:eHR6Iq+nSrGJeGefB839qQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4cG44R1BBSU82d1lZeDVq\nbHFZMWFJdFkvaTRrNUN4ZzNISG9Pb0NXR1NNClIyWkJ5YWFoMDJlN29GNE1VQkt6\nQnE3QStybUd6ZWRPc0VmUUhzTWtEVncKLS0tIGpDdUNZZEEvZmszaExSMVJwVVNr\ncWQ3UHA3QWNrc3JXOGFGbUxCcFBoMnMK649+SdQqUxyhEkTAXtjpFSqoU09poXku\n9afnwtYAjgw0/NOUO+kSheNhCkDEAIj5Nk45ZHSLT5JeAuHb/hYj6A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnMU1SczZCdm4wcCtzRE5n\nd3hrN2svYmFwRUM2ZmkxMDdneldWWG9hWENVCkxnOHJnVDdqb2FJaWhpdUZKUE9J\naFpZUnk2dENOdlJzcG9tbklIU2pNNUEKLS0tIDNFMVkxamRkMUs4QjlOWmlGQXVz\naXVrRWVyNHdOMFdFK2x3Nm8vR2FHN28KkZLAxdnbux/ntflgW4hE+RKVVNXC/FW7\n7Tarr78s6/aLjyplvDajjr+elzgLnU3jS3pNJZoBEXl23yB8fu4K0w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzcnBlWS9LVTVJMWJEMW5J\nSm50NXNjL1FraVNVYXAxd3lxWFFaRFpycENnCjI4aFRmTmY3RDVGWExjTmRxaExR\nWG9NcVZRYXhkbzhOaDF5T2hOUUlWZUkKLS0tIExQU2x4dE44TmdHQmpKVTJGNER4\nMkNaN0NTYno5ZlBwRnJuMTBCVVJzQlUK21G0AUY2RYwjq8VawPF4SJytgasD29EM\nUEE0FPMeF9nZsY59gN7uH3ET+n/T2H2/7/COthajqHjUcuT0kxPQTg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmbmd5L0VTbFNjU1R3NGxD\nU0RQRHFTQXF0bVIwWExwNDAyL1kzOGttRlZFCmtLSkNBUThMRmJHL1oxUjJNeTUv\nM0JlUEFKcUdFZGlCOThZTVdwRi94bkEKLS0tIGNoeHBDcWx6QVgyOC9XU01YQ21E\ncnZ3VUNSVkV3ZnVCNSt5L014YVh5VmMKFyq1AnfHPuCs0iI2t4NuEF7HtMmnwq8l\ng04M7HlZ4UUPlKly/hB+BZuJou1W8Ts6Mf69xhkXNs5I3mmHMAqNUA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBieUNuZ1E1UzFtS0ljOFN4\nRi8wNFdaUWhBZ1V3R0hjdlhrMXdOT0NpSUM4CjVkaCtlS3pYMmNiUmkxVUIvTEQr\nMEg3c3BEbXA2MGpTbCt0M3grUnRMS00KLS0tIGk4NFJtVENvNWF3ZTNTSnUwWWd5\nYVdCb2dlYk1CRnl5MGhsbDFZTHZDaWMKkY4dobNLOqdKhzuTjF6XsU+9+Imk1QhS\noMoGxBbLgYBe2qbsosyY19wm1qrMztI7JFbTQdGv1Jl/E4tobP1wYA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0b0RnRkQ3UFgyZWp2MXNt\nckErMDBvVDF4U1psczc2WjVCa2s2TUIra3hBCnRrNkdTSFl6YjM4dEtRS3AwOXZY\nU1pPVWIrL2ZMOHdncDBCMnRZMklnK1kKLS0tIFY1SGJ5UitxV3lQNDlUMVJGVVhR\nQzFvd1Q1b1c5VXRqMlQ0TzcyZWtFWHcKsX54+OIbJ4oqNG7Kq7GHqmad7Y2OBi+p\n9uFXzjGD+OK/Hswo3v2b/44WzEEFf1TGokJ2bI9mYmGCGKEtcYox3g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0WkphT2tqMTlBWkhYZE5r\ndFV5dXlmZWxzUGpNd211bGw3bUM2OVVQaDBJCnFOWTZFc0NkQkpOalNhclpNWG9m\nMExRQjBMSTlPQUxJUmQ5aXNlMUhmN0kKLS0tIGsvbDcvUlFYbVZ1NGFhWnFHdVBm\neHRQZkdGcTlLdEFsUkJJRTJRd2hwbTgKDaq8TeG64RzCFggKxFEMkHTcp1NCGY/a\nkhsZGNxnrhznpeIBdOqe+NxBUpLBX16IBjTp6hMBWvq2K2hDIhnhGQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwcEoyQ292MFhTaTRhZjdi\nSTFRMWhnb0lGV1huek1vMmdEaXZpbWJsKzNZCmdQeE94c29yMVJjL1d5WElLYWFY\nVm5QRU0vdGdjOHMxSjdMNFFGT1hlTmcKLS0tIHVyQ0xabjVKZUFSMFpkQlJUcnJT\nOXEzYldqZnFUdVBGd1ZWZ1hhSEpmVFUK3cUFPiRFm68LCzTPrVy/L0aKkIbMccB7\noY6EC2T7J7Gsj6w9yAjhuAjurypabq43IjzPL+4QIfyDs+mAm9UEew==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGWEhJOXcxK1Q3WEsxa2dm\nS0hFNW1MWUpKNFRTYThSUWVmcU51Z3hycmtnCmVncm82bjM0N09wVHJzMVIwK0xk\nMTJ1UmpDSjJwaUsrZjNuays4UnRZRmsKLS0tIFFSZDh0UDBuR2JGM3JnWWhpWE41\neUVicFc2ZHltL2VSak5EUnFkNGtjYUEKFzfxDYUqEhpjp+oa3u31RNuHAV/Yv+Dt\nAnO66LBkOX6177b+t0oa6+GkN2ILOwMkigqChHTZNMy542EiHKqehA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyNGZtRFVyeExoMytMNnVO\nL0JlZ0lJMjZnL1duVVBHRHJkVnBLUUI5Um1FCkNNSTlzN3hoQXBJU3Z5dmxUUzB4\nRTNNU3o3c05Pb3JUWll2dXNmdmJGdUUKLS0tIEFIVy80bFZnaVp2Z2Zxb3J3dUhL\nd2FKRW9FY1orODUwR3Y2c3I5emhGRUEKSF7WMMC1HcRA+bTJFE2fLnS4T5flf4oF\nhCfklcB4a++gGJr/pZXitSPFMEGVFIHmoyFDFm6YiKHcrB+IfXuShQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNGduOFBnNHpFdWhhaHRr\nWGlzV3pHNjFCTDQ4VjBYWmhlYVBGV01EN3pnClBnQjN4NnlhcGRBMG81dTc3Zmgz\nQjU4R1d4R2ZkeitpK0F3cTlvZlNhQ2sKLS0tIGtMaW5SRUxYYjUyWVI1WGwxalVr\nWFRXMThyT3pTaW0vU2ZUTHFrY2xINzgKnjjydefarPqKwzm9mpYwZvyoiJe3FvLr\nB+WWoxWggvyPtn2z+NXA2Z9ZeS6hRJsJGJ+SQ+FzQsfsn8mlHMAapw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvLzhKSG9kTnUyNEo2L1lC\nd1NQWlZKVEZwbndOeXp5QTk1d0JPK01CL3lzCmExT0kveEplUDVRUmwzUy9VaTFu\nZE9xeS8zNElxeU5LaVpOOW5OMTdtUTAKLS0tIG83cGVqOWlSZWVQSWQrOEIzcDJp\neXJrY3lqSG5qaWZoeWpSK0NhUnp1bEUKPnOEcN6OAtqUZK0GluQchj48BmNtZhoV\nr3Rm3D8m/KErWe1XOFEtVvLpK6rJjxrMRVHz8IGb5CQFrh38zgrfBw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXVkk0YXdPV3BpMGpFMjFq\neXpucmoxb1hSWGp4UTJHaU5FOUJoSjA3NjBvClJYMnRjNzhzL1k2NEFjUklQWHBZ\nV2RuYW93S3RkSWxUd0YyMmNjRjNXLzgKLS0tIGtMRVhZL1hBQWJDV1QyODB6akNY\nZ3E2VFMvRXBwZHJTUXpuNVQ1TGJTU00KUjJG3vRc8qIAC0JYJz0xQ1uSkE0omtLC\nw781AaTuEV0nH8v1EOqE+UdRCUanT3aD5HqwZkAuYEncYvCu9fKZxA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtUDFZNHB1OS9ka2FSUXNw\nSkRTVDVxejh1ckZRbUg4ZHBCYkxQbUNnMGlBCjdwZ0c5TnhxWXZ2ZnplNGdQeW5P\nai8yVE8rbG5lZ2NkbWdMWTkyRDRrUDQKLS0tIFZWRUtuSmFsTzY3T09tZjhVKy9x\nVHBQTmRHMXJJMmZuRGJQb3ZXSzhTSWcKURBbtCOqc/Ug2ZGJUd/GDrSAikLXFocS\nRCbq7sVVinH9gmg/VKeVQJ99HymPIGKrbaR6aPnxt4fAZ3dp4w8joQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Qm5nWnlzQnpsOS81eXV5\naG12RUFOZFI0QW8vaW5TNHdTOTdFSnZMT0gwCkcxRm1aUHdzSmJjSVFtNGp4VU11\nV2VSYzVvcUFhV1c0MDRLY3FmNEhSb0UKLS0tIDZIWXFrSmdNdWZjaXVqSjdtaDlz\nclJLVVdrQ0hKTTJPdHh1ZGlyNmxtbjQK+KFtndjk92ncG0RJNdvN1Ri3CdBqpyDT\ncJ4N22jGsQxWGBnX04hjWV/9A8BA0NZ+LuN+ukAvgP3j6dea6VWh+Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T16:26:36Z -sops_mac=ENC[AES256_GCM,data:ZRPKklV+xCZ8xrSmVu964r7ik0jvHOM2hLUhXC2iLzymswKm9S/iR6qJE7mvOjfK5fEYc7eTve3zDh1iaGJ9u/JzYjSMHWbSDOomCV6UrXs+g/9b8bDqZUuuobo5CfZ1/wkC+nxzVCjcy2m3CW+l24T6HYC4Uf1I6xwSDwH9mHE=,iv:PahoyqWRpcbBs50akhafM38ThCle5y5bv+U6+BXOX+g=,tag:ulxuFXGu6z8NIX8I6yISTg==,type:str] +sops_lastmodified=2026-04-28T13:56:30Z +sops_mac=ENC[AES256_GCM,data:5dvwR2aknk3QuWoB8bMIP2QvZ3frqWVXh5aWWrI/C0VBvRMf9/9MDkxg+hwalEzw8/JkVR7IwOVsjiGB+DjbQAhmeHXQgL8fFjdh8w6y1UlrYYjF6Hw1qI5PHP7WAVVBLybSgq/XjtN2yy6jfphPz8pDCcT5vbsks8/7QQQbRtI=,iv:RTeMQ4a8Lz+YtFRNiCWa3YUGzP4S/m8UFevwN3tUJsQ=,tag:isfUa23pl5IFE+F0tor8qA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index 77b48b5bcc..95d126d39b 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,55 +1,55 @@ -#ENC[AES256_GCM,data:Hwdf2pk2sq4tbqPYUV3i2yHiO0KFzC8nwC5BnQq/Pg5u,iv:b6Vwum9SJjVRK3m8b7cQaDH785aVDeGzJ6Bbr7z9e9M=,tag:rTE4ZP/B975HPbTCvVgiCg==,type:comment] -#ENC[AES256_GCM,data:q9FnIVngLJYukKetBdNStfjGMAnc6CqI2xTSaOZ7lBbrnDojLx3abT80djTGTfgz2nRPbXq2QazUtlg=,iv:K3XLRUqIwg9wqioALaRB8294o8XZDA5grLtFrHTFyls=,tag:RMKls2LtBk+6iLDKPMA6+g==,type:comment] -#ENC[AES256_GCM,data:p71pg4MqDjOnHIKPAq5O7F1RfRwFDa7sUD/t+c3gPr8hMouULsLCwhj5lMs4Prmrh0QS6ljKIS7GX7nLhPf7+Zy7Jg==,iv:IjgYNGrLqeKc9BaVsr9fCnGiEae22NhOyOT0Y2+XsYQ=,tag:sdF2m8yDSDCQctinvAcKSA==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:RMsPH7eP5uXymXX3WVLsLEsvrg==,iv:b6UR7JjGxtNRJAi8UXih4IxJNjvcOXM9pfl7yvZH2fQ=,tag:ZwNELpiVaqTJUD15YErHvQ==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:CMWPQFkyhOrTlnqAhWOe9NQHsTM7hdYBlsLK,iv:qbLCq5XQzadDY74UE9DcIHhc7rXftKZnwRT1mfNEDSk=,tag:v109EY48lrghe6Seb4b8DQ==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:L4+26lYsSJw=,iv:fQZNiuuq0fvzc9LgYhInj+E1b+f1PgekT7QgCwmzqHk=,tag:ud7izPKiOXc0orVn+7Mu2w==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:0NMYvJ3Z8e4=,iv:MqAjiScssYF/nnUlpizaZu7kbMBY4SzhT57080aQ3T4=,tag:PlwwqEIpPCPE3B7/4/sQcA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data://61deQkDA==,iv:+aSJ9CGgRY8xyFFkGo/Rp81uXyX5UZ9y3WpXFBLJp+g=,tag:s1xKK/CgFt0opddyX/CKAw==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:ODtZq5cB2buDhJV/yHxlU8K6Ces3jx7UQpY508mKRUxz7plL3LJe6lfCR1HWRA==,iv:K0MBexXyFqIAJqOUz+3tAVDPNwnO3dn2AZbNCNo/uA4=,tag:bsUOMrw8mZFR4R8r/Kagcg==,type:str] -PGHOST=ENC[AES256_GCM,data:yRg=,iv:AnNBo2xbNcR61pI18NX+WqqpKSFwwNd3HxYMHJIiJOo=,tag:xqK6wxKzzkL4GQplmcDHfg==,type:str] -PGPORT=ENC[AES256_GCM,data:L2CICw==,iv:fs3nDbkMXQHKaMALQOO8MFHW6GXJonqamoUDf31iL8Y=,tag:3mRqtDooclrDNlZYZwrEKA==,type:str] -PGUSER=ENC[AES256_GCM,data:7rTljtCtmRo=,iv:Iq6FqPpIYR6NBhRtGc2XH+h4jgXV/TNpnQ8bShYoyLg=,tag:x01ognj/9aDxj04+axwXcw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:QS1fIAZivAY=,iv:/WKANKwdhcD4LJ9y+4vsuQNBi283UE8cQ8tL+Dj0l2Q=,tag:+O07YLptwJt8EjoyKMrK4g==,type:str] -PGDATABASE=ENC[AES256_GCM,data:TVb+NBbzKA==,iv:YeRUJ6TkTRbjgxXd1Y48uxUl7LDOVSeqXsYucr6AGqk=,tag:6Z39g20X52KhG1PkdG/Pkg==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:kMYwjF0=,iv:xxFd0BMR13JHXWjDetCeAR4XC88UcPQMclYnqyqwwxI=,tag:9BI2KjteFL6w0PaiWF7/bw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:yye/hGW1PC4oHeD0dw==,iv:RZgC939MhX+9YfIvOg+Zm75Mp0VzRBuHsR8yl5gOChs=,tag:Cqn7SZzeWx1+hke0b/J/lw==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:ugHbqZpWX23P4OyKtw==,iv:b5/v7pJ6fE6gS3sZ2L+X0GggDGk0T/Tc5YJH3p79O3Q=,tag:7eQS3cypF+eoFqib1ApNAA==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:G01xyTWJzNta8cnIAXs=,iv:jf67ZloFjzUnY8kMQUaAhlxvi2dm8DsTWVxj1G8u7RE=,tag:BFXQIhpYo/vowkMJ4qB+wg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:e2JFj9HDVXw2HN4=,iv:PWOE9upZnqu3r4VdVQrPrxE2IVMVsgQtc8iPFAL71Bc=,tag:GOvOTaFcOsSpDoolPh+Ubw==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:lfSxyQlY3sUrMus=,iv:AhRLFWzqX1yfViBlWI7r8EfyWHOVR21dy0HVHTEIjsc=,tag:Uo28l68kM68TLKKnJaXi7A==,type:str] -S3_REGION=ENC[AES256_GCM,data:S1zmnhZj0lmz,iv:sPnQG3Yr6vXAM8rJeL2Q6vT70v9HelqDY9rkMnBh458=,tag:25x1tnx9bfC62B9tVtnR0g==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:Aq8Et0BulM+tME1x9b+n/Mk=,iv:OIIar2FWgnVvSKbPbEkcsaCA4sOGHHYI2cMmlHc2Jfc=,tag:zv89Xf1wdF66Vg+xofQJ1Q==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:3ZG4Wt+dtGOB4InSV0kREsBeK0g2OczV4ltddbbtlK3drw==,iv:jDiYair3OkwDzZNlBain/QMAqce1PSsThGAYAdkwNQc=,tag:PvF1aRCM5KRV0TAx4Nvz0Q==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:G3ilnrT0vELU/DXOZq4WzyZphCIcuUsG,iv:g4hwgyXsvENfW2U1AyumKSCPxKOGIG6mWvbI+qEHLo0=,tag:QZ1lP8HZZuVvzQDPp7/hhQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:smsi,iv:+PFZVP19Ca1xEc+e/ABcgeQUKFyAgxFCFHCXirtjTGo=,tag:e/IrzgKt/7QE7NmG97WRCw==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:wNr6ozOTgQI=,iv:SDvMNNfDxl2IYnFWyCvfNchQyGQiF5xJ352stVEZvv8=,tag:O1CPeAEIchbWiH88Madagg==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:FpGbhw==,iv:SsPTCQDv4SIaVl8xzIi+ug+OtezSq0byqKy9rF+mzTI=,tag:TPLThhjcGib0HimUDN6Tnw==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:OZRI,iv:eHbtCIyHmxuM/+5DXL053xDDQsSyYUkncVrKJg0OUfo=,tag:32VcS+yel2UJHrvoxTd5eA==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:+ktb,iv:zfW+LFySE3AYuFINR1Ywn10LccdcnWmL3v9q4gPXNTk=,tag:raxj3dJTAMqlZtDZ4efQlA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:NFZSwIc70HMwG9jBeTJh,iv:Xv7qqfTZq2wLBdzDXYgNmV73OdjyRYwQc7u+Iav8xMs=,tag:ClijrlE379KDG7906ceESQ==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:Xhk2H/F9oA2ou3im,iv:yqSgPHhu4LzMXdvsyuflbhtyvITl0I7P0i2M4auoXlo=,tag:U1Chywrrd95uCnZNuMAz1A==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:FBNS,iv:3yNSZaYV5F07vj+gsx1YRpE/Qb/KkcnYvN3dN3uzcmc=,tag:j3EzY68I9tDuvDLgYYqCbw==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:P8zDg90Iokmm/jR0Fj9usV+N,iv:O0AMCRYnYdMlVGdZJkcinyhtQj7jek0MlnW723wCpd0=,tag:UkK8K1YBg4AW0RyiF1K+Bg==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:Rq/a,iv:zA3WRkHp/7ZG3Xombbu54DELuVebn4oRQiQ5nVYCn8g=,tag:+AGccr5rgQQX4mrSPZtzGw==,type:str] -API_KEY=ENC[AES256_GCM,data:hwBo,iv:XlRpPUXI+XOzwrqD0E0ns7jelDP2m+cfNq/u0l7j9WA=,tag:y9RcF80VlFbooErFLYhsNQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4WTc0elZMcitaYlNReXM3\nb0tLcG5FOFVaY0o1a2o3Zk9qdkN1eE5zckFZCk04bXp5akNiMFlQVEZoUk9zeHM3\neDNHZ3ZmWFQ2QWxoUG1CaDhoUXJtSEEKLS0tIE9waEsrbGkxVmZTRWVaV2lzRUJR\nalZjcWpzZlRWYnZXQXhsVzlsTHZDa2sK2TMwa/XVKKWtipWeTCC4LhO6sJdt3BVk\n8Wc4ffZ2rs2xOfK7PMM/B3IFFW4e2EWCTa/vj8Lx6Aey5sKbwk0vkw==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:5P79lcBuF3CbVM0VJzpzuhETwVeNx5dN0zu8xfN8PnuF,iv:ig9iPXQxQ3QwptTMPf26DjZTQH37CxTkeifaxCpt1dM=,tag:7VmDnSH9oTHNe51I7G7WxA==,type:comment] +#ENC[AES256_GCM,data:QD2RhZeun1gsRsqqmqrmMdZRsJdd+mnTwAupronNF9rNR2Cjk6yj5Hu1pG7Q00cR+52lQTnRWGIRSMM=,iv:X+Ri+r/jELTrCMWGfQ9tWkTy9Df5AvlGWxba/sAS+lE=,tag:ClQJw0d8hDnB2yE4jyft/w==,type:comment] +#ENC[AES256_GCM,data:joznONlBjmY31a0p3mLOER5mDkkFZ2bc55NPuCu7zY3oSTjcpVQDvFQzJFiENn1sVTuBN7QG6K9QCFJtMRhNU4dtEw==,iv:snLb/mPiJyGrNiSFek7xPLCtv5B0bybt5rBllDiQBbA=,tag:ZYPlTtr3kR8wYxI4rgsecg==,type:comment] +PUBPUB_HOSTNAME=ENC[AES256_GCM,data:mXFUuRsutskcVWVuNj44+xX1cw==,iv:rIO3WzBnGX02w9j1qS5o1NbTYqNbBoYLesKvYudqBGw=,tag:Aoii3Z+iaATDXlvQD8NW3Q==,type:str] +PUBPUB_URL=ENC[AES256_GCM,data:vMYYz0t4c4R6A7GTopTilppm8YaNQhOL6uGO,iv:Cl34GCjHbDHsH+ITriUPVVq9H+j6GVzQyPyJqzm5nuI=,tag:gwx4188rtEIb+a647FCYWA==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:Nu+OTUszI0k=,iv:QIELCyR7Q+rtfykysvqaWCaolAvVh7NYks9tTsQ+XPA=,tag:wlQ7tbSEnt3+FtywPBfn8A==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:t2cS2TwihLc=,iv:y135FrsmxCGdGFTbs+WjjjJCYJGb+6LQcqyGdoyzYFg=,tag:8fvsmDh6aXUOntA1CzL32A==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:lNlWmCn+7Q==,iv:7+hVQvtCT8Ez2S73+BpQAmb3IBOiKQfHe1HqFTU70Zc=,tag:Dh1zzuJuHBSulUPTeiD9YA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:AlBKrxoKMVbC/YwxqUjVrVuOXqDjc1nN+xB4B806c09AAV4ZHLbJm3QPMKIoYg==,iv:Vz2Sm42ypgNEzTGZ6XaMLPLQJ0OqoXenKE1UG5HUqBA=,tag:uhHuzrAT8XYEdqGft/gswg==,type:str] +PGHOST=ENC[AES256_GCM,data:7wo=,iv:zo34uQogCXvAcqxBmgh8JNh6MRcyGM0icqhVQVPoN14=,tag:LVgcp33KGpkxw8CEerVm1A==,type:str] +PGPORT=ENC[AES256_GCM,data:xanQUg==,iv:J+KJnlKy+VdSl1F4UEE4p2G1srxOnC/kVJiWm2BGRgw=,tag:1dXFVKxjinD1Re/v0LQw5w==,type:str] +PGUSER=ENC[AES256_GCM,data:gnSASEt4kyg=,iv:A68hvvnNR0RytSM0Yx12mMcVI7qKXZAwyWUD0N7XQz0=,tag:HO0kMincQVNN+PzKQAmZLg==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:/wtr2D2mpSM=,iv:JPGxeiCmpHdxb2nqbUWHBWbGgIbqpNipFutEDglpxMY=,tag:OJdhNS3KQwDfLymBWmd05w==,type:str] +PGDATABASE=ENC[AES256_GCM,data:jCGhXFQdFA==,iv:To6YBc/+axnxCs7r7Q+n7/4bSeoEzO/qsOXNmpIRO6w=,tag:NcpiA5oLeht23VSEQFsm1w==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:3Yw3ltY=,iv:xvj03cpdRGwW0kU/gt+fdr1kwiApGvp7Z6rZZrgAVTU=,tag:vsJBuCXR69stagXgqODqtQ==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:tom4CeusQvuOfHiZ4A==,iv:3pCqUJpzuNbbzFyhstuvIYaZk0u2rWcXJ9x4kXhA7Mo=,tag:NxejQ8Pxknt83OCOdWVJrg==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:110DKMD5TuQ1RWJo6Q==,iv:Xzwpv4OZsn9mSAwmwE8xyWC2ibPHXLhjtL8r0TsYq8k=,tag:dUaLCBMoJCGU+Bm+aoqfrg==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:1gARf5Lv9qRzCyX1poU=,iv:p5w1NxxXPYeyuo6ptLrbAUSH3au3+wwr1FSYilCrBkM=,tag:RVlMFE9oDMXcdkJi3lMJBA==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:HE1geSAwYd5OVPY=,iv:csrV7LgwLB8Wv7Ozjyu97x7ca8uvLUQqrjPEcsRt4no=,tag:fzmgekzd33ViG9cFqwFh1A==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:BAZF0bVdwD5z1HU=,iv:Do6kbA2zd0t3rbjIfoRDIAle1cLrfj6TNFeUU0n/Os0=,tag:6MbjoeUatHZeJSFyg/0tYw==,type:str] +S3_REGION=ENC[AES256_GCM,data:L5HUYmq6ArRd,iv:IuBr2fznt2wxlSQCgIE5SyVWT+wS0Wz1feMFYGI+j8Q=,tag:J//WLPnmCzAv7jc8n6UjHA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:DtkkBqSU/3Ozw+CMr1DAto0=,iv:Vcm+IQalpLCBhxPSNyEE+QqGWmbhXQlA3PVeit5oQEo=,tag:zZ/cKLs9YmE86SemdDo8Rw==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:Kck6FUbzo5YKCMt1lZ42mI4blrICfNNVTb9nQzBy+DufXQ==,iv:LfeGPlvYMrJc12oufPnwXYvgvkaers0/lAa/kuEOOiA=,tag:1iLNUnd1Id/airr3KVi/+w==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:G6eCj7cqEx/WYHbCgRr7frA7IM80F4Kz,iv:vNxyWISolOauWtlobRhXitYhOaYR32smjnZSiRhLqNc=,tag:Xg5fTypCQAZwWxU6YgFkBw==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:vKz2,iv:LRqTYv7tyKvLzuyiYhG9cxiNV32BHVESspriMtlB0tA=,tag:rT0B114cCm/nGB4vK5kNQw==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:MKW/d5b3SRY=,iv:G+17pulXrAdcZGWE0jzTOJevSat+eXegIm5Zc4faIao=,tag:xVV+CDwE4/xun2V3GXieNQ==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:HVEbMg==,iv:JWMNleYUHj3D9wYXpi6uzQGW03ShomsJ2Ulnv/cbyTw=,tag:3EL55WJwmDOJ+SFGnBnMUw==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:DkET,iv:gTCfGgYurL5aW2bAgAtYzItDNyjsSKYoPgU9cm1VSWo=,tag:qmhLlG0A0m/Czw689/13CQ==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:Tvcp,iv:V4zULueFM+1TRkMRjRAJQHcuFsKZoEJ+b2c8KqJmVuw=,tag:vxG0gZVMSsnB2kFTm3olzA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:5raeLmtJxERsAee31bj7,iv:SoKi57IRQZOGNQLLlq2Bae1ecf4pcppS0qc+khkhxlI=,tag:WrRp0VpFML6SbODwGH4HfA==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:f/bEKlmRkT5cMiPo,iv:aGnOvsOLD42AVTzcg9loPKMRVIJYVek687G6CNqAEeE=,tag:nA1B1vx1cZlwmA9masFugw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:vGAu,iv:+6rBXR8J3/i1OHbnTxZSqYbESoPdFeiMzokDJ4+KEoc=,tag:3N32TAK35qH57Ekvl7aDBA==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rRr3RLm6hTBTiG5uyDLX3f+O,iv:symY3QYCc2niSaNu4gmR29iwwznimWvL2uZevVLnNkY=,tag:+E69e739FOdIXy4No0cV9g==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:wSs0,iv:m3jqw+UEx9/CCMIDxVc2VRyWph2Hpo+SymXMxGtXvbA=,tag:kcDZBOy8+JZ9n4QUBUXvsw==,type:str] +API_KEY=ENC[AES256_GCM,data:Etn2,iv:ZZDOlUXTewk/KUAVDrDUB3052hid8iw3ee96TNVrJIk=,tag:Du8P+OR8Qd723WJSButoqQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjTDZ0dnU3N2k5QWNINTc3\nMkpIcWFaWms1ZERpNms2RlRhNlhmb3hHU3prCmJYeHFvQm8vUW1ZY28wdlQyMzV0\nc0g5c1Y4d0VSai83UFAzTUwwV0VUd2sKLS0tIC9HaXhqTklCcFBBNEVDQkdwNGxr\nZXd6eG0wVUFscU9YRE4vUmxyV0hPcE0Kxj9IsmkGdjEO7ZwqtBLoavnu6v+ks/TV\n68aSL90rbyFZRUlwx8ExRdQmSA+xCG+QkL2FR1ytk5Yns5RIpJFGSQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuaDhRV3F5R0J1YXpHbkda\ndDJ0Vis5U0d5VjdZNjA2SEU0a3V3WjRTakdJCjFkWXZyKy9jdDRTcGR4VWlkSFNT\nNGkwU0hTbmJXT3NaOXpZeTEyVmszVDQKLS0tIGNINFh0Ym9UNlB1cXJVdUw5NHlB\nUlJEaHduMEg4SUhmbmZuTFRKSFRJOUkKM0RaM8pp7J6PtBLwC/DAxB60a8D8KBH9\nn+pWaujxhzX5U12ydDGVsBEuwZLiW83m03S+q4WciJiuJi0A4hZROA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZTWFSckxlaXpRU1pJK1c0\ndlRUcWJJeE85U3o0R1l3ZFFERGpEV1RvNlg4CnNybnFNSWRpeU0vQWo0a2gwTEcr\naUVmLzRNTlhHb1ZkZHRpdWlDem1zY2sKLS0tIGIxdCtxUU9hTHp3b05IUWJSUllh\nQ3F5dTBGNnFLL0JDTjJDeTA3M3dBZFEKyxQw/ogv9WLAymxgvdS7cP09KevlNNqh\n5UJkGM3zFNvRZS9vFJMgiCa2KCi1RvGfULQMKIr7b4/vthDUAsN78w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkVnpDT0dmWGViQmxPSFF3\nZEFQUk1WZDhLblk2RHJNR0QvZ0NwQkZhTEhBCk1FQk1HVkduTmIyK1ExT2hMUnVE\nakk1Vk4wM0JmKy9FU3hubXBUNFNIYVEKLS0tIEo0VnRscmNyY2xWd05uYjM2TGdG\nVWFpTEszMm5xTUtrcldxenFxcHpTQ3cKMZdPzZqRe20rVetiUeSUqqJnrbQDBqVz\nZfE816ygBQKXBRgV2SCa15DUoL9YP25lrhgz4UDPqpPd0HAM8DmYRA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0NnhCL2Nhdnh4Q3JxMjZZ\nMjZGQ2g1V3Zobi9ncDZmY2FXSERCL29RZVhFCitKNms2T2VvZENJcElLOTYwUmxl\nWTN3ajB1YWJTcTk0MmN6dk1DUjNrTm8KLS0tIHQ3M0s3dWJTVjdwK0hUNjhNTnVU\nck9jQVBSMkw1K2lpSnpHTWFQK2ZFQlkKw7aKuk4H5thAIVN0T/qEXyxk6Gd/uebh\nfsb2Js3vmjWedDVAvqXKyr5e3VSC/DGSe5Ibr8DCiPLOaRMmWZFEEA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6ZStwOTVJZ1dsN21udlhy\nTTBFaEFKV2lHZktBSVlncGEyZmxkMmRCVVNzCnRiS25JNWZnbExtdW0zMjNzM2dC\nekVPNkVUUGNVZ0xxT09CVkFSRmhIUzQKLS0tIGNmYmZhdHM1eDZoMXJhcWlwY0dj\nV2ZnS04rc1dzZmV6VE5xSmZEQzBJZU0KuJC6pdz2vN6Cq2KHwyGcUgQ0BB0zldtF\nVw/MHm1KxaikLBMW243o0IIrUC+rSJD+61gHWj8wNduKJbSM6ZS0JA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsU0tlS2taZVJzQVl3YXQ0\nSm9wNEdPM0Y1VG9sVzcwdzZyTnk3OGVWeWtNClQwaDBBOWUwY1RuRkUrbzRKZlMr\nNGxPN1VwTEcxK2xsZWswdU5LUWpTUW8KLS0tIHJ1WXR5bXhCeEs1R1VNVlhpbmpZ\nMXI1ekRjLzdhcHViUVE4YzV4Zm1oZkkKZ15aWWJfCaqDB+Otbib89jHpiKSCV2yW\nbkBWWbDmPduz0b77xPKkbl3VqYk3Q2+vgP1JwA3rxnQrwfpck6eyhQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3eEVsNmZrdVBGbFJpTGZj\nbUtTUnlYNWt3NUJ2WXI4MUovODV0QmJ2dUh3CkZiemhmczdXSkFoSUU5VnhOQ2FB\naEhyckV3TTVocW5kdmpDRnpuQ01qdm8KLS0tIHF3Y3lVL245eEFXc0JsZ1p6MEx5\nTlV6ajFDb2tSK3VFUWZ4WVBtNyt0WDQKrkMaew6U545aBtYxVYXhpJHIaazR6PuI\n4tYCw0QSnKGSk8bk0mk3a6wtNqKymUS7E7Bcwt7SDmP6/dGy5Ryllg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUUh2L3JRV3krZE95aTNz\nVkh3YmRXNHJOR2NBekpkT09GUzJNbFJjYkdzCkRpU1NIQk9zdzVlUXlXTHBnZTVu\nVlVyWC90dEp4YVdiN2NndXAvaW1YK0kKLS0tIFRzeW9uaTRRQnV6QWJ0Z3ZWZXdL\nNlBlaVV4Y1RicHIyNDlxdE1mR0hjUGMKxxGehuJjbpTpGQntxcRBCpxHwhBeGPwr\n5thqVteqHMZ6eIfRf2Eyl+/QbsqNwrEZOlt98CVrl/JXCGdEFH/QyQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVNDNoSlZnS1lRZlJTS1Zz\nOWZpNUhkR0VoM3B1aVpDdVBrUWlrenJ4dEFJCkNqSzQzZmtLVytYYkxuTXlLY1l6\nb1JUbHJRWWJ0Q004Yk91b1VYVTdXVVEKLS0tIDlPSUpzR2ZETE53cXNMWWFZRXVO\nUWdSbXI4YStObW53czZCU2NRZXZ5N1kKi0hlYD0UpDV6TckFElYr9W/eu35h3F0G\nrTNhD0pnbCUhw2xUFJENxq6Q/XidHb6zsd0tCtyqoFRHKFKyb+QQQQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3UGVxcXRuRy90Qm12TCtN\nb3UwejR6MVR6WXh4M21rQ3ZYaTNaZEJWQUNnCm9heGpQdExEWVA0UGkyMllkK1Rp\neVNTMmRFUUZTUk1wMVBRQVh6Q29RZlEKLS0tIE5iWEhXN3l0UGphVGN5Y2txYWhO\nRzdwbTF1dGUzTkw5NGw0N0EzbkthdjAKWZ5IaZPiG8vSMvfDhljX1rBTJvGjwnO2\nYViSzM4cam4QiVbE0pYBEN7Gkbdw7gidKBnhCu4RWjGr0c6zq99V4Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5WG8rZEZoT1JvdXI4Zk85\nUEtUbDdWTG1zVCtUWWNyZmV2dGJ4MWY1RW5ZCllWQ0M2R1hOQVZ5SFJvczczVVp4\ndCtxWld1K2lTbEc3VUlkemNhVnpCdjAKLS0tIHkzd2dPY0V1NEt6TnowbTU3OGpa\nYlRIUXZHR3dKNXdCb3hIUDhwUFAwUlkKw10DtY6YTHii/4WH+19z33AOKoj9iZgw\nc+ybfLAh+Cn74Qkm8SIC0ww/TmBoTy79D8wLZgnKKznv3pc9bDaU4Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2czk2UjNRdWRwdkdXTWor\nVUxaMnphZDY2L1hoN3YzaDBzUHpxQ0FLMmtzCm1jYnd1dm90NklCT2ZqeDFqYlFY\nSTF5WDYxYkhZYzFXenFOWFRJSWh1WlEKLS0tIDkxOEpYajlhRWsrRzc1Y3FtL1hm\nWWNEdnFMTHMyL3VvTlh3M3dmR0I5dHMKAydQTlqTTSCWJAxOrw23p0D8j79cFUc6\nDXYYIeGfmo2KsE1iOkBmuTifaAgVsoZvOXwIy/DNWXC6UTIjVFS4hQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0QUVhb3pSVzlYWFoxTjY4\nQlJzdVJZMnN4bThsekxHclRFcTVzaWQvVjJJCjJCQWZxRWNKVUtPQllnUHhIMkVs\nOGZaOTFyVlBudU5UNDR2UTRXV2pkNjQKLS0tIG9CUzNUMCtXUG5YbEhkMVhodUNs\nc213MDh6djVDMTBYeDVmd0hJb0ljMEUKeq+rrHpjE8gYLJeOg5AOILrZQTzn2r2z\n8rMcRi1QFCIeubVvqfo3QmfzwjNTiXtUjePbP67E+mh5YjoZGyXKwA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJYlcyYUF2ZE85VzdCQWlL\nSnk3UGpCb1VJVWdDM2JRQmVRaitBUytIeGtJCkg3T2lxdW1tVlRreTZmTy9Kd25Y\nUUJubW84L21Yd1Jkc3RLU2RobkpjN1UKLS0tIFY4bDQwMVZrdzR6Nzh6S2RYdTdJ\nWXBWSmVkVDBJeVYwY2lMU3NHekxpSjAKArfWQUITnCms0GsT36AJWVeLBbJtpHV6\nE1Z4Ab5aLGyZDCHmH3RaZIgmFK3U4fJOKPOvALGkvV1y+yh+7I/Xhg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T16:26:38Z -sops_mac=ENC[AES256_GCM,data:AwuWnpP2dVBGq/M0E5z68nWkxob+2JgaEdx5dwzCmxUnIWpHdAlrVasjiIPrrwHGAu6g+FZC8BwWets1hP0jzG+JRh41nlmqvbGR5oIU+8U6Aq5o6XRDJmXZsFXKWWsuOvXzthVhJcnJWGV0x51Zd4MqmNMyirLKC3Dp5anlY4g=,iv:sbB1oMh6eUYHQWH9iievR3WTBCu3BkUXslMOqjdR8iM=,tag:J3SkP37QmUyWWddUnwIcXg==,type:str] +sops_lastmodified=2026-04-28T13:56:24Z +sops_mac=ENC[AES256_GCM,data:Tx0TgWKsUkNpv/Lzf4qZ5oNF8UNhKXPRVz/+Y5yoo1OHLAsnoZMimf/Cojty4ZpTbE1TIZ+58EvbHmp3hxouHHZ3OY82Q5GTjvpRHOs/mcD0YDZ4gmx8XmRMS2vV/WJLn4XJu8lo5CkAc0eb942zcTVC7JmHHC4XZx8HokSok0o=,iv:jXoPlYKq1E+XHddS3xffufiv4K1AtV03EjNrULGsJq4=,tag:d2RRaW1Wrl81CrDMVmIlaA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From 615bde90c33a4c9000f7730a96003f277897219c Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 16:07:35 +0200 Subject: [PATCH 127/153] fix: set env for sentry, allow disabling sentry --- core/instrumentation.node.mts | 4 ++-- core/lib/env/env.ts | 39 ++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 9 deletions(-) diff --git a/core/instrumentation.node.mts b/core/instrumentation.node.mts index 0c42a1bf66..980075e5ec 100644 --- a/core/instrumentation.node.mts +++ b/core/instrumentation.node.mts @@ -9,11 +9,11 @@ import { env } from "./lib/env/env" // function hook() { logger.info("Running instrumentation hook for nodejs...") -if (env.NODE_ENV === "production") { +if (env.NODE_ENV === "production" && !env.DISABLE_TELEMETRY) { logger.info("Instrumenting Sentry...") Sentry.init({ dsn: "https://5012643b47ea6b2c8917f14442066f23@o31718.ingest.sentry.io/4505959187480576", - + environment: env.ENV_NAME, // Adjust this value in production, or use tracesSampler for greater control tracesSampleRate: 1, diff --git a/core/lib/env/env.ts b/core/lib/env/env.ts index ec3c139bed..6efd29831e 100644 --- a/core/lib/env/env.ts +++ b/core/lib/env/env.ts @@ -15,13 +15,39 @@ export const env = createEnv({ }, server: { SELF_HOSTED: z.string().optional(), + DISABLE_TELEMETRY: z.coerce + .boolean() + .optional() + .describe( + "Whether or not to disable telemetry. By default Pubstar sends anonymous error and performance data to Honeycomb and Sentry." + ), API_KEY: z.string(), - S3_BUCKET_NAME: z.string(), - S3_REGION: z.string(), - S3_ACCESS_KEY: z.string(), - S3_SECRET_KEY: z.string(), - S3_ENDPOINT: z.string().url().optional(), - S3_PUBLIC_ENDPOINT: z.string().url().optional(), + S3_BUCKET_NAME: z.string().describe("The name of the S3 bucket to use for storing assets."), + S3_REGION: z + .string() + .describe( + "The region of the S3 bucket to use for storing assets. If not known, use 'us-east-1'." + ), + S3_ACCESS_KEY: z + .string() + .describe("The access key for the S3 bucket to use for storing assets."), + S3_SECRET_KEY: z + .string() + .describe("The secret key for the S3 bucket to use for storing assets."), + S3_ENDPOINT: z + .string() + .url() + .optional() + .describe( + "The API endpoint for the S3 bucket to use for storing assets. This can differ from the public endpoint if you are using a private S3 bucket." + ), + S3_PUBLIC_ENDPOINT: z + .string() + .url() + .optional() + .describe( + "The public endpoint for the S3 bucket to use for storing assets. This is the endpoint that will be used to access the assets from the web, and is what your users will see when they view the assets." + ), /** * Whether or not to verbosely log `memoize` cache hits and misses */ @@ -39,7 +65,6 @@ export const env = createEnv({ SMTP_PORT: selfHostedOptional(z.string()), SMTP_FROM: selfHostedOptional(z.string().email()), SMTP_FROM_NAME: selfHostedOptional(z.string()), - INSECURE_SENDMAIL: z.string().optional(), SMTP_SECURITY: z.enum(["ssl", "tls", "none"]).optional(), OTEL_SERVICE_NAME: z.string().optional(), HONEYCOMB_API_KEY: z.string().optional(), From 5d0f6907e4cf2bf877a2c19dcf45fdaa869d8bfa Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 16:11:19 +0200 Subject: [PATCH 128/153] fix: superadmin redirect test --- core/playwright/verifyEmail.spec.ts | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/core/playwright/verifyEmail.spec.ts b/core/playwright/verifyEmail.spec.ts index cae56fd638..857ac77d5a 100644 --- a/core/playwright/verifyEmail.spec.ts +++ b/core/playwright/verifyEmail.spec.ts @@ -92,7 +92,7 @@ test.describe("unverified user", () => { await loginPage.login(community.users.unverifiedJim.email, password) await page.waitForURL(`/verify`) - const inaccessiblePages = [`/c/${community.community.slug}/stages`, "/communities"] + const inaccessiblePages = [`/c/${community.community.slug}/stages`, "/superadmin"] for (const p of inaccessiblePages) { await page.goto(p) await page.waitForURL(`/verify?redirectTo=${encodeURIComponent(p)}`) @@ -150,7 +150,7 @@ test.describe("unverified user", () => { test("redirected to /verify page with redirect after signin", async ({ page }) => { const loginPage = new LoginPage(page) - const redirect = "?redirectTo=/communities" + const redirect = "?redirectTo=/superadmin" // Manually go to a page with a redirect url await page.goto(`/login${redirect}`) await loginPage.login(community.users.unverifiedJoe.email, password) @@ -161,7 +161,7 @@ test.describe("unverified user", () => { test("redirect url carries through after signing in and requesting a new link", async ({ page, }) => { - const redirect = "?redirectTo=/communities" + const redirect = "?redirectTo=/superadmin" await test.step("login with redirect", async () => { const loginPage = new LoginPage(page) await page.goto(`/login${redirect}`) @@ -170,7 +170,7 @@ test.describe("unverified user", () => { await page.waitForURL(`/verify${redirect}`) }) - const url = await test.step("request a verification code", async () => { + const _url = await test.step("request a verification code", async () => { await page.getByRole("button", { name: "Resend verification email" }).click() await page.getByRole("button", { name: "Success" }).waitFor() const { message } = await ( @@ -178,14 +178,9 @@ test.describe("unverified user", () => { ).getLatestMessage() const url = await getUrlFromInbucketMessage(message, page) expect(url).toBeTruthy() + expect(url).toContain("superadmin") return url as string }) - - await test.step("link in email redirects to redirect link", async () => { - await page.goto(url) - await page.waitForURL("/communities**") - // await page.getByText("Your email is now verified", { exact: true }).waitFor - }) }) test("going thru forget password flow verifies the user", async ({ page }) => { From b9f157fa4a9538d0ba7e39d26276ca7feab960cf Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 17:50:52 +0200 Subject: [PATCH 129/153] fix: coar-notify-seed --- core/prisma/seeds/coar-notify.ts | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/core/prisma/seeds/coar-notify.ts b/core/prisma/seeds/coar-notify.ts index c6481609e1..1bd054766f 100644 --- a/core/prisma/seeds/coar-notify.ts +++ b/core/prisma/seeds/coar-notify.ts @@ -64,6 +64,10 @@ const withBannerAndHead = ({ ].join(" ") } +const BASE_SITE_URL = env.S3_PUBLIC_ENDPOINT?.includes(env.S3_BUCKET_NAME) + ? `${env.S3_PUBLIC_ENDPOINT?.replace(/\/$/, "")}/sites` + : `${env.S3_ENDPOINT?.replace(/\/$/, "")}/${env.S3_BUCKET_NAME}/sites` + /** * User Story 1: Repository Author Requests Review * @@ -453,7 +457,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { recipientEmail: "all@pubpub.org", subject: "Site published with new review for: {{ $.pub.title }}", - body: "The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: http://localhost:9000/assets.v7.pubpub.org/sites/coar-us1-arcadia/site/index.html", + body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: /coar-us1-arcadia/site/index.html`, }, }, ], @@ -489,7 +493,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { Published: "dddddddd-0002-4ddd-dddd-dddddddddd15" as StagesId, } - const SITE_BASE = "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us2-unjournal/site" + const SITE_BASE = `${BASE_SITE_URL}/coar-us2-unjournal/site/` return seedCommunity( { @@ -868,8 +872,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { slug: "$.pub.id", transform: withBannerAndHead({ bannerText: "The Unjournal", - headExtra: - '""', + headExtra: `""`, content: [ "& '
'", "& '

' & $.pub.title & '

'", @@ -902,15 +905,15 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { "'{' &", '\'"@context": "https://w3id.org/docmaps/context.jsonld",\' &', '\'"type": "docmap",\' &', - "'\"id\": \"http://localhost:9000/assets.v7.pubpub.org/sites/coar-us2-unjournal/site/' & $.pub.id & '.docmap.json\",' &", + `'"id": "${SITE_BASE}" & $.pub.id & '.docmap.json",' &`, '\'"publisher": {"name": "\' & $.community.name & \'"},\' &', '\'"first-step": "_:b0",\' &', '\'"steps": {"_:b0": {"actions": [{"outputs": [{\' &', '\'"type": "review-article",\' &', "'\"as:inReplyTo\": \"' & $.pub.values.SourceURL & '\",' &", "'\"content\": [' &", - '\'{"type": "web-page", "url": "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us2-unjournal/site/\' & $.pub.id & \'/index.html"},\' &', - '\'{"type": "web-content", "url": "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us2-unjournal/site/\' & $.pub.id & \'/content/index.html"}\' &', + `'{"type": "web-page", "url": "${SITE_BASE}" & $.pub.id & '/index.html"},' &`, + `'{"type": "web-content", "url": "${SITE_BASE}" & $.pub.id & '/content/index.html"},' &`, "']' &", "'}]}]}}' &", "'}'", @@ -962,7 +965,7 @@ export async function seedCoarUS3(communityId?: CommunitiesId) { Published: "dddddddd-0003-4ddd-dddd-dddddddddd11" as StagesId, } - const SITE_BASE = "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us3-review-group/site" + const SITE_BASE = `${BASE_SITE_URL}/coar-us3-review-group/site/` return seedCommunity( { @@ -1091,8 +1094,7 @@ export async function seedCoarUS3(communityId?: CommunitiesId) { slug: "$.pub.id", transform: withBannerAndHead({ bannerText: "Review Group", - headExtra: - '""', + headExtra: `""`, content: [ "& '
'", "& '

' & $.pub.title & '

'", @@ -1125,15 +1127,15 @@ export async function seedCoarUS3(communityId?: CommunitiesId) { "'{' &", '\'"@context": "https://w3id.org/docmaps/context.jsonld",\' &', '\'"type": "docmap",\' &', - "'\"id\": \"http://localhost:9000/assets.v7.pubpub.org/sites/coar-us3-review-group/site/' & $.pub.id & '.docmap.json\",' &", + `'"id": "${SITE_BASE}" & $.pub.id & '.docmap.json",' &`, '\'"publisher": {"name": "\' & $.community.name & \'"},\' &', '\'"first-step": "_:b0",\' &', '\'"steps": {"_:b0": {"actions": [{"outputs": [{\' &', '\'"type": "review-article",\' &', "'\"as:inReplyTo\": \"' & $.pub.values.SourceURL & '\",' &", "'\"content\": [' &", - '\'{"type": "web-page", "url": "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us3-review-group/site/\' & $.pub.id & \'/index.html"},\' &', - '\'{"type": "web-content", "url": "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us3-review-group/site/\' & $.pub.id & \'/content/index.html"}\' &', + `'{"type": "web-page", "url": "${SITE_BASE}" & $.pub.id & '/index.html"},' &`, + `'{"type": "web-content", "url": "${SITE_BASE}" & $.pub.id & '/content/index.html"},' &`, "']' &", "'}]}]}}' &", "'}'", @@ -1189,7 +1191,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { ReviewCompleted: "dddddddd-0004-4ddd-dddd-dddddddddd14" as StagesId, } - const SITE_BASE = "http://localhost:9000/assets.v7.pubpub.org/sites/coar-us4-repository/site" + const SITE_BASE = `${BASE_SITE_URL}/coar-us4-repository/site/` return seedCommunity( { From c750a561e39cc87ecf564fb6d486e5ab13d49abc Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 17:51:13 +0200 Subject: [PATCH 130/153] fix: fix incorrect migration --- .../20260408120000_rm_build_journal_site/migration.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql b/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql index 60d8973667..cd73092b05 100644 --- a/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql +++ b/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql @@ -28,6 +28,9 @@ ALTER TABLE "action_instances" ALTER TABLE "action_config_defaults" ALTER COLUMN "action" TYPE "Action_new" USING ("action"::text::"Action_new"); +ALTER TABLE "action_runs" + ALTER COLUMN "action" TYPE "Action_new" + USING ("action"::text::"Action_new"); ALTER TYPE "Action" RENAME TO "Action_old"; ALTER TYPE "Action_new" RENAME TO "Action"; DROP TYPE "Action_old" CASCADE; From 5c4cf67ff9df9cd0561bd5309009a253ed0958f1 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Tue, 28 Apr 2026 18:56:12 +0200 Subject: [PATCH 131/153] fix: add maskfile --- infrastructure/maskfile.md | 316 +++++++++++++++++++++++++++++++------ 1 file changed, 264 insertions(+), 52 deletions(-) diff --git a/infrastructure/maskfile.md b/infrastructure/maskfile.md index bbe9f89d55..8232363aee 100644 --- a/infrastructure/maskfile.md +++ b/infrastructure/maskfile.md @@ -44,10 +44,10 @@ is not assumed all developers have access to this. To run these commands, set **OPTIONS** - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required @@ -77,10 +77,10 @@ is not assumed all developers have access to this. To run these commands, set **OPTIONS** - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required @@ -110,10 +110,10 @@ is not assumed all developers have access to this. To run these commands, set **OPTIONS** - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required ```bash @@ -135,19 +135,19 @@ is not assumed all developers have access to this. To run these commands, set **OPTIONS** - image_tag_override - - flags: -t --tag - - type: string - - desc: ECR image tag to use for this deploy (usually a Git SHA; default HEAD) + - flags: -t --tag + - type: string + - desc: ECR image tag to use for this deploy (usually a Git SHA; default HEAD) - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required - environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required + - flags: -e --environment + - type: string + - desc: environment name of AWS environment (see `./aws` module) e.g. staging + - required ```bash ( cd .. @@ -180,24 +180,24 @@ is not assumed all developers have access to this. To run these commands, set **OPTIONS** - image_tag_override - - flags: -t --tag - - type: string - - desc: ECR image tag to use for this deploy (usually a Git SHA; default HEAD) + - flags: -t --tag + - type: string + - desc: ECR image tag to use for this deploy (usually a Git SHA; default HEAD) - service - - flags: -s --service - - type: string - - desc: service name to update (example: core) - - required + - flags: -s --service + - type: string + - desc: service name to update (example: core) + - required - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required - environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required + - flags: -e --environment + - type: string + - desc: environment name of AWS environment (see `./aws` module) e.g. staging + - required ```bash ( cd .. @@ -255,19 +255,19 @@ No options are required -- the workflow infers them all. **OPTIONS** - region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) + - flags: -r --region + - type: string + - desc: Which AWS region to use (default us-east-1) - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required - environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required + - flags: -e --environment + - type: string + - desc: environment name of AWS environment (see `./aws` module) e.g. staging + - required ```bash AWS_REGION=${region:-us-east-1} @@ -318,9 +318,9 @@ docker build \ **OPTIONS** - region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) + - flags: -r --region + - type: string + - desc: Which AWS region to use (default us-east-1) ```bash echo "Determining AWS Account ID..." @@ -350,3 +350,215 @@ echo "pushing Nginx container..." docker push \ $AWS_REGISTRY/nginx:latest ``` + +### ecs db:tunnel + +> Opens an SSM port-forwarding tunnel from localhost to the RDS database through the bastion container. Run this in one terminal, then use psql or pg_dump from another. + +Requires the [Session Manager plugin](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) and a local Postgres client (`brew install libpq`). + +**OPTIONS** + +- region + - flags: -r --region + - type: string + - desc: Which AWS region to use (default us-east-1) +- proper_name + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required +- environment + - flags: -e --environment + - type: string + - desc: environment name of AWS environment (see `./aws` module) e.g. staging + - required +- local_port + - flags: -p --local-port + - type: string + - desc: local port to forward (default 15432) + +```bash +AWS_REGION=${region:-us-east-1} +CLUSTER="${proper_name}-ecs-cluster-${environment}" +LOCAL_PORT=${local_port:-15432} + +echo "fetching bastion task..." +TASK_ARN=$( + aws ecs list-tasks \ + --region ${AWS_REGION} \ + --cluster ${CLUSTER} \ + --service ${proper_name}-bastion \ + --query 'taskArns[0]' \ + --output text +) +TASK_ID=$(echo $TASK_ARN | cut -d'/' -f 3) + +echo "fetching container runtime ID..." +RUNTIME_ID=$( + aws ecs describe-tasks \ + --region ${AWS_REGION} \ + --cluster ${CLUSTER} \ + --tasks ${TASK_ARN} \ + --query 'tasks[0].containers[?name==`bastion`].runtimeId' \ + --output text +) + +echo "fetching RDS endpoint..." +RDS_HOST=$( + aws rds describe-db-instances \ + --region ${AWS_REGION} \ + --db-instance-identifier ${proper_name}-core-postgres-${environment} \ + --query 'DBInstances[0].Endpoint.Address' \ + --output text +) + +TARGET="ecs:${CLUSTER}_${TASK_ID}_${RUNTIME_ID}" + +echo "" +echo "starting port forward: localhost:${LOCAL_PORT} -> ${RDS_HOST}:5432" +echo "" +echo "in another terminal, connect with:" +echo " psql -h localhost -p ${LOCAL_PORT} -U ${proper_name} -d ${proper_name}_${environment}_core_postgres" +echo "" +echo "or dump with:" +echo " pg_dump -h localhost -p ${LOCAL_PORT} -U ${proper_name} -d ${proper_name}_${environment}_core_postgres -Fc -f dump.pgdump" +echo "" +echo "retrieve the password with:" +echo " aws secretsmanager get-secret-value --secret-id rds-db-password-${proper_name}-${environment} --query SecretString --output text --region ${AWS_REGION}" +echo "" + +aws ssm start-session \ + --region ${AWS_REGION} \ + --target "${TARGET}" \ + --document-name AWS-StartPortForwardingSessionToRemoteHost \ + --parameters "{\"host\":[\"${RDS_HOST}\"],\"portNumber\":[\"5432\"],\"localPortNumber\":[\"${LOCAL_PORT}\"]}" +``` + +### ecs db:dump + +> Runs pg_dump against the RDS database by tunneling through the bastion, saving the result locally. This is a one-command version that manages the tunnel lifecycle automatically. + +Requires the [Session Manager plugin](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) and a local Postgres client (`brew install libpq`). + +**OPTIONS** + +- region + - flags: -r --region + - type: string + - desc: Which AWS region to use (default us-east-1) +- proper_name + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g.blake + - required +- environment + - flags: -e --environment + - type: string + - desc: environment name of AWS environment (see `./aws` module) e.g. staging + - required +- output + - flags: -o --output + - type: string + - desc: output file path (default dump_NAME_ENV_TIMESTAMP.pgdump) + +```bash +AWS_REGION=${region:-us-east-1} +CLUSTER="${proper_name}-ecs-cluster-${environment}" +LOCAL_PORT=15432 +OUTPUT=${output:-"dump_${proper_name}_${environment}_$(date +%Y%m%d_%H%M%S).pgdump"} + +echo "fetching bastion task..." +TASK_ARN=$( + aws ecs list-tasks \ + --region ${AWS_REGION} \ + --cluster ${CLUSTER} \ + --service ${proper_name}-bastion \ + --query 'taskArns[0]' \ + --output text +) +TASK_ID=$(echo $TASK_ARN | cut -d'/' -f 3) + +echo "fetching container runtime ID..." +RUNTIME_ID=$( + aws ecs describe-tasks \ + --region ${AWS_REGION} \ + --cluster ${CLUSTER} \ + --tasks ${TASK_ARN} \ + --query 'tasks[0].containers[?name==`bastion`].runtimeId' \ + --output text +) + +echo "fetching RDS endpoint..." +RDS_HOST=$( + aws rds describe-db-instances \ + --region ${AWS_REGION} \ + --db-instance-identifier ${proper_name}-core-postgres-${environment} \ + --query 'DBInstances[0].Endpoint.Address' \ + --output text +) + +echo "fetching database password..." +PGPASSWORD=$( + aws secretsmanager get-secret-value \ + --region ${AWS_REGION} \ + --secret-id "rds-db-password-${proper_name}-${environment}" \ + --query SecretString \ + --output text +) + +TARGET="ecs:${CLUSTER}_${TASK_ID}_${RUNTIME_ID}" + +echo "starting port forward tunnel..." +aws ssm start-session \ + --region ${AWS_REGION} \ + --target "${TARGET}" \ + --document-name AWS-StartPortForwardingSessionToRemoteHost \ + --parameters "{\"host\":[\"${RDS_HOST}\"],\"portNumber\":[\"5432\"],\"localPortNumber\":[\"${LOCAL_PORT}\"]}" & +SSM_PID=$! + +echo "waiting for tunnel to be ready..." +READY=0 +for i in $(seq 1 30); do + if nc -z localhost ${LOCAL_PORT} 2>/dev/null; then + READY=1 + break + fi + + if ! kill -0 $SSM_PID 2>/dev/null; then + echo "ERROR: SSM session failed to start" + exit 1 + fi + + sleep 1 +done + +if [ $READY -eq 0 ]; then + echo "ERROR: tunnel did not become ready within 30 seconds" + kill $SSM_PID 2>/dev/null + exit 1 +fi + +echo "running pg_dump -> ${OUTPUT} ..." +PGPASSWORD=${PGPASSWORD} pg_dump \ + -h localhost \ + -p ${LOCAL_PORT} \ + -U ${proper_name} \ + -d "${proper_name}_${environment}_core_postgres" \ + -Fc \ + -f "${OUTPUT}" +DUMP_EXIT=$? + +echo "closing tunnel..." +kill $SSM_PID 2>/dev/null +wait $SSM_PID 2>/dev/null + +if [ $DUMP_EXIT -eq 0 ]; then + echo "" + echo "dump saved to ${OUTPUT}" + echo "restore with: pg_restore -d ${OUTPUT}" +else + echo "ERROR: pg_dump failed with exit code $DUMP_EXIT" + exit $DUMP_EXIT +fi +``` From 4fe1873bb8a53c5b744f760e8221f66e9ba4e667 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 14:05:38 +0200 Subject: [PATCH 132/153] fix: upgrade postgres to 16 --- docker-compose.base.yml | 23 +++++++++-------------- infra/stack.preview.yml | 2 +- infra/stack.yml | 12 ++++++------ self-host/docker-compose.yml | 12 +++--------- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 0a9be47737..7c6ef4e4de 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -2,13 +2,7 @@ services: minio: image: minio/minio:RELEASE.2025-04-22T22-12-26Z healthcheck: - test: - [ - "CMD", - "curl", - "-f", - "http://localhost:9000/minio/health/ready", - ] + test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/ready" ] interval: 1m30s timeout: 30s retries: 5 @@ -30,15 +24,16 @@ services: # - allow said user to upload # this sadly can't be done by just configuring some env vars for minio itself, very annoying, you need to use their mc client. I'm not sure this is the best way to go about doing this. entrypoint: > - /bin/sh -c ' - /usr/bin/mc alias set myminio http://minio:9000 "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; - /usr/bin/mc mb --ignore-existing myminio/"$${S3_BUCKET_NAME}"; - /usr/bin/mc anonymous set download myminio/"$${S3_BUCKET_NAME}"; - /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; - /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}";' + /bin/sh -c ' /usr/bin/mc alias set myminio http://minio:9000 + "$${MINIO_ROOT_USER}" "$${MINIO_ROOT_PASSWORD}"; /usr/bin/mc mb + --ignore-existing myminio/"$${S3_BUCKET_NAME}"; /usr/bin/mc + anonymous set download myminio/"$${S3_BUCKET_NAME}"; /usr/bin/mc + admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user + "$${S3_ACCESS_KEY}";' db: - image: postgres:15 + image: postgres:17 restart: always inbucket: diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index dd12c121e2..303ff838a7 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -76,7 +76,7 @@ services: condition: on-failure db: - image: postgres:15 + image: postgres:17 env_file: ['.env.${STACK_NAME}'] volumes: - pgdata:/var/lib/postgresql/data diff --git a/infra/stack.yml b/infra/stack.yml index a7681f477f..4580b75bdc 100644 --- a/infra/stack.yml +++ b/infra/stack.yml @@ -1,7 +1,7 @@ services: proxy: image: caddy:2.11.2-alpine - env_file: [".env.${STACK_NAME}"] + env_file: ['.env.${STACK_NAME}'] ports: - target: 80 published: 80 @@ -23,7 +23,7 @@ services: platform: image: ghcr.io/knowledgefutures/platform:${IMAGE_TAG} - env_file: [".env.${STACK_NAME}"] + env_file: ['.env.${STACK_NAME}'] environment: HOSTNAME: '0.0.0.0' NODE_ENV: production @@ -58,7 +58,7 @@ services: platform-jobs: image: ghcr.io/knowledgefutures/platform-jobs:${IMAGE_TAG} - env_file: [".env.${STACK_NAME}"] + env_file: ['.env.${STACK_NAME}'] environment: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} @@ -76,7 +76,7 @@ services: site-builder: image: ghcr.io/knowledgefutures/platform-site-builder:${IMAGE_TAG} - env_file: [".env.${STACK_NAME}"] + env_file: ['.env.${STACK_NAME}'] environment: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} @@ -95,10 +95,10 @@ services: condition: on-failure db: - image: postgres:15 + image: postgres:17 tmpfs: - /dev/shm:size=2147483648 - env_file: [".env.${STACK_NAME}"] + env_file: ['.env.${STACK_NAME}'] command: > -c shared_buffers=2GB -c effective_cache_size=6GB diff --git a/self-host/docker-compose.yml b/self-host/docker-compose.yml index 30604e10a6..7da14d3903 100644 --- a/self-host/docker-compose.yml +++ b/self-host/docker-compose.yml @@ -50,7 +50,7 @@ services: # can be removed if you manually set the DATABASE_URL environment variable in .env # to another postgres database you have access to db: - image: postgres:15 + image: postgres:17 restart: always env_file: .env volumes: @@ -90,13 +90,7 @@ services: image: minio/minio:latest env_file: .env healthcheck: - test: - [ - "CMD", - "curl", - "-f", - "http://localhost:9000/minio/health/ready", - ] + test: [ "CMD", "curl", "-f", "http://localhost:9000/minio/health/ready" ] interval: 1m30s timeout: 30s retries: 5 @@ -119,7 +113,7 @@ services: condition: service_healthy image: minio/mc:latest env_file: .env - entrypoint: ["/bin/sh", "/minio-init.sh"] + entrypoint: [ "/bin/sh", "/minio-init.sh" ] volumes: - ./minio-init.sh:/minio-init.sh networks: From f2e79915f60987c09a5281b446004bdb8a1d27e5 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 14:42:40 +0200 Subject: [PATCH 133/153] fix: separate dirs for separate stacks --- .github/workflows/deploy-stack.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-stack.yml b/.github/workflows/deploy-stack.yml index 66b4cf8896..64636c3ead 100644 --- a/.github/workflows/deploy-stack.yml +++ b/.github/workflows/deploy-stack.yml @@ -107,7 +107,7 @@ jobs: fi REPO_NAME="${REPO##*/}" - APP_DIR="/srv/${REPO_NAME}" + APP_DIR="/srv/${STACK_NAME}/${REPO_NAME}" REPO_SSH="git@github.com:${REPO}.git" LOCK_DIR="/tmp/deploy-locks" From 32801f01eb832303d513e2763f6fb6f4d26a698f Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 14:48:07 +0200 Subject: [PATCH 134/153] fix: update maskfile for dump --- infrastructure/maskfile.md | 188 +++++++++++++++++++------------------ 1 file changed, 96 insertions(+), 92 deletions(-) diff --git a/infrastructure/maskfile.md b/infrastructure/maskfile.md index 8232363aee..e705f12eb0 100644 --- a/infrastructure/maskfile.md +++ b/infrastructure/maskfile.md @@ -2,7 +2,7 @@ This "Maskfile" is the code AND documentation for common operations workflows in this `infrastructure` directory. The commands declared -here are automatically available as CLI commands when running [`mask`](https://github.com/jacobdeichert/mask) +here are automatically available as CLI commands when running `[mask](https://github.com/jacobdeichert/mask)` in this directory. To get started, install important command line tools: @@ -26,7 +26,7 @@ your current shell is not contaminated/changed directory. Both `act` commands (for container version updates) and `terraform` commands (for infrastructure changes) require the AWS CLI to be configured locally. Usually this means setting a file at `~/.aws/credentials` and `~/.aws/config`: -see https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html +see [https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) `terraform` commands for the `global` workspace require write-access API token to Cloudflare. Since this is one of the highest-security-profile accounts, it @@ -49,7 +49,7 @@ is not assumed all developers have access to this. To run these commands, set - desc: proper name of AWS environment (see `./aws` module); e.g. blake - required - + ```bash ( @@ -82,7 +82,7 @@ is not assumed all developers have access to this. To run these commands, set - desc: proper name of AWS environment (see `./aws` module); e.g. blake - required - + ```bash ( @@ -297,7 +297,7 @@ aws ecs \ --task $TASK ``` - + ### ecs nginx:build @@ -432,40 +432,41 @@ aws ssm start-session \ --region ${AWS_REGION} \ --target "${TARGET}" \ --document-name AWS-StartPortForwardingSessionToRemoteHost \ - --parameters "{\"host\":[\"${RDS_HOST}\"],\"portNumber\":[\"5432\"],\"localPortNumber\":[\"${LOCAL_PORT}\"]}" + --parameters "{"host":["${RDS_HOST}"],"portNumber":["5432"],"localPortNumber":["${LOCAL_PORT}"]}" ``` ### ecs db:dump -> Runs pg_dump against the RDS database by tunneling through the bastion, saving the result locally. This is a one-command version that manages the tunnel lifecycle automatically. +> Dumps the RDS database by running pg_dump on the bastion (fast, same VPC) and relaying through S3. Much faster than tunneling because pg_dump runs within the VPC. -Requires the [Session Manager plugin](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) and a local Postgres client (`brew install libpq`). +The presigned URL is generated by a local Python script using boto3. Your local IAM user needs `s3:PutObject` on the assets bucket. **OPTIONS** - region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) + - flags: -r --region + - type: string + - desc: Which AWS region to use (default us-east-1) - proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g.blake - - required + - flags: -n --proper-name + - type: string + - desc: proper name of AWS environment (see `./aws` module); e.g. blake + - required - environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required + - flags: -e --environment + - type: string + - desc: environment name of AWS environment (see `./aws` module) e.g. staging + - required - output - - flags: -o --output - - type: string - - desc: output file path (default dump_NAME_ENV_TIMESTAMP.pgdump) + - flags: -o --output + - type: string + - desc: output file path (default dump_NAME_ENV_TIMESTAMP.pgdump) ```bash AWS_REGION=${region:-us-east-1} CLUSTER="${proper_name}-ecs-cluster-${environment}" -LOCAL_PORT=15432 +BUCKET="temp-migration-redshift" +S3_KEY="temporary/db-dump-$(date +%Y%m%d_%H%M%S).pgdump" OUTPUT=${output:-"dump_${proper_name}_${environment}_$(date +%Y%m%d_%H%M%S).pgdump"} echo "fetching bastion task..." @@ -477,88 +478,91 @@ TASK_ARN=$( --query 'taskArns[0]' \ --output text ) -TASK_ID=$(echo $TASK_ARN | cut -d'/' -f 3) -echo "fetching container runtime ID..." -RUNTIME_ID=$( - aws ecs describe-tasks \ - --region ${AWS_REGION} \ - --cluster ${CLUSTER} \ - --tasks ${TASK_ARN} \ - --query 'tasks[0].containers[?name==`bastion`].runtimeId' \ - --output text -) +if [ -z "${TASK_ARN}" ] || [ "${TASK_ARN}" = "None" ]; then + echo "ERROR: could not find a running bastion task in ${CLUSTER}" + exit 1 +fi -echo "fetching RDS endpoint..." -RDS_HOST=$( - aws rds describe-db-instances \ - --region ${AWS_REGION} \ - --db-instance-identifier ${proper_name}-core-postgres-${environment} \ - --query 'DBInstances[0].Endpoint.Address' \ - --output text -) +TASK=$(echo $TASK_ARN | cut -d'/' -f 3) + +echo "generating presigned upload URL with python..." +PRESIGNED_URL=$( + MASK_AWS_REGION="${AWS_REGION}" MASK_BUCKET="${BUCKET}" MASK_KEY="${S3_KEY}" python3 - <<'PY' +import os +import sys + +try: + import boto3 +except ModuleNotFoundError: + print("ERROR: boto3 is not installed for python3", file=sys.stderr) + sys.exit(1) + +region = os.environ["MASK_AWS_REGION"] +bucket = os.environ["MASK_BUCKET"] +key = os.environ["MASK_KEY"] + +client = boto3.client("s3", region_name=region) + +try: + url = client.generate_presigned_url( + ClientMethod="put_object", + Params={"Bucket": bucket, "Key": key}, + ExpiresIn=7200, + HttpMethod="PUT", + ) +except Exception as err: + print(f"ERROR: failed to generate presigned URL: {err}", file=sys.stderr) + sys.exit(1) + +print(url) +PY +) || { + echo "ERROR: could not generate presigned URL" + echo "install boto3 with: pip3 install boto3" + exit 1 +} -echo "fetching database password..." -PGPASSWORD=$( - aws secretsmanager get-secret-value \ - --region ${AWS_REGION} \ - --secret-id "rds-db-password-${proper_name}-${environment}" \ - --query SecretString \ - --output text -) +# base64-encode the url to avoid shell escaping issues when passing through execute-command +URL_B64=$(echo -n "$PRESIGNED_URL" | base64 | tr -d '\ +') -TARGET="ecs:${CLUSTER}_${TASK_ID}_${RUNTIME_ID}" +echo "running pg_dump on bastion and uploading to s3..." +echo "(pg_dump runs inside the vpc, so this is much faster than tunneling)" -echo "starting port forward tunnel..." -aws ssm start-session \ +aws ecs execute-command \ + --interactive \ --region ${AWS_REGION} \ - --target "${TARGET}" \ - --document-name AWS-StartPortForwardingSessionToRemoteHost \ - --parameters "{\"host\":[\"${RDS_HOST}\"],\"portNumber\":[\"5432\"],\"localPortNumber\":[\"${LOCAL_PORT}\"]}" & -SSM_PID=$! - -echo "waiting for tunnel to be ready..." -READY=0 -for i in $(seq 1 30); do - if nc -z localhost ${LOCAL_PORT} 2>/dev/null; then - READY=1 - break - fi + --cluster ${CLUSTER} \ + --task ${TASK} \ + --container bastion \ + --command "sh -c 'set -eu && URL=\$(echo ${URL_B64} | base64 -d) && echo running pg_dump... && pg_dump -Fc > /tmp/dump.pgdump && echo uploading to s3... && curl -fS -X PUT -T /tmp/dump.pgdump \"\$URL\" && rm -f /tmp/dump.pgdump && echo upload complete'" - if ! kill -0 $SSM_PID 2>/dev/null; then - echo "ERROR: SSM session failed to start" +echo "" +echo "verifying upload in s3..." +ATTEMPT=1 +MAX_ATTEMPTS=10 +while ! aws s3api head-object --bucket "${BUCKET}" --key "${S3_KEY}" --region ${AWS_REGION} >/dev/null 2>&1; do + if [ ${ATTEMPT} -ge ${MAX_ATTEMPTS} ]; then + echo "ERROR: uploaded dump not found at s3://${BUCKET}/${S3_KEY}" exit 1 fi sleep 1 + ATTEMPT=$((ATTEMPT + 1)) done -if [ $READY -eq 0 ]; then - echo "ERROR: tunnel did not become ready within 30 seconds" - kill $SSM_PID 2>/dev/null +echo "downloading from s3..." +aws s3 cp "s3://${BUCKET}/${S3_KEY}" "${OUTPUT}" --region ${AWS_REGION} || { + echo "ERROR: failed to download dump from s3" exit 1 -fi +} -echo "running pg_dump -> ${OUTPUT} ..." -PGPASSWORD=${PGPASSWORD} pg_dump \ - -h localhost \ - -p ${LOCAL_PORT} \ - -U ${proper_name} \ - -d "${proper_name}_${environment}_core_postgres" \ - -Fc \ - -f "${OUTPUT}" -DUMP_EXIT=$? - -echo "closing tunnel..." -kill $SSM_PID 2>/dev/null -wait $SSM_PID 2>/dev/null - -if [ $DUMP_EXIT -eq 0 ]; then - echo "" - echo "dump saved to ${OUTPUT}" - echo "restore with: pg_restore -d ${OUTPUT}" -else - echo "ERROR: pg_dump failed with exit code $DUMP_EXIT" - exit $DUMP_EXIT -fi +echo "cleaning up s3..." +aws s3 rm "s3://${BUCKET}/${S3_KEY}" --region ${AWS_REGION} 2>/dev/null + +echo "" +echo "dump saved to ${OUTPUT}" +echo "restore with: pg_restore --no-owner --disable-triggers -d ${OUTPUT}" ``` + From 4d97f9d0be45b0e481688b07a596f39dd9b876ee Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 14:48:24 +0200 Subject: [PATCH 135/153] fix: begone terraform --- infrastructure/Brewfile | 7 - infrastructure/maskfile.md | 568 ------------------ infrastructure/nginx/Dockerfile | 2 - infrastructure/nginx/README.md | 62 -- infrastructure/nginx/default.conf.template | 22 - infrastructure/terraform/.gitignore | 4 - infrastructure/terraform/README.md | 84 --- .../environments/blake/.terraform.lock.hcl | 47 -- .../terraform/environments/blake/main.tf | 65 -- .../cloudflare/.terraform.lock.hcl | 48 -- .../environments/cloudflare/README.md | 20 - .../terraform/environments/cloudflare/main.tf | 64 -- .../environments/cloudflare/outputs.tf | 6 - .../global_aws/.terraform.lock.hcl | 48 -- .../environments/global_aws/README.md | 17 - .../global_aws/github_actions_iam.tf | 159 ----- .../terraform/environments/global_aws/main.tf | 47 -- .../environments/global_aws/outputs.tf | 20 - .../environments/stevie/.terraform.lock.hcl | 66 -- .../terraform/environments/stevie/main.tf | 83 --- .../modules/container-generic/README.md | 0 .../modules/container-generic/main.tf | 193 ------ .../modules/container-generic/outputs.tf | 0 .../modules/container-generic/variables.tf | 107 ---- .../terraform/modules/core-services/README.md | 104 ---- .../terraform/modules/core-services/main.tf | 329 ---------- .../modules/core-services/outputs.tf | 52 -- .../modules/core-services/variables.tf | 20 - .../terraform/modules/deployment/main.tf | 250 -------- .../terraform/modules/deployment/outputs.tf | 3 - .../terraform/modules/deployment/variables.tf | 73 --- .../modules/ecr-repositories/main.tf | 60 -- .../modules/ecr-repositories/outputs.tf | 10 - .../modules/ecr-repositories/variables.tf | 0 .../modules/honeycomb-integration/README.md | 0 .../modules/honeycomb-integration/main.tf | 48 -- .../modules/honeycomb-integration/outputs.tf | 0 .../honeycomb-integration/variables.tf | 21 - .../terraform/modules/v7-cluster/dns.tf | 32 - .../terraform/modules/v7-cluster/ecs.tf | 21 - .../terraform/modules/v7-cluster/main.tf | 178 ------ .../terraform/modules/v7-cluster/outputs.tf | 14 - .../terraform/modules/v7-cluster/variables.tf | 70 --- 43 files changed, 3024 deletions(-) delete mode 100644 infrastructure/Brewfile delete mode 100644 infrastructure/maskfile.md delete mode 100644 infrastructure/nginx/Dockerfile delete mode 100644 infrastructure/nginx/README.md delete mode 100644 infrastructure/nginx/default.conf.template delete mode 100644 infrastructure/terraform/.gitignore delete mode 100644 infrastructure/terraform/README.md delete mode 100644 infrastructure/terraform/environments/blake/.terraform.lock.hcl delete mode 100644 infrastructure/terraform/environments/blake/main.tf delete mode 100644 infrastructure/terraform/environments/cloudflare/.terraform.lock.hcl delete mode 100644 infrastructure/terraform/environments/cloudflare/README.md delete mode 100644 infrastructure/terraform/environments/cloudflare/main.tf delete mode 100644 infrastructure/terraform/environments/cloudflare/outputs.tf delete mode 100644 infrastructure/terraform/environments/global_aws/.terraform.lock.hcl delete mode 100644 infrastructure/terraform/environments/global_aws/README.md delete mode 100644 infrastructure/terraform/environments/global_aws/github_actions_iam.tf delete mode 100644 infrastructure/terraform/environments/global_aws/main.tf delete mode 100644 infrastructure/terraform/environments/global_aws/outputs.tf delete mode 100644 infrastructure/terraform/environments/stevie/.terraform.lock.hcl delete mode 100644 infrastructure/terraform/environments/stevie/main.tf delete mode 100644 infrastructure/terraform/modules/container-generic/README.md delete mode 100644 infrastructure/terraform/modules/container-generic/main.tf delete mode 100644 infrastructure/terraform/modules/container-generic/outputs.tf delete mode 100644 infrastructure/terraform/modules/container-generic/variables.tf delete mode 100644 infrastructure/terraform/modules/core-services/README.md delete mode 100644 infrastructure/terraform/modules/core-services/main.tf delete mode 100644 infrastructure/terraform/modules/core-services/outputs.tf delete mode 100644 infrastructure/terraform/modules/core-services/variables.tf delete mode 100644 infrastructure/terraform/modules/deployment/main.tf delete mode 100644 infrastructure/terraform/modules/deployment/outputs.tf delete mode 100644 infrastructure/terraform/modules/deployment/variables.tf delete mode 100644 infrastructure/terraform/modules/ecr-repositories/main.tf delete mode 100644 infrastructure/terraform/modules/ecr-repositories/outputs.tf delete mode 100644 infrastructure/terraform/modules/ecr-repositories/variables.tf delete mode 100644 infrastructure/terraform/modules/honeycomb-integration/README.md delete mode 100644 infrastructure/terraform/modules/honeycomb-integration/main.tf delete mode 100644 infrastructure/terraform/modules/honeycomb-integration/outputs.tf delete mode 100644 infrastructure/terraform/modules/honeycomb-integration/variables.tf delete mode 100644 infrastructure/terraform/modules/v7-cluster/dns.tf delete mode 100644 infrastructure/terraform/modules/v7-cluster/ecs.tf delete mode 100644 infrastructure/terraform/modules/v7-cluster/main.tf delete mode 100644 infrastructure/terraform/modules/v7-cluster/outputs.tf delete mode 100644 infrastructure/terraform/modules/v7-cluster/variables.tf diff --git a/infrastructure/Brewfile b/infrastructure/Brewfile deleted file mode 100644 index 0dea01a981..0000000000 --- a/infrastructure/Brewfile +++ /dev/null @@ -1,7 +0,0 @@ -# infrastructure dependencies -brew "mask" -brew "awscli" -brew "terraform" -brew "act" - -cask "session-manager-plugin" diff --git a/infrastructure/maskfile.md b/infrastructure/maskfile.md deleted file mode 100644 index e705f12eb0..0000000000 --- a/infrastructure/maskfile.md +++ /dev/null @@ -1,568 +0,0 @@ -# Infrastructure operations for pubpub v7 - -This "Maskfile" is the code AND documentation for common operations -workflows in this `infrastructure` directory. The commands declared -here are automatically available as CLI commands when running `[mask](https://github.com/jacobdeichert/mask)` -in this directory. - -To get started, install important command line tools: - -`brew bundle` - -Then you can call `mask --help` to see these commands in the -familiar command line help format. You can also modify the -invocations here when the required script changes, or copy & paste -the command parts as needed. - -See the above-linked Mask repo for more info. - -**Notes** - -Terraform commands often read info from the local directory, so the -`mask` commands wrap the invocation in a subshell with `cd` to the -directory containing `.terraform`; this way, if the command exits nonzero, -your current shell is not contaminated/changed directory. - -Both `act` commands (for container version updates) and `terraform` commands -(for infrastructure changes) require the AWS CLI to be configured locally. -Usually this means setting a file at `~/.aws/credentials` and `~/.aws/config`: -see [https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html) - -`terraform` commands for the `global` workspace require write-access API token -to Cloudflare. Since this is one of the highest-security-profile accounts, it -is not assumed all developers have access to this. To run these commands, set -`CLOUDFLARE_API_TOKEN` environment variable. - -## tf - -> Terraform-related commands to run in one workspace or another - -### tf plan - -> Runs the plan (diff showing) command interactively using the environment specified. - -**OPTIONS** - -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required - - - -```bash -( - cd terraform/environments/${proper_name} - - export AWS_PAGER="" - if aws sts get-caller-identity; then - echo "AWS identity check succeeded." - else - echo "AWS CLI misconfigured; see maskfile.md for info" - exit 1 - fi - - echo "showing env diff for $proper_name from $(pwd)" - - terraform plan \ - -input=false -) -``` - -### tf apply - -> Runs the apply command interactively, still asking for confirmation, using the environment specified. - -**OPTIONS** - -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required - - - -```bash -( - cd terraform/environments/${proper_name} - - export AWS_PAGER="" - if aws sts get-caller-identity; then - echo "AWS identity check succeeded." - else - echo "AWS CLI misconfigured; see maskfile.md for info" - exit 1 - fi - - echo "applying $proper_name from $(pwd)" - - terraform apply \ - -input=false -) -``` - -### tf init - -> Runs the initialization for the environment - -**OPTIONS** - -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required - -```bash - -( - cd terraform/environments/${proper_name} - - terraform init -) -``` - -## ecs - -> commands that manage AWS containers - -### ecs deploy:all - -> Use `act` CLI to deploy all containers to a given SHA (or HEAD). - -**OPTIONS** - -- image_tag_override - - flags: -t --tag - - type: string - - desc: ECR image tag to use for this deploy (usually a Git SHA; default HEAD) -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required -- environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required - -```bash -( cd .. - if [[ -z $image_tag_override ]]; then - echo "Deploying HEAD ($(git rev-parse --dirty HEAD)) ... ensure this tag has been pushed!" - else - echo "Deploying override ($image_tag_override) ... ensure this tag has been pushed!" - fi - - workflow_file=".github/workflows/awsdeploy.yml" - - echo "Procedure will follow workflow $workflow_file ..." - act \ - -W "$workflow_file" \ - --container-architecture linux/amd64 \ - --input proper-name=${proper_name} \ - --input environment=${environment} \ - --input image-tag-override=${image_tag_override} \ - workflow_call - - echo "Deploy request complete! Visit AWS console to follow progress:" - echo "https://console.aws.amazon.com/ecs/v2/clusters/${proper_name}-ecs-cluster-${environment}/services" -) -``` - -### ecs deploy:one - -> Use `act` CLI to deploy ONE container/service to a given SHA (or HEAD). - -**OPTIONS** - -- image_tag_override - - flags: -t --tag - - type: string - - desc: ECR image tag to use for this deploy (usually a Git SHA; default HEAD) -- service - - flags: -s --service - - type: string - - desc: service name to update (example: core) - - required -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required -- environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required - -```bash -( cd .. - if [[ -z $image_tag_override ]]; then - echo "Deploying HEAD ($(git rev-parse --dirty HEAD)) ... ensure this tag has been pushed!" - else - echo "Deploying override ($image_tag_override) ... ensure this tag has been pushed!" - fi - - workflow_file=".github/workflows/deploy-template.yml" - - echo "Deploy will follow workflow $workflow_file ..." - act \ - -W "$workflow_file" \ - --container-architecture linux/amd64 \ - --input proper-name=${proper_name} \ - --input environment=${environment} \ - --input service=${service} \ - --input image-tag-override=${image_tag_override} \ - workflow_call - - echo "Deploy request complete! Visit AWS console to follow progress:" - echo "https://console.aws.amazon.com/ecs/v2/clusters/${proper_name}-ecs-cluster-${environment}/services" -) -``` - -### ecs build:all - -> Use `act` CLI to build and push all containers with local code, tagged with the HEAD (or HEAD-dirty) SHA - -No options are required -- the workflow infers them all. - -**WARN**: `docker push` invocations will appear to freeze, but that is a display bug in `act`. - -```bash - -( cd .. - workflow_file=".github/workflows/ecrbuild-all.yml" - - echo "This may take a few minutes, and output will not stream during upload ..." - echo "Procedure will follow workflow $workflow_file ..." - act \ - -W "$workflow_file" \ - --container-architecture linux/amd64 \ - workflow_call - - echo "Done!" -) -``` - -### ecs bastion - -> Opens an interactive shell on the bastion container in AWS - -**OPTIONS** - -- region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required -- environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required - -```bash -AWS_REGION=${region:-us-east-1} - -echo "fetching task ID of running bastion ..." -TASK=$( - aws ecs \ - list-tasks \ - --region ${AWS_REGION} \ - --cluster ${proper_name}-ecs-cluster-${environment} \ - --service ${proper_name}-bastion \ - | jq -r \ - '.taskArns[0]' \ - | cut \ - -d'/' \ - -f 3 \ -) - -echo "starting shell with task $TASK ..." -aws ecs \ - execute-command \ - --interactive \ - --command "/bin/sh" \ - --region ${AWS_REGION} \ - --container "bastion" \ - --cluster ${proper_name}-ecs-cluster-${environment} \ - --task $TASK -``` - - - -### ecs nginx:build - -> Builds the nginx container used in AWS ECS for inbound traffic - -```bash -echo "building Nginx container..." -docker build \ - --platform linux/amd64 \ - -t pubpub-v7-nginx:latest \ - ./nginx -``` - -### ecs nginx:push - -> Pushes the locally built latest nginx container - -**OPTIONS** - -- region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) - -```bash -echo "Determining AWS Account ID..." - -AWS_REGION=${region:-us-east-1} -AWS_ACCOUNT=$( - aws sts get-caller-identity \ - --query Account \ - --output text -) -AWS_REGISTRY=$AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com - -echo "Logging docker daemon in to ECR" -aws ecr get-login-password \ - --region $AWS_REGION \ - | docker login \ - --username AWS \ - --password-stdin \ - $AWS_REGISTRY - -echo "renaming container to ECR repository..." -docker tag \ - pubpub-v7-nginx:latest \ - $AWS_REGISTRY/nginx:latest - -echo "pushing Nginx container..." -docker push \ - $AWS_REGISTRY/nginx:latest -``` - -### ecs db:tunnel - -> Opens an SSM port-forwarding tunnel from localhost to the RDS database through the bastion container. Run this in one terminal, then use psql or pg_dump from another. - -Requires the [Session Manager plugin](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html) and a local Postgres client (`brew install libpq`). - -**OPTIONS** - -- region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required -- environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required -- local_port - - flags: -p --local-port - - type: string - - desc: local port to forward (default 15432) - -```bash -AWS_REGION=${region:-us-east-1} -CLUSTER="${proper_name}-ecs-cluster-${environment}" -LOCAL_PORT=${local_port:-15432} - -echo "fetching bastion task..." -TASK_ARN=$( - aws ecs list-tasks \ - --region ${AWS_REGION} \ - --cluster ${CLUSTER} \ - --service ${proper_name}-bastion \ - --query 'taskArns[0]' \ - --output text -) -TASK_ID=$(echo $TASK_ARN | cut -d'/' -f 3) - -echo "fetching container runtime ID..." -RUNTIME_ID=$( - aws ecs describe-tasks \ - --region ${AWS_REGION} \ - --cluster ${CLUSTER} \ - --tasks ${TASK_ARN} \ - --query 'tasks[0].containers[?name==`bastion`].runtimeId' \ - --output text -) - -echo "fetching RDS endpoint..." -RDS_HOST=$( - aws rds describe-db-instances \ - --region ${AWS_REGION} \ - --db-instance-identifier ${proper_name}-core-postgres-${environment} \ - --query 'DBInstances[0].Endpoint.Address' \ - --output text -) - -TARGET="ecs:${CLUSTER}_${TASK_ID}_${RUNTIME_ID}" - -echo "" -echo "starting port forward: localhost:${LOCAL_PORT} -> ${RDS_HOST}:5432" -echo "" -echo "in another terminal, connect with:" -echo " psql -h localhost -p ${LOCAL_PORT} -U ${proper_name} -d ${proper_name}_${environment}_core_postgres" -echo "" -echo "or dump with:" -echo " pg_dump -h localhost -p ${LOCAL_PORT} -U ${proper_name} -d ${proper_name}_${environment}_core_postgres -Fc -f dump.pgdump" -echo "" -echo "retrieve the password with:" -echo " aws secretsmanager get-secret-value --secret-id rds-db-password-${proper_name}-${environment} --query SecretString --output text --region ${AWS_REGION}" -echo "" - -aws ssm start-session \ - --region ${AWS_REGION} \ - --target "${TARGET}" \ - --document-name AWS-StartPortForwardingSessionToRemoteHost \ - --parameters "{"host":["${RDS_HOST}"],"portNumber":["5432"],"localPortNumber":["${LOCAL_PORT}"]}" -``` - -### ecs db:dump - -> Dumps the RDS database by running pg_dump on the bastion (fast, same VPC) and relaying through S3. Much faster than tunneling because pg_dump runs within the VPC. - -The presigned URL is generated by a local Python script using boto3. Your local IAM user needs `s3:PutObject` on the assets bucket. - -**OPTIONS** - -- region - - flags: -r --region - - type: string - - desc: Which AWS region to use (default us-east-1) -- proper_name - - flags: -n --proper-name - - type: string - - desc: proper name of AWS environment (see `./aws` module); e.g. blake - - required -- environment - - flags: -e --environment - - type: string - - desc: environment name of AWS environment (see `./aws` module) e.g. staging - - required -- output - - flags: -o --output - - type: string - - desc: output file path (default dump_NAME_ENV_TIMESTAMP.pgdump) - -```bash -AWS_REGION=${region:-us-east-1} -CLUSTER="${proper_name}-ecs-cluster-${environment}" -BUCKET="temp-migration-redshift" -S3_KEY="temporary/db-dump-$(date +%Y%m%d_%H%M%S).pgdump" -OUTPUT=${output:-"dump_${proper_name}_${environment}_$(date +%Y%m%d_%H%M%S).pgdump"} - -echo "fetching bastion task..." -TASK_ARN=$( - aws ecs list-tasks \ - --region ${AWS_REGION} \ - --cluster ${CLUSTER} \ - --service ${proper_name}-bastion \ - --query 'taskArns[0]' \ - --output text -) - -if [ -z "${TASK_ARN}" ] || [ "${TASK_ARN}" = "None" ]; then - echo "ERROR: could not find a running bastion task in ${CLUSTER}" - exit 1 -fi - -TASK=$(echo $TASK_ARN | cut -d'/' -f 3) - -echo "generating presigned upload URL with python..." -PRESIGNED_URL=$( - MASK_AWS_REGION="${AWS_REGION}" MASK_BUCKET="${BUCKET}" MASK_KEY="${S3_KEY}" python3 - <<'PY' -import os -import sys - -try: - import boto3 -except ModuleNotFoundError: - print("ERROR: boto3 is not installed for python3", file=sys.stderr) - sys.exit(1) - -region = os.environ["MASK_AWS_REGION"] -bucket = os.environ["MASK_BUCKET"] -key = os.environ["MASK_KEY"] - -client = boto3.client("s3", region_name=region) - -try: - url = client.generate_presigned_url( - ClientMethod="put_object", - Params={"Bucket": bucket, "Key": key}, - ExpiresIn=7200, - HttpMethod="PUT", - ) -except Exception as err: - print(f"ERROR: failed to generate presigned URL: {err}", file=sys.stderr) - sys.exit(1) - -print(url) -PY -) || { - echo "ERROR: could not generate presigned URL" - echo "install boto3 with: pip3 install boto3" - exit 1 -} - -# base64-encode the url to avoid shell escaping issues when passing through execute-command -URL_B64=$(echo -n "$PRESIGNED_URL" | base64 | tr -d '\ -') - -echo "running pg_dump on bastion and uploading to s3..." -echo "(pg_dump runs inside the vpc, so this is much faster than tunneling)" - -aws ecs execute-command \ - --interactive \ - --region ${AWS_REGION} \ - --cluster ${CLUSTER} \ - --task ${TASK} \ - --container bastion \ - --command "sh -c 'set -eu && URL=\$(echo ${URL_B64} | base64 -d) && echo running pg_dump... && pg_dump -Fc > /tmp/dump.pgdump && echo uploading to s3... && curl -fS -X PUT -T /tmp/dump.pgdump \"\$URL\" && rm -f /tmp/dump.pgdump && echo upload complete'" - -echo "" -echo "verifying upload in s3..." -ATTEMPT=1 -MAX_ATTEMPTS=10 -while ! aws s3api head-object --bucket "${BUCKET}" --key "${S3_KEY}" --region ${AWS_REGION} >/dev/null 2>&1; do - if [ ${ATTEMPT} -ge ${MAX_ATTEMPTS} ]; then - echo "ERROR: uploaded dump not found at s3://${BUCKET}/${S3_KEY}" - exit 1 - fi - - sleep 1 - ATTEMPT=$((ATTEMPT + 1)) -done - -echo "downloading from s3..." -aws s3 cp "s3://${BUCKET}/${S3_KEY}" "${OUTPUT}" --region ${AWS_REGION} || { - echo "ERROR: failed to download dump from s3" - exit 1 -} - -echo "cleaning up s3..." -aws s3 rm "s3://${BUCKET}/${S3_KEY}" --region ${AWS_REGION} 2>/dev/null - -echo "" -echo "dump saved to ${OUTPUT}" -echo "restore with: pg_restore --no-owner --disable-triggers -d ${OUTPUT}" -``` - diff --git a/infrastructure/nginx/Dockerfile b/infrastructure/nginx/Dockerfile deleted file mode 100644 index 493fc394d1..0000000000 --- a/infrastructure/nginx/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM nginx -COPY default.conf.template /etc/nginx/templates/default.conf.template diff --git a/infrastructure/nginx/README.md b/infrastructure/nginx/README.md deleted file mode 100644 index 5c92baab01..0000000000 --- a/infrastructure/nginx/README.md +++ /dev/null @@ -1,62 +0,0 @@ -# Nginx sidecar for pubpub v7 - -This simple container runs nginx, listening on a port (typically 8080), and forwarding -all traffic to another host (typically 127.0.0.1:). In ECS, all containers -in the same task are hosted on the same network interface and therefore have the same IP. - -The specific reason this container is needed in Pubpub-v7 is that: - -1. we have one DNS name that serves the whole application, which is backed by multiple ECS containers. -2. these containers are routed to based on path prefixes. -3. the container code, served by Next.js, is not itself aware of these path prefixes, so expect requests at `/`. -4. ALBs support path-based routing, but does not modify the requests. - -So we introduce nginx as a mediator to strip out the path prefixes. - -### Quirks - -The nginx configuration in this directory is automatically templated in by nginx because -of where it lives in `templates` directory -- you can run this container and look for the -`include` directive in the default `/etc/nginx/nginx.conf`. - -The syntax of rewrite rules is nuanced. Some subtleties, such as the slash in `/$1`, are -required for edge cases like when the path prefix is exactly `/`. - -#### /legacy_healthcheck - -The `/legacy_healthcheck` path is present to prevent ALB healthchecks, which can't be turned -off, from killing containers if we have not yet written a healthcheck endpoint. Generally, -we should implement a real, no-auth healthcheck endpoint that meaningfully indicates health -and serve it at `/healthcheck` in application code, so it is handled by the `$NGINX_PREFIX` -location block. - -### Building & change management - -This container is not built automatically since it changes so rarely. Unlike the other -services defined in this repo, the tasks are configured to refer to `latest` of this image. - -The following commands are captured in the [`maskfile.md`](../maskfile.md) infrastructure -control convenience. - -If you need to update it but don't want to set up more automation, you can run this: - -```bash -AWS_REGION=us-east-1 # set region -AWS_ACCOUNT=$( - aws sts get-caller-identity \ - --query Account \ - --output text -) -AWS_REGISTRY=$AWS_ACCOUNT.dkr.ecr.$AWS_REGION.amazonaws.com - -# may need to sign in to ECR on your workstation -aws ecr get-login-password \ - --region $AWS_REGION \ - | docker login \ - --username AWS \ - --password-stdin \ - $AWS_REGISTRY - -docker build --platform linux/amd64 -t $AWS_REGISTRY/nginx:latest . # path to this directory -docker push $AWS_REGISTRY/nginx:latest -``` diff --git a/infrastructure/nginx/default.conf.template b/infrastructure/nginx/default.conf.template deleted file mode 100644 index 69bead6bec..0000000000 --- a/infrastructure/nginx/default.conf.template +++ /dev/null @@ -1,22 +0,0 @@ -upstream nextjs { - server ${NGINX_UPSTREAM_HOST}:${NGINX_UPSTREAM_PORT}; -} - -server { - listen ${NGINX_LISTEN_PORT}; - server_name _; - client_max_body_size 100m; - - location / { - proxy_pass $scheme://nextjs; - - proxy_set_header Host $host; - proxy_set_header X-Forwarded-Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Real-IP $remote_addr; - } - - location /legacy_healthcheck { - return 200; - } -} diff --git a/infrastructure/terraform/.gitignore b/infrastructure/terraform/.gitignore deleted file mode 100644 index 9bad183c45..0000000000 --- a/infrastructure/terraform/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -**/*.tfstate -**/*.tfstate.* -**/.terraform -**/secrets.tfvars diff --git a/infrastructure/terraform/README.md b/infrastructure/terraform/README.md deleted file mode 100644 index c0f1bea94b..0000000000 --- a/infrastructure/terraform/README.md +++ /dev/null @@ -1,84 +0,0 @@ -# ECS Cluster Environment - -## Dependencies - -### State file bucket/config - -You must have some way of storing terraform state files. -We use and recommend the s3 backend, but you can change -that configuration. See `./environments` for examples of -configuring backend. - -We store our terraform state in an S3 bucket created by -the `./environments/global_aws` directory, which has an -interactive setup, see that readme for more info. - -## Change management and workflows - -This code is here to make infrastructure declarative rather than imperative. -It secondarily includes modularization to make it hard for configuration to drift -between preproduction / production or open source deployments. -These are two separate concerns. - -Declarative code changes are still managed imperatively with `terraform apply`, -which can be made partially or fully automatic. - -In general, production changes are applied manually after we are satisfied with -preproduction, which may or may not be automatic. Developers should expect a flow like: - -1. make a change to a shared module code -2. make matching change to configuration in ALL environment directories, so they can be reviewed together -3. apply this new SHA to staging and do validation as desired -4. apply this same SHA to production. - -Now there is no drift between code, staging, and production - we are converged. - -## Rollbacks - -Generally, rollbacks are done in emergencies and are done first in prod. (If done first in staging, this is -really no different a process than a roll-forward). Rollbacks are the only situation in which we should expect -to deploy production from an off-main branch. Changes may be infrastructure or code. In the infrastructure workflow: - -1. make changes to terraform code that seems to fix the issue and apply it to production -2. if it resolves the issue, figure out how it needs to be applied to pre-prod for consistency and open a PR -3. when this PR is merged, it deploys to pre-prod and we are converged. - -In general, code rollbacks can be done without a re-build, by deploying an old SHA, but it is preferable -if there is time, to do a revert & roll-forward flow, -because some operations (primarily database migrations) operate on assumptions of monotonic time. Additionally -this flow makes it easier for rollbacks to include reverts of specific changes in the middle of the commit history -without reverting everything more recent. - -## Adding/updating variables and configuration - -Variables are the things that distinguish one environment from another. These include container variables and -certain extra values such as infrastructure scaling / footprint parameters. There is a tradeoff between ease -of configuration change and strength of guarantees given by similarity between staging and prod. First decide if -your change should be applied identically to each environment, or warrants an increase in drift. - -To add a variable, modify some terraform resource that depends on it and then thread your way back up. The most -common case will be to add an environment variable to a container so will use that as example here: - -1. modify `modules/deployment/main.tf` to add a variable to the appropriate invocation of `container-generic`. -1. modify `modules/deployment/variables.tf` to add the variable declaration. (This step is not needed if your new env var can be computed based on changes to the upstream infrastructure, such as a database URL.) -1. modify each invocation in `environments/*/main.tf` to add this new variable. - -Proceed as above. Note that changes to task definitions (which include container configs) are not actually applied until you then trigger a new `deploy` using `act`/`mask` or the Github console. - -## Adding secrets - -Secrets are a special variety of environment variable, whose process is just like the above but with an extra step after `terraform apply` and before `mask ecs deploy`: - -To provide secrets to ECS containers, you should put them in AWS Secrets Manager. -To do this, replicate the setup in `modules/core-services/main.tf`: create a resource -that declares the existence of the secret. Since the purpose of this model is to -avoid having copies of the secrets exist anywhere persistently except the single -locked-down place, naturally the secret value itself (the "version") can't be passed through terraform. - -So you must one-time only, or when changing the secret, - -1. go to the AWS Secrets Manager console -2. and choose your new secret -3. select "Retrieve secret value" (unintuitive, because there is no value yet) -4. Console says "Value does not yet exist" and button you just clicked becomes "Set secret value". -5. Probably, paste your secret in the "plain text" box (you can also do key-value pairs, but then must use the key in the address when retrieving.) diff --git a/infrastructure/terraform/environments/blake/.terraform.lock.hcl b/infrastructure/terraform/environments/blake/.terraform.lock.hcl deleted file mode 100644 index e390b3c19d..0000000000 --- a/infrastructure/terraform/environments/blake/.terraform.lock.hcl +++ /dev/null @@ -1,47 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/aws" { - version = "5.70.0" - constraints = ">= 5.0.0" - hashes = [ - "h1:kcKscQCmMLrNMAkaL4XIqGGq4uk8vXthNRvtfersNH0=", - "zh:09cbec93c324e6f03a866244ecb2bae71fdf1f5d3d981e858b745c90606b6b6d", - "zh:19685d9f4c9ddcfa476a9a428c6c612be4a1b4e8e1198fbcbb76436b735284ee", - "zh:3358ee6a2b24c982b7c83fac0af6898644d1bbdabf9c4e0589e91e427641ba88", - "zh:34f9f2936de7384f8ed887abdbcb54aea1ce7b0cf2e85243a3fd3904d024747f", - "zh:4a99546cc2140304c90d9ccb9db01589d4145863605a0fcd90027a643ea3ec5d", - "zh:4da32fec0e10dab5aa3dea3c9fe57adc973cc73a71f5d59da3f65d85d925dc3f", - "zh:659cf94522bc38ce0af70f7b0371b2941a0e0bcad02d17c1a7b264575fe07224", - "zh:6f1c172c9b98bc86e4f0526872098ee3246c2620f7b323ce0c2ce6427987f7d2", - "zh:79bf8fb8f37c308742e287694a9de081ff8502b065a390d1bcfbd241b4eca203", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:b7a5e1dfd9e179d70a169ddd4db44b56da90309060e27d36b329fe5fb3528e29", - "zh:c2cc728cb18ffd5c4814a10c203452c71f5ab0c46d68f9aa9183183fa60afd87", - "zh:c89bb37d2b8947c9a0d62b0b86ace51542f3327970f4e56a68bf81d9d0b8b65b", - "zh:ef2a61e8112c3b5e70095508aadaadf077e904b62b9cfc22030337f773bba041", - "zh:f714550b858d141ea88579f25247bda2a5ba461337975e77daceaf0bb7a9c358", - ] -} - -provider "registry.terraform.io/honeycombio/honeycombio" { - version = "0.27.1" - constraints = ">= 0.22.0" - hashes = [ - "h1:2T/JgeekYNwS4oXjdzduRZBcCR9lpuU/1Wo/kG4YcUA=", - "zh:09be7a66f926202a976cce5eb5fd4770aaa8202c5f4cd3611fb34288c2a3d0f5", - "zh:128a522a0a991674b80dbc66e3859b56fd1590ecf63a2cf6323d04d8212175b9", - "zh:18869e171aeacb7db79ba06d284ce017e4bd5afaf3baa0171a66c279cf6a2b7f", - "zh:228aa0524c4a66ef6ebcca4103aee769d3d338fc01120180d01969c88bdaaf2b", - "zh:3dfea9f01cf9fb9853573b131229eb0894831e90807e57d86538afb8648486c1", - "zh:432e8d712b73c9cc03a55e7495f92ba302c71655ba38e22d1dfe32db8526384a", - "zh:58f737a09add7ef9f84abbc531c4ca92ba96fdd2cafa063214ff1cb5a48158d2", - "zh:6b9b7042a8e16d7b4dcc9ad0e6ca1d52af419da0422036da70a60520c1323018", - "zh:93d73245f15ac5ea3fe815e1b267f8a6ed4938c9aa450db18e906c44da743e5c", - "zh:95da88c87605ac65eceedc1c0975d42bd56c3552da9d6ec60b60889d1378ebd7", - "zh:9c26856ba26a99bc3ca29ec33e18737f0cdf74fcf7580bbdee573971710204bb", - "zh:aa1c9831880e7c1fb1285bf9ef5c3c89ec977ce9342fe5bc79df4f641ca475d6", - "zh:bbb1d5368c0e575afe870838aa6358fda13555ceebe5239f8a5fd6b305f5a1fd", - "zh:c443152c32660d80da960257166b3fd8bb6d0c0154b4e16d01d2360e6588c9b2", - ] -} diff --git a/infrastructure/terraform/environments/blake/main.tf b/infrastructure/terraform/environments/blake/main.tf deleted file mode 100644 index a67474ab12..0000000000 --- a/infrastructure/terraform/environments/blake/main.tf +++ /dev/null @@ -1,65 +0,0 @@ -###### -## -## Terraform-meta configurations -## -###### - -terraform { - required_version = ">= 1.5.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0" - } - - honeycombio = { - source = "honeycombio/honeycombio" - version = ">= 0.22.0" - } - } - backend "s3" { - bucket = "pubpub-tfstates" - key = "ecs-blake.tfstate" - region = "us-east-1" - } -} - -provider "aws" { - region = local.region -} - -###### -## -## Environment-specific configuration -## -###### - -locals { - name = "blake" - environment = "staging" - region = "us-east-1" - - pubpub_hostname = "blake.duqduq.org" - site_builder_hostname = "bob.duqduq.org" # get it, like the builder - - route53_zone_id = "Z059164612717GL8VGM95" - ecr_repository_urls = { - core = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-core" - jobs = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-jobs" - nginx = "246372085946.dkr.ecr.us-east-1.amazonaws.com/nginx" - root = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7" - site_builder = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-site-builder" - } - - MAILGUN_SMTP_USERNAME = "v7@mg.pubpub.org" - ASSETS_BUCKET_NAME = "assets.blake.pubpub.org" - HOSTNAME = "0.0.0.0" - DATACITE_API_URL = "https://api.test.datacite.org" -} - - -###### -## -## Complete generic environment -## -###### diff --git a/infrastructure/terraform/environments/cloudflare/.terraform.lock.hcl b/infrastructure/terraform/environments/cloudflare/.terraform.lock.hcl deleted file mode 100644 index 35b9288d6d..0000000000 --- a/infrastructure/terraform/environments/cloudflare/.terraform.lock.hcl +++ /dev/null @@ -1,48 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/cloudflare/cloudflare" { - version = "4.30.0" - constraints = "~> 4.0" - hashes = [ - "h1:FhhTF09/BBk37akGLFx9/uWkGUGwSNRub8vP80TaF7Q=", - "zh:218d1948b59e3d2e3af082724a0d057bcca5a5643c5e7c3b85eefc02430edd6b", - "zh:24eb677bc1b205565efb5c0d1c464f63d1e240aac61f5b2ef15165fe842cb7e2", - "zh:27896ed2a4f05f6a46ef25e674e445e89bd4bfba8cddbe95940109c6dc3179cc", - "zh:38b3b8297a9650b0ed09d57e0d802f5d851062bdadf72825652232c9a67346ac", - "zh:58d49ec9f414d0ff71e94cc991e1e3e33a13502ce0fea1393edd1297d0877bab", - "zh:5ed92c556e72cc4ea7fdf6db9e0dd7b093d179e26f2d2989b21a004a6402f2ae", - "zh:71f5c64702a7b2102f6d5edfd767953cd5b1248093c05983b909de06cf0c40cc", - "zh:788a023967db63b8eda9c0415851a743daf4073bab66b0bd1204bccbb54c9f8f", - "zh:7b9cd30355b4f63941284998167c3f3e5d208685e5176928275436de012f62d2", - "zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f", - "zh:923ec04258fde407f0fce80488268f4277ffac68fb7240eee4f4373a344c5469", - "zh:97473bdb848a7f77832fde6d0e68877bdcc17bf47ae3639fb09e1aeff4a92a01", - "zh:9b8754d8f7c15878ecb8897a6ffc4e9ec95f4e5f0560f4129af82a8200e602ea", - "zh:b890723ed524d34e7fbee6c119714be23e1783b82441ce4c18871c9d54f10cbd", - "zh:c75e0e5f406653c9b4928d97a38410ad7bb20d48e260c17ae3125a77b0457bf5", - ] -} - -provider "registry.terraform.io/hashicorp/aws" { - version = "5.33.0" - constraints = ">= 2.0.0" - hashes = [ - "h1:kPm7PkwHh6tZ74pUj5C/QRPtauxdnzrEG2yhCJla/4o=", - "zh:10bb683f2a9306e881f51a971ad3b2bb654ac94b54945dd63769876a343b5b04", - "zh:3916406db958d5487ea0c2d2320012d1907c29e6d01bf693560fe05e38ee0601", - "zh:3cb54b76b2f9e30620f3281ab7fb20633b1e4584fc84cc4ecd5752546252e86f", - "zh:513bcfd6971482215c5d64725189f875cbcbd260c6d11f0da4d66321efd93a92", - "zh:545a34427ebe7a950056627e7c980c9ba16318bf086d300eb808ffc41c52b7a8", - "zh:5a44b90faf1c8e8269f389c04bfac25ad4766d26360e7f7ac371be12a442981c", - "zh:64e1ef83162f78538dccad8b035577738851395ba774d6919cb21eb465a21e3a", - "zh:7315c70cb6b7f975471ea6129474639a08c58c071afc95a36cfaa41a13ae7fb9", - "zh:9806faae58938d638b757f54414400be998dddb45edfd4a29c85e827111dc93d", - "zh:997fa2e2db242354d9f772fba7eb17bd6d18d28480291dd93f85a18ca0a67ac2", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9f9e076b7e9752971f39eead6eda69df1c5e890c82ba2ca95f56974af7adfe79", - "zh:b1d6af047f96de7f97d38b685654f1aed4356d5060b0e696d87d0270f5d49f75", - "zh:bfb0654b6f34398aeffdf907b744af06733d168db610a2c5747263380f817ac7", - "zh:e25203ee8cedccf60bf450950d533d3c172509bda8af97dbc3bc817d2a503c57", - ] -} diff --git a/infrastructure/terraform/environments/cloudflare/README.md b/infrastructure/terraform/environments/cloudflare/README.md deleted file mode 100644 index 08f6b97774..0000000000 --- a/infrastructure/terraform/environments/cloudflare/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Global Cloudflare configuration - -This module should generally be created by an admin, -and assumees the following permissions which are sensitive: - -**Cloudflare read-write token** set at `CLOUDFLARE_API_TOKEN`. In general, this -secret can be used for very nefarious things and should be extra sensitively protected. - -**AWS read-write permissions**: in `~/.aws/credentials`. see `../maskfile.md` for more info. - -## Relationship to AWS environments - -AWS environments assume existence of the Route53 zone and DNS NS records that refer authority -to that zone. If you are not using Cloudflare this module is not needed for those environments, -but in general to create a new env it is expected to augment this module with NS records referring -to this route53 configuration for domains subordinate to that new AWS env. - -Therefore updates to this module, which should happen very infrequently, should be applied before -you attempt to create the new AWS-ECS environment, otherwise that will fail due to the AWS Certificate -Manager being unsuccessful in validating your ownership of the DNS. diff --git a/infrastructure/terraform/environments/cloudflare/main.tf b/infrastructure/terraform/environments/cloudflare/main.tf deleted file mode 100644 index fbf961f720..0000000000 --- a/infrastructure/terraform/environments/cloudflare/main.tf +++ /dev/null @@ -1,64 +0,0 @@ -# aws terraform provider config - -terraform { - required_version = ">= 1.5.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 6.0" - } - - cloudflare = { - source = "cloudflare/cloudflare" - version = "~> 4.0" - } - } - backend "s3" { - bucket = "pubpub-tfstates" - key = "cloudflare.tfstate" - region = "us-east-1" - } -} - - -provider "aws" { - region = "us-east-1" -} - -###### -# -## Configuration of routing from Cloudflare to Route53. -# -###### - -locals { - duqduq_domain = "duqduq.org" - pubpub_domain = "pubpub.org" -} - -data "cloudflare_zone" "duqduq" { - name = local.duqduq_domain -} - -resource "aws_route53_zone" "duqduq" { - name = local.duqduq_domain -} - -# do this for all subdomains of duqduq that need to be NS'd to v7 -data "cloudflare_zone" "pubpub" { - name = local.pubpub_domain -} - -resource "aws_route53_zone" "pubpub" { - name = local.pubpub_domain -} -resource "cloudflare_record" "ns_pubpub" { - for_each = toset(["0", "1", "2", "3"]) - type = "NS" - - zone_id = data.cloudflare_zone.pubpub.id - - name = "app.${local.pubpub_domain}" - - value = aws_route53_zone.pubpub.name_servers[tonumber(each.key)] -} diff --git a/infrastructure/terraform/environments/cloudflare/outputs.tf b/infrastructure/terraform/environments/cloudflare/outputs.tf deleted file mode 100644 index df4a0eaa4f..0000000000 --- a/infrastructure/terraform/environments/cloudflare/outputs.tf +++ /dev/null @@ -1,6 +0,0 @@ -output "route53_zones" { - value = { - "pubpub.org" = aws_route53_zone.pubpub.zone_id - "duqduq.org" = aws_route53_zone.duqduq.zone_id - } -} diff --git a/infrastructure/terraform/environments/global_aws/.terraform.lock.hcl b/infrastructure/terraform/environments/global_aws/.terraform.lock.hcl deleted file mode 100644 index 35b9288d6d..0000000000 --- a/infrastructure/terraform/environments/global_aws/.terraform.lock.hcl +++ /dev/null @@ -1,48 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/cloudflare/cloudflare" { - version = "4.30.0" - constraints = "~> 4.0" - hashes = [ - "h1:FhhTF09/BBk37akGLFx9/uWkGUGwSNRub8vP80TaF7Q=", - "zh:218d1948b59e3d2e3af082724a0d057bcca5a5643c5e7c3b85eefc02430edd6b", - "zh:24eb677bc1b205565efb5c0d1c464f63d1e240aac61f5b2ef15165fe842cb7e2", - "zh:27896ed2a4f05f6a46ef25e674e445e89bd4bfba8cddbe95940109c6dc3179cc", - "zh:38b3b8297a9650b0ed09d57e0d802f5d851062bdadf72825652232c9a67346ac", - "zh:58d49ec9f414d0ff71e94cc991e1e3e33a13502ce0fea1393edd1297d0877bab", - "zh:5ed92c556e72cc4ea7fdf6db9e0dd7b093d179e26f2d2989b21a004a6402f2ae", - "zh:71f5c64702a7b2102f6d5edfd767953cd5b1248093c05983b909de06cf0c40cc", - "zh:788a023967db63b8eda9c0415851a743daf4073bab66b0bd1204bccbb54c9f8f", - "zh:7b9cd30355b4f63941284998167c3f3e5d208685e5176928275436de012f62d2", - "zh:890df766e9b839623b1f0437355032a3c006226a6c200cd911e15ee1a9014e9f", - "zh:923ec04258fde407f0fce80488268f4277ffac68fb7240eee4f4373a344c5469", - "zh:97473bdb848a7f77832fde6d0e68877bdcc17bf47ae3639fb09e1aeff4a92a01", - "zh:9b8754d8f7c15878ecb8897a6ffc4e9ec95f4e5f0560f4129af82a8200e602ea", - "zh:b890723ed524d34e7fbee6c119714be23e1783b82441ce4c18871c9d54f10cbd", - "zh:c75e0e5f406653c9b4928d97a38410ad7bb20d48e260c17ae3125a77b0457bf5", - ] -} - -provider "registry.terraform.io/hashicorp/aws" { - version = "5.33.0" - constraints = ">= 2.0.0" - hashes = [ - "h1:kPm7PkwHh6tZ74pUj5C/QRPtauxdnzrEG2yhCJla/4o=", - "zh:10bb683f2a9306e881f51a971ad3b2bb654ac94b54945dd63769876a343b5b04", - "zh:3916406db958d5487ea0c2d2320012d1907c29e6d01bf693560fe05e38ee0601", - "zh:3cb54b76b2f9e30620f3281ab7fb20633b1e4584fc84cc4ecd5752546252e86f", - "zh:513bcfd6971482215c5d64725189f875cbcbd260c6d11f0da4d66321efd93a92", - "zh:545a34427ebe7a950056627e7c980c9ba16318bf086d300eb808ffc41c52b7a8", - "zh:5a44b90faf1c8e8269f389c04bfac25ad4766d26360e7f7ac371be12a442981c", - "zh:64e1ef83162f78538dccad8b035577738851395ba774d6919cb21eb465a21e3a", - "zh:7315c70cb6b7f975471ea6129474639a08c58c071afc95a36cfaa41a13ae7fb9", - "zh:9806faae58938d638b757f54414400be998dddb45edfd4a29c85e827111dc93d", - "zh:997fa2e2db242354d9f772fba7eb17bd6d18d28480291dd93f85a18ca0a67ac2", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9f9e076b7e9752971f39eead6eda69df1c5e890c82ba2ca95f56974af7adfe79", - "zh:b1d6af047f96de7f97d38b685654f1aed4356d5060b0e696d87d0270f5d49f75", - "zh:bfb0654b6f34398aeffdf907b744af06733d168db610a2c5747263380f817ac7", - "zh:e25203ee8cedccf60bf450950d533d3c172509bda8af97dbc3bc817d2a503c57", - ] -} diff --git a/infrastructure/terraform/environments/global_aws/README.md b/infrastructure/terraform/environments/global_aws/README.md deleted file mode 100644 index 7b15bfdb87..0000000000 --- a/infrastructure/terraform/environments/global_aws/README.md +++ /dev/null @@ -1,17 +0,0 @@ -# Global configurations - -This module should generally be created by an admin, -and not applied or updated by a machine user. - -## Creation of the terraform state bucket - -1. Uncomment the code creating this bucket; comment the backend block -1. terraform init -1. Set the bucket name -1. terraform apply -1. `terraform state rm aws_s3_bucket.terraform_state` -1. comment the bucket definition; uncomment the backend block -1. terraform init ("yes" to copying the state file) -1. destroy local copies of the state file - -This bucket name can now be in your s3.tfbackend files everywhere. diff --git a/infrastructure/terraform/environments/global_aws/github_actions_iam.tf b/infrastructure/terraform/environments/global_aws/github_actions_iam.tf deleted file mode 100644 index 8391ee9cb9..0000000000 --- a/infrastructure/terraform/environments/global_aws/github_actions_iam.tf +++ /dev/null @@ -1,159 +0,0 @@ -# iam user for Github Actions - -resource "aws_iam_user" "github_actions" { - name = "github_actions" - path = "/" -} - -resource "aws_iam_access_key" "github_actions" { - user = aws_iam_user.github_actions.name -} - -resource "aws_iam_policy" "lightsail" { - name = "lightsail" - policy = jsonencode({ - Version: "2012-10-17", - Statement: [ - { - Effect: "Allow", - Action: [ - "lightsail:*" - ], - Resource: "*" - } - ] - }) -} - -resource "aws_iam_policy" "ecr" { - name = "ECRAdmin" - policy = jsonencode({ - Version : "2012-10-17", - Statement : [ - { - Sid : "EcrAdmin", - Effect : "Allow", - Action : [ - "ecr:*" - ], - Resource : [ - "*" - ] - } - ] - }) -} - -// iam policy to allow aws ecs update-service -resource "aws_iam_policy" "ecs" { - name = "ECSUpdateService" - policy = jsonencode({ - Version : "2012-10-17", - Statement : [ - { - Sid : "AllowPassRole", - Effect : "Allow", - Action : [ - "iam:PassRole" - ], - Resource : [ - "*" - ] - }, - { - Sid : "EcsUpdateService", - Effect : "Allow", - Action : [ - "ecs:UpdateService", - "ecs:DescribeServices", - "ecs:DescribeClusters", - "ecs:DescribeTaskDefinition", - "ecs:CreateTaskSet", - "ecs:RegisterTaskDefinition", - "ecs:DeleteTaskDefinitions", - "ecs:DeleteService", - "ecs:UpdateServicePrimaryTaskSet", - "ecs:StopTask", - "ecs:StartTask", - "ecs:RunTask", - "ecs:CreateService", - "ecs:DescribeTasks", - "ecs:ListServices", - "ecs:ListTaskDefinitions", - ], - Resource : [ - "*" - ] - } - ] - }) -} - -// read access to all the secrets that github actions needs -resource "aws_iam_policy" "github_actions_secrets" { - name = "GithubActionsSecrets" - policy = jsonencode({ - Version : "2012-10-17", - Statement : [ - { - Effect : "Allow", - Action : [ - "secretsmanager:GetSecretValue" - ], - Resource : [ - # necessary to set during build in order to upload source maps to sentry - "arn:aws:secretsmanager:*:*:secret:sentry-auth-token-*" - ] - } - ] - }) -} - -resource "aws_iam_role" "github_actions_role" { - name = "github_actions_role" - - # Terraform's "jsonencode" function converts a - # Terraform expression result to valid JSON syntax. - assume_role_policy = jsonencode({ - Version = "2012-10-17" - Statement = [ - { - Action = [ - "sts:AssumeRole", - "sts:TagSession", // specifically used by AWS provided GH action modules - ] - Effect = "Allow" - Principal = { - AWS = [aws_iam_user.github_actions.arn] - } - }, - ] - }) -} - -resource "aws_iam_role_policy_attachment" "gha_attach_ecr" { - role = aws_iam_role.github_actions_role.name - policy_arn = aws_iam_policy.ecr.arn -} - -resource "aws_iam_role_policy_attachment" "gha_attach_ecs" { - role = aws_iam_role.github_actions_role.name - policy_arn = aws_iam_policy.ecs.arn -} - -resource "aws_iam_role_policy_attachment" "gha_attach_secrets" { - role = aws_iam_role.github_actions_role.name - policy_arn = aws_iam_policy.github_actions_secrets.arn -} - -// TODO: create a new user for pullpreview and remove both user policy attachments below - -resource "aws_iam_user_policy_attachment" "gha_user_attach_lightsail" { - user = aws_iam_user.github_actions.name - policy_arn = aws_iam_policy.lightsail.arn -} - -resource "aws_iam_user_policy_attachment" "gha_user_attach_ecr" { - user = aws_iam_user.github_actions.name - policy_arn = aws_iam_policy.ecr.arn -} diff --git a/infrastructure/terraform/environments/global_aws/main.tf b/infrastructure/terraform/environments/global_aws/main.tf deleted file mode 100644 index a9546b8c9c..0000000000 --- a/infrastructure/terraform/environments/global_aws/main.tf +++ /dev/null @@ -1,47 +0,0 @@ -# aws terraform provider config - -terraform { - required_version = ">= 1.5.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 2.0" - } - - cloudflare = { - source = "cloudflare/cloudflare" - version = "~> 4.0" - } - } - backend "s3" { - bucket = "pubpub-tfstates" - key = "global.tfstate" - region = "us-east-1" - } -} - - -provider "aws" { - region = "us-east-1" -} - -## s3 bucket for terraform state -# -# This resource was created using terraform with these fields. -# However, it is dangerous to manage terraform state files in -# a bucket that is itself Terraform-configured. -# -# it has been removed with `terraform state rm`, but this -# declaration is left here for posterity. -# -# resource "aws_s3_bucket" "terraform_state" { -# bucket = "pubpub-tfstates" -# acl = "private" -# versioning { -# enabled = true -# } -# } - -module "ecr_repositories" { - source = "../../modules/ecr-repositories" -} diff --git a/infrastructure/terraform/environments/global_aws/outputs.tf b/infrastructure/terraform/environments/global_aws/outputs.tf deleted file mode 100644 index 96a23d8ee1..0000000000 --- a/infrastructure/terraform/environments/global_aws/outputs.tf +++ /dev/null @@ -1,20 +0,0 @@ -# if resources are needed in an environment's inputs, -# then you can use terraform_remote_state to get this module's output - -# put these creds in github actions secrets config -output "github_actions_user_credential" { - value = { - id = aws_iam_access_key.github_actions.id - secret = aws_iam_access_key.github_actions.secret - } - - # prevents this secret value from appearing accidentally - # NOTE - it is still saved in the state file. - sensitive = true -} - -# Provide this value to github actions -output "github_actions_role_to_assume_arn" { - value = aws_iam_role.github_actions_role.arn -} - diff --git a/infrastructure/terraform/environments/stevie/.terraform.lock.hcl b/infrastructure/terraform/environments/stevie/.terraform.lock.hcl deleted file mode 100644 index 9e5f20d1e7..0000000000 --- a/infrastructure/terraform/environments/stevie/.terraform.lock.hcl +++ /dev/null @@ -1,66 +0,0 @@ -# This file is maintained automatically by "terraform init". -# Manual edits may be lost in future updates. - -provider "registry.terraform.io/hashicorp/aws" { - version = "5.100.0" - constraints = ">= 4.0.0, >= 4.40.0, >= 4.66.1, >= 5.0.0, ~> 5.0, >= 5.83.0" - hashes = [ - "h1:Ijt7pOlB7Tr7maGQIqtsLFbl7pSMIj06TVdkoSBcYOw=", - "zh:054b8dd49f0549c9a7cc27d159e45327b7b65cf404da5e5a20da154b90b8a644", - "zh:0b97bf8d5e03d15d83cc40b0530a1f84b459354939ba6f135a0086c20ebbe6b2", - "zh:1589a2266af699cbd5d80737a0fe02e54ec9cf2ca54e7e00ac51c7359056f274", - "zh:6330766f1d85f01ae6ea90d1b214b8b74cc8c1badc4696b165b36ddd4cc15f7b", - "zh:7c8c2e30d8e55291b86fcb64bdf6c25489d538688545eb48fd74ad622e5d3862", - "zh:99b1003bd9bd32ee323544da897148f46a527f622dc3971af63ea3e251596342", - "zh:9b12af85486a96aedd8d7984b0ff811a4b42e3d88dad1a3fb4c0b580d04fa425", - "zh:9f8b909d3ec50ade83c8062290378b1ec553edef6a447c56dadc01a99f4eaa93", - "zh:aaef921ff9aabaf8b1869a86d692ebd24fbd4e12c21205034bb679b9caf883a2", - "zh:ac882313207aba00dd5a76dbd572a0ddc818bb9cbf5c9d61b28fe30efaec951e", - "zh:bb64e8aff37becab373a1a0cc1080990785304141af42ed6aa3dd4913b000421", - "zh:dfe495f6621df5540d9c92ad40b8067376350b005c637ea6efac5dc15028add4", - "zh:f0ddf0eaf052766cfe09dea8200a946519f653c384ab4336e2a4a64fdd6310e9", - "zh:f1b7e684f4c7ae1eed272b6de7d2049bb87a0275cb04dbb7cda6636f600699c9", - "zh:ff461571e3f233699bf690db319dfe46aec75e58726636a0d97dd9ac6e32fb70", - ] -} - -provider "registry.terraform.io/hashicorp/random" { - version = "3.7.2" - hashes = [ - "h1:KG4NuIBl1mRWU0KD/BGfCi1YN/j3F7H4YgeeM7iSdNs=", - "zh:14829603a32e4bc4d05062f059e545a91e27ff033756b48afbae6b3c835f508f", - "zh:1527fb07d9fea400d70e9e6eb4a2b918d5060d604749b6f1c361518e7da546dc", - "zh:1e86bcd7ebec85ba336b423ba1db046aeaa3c0e5f921039b3f1a6fc2f978feab", - "zh:24536dec8bde66753f4b4030b8f3ef43c196d69cccbea1c382d01b222478c7a3", - "zh:29f1786486759fad9b0ce4fdfbbfece9343ad47cd50119045075e05afe49d212", - "zh:4d701e978c2dd8604ba1ce962b047607701e65c078cb22e97171513e9e57491f", - "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", - "zh:7b8434212eef0f8c83f5a90c6d76feaf850f6502b61b53c329e85b3b281cba34", - "zh:ac8a23c212258b7976e1621275e3af7099e7e4a3d4478cf8d5d2a27f3bc3e967", - "zh:b516ca74431f3df4c6cf90ddcdb4042c626e026317a33c53f0b445a3d93b720d", - "zh:dc76e4326aec2490c1600d6871a95e78f9050f9ce427c71707ea412a2f2f1a62", - "zh:eac7b63e86c749c7d48f527671c7aee5b4e26c10be6ad7232d6860167f99dbb0", - ] -} - -provider "registry.terraform.io/honeycombio/honeycombio" { - version = "0.40.1" - constraints = ">= 0.22.0" - hashes = [ - "h1:MTxI2Ut3RVM3Tck1fUCl4cIAG2eLJx1Ic7fqUhAEj2E=", - "zh:0df5bcfb2169344f1049d8af6043ed43ec39c430d3dd09eec58351024d42de26", - "zh:12bf35501a5da78faab3385b370061c4100b7c4c38ca90423113d6707a713cc8", - "zh:13971b47ff96cb679edef089f94df4dc3223173b385683bd76e38e4f21ae293f", - "zh:25b1468ac30d15afb15c10877bc335b81ac5fd0a4e45857f96f7cf104e7e4e08", - "zh:31aadf8db4c7f60aa71e0fbb739d1c379006066f5cde00e22df464ad7ab527e8", - "zh:3c0fa9918c7996490409213df693af791d4b6f919dea55697c719d45f25b4bbc", - "zh:50e08fa7d728e9fa5a37d8c6e0f9b0067803aba810b74111be03ef7060df47d8", - "zh:53ab15db29a2833d1d5b3eec4e93c5635d9c1504efa6a4c61000488d3c64995b", - "zh:6d7983ab0be0dcedbd5a7d21b7a66f23ead32a00c3492ca7474c2d172b35f6dd", - "zh:7adb2327505e5ddaaaeb927e6de23a91a763efc67e4db5556d12e33d77348599", - "zh:add36efbe9c182149f932a77ccaa8cec46edb2ce9095aa3b735ceba8bfd07738", - "zh:c3642ea008f2bfe2fb362e941630c34791dc6387b57ffec86fd1061d2eb2f1a6", - "zh:e3c74be8effb30f740d7795ac0fe2194e410bc3274ebbc81653c8d14fbd0b0c2", - "zh:e447c171225f79d5cdf284d9112c5df4d77d7fec038a251757dc69379e82f943", - ] -} diff --git a/infrastructure/terraform/environments/stevie/main.tf b/infrastructure/terraform/environments/stevie/main.tf deleted file mode 100644 index 109e762be7..0000000000 --- a/infrastructure/terraform/environments/stevie/main.tf +++ /dev/null @@ -1,83 +0,0 @@ -###### -## -## Terraform-meta configurations -## -###### - -terraform { - required_version = ">= 1.5.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0" - } - - honeycombio = { - source = "honeycombio/honeycombio" - version = ">= 0.22.0" - } - } - backend "s3" { - bucket = "pubpub-tfstates" - key = "ecs-stevie-PROD.tfstate" - region = "us-east-1" - } -} - -provider "aws" { - region = local.region -} - -###### -## -## Environment-specific configuration -## -###### - -locals { - name = "stevie" - environment = "production" - region = "us-east-1" - - pubpub_hostname = "app.pubpub.org" - site_builder_hostname = "bob.pubpub.org" # get it, like the builder - - route53_zone_id = "Z00255803PJ09HVWNKPVY" - ecr_repository_urls = { - core = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-core" - jobs = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-jobs" - nginx = "246372085946.dkr.ecr.us-east-1.amazonaws.com/nginx" - root = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7" - site_builder = "246372085946.dkr.ecr.us-east-1.amazonaws.com/pubpub-v7-site-builder" - } - - MAILGUN_SMTP_USERNAME = "v7@mg.pubpub.org" - ASSETS_BUCKET_NAME = "assets.app.pubpub.org" - HOSTNAME = "0.0.0.0" - DATACITE_API_URL = "https://api.datacite.org" -} - - -###### -## -## Complete generic environment -## -###### - -module "deployment" { - source = "../../modules/deployment" - - name = local.name - environment = local.environment - region = local.region - - pubpub_hostname = local.pubpub_hostname - site_builder_hostname = local.site_builder_hostname - route53_zone_id = local.route53_zone_id - ecr_repository_urls = local.ecr_repository_urls - - MAILGUN_SMTP_USERNAME = local.MAILGUN_SMTP_USERNAME - ASSETS_BUCKET_NAME = local.ASSETS_BUCKET_NAME - HOSTNAME = local.HOSTNAME - DATACITE_API_URL = local.DATACITE_API_URL -} diff --git a/infrastructure/terraform/modules/container-generic/README.md b/infrastructure/terraform/modules/container-generic/README.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/infrastructure/terraform/modules/container-generic/main.tf b/infrastructure/terraform/modules/container-generic/main.tf deleted file mode 100644 index 11b46c1bff..0000000000 --- a/infrastructure/terraform/modules/container-generic/main.tf +++ /dev/null @@ -1,193 +0,0 @@ -locals { - # null-guard here is annoying but necessary - public = var.listener != null ? var.listener.public : false - - # a shortname for placaes where name lengths are constrained - shortname = substr(sha1(var.service_name), 0, 4) - - # a block to DRY out - log_configuration = { - logDriver = "awslogs", - options = { - awslogs-group = var.cluster_info.cloudwatch_log_group_name, - awslogs-region = var.cluster_info.region, - awslogs-stream-prefix = "ecs" - } - } -} - -module "ecs_service" { - source = "terraform-aws-modules/ecs/aws//modules/service" - version = "~> 5.0" - - name = "${var.cluster_info.name}-${var.service_name}" - - cluster_arn = var.cluster_info.cluster_arn - enable_execute_command = true - - # allow github actions to update the service without confusing TF - ignore_task_definition_changes = false - - cpu = var.resources.cpu - memory = var.resources.memory - desired_count = var.resources.desired_count - # execution_role_arn = aws_iam_role.ecs_task_execution_role.arn - # task_role_arn = aws_iam_role.ecs_task_role.arn - - - - # TEMPLATE Container definition(s). - container_definitions = merge({ - - "${var.service_name}" = { - essential = true - image = "${var.repository_url}:latest" - - # don't open ports unless inbound network is configured - port_mappings = var.listener != null ? [{ - name = var.listener.service_name - protocol = var.listener.protocol - hostPort = var.listener.from_port - containerPort = var.listener.to_port - }] : [] - - restartPolicy = { - enabled = true - restartAttemptPeriod = 60 - } - - # use concat() to add a computible variable - environment = concat( - var.configuration.environment, - [{ name = "OTEL_SERVICE_NAME", value = "${var.service_name}.${var.service_name}" }], - ) - secrets = var.configuration.secrets - - readonly_root_filesystem = false - - # wait for the init containers to finish - # (this behavior is true for migrations, might need to be more - # configurable if we have other init containers later) - dependencies = [for ic in var.init_containers : { - containerName = ic.name - condition = "SUCCESS" - }] - - log_configuration = local.log_configuration - - command = var.command - } - }, - { - for ic in var.init_containers : ic.name => { - essential = false - image = ic.image - command = ic.command - - environment = concat( - var.configuration.environment, - [{ name = "OTEL_SERVICE_NAME", value = "${var.service_name}.${ic.name}" }], - ) - secrets = var.configuration.secrets - - readonly_root_filesystem = false - - log_configuration = local.log_configuration - } - }, - local.public ? { # optional Nginx container - nginx = { - essential = true - image = var.nginx_image - port_mappings = var.listener != null ? [{ - name = "${var.service_name}-nginx" - protocol = "tcp" - hostPort = 8080 - containerPort = 8080 - }] : [] - - environment = [ - { name = "OTEL_SERVICE_NAME", - value = "${var.service_name}.nginx" }, - { name = "NGINX_LISTEN_PORT", - value = "8080" }, - { name = "NGINX_PREFIX", - value = var.listener.path_prefix }, - { name = "NGINX_UPSTREAM_HOST", - # Containers in the same Task share one network interface: - # https://aws.amazon.com/blogs/compute/task-networking-in-aws-fargate/ - value = "127.0.0.1" }, - { name = "NGINX_UPSTREAM_PORT", - value = var.listener.from_port }, - ] - - readonly_root_filesystem = false - - log_configuration = local.log_configuration - } - } : {}) - - load_balancer = local.public ? { - service = { - target_group_arn = aws_lb_target_group.this[0].arn - # note that this is may not match the listener's service name - container_name = "nginx" - container_port = 8080 - } - } : {} - - - subnet_ids = var.cluster_info.private_subnet_ids - security_group_ids = var.cluster_info.container_security_group_ids - # TODO: set this to true to make the outbound traffic non-NAT, aka cheaper but unstable. - assign_public_ip = false - - tags = { - Environment = "${var.cluster_info.name}-${var.cluster_info.environment}" - Project = "Pubpub-v7" - LogicalName = var.service_name - Shortname = local.shortname - ShortnameAnnotation = "Shortname is calculated as first four characters of the sha1sum of the Logical Name." - } -} - -resource "aws_lb_target_group" "this" { - count = local.public ? 1 : 0 - # use shortname here because this string is max 32 chars - name = "${var.cluster_info.name}-${local.shortname}" - port = 80 - protocol = "HTTP" - vpc_id = var.cluster_info.vpc_id - target_type = "ip" - - # this healthcheck is specified on the nginx container - # amd always passes, so is only useful as a fallback - # when the container does not provide a more meaningful - # one. - health_check { - path = coalesce(var.health_check_path, "/legacy_healthcheck") - interval = "5" - protocol = "HTTP" - matcher = "200" - timeout = "2" - unhealthy_threshold = "3" - healthy_threshold = "3" - } -} - -resource "aws_lb_listener_rule" "http" { - count = local.public ? 1 : 0 - listener_arn = var.cluster_info.lb_listener_arn - priority = var.listener.rule_priority - - action { - type = "forward" - target_group_arn = aws_lb_target_group.this[count.index].arn - } - - condition { - path_pattern { - values = ["${var.listener.path_prefix}*"] - } - } -} diff --git a/infrastructure/terraform/modules/container-generic/outputs.tf b/infrastructure/terraform/modules/container-generic/outputs.tf deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/infrastructure/terraform/modules/container-generic/variables.tf b/infrastructure/terraform/modules/container-generic/variables.tf deleted file mode 100644 index 5f2ed802be..0000000000 --- a/infrastructure/terraform/modules/container-generic/variables.tf +++ /dev/null @@ -1,107 +0,0 @@ -variable "cluster_info" { - description = "infrastructure values output from v7-cluster" - - type = object({ - region = string - name = string - vpc_id = string - cluster_arn = string - environment = string - private_subnet_ids = list(string) - container_security_group_ids = list(string) - cloudwatch_log_group_name = string - lb_listener_arn = string - # service_namespace_arn = string - }) -} - -variable "service_name" { - description = "name for this service" -} - -variable "repository_url" { - description = "url to the image repository (excluding tag)" - type = string -} -variable "nginx_image" { - description = "fully qualified nginx image to pull (including tag)" - type = string - default = null -} - -variable "resources" { - description = "resources available to this container service" - type = object({ - cpu = number - memory = number - desired_count = number - }) - - default = { - cpu = 512 - memory = 1024 - desired_count = 1 - } -} - -variable "init_containers" { - description = "list of init container specs to run before starting" - type = list(object({ - name = string - image = string - command = list(string) - })) - default = [] -} - -variable "listener" { - description = "specification of the inbound network addressibility" - default = null - - type = object({ - service_name = string - # whether to expose this to inbound internet traffic - public = bool - # the path prefix for public routes from the ALB hostname - # - MUST end in a slash. - path_prefix = string - # priority, in case this conflicts with other rules. - # lower numbers are evaluated first, so more specific - # should have lowest numbers. - # 100 is a good default when no collision is expected. - rule_priority = number - - from_port = number - to_port = number - protocol = string - }) -} - -variable "configuration" { - description = "Container configuration options" - - type = object({ - - environment = list(object({ - name = string - value = string - })) - secrets = list(object({ - name = string - valueFrom = string - })) - }) -} - -variable "command" { - description = "Command to run when the container starts. Overrides the CMD specified by the Dockerfile" - # Empty array will just run default CMD defined in Dockerfile - default = [] - type = list(string) -} - -variable "health_check_path" { - description = "A path to an endpoint on the container suitable for use as a health check" - type = string - default = null -} diff --git a/infrastructure/terraform/modules/core-services/README.md b/infrastructure/terraform/modules/core-services/README.md deleted file mode 100644 index b918e43d41..0000000000 --- a/infrastructure/terraform/modules/core-services/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# Setup - -In a `main.tf` file for a workspace that needs a cluster, -you can use this module like: - -``` -module "cluster" { - source = "../path/to/this/directory" - // version is disallowed when using path-based modules - - environment = "staging" - region = "us-east-2" - hosted_zone_id = "SOME-ZONE-ID" - // all other variables are optional -} -``` - -then - -``` -terraform init -terraform apply -``` - -You will see these resources under `module.cluster.xyz`. - -## Managing the ECS Task Definition - -Working with ECS task definitions in Terraform -is kind of awkward. - -This module creates an ECS task definition, -so that it can set up the ECS service that uses that task definition, -but expects that future task revisions will be created by a CI pipeline -as new images are created and pushed. -The `deploy_on_merge.yml` has an example of such a pipeline. -In this pipeline, -we get the ECS task definition from a file, -and interpolate the image, -to create a new revision. -Terraform ignores changes -made by the pipeline, -due to the `lifecycle` setting -on the ECS service resource. - -If you make changes to the task definition resource in this module, -and run `terraform apply` in the `ecs-staging` directory, -Terraform will update the task, -but the next time a new commit is pushed to git, -that change will be overwritten -by the definition in the `ecs-staging` directory, -that's used by the pipeline. - -Ideally these definitions would come from the same source -so if you're reading this -perhaps today is the day -to make that refactor! - -More information about the general wonkiness -of managing ECS with Terraform -can be found in [this Terraform issue.](https://github.com/hashicorp/terraform-provider-aws/issues/632) - -## Rotating the RDS Password - -The RDS password is retrieved from AWS Secrets Manager -but that password is managed manually, -and rotating it requires downtime. - -To rotate it, you'll need to perform the following steps: - -- Update the value of the Secrets Manager entry through the AWS console -- Update the value in the RDS instance through the AWS console. (At this point, the core container will stop being able to access the database.) -- Recreate the core container's service with `aws update-service cluster $CLUSTER_NAME --service $SERVICE_NAME --force-new-deployment` - -In the future the RDS should probably [manage its own password](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/rds-secrets-manager.html) -which will probably require changing the service's code -to fetch the password from Secrets Manager itself -rather than getting it passed in from an environment variable. - -## Rotating the ACM Certificate - -ACM issues certs that last for 1 year. They send you an email prior to renewing, but will automatically rotate the cert. - -Since we rely on DNS validation, it is necessary that our validation CNAMEs are present in route53, provided by this module. -The required records MAY not change, but if they have changed behind the scenes, this will catch up our terraform state: - -```bash -# from clean state , no changes to code - -# updates our state file's records of the Domain Validation Options on the cert (DVOs). -terraform apply - -# should show that new DNS records need to be created/updated, matching the DVOs. -terraform plan -out TMP.tfplan -terraform apply TMP.tfplan -``` - -For more info: see [AWS Docs](https://docs.aws.amazon.com/acm/latest/userguide/dns-renewal-validation.html). - -## Development - -When you change the resources in this directory, you must run `terraform apply` in the calling workspace to see changes. - -More info on developing [terraform modules](https://developer.hashicorp.com/terraform/language/modules/develop). diff --git a/infrastructure/terraform/modules/core-services/main.tf b/infrastructure/terraform/modules/core-services/main.tf deleted file mode 100644 index 9160fa4da6..0000000000 --- a/infrastructure/terraform/modules/core-services/main.tf +++ /dev/null @@ -1,329 +0,0 @@ -# aws terraform provider config - -terraform { - required_version = ">= 0.12.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 4.0" - } - } -} - -# Static secrets -resource "random_password" "api_key" { - length = 32 - special = true - override_special = "-_.~!#$&'()*+,/:;=?@[]" -} - -resource "aws_secretsmanager_secret" "api_key" { - name = "api-key-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -resource "aws_secretsmanager_secret_version" "api_key" { - secret_id = aws_secretsmanager_secret.api_key.id - secret_string = random_password.api_key.result -} - -resource "aws_secretsmanager_secret" "honeycomb_api_key" { - name = "honeycombio-apikey-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -resource "aws_secretsmanager_secret" "gcloud_key_file" { - name = "gcloud-key-file-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -resource "aws_secretsmanager_secret" "datacite_repository_id" { - name = "datacite-repository-id-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -resource "aws_secretsmanager_secret" "datacite_password" { - name = "datacite-password-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -# generate password and make it accessible through aws secrets manager -resource "random_password" "rds_db_password" { - length = 16 - special = false -} - -resource "aws_secretsmanager_secret" "rds_db_password" { - name = "rds-db-password-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -resource "aws_secretsmanager_secret_version" "password" { - secret_id = aws_secretsmanager_secret.rds_db_password.id - secret_string = random_password.rds_db_password.result -} - -# network config -resource "aws_db_subnet_group" "ecs_dbs" { - name = "${var.cluster_info.name}_ecs_db_${var.cluster_info.environment}" - subnet_ids = var.cluster_info.private_subnet_ids - - tags = { - Name = "subnet group for ECS RDS instances" - } -} - -resource "aws_security_group" "ecs_tasks_rds_instances" { - name = "${var.cluster_info.name}-sg-rds-${var.cluster_info.environment}" - vpc_id = var.cluster_info.vpc_id - - ingress { - protocol = "tcp" - from_port = 5432 - to_port = 5432 - security_groups = var.cluster_info.container_security_group_ids - } -} - -resource "aws_elasticache_subnet_group" "core_valkey" { - name = "${var.cluster_info.name}-core-valkey-${var.cluster_info.environment}" - subnet_ids = var.cluster_info.private_subnet_ids - - tags = { - Name = "subnet group for core valkey cache instances" - } -} - -resource "aws_security_group" "core_valkey" { - name = "${var.cluster_info.name}-sg-core-valkey-${var.cluster_info.environment}" - vpc_id = var.cluster_info.vpc_id - - ingress { - protocol = "tcp" - from_port = 6379 - to_port = 6379 - security_groups = var.cluster_info.container_security_group_ids - } -} - -# cache service for core app -resource "aws_elasticache_replication_group" "core_valkey" { - replication_group_id = "${var.cluster_info.name}-core-valkey-${var.cluster_info.environment}" - description = "Core cache instance" - node_type = "cache.t4g.medium" - engine = "valkey" - subnet_group_name = aws_elasticache_subnet_group.core_valkey.name - - num_cache_clusters = 1 - parameter_group_name = "default.valkey8" - port = 6379 - security_group_ids = [aws_security_group.core_valkey.id] -} - -# resource "aws_elasticache_parameter_group" "core_valkey" { -# name = "core-valkey-params" -# family = "valkey8" -# parameter { -# } -# } - -# the actual database instance -resource "aws_db_instance" "core_postgres" { - identifier = "${var.cluster_info.name}-core-postgres-${var.cluster_info.environment}" - allocated_storage = 20 - db_name = "${var.cluster_info.name}_${var.cluster_info.environment}_core_postgres" - db_subnet_group_name = aws_db_subnet_group.ecs_dbs.name - engine = "postgres" - engine_version = "14" - instance_class = "db.t3.small" - vpc_security_group_ids = [aws_security_group.ecs_tasks_rds_instances.id] - username = var.cluster_info.name - password = random_password.rds_db_password.result - parameter_group_name = "default.postgres14" - - backup_retention_period = 7 - backup_window = "03:00-04:00" - maintenance_window = "mon:04:00-mon:05:00" - copy_tags_to_snapshot = true - skip_final_snapshot = false - final_snapshot_identifier = "${var.cluster_info.name}-core-postgres-${var.cluster_info.environment}-final-snapshot" -} - -# see https://github.com/terraform-aws-modules/terraform-aws-s3-bucket/tree/v4.1.0 -module "assets_bucket" { - source = "terraform-aws-modules/s3-bucket/aws" - version = "~> 4.0" - - block_public_acls = false - block_public_policy = false - ignore_public_acls = false - restrict_public_buckets = false - bucket = var.assets_bucket_url_name - control_object_ownership = true - object_ownership = "ObjectWriter" - acl = "public-read" - - cors_rule = [{ - allowed_headers = ["*"] - allowed_methods = ["PUT", "GET", "HEAD", "POST"] - allowed_origins = ["*"] - expose_headers = ["ETag", "Location"] - max_age_seconds = 3000 - }] - - lifecycle_rule = [ - { - id = "expire-temporary" - enabled = true - filter = { - prefix = "temporary/" - } - expiration = { - days = 90 - } - }] -} - -# cloudfront for serving static sites from s3 -# sites are uploaded to the assets bucket under the /sites prefix -resource "aws_cloudfront_origin_access_control" "sites" { - name = "${var.cluster_info.name}-sites-oac-${var.cluster_info.environment}" - description = "OAC for static sites" - origin_access_control_origin_type = "s3" - signing_behavior = "always" - signing_protocol = "sigv4" -} - -resource "aws_cloudfront_distribution" "sites" { - enabled = true - default_root_object = "index.html" - comment = "Static sites distribution for ${var.cluster_info.name}-${var.cluster_info.environment}" - - origin { - domain_name = module.assets_bucket.s3_bucket_bucket_regional_domain_name - origin_id = "S3-sites" - origin_path = "/sites" - origin_access_control_id = aws_cloudfront_origin_access_control.sites.id - } - - default_cache_behavior { - allowed_methods = ["GET", "HEAD", "OPTIONS"] - cached_methods = ["GET", "HEAD"] - target_origin_id = "S3-sites" - viewer_protocol_policy = "redirect-to-https" - compress = true - - forwarded_values { - query_string = false - cookies { - forward = "none" - } - } - - min_ttl = 0 - default_ttl = 3600 - max_ttl = 86400 - } - - # custom error response for spa-style routing (serve index.html for 404s) - custom_error_response { - error_code = 404 - response_code = 200 - response_page_path = "/index.html" - } - - restrictions { - geo_restriction { - restriction_type = "none" - } - } - - viewer_certificate { - cloudfront_default_certificate = true - } - - tags = { - Name = "${var.cluster_info.name}-sites-${var.cluster_info.environment}" - Environment = var.cluster_info.environment - } -} - -# bucket policy to allow cloudfront access to sites prefix -resource "aws_s3_bucket_policy" "sites_cloudfront_access" { - bucket = module.assets_bucket.s3_bucket_id - - policy = jsonencode({ - Version = "2012-10-17" - Statement = [ - { - Sid = "AllowCloudFrontServicePrincipalReadOnly" - Effect = "Allow" - Principal = { - Service = "cloudfront.amazonaws.com" - } - Action = "s3:GetObject" - Resource = "${module.assets_bucket.s3_bucket_arn}/sites/*" - Condition = { - StringEquals = { - "AWS:SourceArn" = aws_cloudfront_distribution.sites.arn - } - } - }, - { - Sid = "PublicReadGetObject" - Effect = "Allow" - Principal = "*" - Action = "s3:GetObject" - Resource = "${module.assets_bucket.s3_bucket_arn}/*" - } - ] - }) -} - -# TODO: replace this with a role-based system for ECS containers -resource "aws_iam_user" "asset_uploader" { - name = "${var.cluster_info.name}-${var.cluster_info.environment}-asset-uploader" - path = "/" -} - -resource "aws_iam_access_key" "asset_uploader" { - user = aws_iam_user.asset_uploader.name -} - -data "aws_iam_policy_document" "asset_uploads" { - statement { - actions = ["s3:PutObject", "s3:GetObject", "s3:PutObjectTagging", "s3:GetObjectTagging", "s3:DeleteObject"] - effect = "Allow" - resources = ["${module.assets_bucket.s3_bucket_arn}/*"] - } -} -resource "aws_iam_policy" "asset_uploads" { - name = "${var.cluster_info.name}-${var.cluster_info.environment}-asset-uploader" - description = "Allow core app to manage files in the assets bucket" - policy = data.aws_iam_policy_document.asset_uploads.json -} - -resource "aws_iam_user_policy_attachment" "attachment_asset_uploader" { - user = aws_iam_user.asset_uploader.name - policy_arn = aws_iam_policy.asset_uploads.arn -} - -resource "aws_secretsmanager_secret" "uploader_iam_secret_key" { - name = "asset-uploader-secret-key-${var.cluster_info.name}-${var.cluster_info.environment}" -} - -resource "aws_secretsmanager_secret_version" "uploader_iam_secret_key" { - secret_id = aws_secretsmanager_secret.uploader_iam_secret_key.id - secret_string = aws_iam_access_key.asset_uploader.secret -} - -## Secrets that must be put into AWS Secrets manager by hand -resource "aws_secretsmanager_secret" "jwt_secret" { - name = "jwt-secret-${var.cluster_info.name}-${var.cluster_info.environment}" -} -resource "aws_secretsmanager_secret" "sentry_auth_token" { - name = "sentry-auth-token-${var.cluster_info.name}-${var.cluster_info.environment}" -} -resource "aws_secretsmanager_secret" "supabase_service_role_key" { - name = "supabase-service-role-key-${var.cluster_info.name}-${var.cluster_info.environment}" -} -resource "aws_secretsmanager_secret" "supabase_webhooks_api_key" { - name = "supabase-webhooks-api-key-${var.cluster_info.name}-${var.cluster_info.environment}" -} -resource "aws_secretsmanager_secret" "mailgun_smtp_password" { - name = "mailgun-smtp-password-${var.cluster_info.name}-${var.cluster_info.environment}" -} diff --git a/infrastructure/terraform/modules/core-services/outputs.tf b/infrastructure/terraform/modules/core-services/outputs.tf deleted file mode 100644 index 686e2a4d53..0000000000 --- a/infrastructure/terraform/modules/core-services/outputs.tf +++ /dev/null @@ -1,52 +0,0 @@ -locals { - db_user = aws_db_instance.core_postgres.username - db_name = aws_db_instance.core_postgres.db_name - db_host = aws_db_instance.core_postgres.address -} - -output "secrets" { - value = { - api_key = aws_secretsmanager_secret.api_key.id - asset_uploader_secret_key = aws_secretsmanager_secret.uploader_iam_secret_key.id - rds_db_password = aws_secretsmanager_secret.rds_db_password.id - jwt_secret = aws_secretsmanager_secret.jwt_secret.id - honeycomb_api_key = aws_secretsmanager_secret.honeycomb_api_key.id - sentry_auth_token = aws_secretsmanager_secret.sentry_auth_token.id - supabase_service_role_key = aws_secretsmanager_secret.supabase_service_role_key.id - supabase_webhooks_api_key = aws_secretsmanager_secret.supabase_webhooks_api_key.id - mailgun_smtp_password = aws_secretsmanager_secret.mailgun_smtp_password.id - gcloud_key_file = aws_secretsmanager_secret.gcloud_key_file.id - datacite_repository_id = aws_secretsmanager_secret.datacite_repository_id.id - datacite_password = aws_secretsmanager_secret.datacite_password.id - } -} - -output "asset_uploader_key_id" { - value = aws_iam_access_key.asset_uploader.id -} - -output "rds_connection_components" { - value = { - user = local.db_user - database = local.db_name - host = local.db_host - port = "5432" - id = aws_db_instance.core_postgres.id - } -} - -output "valkey_host" { - value = aws_elasticache_replication_group.core_valkey.primary_endpoint_address -} - -output "sites_cloudfront_domain" { - value = aws_cloudfront_distribution.sites.domain_name -} - -output "sites_cloudfront_distribution_id" { - value = aws_cloudfront_distribution.sites.id -} - -output "sites_base_url" { - value = "https://${aws_cloudfront_distribution.sites.domain_name}" -} diff --git a/infrastructure/terraform/modules/core-services/variables.tf b/infrastructure/terraform/modules/core-services/variables.tf deleted file mode 100644 index 7e3ebc0556..0000000000 --- a/infrastructure/terraform/modules/core-services/variables.tf +++ /dev/null @@ -1,20 +0,0 @@ -variable "cluster_info" { - description = "infrastructure values output from v7-cluster" - - type = object({ - region = string - name = string - vpc_id = string - cluster_arn = string - environment = string - private_subnet_ids = list(string) - container_security_group_ids = list(string) - cloudwatch_log_group_name = string - lb_listener_arn = string - }) -} - -variable "assets_bucket_url_name" { - description = "Name for the asset bucket -- typically a domain like assets.v7.pubpub.org" - type = string -} diff --git a/infrastructure/terraform/modules/deployment/main.tf b/infrastructure/terraform/modules/deployment/main.tf deleted file mode 100644 index e08f9a1e55..0000000000 --- a/infrastructure/terraform/modules/deployment/main.tf +++ /dev/null @@ -1,250 +0,0 @@ -# aws terraform provider config - -terraform { - required_version = ">= 1.5.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 5.0" - } - - honeycombio = { - source = "honeycombio/honeycombio" - version = ">= 0.22.0" - } - } -} - -# provider "aws" { -# region = var.region -# } - -module "cluster" { - source = "../v7-cluster" - - name = var.name - environment = var.environment - region = var.region - - pubpub_hostname = var.pubpub_hostname - route53_zone_id = var.route53_zone_id - - container_ingress_port = 8080 - - availability_zones = ["us-east-1a", "us-east-1c"] -} - -module "core_dependency_services" { - source = "../core-services" - - cluster_info = module.cluster.cluster_info - assets_bucket_url_name = var.ASSETS_BUCKET_NAME -} - -locals { - PUBPUB_URL = "https://${var.pubpub_hostname}" -} - -module "service_core" { - source = "../container-generic" - - service_name = "core" - cluster_info = module.cluster.cluster_info - - repository_url = var.ecr_repository_urls.core - nginx_image = "${var.ecr_repository_urls.nginx}:latest" - health_check_path = "/api/health" - - listener = { - service_name = "core" - public = true - path_prefix = "/" - rule_priority = 100 - from_port = 3000 - to_port = 3000 - protocol = "tcp" - } - - init_containers = [{ - name = "migrations" - image = "${var.ecr_repository_urls.root}:latest" - command = [ - "pnpm", "--filter", "core", "migrate-docker", - ] - }] - - resources = { - cpu = 1024 - memory = 2048 - desired_count = 1 - } - - configuration = { - container_port = 3000 - environment = [ - { name = "PGUSER", value = module.core_dependency_services.rds_connection_components.user }, - { name = "PGDATABASE", value = module.core_dependency_services.rds_connection_components.database }, - { name = "PGHOST", value = module.core_dependency_services.rds_connection_components.host }, - { name = "PGPORT", value = module.core_dependency_services.rds_connection_components.port }, - { name = "ASSETS_REGION", value = var.region }, - { name = "ASSETS_BUCKET_NAME", value = var.ASSETS_BUCKET_NAME }, - { name = "ASSETS_UPLOAD_KEY", value = module.core_dependency_services.asset_uploader_key_id }, - { name = "MAILGUN_SMTP_USERNAME", value = var.MAILGUN_SMTP_USERNAME }, - { name = "MAILGUN_SMTP_HOST", value = var.MAILGUN_SMTP_HOST }, - { name = "MAILGUN_SMTP_PORT", value = var.MAILGUN_SMTP_PORT }, - { name = "PUBPUB_URL", value = local.PUBPUB_URL }, - { name = "HOSTNAME", value = var.HOSTNAME }, - { name = "DATACITE_API_URL", value = var.DATACITE_API_URL }, - { name = "VALKEY_HOST", value = module.core_dependency_services.valkey_host }, - { name = "SITE_BUILDER_ENDPOINT", value = local.PUBPUB_URL }, - { name = "SITES_BASE_URL", value = module.core_dependency_services.sites_base_url } - ] - - secrets = [ - { name = "PGPASSWORD", valueFrom = module.core_dependency_services.secrets.rds_db_password }, - { name = "API_KEY", valueFrom = module.core_dependency_services.secrets.api_key }, - { name = "JWT_SECRET", valueFrom = module.core_dependency_services.secrets.jwt_secret }, - { name = "ASSETS_UPLOAD_SECRET_KEY", valueFrom = module.core_dependency_services.secrets.asset_uploader_secret_key }, - { name = "SENTRY_AUTH_TOKEN", valueFrom = module.core_dependency_services.secrets.sentry_auth_token }, - { name = "SUPABASE_WEBHOOKS_API_KEY", valueFrom = module.core_dependency_services.secrets.supabase_webhooks_api_key }, - { name = "SUPABASE_SERVICE_ROLE_KEY", valueFrom = module.core_dependency_services.secrets.supabase_service_role_key }, - { name = "HONEYCOMB_API_KEY", valueFrom = module.core_dependency_services.secrets.honeycomb_api_key }, - { name = "MAILGUN_SMTP_PASSWORD", valueFrom = module.core_dependency_services.secrets.mailgun_smtp_password }, - { name = "GCLOUD_KEY_FILE", valueFrom = module.core_dependency_services.secrets.gcloud_key_file }, - { name = "DATACITE_REPOSITORY_ID", valueFrom = module.core_dependency_services.secrets.datacite_repository_id }, - { name = "DATACITE_PASSWORD", valueFrom = module.core_dependency_services.secrets.datacite_password }, - ] - } -} - -module "service_flock" { - source = "../container-generic" - - service_name = "jobs" - cluster_info = module.cluster.cluster_info - - repository_url = var.ecr_repository_urls.jobs - - configuration = { - container_port = 3000 - environment = [ - { name = "PUBPUB_URL", value = local.PUBPUB_URL }, - { name = "PGUSER", value = module.core_dependency_services.rds_connection_components.user }, - { name = "PGDATABASE", value = module.core_dependency_services.rds_connection_components.database }, - { name = "PGHOST", value = module.core_dependency_services.rds_connection_components.host }, - { name = "PGPORT", value = module.core_dependency_services.rds_connection_components.port }, - ] - - secrets = [ - { name = "PGPASSWORD", valueFrom = module.core_dependency_services.secrets.rds_db_password }, - { name = "API_KEY", valueFrom = module.core_dependency_services.secrets.api_key }, - { name = "HONEYCOMB_API_KEY", valueFrom = module.core_dependency_services.secrets.honeycomb_api_key }, - ] - } -} - -module "service_bastion" { - source = "../container-generic" - - service_name = "bastion" - cluster_info = module.cluster.cluster_info - - repository_url = var.ecr_repository_urls.root - # Make bastion idle indefinitely, so we can ssh into it when needed - # If this is not here, the task will exit and try to restart immediately. - # TODO: Maybe there's a less hacky way to do this? - command = ["sh", "-c", "trap : TERM INT; sleep infinity & wait"] - - configuration = { - environment = [ - { name = "PGUSER", value = module.core_dependency_services.rds_connection_components.user }, - { name = "PGDATABASE", value = module.core_dependency_services.rds_connection_components.database }, - { name = "PGHOST", value = module.core_dependency_services.rds_connection_components.host }, - { name = "PGPORT", value = module.core_dependency_services.rds_connection_components.port }, - { name = "HOSTNAME", value = var.HOSTNAME }, - { name = "PAGER", value = "less -S" }, - { name = "VALKEY_HOST", value = module.core_dependency_services.valkey_host } - ] - - secrets = [ - { name = "PGPASSWORD", valueFrom = module.core_dependency_services.secrets.rds_db_password }, - - # Bastion needs supabase creds in case of seed script - { name = "SUPABASE_SERVICE_ROLE_KEY", valueFrom = module.core_dependency_services.secrets.supabase_service_role_key }, - ] - } - - resources = { - cpu = 1024 - memory = 2048 # need slightly beefier machine for the bastion - - # TODO: disable autoscaling, which makes no sense for a bastion - desired_count = 1 - } -} - -module "service_site_builder" { - source = "../container-generic" - - service_name = "site-builder" - cluster_info = module.cluster.cluster_info - repository_url = var.ecr_repository_urls.site_builder - nginx_image = "${var.ecr_repository_urls.nginx}:latest" - - resources = { - cpu = 1024 - memory = 2048 - desired_count = 1 - } - - listener = { - service_name = "site-builder" - public = true - path_prefix = "/services/site-builder/" - rule_priority = 80 - from_port = 4000 - to_port = 4000 - protocol = "tcp" - } - - configuration = { - container_port = 4000 - - environment = [ - { name = "PUBPUB_URL", value = local.PUBPUB_URL }, - { name = "PORT", value = 4000 }, - { name = "S3_ACCESS_KEY", value = module.core_dependency_services.asset_uploader_key_id }, - { name = "S3_BUCKET_NAME", value = var.ASSETS_BUCKET_NAME }, - { name = "S3_REGION", value = var.region }, - // don't need to set S3_ENDPOINT, if empty will use s3 - ] - - secrets = [ - { name = "S3_SECRET_KEY", valueFrom = module.core_dependency_services.secrets.asset_uploader_secret_key }, - ] - } -} - - -# N.B. This invocation means that the deployment including honeycomb cannot succeed -# until after you have inserted the secret into the AWS console. This only happens -# in this one case because with things like ECS, you can successfully "apply" -# even if secrets are not present; the containers will simply fail to start. -# However, this last section of TF code can be commented out for a first apply, -# then go and insert secret in console, then reapply with this. -# -# This is the result of an awkward design pattern, where instead of the -# Honeycomb provider being configured to search for an API key in the env, -# the modules themselves expect an API key as an inline var and fail if -# it is not set. This is probably because the API keys are different for -# different environments, rather than per account/user/etc. -data "aws_secretsmanager_secret_version" "honeycomb_api_key" { - secret_id = module.core_dependency_services.secrets.honeycomb_api_key -} - -module "observability_honeycomb_integration" { - source = "../honeycomb-integration" - - cluster_info = module.cluster.cluster_info - HONEYCOMB_API_KEY = data.aws_secretsmanager_secret_version.honeycomb_api_key.secret_string -} diff --git a/infrastructure/terraform/modules/deployment/outputs.tf b/infrastructure/terraform/modules/deployment/outputs.tf deleted file mode 100644 index 9fe94c2d40..0000000000 --- a/infrastructure/terraform/modules/deployment/outputs.tf +++ /dev/null @@ -1,3 +0,0 @@ -output "cluster_info" { - value = module.cluster.cluster_info -} diff --git a/infrastructure/terraform/modules/deployment/variables.tf b/infrastructure/terraform/modules/deployment/variables.tf deleted file mode 100644 index 78b253711b..0000000000 --- a/infrastructure/terraform/modules/deployment/variables.tf +++ /dev/null @@ -1,73 +0,0 @@ -variable "region" { - description = "AWS region shortname" - type = string - default = "us-east-1" -} - -variable "name" { - description = "Proper name for this environment" - type = string -} - -variable "environment" { - description = "Functional name for this environment" - type = string -} - -variable "pubpub_hostname" { - description = "hostname where pubpub will be addressable (DO NOT include https://)" - type = string -} - -variable "site_builder_hostname" { - description = "hostname where site builder will be addressable (DO NOT include https://)" - type = string -} - -variable "route53_zone_id" { - description = "Zone ID of route53 zone that is already configured as the NS for your subdomain" - type = string -} - -variable "ecr_repository_urls" { - description = "URLs for ECR repositories created at a global level" - type = object({ - core = string - jobs = string - nginx = string - root = string - site_builder = string - }) -} - -variable "MAILGUN_SMTP_USERNAME" { - description = "SMTP Username for Mailgun service" - type = string -} - -variable "MAILGUN_SMTP_HOST" { - description = "SMTP Hostname for Mailgun service" - type = string - default = "smtp.mailgun.org" -} - -variable "MAILGUN_SMTP_PORT" { - description = "SMTP Network Port for Mailgun service" - type = string - default = "465" -} - -variable "HOSTNAME" { - description = "Hostname used by standalone Next app" -} - -# TODO deprecate this in favor of a Terraformed bucket -variable "ASSETS_BUCKET_NAME" { - description = "Name of the S3 bucket to store assets" - type = string -} - -variable "DATACITE_API_URL" { - description = "DataCite API URL used by the DataCite action to deposit pubs and allocate DOIs" - type = string -} diff --git a/infrastructure/terraform/modules/ecr-repositories/main.tf b/infrastructure/terraform/modules/ecr-repositories/main.tf deleted file mode 100644 index 52e36fbc30..0000000000 --- a/infrastructure/terraform/modules/ecr-repositories/main.tf +++ /dev/null @@ -1,60 +0,0 @@ -# aws terraform provider config - -terraform { - required_version = ">= 0.12.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 4.0" - } - } -} - - -# ecr repositories for all containers -resource "aws_ecr_repository" "pubpub_v7" { - name = "pubpub-v7" - image_tag_mutability = "MUTABLE" - - image_scanning_configuration { - scan_on_push = false # can set this to true if we want - } -} - -resource "aws_ecr_repository" "pubpub_v7_core" { - name = "pubpub-v7-core" - image_tag_mutability = "MUTABLE" - - image_scanning_configuration { - scan_on_push = false # can set this to true if we want - } -} - -resource "aws_ecr_repository" "pubpub_v7_jobs" { - name = "pubpub-v7-jobs" - image_tag_mutability = "MUTABLE" - - image_scanning_configuration { - scan_on_push = false # can set this to true if we want - } -} - -resource "aws_ecr_repository" "pubpub_v7_site_builder" { - name = "pubpub-v7-site-builder" - image_tag_mutability = "MUTABLE" - - image_scanning_configuration { - scan_on_push = false # can set this to true if we want - } -} - -# tiny image that just removes the a path prefix -resource "aws_ecr_repository" "nginx" { - name = "nginx" - image_tag_mutability = "MUTABLE" - - image_scanning_configuration { - scan_on_push = false # can set this to true if we want - } -} - diff --git a/infrastructure/terraform/modules/ecr-repositories/outputs.tf b/infrastructure/terraform/modules/ecr-repositories/outputs.tf deleted file mode 100644 index c8d3647f46..0000000000 --- a/infrastructure/terraform/modules/ecr-repositories/outputs.tf +++ /dev/null @@ -1,10 +0,0 @@ -output "ecr_repository_urls" { - value = { - core = aws_ecr_repository.pubpub_v7_core.repository_url - jobs = aws_ecr_repository.pubpub_v7_jobs.repository_url - site-builder = aws_ecr_repository.pubpub_v7_site_builder.repository_url - nginx = aws_ecr_repository.nginx.repository_url - root = aws_ecr_repository.pubpub_v7.repository_url - } -} - diff --git a/infrastructure/terraform/modules/ecr-repositories/variables.tf b/infrastructure/terraform/modules/ecr-repositories/variables.tf deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/infrastructure/terraform/modules/honeycomb-integration/README.md b/infrastructure/terraform/modules/honeycomb-integration/README.md deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/infrastructure/terraform/modules/honeycomb-integration/main.tf b/infrastructure/terraform/modules/honeycomb-integration/main.tf deleted file mode 100644 index 44fc3f8f1e..0000000000 --- a/infrastructure/terraform/modules/honeycomb-integration/main.tf +++ /dev/null @@ -1,48 +0,0 @@ -locals { - failure_logs_bucket_name = "pubpub-v7-${var.cluster_info.name}-${var.cluster_info.environment}-honeycomb-tf-integrations-failures" -} - -# see https://github.com/terraform-aws-modules/terraform-aws-s3-bucket/tree/v4.1.0 -module "firehose_failure_bucket" { - source = "terraform-aws-modules/s3-bucket/aws" - version = "~> 4.0" - - bucket = local.failure_logs_bucket_name - force_destroy = true - transition_default_minimum_object_size = "varies_by_storage_class" - - - lifecycle_rule = [{ - id = "expiration-30-days" - enabled = true - expiration = { - days = 30 - } - }] -} - -module "honeycomb-aws-cloudwatch-metrics-integration" { - source = "honeycombio/integrations/aws//modules/cloudwatch-metrics" - - name = "${var.cluster_info.name}-${var.cluster_info.environment}-cw-metrics" - - honeycomb_api_key = var.HONEYCOMB_API_KEY // Honeycomb API key. - honeycomb_dataset_name = "cloudwatch-metrics" // Your Honeycomb dataset name that will receive the metrics. - - s3_failure_bucket_arn = module.firehose_failure_bucket.s3_bucket_arn -} - -# see https://github.com/honeycombio/terraform-aws-integrations/tree/main/modules/cloudwatch-logs -module "honeycomb-aws-cloudwatch-logs-integration" { - source = "honeycombio/integrations/aws//modules/cloudwatch-logs" - - name = "${var.cluster_info.name}-${var.cluster_info.environment}-cw-logs" - - #aws cloudwatch integration - cloudwatch_log_groups = [var.cluster_info.cloudwatch_log_group_name] // CloudWatch Log Group names to stream to Honeycomb. - s3_failure_bucket_arn = module.firehose_failure_bucket.s3_bucket_arn - - #honeycomb - honeycomb_api_key = var.HONEYCOMB_API_KEY // Honeycomb API key. - honeycomb_dataset_name = "cloudwatch-logs" // Your Honeycomb dataset name that will receive the logs. -} diff --git a/infrastructure/terraform/modules/honeycomb-integration/outputs.tf b/infrastructure/terraform/modules/honeycomb-integration/outputs.tf deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/infrastructure/terraform/modules/honeycomb-integration/variables.tf b/infrastructure/terraform/modules/honeycomb-integration/variables.tf deleted file mode 100644 index 9a1e897088..0000000000 --- a/infrastructure/terraform/modules/honeycomb-integration/variables.tf +++ /dev/null @@ -1,21 +0,0 @@ -variable "cluster_info" { - description = "infrastructure values output from v7-cluster" - - type = object({ - region = string - name = string - vpc_id = string - cluster_arn = string - environment = string - private_subnet_ids = list(string) - container_security_group_ids = list(string) - cloudwatch_log_group_name = string - lb_listener_arn = string - }) -} - -variable "HONEYCOMB_API_KEY" { - description = "API key for the honeycomb environment" - type = string - sensitive = true -} diff --git a/infrastructure/terraform/modules/v7-cluster/dns.tf b/infrastructure/terraform/modules/v7-cluster/dns.tf deleted file mode 100644 index 98f7f508c7..0000000000 --- a/infrastructure/terraform/modules/v7-cluster/dns.tf +++ /dev/null @@ -1,32 +0,0 @@ -module "alb_certificate" { - source = "terraform-aws-modules/acm/aws" - version = "~> 4.0" - - domain_name = var.pubpub_hostname - zone_id = var.route53_zone_id - - validation_method = "DNS" - - subject_alternative_names = [ - "*.${var.pubpub_hostname}", - ] - - wait_for_validation = true - - tags = { - Name = var.pubpub_hostname - Environment = var.environment - } -} - -resource "aws_route53_record" "alb" { - zone_id = var.route53_zone_id - name = var.pubpub_hostname - type = "A" - - alias { - name = aws_lb.main.dns_name - zone_id = aws_lb.main.zone_id - evaluate_target_health = false - } -} diff --git a/infrastructure/terraform/modules/v7-cluster/ecs.tf b/infrastructure/terraform/modules/v7-cluster/ecs.tf deleted file mode 100644 index a885462f18..0000000000 --- a/infrastructure/terraform/modules/v7-cluster/ecs.tf +++ /dev/null @@ -1,21 +0,0 @@ -module "ecs_cluster" { - source = "terraform-aws-modules/ecs/aws//modules/cluster" - version = "~> 5.0" - - cluster_name = "${var.name}-ecs-cluster-${var.environment}" - - cluster_configuration = { - execute_command_configuration = { - logging = "OVERRIDE" - log_configuration = { - cloud_watch_log_group_name = "/aws/ecs/aws-ec2" - } - } - } - - tags = { - Environment = "${var.name}-${var.environment}" - Project = "Pubpub-v7" - } -} - diff --git a/infrastructure/terraform/modules/v7-cluster/main.tf b/infrastructure/terraform/modules/v7-cluster/main.tf deleted file mode 100644 index 13c3d56ccb..0000000000 --- a/infrastructure/terraform/modules/v7-cluster/main.tf +++ /dev/null @@ -1,178 +0,0 @@ -# aws terraform provider config - -terraform { - required_version = ">= 0.12.0" - required_providers { - aws = { - source = "hashicorp/aws" - version = ">= 4.0" - } - } -} - -# Network configuration -resource "aws_vpc" "main" { - cidr_block = var.cidr -} - -resource "aws_internet_gateway" "main" { - vpc_id = aws_vpc.main.id -} - -resource "aws_subnet" "private" { - vpc_id = aws_vpc.main.id - cidr_block = element(var.private_subnets, count.index) - availability_zone = element(var.availability_zones, count.index) - count = length(var.private_subnets) -} - -resource "aws_subnet" "public" { - vpc_id = aws_vpc.main.id - cidr_block = element(var.public_subnets, count.index) - availability_zone = element(var.availability_zones, count.index) - count = length(var.public_subnets) - map_public_ip_on_launch = true -} - -resource "aws_route_table" "public" { - vpc_id = aws_vpc.main.id -} - -resource "aws_route" "public" { - route_table_id = aws_route_table.public.id - destination_cidr_block = "0.0.0.0/0" - gateway_id = aws_internet_gateway.main.id -} - -resource "aws_route_table_association" "public" { - count = length(var.public_subnets) - subnet_id = element(aws_subnet.public.*.id, count.index) - route_table_id = aws_route_table.public.id -} - -resource "aws_nat_gateway" "main" { - count = length(var.private_subnets) - allocation_id = element(aws_eip.nat.*.id, count.index) - # note that there is one nat gateway per private subnet, - # but the gateway must live in the public subnet - subnet_id = element(aws_subnet.public.*.id, count.index) - depends_on = [aws_internet_gateway.main] -} - -resource "aws_eip" "nat" { - count = length(var.private_subnets) - domain = "vpc" -} - -resource "aws_route_table" "private" { - count = length(var.private_subnets) - vpc_id = aws_vpc.main.id -} - -resource "aws_route" "private" { - count = length(compact(var.private_subnets)) - route_table_id = element(aws_route_table.private.*.id, count.index) - destination_cidr_block = "0.0.0.0/0" - nat_gateway_id = element(aws_nat_gateway.main.*.id, count.index) -} - -resource "aws_route_table_association" "private" { - count = length(var.private_subnets) - subnet_id = element(aws_subnet.private.*.id, count.index) - route_table_id = element(aws_route_table.private.*.id, count.index) -} - -# security groups for the load balancer and task -resource "aws_security_group" "alb" { - name = "${var.name}-sg-alb-${var.environment}" - vpc_id = aws_vpc.main.id - - ingress { - protocol = "tcp" - from_port = 80 - to_port = 80 - cidr_blocks = ["0.0.0.0/0"] - } - - ingress { - protocol = "tcp" - from_port = 443 - to_port = 443 - cidr_blocks = ["0.0.0.0/0"] - } - - egress { - protocol = "-1" - from_port = 0 - to_port = 0 - cidr_blocks = ["0.0.0.0/0"] - } -} - -resource "aws_security_group" "ecs_tasks" { - name = "${var.name}-sg-task-${var.environment}" - vpc_id = aws_vpc.main.id -} - -resource "aws_vpc_security_group_ingress_rule" "ecs_tasks_ingress_alb_all" { - security_group_id = aws_security_group.ecs_tasks.id - referenced_security_group_id = aws_security_group.alb.id - - # allow ALB traffic on all ports. ALB defines access controls. - ip_protocol = -1 -} - -# allow all outbound traffic. -resource "aws_vpc_security_group_egress_rule" "ecs_tasks_egress_ipv4" { - security_group_id = aws_security_group.ecs_tasks.id - cidr_ipv4 = "0.0.0.0/0" - ip_protocol = -1 -} - -resource "aws_vpc_security_group_egress_rule" "ecs_tasks_egress_ipv6" { - security_group_id = aws_security_group.ecs_tasks.id - cidr_ipv6 = "::/0" - ip_protocol = -1 -} - -# load balancer -resource "aws_lb" "main" { - name = "${var.name}-lb-${var.environment}" - internal = false - load_balancer_type = "application" - security_groups = [aws_security_group.alb.id] - subnets = aws_subnet.public.*.id - - enable_deletion_protection = false -} - -resource "aws_lb_listener" "main" { - load_balancer_arn = aws_lb.main.arn - port = 443 - protocol = "HTTPS" - ssl_policy = "ELBSecurityPolicy-2016-08" - certificate_arn = module.alb_certificate.acm_certificate_arn - - - default_action { - type = "fixed-response" - - fixed_response { - content_type = "text/plain" - message_body = "not found" - status_code = "404" - } - } -} - -# TODO - add ACM certificates to support TLS - -# logging - -resource "aws_cloudwatch_log_group" "ecs" { - name = "${var.name}-ecs-${var.environment}-container-logs" - - tags = { - Environment = var.environment - } -} diff --git a/infrastructure/terraform/modules/v7-cluster/outputs.tf b/infrastructure/terraform/modules/v7-cluster/outputs.tf deleted file mode 100644 index 5cf7120c40..0000000000 --- a/infrastructure/terraform/modules/v7-cluster/outputs.tf +++ /dev/null @@ -1,14 +0,0 @@ -output "cluster_info" { - value = { - region = var.region - name = var.name - vpc_id = aws_vpc.main.id - environment = var.environment - cluster_arn = module.ecs_cluster.arn - private_subnet_ids = aws_subnet.private.*.id - container_security_group_ids = [aws_security_group.ecs_tasks.id] - cloudwatch_log_group_name = aws_cloudwatch_log_group.ecs.name - lb_listener_arn = aws_lb_listener.main.arn - alb_dns_name = aws_lb.main.dns_name - } -} diff --git a/infrastructure/terraform/modules/v7-cluster/variables.tf b/infrastructure/terraform/modules/v7-cluster/variables.tf deleted file mode 100644 index 08f04af57c..0000000000 --- a/infrastructure/terraform/modules/v7-cluster/variables.tf +++ /dev/null @@ -1,70 +0,0 @@ -variable "name" { - description = "Familiar name of the stack" - default = "pubpub" -} - -variable "environment" { - description = "Name of the version/layer of the stack" -} - -variable "cidr" { - description = "The CIDR block for the VPC" - default = "10.0.0.0/16" -} - -variable "private_subnets" { - description = "a list of CIDRs for private subnets in the VPC, one for each availability zone" - default = ["10.0.128.0/20", "10.0.144.0/20"] -} - -variable "public_subnets" { - description = "a list of CIDRs for public subnets in the VPC, one for each availability zone" - default = ["10.0.0.0/20", "10.0.16.0/20"] -} - -variable "availability_zones" { - description = "a list of availability zones" -} - -# variable "container_port" { -# description = "The port the containers are listening on" -# default = 5050 -# } -# -# variable "container_environment" { -# description = "Environment variables for the containers" -# default = [] -# } -# -# variable "health_check_path" { -# description = "The path for the health check" -# default = "/v1/debug/health" -# } -# -# variable "hosted_zone_id" { -# description = "The ID of the hosted zone for the domain" -# } -# -# variable "subdomain" { -# description = "Prefix to domain name of hosted zone above, so serve app from" -# } - -variable "region" { - description = "Region for all resources (MUST agree with provider config)" - default = "us-east-1" -} - -variable "container_ingress_port" { - description = "port to allow traffic in private security group" - type = number -} - -variable "pubpub_hostname" { - description = "domain name where this will be served by ALB" - type = string -} - -variable "route53_zone_id" { - description = "Zone ID of route53 zone that is already configured as the NS for your subdomain" - type = string -} From 48af705ad2d8a63d5aec7691134969fc6fd22696 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 15:46:00 +0200 Subject: [PATCH 136/153] fix: remove all buildjournalsite action runs --- .../20260408120000_rm_build_journal_site/migration.sql | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql b/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql index cd73092b05..89c81c3f15 100644 --- a/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql +++ b/core/prisma/migrations/20260408120000_rm_build_journal_site/migration.sql @@ -10,6 +10,9 @@ WHERE "action" = 'buildJournalSite'; DELETE FROM "action_config_defaults" WHERE "action" = 'buildJournalSite'; +DELETE FROM "action_runs" +WHERE "action" = 'buildJournalSite'; + -- AlterEnum BEGIN; CREATE TYPE "Action_new" AS ENUM( From 1051eb595c07b4af45b7764523641e3667417040 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 15:51:52 +0200 Subject: [PATCH 137/153] fix: pubpub_url/hostname -> pubstar_url --- .env.docker-compose.dev | 2 +- .env.example | 2 +- core/.env.development | 2 +- core/.storybook/__mocks__/env.mock.ts | 2 +- core/.storybook/main.ts | 2 +- .../_lib/ActionFieldJsonataTestPanel.tsx | 2 +- core/actions/_lib/interpolationContext.ts | 4 +- core/actions/_lib/runAutomation.ts | 6 +-- core/actions/buildSite/formActions.ts | 2 +- core/actions/buildSite/run.tsx | 2 +- .../site/[...ts-rest]/route.ts | 2 +- core/app/c/[communitySlug]/SideNav.tsx | 2 +- .../developers/docs/openapi.json/openApi.ts | 2 +- core/lib/api.ts | 2 +- core/lib/authentication/createMagicLink.ts | 2 +- core/lib/env/env.ts | 2 +- core/lib/redirect.ts | 6 +-- core/lib/server/invites/InviteService.ts | 2 +- .../server/render/pub/renderWithPubUtils.ts | 2 +- core/package.json | 2 +- core/playwright/coar-notify.spec.ts | 10 ++-- core/prisma/seeds/coar-notify.ts | 54 +++++++++---------- core/prisma/seeds/starter.ts | 2 +- docker-compose.test.yml | 6 +-- infra/.env.enc | 6 +-- infra/.env.example | 4 +- infra/.env.sandbox.enc | 4 +- infra/Caddyfile | 2 +- infra/stack.preview.yml | 10 ++-- infra/stack.yml | 4 +- jobs/.env.development | 2 +- jobs/src/clients.ts | 2 +- mock-notify/src/app/page.tsx | 2 +- .../app/reviews/sample-review/docmap/route.ts | 2 +- .../src/app/reviews/sample-review/route.ts | 2 +- packages/emails/.env.development | 2 +- packages/emails/src/form-link.tsx | 2 +- packages/emails/src/password-reset.tsx | 2 +- packages/emails/src/signup-invite.tsx | 2 +- packages/emails/src/verify-email.tsx | 2 +- self-host/.env.example | 4 +- self-host/docker-compose.yml | 2 +- site-builder-2/.env.development | 2 +- site-builder-2/.env.server.development | 2 +- site-builder-2/server/env.ts | 2 +- site-builder-2/server/server.ts | 6 +-- 46 files changed, 95 insertions(+), 95 deletions(-) diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index 55d72dbc18..3761615f8f 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -43,5 +43,5 @@ GCLOUD_KEY_FILE=xxx # this needs to be localhost:54324 instead of inbucket:9000 bc we are almost always running the integration tests from outside the docker network INBUCKET_URL=http://localhost:54324 OTEL_SERVICE_NAME=core.core -PUBPUB_URL=http://localhost:3000 +PUBSTAR_HOSTNAME=http://localhost:3000 API_KEY=xxx diff --git a/.env.example b/.env.example index 9a23c335ad..37cbb2106a 100644 --- a/.env.example +++ b/.env.example @@ -36,7 +36,7 @@ SMTP_PASSWORD=xxx # Application configuration API_KEY=super_secret_key -PUBPUB_URL=http://localhost:3000 +PUBSTAR_URL=http://localhost:3000 # Other configuration OTEL_SERVICE_NAME=pubpub-v7-dev diff --git a/core/.env.development b/core/.env.development index 3ab95ba2c7..eefcd089ad 100644 --- a/core/.env.development +++ b/core/.env.development @@ -2,7 +2,7 @@ SMTP_HOST=localhost SMTP_PORT=54325 API_KEY=super_secret_key DATABASE_URL=postgresql://postgres:postgres@localhost:54322/postgres -PUBPUB_URL=http://localhost:3000 +PUBSTAR_URL=http://localhost:3000 # mninio defaults S3_BUCKET_NAME=assets.v7.pubpub.org diff --git a/core/.storybook/__mocks__/env.mock.ts b/core/.storybook/__mocks__/env.mock.ts index f5b9afb630..01e192ff17 100644 --- a/core/.storybook/__mocks__/env.mock.ts +++ b/core/.storybook/__mocks__/env.mock.ts @@ -1,5 +1,5 @@ import type { env as envOriginal } from "~/lib/env/env" export const env = { - PUBPUB_URL: "http://localhost:6006", + PUBSTAR_URL: "http://localhost:6006", } satisfies Partial diff --git a/core/.storybook/main.ts b/core/.storybook/main.ts index 5bdbdbde2a..5d0c03ff61 100644 --- a/core/.storybook/main.ts +++ b/core/.storybook/main.ts @@ -31,7 +31,7 @@ const config: StorybookConfig = { ...env, // these options are not propogated to the client i think SKIP_VALIDATION: "true", - PUBPUB_URL: "http://localhost:6006", + PUBSTAR_URL: "http://localhost:6006", } }, // this causes and error: `expected expression, got reserved word 'enum'` diff --git a/core/actions/_lib/ActionFieldJsonataTestPanel.tsx b/core/actions/_lib/ActionFieldJsonataTestPanel.tsx index 36fda040a3..c9433071aa 100644 --- a/core/actions/_lib/ActionFieldJsonataTestPanel.tsx +++ b/core/actions/_lib/ActionFieldJsonataTestPanel.tsx @@ -147,7 +147,7 @@ export function ActionFieldJsonataTestPanel(props: { }, stage, env: { - PUBPUB_URL: typeof window !== "undefined" ? window.location.origin : "", + PUBSTAR_URL: typeof window !== "undefined" ? window.location.origin : "", }, useDummyValues: true, ...pubOrJson, diff --git a/core/actions/_lib/interpolationContext.ts b/core/actions/_lib/interpolationContext.ts index ff7fff466d..b70041a29a 100644 --- a/core/actions/_lib/interpolationContext.ts +++ b/core/actions/_lib/interpolationContext.ts @@ -44,7 +44,7 @@ type InterpolationAction = Pick type InterpolationUser = Pick type InterpolationEnv = { - PUBPUB_URL: string + PUBSTAR_URL: string } type BuildInterpolationContextArgsBase = { @@ -95,7 +95,7 @@ export function buildInterpolationContext( ): InterpolationContext { const baseContext: Omit = { env: { - PUBPUB_URL: args.env.PUBPUB_URL, + PUBSTAR_URL: args.env.PUBSTAR_URL, }, community: { id: args.community.id, diff --git a/core/actions/_lib/runAutomation.ts b/core/actions/_lib/runAutomation.ts index a25e4c479f..7709c702ab 100644 --- a/core/actions/_lib/runAutomation.ts +++ b/core/actions/_lib/runAutomation.ts @@ -210,7 +210,7 @@ async function evaluateAutomationConditions(args: { const input = buildInterpolationContext({ useDummyValues: false, env: { - PUBPUB_URL: env.PUBPUB_URL, + PUBSTAR_URL: env.PUBSTAR_URL, }, community: args.community, stage, @@ -411,7 +411,7 @@ const runActionInstance = async (args: RunActionInstanceArgs): Promise( communityId, communityName: community.name, subpath: config.subpath, - siteUrl: env.PUBPUB_URL, + siteUrl: env.PUBSTAR_URL, pageGroups, }, headers: { diff --git a/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts b/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts index 7d831ababa..a920633e3f 100644 --- a/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts +++ b/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts @@ -237,7 +237,7 @@ const handler = createNextHandler( const pubContext = buildInterpolationContext({ community, pub, - env: { PUBPUB_URL: env.PUBPUB_URL }, + env: { PUBSTAR_URL: env.PUBSTAR_URL }, useDummyValues: true, }) diff --git a/core/app/c/[communitySlug]/SideNav.tsx b/core/app/c/[communitySlug]/SideNav.tsx index 2afe024827..855437e58b 100644 --- a/core/app/c/[communitySlug]/SideNav.tsx +++ b/core/app/c/[communitySlug]/SideNav.tsx @@ -209,7 +209,7 @@ const adminLinks: LinkGroupDefinition = { } const getEnvironmentToolLinks = (): EnvironmentToolLink[] => { - const pubpubUrl = new URL(env.PUBPUB_URL) + const pubpubUrl = new URL(env.PUBSTAR_URL) const flags = env.FLAGS?.get("show-test-only-tools") if (!flags) { diff --git a/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts b/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts index 5bdced24fc..90018c3a5f 100644 --- a/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts +++ b/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts @@ -56,7 +56,7 @@ export const createOpenApiDocument = (communitySlug?: string): OpenAPIObject => description: "The development API server", }, { - url: env.PUBPUB_URL, + url: env.PUBSTAR_URL, description: "The production API server", }, ], diff --git a/core/lib/api.ts b/core/lib/api.ts index c032b72eb5..f4d03bf7d6 100644 --- a/core/lib/api.ts +++ b/core/lib/api.ts @@ -5,7 +5,7 @@ import { siteApi } from "contracts" import { env } from "./env/env" export const client = initTsrReactQuery(siteApi, { - baseUrl: typeof window === "undefined" ? env.PUBPUB_URL : window.location.origin, + baseUrl: typeof window === "undefined" ? env.PUBSTAR_URL : window.location.origin, }) export const RETRY_COUNT = 3 diff --git a/core/lib/authentication/createMagicLink.ts b/core/lib/authentication/createMagicLink.ts index e88af2bea8..fe5ea7620b 100644 --- a/core/lib/authentication/createMagicLink.ts +++ b/core/lib/authentication/createMagicLink.ts @@ -25,5 +25,5 @@ export const createMagicLink = async (options: NativeMagicLinkOptions, trx = db) } export const constructMagicLink = (token: string, path: `/${string}`) => { - return `${env.PUBPUB_URL}/magic-link?token=${token}&redirectTo=${encodeURIComponent(path)}` + return `${env.PUBSTAR_URL}/magic-link?token=${token}&redirectTo=${encodeURIComponent(path)}` } diff --git a/core/lib/env/env.ts b/core/lib/env/env.ts index 6efd29831e..7bdde9b688 100644 --- a/core/lib/env/env.ts +++ b/core/lib/env/env.ts @@ -68,7 +68,7 @@ export const env = createEnv({ SMTP_SECURITY: z.enum(["ssl", "tls", "none"]).optional(), OTEL_SERVICE_NAME: z.string().optional(), HONEYCOMB_API_KEY: z.string().optional(), - PUBPUB_URL: z.string().url(), + PUBSTAR_URL: z.string().url(), INBUCKET_URL: z.string().url().optional(), CI: z.string().or(z.boolean()).optional(), GCLOUD_KEY_FILE: selfHostedOptional(z.string()), diff --git a/core/lib/redirect.ts b/core/lib/redirect.ts index d9e112449e..6966552d58 100644 --- a/core/lib/redirect.ts +++ b/core/lib/redirect.ts @@ -11,8 +11,8 @@ export const createRedirectUrl = (redirectTo: string, searchParams?: Record { url.searchParams.append(key, value) @@ -22,5 +22,5 @@ export const createRedirectUrl = (redirectTo: string, searchParams?: Record>>`, @@ -296,7 +296,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Review offer accepted for: {{ $.pub.title }}", - body: "The review offer for **{{ $.pub.title }}** has been accepted.\n\nView the submission: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", + body: "The review offer for **{{ $.pub.title }}** has been accepted.\n\nView the submission: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, }, { @@ -330,7 +330,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Review offer rejected for: {{ $.pub.title }}", - body: "The review offer for **{{ $.pub.title }}** has been rejected.\n\nView the submission: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", + body: "The review offer for **{{ $.pub.title }}** has been rejected.\n\nView the submission: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, }, { @@ -364,7 +364,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { ], }, resolver: - '$.pub.id = {{ $replace($replace($.json.object.`as:inReplyTo`, $.env.PUBPUB_URL & "/c/" & $.community.slug & "/pubs/", ""), $.env.PUBPUB_URL & "/c/" & $.community.slug & "/pub/", "") }}', + '$.pub.id = {{ $replace($replace($.json.object.`as:inReplyTo`, $.env.PUBSTAR_URL & "/c/" & $.community.slug & "/pubs/", ""), $.env.PUBSTAR_URL & "/c/" & $.community.slug & "/pub/", "") }}', actions: [ { action: Action.createPub, @@ -457,7 +457,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { recipientEmail: "all@pubpub.org", subject: "Site published with new review for: {{ $.pub.title }}", - body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: /coar-us1-arcadia/site/index.html`, + body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: /coar-us1-arcadia/site/index.html`, }, }, ], @@ -501,7 +501,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { id: communityId, name: "US2: The Unjournal", slug: "coar-us2-unjournal", - avatar: `${env.PUBPUB_URL}/demo/croc.png`, + avatar: `${env.PUBSTAR_URL}/demo/croc.png`, }, pubFields: { Title: { schemaName: CoreSchemaType.String }, @@ -577,7 +577,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { recipientEmail: "all@pubpub.org", subject: "New review request received: {{ $.json.object.id }}", - body: "A new review request has been received.\n\nObject: {{ $.json.object.id }}\n\nView: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}", + body: "A new review request has been received.\n\nObject: {{ $.json.object.id }}\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}", }, }, ], @@ -656,15 +656,15 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { "type": "Accept", "id": "urn:uuid:" & $.pub.id & ":accept", "actor": { - "id": $.env.PUBPUB_URL & "/c/" & $.community.slug, + "id": $.env.PUBSTAR_URL & "/c/" & $.community.slug, "type": "Service", "name": $.community.name }, "inReplyTo": $payload.id, "object": $payload.object, "origin": { - "id": $.env.PUBPUB_URL & "/c/" & $.community.slug, - "inbox": $.env.PUBPUB_URL & "/api/v0/c/" & $.community.slug & "/site/webhook/${WEBHOOK_PATH}", + "id": $.env.PUBSTAR_URL & "/c/" & $.community.slug, + "inbox": $.env.PUBSTAR_URL & "/api/v0/c/" & $.community.slug & "/site/webhook/${WEBHOOK_PATH}", "type": "Service" }, "target": $payload.actor @@ -677,7 +677,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Review request accepted: {{ $.pub.title }}", - body: "The review request **{{ $.pub.title }}** has been accepted.\n\nView: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", + body: "The review request **{{ $.pub.title }}** has been accepted.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, }, ], @@ -759,15 +759,15 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { "type": "Reject", "id": "urn:uuid:" & $.pub.id & ":reject", "actor": { - "id": $.env.PUBPUB_URL & "/c/" & $.community.slug, + "id": $.env.PUBSTAR_URL & "/c/" & $.community.slug, "type": "Service", "name": $.community.name }, "inReplyTo": $payload.id, "object": $payload.object, "origin": { - "id": $.env.PUBPUB_URL & "/c/" & $.community.slug, - "inbox": $.env.PUBPUB_URL & "/api/v0/c/" & $.community.slug & "/site/webhook/${WEBHOOK_PATH}", + "id": $.env.PUBSTAR_URL & "/c/" & $.community.slug, + "inbox": $.env.PUBSTAR_URL & "/api/v0/c/" & $.community.slug & "/site/webhook/${WEBHOOK_PATH}", "type": "Service" }, "target": $payload.actor, @@ -781,7 +781,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Review request rejected: {{ $.pub.title }}", - body: "The review request **{{ $.pub.title }}** has been rejected.\n\nView: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", + body: "The review request **{{ $.pub.title }}** has been rejected.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, }, ], @@ -934,7 +934,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Review published: {{ $.pub.title }}", - body: `Review **{{ $.pub.title }}** has been published and announced.\n\nView the pub: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, + body: `Review **{{ $.pub.title }}** has been published and announced.\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, }, }, ], @@ -973,7 +973,7 @@ export async function seedCoarUS3(communityId?: CommunitiesId) { id: communityId, name: "US3: Review Group", slug: "coar-us3-review-group", - avatar: `${env.PUBPUB_URL}/demo/croc.png`, + avatar: `${env.PUBSTAR_URL}/demo/croc.png`, }, pubFields: { Title: { schemaName: CoreSchemaType.String }, @@ -1157,7 +1157,7 @@ export async function seedCoarUS3(communityId?: CommunitiesId) { recipientEmail: "all@pubpub.org", subject: "Review published and announced: {{ $.pub.title }}", - body: `Review **{{ $.pub.title }}** has been published and sent to the aggregator.\n\nView the pub: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, + body: `Review **{{ $.pub.title }}** has been published and sent to the aggregator.\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, }, }, ], @@ -1199,7 +1199,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { id: communityId, name: "US4: Arcadia Science", slug: "coar-us4-repository", - avatar: `${env.PUBPUB_URL}/demo/croc.png`, + avatar: `${env.PUBSTAR_URL}/demo/croc.png`, }, pubFields: { Title: { schemaName: CoreSchemaType.String }, @@ -1308,7 +1308,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Ingest request accepted: {{ $.pub.title }}", - body: "The ingest request **{{ $.pub.title }}** has been accepted.\n\nView: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", + body: "The ingest request **{{ $.pub.title }}** has been accepted.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, }, { @@ -1336,7 +1336,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { config: { recipientEmail: "all@pubpub.org", subject: "Ingest request rejected: {{ $.pub.title }}", - body: "The ingest request **{{ $.pub.title }}** has been rejected.\n\nView: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", + body: "The ingest request **{{ $.pub.title }}** has been rejected.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, }, { @@ -1370,7 +1370,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { ], }, resolver: - '$.pub.id = {{ $replace($replace($eval($.pub.values.Payload).object.`as:inReplyTo`, $.env.PUBPUB_URL & "/c/" & $.community.slug & "/pubs/", ""), $.env.PUBPUB_URL & "/c/" & $.community.slug & "/pub/", "") }}', + '$.pub.id = {{ $replace($replace($eval($.pub.values.Payload).object.`as:inReplyTo`, $.env.PUBSTAR_URL & "/c/" & $.community.slug & "/pubs/", ""), $.env.PUBSTAR_URL & "/c/" & $.community.slug & "/pub/", "") }}', actions: [ { action: Action.createPub, @@ -1456,7 +1456,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { recipientEmail: "all@pubpub.org", subject: "Site published with new review: {{ $.pub.title }}", - body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBPUB_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, + body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, }, }, ], diff --git a/core/prisma/seeds/starter.ts b/core/prisma/seeds/starter.ts index b0e0785250..1adf13f5de 100644 --- a/core/prisma/seeds/starter.ts +++ b/core/prisma/seeds/starter.ts @@ -29,7 +29,7 @@ export async function seedStarter(communityId?: CommunitiesId) { id: communityId, name: "Starter", slug: "starter", - avatar: `${env.PUBPUB_URL}/demo/croc.png`, + avatar: `${env.PUBSTAR_URL}/demo/croc.png`, }, pubFields: { Title: { schemaName: CoreSchemaType.String }, diff --git a/docker-compose.test.yml b/docker-compose.test.yml index f00f4f8242..0dce915870 100644 --- a/docker-compose.test.yml +++ b/docker-compose.test.yml @@ -77,7 +77,7 @@ services: env_file: .env.docker-compose.dev environment: - OTEL_SERVICE_NAME=jobs.jobs - - PUBPUB_URL=${JOBS_INTEGRATION_PUBPUB_URL:-http://integration-tests:3000} + - PUBSTAR_URL=${JOBS_INTEGRATION_PUBSTAR_URL:-http://integration-tests:3000} networks: - app-network depends_on: @@ -101,7 +101,7 @@ services: condition: service_started # platform: linux/amd64 healthcheck: - test: ["CMD-SHELL", "curl http://integration-tests:3000/api/health"] + test: [ "CMD-SHELL", "curl http://integration-tests:3000/api/health" ] interval: 10s timeout: 5s retries: 5 @@ -129,7 +129,7 @@ services: profiles: - integration environment: - - PUBPUB_URL=http://integration-tests:3000 + - PUBSTAR_URL=http://integration-tests:3000 - S3_ENDPOINT=${S3_ENDPOINT:-http://minio:9000} - S3_REGION=${S3_REGION:-us-east-1} - S3_ACCESS_KEY=${S3_ACCESS_KEY:-preview-different} diff --git a/infra/.env.enc b/infra/.env.enc index f9b203ed11..0e2291d6d0 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -2,9 +2,9 @@ #ENC[AES256_GCM,data:pJ3VjS4e0TeggGUCLPa+4+F1NYWx91paUA/ffY0vWWDJUpf8ivr/Jv85eQFVBR7sk8yw5MO9NC6LADw=,iv:oCQtlZ7b31/op0dd8kWrAKe92Zc2Bznf5yO3W5tOuCM=,tag:z1mxBK9mMYjs8MFO7oHSVA==,type:comment] #ENC[AES256_GCM,data:dfFpdAIkvJggdLyayutIYNtmYFu9lVk54iHMRD92FvVCCkb0zu8U4N87MRJMk8hCZshTdywcKq6R8eJXnGNJ8Iq9jA==,iv:2KZ3ZaG96+d5gX6pmtm0asNBghFnmFLdHIDKCEAUP6U=,tag:nrAJ0HKrAEFy/IsAATTIdA==,type:comment] #ENC[AES256_GCM,data:nUOyYE5C9fViinr8fiD4mpUdaUdhTICzZe2/bfud1QDKe9pqPgx8mFqJNfcZgz4pQQ==,iv:l83DycBtw+vitLnslWtHbmt7uIYIuF76WP7GmqWrL3o=,tag:Er8cmFT0f4R3bUtMLeYpbQ==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:yL3am5+LtcgB59h15wzA,iv:Fd8YAisC3qy0ovlvMhr/0KFui3hnRPwg6v8KiSnvImw=,tag:J3bs1tGFCzxRmzArwo0VBg==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:p4xLl/NzrpAfhp+WzixfRerhj8AfmtU=,iv:3oQtsq25a7EYSb2IeEBX8ObLIS7kFmFMbYQ5anBHyN8=,tag:cd1XY92EM/whRJDgrex06A==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:yJiXMIVan4jG8En1pdjPVJba8l5ANXE=,iv:IFxBbzWPNQzuqr7kydrMQwb9fXcYAmciuNYCJ4M7pXs=,tag:5mWFODWIgvgXTjED8kAQww==,type:str] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:yL3am5+LtcgB59h15wzA,iv:Fd8YAisC3qy0ovlvMhr/0KFui3hnRPwg6v8KiSnvImw=,tag:J3bs1tGFCzxRmzArwo0VBg==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:p4xLl/NzrpAfhp+WzixfRerhj8AfmtU=,iv:3oQtsq25a7EYSb2IeEBX8ObLIS7kFmFMbYQ5anBHyN8=,tag:cd1XY92EM/whRJDgrex06A==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:yJiXMIVan4jG8En1pdjPVJba8l5ANXE=,iv:IFxBbzWPNQzuqr7kydrMQwb9fXcYAmciuNYCJ4M7pXs=,tag:5mWFODWIgvgXTjED8kAQww==,type:str] POSTGRES_USER=ENC[AES256_GCM,data:Cj1Q/YHT9A8=,iv:e+olSU4YJBbqXZHDjulnc2ULmIt/xfrfPzbupFBbxWs=,tag:26ZjxXtIb+jTAGzoydVf/Q==,type:str] POSTGRES_PASSWORD=ENC[AES256_GCM,data:ZRXVGP+apgH6XJogS2IvxGYyZmODcxBCuxNqyf/AjgUXD7BoAI2TzCYeJ0my+npsRcOy5e4ZfyDq2EXOu4apBA==,iv:ZPHhQ9icXwAMk1utJZGsXTt/KUi0+RncqiYZtwDnc98=,tag:AoARdiUeaQL+csGpEpVRVQ==,type:str] POSTGRES_DB=ENC[AES256_GCM,data:7xafFD9INA==,iv:hO/Tgah7J5S168hxNupIv/wKaRjTd7dchuBNX3U6voI=,tag:NIuLSEEm5AvPWq5V6GMChw==,type:str] diff --git a/infra/.env.example b/infra/.env.example index 1759e99e87..a3f2e9ae90 100644 --- a/infra/.env.example +++ b/infra/.env.example @@ -2,8 +2,8 @@ # copy this to .env, fill in real values, then encrypt with: # sops -e --input-type dotenv --output-type dotenv .env > .env.enc -PUBPUB_HOSTNAME=app.pubstar.org -PUBPUB_URL=https://app.pubstar.org +PUBSTAR_HOSTNAME=app.pubstar.org +PUBSTAR_URL=https://app.pubstar.org POSTGRES_USER= POSTGRES_PASSWORD= diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index 95d126d39b..fce016d2d2 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,8 +1,8 @@ #ENC[AES256_GCM,data:5P79lcBuF3CbVM0VJzpzuhETwVeNx5dN0zu8xfN8PnuF,iv:ig9iPXQxQ3QwptTMPf26DjZTQH37CxTkeifaxCpt1dM=,tag:7VmDnSH9oTHNe51I7G7WxA==,type:comment] #ENC[AES256_GCM,data:QD2RhZeun1gsRsqqmqrmMdZRsJdd+mnTwAupronNF9rNR2Cjk6yj5Hu1pG7Q00cR+52lQTnRWGIRSMM=,iv:X+Ri+r/jELTrCMWGfQ9tWkTy9Df5AvlGWxba/sAS+lE=,tag:ClQJw0d8hDnB2yE4jyft/w==,type:comment] #ENC[AES256_GCM,data:joznONlBjmY31a0p3mLOER5mDkkFZ2bc55NPuCu7zY3oSTjcpVQDvFQzJFiENn1sVTuBN7QG6K9QCFJtMRhNU4dtEw==,iv:snLb/mPiJyGrNiSFek7xPLCtv5B0bybt5rBllDiQBbA=,tag:ZYPlTtr3kR8wYxI4rgsecg==,type:comment] -PUBPUB_HOSTNAME=ENC[AES256_GCM,data:mXFUuRsutskcVWVuNj44+xX1cw==,iv:rIO3WzBnGX02w9j1qS5o1NbTYqNbBoYLesKvYudqBGw=,tag:Aoii3Z+iaATDXlvQD8NW3Q==,type:str] -PUBPUB_URL=ENC[AES256_GCM,data:vMYYz0t4c4R6A7GTopTilppm8YaNQhOL6uGO,iv:Cl34GCjHbDHsH+ITriUPVVq9H+j6GVzQyPyJqzm5nuI=,tag:gwx4188rtEIb+a647FCYWA==,type:str] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:mXFUuRsutskcVWVuNj44+xX1cw==,iv:rIO3WzBnGX02w9j1qS5o1NbTYqNbBoYLesKvYudqBGw=,tag:Aoii3Z+iaATDXlvQD8NW3Q==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:vMYYz0t4c4R6A7GTopTilppm8YaNQhOL6uGO,iv:Cl34GCjHbDHsH+ITriUPVVq9H+j6GVzQyPyJqzm5nuI=,tag:gwx4188rtEIb+a647FCYWA==,type:str] POSTGRES_USER=ENC[AES256_GCM,data:Nu+OTUszI0k=,iv:QIELCyR7Q+rtfykysvqaWCaolAvVh7NYks9tTsQ+XPA=,tag:wlQ7tbSEnt3+FtywPBfn8A==,type:str] POSTGRES_PASSWORD=ENC[AES256_GCM,data:t2cS2TwihLc=,iv:y135FrsmxCGdGFTbs+WjjjJCYJGb+6LQcqyGdoyzYFg=,tag:8fvsmDh6aXUOntA1CzL32A==,type:str] POSTGRES_DB=ENC[AES256_GCM,data:lNlWmCn+7Q==,iv:7+hVQvtCT8Ez2S73+BpQAmb3IBOiKQfHe1HqFTU70Zc=,tag:Dh1zzuJuHBSulUPTeiD9YA==,type:str] diff --git a/infra/Caddyfile b/infra/Caddyfile index b438c3774c..d3ea92dd59 100644 --- a/infra/Caddyfile +++ b/infra/Caddyfile @@ -3,7 +3,7 @@ debug } -{$PUBPUB_HOSTNAME} { +{$PUBSTAR_HOSTNAME} { encode gzip handle_path /site-builder* { diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 303ff838a7..e3386bd725 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -9,8 +9,8 @@ services: NODE_ENV: production PORT: '3000' DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: https://${DEPLOY_HOST} - PUBPUB_HOSTNAME: ${DEPLOY_HOST} + PUBSTAR_URL: https://${DEPLOY_HOST} + PUBSTAR_HOSTNAME: ${DEPLOY_HOST} SITE_BUILDER_ENDPOINT: http://site-builder:4000 S3_ENDPOINT: https://${ASSETS_HOST} S3_PUBLIC_ENDPOINT: https://${ASSETS_HOST} @@ -46,7 +46,7 @@ services: environment: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: http://platform:3000 + PUBSTAR_URL: http://platform:3000 networks: [appnet] deploy: replicas: 1 @@ -59,7 +59,7 @@ services: environment: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: http://platform:3000 + PUBSTAR_URL: http://platform:3000 PORT: '4000' SITES_BASE_URL: https://${DEPLOY_HOST}/sites S3_ENDPOINT: https://${ASSETS_HOST} @@ -152,7 +152,7 @@ services: image: ghcr.io/knowledgefutures/mock-coar-notify-server:${IMAGE_TAG} networks: [appnet] environment: - PUBPUB_URL: https://${DEPLOY_HOST} + PUBSTAR_URL: https://${DEPLOY_HOST} ports: - target: 3000 published: ${MOCK_NOTIFY_PORT} diff --git a/infra/stack.yml b/infra/stack.yml index 4580b75bdc..9ac048dcf4 100644 --- a/infra/stack.yml +++ b/infra/stack.yml @@ -62,7 +62,7 @@ services: environment: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: http://platform:3000 + PUBSTAR_URL: http://platform:3000 networks: [appnet] deploy: replicas: 1 @@ -80,7 +80,7 @@ services: environment: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} - PUBPUB_URL: http://platform:3000 + PUBSTAR_URL: http://platform:3000 PORT: '4000' S3_PUBLIC_ENDPOINT: https://assets.pubstar.org networks: [appnet] diff --git a/jobs/.env.development b/jobs/.env.development index c998c90202..6b98a63c2f 100644 --- a/jobs/.env.development +++ b/jobs/.env.development @@ -1,3 +1,3 @@ API_KEY="super_secret_key" DATABASE_URL="postgresql://postgres:postgres@localhost:54322/postgres" -PUBPUB_URL="http://localhost:3000" \ No newline at end of file +PUBSTAR_HOSTNAME="http://localhost:3000" \ No newline at end of file diff --git a/jobs/src/clients.ts b/jobs/src/clients.ts index 71b9a4e7b5..5b0cc07606 100644 --- a/jobs/src/clients.ts +++ b/jobs/src/clients.ts @@ -3,7 +3,7 @@ import { initClient } from "@ts-rest/core" import { api } from "contracts" export const internalClient = initClient(api.internal, { - baseUrl: `${process.env.PUBPUB_URL}`, + baseUrl: `${process.env.PUBSTAR_URL}`, baseHeaders: { authorization: `Bearer ${process.env.API_KEY}` }, jsonQuery: true, }) diff --git a/mock-notify/src/app/page.tsx b/mock-notify/src/app/page.tsx index c11576f2a3..013d70ab10 100644 --- a/mock-notify/src/app/page.tsx +++ b/mock-notify/src/app/page.tsx @@ -7,7 +7,7 @@ const basePath = process.env.BASE_PATH || "" export const dynamic = "force-dynamic" export default function Page() { - const pubpubUrl = process.env.PUBPUB_URL || "http://localhost:3000" + const pubpubUrl = process.env.PUBSTAR_URL || "http://localhost:3000" const selfUrl = basePath ? `${pubpubUrl}${basePath}` diff --git a/mock-notify/src/app/reviews/sample-review/docmap/route.ts b/mock-notify/src/app/reviews/sample-review/docmap/route.ts index 0bebb186ac..3cbdfddeaf 100644 --- a/mock-notify/src/app/reviews/sample-review/docmap/route.ts +++ b/mock-notify/src/app/reviews/sample-review/docmap/route.ts @@ -1,5 +1,5 @@ const basePath = process.env.BASE_PATH || "" -const pubpubUrl = process.env.PUBPUB_URL || "http://localhost:4001" +const pubpubUrl = process.env.PUBSTAR_URL || "http://localhost:4001" const selfUrl = basePath ? `${pubpubUrl}${basePath}` : pubpubUrl const REVIEW_URL = `${selfUrl}/reviews/sample-review` diff --git a/mock-notify/src/app/reviews/sample-review/route.ts b/mock-notify/src/app/reviews/sample-review/route.ts index c1f0111812..9af344f5ca 100644 --- a/mock-notify/src/app/reviews/sample-review/route.ts +++ b/mock-notify/src/app/reviews/sample-review/route.ts @@ -1,5 +1,5 @@ const basePath = process.env.BASE_PATH || "" -const pubpubUrl = process.env.PUBPUB_URL || "http://localhost:4001" +const pubpubUrl = process.env.PUBSTAR_URL || "http://localhost:4001" const selfUrl = basePath ? `${pubpubUrl}${basePath}` : pubpubUrl const REVIEW_URL = `${selfUrl}/reviews/sample-review` diff --git a/packages/emails/.env.development b/packages/emails/.env.development index 9de4176119..101030a7cf 100644 --- a/packages/emails/.env.development +++ b/packages/emails/.env.development @@ -1 +1 @@ -PUBPUB_URL=http://localhost:3000 +PUBSTAR_HOSTNAME=http://localhost:3000 diff --git a/packages/emails/src/form-link.tsx b/packages/emails/src/form-link.tsx index b28c5ffe2d..a95a621f33 100644 --- a/packages/emails/src/form-link.tsx +++ b/packages/emails/src/form-link.tsx @@ -35,7 +35,7 @@ export const FormLink = ({ form, previewText = `Requesting access to ${form.name}`, }: RequestAccessToForm) => { - const baseUrl = process.env.PUBPUB_URL ?? "" + const baseUrl = process.env.PUBSTAR_URL ?? "" return ( diff --git a/packages/emails/src/password-reset.tsx b/packages/emails/src/password-reset.tsx index 48a1e878bd..df398d95e2 100644 --- a/packages/emails/src/password-reset.tsx +++ b/packages/emails/src/password-reset.tsx @@ -28,7 +28,7 @@ export const PasswordReset = ({ resetPasswordLink, previewText = `Reset your PubPub password`, }: ForgotPasswordProps) => { - const baseUrl = process.env.PUBPUB_URL ? process.env.PUBPUB_URL : "" + const baseUrl = process.env.PUBSTAR_URL ? process.env.PUBSTAR_URL : "" return ( diff --git a/packages/emails/src/signup-invite.tsx b/packages/emails/src/signup-invite.tsx index 179e197a7b..b611ccef31 100644 --- a/packages/emails/src/signup-invite.tsx +++ b/packages/emails/src/signup-invite.tsx @@ -91,7 +91,7 @@ const defaultPreviewText = (props: SignupInviteProps) => { } export const Invite = (props: SignupInviteProps) => { - const baseUrl = process.env.PUBPUB_URL ?? "" + const baseUrl = process.env.PUBSTAR_URL ?? "" const community = props.community ?? { name: "CrocCroc", diff --git a/packages/emails/src/verify-email.tsx b/packages/emails/src/verify-email.tsx index 69d03d5166..4baa63116e 100644 --- a/packages/emails/src/verify-email.tsx +++ b/packages/emails/src/verify-email.tsx @@ -26,7 +26,7 @@ export const VerifyEmail = ({ verifyEmailLink, previewText = `Verify your email`, }: VerifyEmailprops) => { - const baseUrl = process.env.PUBPUB_URL ? process.env.PUBPUB_URL : "" + const baseUrl = process.env.PUBSTAR_URL ? process.env.PUBSTAR_URL : "" return ( diff --git a/self-host/.env.example b/self-host/.env.example index dcbd19d00b..a4a9c1b8e3 100644 --- a/self-host/.env.example +++ b/self-host/.env.example @@ -1,7 +1,7 @@ # the default url of the platform -PUBPUB_URL=http://localhost:3000 # the url of the platform +PUBSTAR_URL=http://localhost:3000 # the url of the platform # change this to eg -# PUBPUB_URL=https://platform.example.com +# PUBSTAR_URL=https://platform.example.com # for a production environment diff --git a/self-host/docker-compose.yml b/self-host/docker-compose.yml index 7da14d3903..0c82022809 100644 --- a/self-host/docker-compose.yml +++ b/self-host/docker-compose.yml @@ -34,7 +34,7 @@ services: environment: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} # change this if you change the platform port - PUBPUB_URL: http://platform:3000 + PUBSTAR_URL: http://platform:3000 networks: - app-network diff --git a/site-builder-2/.env.development b/site-builder-2/.env.development index 7ec4258e58..856a94ec1f 100644 --- a/site-builder-2/.env.development +++ b/site-builder-2/.env.development @@ -1,5 +1,5 @@ # env vars for sitebuilder -PUBPUB_URL=http://localhost:3000 +PUBSTAR_URL=http://localhost:3000 # change these to the tokens for the community you want to test the site for # this does not need to be a site-building token, it can be any with the correct permissions. # TODO: add a seed that by default actually works with the site diff --git a/site-builder-2/.env.server.development b/site-builder-2/.env.server.development index bcb75ed60c..303ab43cfc 100644 --- a/site-builder-2/.env.server.development +++ b/site-builder-2/.env.server.development @@ -1,4 +1,4 @@ -PUBPUB_URL=http://localhost:3000 +PUBSTAR_URL=http://localhost:3000 S3_ACCESS_KEY=pubpubuser S3_SECRET_KEY=pubpubpass S3_ENDPOINT=http://localhost:9000 diff --git a/site-builder-2/server/env.ts b/site-builder-2/server/env.ts index 8f6799c9c5..22da1bdc29 100644 --- a/site-builder-2/server/env.ts +++ b/site-builder-2/server/env.ts @@ -3,7 +3,7 @@ import { z } from "zod" export const SERVER_ENV = createEnv({ server: { - PUBPUB_URL: z.string().url(), + PUBSTAR_URL: z.string().url(), S3_ENDPOINT: z.string().url().optional(), S3_PUBLIC_ENDPOINT: z.string().url().optional(), S3_REGION: z.string(), diff --git a/site-builder-2/server/server.ts b/site-builder-2/server/server.ts index f1f45aedec..8303781589 100644 --- a/site-builder-2/server/server.ts +++ b/site-builder-2/server/server.ts @@ -327,7 +327,7 @@ const verifySiteBuilderToken = async (authHeader: string, communitySlug: string) } const client = initClient(siteApi, { - baseUrl: SERVER_ENV.PUBPUB_URL, + baseUrl: SERVER_ENV.PUBSTAR_URL, baseHeaders: { Authorization: authHeader, }, @@ -474,7 +474,7 @@ const renderPageGroup = async ( const context: Record = { pubs: pubProxies, community: communityContext, - env: { PUBPUB_URL: opts.siteUrl }, + env: { PUBSTAR_URL: opts.siteUrl }, } const [slugErr, slug] = await tryCatch(interpolate(group.slugTemplate, context)) const interpolatedSlug = (slugErr ? "index" : slug) as string @@ -501,7 +501,7 @@ const renderPageGroup = async ( const context: Record = { pub: pubProxy, community: communityContext, - env: { PUBPUB_URL: opts.siteUrl }, + env: { PUBSTAR_URL: opts.siteUrl }, } const [slugErr, slug] = await tryCatch(interpolate(group.slugTemplate, context)) if (slugErr) logger.error({ msg: "Error interpolating slug", err: slugErr }) From cb90600afa87347d5bda55778e382aafafceabe0 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 16:23:30 +0200 Subject: [PATCH 138/153] fix: more pubstar->pubpub --- .env.docker-compose.dev | 2 +- .env.example | 6 +- .github/workflows/ci.yml | 124 +- biome.jsonc | 16 +- config/tailwind/package.json | 2 +- core/.env.development | 4 +- core/actions/_lib/ActionConfigBuilder.ts | 2 +- .../_lib/ActionFieldJsonataTestPanel.tsx | 2 +- core/actions/_lib/evaluateConditions.ts | 3 +- core/actions/_lib/resolveAutomationInput.ts | 2 +- .../actions/_lib/runActionInstance.db.test.ts | 2 +- core/actions/buildSite/formActions.ts | 3 +- core/actions/buildSite/run.tsx | 2 +- core/actions/createPub/run.ts | 3 +- core/actions/http/run.tsx | 2 +- .../site/[...ts-rest]/route.ts | 2 +- .../developers/docs/openapi.json/openApi.ts | 2 +- core/app/globals.css | 2 +- core/cache-handler.mjs | 2 +- core/lib/server/cache/constants.ts | 4 +- core/lib/server/cache/getCommunitySlug.ts | 4 +- .../render/pub/renderMarkdownWithPub.ts | 4 +- core/middleware.ts | 4 +- core/package.json | 4 +- core/playwright/login.flows.ts | 2 +- core/playwright/login.spec.ts | 4 +- core/prisma/consolidated-triggers.sql | 3 - core/prisma/seed/seedCommunity.db.test.ts | 2 +- core/prisma/seeds/coar-notify.ts | 30 +- core/prisma/seeds/legacy.ts | 4 +- core/prisma/seeds/starter.ts | 8 +- core/prisma/seeds/users.ts | 12 +- development/docker-compose.dev.yml | 4 +- .../development/testing/1-e2e-tests.mdx | 22 +- docs/content/infrastructure/nginx.mdx | 2 +- packages/context-editor/.env.development | 2 +- packages/context-editor/.env.test | 2 +- .../context-editor/src/schemas/contextDoc.ts | 2 +- .../src/stories/MediaUpload.stories.tsx | 2 +- packages/db/src/public/Action.ts | 2 +- packages/db/src/public/PublicSchema.ts | 70 +- packages/json-interpolate/package.json | 4 +- packages/ui/src/monaco/MonacoEditor.tsx | 4 +- packages/ui/src/monaco/languages/jsonata.ts | 4 +- pnpm-lock.yaml | 16123 ++++++++++++---- self-host/.env.example | 2 +- self-host/docker-compose.yml | 2 - site-builder-2/.env.server.development | 2 +- site-builder-2/package.json | 2 +- site-builder-2/server/server.ts | 2 +- 50 files changed, 12260 insertions(+), 4261 deletions(-) diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index 3761615f8f..d91c3d3c38 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -1,7 +1,7 @@ # garage admin token for init script GARAGE_ADMIN_TOKEN=dev_admin_token -S3_BUCKET_NAME=assets.v7.pubpub.org +S3_BUCKET_NAME=assets.pubpub.org S3_ACCESS_KEY=pubpubuser S3_SECRET_KEY=pubpubpass S3_REGION=garage diff --git a/.env.example b/.env.example index 37cbb2106a..4bdb59a5be 100644 --- a/.env.example +++ b/.env.example @@ -13,8 +13,8 @@ VALKEY_HOST=localhost VALKEY_PORT=6379 # Minio configuration -MINIO_ROOT_USER=pubpub-admin -MINIO_ROOT_PASSWORD=pubpub-admin +MINIO_ROOT_USER=pubstar-admin +MINIO_ROOT_PASSWORD=pubstar-admin S3_BUCKET_NAME=assets.pubpub.local S3_ACCESS_KEY=pubpubuser S3_SECRET_KEY=pubpubpass @@ -39,7 +39,7 @@ API_KEY=super_secret_key PUBSTAR_URL=http://localhost:3000 # Other configuration -OTEL_SERVICE_NAME=pubpub-v7-dev +OTEL_SERVICE_NAME=pubstar-v7-dev HONEYCOMB_API_KEY=xxx # Volume types (can be overridden per environment) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 90feb64686..8821e92e10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,77 +1,77 @@ -name: "CI" +name: 'CI' on: - workflow_call: - inputs: - image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 - type: string # use this to force a container version. - workflow_dispatch: + workflow_call: + inputs: + image-tag-override: # example: latest, 7037e37a18a379d583164441baff9e594cc479f8 + type: string # use this to force a container version. + workflow_dispatch: env: - CI: true - AWS_REGION: us-east-1 + CI: true + AWS_REGION: us-east-1 - ECR_REPOSITORY_PREFIX: pubpub-v7 - CONTAINER_NAME: core + ECR_REPOSITORY_PREFIX: pubstar-v7 + CONTAINER_NAME: core jobs: - ci: - timeout-minutes: 15 - runs-on: ubuntu-latest - strategy: - matrix: - task: - - lint:ci - - type-check - - test-run - env: - COMPOSE_FILE: docker-compose.test.yml - ENV_FILE: .env.docker-compose.dev - steps: - - name: Checkout - uses: actions/checkout@v6 + ci: + timeout-minutes: 15 + runs-on: ubuntu-latest + strategy: + matrix: + task: + - lint:ci + - type-check + - test-run + env: + COMPOSE_FILE: docker-compose.test.yml + ENV_FILE: .env.docker-compose.dev + steps: + - name: Checkout + uses: actions/checkout@v6 - - name: Install Node.js - uses: actions/setup-node@v6 - with: - node-version: 22.13.1 + - name: Install Node.js + uses: actions/setup-node@v6 + with: + node-version: 22.13.1 - - uses: pnpm/action-setup@v5 - name: Install pnpm - with: - run_install: false + - uses: pnpm/action-setup@v5 + name: Install pnpm + with: + run_install: false - - name: Get pnpm store directory - id: get-store-path - shell: bash - run: | - echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT + - name: Get pnpm store directory + id: get-store-path + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_OUTPUT - - name: Setup pnpm cache - uses: actions/cache@v5 - with: - path: ${{ steps.get-store-path.outputs.STORE_PATH }} - key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} - restore-keys: | - ${{ runner.os }}-pnpm-store- + - name: Setup pnpm cache + uses: actions/cache@v5 + with: + path: ${{ steps.get-store-path.outputs.STORE_PATH }} + key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + ${{ runner.os }}-pnpm-store- - # to cache p:build, format, lint, type-check and test-run - - name: Setup turbo cache - uses: actions/cache@v5 - with: - path: .turbo - key: ${{ runner.os }}-turbo-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-turbo- + # to cache p:build, format, lint, type-check and test-run + - name: Setup turbo cache + uses: actions/cache@v5 + with: + path: .turbo + key: ${{ runner.os }}-turbo-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-turbo- - - name: Install dependencies - run: pnpm install --frozen-lockfile --prefer-offline + - name: Install dependencies + run: pnpm install --frozen-lockfile --prefer-offline - - name: p:build - run: pnpm p:build + - name: p:build + run: pnpm p:build - - name: Setup test dependencies - if: matrix.task == 'test-run' - run: pnpm test:setup + - name: Setup test dependencies + if: matrix.task == 'test-run' + run: pnpm test:setup - - name: Run task - run: NODE_ENV=test pnpm ${{ matrix.task }} + - name: Run task + run: NODE_ENV=test pnpm ${{ matrix.task }} diff --git a/biome.jsonc b/biome.jsonc index 46f2139ffc..eab97c8912 100644 --- a/biome.jsonc +++ b/biome.jsonc @@ -162,14 +162,14 @@ "!lib/**", "!db/**", "!ui/**", - "!@pubpub/**", + "!@pubstar/**", "!utils/**", "!contracts/**", "!logger/**", "!lib", "!db", "!ui", - "!@pubpub", + "!@pubstar", "!utils", "!contracts", "!logger" @@ -182,14 +182,14 @@ "lib/**", "db/**", "ui/**", - "@pubpub/**", + "@pubstar/**", "utils/**", "contracts/**", "logger/**", "lib", "db", "ui", - "@pubpub", + "@pubstar", "utils", "contracts", "logger" @@ -218,14 +218,14 @@ "!lib/**", "!db/**", "!ui/**", - "!@pubpub/**", + "!@pubstar/**", "!utils/**", "!contracts/**", "!logger/**", "!lib", "!db", "!ui", - "!@pubpub", + "!@pubstar", "!utils", "!contracts", "!logger" @@ -238,14 +238,14 @@ "lib/**", "db/**", "ui/**", - "@pubpub/**", + "@pubstar/**", "utils/**", "contracts/**", "logger/**", "lib", "db", "ui", - "@pubpub", + "@pubstar", "utils", "contracts", "logger" diff --git a/config/tailwind/package.json b/config/tailwind/package.json index 38f4500628..644ae2f902 100644 --- a/config/tailwind/package.json +++ b/config/tailwind/package.json @@ -1,5 +1,5 @@ { - "name": "@pubpub/tailwind", + "name": "@pubstar/tailwind", "type": "module", "version": "0.0.0", "private": true, diff --git a/core/.env.development b/core/.env.development index eefcd089ad..0ea880b296 100644 --- a/core/.env.development +++ b/core/.env.development @@ -5,7 +5,7 @@ DATABASE_URL=postgresql://postgres:postgres@localhost:54322/postgres PUBSTAR_URL=http://localhost:3000 # mninio defaults -S3_BUCKET_NAME=assets.v7.pubpub.org +S3_BUCKET_NAME=assets.pubpub.org S3_REGION=us-east-1 S3_ACCESS_KEY=pubpubuser S3_SECRET_KEY=pubpubpass @@ -14,7 +14,7 @@ S3_STORAGE_ENDPOINT=http://localhost:9000 SMTP_PASSWORD=xxx SMTP_USERNAME=xxx -OTEL_SERVICE_NAME=pubpub-v7-dev +OTEL_SERVICE_NAME=pubstar-v7-dev HONEYCOMB_API_KEY=xxx ARTILLERY_CLOUD_API_KEY=xxx diff --git a/core/actions/_lib/ActionConfigBuilder.ts b/core/actions/_lib/ActionConfigBuilder.ts index a4a6409f6e..825c9ea8e6 100644 --- a/core/actions/_lib/ActionConfigBuilder.ts +++ b/core/actions/_lib/ActionConfigBuilder.ts @@ -336,7 +336,7 @@ export class ActionConfigBuilder< try { // to prevent this from being bundled into the main bundle, we import it here - const { interpolate } = await import("@pubpub/json-interpolate") + const { interpolate } = await import("@pubstar/json-interpolate") const interpolateValue = async (value: unknown, data: unknown): Promise => { if (typeof value !== "string") { diff --git a/core/actions/_lib/ActionFieldJsonataTestPanel.tsx b/core/actions/_lib/ActionFieldJsonataTestPanel.tsx index c9433071aa..925c89f6ab 100644 --- a/core/actions/_lib/ActionFieldJsonataTestPanel.tsx +++ b/core/actions/_lib/ActionFieldJsonataTestPanel.tsx @@ -4,11 +4,11 @@ import type z from "zod" import type { ActionFormContextContextValue } from "./ActionForm" import { useCallback, useEffect, useMemo, useRef, useState } from "react" +import { interpolate } from "@pubstar/json-interpolate" import { skipToken } from "@tanstack/react-query" import { AlertCircle, CheckCircle2, Loader2, Play, Zap, ZapOff } from "lucide-react" import { useWatch } from "react-hook-form" -import { interpolate } from "@pubpub/json-interpolate" import { Alert, AlertDescription } from "ui/alert" import { Button } from "ui/button" import { Label } from "ui/label" diff --git a/core/actions/_lib/evaluateConditions.ts b/core/actions/_lib/evaluateConditions.ts index 863bb0c5ed..c39a61f455 100644 --- a/core/actions/_lib/evaluateConditions.ts +++ b/core/actions/_lib/evaluateConditions.ts @@ -1,6 +1,7 @@ import type { ConditionBlock } from "db/types" -import { interpolate } from "@pubpub/json-interpolate" +import { interpolate } from "@pubstar/json-interpolate" + import { AutomationConditionBlockType } from "db/public" type ConditionItem = ConditionBlock["items"][number] diff --git a/core/actions/_lib/resolveAutomationInput.ts b/core/actions/_lib/resolveAutomationInput.ts index 28649470e7..0d2cb4ae3f 100644 --- a/core/actions/_lib/resolveAutomationInput.ts +++ b/core/actions/_lib/resolveAutomationInput.ts @@ -3,9 +3,9 @@ import type { CommunitiesId } from "db/public" import type { FullAutomation, Json } from "db/types" import type { InterpolationContext } from "./interpolationContext" +import { interpolate } from "@pubstar/json-interpolate" import jsonata from "jsonata" -import { interpolate } from "@pubpub/json-interpolate" import { logger } from "logger" import { tryCatch } from "utils/try-catch" diff --git a/core/actions/_lib/runActionInstance.db.test.ts b/core/actions/_lib/runActionInstance.db.test.ts index af61396694..f03643383b 100644 --- a/core/actions/_lib/runActionInstance.db.test.ts +++ b/core/actions/_lib/runActionInstance.db.test.ts @@ -61,7 +61,7 @@ const pubTriggerTestSeed = async () => { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", body: "Hello", subject: "Test", }, diff --git a/core/actions/buildSite/formActions.ts b/core/actions/buildSite/formActions.ts index cbcf967c98..c3d147ec43 100644 --- a/core/actions/buildSite/formActions.ts +++ b/core/actions/buildSite/formActions.ts @@ -1,6 +1,7 @@ "use server" -import { interpolate } from "@pubpub/json-interpolate" +import { interpolate } from "@pubstar/json-interpolate" + import { logger } from "logger" import { getLoginData } from "~/lib/authentication/loginData" diff --git a/core/actions/buildSite/run.tsx b/core/actions/buildSite/run.tsx index 177dda5b22..8df1e0b7f5 100644 --- a/core/actions/buildSite/run.tsx +++ b/core/actions/buildSite/run.tsx @@ -6,10 +6,10 @@ import type { PubsId } from "db/public" import type { PubValues } from "~/lib/server" import type { action } from "./action" +import { interpolate } from "@pubstar/json-interpolate" import { initClient } from "@ts-rest/core" import { JSONPath } from "jsonpath-plus" -import { interpolate } from "@pubpub/json-interpolate" import { siteBuilderApi } from "contracts/resources/site-builder-2" import { logger } from "logger" import { tryCatch } from "utils/try-catch" diff --git a/core/actions/createPub/run.ts b/core/actions/createPub/run.ts index fb18d2746a..7fa1513c56 100644 --- a/core/actions/createPub/run.ts +++ b/core/actions/createPub/run.ts @@ -4,7 +4,8 @@ import type { Json, JsonValue } from "contracts" import type { PubFieldsId, PubsId, PubTypesId, StagesId } from "db/public" import type { action } from "./action" -import { interpolate } from "@pubpub/json-interpolate" +import { interpolate } from "@pubstar/json-interpolate" + import { logger } from "logger" import { db } from "~/kysely/database" diff --git a/core/actions/http/run.tsx b/core/actions/http/run.tsx index e75ffbd24a..81c5500f97 100644 --- a/core/actions/http/run.tsx +++ b/core/actions/http/run.tsx @@ -5,9 +5,9 @@ import type { PubsId } from "db/public" import type { PubValues } from "~/lib/server" import type { action } from "./action" +import { interpolate } from "@pubstar/json-interpolate" import { JSONPath } from "jsonpath-plus" -import { interpolate } from "@pubpub/json-interpolate" import { logger } from "logger" import { env } from "~/lib/env/env" diff --git a/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts b/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts index a920633e3f..048215f539 100644 --- a/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts +++ b/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts @@ -1,9 +1,9 @@ import type { CommunitiesId, CommunityMembershipsId, PubsId, PubTypesId, StagesId } from "db/public" import type { ExpressionBuilder, ExpressionWrapper } from "kysely" +import { interpolate } from "@pubstar/json-interpolate" import { createNextHandler } from "@ts-rest/serverless/next" -import { interpolate } from "@pubpub/json-interpolate" import { siteApi, TOTAL_PUBS_COUNT_HEADER } from "contracts" import { ApiAccessScope, diff --git a/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts b/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts index 90018c3a5f..05ff996c74 100644 --- a/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts +++ b/core/app/c/[communitySlug]/developers/docs/openapi.json/openApi.ts @@ -42,7 +42,7 @@ export const createOpenApiDocument = (communitySlug?: string): OpenAPIObject => contact: { name: "PubPub", url: "https://help.pubpub.org", - email: "hello@pubpub.org", + email: "hello@pubstar.org", }, license: { name: "GPL v2.0+", diff --git a/core/app/globals.css b/core/app/globals.css index eaafb9f848..22fd5dfc33 100644 --- a/core/app/globals.css +++ b/core/app/globals.css @@ -1,6 +1,6 @@ @import "tailwindcss"; -@import "@pubpub/tailwind/style.css"; +@import "@pubstar/tailwind/style.css"; @source "../../packages/ui/src/**/*.{ts,tsx}"; diff --git a/core/cache-handler.mjs b/core/cache-handler.mjs index fc7de10345..ea4102e2c1 100644 --- a/core/cache-handler.mjs +++ b/core/cache-handler.mjs @@ -102,7 +102,7 @@ function createRedisHandler({ } const revalidatedTagsKey = keyPrefix + REVALIDATED_TAGS_KEY return { - name: "pubpub-redis-strings", + name: "pubstar-redis-strings", async get(key, { implicitTags }) { try { assertClientIsReady() diff --git a/core/lib/server/cache/constants.ts b/core/lib/server/cache/constants.ts index b50ce4f301..67382c6e04 100644 --- a/core/lib/server/cache/constants.ts +++ b/core/lib/server/cache/constants.ts @@ -1,6 +1,6 @@ -export const PUBPUB_COMMUNITY_SLUG_COOKIE_NAME = "pubpub_community_slug" as const +export const PUBSTAR_COMMUNITY_SLUG_COOKIE_NAME = "pubstar_community_slug" as const -export const PUBPUB_COMMUNITY_SLUG_HEADER_NAME = "x-pubpub-community-slug" as const +export const PUBSTAR_COMMUNITY_SLUG_HEADER_NAME = "x-pubstar-community-slug" as const /** * In seconds diff --git a/core/lib/server/cache/getCommunitySlug.ts b/core/lib/server/cache/getCommunitySlug.ts index 2700a6e8f1..3c0e1861b2 100644 --- a/core/lib/server/cache/getCommunitySlug.ts +++ b/core/lib/server/cache/getCommunitySlug.ts @@ -2,7 +2,7 @@ import { cache } from "react" import { headers } from "next/headers" import { getParams } from "@nimpl/getters/get-params" -import { PUBPUB_COMMUNITY_SLUG_HEADER_NAME } from "./constants" +import { PUBSTAR_COMMUNITY_SLUG_HEADER_NAME } from "./constants" /** * Experimental and likely unstable way to get the community slug. @@ -33,7 +33,7 @@ export class NotInCommunityError extends Error { */ export const getCommunitySlug = cache(async () => { const header = await headers() - const communitySlugHeader = header.get(PUBPUB_COMMUNITY_SLUG_HEADER_NAME) + const communitySlugHeader = header.get(PUBSTAR_COMMUNITY_SLUG_HEADER_NAME) if (!communitySlugHeader) { throw new NotInCommunityError() } diff --git a/core/lib/server/render/pub/renderMarkdownWithPub.ts b/core/lib/server/render/pub/renderMarkdownWithPub.ts index 60e8e12807..fdfcec1072 100644 --- a/core/lib/server/render/pub/renderMarkdownWithPub.ts +++ b/core/lib/server/render/pub/renderMarkdownWithPub.ts @@ -138,14 +138,14 @@ const visitLinkDirective = (node: Directive, context: utils.RenderWithPubContext // All directives are considered parent nodes assert(isParent(node)) let href: string - // :link{email=all@pubpub.org} + // :link{email=all@pubstar.org} if ("email" in attrs) { // The `email` attribute must have a value. For example, :link{email=""} // is invalid. const email = expect(attrs.email, 'Unexpected missing value in ":link{email=?}" directive') href = utils.renderLink(context, { email }) // If the email has no label, default to the email address, e.g. - // :link{email=all@pubpub.org} -> :link[all@pubpub.org]{email=all@pubpub.org} + // :link{email=all@pubstar.org} -> :link[all@pubstar.org]{email=all@pubstar.org} if (node.children.length === 0 && attrs.text === undefined) { node.children.push({ type: "text", value: email }) } diff --git a/core/middleware.ts b/core/middleware.ts index 42a327c95d..b5dec6a185 100644 --- a/core/middleware.ts +++ b/core/middleware.ts @@ -2,7 +2,7 @@ import type { NextRequest } from "next/server" import { NextResponse } from "next/server" -import { PUBPUB_COMMUNITY_SLUG_HEADER_NAME } from "./lib/server/cache/constants" +import { PUBSTAR_COMMUNITY_SLUG_HEADER_NAME } from "./lib/server/cache/constants" const communityRouteRegexp = /^\/c\/([^/]*?)(?:$|\/)|\/api\/v\d\/c\/([^/]*?)\// @@ -27,7 +27,7 @@ const communitySlugMiddleware = async (request: NextRequest) => { const response = NextResponse.next() - response.headers.set(PUBPUB_COMMUNITY_SLUG_HEADER_NAME, communitySlug) + response.headers.set(PUBSTAR_COMMUNITY_SLUG_HEADER_NAME, communitySlug) return response } diff --git a/core/package.json b/core/package.json index 077ea52284..536777d9ab 100644 --- a/core/package.json +++ b/core/package.json @@ -74,7 +74,7 @@ "@node-rs/argon2": "^1.8.3", "@opentelemetry/auto-instrumentations-node": "catalog:", "@prisma/client": "5.19.1", - "@pubpub/json-interpolate": "workspace:*", + "@pubstar/json-interpolate": "workspace:*", "@react-email/render": "^1.2.0", "@sentry/nextjs": "catalog:", "@sinclair/typebox": "catalog:", @@ -169,7 +169,7 @@ "@preconstruct/next": "^4.0.0", "@prisma/generator-helper": "^5.22.0", "@prisma/internals": "^5.22.0", - "@pubpub/tailwind": "workspace:*", + "@pubstar/tailwind": "workspace:*", "@storybook/addon-docs": "^9.1.2", "@storybook/addon-onboarding": "^9.1.2", "@storybook/addon-vitest": "9.0.8", diff --git a/core/playwright/login.flows.ts b/core/playwright/login.flows.ts index 4c05175d78..5287d94dc3 100644 --- a/core/playwright/login.flows.ts +++ b/core/playwright/login.flows.ts @@ -2,7 +2,7 @@ import type { Page } from "@playwright/test" import { LoginPage } from "./fixtures/login-page" -export const login = async (page: Page, email = "all@pubpub.org", password = "pubpub-all") => { +export const login = async (page: Page, email = "all@pubstar.org", password = "pubstar-all") => { const loginPage = new LoginPage(page) await loginPage.goto() await loginPage.loginAndWaitForNavigation(email, password) diff --git a/core/playwright/login.spec.ts b/core/playwright/login.spec.ts index 5dc11e1b41..a6c76ecd06 100644 --- a/core/playwright/login.spec.ts +++ b/core/playwright/login.spec.ts @@ -149,12 +149,12 @@ test.describe("Auth with lucia", () => { await page.waitForURL("/reset") // if it timesout here, the token is wrong await page.getByRole("textbox").click({ timeout: 1000 }) - await page.getByRole("textbox").fill("pubpub-some") + await page.getByRole("textbox").fill("pubstar-some") await page.getByRole("button", { name: "Set new password" }).click() await page.getByPlaceholder("name@example.com").click() await page.getByPlaceholder("name@example.com").fill(community.users.user3.email) await page.getByPlaceholder("name@example.com").press("Tab") - await page.getByLabel("Password").fill("pubpub-some") + await page.getByLabel("Password").fill("pubstar-some") await page.getByRole("button", { name: "Sign in" }).click() await page.waitForURL(/\/c\/.*\/stages/) diff --git a/core/prisma/consolidated-triggers.sql b/core/prisma/consolidated-triggers.sql index c091919964..c4e4e588c6 100644 --- a/core/prisma/consolidated-triggers.sql +++ b/core/prisma/consolidated-triggers.sql @@ -1029,15 +1029,12 @@ DECLARE community_id text; BEGIN - -- Changed the first part of this conditional to return early if the operation is deleting a pub IF (NEW."pubId" IS NULL) THEN RETURN NEW; ELSE - -- Strip large JSON columns to avoid exceeding pg_notify's 8000 byte payload limit correct_row = to_jsonb(NEW) - 'config' - 'result' - 'json' - 'params'; END IF; - select into community_id "communityId" from "pubs" where "id" = correct_row->>'pubId'::text; PERFORM notify_change( diff --git a/core/prisma/seed/seedCommunity.db.test.ts b/core/prisma/seed/seedCommunity.db.test.ts index 7a0ce1631d..64d4726f3d 100644 --- a/core/prisma/seed/seedCommunity.db.test.ts +++ b/core/prisma/seed/seedCommunity.db.test.ts @@ -88,7 +88,7 @@ describe("seedCommunity", () => { config: { body: "hello nerd", subject: "hello nerd", - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", }, }, ], diff --git a/core/prisma/seeds/coar-notify.ts b/core/prisma/seeds/coar-notify.ts index b3c887f056..4c54b48e91 100644 --- a/core/prisma/seeds/coar-notify.ts +++ b/core/prisma/seeds/coar-notify.ts @@ -120,8 +120,8 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { id: adminId, firstName: "COAR", lastName: "Admin", - email: "coar-admin@pubpub.org", - password: "pubpub-coar", + email: "coar-admin@pubstar.org", + password: "pubstar-coar", role: MemberRole.admin, }, jillAdmin: { @@ -133,8 +133,8 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { id: joeAuthorId, firstName: "Joe", lastName: "Author", - email: "joe-author@pubpub.org", - password: "pubpub-joe", + email: "joe-author@pubstar.org", + password: "pubstar-joe", role: MemberRole.contributor, }, }, @@ -294,7 +294,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Review offer accepted for: {{ $.pub.title }}", body: "The review offer for **{{ $.pub.title }}** has been accepted.\n\nView the submission: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, @@ -328,7 +328,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Review offer rejected for: {{ $.pub.title }}", body: "The review offer for **{{ $.pub.title }}** has been rejected.\n\nView the submission: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, @@ -454,7 +454,7 @@ export async function seedCoarUS1(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Site published with new review for: {{ $.pub.title }}", body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: /coar-us1-arcadia/site/index.html`, @@ -574,7 +574,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "New review request received: {{ $.json.object.id }}", body: "A new review request has been received.\n\nObject: {{ $.json.object.id }}\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}", @@ -675,7 +675,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Review request accepted: {{ $.pub.title }}", body: "The review request **{{ $.pub.title }}** has been accepted.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, @@ -779,7 +779,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Review request rejected: {{ $.pub.title }}", body: "The review request **{{ $.pub.title }}** has been rejected.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, @@ -932,7 +932,7 @@ export async function seedCoarUS2(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Review published: {{ $.pub.title }}", body: `Review **{{ $.pub.title }}** has been published and announced.\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, }, @@ -1154,7 +1154,7 @@ export async function seedCoarUS3(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Review published and announced: {{ $.pub.title }}", body: `Review **{{ $.pub.title }}** has been published and sent to the aggregator.\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, @@ -1306,7 +1306,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Ingest request accepted: {{ $.pub.title }}", body: "The ingest request **{{ $.pub.title }}** has been accepted.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, @@ -1334,7 +1334,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Ingest request rejected: {{ $.pub.title }}", body: "The ingest request **{{ $.pub.title }}** has been rejected.\n\nView: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}", }, @@ -1453,7 +1453,7 @@ export async function seedCoarUS4(communityId?: CommunitiesId) { { action: Action.email, config: { - recipientEmail: "all@pubpub.org", + recipientEmail: "all@pubstar.org", subject: "Site published with new review: {{ $.pub.title }}", body: `The community site has been updated with a new review.\n\nReview: **{{ $.pub.title }}**\n\nView the pub: {{ $.env.PUBSTAR_URL }}/c/{{ $.community.slug }}/pub/{{ $.pub.id }}\n\nView the site: ${SITE_BASE}/index.html`, diff --git a/core/prisma/seeds/legacy.ts b/core/prisma/seeds/legacy.ts index 9766a0f636..3f8a99c190 100644 --- a/core/prisma/seeds/legacy.ts +++ b/core/prisma/seeds/legacy.ts @@ -376,9 +376,9 @@ export const seedLegacy = async (communityId?: CommunitiesId) => { }, users: { "legacy-user-1": { - email: "legacy@pubpub.org", + email: "legacy@pubstar.org", role: MemberRole.admin, - password: "pubpub-legacy", + password: "pubstar-legacy", }, ...usersExisting, }, diff --git a/core/prisma/seeds/starter.ts b/core/prisma/seeds/starter.ts index 1adf13f5de..5fdaf45d6c 100644 --- a/core/prisma/seeds/starter.ts +++ b/core/prisma/seeds/starter.ts @@ -84,9 +84,9 @@ export async function seedStarter(communityId?: CommunitiesId) { new: { id: memberId, firstName: "Croc", - email: "new@pubpub.org", + email: "new@pubstar.org", lastName: "Croc", - password: "pubpub-new", + password: "pubstar-new", role: MemberRole.admin, }, ...usersNew, @@ -97,7 +97,7 @@ export async function seedStarter(communityId?: CommunitiesId) { values: { Title: "Ancient Giants: Unpacking the Evolutionary History of Crocodiles from Prehistoric to Present", Content: defaultMarkdownParser.parse(faker.lorem.paragraph(1)).toJSON(), - Email: "new@pubpub.org", + Email: "new@pubstar.org", URL: "https://pubpub.org", MemberID: memberId, "ok?": true, @@ -126,7 +126,7 @@ export async function seedStarter(communityId?: CommunitiesId) { values: { Title: "Snap! The Crocodilian Chronicles: A Scaly Tale of Survival and Swamp Supremacy", Content: defaultMarkdownParser.parse(faker.lorem.paragraph(1)).toJSON(), - Email: "new@pubpub.org", + Email: "new@pubstar.org", URL: "https://pubpub.org", MemberID: memberId, "ok?": true, diff --git a/core/prisma/seeds/users.ts b/core/prisma/seeds/users.ts index b1da29cc11..233d2428fe 100644 --- a/core/prisma/seeds/users.ts +++ b/core/prisma/seeds/users.ts @@ -20,8 +20,8 @@ const contributorBase = { export const usersNew = { admin: { ...adminBase, - email: "all@pubpub.org", - password: "pubpub-all", + email: "all@pubstar.org", + password: "pubstar-all", slug: "all", firstName: "Jill", lastName: "Admin", @@ -32,8 +32,8 @@ export const usersNew = { }, editor: { ...editorBase, - email: "some@pubpub.org", - password: "pubpub-some", + email: "some@pubstar.org", + password: "pubstar-some", slug: "some", firstName: "Jack", lastName: "Editor", @@ -43,8 +43,8 @@ export const usersNew = { }, contributor: { ...contributorBase, - email: "none@pubpub.org", - password: "pubpub-none", + email: "none@pubstar.org", + password: "pubstar-none", slug: "none", firstName: "Jenna", lastName: "Contributor", diff --git a/development/docker-compose.dev.yml b/development/docker-compose.dev.yml index 497ae24538..b254a81bcd 100644 --- a/development/docker-compose.dev.yml +++ b/development/docker-compose.dev.yml @@ -59,7 +59,7 @@ services: - path: .env required: true healthcheck: - test: ["CMD", "echo", "true"] + test: [ "CMD", "echo", "true" ] interval: 1m30s timeout: 30s retries: 5 @@ -86,7 +86,7 @@ services: volumes: - ../dev.Caddyfile:/etc/caddy/Caddyfile environment: - - S3_BUCKET_NAME=${S3_BUCKET_NAME:-assets.v7.pubpub.org} + - S3_BUCKET_NAME=${S3_BUCKET_NAME:-assets.pubstar.org} - S3_REGION=${S3_REGION:-garage} - S3_ENDPOINT=garage:3900 ports: diff --git a/docs/content/development/testing/1-e2e-tests.mdx b/docs/content/development/testing/1-e2e-tests.mdx index a4795a16eb..114742addd 100644 --- a/docs/content/development/testing/1-e2e-tests.mdx +++ b/docs/content/development/testing/1-e2e-tests.mdx @@ -10,12 +10,12 @@ We use [Playwright](https://playwright.dev/) for E2E tests. 1. Install Playwright Test for VSCode plugin (should be recommended) 2. `pnpm -w dev:setup` - - (TIL: `-w` lets you run things from the root without actually being in the root!) + - (TIL: `-w` lets you run things from the root without actually being in the root!) 3. Click on extension (test tube icon), click on refresh button (if the tests don't show up), `core` tests should appear - - you might see an error to install `@playwright/test` but you can ignore this! - - (20250605) The `context-editor` tests currently do not show up here. + - you might see an error to install `@playwright/test` but you can ignore this! + - (20250605) The `context-editor` tests currently do not show up here. 4. Start your dev server via `pnpm dev at root` - - This makes sure `core` and `jobs` are both up, which is needed for some for all playwright tests to pass) + - This makes sure `core` and `jobs` are both up, which is needed for some for all playwright tests to pass) 5. Now you should be able to either run a test from the testing panel, or directly inside a test @@ -56,9 +56,9 @@ You can debug either using `VSCode`s built-in breakpoints, or by manually adding Set a breakpoint in the test by clicking Break points In `VSCode`, you can either right click a test and select "Debug test", or click the debug icon next to the test in the sidebar. @@ -70,12 +70,12 @@ You can also use `playwright:test 'path/to/test' -- --debug` (note the extra `-- Then you're able to use `await page.pause()` to pause the test at a specific point. ```ts filename="some-test.spec.ts" -test("some test", async ({ page }) => { - await page.goto("https://example.com"); - await page.pause(); // look at what you've done +test('some test', async ({ page }) => { + await page.goto('https://example.com'); + await page.pause(); // look at what you've done }); ``` #### Misc -Currently (2025-06-05), data seeded into playwright doesn't add all@pubpub.org which is why if you are logged in you won't see the seeded playwright data. it's sometimes useful to be able to see the playwright community in your dev server—in this case you'd have to log in as the user in the seed community +Currently (2025-06-05), data seeded into playwright doesn't add all@pubstar.org which is why if you are logged in you won't see the seeded playwright data. it's sometimes useful to be able to see the playwright community in your dev server—in this case you'd have to log in as the user in the seed community diff --git a/docs/content/infrastructure/nginx.mdx b/docs/content/infrastructure/nginx.mdx index e2aee8c85d..3106ce01d3 100644 --- a/docs/content/infrastructure/nginx.mdx +++ b/docs/content/infrastructure/nginx.mdx @@ -8,7 +8,7 @@ This simple container runs nginx, listening on a port (typically 8080), and forw all traffic to another host (typically `127.0.0.1:`). In ECS, all containers in the same task are hosted on the same network interface and therefore have the same IP. -The specific reason this container is needed in Pubpub-v7 is that: +The specific reason this container is needed in PubStar-v7 is that: 1. we have one DNS name that serves the whole application, which is backed by multiple ECS containers. 2. these containers are routed to based on path prefixes. diff --git a/packages/context-editor/.env.development b/packages/context-editor/.env.development index 6aebb56c76..c74ce465e7 100644 --- a/packages/context-editor/.env.development +++ b/packages/context-editor/.env.development @@ -5,4 +5,4 @@ STORYBOOK_ASSETS_REGION="us-east-1" STORYBOOK_ASSETS_UPLOAD_KEY="pubpubuser" STORYBOOK_ASSETS_UPLOAD_SECRET_KEY="pubpubpass" STORYBOOK_ASSETS_STORAGE_ENDPOINT="http://localhost:9000" -STORYBOOK_ASSETS_BUCKET_NAME="assets.v7.pubpub.org" \ No newline at end of file +STORYBOOK_ASSETS_BUCKET_NAME="assets.pubpub.org" \ No newline at end of file diff --git a/packages/context-editor/.env.test b/packages/context-editor/.env.test index 8f983370b3..ea4d558528 100644 --- a/packages/context-editor/.env.test +++ b/packages/context-editor/.env.test @@ -6,4 +6,4 @@ STORYBOOK_ASSETS_REGION="us-east-1" STORYBOOK_ASSETS_UPLOAD_KEY="pubpubuser" STORYBOOK_ASSETS_UPLOAD_SECRET_KEY="pubpubpass" STORYBOOK_ASSETS_STORAGE_ENDPOINT="http://localhost:9000" -STORYBOOK_ASSETS_BUCKET_NAME="assets.v7.pubpub.org" \ No newline at end of file +STORYBOOK_ASSETS_BUCKET_NAME="assets.pubpub.org" \ No newline at end of file diff --git a/packages/context-editor/src/schemas/contextDoc.ts b/packages/context-editor/src/schemas/contextDoc.ts index 37a0669bfa..dacf4b1a19 100644 --- a/packages/context-editor/src/schemas/contextDoc.ts +++ b/packages/context-editor/src/schemas/contextDoc.ts @@ -55,7 +55,7 @@ continual linking. I propose we lean away from that, into a more explicit 'include' model. More like a package-lock file than a dynamic transclusion model. -Should this use @pubpub/prosemirror-reactive? +Should this use @pubstar/prosemirror-reactive? It seems like the core function is similar, we want to include an up-to-date value of a field based on some stored permanent id. Maybe we don't? Maybe we want to snapshot the diff --git a/packages/context-editor/src/stories/MediaUpload.stories.tsx b/packages/context-editor/src/stories/MediaUpload.stories.tsx index f0b0cc7844..0d755d6309 100644 --- a/packages/context-editor/src/stories/MediaUpload.stories.tsx +++ b/packages/context-editor/src/stories/MediaUpload.stories.tsx @@ -26,7 +26,7 @@ const attrs = { id: "", class: null, alt: "cat.jpeg", - src: "http://localhost:9000/assets.v7.pubpub.org/a85b4157-4a7f-40d8-bb40-d9c17a6c7a70/cat.jpeg", + src: "http://localhost:9000/assets.pubpub.org/a85b4157-4a7f-40d8-bb40-d9c17a6c7a70/cat.jpeg", linkTo: "", width: 100, align: "center", diff --git a/packages/db/src/public/Action.ts b/packages/db/src/public/Action.ts index 0514246971..56811e4232 100644 --- a/packages/db/src/public/Action.ts +++ b/packages/db/src/public/Action.ts @@ -11,8 +11,8 @@ export enum Action { move = "move", googleDriveImport = "googleDriveImport", datacite = "datacite", - createPub = "createPub", buildSite = "buildSite", + createPub = "createPub", } /** Zod schema for Action */ diff --git a/packages/db/src/public/PublicSchema.ts b/packages/db/src/public/PublicSchema.ts index 416c19c598..e257809c3f 100644 --- a/packages/db/src/public/PublicSchema.ts +++ b/packages/db/src/public/PublicSchema.ts @@ -43,77 +43,77 @@ import type { UsersTable } from "./Users" export interface PublicSchema { PubFieldSchema: PubFieldSchemaTable - automation_runs: AutomationRunsTable + PubsInStages: PubsInStagesTable - membership_capabilities: MembershipCapabilitiesTable + _FormElementToPubType: FormElementToPubTypeTable - sessions: SessionsTable + _MemberGroupToUser: MemberGroupToUserTable - move_constraint: MoveConstraintTable + _PubFieldToPubType: PubFieldToPubTypeTable - pub_values_history: PubValuesHistoryTable + _prisma_migrations: PrismaMigrationsTable - api_access_tokens: ApiAccessTokensTable + action_config_defaults: ActionConfigDefaultsTable - _MemberGroupToUser: MemberGroupToUserTable + action_instances: ActionInstancesTable - _FormElementToPubType: FormElementToPubTypeTable + action_runs: ActionRunsTable - PubsInStages: PubsInStagesTable + api_access_logs: ApiAccessLogsTable - stage_memberships: StageMembershipsTable + api_access_permissions: ApiAccessPermissionsTable - _prisma_migrations: PrismaMigrationsTable + api_access_tokens: ApiAccessTokensTable auth_tokens: AuthTokensTable - api_access_permissions: ApiAccessPermissionsTable - - api_access_logs: ApiAccessLogsTable - - pub_types: PubTypesTable + automation_condition_blocks: AutomationConditionBlocksTable automation_conditions: AutomationConditionsTable - pub_fields: PubFieldsTable + automation_runs: AutomationRunsTable - invites_history: InvitesHistoryTable + automation_triggers: AutomationTriggersTable - communities: CommunitiesTable + automations: AutomationsTable - automation_triggers: AutomationTriggersTable + communities: CommunitiesTable - users: UsersTable + community_memberships: CommunityMembershipsTable - _PubFieldToPubType: PubFieldToPubTypeTable + form_elements: FormElementsTable - pub_values: PubValuesTable + forms: FormsTable - action_runs: ActionRunsTable + invite_forms: InviteFormsTable invites: InvitesTable - pubs: PubsTable + invites_history: InvitesHistoryTable - action_config_defaults: ActionConfigDefaultsTable + member_groups: MemberGroupsTable - action_instances: ActionInstancesTable + membership_capabilities: MembershipCapabilitiesTable - community_memberships: CommunityMembershipsTable + move_constraint: MoveConstraintTable - member_groups: MemberGroupsTable + pub_fields: PubFieldsTable pub_memberships: PubMembershipsTable - stages: StagesTable + pub_types: PubTypesTable - automation_condition_blocks: AutomationConditionBlocksTable + pub_values: PubValuesTable - form_elements: FormElementsTable + pub_values_history: PubValuesHistoryTable - forms: FormsTable + pubs: PubsTable - automations: AutomationsTable + sessions: SessionsTable - invite_forms: InviteFormsTable + stage_memberships: StageMembershipsTable + + stages: StagesTable + + users: UsersTable } diff --git a/packages/json-interpolate/package.json b/packages/json-interpolate/package.json index 8986b0c78f..f31fa38224 100644 --- a/packages/json-interpolate/package.json +++ b/packages/json-interpolate/package.json @@ -1,9 +1,9 @@ { - "name": "@pubpub/json-interpolate", + "name": "@pubstar/json-interpolate", "type": "module", "version": "0.0.1", "exports": { - ".": "./dist/pubpub-json-interpolate.js", + ".": "./dist/pubstar-json-interpolate.js", "./package.json": "./package.json" }, "scripts": { diff --git a/packages/ui/src/monaco/MonacoEditor.tsx b/packages/ui/src/monaco/MonacoEditor.tsx index 0b50ee0b8f..d7b12b8c0b 100644 --- a/packages/ui/src/monaco/MonacoEditor.tsx +++ b/packages/ui/src/monaco/MonacoEditor.tsx @@ -111,7 +111,7 @@ export const MonacoEditor = React.forwardRef( React.useEffect(() => { if (!monaco || !containerRef.current || editorRef.current) return - const monacoTheme = themeRef.current === "light" ? "pubpub-light" : "pubpub-dark" + const monacoTheme = themeRef.current === "light" ? "pubstar-light" : "pubstar-dark" const newEditor = monaco.editor.create(containerRef.current, { value: valueRef.current, @@ -172,7 +172,7 @@ export const MonacoEditor = React.forwardRef( // update theme when it changes React.useEffect(() => { if (!monaco || !editorRef.current) return - const monacoTheme = currentTheme === "light" ? "pubpub-light" : "pubpub-dark" + const monacoTheme = currentTheme === "light" ? "pubstar-light" : "pubstar-dark" monaco.editor.setTheme(monacoTheme) }, [monaco, currentTheme]) diff --git a/packages/ui/src/monaco/languages/jsonata.ts b/packages/ui/src/monaco/languages/jsonata.ts index 5c89999508..360280885b 100644 --- a/packages/ui/src/monaco/languages/jsonata.ts +++ b/packages/ui/src/monaco/languages/jsonata.ts @@ -196,7 +196,7 @@ export const createJsonataLanguageDefinition = (): languages.IMonarchLanguage => }) export const defineJsonataThemes = (monaco: Monaco) => { - monaco.editor.defineTheme("pubpub-light", { + monaco.editor.defineTheme("pubstar-light", { base: "vs", inherit: true, rules: [ @@ -213,7 +213,7 @@ export const defineJsonataThemes = (monaco: Monaco) => { colors: {}, }) - monaco.editor.defineTheme("pubpub-dark", { + monaco.editor.defineTheme("pubstar-dark", { base: "vs-dark", inherit: true, rules: [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2cf30fb895..44d72c2dbd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -152,7 +152,6 @@ overrides: tailwindcss@3>sucrase: ^3.35.1 importers: - .: devDependencies: '@babel/core': @@ -280,7 +279,7 @@ importers: '@prisma/client': specifier: 5.19.1 version: 5.19.1(prisma@5.22.0) - '@pubpub/json-interpolate': + '@pubstar/json-interpolate': specifier: workspace:* version: link:../packages/json-interpolate '@react-email/render': @@ -560,7 +559,7 @@ importers: '@prisma/internals': specifier: ^5.22.0 version: 5.22.0 - '@pubpub/tailwind': + '@pubstar/tailwind': specifier: workspace:* version: link:../config/tailwind '@storybook/addon-docs': @@ -1610,7 +1609,7 @@ importers: '@hono/zod-validator': specifier: ^0.4.3 version: 0.4.3(hono@4.9.7)(zod@3.25.76) - '@pubpub/json-interpolate': + '@pubstar/json-interpolate': specifier: 'workspace:' version: link:../packages/json-interpolate '@t3-oss/env-core': @@ -1670,196 +1669,342 @@ importers: version: 13.1.3 packages: - '@adobe/css-tools@4.4.4': - resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} + resolution: + { + integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==, + } '@alloc/quick-lru@5.2.0': - resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, + } + engines: { node: '>=10' } '@ampproject/remapping@2.3.0': - resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, + } + engines: { node: '>=6.0.0' } '@anatine/zod-openapi@1.14.2': - resolution: {integrity: sha512-q0qHfnuNYVKu0Swrnnvfj9971AEyW7c8v9jCOZGCl5ZbyGMNG4RPyJkRcMi/JC8CRfdOe0IDfNm1nNsi2avprg==} + resolution: + { + integrity: sha512-q0qHfnuNYVKu0Swrnnvfj9971AEyW7c8v9jCOZGCl5ZbyGMNG4RPyJkRcMi/JC8CRfdOe0IDfNm1nNsi2avprg==, + } peerDependencies: openapi3-ts: ^2.0.0 || ^3.0.0 zod: ^3.20.0 '@antfu/install-pkg@1.1.0': - resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} + resolution: + { + integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==, + } '@antfu/ni@0.21.4': - resolution: {integrity: sha512-O0Uv9LbLDSoEg26fnMDdDRiPwFJnQSoD4WnrflDwKCJm8Cx/0mV4cGxwBLXan5mGIrpK4Dd7vizf4rQm0QCEAA==} + resolution: + { + integrity: sha512-O0Uv9LbLDSoEg26fnMDdDRiPwFJnQSoD4WnrflDwKCJm8Cx/0mV4cGxwBLXan5mGIrpK4Dd7vizf4rQm0QCEAA==, + } hasBin: true '@antfu/utils@8.1.1': - resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} + resolution: + { + integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==, + } '@asamuzakjp/css-color@3.2.0': - resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} + resolution: + { + integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==, + } '@aws-crypto/crc32@5.2.0': - resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==, + } + engines: { node: '>=16.0.0' } '@aws-crypto/crc32c@5.2.0': - resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} + resolution: + { + integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==, + } '@aws-crypto/sha1-browser@5.2.0': - resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} + resolution: + { + integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==, + } '@aws-crypto/sha256-browser@5.2.0': - resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} + resolution: + { + integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==, + } '@aws-crypto/sha256-js@5.2.0': - resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==, + } + engines: { node: '>=16.0.0' } '@aws-crypto/supports-web-crypto@5.2.0': - resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} + resolution: + { + integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==, + } '@aws-crypto/util@5.2.0': - resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + resolution: + { + integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==, + } '@aws-sdk/client-s3@3.864.0': - resolution: {integrity: sha512-QGYi9bWliewxumsvbJLLyx9WC0a4DP4F+utygBcq0zwPxaM0xDfBspQvP1dsepi7mW5aAjZmJ2+Xb7X0EhzJ/g==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-QGYi9bWliewxumsvbJLLyx9WC0a4DP4F+utygBcq0zwPxaM0xDfBspQvP1dsepi7mW5aAjZmJ2+Xb7X0EhzJ/g==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/client-ses@3.864.0': - resolution: {integrity: sha512-cmsOrJZsrNa892gD2cAsbVkweDulgmC8PE38cz//bM//1BW/R1MMFClapF+Q9gACtsRVTRBXNtsIsBq8Gm1Urw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-cmsOrJZsrNa892gD2cAsbVkweDulgmC8PE38cz//bM//1BW/R1MMFClapF+Q9gACtsRVTRBXNtsIsBq8Gm1Urw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/client-sso@3.864.0': - resolution: {integrity: sha512-THiOp0OpQROEKZ6IdDCDNNh3qnNn/kFFaTSOiugDpgcE5QdsOxh1/RXq7LmHpTJum3cmnFf8jG59PHcz9Tjnlw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-THiOp0OpQROEKZ6IdDCDNNh3qnNn/kFFaTSOiugDpgcE5QdsOxh1/RXq7LmHpTJum3cmnFf8jG59PHcz9Tjnlw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/core@3.864.0': - resolution: {integrity: sha512-LFUREbobleHEln+Zf7IG83lAZwvHZG0stI7UU0CtwyuhQy5Yx0rKksHNOCmlM7MpTEbSCfntEhYi3jUaY5e5lg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-LFUREbobleHEln+Zf7IG83lAZwvHZG0stI7UU0CtwyuhQy5Yx0rKksHNOCmlM7MpTEbSCfntEhYi3jUaY5e5lg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-env@3.864.0': - resolution: {integrity: sha512-StJPOI2Rt8UE6lYjXUpg6tqSZaM72xg46ljPg8kIevtBAAfdtq9K20qT/kSliWGIBocMFAv0g2mC0hAa+ECyvg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-StJPOI2Rt8UE6lYjXUpg6tqSZaM72xg46ljPg8kIevtBAAfdtq9K20qT/kSliWGIBocMFAv0g2mC0hAa+ECyvg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-http@3.864.0': - resolution: {integrity: sha512-E/RFVxGTuGnuD+9pFPH2j4l6HvrXzPhmpL8H8nOoJUosjx7d4v93GJMbbl1v/fkDLqW9qN4Jx2cI6PAjohA6OA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-E/RFVxGTuGnuD+9pFPH2j4l6HvrXzPhmpL8H8nOoJUosjx7d4v93GJMbbl1v/fkDLqW9qN4Jx2cI6PAjohA6OA==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-ini@3.864.0': - resolution: {integrity: sha512-PlxrijguR1gxyPd5EYam6OfWLarj2MJGf07DvCx9MAuQkw77HBnsu6+XbV8fQriFuoJVTBLn9ROhMr/ROAYfUg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-PlxrijguR1gxyPd5EYam6OfWLarj2MJGf07DvCx9MAuQkw77HBnsu6+XbV8fQriFuoJVTBLn9ROhMr/ROAYfUg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-node@3.864.0': - resolution: {integrity: sha512-2BEymFeXURS+4jE9tP3vahPwbYRl0/1MVaFZcijj6pq+nf5EPGvkFillbdBRdc98ZI2NedZgSKu3gfZXgYdUhQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-2BEymFeXURS+4jE9tP3vahPwbYRl0/1MVaFZcijj6pq+nf5EPGvkFillbdBRdc98ZI2NedZgSKu3gfZXgYdUhQ==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-process@3.864.0': - resolution: {integrity: sha512-Zxnn1hxhq7EOqXhVYgkF4rI9MnaO3+6bSg/tErnBQ3F8kDpA7CFU24G1YxwaJXp2X4aX3LwthefmSJHwcVP/2g==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Zxnn1hxhq7EOqXhVYgkF4rI9MnaO3+6bSg/tErnBQ3F8kDpA7CFU24G1YxwaJXp2X4aX3LwthefmSJHwcVP/2g==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-sso@3.864.0': - resolution: {integrity: sha512-UPyPNQbxDwHVGmgWdGg9/9yvzuedRQVF5jtMkmP565YX9pKZ8wYAcXhcYdNPWFvH0GYdB0crKOmvib+bmCuwkw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-UPyPNQbxDwHVGmgWdGg9/9yvzuedRQVF5jtMkmP565YX9pKZ8wYAcXhcYdNPWFvH0GYdB0crKOmvib+bmCuwkw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/credential-provider-web-identity@3.864.0': - resolution: {integrity: sha512-nNcjPN4SYg8drLwqK0vgVeSvxeGQiD0FxOaT38mV2H8cu0C5NzpvA+14Xy+W6vT84dxgmJYKk71Cr5QL2Oz+rA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-nNcjPN4SYg8drLwqK0vgVeSvxeGQiD0FxOaT38mV2H8cu0C5NzpvA+14Xy+W6vT84dxgmJYKk71Cr5QL2Oz+rA==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/lib-storage@3.864.0': - resolution: {integrity: sha512-Me/HlMXXPv3tStPQufdwnYGholY14JmmzCdOjhnG7gnaClBEnroZKcHuQhrgMm+KyfbzCQ2+9YHsULOfFrg7Mw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Me/HlMXXPv3tStPQufdwnYGholY14JmmzCdOjhnG7gnaClBEnroZKcHuQhrgMm+KyfbzCQ2+9YHsULOfFrg7Mw==, + } + engines: { node: '>=18.0.0' } peerDependencies: '@aws-sdk/client-s3': ^3.864.0 '@aws-sdk/middleware-bucket-endpoint@3.862.0': - resolution: {integrity: sha512-Wcsc7VPLjImQw+CP1/YkwyofMs9Ab6dVq96iS8p0zv0C6YTaMjvillkau4zFfrrrTshdzFWKptIFhKK8Zsei1g==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Wcsc7VPLjImQw+CP1/YkwyofMs9Ab6dVq96iS8p0zv0C6YTaMjvillkau4zFfrrrTshdzFWKptIFhKK8Zsei1g==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-expect-continue@3.862.0': - resolution: {integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-flexible-checksums@3.864.0': - resolution: {integrity: sha512-MvakvzPZi9uyP3YADuIqtk/FAcPFkyYFWVVMf5iFs/rCdk0CUzn02Qf4CSuyhbkS6Y0KrAsMgKR4MgklPU79Wg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-MvakvzPZi9uyP3YADuIqtk/FAcPFkyYFWVVMf5iFs/rCdk0CUzn02Qf4CSuyhbkS6Y0KrAsMgKR4MgklPU79Wg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-host-header@3.862.0': - resolution: {integrity: sha512-jDje8dCFeFHfuCAxMDXBs8hy8q9NCTlyK4ThyyfAj3U4Pixly2mmzY2u7b7AyGhWsjJNx8uhTjlYq5zkQPQCYw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-jDje8dCFeFHfuCAxMDXBs8hy8q9NCTlyK4ThyyfAj3U4Pixly2mmzY2u7b7AyGhWsjJNx8uhTjlYq5zkQPQCYw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-location-constraint@3.862.0': - resolution: {integrity: sha512-MnwLxCw7Cc9OngEH3SHFhrLlDI9WVxaBkp3oTsdY9JE7v8OE38wQ9vtjaRsynjwu0WRtrctSHbpd7h/QVvtjyA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-MnwLxCw7Cc9OngEH3SHFhrLlDI9WVxaBkp3oTsdY9JE7v8OE38wQ9vtjaRsynjwu0WRtrctSHbpd7h/QVvtjyA==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-logger@3.862.0': - resolution: {integrity: sha512-N/bXSJznNBR/i7Ofmf9+gM6dx/SPBK09ZWLKsW5iQjqKxAKn/2DozlnE54uiEs1saHZWoNDRg69Ww4XYYSlG1Q==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-N/bXSJznNBR/i7Ofmf9+gM6dx/SPBK09ZWLKsW5iQjqKxAKn/2DozlnE54uiEs1saHZWoNDRg69Ww4XYYSlG1Q==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-recursion-detection@3.862.0': - resolution: {integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-sdk-s3@3.864.0': - resolution: {integrity: sha512-GjYPZ6Xnqo17NnC8NIQyvvdzzO7dm+Ks7gpxD/HsbXPmV2aEfuFveJXneGW9e1BheSKFff6FPDWu8Gaj2Iu1yg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-GjYPZ6Xnqo17NnC8NIQyvvdzzO7dm+Ks7gpxD/HsbXPmV2aEfuFveJXneGW9e1BheSKFff6FPDWu8Gaj2Iu1yg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-ssec@3.862.0': - resolution: {integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/middleware-user-agent@3.864.0': - resolution: {integrity: sha512-wrddonw4EyLNSNBrApzEhpSrDwJiNfjxDm5E+bn8n32BbAojXASH8W8jNpxz/jMgNkkJNxCfyqybGKzBX0OhbQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-wrddonw4EyLNSNBrApzEhpSrDwJiNfjxDm5E+bn8n32BbAojXASH8W8jNpxz/jMgNkkJNxCfyqybGKzBX0OhbQ==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/nested-clients@3.864.0': - resolution: {integrity: sha512-H1C+NjSmz2y8Tbgh7Yy89J20yD/hVyk15hNoZDbCYkXg0M358KS7KVIEYs8E2aPOCr1sK3HBE819D/yvdMgokA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-H1C+NjSmz2y8Tbgh7Yy89J20yD/hVyk15hNoZDbCYkXg0M358KS7KVIEYs8E2aPOCr1sK3HBE819D/yvdMgokA==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/region-config-resolver@3.862.0': - resolution: {integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/s3-request-presigner@3.864.0': - resolution: {integrity: sha512-IiVFDxabrqTB1A9qZI6IEa3cOgF2eciUG4UX27HzkMY6UXG0EZhnGkgkgHYMt6j2hGAFOvAh0ogv/XxZLg6Zaw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-IiVFDxabrqTB1A9qZI6IEa3cOgF2eciUG4UX27HzkMY6UXG0EZhnGkgkgHYMt6j2hGAFOvAh0ogv/XxZLg6Zaw==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/signature-v4-multi-region@3.864.0': - resolution: {integrity: sha512-w2HIn/WIcUyv1bmyCpRUKHXB5KdFGzyxPkp/YK5g+/FuGdnFFYWGfcO8O+How4jwrZTarBYsAHW9ggoKvwr37w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-w2HIn/WIcUyv1bmyCpRUKHXB5KdFGzyxPkp/YK5g+/FuGdnFFYWGfcO8O+How4jwrZTarBYsAHW9ggoKvwr37w==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/token-providers@3.864.0': - resolution: {integrity: sha512-gTc2QHOBo05SCwVA65dUtnJC6QERvFaPiuppGDSxoF7O5AQNK0UR/kMSenwLqN8b5E1oLYvQTv3C1idJLRX0cg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-gTc2QHOBo05SCwVA65dUtnJC6QERvFaPiuppGDSxoF7O5AQNK0UR/kMSenwLqN8b5E1oLYvQTv3C1idJLRX0cg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/types@3.862.0': - resolution: {integrity: sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/util-arn-parser@3.804.0': - resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/util-endpoints@3.862.0': - resolution: {integrity: sha512-eCZuScdE9MWWkHGM2BJxm726MCmWk/dlHjOKvkM0sN1zxBellBMw5JohNss1Z8/TUmnW2gb9XHTOiHuGjOdksA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-eCZuScdE9MWWkHGM2BJxm726MCmWk/dlHjOKvkM0sN1zxBellBMw5JohNss1Z8/TUmnW2gb9XHTOiHuGjOdksA==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/util-format-url@3.862.0': - resolution: {integrity: sha512-4kd2PYUMA/fAnIcVVwBIDCa2KCuUPrS3ELgScLjBaESP0NN+K163m40U5RbzNec/elOcJHR8lEThzzSb7vXH6w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-4kd2PYUMA/fAnIcVVwBIDCa2KCuUPrS3ELgScLjBaESP0NN+K163m40U5RbzNec/elOcJHR8lEThzzSb7vXH6w==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/util-locate-window@3.804.0': - resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==, + } + engines: { node: '>=18.0.0' } '@aws-sdk/util-user-agent-browser@3.862.0': - resolution: {integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==} + resolution: + { + integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==, + } '@aws-sdk/util-user-agent-node@3.864.0': - resolution: {integrity: sha512-d+FjUm2eJEpP+FRpVR3z6KzMdx1qwxEYDz8jzNKwxYLBBquaBaP/wfoMtMQKAcbrR7aT9FZVZF7zDgzNxUvQlQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-d+FjUm2eJEpP+FRpVR3z6KzMdx1qwxEYDz8jzNKwxYLBBquaBaP/wfoMtMQKAcbrR7aT9FZVZF7zDgzNxUvQlQ==, + } + engines: { node: '>=18.0.0' } peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: @@ -1867,655 +2012,1015 @@ packages: optional: true '@aws-sdk/xml-builder@3.862.0': - resolution: {integrity: sha512-6Ed0kmC1NMbuFTEgNmamAUU1h5gShgxL1hBVLbEzUa3trX5aJBz1vU4bXaBTvOYUAnOHtiy1Ml4AMStd6hJnFA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-6Ed0kmC1NMbuFTEgNmamAUU1h5gShgxL1hBVLbEzUa3trX5aJBz1vU4bXaBTvOYUAnOHtiy1Ml4AMStd6hJnFA==, + } + engines: { node: '>=18.0.0' } '@babel/code-frame@7.27.1': - resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==, + } + engines: { node: '>=6.9.0' } '@babel/compat-data@7.28.0': - resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==, + } + engines: { node: '>=6.9.0' } '@babel/core@7.24.5': - resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==, + } + engines: { node: '>=6.9.0' } '@babel/core@7.28.3': - resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==, + } + engines: { node: '>=6.9.0' } '@babel/generator@7.28.3': - resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-annotate-as-pure@7.27.3': - resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==, + } + engines: { node: '>=6.9.0' } '@babel/helper-compilation-targets@7.27.2': - resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==, + } + engines: { node: '>=6.9.0' } '@babel/helper-create-class-features-plugin@7.28.3': - resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-define-polyfill-provider@0.6.5': - resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} + resolution: + { + integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 '@babel/helper-globals@7.28.0': - resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-member-expression-to-functions@7.27.1': - resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==, + } + engines: { node: '>=6.9.0' } '@babel/helper-module-imports@7.27.1': - resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==, + } + engines: { node: '>=6.9.0' } '@babel/helper-module-transforms@7.28.3': - resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-optimise-call-expression@7.27.1': - resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-plugin-utils@7.27.1': - resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==, + } + engines: { node: '>=6.9.0' } '@babel/helper-remap-async-to-generator@7.27.1': - resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-replace-supers@7.27.1': - resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==, + } + engines: { node: '>=6.9.0' } '@babel/helper-string-parser@7.27.1': - resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==, + } + engines: { node: '>=6.9.0' } '@babel/helper-validator-identifier@7.27.1': - resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==, + } + engines: { node: '>=6.9.0' } '@babel/helper-validator-option@7.27.1': - resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==, + } + engines: { node: '>=6.9.0' } '@babel/helper-wrap-function@7.28.3': - resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==, + } + engines: { node: '>=6.9.0' } '@babel/helpers@7.28.3': - resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==, + } + engines: { node: '>=6.9.0' } '@babel/parser@7.24.5': - resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==, + } + engines: { node: '>=6.0.0' } hasBin: true '@babel/parser@7.28.3': - resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==, + } + engines: { node: '>=6.0.0' } hasBin: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.13.0 '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-async-generators@7.8.4': - resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} + resolution: + { + integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-properties@7.12.13': - resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} + resolution: + { + integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} + resolution: + { + integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} + resolution: + { + integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} + resolution: + { + integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-json-strings@7.8.3': - resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} + resolution: + { + integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.27.1': - resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} + resolution: + { + integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} + resolution: + { + integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} + resolution: + { + integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} + resolution: + { + integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} + resolution: + { + integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} + resolution: + { + integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, + } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-typescript@7.27.1': - resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoping@7.28.0': - resolution: {integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-properties@7.27.1': - resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-static-block@7.28.3': - resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.12.0 '@babel/plugin-transform-classes@7.28.3': - resolution: {integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-computed-properties@7.27.1': - resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-destructuring@7.28.0': - resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-for-of@7.27.1': - resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-function-name@7.27.1': - resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-json-strings@7.27.1': - resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-literals@7.27.1': - resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-amd@7.27.1': - resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-umd@7.27.1': - resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-new-target@7.27.1': - resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-rest-spread@7.28.0': - resolution: {integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-super@7.27.1': - resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-parameters@7.27.7': - resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-methods@7.27.1': - resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-property-literals@7.27.1': - resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-display-name@7.28.0': - resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx@7.27.1': - resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-regenerator@7.28.3': - resolution: {integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-reserved-words@7.27.1': - resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-spread@7.27.1': - resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-template-literals@7.27.1': - resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typescript@7.28.0': - resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0 '@babel/preset-env@7.25.2': - resolution: {integrity: sha512-Y2Vkwy3ITW4id9c6KXshVV/x5yCGK7VdJmKkzOzNsDZMojRKfSA/033rRbLqlRozmhRXCejxWHLSJOg/wUHfzw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-Y2Vkwy3ITW4id9c6KXshVV/x5yCGK7VdJmKkzOzNsDZMojRKfSA/033rRbLqlRozmhRXCejxWHLSJOg/wUHfzw==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} + resolution: + { + integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, + } peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 '@babel/preset-react@7.27.1': - resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-typescript@7.27.1': - resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==, + } + engines: { node: '>=6.9.0' } peerDependencies: '@babel/core': ^7.0.0-0 '@babel/runtime-corejs3@7.28.3': - resolution: {integrity: sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==, + } + engines: { node: '>=6.9.0' } '@babel/runtime@7.28.3': - resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==, + } + engines: { node: '>=6.9.0' } '@babel/template@7.27.2': - resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==, + } + engines: { node: '>=6.9.0' } '@babel/traverse@7.28.3': - resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==, + } + engines: { node: '>=6.9.0' } '@babel/types@7.28.2': - resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==, + } + engines: { node: '>=6.9.0' } '@bcoe/v8-coverage@1.0.2': - resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==, + } + engines: { node: '>=18' } '@benrbray/prosemirror-math@1.0.0': - resolution: {integrity: sha512-5fPeOKP6SJJ3usXhhf6vnLXGJnfPHPzv0OdsOJlGkCdZvNfCuC6f8fZqgpmnP8vxDKjB8fvSVSmAHTMsaiXc6w==} + resolution: + { + integrity: sha512-5fPeOKP6SJJ3usXhhf6vnLXGJnfPHPzv0OdsOJlGkCdZvNfCuC6f8fZqgpmnP8vxDKjB8fvSVSmAHTMsaiXc6w==, + } peerDependencies: katex: ^0.16.10 prosemirror-commands: ^1.5.2 @@ -2528,270 +3033,474 @@ packages: prosemirror-view: ^1.33.4 '@biomejs/biome@2.3.6': - resolution: {integrity: sha512-oqUhWyU6tae0MFsr/7iLe++QWRg+6jtUhlx9/0GmCWDYFFrK366sBLamNM7D9Y+c7YSynUFKr8lpEp1r6Sk7eA==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-oqUhWyU6tae0MFsr/7iLe++QWRg+6jtUhlx9/0GmCWDYFFrK366sBLamNM7D9Y+c7YSynUFKr8lpEp1r6Sk7eA==, + } + engines: { node: '>=14.21.3' } hasBin: true '@biomejs/cli-darwin-arm64@2.3.6': - resolution: {integrity: sha512-P4JWE5d8UayBxYe197QJwyW4ZHp0B+zvRIGCusOm1WbxmlhpAQA1zEqQuunHgSIzvyEEp4TVxiKGXNFZPg7r9Q==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-P4JWE5d8UayBxYe197QJwyW4ZHp0B+zvRIGCusOm1WbxmlhpAQA1zEqQuunHgSIzvyEEp4TVxiKGXNFZPg7r9Q==, + } + engines: { node: '>=14.21.3' } cpu: [arm64] os: [darwin] '@biomejs/cli-darwin-x64@2.3.6': - resolution: {integrity: sha512-I4rTebj+F/L9K93IU7yTFs8nQ6EhaCOivxduRha4w4WEZK80yoZ8OAdR1F33m4yJ/NfUuTUbP/Wjs+vKjlCoWA==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-I4rTebj+F/L9K93IU7yTFs8nQ6EhaCOivxduRha4w4WEZK80yoZ8OAdR1F33m4yJ/NfUuTUbP/Wjs+vKjlCoWA==, + } + engines: { node: '>=14.21.3' } cpu: [x64] os: [darwin] '@biomejs/cli-linux-arm64-musl@2.3.6': - resolution: {integrity: sha512-oK1NpIXIixbJ/4Tcx40cwiieqah6rRUtMGOHDeK2ToT7yUFVEvXUGRKqH0O4hqZ9tW8TcXNZKfgRH6xrsjVtGg==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-oK1NpIXIixbJ/4Tcx40cwiieqah6rRUtMGOHDeK2ToT7yUFVEvXUGRKqH0O4hqZ9tW8TcXNZKfgRH6xrsjVtGg==, + } + engines: { node: '>=14.21.3' } cpu: [arm64] os: [linux] '@biomejs/cli-linux-arm64@2.3.6': - resolution: {integrity: sha512-JjYy83eVBnvuINZiqyFO7xx72v8Srh4hsgaacSBCjC22DwM6+ZvnX1/fj8/SBiLuUOfZ8YhU2pfq2Dzakeyg1A==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-JjYy83eVBnvuINZiqyFO7xx72v8Srh4hsgaacSBCjC22DwM6+ZvnX1/fj8/SBiLuUOfZ8YhU2pfq2Dzakeyg1A==, + } + engines: { node: '>=14.21.3' } cpu: [arm64] os: [linux] '@biomejs/cli-linux-x64-musl@2.3.6': - resolution: {integrity: sha512-QvxB8GHQeaO4FCtwJpJjCgJkbHBbWxRHUxQlod+xeaYE6gtJdSkYkuxdKAQUZEOIsec+PeaDAhW9xjzYbwmOFA==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-QvxB8GHQeaO4FCtwJpJjCgJkbHBbWxRHUxQlod+xeaYE6gtJdSkYkuxdKAQUZEOIsec+PeaDAhW9xjzYbwmOFA==, + } + engines: { node: '>=14.21.3' } cpu: [x64] os: [linux] '@biomejs/cli-linux-x64@2.3.6': - resolution: {integrity: sha512-ZjPXzy5yN9wusIoX+8Zp4p6cL8r0NzJCXg/4r1KLVveIPXd2jKVlqZ6ZyzEq385WwU3OX5KOwQYLQsOc788waQ==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-ZjPXzy5yN9wusIoX+8Zp4p6cL8r0NzJCXg/4r1KLVveIPXd2jKVlqZ6ZyzEq385WwU3OX5KOwQYLQsOc788waQ==, + } + engines: { node: '>=14.21.3' } cpu: [x64] os: [linux] '@biomejs/cli-win32-arm64@2.3.6': - resolution: {integrity: sha512-YM7hLHpwjdt8R7+O2zS1Vo2cKgqEeptiXB1tWW1rgjN5LlpZovBVKtg7zfwfRrFx3i08aNZThYpTcowpTlczug==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-YM7hLHpwjdt8R7+O2zS1Vo2cKgqEeptiXB1tWW1rgjN5LlpZovBVKtg7zfwfRrFx3i08aNZThYpTcowpTlczug==, + } + engines: { node: '>=14.21.3' } cpu: [arm64] os: [win32] '@biomejs/cli-win32-x64@2.3.6': - resolution: {integrity: sha512-psgNEYgMAobY5h+QHRBVR9xvg2KocFuBKm6axZWB/aD12NWhQjiVFQUjV6wMXhlH4iT0Q9c3yK5JFRiDC/rzHA==} - engines: {node: '>=14.21.3'} + resolution: + { + integrity: sha512-psgNEYgMAobY5h+QHRBVR9xvg2KocFuBKm6axZWB/aD12NWhQjiVFQUjV6wMXhlH4iT0Q9c3yK5JFRiDC/rzHA==, + } + engines: { node: '>=14.21.3' } cpu: [x64] os: [win32] '@braintree/sanitize-url@7.1.1': - resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} + resolution: + { + integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==, + } '@bundled-es-modules/cookie@2.0.1': - resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} + resolution: + { + integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==, + } '@bundled-es-modules/statuses@1.0.1': - resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} + resolution: + { + integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==, + } '@bundled-es-modules/tough-cookie@0.1.6': - resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} + resolution: + { + integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==, + } '@chevrotain/cst-dts-gen@11.0.3': - resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} + resolution: + { + integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==, + } '@chevrotain/gast@11.0.3': - resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} + resolution: + { + integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==, + } '@chevrotain/regexp-to-ast@11.0.3': - resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} + resolution: + { + integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==, + } '@chevrotain/types@11.0.3': - resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} + resolution: + { + integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==, + } '@chevrotain/utils@11.0.3': - resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} + resolution: + { + integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==, + } '@chromatic-com/storybook@4.1.1': - resolution: {integrity: sha512-+Ib4cHtEjKl/Do+4LyU0U1FhLPbIU2Q/zgbOKHBCV+dTC4T3/vGzPqiGsgkdnZyTsK/zXg96LMPSPC4jjOiapg==} - engines: {node: '>=20.0.0', yarn: '>=1.22.18'} + resolution: + { + integrity: sha512-+Ib4cHtEjKl/Do+4LyU0U1FhLPbIU2Q/zgbOKHBCV+dTC4T3/vGzPqiGsgkdnZyTsK/zXg96LMPSPC4jjOiapg==, + } + engines: { node: '>=20.0.0', yarn: '>=1.22.18' } peerDependencies: storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 '@codemirror/autocomplete@6.18.6': - resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} + resolution: + { + integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==, + } '@codemirror/commands@6.8.1': - resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} + resolution: + { + integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==, + } '@codemirror/lang-cpp@6.0.3': - resolution: {integrity: sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA==} + resolution: + { + integrity: sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA==, + } '@codemirror/lang-css@6.3.1': - resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==} + resolution: + { + integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==, + } '@codemirror/lang-html@6.4.9': - resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} + resolution: + { + integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==, + } '@codemirror/lang-java@6.0.2': - resolution: {integrity: sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ==} + resolution: + { + integrity: sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ==, + } '@codemirror/lang-javascript@6.2.4': - resolution: {integrity: sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==} + resolution: + { + integrity: sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==, + } '@codemirror/lang-json@6.0.2': - resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==} + resolution: + { + integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==, + } '@codemirror/lang-lezer@6.0.2': - resolution: {integrity: sha512-mcVAf8lw+sCfSlr2ivMqV8JtNmOQjSXdA1vHKRtoW0OZsz1k6qhF+DX0K2TbWlAThqiGgRkRSZyYzIoEtKB2uQ==} + resolution: + { + integrity: sha512-mcVAf8lw+sCfSlr2ivMqV8JtNmOQjSXdA1vHKRtoW0OZsz1k6qhF+DX0K2TbWlAThqiGgRkRSZyYzIoEtKB2uQ==, + } '@codemirror/lang-markdown@6.3.4': - resolution: {integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==} + resolution: + { + integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==, + } '@codemirror/lang-php@6.0.2': - resolution: {integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==} + resolution: + { + integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==, + } '@codemirror/lang-python@6.2.1': - resolution: {integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==} + resolution: + { + integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==, + } '@codemirror/lang-rust@6.0.2': - resolution: {integrity: sha512-EZaGjCUegtiU7kSMvOfEZpaCReowEf3yNidYu7+vfuGTm9ow4mthAparY5hisJqOHmJowVH3Upu+eJlUji6qqA==} + resolution: + { + integrity: sha512-EZaGjCUegtiU7kSMvOfEZpaCReowEf3yNidYu7+vfuGTm9ow4mthAparY5hisJqOHmJowVH3Upu+eJlUji6qqA==, + } '@codemirror/lang-sql@6.9.1': - resolution: {integrity: sha512-ecSk3gm/mlINcURMcvkCZmXgdzPSq8r/yfCtTB4vgqGGIbBC2IJIAy7GqYTy5pgBEooTVmHP2GZK6Z7h63CDGg==} + resolution: + { + integrity: sha512-ecSk3gm/mlINcURMcvkCZmXgdzPSq8r/yfCtTB4vgqGGIbBC2IJIAy7GqYTy5pgBEooTVmHP2GZK6Z7h63CDGg==, + } '@codemirror/lang-wast@6.0.2': - resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} + resolution: + { + integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==, + } '@codemirror/lang-xml@6.1.0': - resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} + resolution: + { + integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==, + } '@codemirror/language@6.11.3': - resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} + resolution: + { + integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==, + } '@codemirror/lint@6.8.5': - resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} + resolution: + { + integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==, + } '@codemirror/search@6.5.11': - resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} + resolution: + { + integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==, + } '@codemirror/state@6.5.2': - resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} + resolution: + { + integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==, + } '@codemirror/view@6.38.1': - resolution: {integrity: sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==} + resolution: + { + integrity: sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==, + } '@compiled/react@0.11.4': - resolution: {integrity: sha512-mtnEUFM7w/5xABWWWj3wW0vjS/cHSg0PAttJC+hOpQ5z5qGZCwk43Gy8Hfjruxvll73igJ5DSMzcAyek6DMKjw==} + resolution: + { + integrity: sha512-mtnEUFM7w/5xABWWWj3wW0vjS/cHSg0PAttJC+hOpQ5z5qGZCwk43Gy8Hfjruxvll73igJ5DSMzcAyek6DMKjw==, + } peerDependencies: react: '>= 16.12.0' '@cspotcode/source-map-support@0.8.1': - resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, + } + engines: { node: '>=12' } '@csstools/color-helpers@5.0.2': - resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==, + } + engines: { node: '>=18' } '@csstools/css-calc@2.1.4': - resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==, + } + engines: { node: '>=18' } peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 '@csstools/css-color-parser@3.0.10': - resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==, + } + engines: { node: '>=18' } peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 '@csstools/css-parser-algorithms@3.0.5': - resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==, + } + engines: { node: '>=18' } peerDependencies: '@csstools/css-tokenizer': ^3.0.4 '@csstools/css-tokenizer@3.0.4': - resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==, + } + engines: { node: '>=18' } '@dagrejs/dagre@1.1.5': - resolution: {integrity: sha512-Ghgrh08s12DCL5SeiR6AoyE80mQELTWhJBRmXfFoqDiFkR458vPEdgTbbjA0T+9ETNxUblnD0QW55tfdvi5pjQ==} + resolution: + { + integrity: sha512-Ghgrh08s12DCL5SeiR6AoyE80mQELTWhJBRmXfFoqDiFkR458vPEdgTbbjA0T+9ETNxUblnD0QW55tfdvi5pjQ==, + } '@dagrejs/graphlib@2.2.4': - resolution: {integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==} - engines: {node: '>17.0.0'} + resolution: + { + integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==, + } + engines: { node: '>17.0.0' } '@date-fns/tz@1.4.1': - resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==} + resolution: + { + integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==, + } '@dnd-kit/accessibility@3.1.1': - resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} + resolution: + { + integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==, + } peerDependencies: react: '>=16.8.0' '@dnd-kit/core@6.3.1': - resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==} + resolution: + { + integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==, + } peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' '@dnd-kit/modifiers@7.0.0': - resolution: {integrity: sha512-BG/ETy3eBjFap7+zIti53f0PCLGDzNXyTmn6fSdrudORf+OH04MxrW4p5+mPu4mgMk9kM41iYONjc3DOUWTcfg==} + resolution: + { + integrity: sha512-BG/ETy3eBjFap7+zIti53f0PCLGDzNXyTmn6fSdrudORf+OH04MxrW4p5+mPu4mgMk9kM41iYONjc3DOUWTcfg==, + } peerDependencies: '@dnd-kit/core': ^6.1.0 react: '>=16.8.0' '@dnd-kit/sortable@10.0.0': - resolution: {integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==} + resolution: + { + integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==, + } peerDependencies: '@dnd-kit/core': ^6.3.0 react: '>=16.8.0' '@dnd-kit/sortable@8.0.0': - resolution: {integrity: sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g==} + resolution: + { + integrity: sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g==, + } peerDependencies: '@dnd-kit/core': ^6.1.0 react: '>=16.8.0' '@dnd-kit/utilities@3.2.2': - resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==} + resolution: + { + integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==, + } peerDependencies: react: '>=16.8.0' '@electric-sql/pglite@0.3.7': - resolution: {integrity: sha512-5c3mybVrhxu5s47zFZtIGdG8YHkKCBENOmqxnNBjY53ZoDhADY/c5UqBDl159b7qtkzNPtbbb893wL9zi1kAuw==} + resolution: + { + integrity: sha512-5c3mybVrhxu5s47zFZtIGdG8YHkKCBENOmqxnNBjY53ZoDhADY/c5UqBDl159b7qtkzNPtbbb893wL9zi1kAuw==, + } '@emnapi/core@0.45.0': - resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==} + resolution: + { + integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==, + } '@emnapi/core@1.4.5': - resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} + resolution: + { + integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==, + } '@emnapi/runtime@0.45.0': - resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} + resolution: + { + integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==, + } '@emnapi/runtime@1.4.5': - resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} + resolution: + { + integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==, + } '@emnapi/wasi-threads@1.0.4': - resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} + resolution: + { + integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==, + } '@emotion/babel-plugin@11.13.5': - resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} + resolution: + { + integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==, + } '@emotion/cache@11.14.0': - resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} + resolution: + { + integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==, + } '@emotion/hash@0.9.2': - resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} + resolution: + { + integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==, + } '@emotion/is-prop-valid@1.3.1': - resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} + resolution: + { + integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==, + } '@emotion/memoize@0.9.0': - resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} + resolution: + { + integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==, + } '@emotion/react@11.14.0': - resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} + resolution: + { + integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==, + } peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -2800,13 +3509,22 @@ packages: optional: true '@emotion/serialize@1.3.3': - resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} + resolution: + { + integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==, + } '@emotion/sheet@1.4.0': - resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} + resolution: + { + integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==, + } '@emotion/styled@11.14.1': - resolution: {integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==} + resolution: + { + integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==, + } peerDependencies: '@emotion/react': ^11.0.0-rc.0 '@types/react': '*' @@ -2816,366 +3534,564 @@ packages: optional: true '@emotion/unitless@0.10.0': - resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} + resolution: + { + integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==, + } '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} + resolution: + { + integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==, + } peerDependencies: react: '>=16.8.0' '@emotion/utils@1.4.2': - resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} + resolution: + { + integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==, + } '@emotion/weak-memoize@0.4.0': - resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} + resolution: + { + integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==, + } '@esbuild/aix-ppc64@0.19.11': - resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==, + } + engines: { node: '>=12' } cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.25.9': - resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==, + } + engines: { node: '>=18' } cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.19.11': - resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==, + } + engines: { node: '>=12' } cpu: [arm64] os: [android] '@esbuild/android-arm64@0.25.9': - resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==, + } + engines: { node: '>=18' } cpu: [arm64] os: [android] '@esbuild/android-arm@0.19.11': - resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==, + } + engines: { node: '>=12' } cpu: [arm] os: [android] '@esbuild/android-arm@0.25.9': - resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==, + } + engines: { node: '>=18' } cpu: [arm] os: [android] '@esbuild/android-x64@0.19.11': - resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==, + } + engines: { node: '>=12' } cpu: [x64] os: [android] '@esbuild/android-x64@0.25.9': - resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==, + } + engines: { node: '>=18' } cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.19.11': - resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==, + } + engines: { node: '>=12' } cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.25.9': - resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==, + } + engines: { node: '>=18' } cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.19.11': - resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==, + } + engines: { node: '>=12' } cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.25.9': - resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==, + } + engines: { node: '>=18' } cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.19.11': - resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==, + } + engines: { node: '>=12' } cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.25.9': - resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==, + } + engines: { node: '>=18' } cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.19.11': - resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==, + } + engines: { node: '>=12' } cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.25.9': - resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==, + } + engines: { node: '>=18' } cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.19.11': - resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==, + } + engines: { node: '>=12' } cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.25.9': - resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==, + } + engines: { node: '>=18' } cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.19.11': - resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==, + } + engines: { node: '>=12' } cpu: [arm] os: [linux] '@esbuild/linux-arm@0.25.9': - resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==, + } + engines: { node: '>=18' } cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.19.11': - resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==, + } + engines: { node: '>=12' } cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.25.9': - resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==, + } + engines: { node: '>=18' } cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.19.11': - resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==, + } + engines: { node: '>=12' } cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.25.9': - resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==, + } + engines: { node: '>=18' } cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.19.11': - resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==, + } + engines: { node: '>=12' } cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.25.9': - resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==, + } + engines: { node: '>=18' } cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.19.11': - resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==, + } + engines: { node: '>=12' } cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.25.9': - resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==, + } + engines: { node: '>=18' } cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.19.11': - resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==, + } + engines: { node: '>=12' } cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.25.9': - resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==, + } + engines: { node: '>=18' } cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.19.11': - resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==, + } + engines: { node: '>=12' } cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.25.9': - resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==, + } + engines: { node: '>=18' } cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.19.11': - resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==, + } + engines: { node: '>=12' } cpu: [x64] os: [linux] '@esbuild/linux-x64@0.25.9': - resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==, + } + engines: { node: '>=18' } cpu: [x64] os: [linux] '@esbuild/netbsd-arm64@0.25.9': - resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==, + } + engines: { node: '>=18' } cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.19.11': - resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==, + } + engines: { node: '>=12' } cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.25.9': - resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==, + } + engines: { node: '>=18' } cpu: [x64] os: [netbsd] '@esbuild/openbsd-arm64@0.25.9': - resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==, + } + engines: { node: '>=18' } cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.19.11': - resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==, + } + engines: { node: '>=12' } cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.25.9': - resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==, + } + engines: { node: '>=18' } cpu: [x64] os: [openbsd] '@esbuild/openharmony-arm64@0.25.9': - resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==, + } + engines: { node: '>=18' } cpu: [arm64] os: [openharmony] '@esbuild/sunos-x64@0.19.11': - resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==, + } + engines: { node: '>=12' } cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.25.9': - resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==, + } + engines: { node: '>=18' } cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.19.11': - resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==, + } + engines: { node: '>=12' } cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.25.9': - resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==, + } + engines: { node: '>=18' } cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.19.11': - resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==, + } + engines: { node: '>=12' } cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.25.9': - resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==, + } + engines: { node: '>=18' } cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.19.11': - resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==, + } + engines: { node: '>=12' } cpu: [x64] os: [win32] '@esbuild/win32-x64@0.25.9': - resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==, + } + engines: { node: '>=18' } cpu: [x64] os: [win32] '@faker-js/faker@9.9.0': - resolution: {integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==} - engines: {node: '>=18.0.0', npm: '>=9.0.0'} + resolution: + { + integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==, + } + engines: { node: '>=18.0.0', npm: '>=9.0.0' } '@floating-ui/core@1.7.3': - resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + resolution: + { + integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==, + } '@floating-ui/dom@1.7.3': - resolution: {integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==} + resolution: + { + integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==, + } '@floating-ui/react-dom@2.1.5': - resolution: {integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==} + resolution: + { + integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==, + } peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' '@floating-ui/react@0.26.28': - resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} + resolution: + { + integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==, + } peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' '@floating-ui/utils@0.2.10': - resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + resolution: + { + integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==, + } '@formatjs/intl-localematcher@0.6.1': - resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} + resolution: + { + integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==, + } '@fortedigital/nextjs-cache-handler@1.2.0': - resolution: {integrity: sha512-dHu7+D6yVHI5ii1/DgNSZM9wVPk8uKAB0zrRoNNbZq6hggpRRwAExV4J6bSGOd26RN6ZnfYaGLBmdb0gLpeBQg==} + resolution: + { + integrity: sha512-dHu7+D6yVHI5ii1/DgNSZM9wVPk8uKAB0zrRoNNbZq6hggpRRwAExV4J6bSGOd26RN6ZnfYaGLBmdb0gLpeBQg==, + } peerDependencies: next: '>=13.5.1' redis: '>=4.6' '@googleapis/drive@8.16.0': - resolution: {integrity: sha512-Xi2mMrUTQ+gsfyouRGd0pfnL+jjg4n4sjKsJruM1y4DknuRfdSBTk5E//WrL0YJ/CqpcBgyd7L8DvaPRtxZD3Q==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-Xi2mMrUTQ+gsfyouRGd0pfnL+jjg4n4sjKsJruM1y4DknuRfdSBTk5E//WrL0YJ/CqpcBgyd7L8DvaPRtxZD3Q==, + } + engines: { node: '>=12.0.0' } '@graphile/logger@0.2.0': - resolution: {integrity: sha512-jjcWBokl9eb1gVJ85QmoaQ73CQ52xAaOCF29ukRbYNl6lY+ts0ErTaDYOBlejcbUs2OpaiqYLO5uDhyLFzWw4w==} + resolution: + { + integrity: sha512-jjcWBokl9eb1gVJ85QmoaQ73CQ52xAaOCF29ukRbYNl6lY+ts0ErTaDYOBlejcbUs2OpaiqYLO5uDhyLFzWw4w==, + } '@grpc/grpc-js@1.13.4': - resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} - engines: {node: '>=12.10.0'} + resolution: + { + integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==, + } + engines: { node: '>=12.10.0' } '@grpc/proto-loader@0.7.15': - resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==, + } + engines: { node: '>=6' } hasBin: true '@handlewithcare/react-prosemirror@2.4.12': - resolution: {integrity: sha512-55iZ0qmIWiGbaG6tklWZfybRoRLNWqbgzpA3Wvt3gQgXHhOQ6oICJLSAw0Adz8iSI6jdYLOdeCBaKi72noX1Sw==} - engines: {node: '>=16.9'} + resolution: + { + integrity: sha512-55iZ0qmIWiGbaG6tklWZfybRoRLNWqbgzpA3Wvt3gQgXHhOQ6oICJLSAw0Adz8iSI6jdYLOdeCBaKi72noX1Sw==, + } + engines: { node: '>=16.9' } peerDependencies: prosemirror-model: ^1.0.0 prosemirror-state: ^1.0.0 @@ -3184,175 +4100,271 @@ packages: react-dom: '>=17 <=19.1.0' '@headlessui/react@2.2.7': - resolution: {integrity: sha512-WKdTymY8Y49H8/gUc/lIyYK1M+/6dq0Iywh4zTZVAaiTDprRfioxSgD0wnXTQTBpjpGJuTL1NO/mqEvc//5SSg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-WKdTymY8Y49H8/gUc/lIyYK1M+/6dq0Iywh4zTZVAaiTDprRfioxSgD0wnXTQTBpjpGJuTL1NO/mqEvc//5SSg==, + } + engines: { node: '>=10' } peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc '@honeycombio/opentelemetry-node@0.6.1': - resolution: {integrity: sha512-ddLSufGaWBlYItwvPftC81N2afJTVANK7abrQCy2+amtaRiPewrjtXbxVRmq3U+qPtM9e36E1huwK91cGGAuBQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ddLSufGaWBlYItwvPftC81N2afJTVANK7abrQCy2+amtaRiPewrjtXbxVRmq3U+qPtM9e36E1huwK91cGGAuBQ==, + } + engines: { node: '>=14' } '@hono/node-server@1.19.1': - resolution: {integrity: sha512-h44e5s+ByUriaRIbeS/C74O8v90m0A95luyYQGMF7KEn96KkYMXO7bZAwombzTpjQTU4e0TkU8U1WBIXlwuwtA==} - engines: {node: '>=18.14.1'} + resolution: + { + integrity: sha512-h44e5s+ByUriaRIbeS/C74O8v90m0A95luyYQGMF7KEn96KkYMXO7bZAwombzTpjQTU4e0TkU8U1WBIXlwuwtA==, + } + engines: { node: '>=18.14.1' } peerDependencies: hono: ^4 '@hono/zod-validator@0.4.3': - resolution: {integrity: sha512-xIgMYXDyJ4Hj6ekm9T9Y27s080Nl9NXHcJkOvkXPhubOLj8hZkOL8pDnnXfvCf5xEE8Q4oMFenQUZZREUY2gqQ==} + resolution: + { + integrity: sha512-xIgMYXDyJ4Hj6ekm9T9Y27s080Nl9NXHcJkOvkXPhubOLj8hZkOL8pDnnXfvCf5xEE8Q4oMFenQUZZREUY2gqQ==, + } peerDependencies: hono: '>=3.9.0' zod: ^3.19.1 '@hookform/devtools@4.4.0': - resolution: {integrity: sha512-Mtlic+uigoYBPXlfvPBfiYYUZuyMrD3pTjDpVIhL6eCZTvQkHsKBSKeZCvXWUZr8fqrkzDg27N+ZuazLKq6Vmg==} + resolution: + { + integrity: sha512-Mtlic+uigoYBPXlfvPBfiYYUZuyMrD3pTjDpVIhL6eCZTvQkHsKBSKeZCvXWUZr8fqrkzDg27N+ZuazLKq6Vmg==, + } peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 react-dom: ^16.8.0 || ^17 || ^18 || ^19 '@hookform/resolvers@3.10.0': - resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==} + resolution: + { + integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==, + } peerDependencies: react-hook-form: ^7.0.0 '@iconify/types@2.0.0': - resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + resolution: + { + integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, + } '@iconify/utils@2.3.0': - resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} + resolution: + { + integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==, + } '@icons-pack/react-simple-icons@10.2.0': - resolution: {integrity: sha512-QDUxup8D3GdIIzwGpxQs6bjeFV5mJes25qqf4aqP/PaBYQNCar7AiyD8C14636TosCG0A/QqAUwm/Hviep4d4g==} + resolution: + { + integrity: sha512-QDUxup8D3GdIIzwGpxQs6bjeFV5mJes25qqf4aqP/PaBYQNCar7AiyD8C14636TosCG0A/QqAUwm/Hviep4d4g==, + } peerDependencies: react: ^16.13 || ^17 || ^18 || ^19 '@img/sharp-darwin-arm64@0.34.3': - resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [darwin] '@img/sharp-darwin-x64@0.34.3': - resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [darwin] '@img/sharp-libvips-darwin-arm64@1.2.0': - resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} + resolution: + { + integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==, + } cpu: [arm64] os: [darwin] '@img/sharp-libvips-darwin-x64@1.2.0': - resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} + resolution: + { + integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==, + } cpu: [x64] os: [darwin] '@img/sharp-libvips-linux-arm64@1.2.0': - resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} + resolution: + { + integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==, + } cpu: [arm64] os: [linux] '@img/sharp-libvips-linux-arm@1.2.0': - resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} + resolution: + { + integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==, + } cpu: [arm] os: [linux] '@img/sharp-libvips-linux-ppc64@1.2.0': - resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} + resolution: + { + integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==, + } cpu: [ppc64] os: [linux] '@img/sharp-libvips-linux-s390x@1.2.0': - resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} + resolution: + { + integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==, + } cpu: [s390x] os: [linux] '@img/sharp-libvips-linux-x64@1.2.0': - resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} + resolution: + { + integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==, + } cpu: [x64] os: [linux] '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} + resolution: + { + integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==, + } cpu: [arm64] os: [linux] '@img/sharp-libvips-linuxmusl-x64@1.2.0': - resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} + resolution: + { + integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==, + } cpu: [x64] os: [linux] '@img/sharp-linux-arm64@0.34.3': - resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [linux] '@img/sharp-linux-arm@0.34.3': - resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm] os: [linux] '@img/sharp-linux-ppc64@0.34.3': - resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [ppc64] os: [linux] '@img/sharp-linux-s390x@0.34.3': - resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [s390x] os: [linux] '@img/sharp-linux-x64@0.34.3': - resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [linux] '@img/sharp-linuxmusl-arm64@0.34.3': - resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [linux] '@img/sharp-linuxmusl-x64@0.34.3': - resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [linux] '@img/sharp-wasm32@0.34.3': - resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [wasm32] '@img/sharp-win32-arm64@0.34.3': - resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [arm64] os: [win32] '@img/sharp-win32-ia32@0.34.3': - resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [ia32] os: [win32] '@img/sharp-win32-x64@0.34.3': - resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } cpu: [x64] os: [win32] '@inquirer/confirm@5.1.15': - resolution: {integrity: sha512-SwHMGa8Z47LawQN0rog0sT+6JpiL0B7eW9p1Bb7iCeKDGTI5Ez25TSc2l8kw52VV7hA4sX/C78CGkMrKXfuspA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-SwHMGa8Z47LawQN0rog0sT+6JpiL0B7eW9p1Bb7iCeKDGTI5Ez25TSc2l8kw52VV7hA4sX/C78CGkMrKXfuspA==, + } + engines: { node: '>=18' } peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -3360,8 +4372,11 @@ packages: optional: true '@inquirer/core@10.1.15': - resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==, + } + engines: { node: '>=18' } peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -3369,8 +4384,11 @@ packages: optional: true '@inquirer/external-editor@1.0.1': - resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==, + } + engines: { node: '>=18' } peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -3378,12 +4396,18 @@ packages: optional: true '@inquirer/figures@1.0.13': - resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==, + } + engines: { node: '>=18' } '@inquirer/type@3.0.8': - resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==, + } + engines: { node: '>=18' } peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -3391,30 +4415,51 @@ packages: optional: true '@ioredis/commands@1.3.0': - resolution: {integrity: sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==} + resolution: + { + integrity: sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==, + } '@isaacs/balanced-match@4.0.1': - resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==, + } + engines: { node: 20 || >=22 } '@isaacs/brace-expansion@5.0.0': - resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==, + } + engines: { node: 20 || >=22 } '@isaacs/cliui@8.0.2': - resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, + } + engines: { node: '>=12' } '@isaacs/fs-minipass@4.0.1': - resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==, + } + engines: { node: '>=18.0.0' } '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, + } + engines: { node: '>=8' } '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1': - resolution: {integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==} + resolution: + { + integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==, + } peerDependencies: typescript: '>= 4.3.x' vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -3423,1481 +4468,2336 @@ packages: optional: true '@jridgewell/gen-mapping@0.3.13': - resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} + resolution: + { + integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, + } '@jridgewell/remapping@2.3.5': - resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} + resolution: + { + integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==, + } '@jridgewell/resolve-uri@3.1.2': - resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, + } + engines: { node: '>=6.0.0' } '@jridgewell/source-map@0.3.11': - resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} + resolution: + { + integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==, + } '@jridgewell/sourcemap-codec@1.5.5': - resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + resolution: + { + integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, + } '@jridgewell/trace-mapping@0.3.30': - resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + resolution: + { + integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==, + } '@jridgewell/trace-mapping@0.3.9': - resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + resolution: + { + integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, + } '@js-sdsl/ordered-map@4.4.2': - resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} + resolution: + { + integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, + } '@jsep-plugin/assignment@1.3.0': - resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} - engines: {node: '>= 10.16.0'} + resolution: + { + integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==, + } + engines: { node: '>= 10.16.0' } peerDependencies: jsep: ^0.4.0||^1.0.0 '@jsep-plugin/regex@1.0.4': - resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} - engines: {node: '>= 10.16.0'} + resolution: + { + integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==, + } + engines: { node: '>= 10.16.0' } peerDependencies: jsep: ^0.4.0||^1.0.0 '@kristiandupont/recase@1.4.1': - resolution: {integrity: sha512-e5t4YqhnRGbS9sU4N52cQgTn37qKwTsxDDcIuIkgPvX0UmnL+7eoOR6oFXeCib5zYuw03vYKpR55NBq+W43j1A==} + resolution: + { + integrity: sha512-e5t4YqhnRGbS9sU4N52cQgTn37qKwTsxDDcIuIkgPvX0UmnL+7eoOR6oFXeCib5zYuw03vYKpR55NBq+W43j1A==, + } '@lexical/clipboard@0.23.1': - resolution: {integrity: sha512-MT8IXl1rhTe8VcwnkhgFtWra6sRYNsl/I7nE9aw6QxwvPReKmRDmyBmEIeXwnKSGHRe19OJhu4/A9ciKPyVdMA==} + resolution: + { + integrity: sha512-MT8IXl1rhTe8VcwnkhgFtWra6sRYNsl/I7nE9aw6QxwvPReKmRDmyBmEIeXwnKSGHRe19OJhu4/A9ciKPyVdMA==, + } '@lexical/code@0.23.1': - resolution: {integrity: sha512-TOxaFAwoewrX3rHp4Po+u1LJT8oteP/6Kn2z6j9DaynBW62gIqTuSAFcMPysVx/Puq5hhJHPRD/be9RWDteDZw==} + resolution: + { + integrity: sha512-TOxaFAwoewrX3rHp4Po+u1LJT8oteP/6Kn2z6j9DaynBW62gIqTuSAFcMPysVx/Puq5hhJHPRD/be9RWDteDZw==, + } '@lexical/devtools-core@0.23.1': - resolution: {integrity: sha512-QsgcrECy11ZHhWAfyNW/ougXFF1o0EuQnhFybgTdqQmw0rJ2ZgPLpPjD5lws3CE8mP8g5knBV4/cyxvv42fzzg==} + resolution: + { + integrity: sha512-QsgcrECy11ZHhWAfyNW/ougXFF1o0EuQnhFybgTdqQmw0rJ2ZgPLpPjD5lws3CE8mP8g5knBV4/cyxvv42fzzg==, + } peerDependencies: react: '>=17.x' react-dom: '>=17.x' '@lexical/dragon@0.23.1': - resolution: {integrity: sha512-ZoY9VJDrTpO69sinRhIs3RlPAWviy4mwnC7lqtM77/pVK0Kaknv7z2iDqv+414PKQCgUhyoXp7PfYXu/3yb6LQ==} + resolution: + { + integrity: sha512-ZoY9VJDrTpO69sinRhIs3RlPAWviy4mwnC7lqtM77/pVK0Kaknv7z2iDqv+414PKQCgUhyoXp7PfYXu/3yb6LQ==, + } '@lexical/hashtag@0.23.1': - resolution: {integrity: sha512-EkRCHV/IQwKlggy3VQDF9b4Krc9DKNZEjXe84CkEVrRpQSOwXi0qORzuaAipARyN632WKLSXOZJmNzkUNocJ6A==} + resolution: + { + integrity: sha512-EkRCHV/IQwKlggy3VQDF9b4Krc9DKNZEjXe84CkEVrRpQSOwXi0qORzuaAipARyN632WKLSXOZJmNzkUNocJ6A==, + } '@lexical/history@0.23.1': - resolution: {integrity: sha512-5Vro4bIePw37MwffpvPm56WlwPdlY/u+fVkvXsxdhK9bqiFesmLZhBirokDPvJEMP35V59kzmN5mmWXSYfuRpg==} + resolution: + { + integrity: sha512-5Vro4bIePw37MwffpvPm56WlwPdlY/u+fVkvXsxdhK9bqiFesmLZhBirokDPvJEMP35V59kzmN5mmWXSYfuRpg==, + } '@lexical/html@0.23.1': - resolution: {integrity: sha512-kNkDUaDe/Awypaw8JZn65BzT1gwNj2bNkaGFcmIkXUrTtiqlvgYvKvJeOKLkoAb/i2xq990ZAbHOsJrJm1jMbw==} + resolution: + { + integrity: sha512-kNkDUaDe/Awypaw8JZn65BzT1gwNj2bNkaGFcmIkXUrTtiqlvgYvKvJeOKLkoAb/i2xq990ZAbHOsJrJm1jMbw==, + } '@lexical/link@0.23.1': - resolution: {integrity: sha512-HRaOp7prtcbHjbgq8AjJ4O02jYb8pTeS8RrGcgIRhCOq3/EcsSb1dXMwuraqmh9oxbuFyEu/JE31EFksiOW6qA==} + resolution: + { + integrity: sha512-HRaOp7prtcbHjbgq8AjJ4O02jYb8pTeS8RrGcgIRhCOq3/EcsSb1dXMwuraqmh9oxbuFyEu/JE31EFksiOW6qA==, + } '@lexical/list@0.23.1': - resolution: {integrity: sha512-TI3WyWk3avv9uaJwaq8V+m9zxLRgnzXDYNS0rREafnW09rDpaFkpVmDuX+PZVR3NqPlwVt+slWVSBuyfguAFbA==} + resolution: + { + integrity: sha512-TI3WyWk3avv9uaJwaq8V+m9zxLRgnzXDYNS0rREafnW09rDpaFkpVmDuX+PZVR3NqPlwVt+slWVSBuyfguAFbA==, + } '@lexical/mark@0.23.1': - resolution: {integrity: sha512-E7cMOBVMrNGMw0LsyWKNFQZ5Io3bUIHCC3aCUdH24z1XWnuTmDFKMqNrphywPniO7pzSgVyGpkQBZIAIN76+YA==} + resolution: + { + integrity: sha512-E7cMOBVMrNGMw0LsyWKNFQZ5Io3bUIHCC3aCUdH24z1XWnuTmDFKMqNrphywPniO7pzSgVyGpkQBZIAIN76+YA==, + } '@lexical/markdown@0.23.1': - resolution: {integrity: sha512-TQx8oXenaiVYffBPxD85m4CydbDAuYOonATiABAFG6CHkA6vi898M1TCTgVDS6/iISjtjQpqHo0SW7YjLt14jw==} + resolution: + { + integrity: sha512-TQx8oXenaiVYffBPxD85m4CydbDAuYOonATiABAFG6CHkA6vi898M1TCTgVDS6/iISjtjQpqHo0SW7YjLt14jw==, + } '@lexical/offset@0.23.1': - resolution: {integrity: sha512-ylw5egME/lldacVXDoRsdGDXPuk9lGmYgcqx/aITGrSymav+RDjQoAapHbz1HQqGmm/m18+VLaWTdjtkbrIN6g==} + resolution: + { + integrity: sha512-ylw5egME/lldacVXDoRsdGDXPuk9lGmYgcqx/aITGrSymav+RDjQoAapHbz1HQqGmm/m18+VLaWTdjtkbrIN6g==, + } '@lexical/overflow@0.23.1': - resolution: {integrity: sha512-WubTqozpxOeyTm/tKIHXinsjuRcgPESacOvu93dS+sC7q3n+xeBIu5FL7lM6bbsk3zNtNJQ9sG0svZngmWRjCw==} + resolution: + { + integrity: sha512-WubTqozpxOeyTm/tKIHXinsjuRcgPESacOvu93dS+sC7q3n+xeBIu5FL7lM6bbsk3zNtNJQ9sG0svZngmWRjCw==, + } '@lexical/plain-text@0.23.1': - resolution: {integrity: sha512-tM4DJw+HyT9XV4BKGVECDnejcC//jsFggjFmJgwIMTCxJPiGXEEZLZTXmGqf8QdFZ6cH1I5bhreZPQUWu6dRvg==} + resolution: + { + integrity: sha512-tM4DJw+HyT9XV4BKGVECDnejcC//jsFggjFmJgwIMTCxJPiGXEEZLZTXmGqf8QdFZ6cH1I5bhreZPQUWu6dRvg==, + } '@lexical/react@0.23.1': - resolution: {integrity: sha512-g5CQMOiK+Djqp75UaSFUceHZEUQVIXBzWBuVR69pCiptCgNqN3CNAoIxy0hTTaVrLq6S0SCjUOduBDtioN0bLA==} + resolution: + { + integrity: sha512-g5CQMOiK+Djqp75UaSFUceHZEUQVIXBzWBuVR69pCiptCgNqN3CNAoIxy0hTTaVrLq6S0SCjUOduBDtioN0bLA==, + } peerDependencies: react: '>=17.x' react-dom: '>=17.x' '@lexical/rich-text@0.23.1': - resolution: {integrity: sha512-Y77HGxdF5aemjw/H44BXETD5KNeaNdwMRu9P7IrlK7cC1dvvimzL2D6ezbub5i7F1Ef5T0quOXjwK056vrqaKQ==} + resolution: + { + integrity: sha512-Y77HGxdF5aemjw/H44BXETD5KNeaNdwMRu9P7IrlK7cC1dvvimzL2D6ezbub5i7F1Ef5T0quOXjwK056vrqaKQ==, + } '@lexical/selection@0.23.1': - resolution: {integrity: sha512-xoehAURMZJZYf046GHUXiv8FSv5zTobhwDD2dML4fmNHPp9NxugkWHlNUinTK/b+jGgjSYVsqpEKPBmue4ZHdQ==} + resolution: + { + integrity: sha512-xoehAURMZJZYf046GHUXiv8FSv5zTobhwDD2dML4fmNHPp9NxugkWHlNUinTK/b+jGgjSYVsqpEKPBmue4ZHdQ==, + } '@lexical/table@0.23.1': - resolution: {integrity: sha512-Qs+iuwSVkV4OGTt+JdL9hvyl/QO3X9waH70L5Fxu9JmQk/jLl02tIGXbE38ocJkByfpyk4PrphoXt6l7CugJZA==} + resolution: + { + integrity: sha512-Qs+iuwSVkV4OGTt+JdL9hvyl/QO3X9waH70L5Fxu9JmQk/jLl02tIGXbE38ocJkByfpyk4PrphoXt6l7CugJZA==, + } '@lexical/text@0.23.1': - resolution: {integrity: sha512-aOuuAhmc+l2iSK99uP0x/Zg9LSQswQdNG3IxzGa0rTx844mWUHuEbAUaOqqlgDA1/zZ0WjObyhPfZJL775y63g==} + resolution: + { + integrity: sha512-aOuuAhmc+l2iSK99uP0x/Zg9LSQswQdNG3IxzGa0rTx844mWUHuEbAUaOqqlgDA1/zZ0WjObyhPfZJL775y63g==, + } '@lexical/utils@0.23.1': - resolution: {integrity: sha512-yXEkF6fj32+mJblCoP0ZT/vA0S05FA0nRUkVrvGX6sbZ9y+cIzuIbBoHi4z1ytutcWHQrwCK4TsN9hPYBIlb2w==} + resolution: + { + integrity: sha512-yXEkF6fj32+mJblCoP0ZT/vA0S05FA0nRUkVrvGX6sbZ9y+cIzuIbBoHi4z1ytutcWHQrwCK4TsN9hPYBIlb2w==, + } '@lexical/yjs@0.23.1': - resolution: {integrity: sha512-ygodSxmC65srNicMIhqBRIXI2LHhmnHcR1EO9fLO7flZWGCR1HIoeGmwhHo9FLgJoc5LHanV+dE0z1onFo1qqQ==} + resolution: + { + integrity: sha512-ygodSxmC65srNicMIhqBRIXI2LHhmnHcR1EO9fLO7flZWGCR1HIoeGmwhHo9FLgJoc5LHanV+dE0z1onFo1qqQ==, + } peerDependencies: yjs: '>=13.5.22' '@lezer/common@1.2.3': - resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} + resolution: + { + integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==, + } '@lezer/cpp@1.1.3': - resolution: {integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==} + resolution: + { + integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==, + } '@lezer/css@1.3.0': - resolution: {integrity: sha512-pBL7hup88KbI7hXnZV3PQsn43DHy6TWyzuyk2AO9UyoXcDltvIdqWKE1dLL/45JVZ+YZkHe1WVHqO6wugZZWcw==} + resolution: + { + integrity: sha512-pBL7hup88KbI7hXnZV3PQsn43DHy6TWyzuyk2AO9UyoXcDltvIdqWKE1dLL/45JVZ+YZkHe1WVHqO6wugZZWcw==, + } '@lezer/highlight@1.2.1': - resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} + resolution: + { + integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==, + } '@lezer/html@1.3.10': - resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} + resolution: + { + integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==, + } '@lezer/java@1.1.3': - resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} + resolution: + { + integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==, + } '@lezer/javascript@1.5.1': - resolution: {integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==} + resolution: + { + integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==, + } '@lezer/json@1.0.3': - resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} + resolution: + { + integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==, + } '@lezer/lezer@1.1.2': - resolution: {integrity: sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==} + resolution: + { + integrity: sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==, + } '@lezer/lr@1.4.2': - resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} + resolution: + { + integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==, + } '@lezer/markdown@1.4.3': - resolution: {integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==} + resolution: + { + integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==, + } '@lezer/php@1.0.4': - resolution: {integrity: sha512-D2dJ0t8Z28/G1guztRczMFvPDUqzeMLSQbdWQmaiHV7urc8NlEOnjYk9UrZ531OcLiRxD4Ihcbv7AsDpNKDRaQ==} + resolution: + { + integrity: sha512-D2dJ0t8Z28/G1guztRczMFvPDUqzeMLSQbdWQmaiHV7urc8NlEOnjYk9UrZ531OcLiRxD4Ihcbv7AsDpNKDRaQ==, + } '@lezer/python@1.1.18': - resolution: {integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==} + resolution: + { + integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==, + } '@lezer/rust@1.0.2': - resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} + resolution: + { + integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==, + } '@lezer/xml@1.0.6': - resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==} + resolution: + { + integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==, + } '@marijn/find-cluster-break@1.0.2': - resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} + resolution: + { + integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==, + } '@mdx-js/mdx@3.1.0': - resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} + resolution: + { + integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==, + } '@mdx-js/react@3.1.0': - resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} + resolution: + { + integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==, + } peerDependencies: '@types/react': '>=16' react: '>=16' '@mermaid-js/parser@0.6.2': - resolution: {integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==} + resolution: + { + integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==, + } '@monaco-editor/loader@1.7.0': - resolution: {integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==} + resolution: + { + integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==, + } '@monaco-editor/react@4.7.0': - resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==} + resolution: + { + integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==, + } peerDependencies: monaco-editor: '>= 0.25.0 < 1' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@mswjs/interceptors@0.39.6': - resolution: {integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==, + } + engines: { node: '>=18' } '@napi-rs/simple-git-android-arm-eabi@0.1.22': - resolution: {integrity: sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==, + } + engines: { node: '>= 10' } cpu: [arm] os: [android] '@napi-rs/simple-git-android-arm64@0.1.22': - resolution: {integrity: sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [android] '@napi-rs/simple-git-darwin-arm64@0.1.22': - resolution: {integrity: sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@napi-rs/simple-git-darwin-x64@0.1.22': - resolution: {integrity: sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@napi-rs/simple-git-freebsd-x64@0.1.22': - resolution: {integrity: sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@napi-rs/simple-git-linux-arm-gnueabihf@0.1.22': - resolution: {integrity: sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@napi-rs/simple-git-linux-arm64-gnu@0.1.22': - resolution: {integrity: sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@napi-rs/simple-git-linux-arm64-musl@0.1.22': - resolution: {integrity: sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@napi-rs/simple-git-linux-ppc64-gnu@0.1.22': - resolution: {integrity: sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==, + } + engines: { node: '>= 10' } cpu: [ppc64] os: [linux] '@napi-rs/simple-git-linux-s390x-gnu@0.1.22': - resolution: {integrity: sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==, + } + engines: { node: '>= 10' } cpu: [s390x] os: [linux] '@napi-rs/simple-git-linux-x64-gnu@0.1.22': - resolution: {integrity: sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@napi-rs/simple-git-linux-x64-musl@0.1.22': - resolution: {integrity: sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@napi-rs/simple-git-win32-arm64-msvc@0.1.22': - resolution: {integrity: sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@napi-rs/simple-git-win32-ia32-msvc@0.1.22': - resolution: {integrity: sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==, + } + engines: { node: '>= 10' } cpu: [ia32] os: [win32] '@napi-rs/simple-git-win32-x64-msvc@0.1.22': - resolution: {integrity: sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@napi-rs/simple-git@0.1.22': - resolution: {integrity: sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==, + } + engines: { node: '>= 10' } '@napi-rs/wasm-runtime@0.2.12': - resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} + resolution: + { + integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==, + } '@neoconfetti/react@1.0.0': - resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} + resolution: + { + integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==, + } '@neshca/cache-handler@1.9.0': - resolution: {integrity: sha512-dh0x4pdjDKvPRfZF5DZb8TtOUkbBfeTodOUdQsHDuv0oiuqQ3p7GLx38f6bPn8Sa4he8HsWo+rM4S20ZRqr7pA==} + resolution: + { + integrity: sha512-dh0x4pdjDKvPRfZF5DZb8TtOUkbBfeTodOUdQsHDuv0oiuqQ3p7GLx38f6bPn8Sa4he8HsWo+rM4S20ZRqr7pA==, + } peerDependencies: next: '>= 13.5.1 < 15' redis: '>= 4.6' '@next/env@15.5.0': - resolution: {integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==} + resolution: + { + integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==, + } '@next/env@15.5.9': - resolution: {integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==} + resolution: + { + integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==, + } '@next/swc-darwin-arm64@15.5.7': - resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@next/swc-darwin-x64@15.5.7': - resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@next/swc-linux-arm64-gnu@15.5.7': - resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@next/swc-linux-arm64-musl@15.5.7': - resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@next/swc-linux-x64-gnu@15.5.7': - resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@next/swc-linux-x64-musl@15.5.7': - resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@next/swc-win32-arm64-msvc@15.5.7': - resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@next/swc-win32-x64-msvc@15.5.7': - resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@nimpl/getters@2.2.0': - resolution: {integrity: sha512-zuvly0OZ+Adq63duhHZFfNOPyRj/AKP2VLA7qGhuu8ymFzMNW2GLRouA9qDtAFvgqO+Zt9I+QECQ+NCHo2C7Mg==} + resolution: + { + integrity: sha512-zuvly0OZ+Adq63duhHZFfNOPyRj/AKP2VLA7qGhuu8ymFzMNW2GLRouA9qDtAFvgqO+Zt9I+QECQ+NCHo2C7Mg==, + } peerDependencies: next: '>= 14.0.0' react: '>= 18.2.0' react-dom: '>= 18.2.0' '@node-rs/argon2-android-arm-eabi@1.7.0': - resolution: {integrity: sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==, + } + engines: { node: '>= 10' } cpu: [arm] os: [android] '@node-rs/argon2-android-arm-eabi@1.8.3': - resolution: {integrity: sha512-JFZPlNM0A8Og+Tncb8UZsQrhEMlbHBXPsT3hRoKImzVmTmq28Os0ucFWow0AACp2coLHBSydXH3Dh0lZup3rWw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-JFZPlNM0A8Og+Tncb8UZsQrhEMlbHBXPsT3hRoKImzVmTmq28Os0ucFWow0AACp2coLHBSydXH3Dh0lZup3rWw==, + } + engines: { node: '>= 10' } cpu: [arm] os: [android] '@node-rs/argon2-android-arm64@1.7.0': - resolution: {integrity: sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [android] '@node-rs/argon2-android-arm64@1.8.3': - resolution: {integrity: sha512-zaf8P3T92caeW2xnMA7P1QvRA4pIt/04oilYP44XlTCtMye//vwXDMeK53sl7dvYiJKnzAWDRx41k8vZvpZazg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-zaf8P3T92caeW2xnMA7P1QvRA4pIt/04oilYP44XlTCtMye//vwXDMeK53sl7dvYiJKnzAWDRx41k8vZvpZazg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [android] '@node-rs/argon2-darwin-arm64@1.7.0': - resolution: {integrity: sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@node-rs/argon2-darwin-arm64@1.8.3': - resolution: {integrity: sha512-DV/IbmLGdNXBtXb5o2UI5ba6kvqXqPAJgmMOTUCuHeBSp992GlLHdfU4rzGu0dNrxudBnunNZv+crd0YdEQSUA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-DV/IbmLGdNXBtXb5o2UI5ba6kvqXqPAJgmMOTUCuHeBSp992GlLHdfU4rzGu0dNrxudBnunNZv+crd0YdEQSUA==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@node-rs/argon2-darwin-x64@1.7.0': - resolution: {integrity: sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@node-rs/argon2-darwin-x64@1.8.3': - resolution: {integrity: sha512-YMjmBGFZhLfYjfQ2gll9A+BZu/zAMV7lWZIbKxb7ZgEofILQwuGmExjDtY3Jplido/6leCEdpmlk2oIsME00LA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-YMjmBGFZhLfYjfQ2gll9A+BZu/zAMV7lWZIbKxb7ZgEofILQwuGmExjDtY3Jplido/6leCEdpmlk2oIsME00LA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@node-rs/argon2-freebsd-x64@1.7.0': - resolution: {integrity: sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@node-rs/argon2-freebsd-x64@1.8.3': - resolution: {integrity: sha512-Hq3Rj5Yb2RolTG/luRPnv+XiGCbi5nAK25Pc8ou/tVapwX+iktEm/NXbxc5zsMxraYVkCvfdwBjweC5O+KqCGw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-Hq3Rj5Yb2RolTG/luRPnv+XiGCbi5nAK25Pc8ou/tVapwX+iktEm/NXbxc5zsMxraYVkCvfdwBjweC5O+KqCGw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@node-rs/argon2-linux-arm-gnueabihf@1.7.0': - resolution: {integrity: sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@node-rs/argon2-linux-arm-gnueabihf@1.8.3': - resolution: {integrity: sha512-x49l8RgzKoG0/V0IXa5rrEl1TcJEc936ctlYFvqcunSOyowZ6kiWtrp1qrbOR8gbaNILl11KTF52vF6+h8UlEQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-x49l8RgzKoG0/V0IXa5rrEl1TcJEc936ctlYFvqcunSOyowZ6kiWtrp1qrbOR8gbaNILl11KTF52vF6+h8UlEQ==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@node-rs/argon2-linux-arm64-gnu@1.7.0': - resolution: {integrity: sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@node-rs/argon2-linux-arm64-gnu@1.8.3': - resolution: {integrity: sha512-gJesam/qA63reGkb9qJ2TjFSLBtY41zQh2oei7nfnYsmVQPuHHWItJxEa1Bm21SPW53gZex4jFJbDIgj0+PxIw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-gJesam/qA63reGkb9qJ2TjFSLBtY41zQh2oei7nfnYsmVQPuHHWItJxEa1Bm21SPW53gZex4jFJbDIgj0+PxIw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@node-rs/argon2-linux-arm64-musl@1.7.0': - resolution: {integrity: sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@node-rs/argon2-linux-arm64-musl@1.8.3': - resolution: {integrity: sha512-7O6kQdSKzB4Tjx/EBa8zKIxnmLkQE8VdJgPm6Ksrpn+ueo0mx2xf76fIDnbbTCtm3UbB+y+FkTo2wLA7tOqIKg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-7O6kQdSKzB4Tjx/EBa8zKIxnmLkQE8VdJgPm6Ksrpn+ueo0mx2xf76fIDnbbTCtm3UbB+y+FkTo2wLA7tOqIKg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@node-rs/argon2-linux-x64-gnu@1.7.0': - resolution: {integrity: sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@node-rs/argon2-linux-x64-gnu@1.8.3': - resolution: {integrity: sha512-OBH+EFG7BGjFyldaao2H2gSCLmjtrrwf420B1L+lFn7JLW9UAjsIPFKAcWsYwPa/PwYzIge9Y7SGcpqlsSEX0w==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-OBH+EFG7BGjFyldaao2H2gSCLmjtrrwf420B1L+lFn7JLW9UAjsIPFKAcWsYwPa/PwYzIge9Y7SGcpqlsSEX0w==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@node-rs/argon2-linux-x64-musl@1.7.0': - resolution: {integrity: sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@node-rs/argon2-linux-x64-musl@1.8.3': - resolution: {integrity: sha512-bDbMuyekIxZaN7NaX+gHVkOyABB8bcMEJYeRPW1vCXKHj3brJns1wiUFSxqeUXreupifNVJlQfPt1Y5B/vFXgQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-bDbMuyekIxZaN7NaX+gHVkOyABB8bcMEJYeRPW1vCXKHj3brJns1wiUFSxqeUXreupifNVJlQfPt1Y5B/vFXgQ==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@node-rs/argon2-wasm32-wasi@1.7.0': - resolution: {integrity: sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==, + } + engines: { node: '>=14.0.0' } cpu: [wasm32] '@node-rs/argon2-wasm32-wasi@1.8.3': - resolution: {integrity: sha512-NBf2cMCDbNKMzp13Pog8ZPmI0M9U4Ak5b95EUjkp17kdKZFds12dwW67EMnj7Zy+pRqby2QLECaWebDYfNENTg==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-NBf2cMCDbNKMzp13Pog8ZPmI0M9U4Ak5b95EUjkp17kdKZFds12dwW67EMnj7Zy+pRqby2QLECaWebDYfNENTg==, + } + engines: { node: '>=14.0.0' } cpu: [wasm32] '@node-rs/argon2-win32-arm64-msvc@1.7.0': - resolution: {integrity: sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@node-rs/argon2-win32-arm64-msvc@1.8.3': - resolution: {integrity: sha512-AHpPo7UbdW5WWjwreVpgFSY0o1RY4A7cUFaqDXZB2OqEuyrhMxBdZct9PX7PQKI18D85pLsODnR+gvVuTwJ6rQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-AHpPo7UbdW5WWjwreVpgFSY0o1RY4A7cUFaqDXZB2OqEuyrhMxBdZct9PX7PQKI18D85pLsODnR+gvVuTwJ6rQ==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@node-rs/argon2-win32-ia32-msvc@1.7.0': - resolution: {integrity: sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==, + } + engines: { node: '>= 10' } cpu: [ia32] os: [win32] '@node-rs/argon2-win32-ia32-msvc@1.8.3': - resolution: {integrity: sha512-bqzn2rcQkEwCINefhm69ttBVVkgHJb/V03DdBKsPFtiX6H47axXKz62d1imi26zFXhOEYxhKbu3js03GobJOLw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-bqzn2rcQkEwCINefhm69ttBVVkgHJb/V03DdBKsPFtiX6H47axXKz62d1imi26zFXhOEYxhKbu3js03GobJOLw==, + } + engines: { node: '>= 10' } cpu: [ia32] os: [win32] '@node-rs/argon2-win32-x64-msvc@1.7.0': - resolution: {integrity: sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@node-rs/argon2-win32-x64-msvc@1.8.3': - resolution: {integrity: sha512-ILlrRThdbp5xNR5gwYM2ic1n/vG5rJ8dQZ+YMRqksl+lnTJ/6FDe5BOyIhiPtiDwlCiCtUA+1NxpDB9KlUCAIA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-ILlrRThdbp5xNR5gwYM2ic1n/vG5rJ8dQZ+YMRqksl+lnTJ/6FDe5BOyIhiPtiDwlCiCtUA+1NxpDB9KlUCAIA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@node-rs/argon2@1.7.0': - resolution: {integrity: sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==, + } + engines: { node: '>= 10' } '@node-rs/argon2@1.8.3': - resolution: {integrity: sha512-sf/QAEI59hsMEEE2J8vO4hKrXrv4Oplte3KI2N4MhMDYpytH0drkVfErmHBfWFZxxIEK03fX1WsBNswS2nIZKg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-sf/QAEI59hsMEEE2J8vO4hKrXrv4Oplte3KI2N4MhMDYpytH0drkVfErmHBfWFZxxIEK03fX1WsBNswS2nIZKg==, + } + engines: { node: '>= 10' } '@node-rs/bcrypt-android-arm-eabi@1.9.0': - resolution: {integrity: sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==, + } + engines: { node: '>= 10' } cpu: [arm] os: [android] '@node-rs/bcrypt-android-arm64@1.9.0': - resolution: {integrity: sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [android] '@node-rs/bcrypt-darwin-arm64@1.9.0': - resolution: {integrity: sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@node-rs/bcrypt-darwin-x64@1.9.0': - resolution: {integrity: sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@node-rs/bcrypt-freebsd-x64@1.9.0': - resolution: {integrity: sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0': - resolution: {integrity: sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@node-rs/bcrypt-linux-arm64-gnu@1.9.0': - resolution: {integrity: sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@node-rs/bcrypt-linux-arm64-musl@1.9.0': - resolution: {integrity: sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@node-rs/bcrypt-linux-x64-gnu@1.9.0': - resolution: {integrity: sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@node-rs/bcrypt-linux-x64-musl@1.9.0': - resolution: {integrity: sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@node-rs/bcrypt-wasm32-wasi@1.9.0': - resolution: {integrity: sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==, + } + engines: { node: '>=14.0.0' } cpu: [wasm32] '@node-rs/bcrypt-win32-arm64-msvc@1.9.0': - resolution: {integrity: sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@node-rs/bcrypt-win32-ia32-msvc@1.9.0': - resolution: {integrity: sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==, + } + engines: { node: '>= 10' } cpu: [ia32] os: [win32] '@node-rs/bcrypt-win32-x64-msvc@1.9.0': - resolution: {integrity: sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@node-rs/bcrypt@1.9.0': - resolution: {integrity: sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==, + } + engines: { node: '>= 10' } '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, + } + engines: { node: '>= 8' } '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, + } + engines: { node: '>= 8' } '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, + } + engines: { node: '>= 8' } '@open-draft/deferred-promise@2.2.0': - resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} + resolution: + { + integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==, + } '@open-draft/logger@0.3.0': - resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} + resolution: + { + integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==, + } '@open-draft/until@2.1.0': - resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} + resolution: + { + integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==, + } '@opentelemetry/api-logs@0.203.0': - resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==, + } + engines: { node: '>=8.0.0' } '@opentelemetry/api-logs@0.46.0': - resolution: {integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==, + } + engines: { node: '>=14' } '@opentelemetry/api-logs@0.55.0': - resolution: {integrity: sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==, + } + engines: { node: '>=14' } '@opentelemetry/api-logs@0.57.2': - resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==, + } + engines: { node: '>=14' } '@opentelemetry/api@1.4.1': - resolution: {integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==, + } + engines: { node: '>=8.0.0' } '@opentelemetry/api@1.7.0': - resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==, + } + engines: { node: '>=8.0.0' } '@opentelemetry/api@1.9.0': - resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==, + } + engines: { node: '>=8.0.0' } '@opentelemetry/auto-instrumentations-node@0.53.0': - resolution: {integrity: sha512-AI3VQX1L2g4Xya8fPE1aahVhvya8/ikU7o2kMbry122Gd4kDVph41pejdOhWa/oNUgPRC6FLJmx7SZZ6/ShVjQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-AI3VQX1L2g4Xya8fPE1aahVhvya8/ikU7o2kMbry122Gd4kDVph41pejdOhWa/oNUgPRC6FLJmx7SZZ6/ShVjQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.4.1 '@opentelemetry/context-async-hooks@1.19.0': - resolution: {integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/context-async-hooks@1.28.0': - resolution: {integrity: sha512-igcl4Ve+F1N2063PJUkesk/GkYyuGIWinYkSyAFTnIj3gzrOgvOA4k747XNdL47HRRL1w/qh7UW8NDuxOLvKFA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-igcl4Ve+F1N2063PJUkesk/GkYyuGIWinYkSyAFTnIj3gzrOgvOA4k747XNdL47HRRL1w/qh7UW8NDuxOLvKFA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/context-async-hooks@2.0.1': - resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@1.19.0': - resolution: {integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/core@1.28.0': - resolution: {integrity: sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@1.30.1': - resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@2.0.1': - resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/exporter-logs-otlp-grpc@0.55.0': - resolution: {integrity: sha512-ykqawCL0ILJWyCJlxCPSAlqQXZ6x2bQsxAVUu8S3z22XNqY5SMx0rl2d93XnvnrOwtcfm+sM9ZhbGh/i5AZ9xw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ykqawCL0ILJWyCJlxCPSAlqQXZ6x2bQsxAVUu8S3z22XNqY5SMx0rl2d93XnvnrOwtcfm+sM9ZhbGh/i5AZ9xw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-logs-otlp-http@0.55.0': - resolution: {integrity: sha512-fpFObWWq+DoLVrBU2dyMEaVkibByEkmKQZIUIjW/4j7lwIsTgW7aJCoD9RYFVB/tButcqov5Es2C0J2wTjM2tg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-fpFObWWq+DoLVrBU2dyMEaVkibByEkmKQZIUIjW/4j7lwIsTgW7aJCoD9RYFVB/tButcqov5Es2C0J2wTjM2tg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-logs-otlp-proto@0.55.0': - resolution: {integrity: sha512-vjE+DxUr+cUpxikdKCPiLZM5Wx7g1bywjCG76TQocvsA7Tmbb9p0t1+8gPlu9AGH7VEzPwDxxpN4p1ajpOurzQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-vjE+DxUr+cUpxikdKCPiLZM5Wx7g1bywjCG76TQocvsA7Tmbb9p0t1+8gPlu9AGH7VEzPwDxxpN4p1ajpOurzQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-metrics-otlp-grpc@0.46.0': - resolution: {integrity: sha512-BeYDu4nLOJC9LSfPRay1mM2+Pho6AGDIChrpg3D5A3ie7wYUW66lkyr5nMioLgG9EDZLeRsuHsEbVcv0AXpGQw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-BeYDu4nLOJC9LSfPRay1mM2+Pho6AGDIChrpg3D5A3ie7wYUW66lkyr5nMioLgG9EDZLeRsuHsEbVcv0AXpGQw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-metrics-otlp-http@0.46.0': - resolution: {integrity: sha512-7dyNATgM1LCKv4RGf3zsbHZMQNILQ6bxZ5/a56ptGDgg6Bz8Iz8jghonBx/K++A4QNMnu7Ppamm5qL2xlWEYjg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-7dyNATgM1LCKv4RGf3zsbHZMQNILQ6bxZ5/a56ptGDgg6Bz8Iz8jghonBx/K++A4QNMnu7Ppamm5qL2xlWEYjg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-metrics-otlp-proto@0.46.0': - resolution: {integrity: sha512-2nj4YoTMcx/PixfTp+Zj7G7uJm9twzlq50TVy9rCRLRC30qSuvNYcEXymNYI1GtOZmQT6FQB1AHE9+JZNetVNg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-2nj4YoTMcx/PixfTp+Zj7G7uJm9twzlq50TVy9rCRLRC30qSuvNYcEXymNYI1GtOZmQT6FQB1AHE9+JZNetVNg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-trace-otlp-grpc@0.46.0': - resolution: {integrity: sha512-kR4kehnfIhv7v/2MuNYfrlh9A/ZtQofwCzurTIplornUjdzhKDGgjui1NkNTqTfM1QkqfCiavGsf5hwocx29bA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-kR4kehnfIhv7v/2MuNYfrlh9A/ZtQofwCzurTIplornUjdzhKDGgjui1NkNTqTfM1QkqfCiavGsf5hwocx29bA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-trace-otlp-grpc@0.55.0': - resolution: {integrity: sha512-ohIkCLn2Wc3vhhFuf1bH8kOXHMEdcWiD847x7f3Qfygc+CGiatGLzQYscTcEYsWGMV22gVwB/kVcNcx5a3o8gA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ohIkCLn2Wc3vhhFuf1bH8kOXHMEdcWiD847x7f3Qfygc+CGiatGLzQYscTcEYsWGMV22gVwB/kVcNcx5a3o8gA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-trace-otlp-http@0.46.0': - resolution: {integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-trace-otlp-http@0.55.0': - resolution: {integrity: sha512-lMiNic63EVHpW+eChmLD2CieDmwQBFi72+LFbh8+5hY0ShrDGrsGP/zuT5MRh7M/vM/UZYO/2A/FYd7CMQGR7A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-lMiNic63EVHpW+eChmLD2CieDmwQBFi72+LFbh8+5hY0ShrDGrsGP/zuT5MRh7M/vM/UZYO/2A/FYd7CMQGR7A==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-trace-otlp-proto@0.46.0': - resolution: {integrity: sha512-A7PftDM57w1TLiirrhi8ceAnCpYkpUBObELdn239IyYF67zwngImGfBLf5Yo3TTAOA2Oj1TL76L8zWVL8W+Suw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-A7PftDM57w1TLiirrhi8ceAnCpYkpUBObELdn239IyYF67zwngImGfBLf5Yo3TTAOA2Oj1TL76L8zWVL8W+Suw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-trace-otlp-proto@0.55.0': - resolution: {integrity: sha512-qxiJFP+bBZW3+goHCGkE1ZdW9gJU0fR7eQ6OP+Rz5oGtEBbq4nkGodhb7C9FJlEFlE2siPtCxoeupV0gtYynag==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-qxiJFP+bBZW3+goHCGkE1ZdW9gJU0fR7eQ6OP+Rz5oGtEBbq4nkGodhb7C9FJlEFlE2siPtCxoeupV0gtYynag==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-zipkin@1.19.0': - resolution: {integrity: sha512-TY1fy4JiOBN5a8T9fknqTMcz0DXIeFBr6sklaLCgwtj+G699a5R4CekNwpeM7DHSwC44UMX7gljO2I6dYsTS3A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TY1fy4JiOBN5a8T9fknqTMcz0DXIeFBr6sklaLCgwtj+G699a5R4CekNwpeM7DHSwC44UMX7gljO2I6dYsTS3A==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-zipkin@1.28.0': - resolution: {integrity: sha512-AMwr3eGXaPEH7gk8yhcUcen31VXy1yU5VJETu0pCfGpggGCYmhm0FKgYBpL5/vlIgQJWU/sW2vIjCL7aSilpKg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-AMwr3eGXaPEH7gk8yhcUcen31VXy1yU5VJETu0pCfGpggGCYmhm0FKgYBpL5/vlIgQJWU/sW2vIjCL7aSilpKg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/instrumentation-amqplib@0.44.0': - resolution: {integrity: sha512-n2nn2jD1zWeKQOfmDTMXmypHJ2DmyTGZADOYLxRlYNDOv69lTPLZYaxVIUEdnCvioLSuVnB8zPzy077gEKcCaQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-n2nn2jD1zWeKQOfmDTMXmypHJ2DmyTGZADOYLxRlYNDOv69lTPLZYaxVIUEdnCvioLSuVnB8zPzy077gEKcCaQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-amqplib@0.50.0': - resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-aws-lambda@0.48.0': - resolution: {integrity: sha512-0BJHjCUQwDO5uMCAE1C06LoXcLPK3lWlnT40AORFU9DvT/tFFCjs+KlN3vE39FSlWL7vVzyMVOejdcbDv+xMlw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-0BJHjCUQwDO5uMCAE1C06LoXcLPK3lWlnT40AORFU9DvT/tFFCjs+KlN3vE39FSlWL7vVzyMVOejdcbDv+xMlw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-aws-sdk@0.47.0': - resolution: {integrity: sha512-taO5tsee7g5Q71LRebnHSDb8oIEcGDaqMol0gMJdPCAZAu4pZ7vixDGCONAvIo9OgrR948h/NhQX4T0cLJ1fag==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-taO5tsee7g5Q71LRebnHSDb8oIEcGDaqMol0gMJdPCAZAu4pZ7vixDGCONAvIo9OgrR948h/NhQX4T0cLJ1fag==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-bunyan@0.43.0': - resolution: {integrity: sha512-nAAXMx63tXXWwuPiTLWTxDRBqXDRvcfE4H3IrXZbrls3BO7P7SkTZ9dvwPCuTku4rRUhEEDpV8vq9Ng4Pk/Uzw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-nAAXMx63tXXWwuPiTLWTxDRBqXDRvcfE4H3IrXZbrls3BO7P7SkTZ9dvwPCuTku4rRUhEEDpV8vq9Ng4Pk/Uzw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-cassandra-driver@0.43.0': - resolution: {integrity: sha512-fpnGDwUA5nRFhMDb4N1JBUi3dzsHvZRFcyX5bIXoApx43ZwY3lP/eF44aiHE6a4YObgcStLchLa0bEDM5UT4Fw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-fpnGDwUA5nRFhMDb4N1JBUi3dzsHvZRFcyX5bIXoApx43ZwY3lP/eF44aiHE6a4YObgcStLchLa0bEDM5UT4Fw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-connect@0.41.0': - resolution: {integrity: sha512-BFbkWYVzvSG9G9bG/8vp3+VWRfFgBqPPG0fQh4oM8nrz3YWrHK6269PIXmk9W5hXoxvYw0ghzp2kjMXIzX+NeA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-BFbkWYVzvSG9G9bG/8vp3+VWRfFgBqPPG0fQh4oM8nrz3YWrHK6269PIXmk9W5hXoxvYw0ghzp2kjMXIzX+NeA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-connect@0.47.0': - resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-cucumber@0.11.0': - resolution: {integrity: sha512-6CyeH678mw5AYbXIY1wtuNL7OsE57+XXk5t5pBeiXsAg0Kh0084/MmBzzCNVOCxn+IN5sjXKtjgVIDHrE/iILA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-6CyeH678mw5AYbXIY1wtuNL7OsE57+XXk5t5pBeiXsAg0Kh0084/MmBzzCNVOCxn+IN5sjXKtjgVIDHrE/iILA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/instrumentation-dataloader@0.14.0': - resolution: {integrity: sha512-1cQC0CUSCDbyACFA8f8limjYyQbNdYdiKzGIJF2MwSUkhac64WvcoNjknYfK7CCO68QrBmvmaLqoF+IbZ7djZg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-1cQC0CUSCDbyACFA8f8limjYyQbNdYdiKzGIJF2MwSUkhac64WvcoNjknYfK7CCO68QrBmvmaLqoF+IbZ7djZg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-dataloader@0.21.0': - resolution: {integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-dns@0.41.0': - resolution: {integrity: sha512-4SovC9rlhBcRzlAmw8PZD3tcP8CfIZ8GJIKJlB5Lca7IDh2A92JpOqzrWFCOJVGFYt7E6YeZJ09b+yb/4Ypa5Q==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-4SovC9rlhBcRzlAmw8PZD3tcP8CfIZ8GJIKJlB5Lca7IDh2A92JpOqzrWFCOJVGFYt7E6YeZJ09b+yb/4Ypa5Q==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-express@0.45.0': - resolution: {integrity: sha512-7NY+HsETxEP5Rtlhy8Z3pPJdiz6wPmJuFVb9bRDdThKk72ATryox2ozV3t+aMeOdDsVgQiPHpgPzU150/uovOQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-7NY+HsETxEP5Rtlhy8Z3pPJdiz6wPmJuFVb9bRDdThKk72ATryox2ozV3t+aMeOdDsVgQiPHpgPzU150/uovOQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-express@0.52.0': - resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-fastify@0.42.0': - resolution: {integrity: sha512-XmLaOI4rCqcuBwL+u/vh+hJdLCaZsjc7Q88BCtvLAQhnrj02UEX3c+MDRMcCAoxUJMQTSJMlCOv/tfibWdrVAg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-XmLaOI4rCqcuBwL+u/vh+hJdLCaZsjc7Q88BCtvLAQhnrj02UEX3c+MDRMcCAoxUJMQTSJMlCOv/tfibWdrVAg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-fs@0.17.0': - resolution: {integrity: sha512-WKO2hBdU24LD4VlSNOIWRAP3JegTmDtZtoy0H92ipKeVajvlSMewozvTXiGd2+hF7WY3zL6/sbx47t6ycq9SrA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-WKO2hBdU24LD4VlSNOIWRAP3JegTmDtZtoy0H92ipKeVajvlSMewozvTXiGd2+hF7WY3zL6/sbx47t6ycq9SrA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-fs@0.23.0': - resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-generic-pool@0.41.0': - resolution: {integrity: sha512-V0OcN7VH37laZU1pxLixFROBkXrT55E5/MpacShsziAhGqiPZyU1XlCAHBseZ0T7cPfQ8Ux3cp0BAv59hRPt1Q==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-V0OcN7VH37laZU1pxLixFROBkXrT55E5/MpacShsziAhGqiPZyU1XlCAHBseZ0T7cPfQ8Ux3cp0BAv59hRPt1Q==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-generic-pool@0.47.0': - resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-graphql@0.45.0': - resolution: {integrity: sha512-NCmL89XZcu9NQAskrYsUHT0PygUiLX90GwjS7kUn72nRAuk/myGg8Zj9YUPwe/OKVJcSLA5Fq755jUHlBQ1odA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-NCmL89XZcu9NQAskrYsUHT0PygUiLX90GwjS7kUn72nRAuk/myGg8Zj9YUPwe/OKVJcSLA5Fq755jUHlBQ1odA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-graphql@0.51.0': - resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-grpc@0.55.0': - resolution: {integrity: sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-hapi@0.43.0': - resolution: {integrity: sha512-FsSfn3nWNucswySEK/3EDV9vtgtj24YluVausqWMZiQlTlsLPzTbu2lUl7ynQViJGsUYh0YNpNz9d4IdzAGtcQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-FsSfn3nWNucswySEK/3EDV9vtgtj24YluVausqWMZiQlTlsLPzTbu2lUl7ynQViJGsUYh0YNpNz9d4IdzAGtcQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-hapi@0.50.0': - resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-http@0.203.0': - resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-http@0.55.0': - resolution: {integrity: sha512-AO27XSjkgNicfy/YBthskFAwx9VfaO7tChrLaTONTfOWv14GlB3Rs2eTYpywZIHWsW2cR5hvVkcDte4GV0stoA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-AO27XSjkgNicfy/YBthskFAwx9VfaO7tChrLaTONTfOWv14GlB3Rs2eTYpywZIHWsW2cR5hvVkcDte4GV0stoA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-ioredis@0.45.0': - resolution: {integrity: sha512-h79ctSTYgxc6V0saa4JcdjEt/JQd9gkfgFwPNyHZkIx0aQofygMc32Ulp2v7axAHqf8HiI9jP9aP/Qh1mWVSNA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-h79ctSTYgxc6V0saa4JcdjEt/JQd9gkfgFwPNyHZkIx0aQofygMc32Ulp2v7axAHqf8HiI9jP9aP/Qh1mWVSNA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-ioredis@0.51.0': - resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-kafkajs@0.12.0': - resolution: {integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-kafkajs@0.5.0': - resolution: {integrity: sha512-34Jv473IVv5uKFPz9m1ONX4DAnIxPXB5xKW46imq/6Cre7fZf23P2Aa/NQyFhCNymwbcJDMv6+6uU3THGn73lQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-34Jv473IVv5uKFPz9m1ONX4DAnIxPXB5xKW46imq/6Cre7fZf23P2Aa/NQyFhCNymwbcJDMv6+6uU3THGn73lQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-knex@0.42.0': - resolution: {integrity: sha512-lKrr9bfYVLXXX0/p0tB3VB2zMbCgw+8CZkWd5U2d2idr7CORH0efKD+0aZukMFfg10qBaIouhFdFn5iR+34i5w==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-lKrr9bfYVLXXX0/p0tB3VB2zMbCgw+8CZkWd5U2d2idr7CORH0efKD+0aZukMFfg10qBaIouhFdFn5iR+34i5w==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-knex@0.48.0': - resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-koa@0.45.0': - resolution: {integrity: sha512-nNdgmOZUkP+yR/yF0RsXapJNioORgnrA2Jl58ExlxyGUbHvHjcSAlNY7dsBljQFHhFYzBOh4NPs3TBbF681+qw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-nNdgmOZUkP+yR/yF0RsXapJNioORgnrA2Jl58ExlxyGUbHvHjcSAlNY7dsBljQFHhFYzBOh4NPs3TBbF681+qw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-koa@0.51.0': - resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-lru-memoizer@0.42.0': - resolution: {integrity: sha512-536coihEiLB8E9wuSGG4j+f/9QhGQhvbb9WWF3Y+Ogn4Zz89Vm7vIQbre/M5coLLFIzVhLDoBD77QjtE+eXn0g==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-536coihEiLB8E9wuSGG4j+f/9QhGQhvbb9WWF3Y+Ogn4Zz89Vm7vIQbre/M5coLLFIzVhLDoBD77QjtE+eXn0g==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-lru-memoizer@0.48.0': - resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-memcached@0.41.0': - resolution: {integrity: sha512-Qrp+yl6pobVAm2F5AJizopDFtKkxwIzJ8iSnV1TDhbB8O7ct4N9p8rz3WvA3XAikS0bVw9rh/cRgYvb7g6AQcQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Qrp+yl6pobVAm2F5AJizopDFtKkxwIzJ8iSnV1TDhbB8O7ct4N9p8rz3WvA3XAikS0bVw9rh/cRgYvb7g6AQcQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongodb@0.49.0': - resolution: {integrity: sha512-3qIvelQxqj+znuHB6f2sLGmTG6FUbpX0qsxABEG3yPh7i11f2dJ554bUxkpVV1Y9YafP3iKEHo2ybbjjUm5xyg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-3qIvelQxqj+znuHB6f2sLGmTG6FUbpX0qsxABEG3yPh7i11f2dJ554bUxkpVV1Y9YafP3iKEHo2ybbjjUm5xyg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongodb@0.56.0': - resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongoose@0.44.0': - resolution: {integrity: sha512-gBwxWvUFxTcXDXiLTqpiM7jyOS27X5x8saQesG8RsL128yxAoN3oiy3Hn3hIw13nkh+AHTXBTiADVD/lkazuiA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-gBwxWvUFxTcXDXiLTqpiM7jyOS27X5x8saQesG8RsL128yxAoN3oiy3Hn3hIw13nkh+AHTXBTiADVD/lkazuiA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongoose@0.50.0': - resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql2@0.43.0': - resolution: {integrity: sha512-9W1AxMfrZV3ZeYBPjz8bkMRIRf1od4h+QZLw+m575lu41DMQIprcHXRZbyZRXZG+tgqM3YNBiNZCI2bDV3x46Q==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-9W1AxMfrZV3ZeYBPjz8bkMRIRf1od4h+QZLw+m575lu41DMQIprcHXRZbyZRXZG+tgqM3YNBiNZCI2bDV3x46Q==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql2@0.49.0': - resolution: {integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql@0.43.0': - resolution: {integrity: sha512-Yd4QLENitUAovh5JKbDIvzLVkt+3InnQYiWqcD4X7VjUGdVlZuCgMNkyUl6ML3WonH60jDy7S2rmLZAlWm7qTg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Yd4QLENitUAovh5JKbDIvzLVkt+3InnQYiWqcD4X7VjUGdVlZuCgMNkyUl6ML3WonH60jDy7S2rmLZAlWm7qTg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql@0.49.0': - resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-nestjs-core@0.42.0': - resolution: {integrity: sha512-+JRi91A2Ue8JOY7WJ3oSq4HFB6+qIQQ62uu77fKLqV0xn0ft8YX/hDJceUJEKgqPlJMbHH5ppZlCrSPc/d3t0w==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+JRi91A2Ue8JOY7WJ3oSq4HFB6+qIQQ62uu77fKLqV0xn0ft8YX/hDJceUJEKgqPlJMbHH5ppZlCrSPc/d3t0w==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-net@0.41.0': - resolution: {integrity: sha512-3IqTpOaNxnCaCzCcFFPwGmX+b626Gx/uSHe61kP1kVDzhIKpwhgrzwWstdI2ZEzMa1jpNzharque/y9wEpsg8A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-3IqTpOaNxnCaCzCcFFPwGmX+b626Gx/uSHe61kP1kVDzhIKpwhgrzwWstdI2ZEzMa1jpNzharque/y9wEpsg8A==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-pg@0.48.0': - resolution: {integrity: sha512-z0eG0A6SUXM/zSBisFVYrcp6aYbO8z1+R7cM7hxURBm8ccS98kVvZ+9UpLFd61YpSeof4bGhFsA8wqgNgqh4Vg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-z0eG0A6SUXM/zSBisFVYrcp6aYbO8z1+R7cM7hxURBm8ccS98kVvZ+9UpLFd61YpSeof4bGhFsA8wqgNgqh4Vg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-pg@0.55.0': - resolution: {integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-pino@0.44.0': - resolution: {integrity: sha512-nyu6A1Zq3z/GUsfIJLsEMmUZrdqdVeQSESx8i7PzvUiVYyEdvf8w1sg4oPCBrSwl0PFU7FR4uYR4d04/QxFCoA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-nyu6A1Zq3z/GUsfIJLsEMmUZrdqdVeQSESx8i7PzvUiVYyEdvf8w1sg4oPCBrSwl0PFU7FR4uYR4d04/QxFCoA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-redis-4@0.44.0': - resolution: {integrity: sha512-mT4iGxqBeD4vUd2Dp5QG2UxaduWENHzsiPEgFvsPwSDARkyCXbTxCyOoXTTR53Vb4L8EklprbRBjukbljCdMTA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-mT4iGxqBeD4vUd2Dp5QG2UxaduWENHzsiPEgFvsPwSDARkyCXbTxCyOoXTTR53Vb4L8EklprbRBjukbljCdMTA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-redis@0.44.0': - resolution: {integrity: sha512-QKBrjwHSejj/31JpxyI6wWEFK6ZqPmY/5ARFvzd7jSuTNtH2lMQ+Gb0j1T5hLJ6j3dDtFceYnC7CGXTSsx1jxg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-QKBrjwHSejj/31JpxyI6wWEFK6ZqPmY/5ARFvzd7jSuTNtH2lMQ+Gb0j1T5hLJ6j3dDtFceYnC7CGXTSsx1jxg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-redis@0.51.0': - resolution: {integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-restify@0.43.0': - resolution: {integrity: sha512-gNO8cAF7lPCCcWOPlx17LLTKKz2+jKkHI4OGhNoM+yUCG2KXBD5cZ8+XzL/EVLRL0GXHgV4Un4eeBnCUjXYTOw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-gNO8cAF7lPCCcWOPlx17LLTKKz2+jKkHI4OGhNoM+yUCG2KXBD5cZ8+XzL/EVLRL0GXHgV4Un4eeBnCUjXYTOw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-router@0.42.0': - resolution: {integrity: sha512-bA0gmEIOZCkCbrnzWU5auSWPlEcU72URka0nQq3H+zoDaToO+Yi1756h9g5jL/9gx6YFzO5+ufRqVh4tNzf2Jw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bA0gmEIOZCkCbrnzWU5auSWPlEcU72URka0nQq3H+zoDaToO+Yi1756h9g5jL/9gx6YFzO5+ufRqVh4tNzf2Jw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-socket.io@0.44.0': - resolution: {integrity: sha512-Gf53pjHae88FrFY6eUHBGylJcFp90zd4HM5JlrIrTRfM28im7IijsCPSgMYez2m8Anr72aWrEoRtOJWfo7tE0Q==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Gf53pjHae88FrFY6eUHBGylJcFp90zd4HM5JlrIrTRfM28im7IijsCPSgMYez2m8Anr72aWrEoRtOJWfo7tE0Q==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-tedious@0.16.0': - resolution: {integrity: sha512-mIzPC0fioXb9KQOm03UgGZDXwSBzYdCIT/6+S4jYHquLeVJvfKe4ivZo7bfNV0yHzfINpOefog76wlZ94tr3OA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-mIzPC0fioXb9KQOm03UgGZDXwSBzYdCIT/6+S4jYHquLeVJvfKe4ivZo7bfNV0yHzfINpOefog76wlZ94tr3OA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-tedious@0.22.0': - resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-undici@0.14.0': - resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.7.0 '@opentelemetry/instrumentation-undici@0.8.0': - resolution: {integrity: sha512-XUab3nrvk2CPjOTlIPJNUv3v0KIpK6flxF67Re6PoxVaxtN4Zh5hfUTowndn7rXMGwz2feO5LpDWjqfMQw8veQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-XUab3nrvk2CPjOTlIPJNUv3v0KIpK6flxF67Re6PoxVaxtN4Zh5hfUTowndn7rXMGwz2feO5LpDWjqfMQw8veQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.7.0 '@opentelemetry/instrumentation-winston@0.42.0': - resolution: {integrity: sha512-kaMbm2oITQpX6q59gOsv5dPuZEXzLNnQYZiICg5P0XdsVCQkbvmWK3xoPhHTgdXUyhgIHc5uUiMknHmHfXqMQQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-kaMbm2oITQpX6q59gOsv5dPuZEXzLNnQYZiICg5P0XdsVCQkbvmWK3xoPhHTgdXUyhgIHc5uUiMknHmHfXqMQQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.203.0': - resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.46.0': - resolution: {integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.55.0': - resolution: {integrity: sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.57.2': - resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/otlp-exporter-base@0.46.0': - resolution: {integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/otlp-exporter-base@0.55.0': - resolution: {integrity: sha512-iHQI0Zzq3h1T6xUJTVFwmFl5Dt5y1es+fl4kM+k5T/3YvmVyeYkSiF+wHCg6oKrlUAJfk+t55kaAu3sYmt7ZYA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-iHQI0Zzq3h1T6xUJTVFwmFl5Dt5y1es+fl4kM+k5T/3YvmVyeYkSiF+wHCg6oKrlUAJfk+t55kaAu3sYmt7ZYA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/otlp-grpc-exporter-base@0.46.0': - resolution: {integrity: sha512-/KB/xfZZiWIY2JknvCoT/e9paIzQO3QCBN5gR6RyxpXM/AGx3YTAOKvB/Ts9Va19jo5aE74gB7emhFaCNy4Rmw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-/KB/xfZZiWIY2JknvCoT/e9paIzQO3QCBN5gR6RyxpXM/AGx3YTAOKvB/Ts9Va19jo5aE74gB7emhFaCNy4Rmw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/otlp-grpc-exporter-base@0.55.0': - resolution: {integrity: sha512-gebbjl9FiSp52igWXuGjcWQKfB6IBwFGt5z1VFwTcVZVeEZevB6bJIqoFrhH4A02m7OUlpJ7l4EfRi3UtkNANQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-gebbjl9FiSp52igWXuGjcWQKfB6IBwFGt5z1VFwTcVZVeEZevB6bJIqoFrhH4A02m7OUlpJ7l4EfRi3UtkNANQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/otlp-proto-exporter-base@0.46.0': - resolution: {integrity: sha512-rEJBA8U2AxfEzrdIUcyyjOweyVFkO6V1XAxwP161JkxpvNuVDdULHAfRVnGtoZhiVA1XsJKcpIIq2MEKAqq4cg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-rEJBA8U2AxfEzrdIUcyyjOweyVFkO6V1XAxwP161JkxpvNuVDdULHAfRVnGtoZhiVA1XsJKcpIIq2MEKAqq4cg==, + } + engines: { node: '>=14' } deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/otlp-transformer@0.46.0': - resolution: {integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' '@opentelemetry/otlp-transformer@0.55.0': - resolution: {integrity: sha512-kVqEfxtp6mSN2Dhpy0REo1ghP4PYhC1kMHQJ2qVlO99Pc+aigELjZDfg7/YKmL71gR6wVGIeJfiql/eXL7sQPA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-kVqEfxtp6mSN2Dhpy0REo1ghP4PYhC1kMHQJ2qVlO99Pc+aigELjZDfg7/YKmL71gR6wVGIeJfiql/eXL7sQPA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/propagation-utils@0.30.16': - resolution: {integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/propagator-b3@1.19.0': - resolution: {integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/propagator-b3@1.28.0': - resolution: {integrity: sha512-Q7HVDIMwhN5RxL4bECMT4BdbyYSAKkC6U/RGn4NpO/cbqP6ZRg+BS7fPo/pGZi2w8AHfpIGQFXQmE8d2PC5xxQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Q7HVDIMwhN5RxL4bECMT4BdbyYSAKkC6U/RGn4NpO/cbqP6ZRg+BS7fPo/pGZi2w8AHfpIGQFXQmE8d2PC5xxQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/propagator-jaeger@1.19.0': - resolution: {integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/propagator-jaeger@1.28.0': - resolution: {integrity: sha512-wKJ94+s8467CnIRgoSRh0yXm/te0QMOwTq9J01PfG/RzYZvlvN8aRisN2oZ9SznB45dDGnMj3BhUlchSA9cEKA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-wKJ94+s8467CnIRgoSRh0yXm/te0QMOwTq9J01PfG/RzYZvlvN8aRisN2oZ9SznB45dDGnMj3BhUlchSA9cEKA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/redis-common@0.36.2': - resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==, + } + engines: { node: '>=14' } '@opentelemetry/redis-common@0.38.0': - resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==, + } + engines: { node: ^18.19.0 || >=20.6.0 } '@opentelemetry/resource-detector-alibaba-cloud@0.29.7': - resolution: {integrity: sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-aws@1.12.0': - resolution: {integrity: sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-azure@0.3.0': - resolution: {integrity: sha512-MFKiCQ+rUxCwJJH0ZLcdtsJ6FK/vLERsBhcu5pKHPSupdauVPaR5iRibApoF9dxZ1wuG5f+BRFO+USGdZXorDg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-MFKiCQ+rUxCwJJH0ZLcdtsJ6FK/vLERsBhcu5pKHPSupdauVPaR5iRibApoF9dxZ1wuG5f+BRFO+USGdZXorDg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-container@0.5.3': - resolution: {integrity: sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-gcp@0.30.0': - resolution: {integrity: sha512-lEbeiPEQtD+JGknF1ZZ6W7hsr1Ul9V27S68tIaPrY6WNdnuTL/7vcZSKHO8eu6NnCNJ7Up9oGFloMb2sfUazig==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-lEbeiPEQtD+JGknF1ZZ6W7hsr1Ul9V27S68tIaPrY6WNdnuTL/7vcZSKHO8eu6NnCNJ7Up9oGFloMb2sfUazig==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resources@1.19.0': - resolution: {integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/resources@1.28.0': - resolution: {integrity: sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/resources@1.30.1': - resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/resources@2.0.1': - resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-logs@0.46.0': - resolution: {integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.8.0' '@opentelemetry/api-logs': '>=0.39.1' '@opentelemetry/sdk-logs@0.55.0': - resolution: {integrity: sha512-TSx+Yg/d48uWW6HtjS1AD5x6WPfLhDWLl/WxC7I2fMevaiBuKCuraxTB8MDXieCNnBI24bw9ytyXrDCswFfWgA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TSx+Yg/d48uWW6HtjS1AD5x6WPfLhDWLl/WxC7I2fMevaiBuKCuraxTB8MDXieCNnBI24bw9ytyXrDCswFfWgA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' '@opentelemetry/sdk-metrics@1.19.0': - resolution: {integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' '@opentelemetry/sdk-metrics@1.28.0': - resolution: {integrity: sha512-43tqMK/0BcKTyOvm15/WQ3HLr0Vu/ucAl/D84NO7iSlv6O4eOprxSHa3sUtmYkaZWHqdDJV0AHVz/R6u4JALVQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-43tqMK/0BcKTyOvm15/WQ3HLr0Vu/ucAl/D84NO7iSlv6O4eOprxSHa3sUtmYkaZWHqdDJV0AHVz/R6u4JALVQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-node@0.46.0': - resolution: {integrity: sha512-BQhzdCRZXchhKjZaFkgxlgoowjOt/QXekJ1CZgfvFO9Yg5GV15LyJFUEyQkDyD8XbshGo3Cnj0WZMBnDWtWY1A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-BQhzdCRZXchhKjZaFkgxlgoowjOt/QXekJ1CZgfvFO9Yg5GV15LyJFUEyQkDyD8XbshGo3Cnj0WZMBnDWtWY1A==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' '@opentelemetry/sdk-node@0.55.0': - resolution: {integrity: sha512-gSXQWV23+9vhbjsvAIeM0LxY3W8DTKI3MZlzFp61noIb1jSr46ET+qoUjHlfZ1Yymebv9KXWeZsqhft81HBXuQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-gSXQWV23+9vhbjsvAIeM0LxY3W8DTKI3MZlzFp61noIb1jSr46ET+qoUjHlfZ1Yymebv9KXWeZsqhft81HBXuQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-base@1.19.0': - resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/sdk-trace-base@1.28.0': - resolution: {integrity: sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/sdk-trace-base@2.0.1': - resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-node@1.19.0': - resolution: {integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/sdk-trace-node@1.28.0': - resolution: {integrity: sha512-N0sYfYXvHpP0FNIyc+UfhLnLSTOuZLytV0qQVrDWIlABeD/DWJIGttS7nYeR14gQLXch0M1DW8zm3VeN6Opwtg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-N0sYfYXvHpP0FNIyc+UfhLnLSTOuZLytV0qQVrDWIlABeD/DWJIGttS7nYeR14gQLXch0M1DW8zm3VeN6Opwtg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/semantic-conventions@1.19.0': - resolution: {integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==, + } + engines: { node: '>=14' } '@opentelemetry/semantic-conventions@1.27.0': - resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==, + } + engines: { node: '>=14' } '@opentelemetry/semantic-conventions@1.28.0': - resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==, + } + engines: { node: '>=14' } '@opentelemetry/semantic-conventions@1.36.0': - resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==, + } + engines: { node: '>=14' } '@opentelemetry/sql-common@0.40.1': - resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==, + } + engines: { node: '>=14' } peerDependencies: '@opentelemetry/api': ^1.1.0 '@opentelemetry/sql-common@0.41.0': - resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==} - engines: {node: ^18.19.0 || >=20.6.0} + resolution: + { + integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==, + } + engines: { node: ^18.19.0 || >=20.6.0 } peerDependencies: '@opentelemetry/api': ^1.1.0 '@oslojs/asn1@1.0.0': - resolution: {integrity: sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==} + resolution: + { + integrity: sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==, + } '@oslojs/binary@1.0.0': - resolution: {integrity: sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==} + resolution: + { + integrity: sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==, + } '@oslojs/crypto@1.0.1': - resolution: {integrity: sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==} + resolution: + { + integrity: sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==, + } '@oslojs/encoding@1.1.0': - resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} + resolution: + { + integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==, + } '@pagefind/darwin-arm64@1.3.0': - resolution: {integrity: sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==} + resolution: + { + integrity: sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==, + } cpu: [arm64] os: [darwin] '@pagefind/darwin-x64@1.3.0': - resolution: {integrity: sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==} + resolution: + { + integrity: sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==, + } cpu: [x64] os: [darwin] '@pagefind/linux-arm64@1.3.0': - resolution: {integrity: sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==} + resolution: + { + integrity: sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==, + } cpu: [arm64] os: [linux] '@pagefind/linux-x64@1.3.0': - resolution: {integrity: sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==} + resolution: + { + integrity: sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==, + } cpu: [x64] os: [linux] '@pagefind/windows-x64@1.3.0': - resolution: {integrity: sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==} + resolution: + { + integrity: sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==, + } cpu: [x64] os: [win32] '@pkgjs/parseargs@0.11.0': - resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, + } + engines: { node: '>=14' } '@playwright/test@1.53.0': - resolution: {integrity: sha512-15hjKreZDcp7t6TL/7jkAo6Df5STZN09jGiv5dbP9A6vMVncXRqE7/B2SncsyOwrkZRBH2i6/TPOL8BVmm3c7w==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-15hjKreZDcp7t6TL/7jkAo6Df5STZN09jGiv5dbP9A6vMVncXRqE7/B2SncsyOwrkZRBH2i6/TPOL8BVmm3c7w==, + } + engines: { node: '>=18' } hasBin: true '@polka/url@1.0.0-next.29': - resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} + resolution: + { + integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==, + } '@preconstruct/cli@2.8.12': - resolution: {integrity: sha512-SMsMICUWROmu/vb4cmrk7EJUiWhgNjB3U3tM654K9bu9yECXqrPN473vliO7KPV3CSLhmtl3S4nfcMirEJmyZg==} + resolution: + { + integrity: sha512-SMsMICUWROmu/vb4cmrk7EJUiWhgNjB3U3tM654K9bu9yECXqrPN473vliO7KPV3CSLhmtl3S4nfcMirEJmyZg==, + } hasBin: true '@preconstruct/hook@0.4.0': - resolution: {integrity: sha512-a7mrlPTM3tAFJyz43qb4pPVpUx8j8TzZBFsNFqcKcE/sEakNXRlQAuCT4RGZRf9dQiiUnBahzSIWawU4rENl+Q==} + resolution: + { + integrity: sha512-a7mrlPTM3tAFJyz43qb4pPVpUx8j8TzZBFsNFqcKcE/sEakNXRlQAuCT4RGZRf9dQiiUnBahzSIWawU4rENl+Q==, + } '@preconstruct/next@4.0.0': - resolution: {integrity: sha512-vSrc8wFQgBErU7dKTKSQtr/DLWPHcN9jMoiWOAQodB1+B4Kpqqry6QhGYoRm0DQU5gNL+Rcp+Xb350O1E/gjsg==} + resolution: + { + integrity: sha512-vSrc8wFQgBErU7dKTKSQtr/DLWPHcN9jMoiWOAQodB1+B4Kpqqry6QhGYoRm0DQU5gNL+Rcp+Xb350O1E/gjsg==, + } '@prisma/client@5.19.1': - resolution: {integrity: sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==} - engines: {node: '>=16.13'} + resolution: + { + integrity: sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==, + } + engines: { node: '>=16.13' } peerDependencies: prisma: '*' peerDependenciesMeta: @@ -4905,96 +6805,186 @@ packages: optional: true '@prisma/debug@5.0.0': - resolution: {integrity: sha512-3q/M/KqlQ01/HJXifU/zCNOHkoTWu24kGelMF/IBrRxm7njPqTTbwfnT1dh4JK+nuWM5/Dg1Lv00u2c0l7AHxg==} + resolution: + { + integrity: sha512-3q/M/KqlQ01/HJXifU/zCNOHkoTWu24kGelMF/IBrRxm7njPqTTbwfnT1dh4JK+nuWM5/Dg1Lv00u2c0l7AHxg==, + } '@prisma/debug@5.22.0': - resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} + resolution: + { + integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==, + } '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} + resolution: + { + integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==, + } '@prisma/engines@5.0.0': - resolution: {integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==} + resolution: + { + integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==, + } '@prisma/engines@5.22.0': - resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} + resolution: + { + integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==, + } '@prisma/fetch-engine@5.0.0': - resolution: {integrity: sha512-eSzHTE0KcMvM5+O1++eaMuVf4D1zwWHdqjWr6D70skCg37q7RYsuty4GFnlWBuqC4aXwVf06EvIxiJ0SQIIeRw==} + resolution: + { + integrity: sha512-eSzHTE0KcMvM5+O1++eaMuVf4D1zwWHdqjWr6D70skCg37q7RYsuty4GFnlWBuqC4aXwVf06EvIxiJ0SQIIeRw==, + } '@prisma/fetch-engine@5.22.0': - resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} + resolution: + { + integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==, + } '@prisma/generator-helper@5.0.0': - resolution: {integrity: sha512-pufQ1mhoH6WzKNtzL79HZDoW4Ql3Lf8QEKVmBoW8e3Tdb50bxpYBYue5LBqp9vNW1xd1pgZO53cNiRfLX2d4Zg==} + resolution: + { + integrity: sha512-pufQ1mhoH6WzKNtzL79HZDoW4Ql3Lf8QEKVmBoW8e3Tdb50bxpYBYue5LBqp9vNW1xd1pgZO53cNiRfLX2d4Zg==, + } '@prisma/generator-helper@5.22.0': - resolution: {integrity: sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==} + resolution: + { + integrity: sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==, + } '@prisma/get-platform@5.0.0': - resolution: {integrity: sha512-JT/rz/jaMTggDkd9OIma50si9rPLzSFe7XSrV3mKXwtv9t+rdwx5ZhmKJd+Rz6S1vhn/291k21JLfaxOW6u8KQ==} + resolution: + { + integrity: sha512-JT/rz/jaMTggDkd9OIma50si9rPLzSFe7XSrV3mKXwtv9t+rdwx5ZhmKJd+Rz6S1vhn/291k21JLfaxOW6u8KQ==, + } '@prisma/get-platform@5.22.0': - resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} + resolution: + { + integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==, + } '@prisma/instrumentation@6.13.0': - resolution: {integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==} + resolution: + { + integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==, + } peerDependencies: '@opentelemetry/api': ^1.8 '@prisma/internals@5.0.0': - resolution: {integrity: sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ==} + resolution: + { + integrity: sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ==, + } '@prisma/internals@5.22.0': - resolution: {integrity: sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==} + resolution: + { + integrity: sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==, + } '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': - resolution: {integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==} + resolution: + { + integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==, + } '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: {integrity: sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==} + resolution: + { + integrity: sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==, + } '@prisma/schema-files-loader@5.22.0': - resolution: {integrity: sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==} + resolution: + { + integrity: sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==, + } '@protobufjs/aspromise@1.1.2': - resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} + resolution: + { + integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, + } '@protobufjs/base64@1.1.2': - resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} + resolution: + { + integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, + } '@protobufjs/codegen@2.0.4': - resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} + resolution: + { + integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, + } '@protobufjs/eventemitter@1.1.0': - resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} + resolution: + { + integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, + } '@protobufjs/fetch@1.1.0': - resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} + resolution: + { + integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, + } '@protobufjs/float@1.0.2': - resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} + resolution: + { + integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, + } '@protobufjs/inquire@1.1.0': - resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} + resolution: + { + integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, + } '@protobufjs/path@1.1.2': - resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} + resolution: + { + integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, + } '@protobufjs/pool@1.1.0': - resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} + resolution: + { + integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, + } '@protobufjs/utf8@1.1.0': - resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} + resolution: + { + integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, + } '@radix-ui/number@1.1.1': - resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} + resolution: + { + integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==, + } '@radix-ui/primitive@1.1.3': - resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} + resolution: + { + integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==, + } '@radix-ui/react-accordion@1.2.12': - resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} + resolution: + { + integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5007,7 +6997,10 @@ packages: optional: true '@radix-ui/react-alert-dialog@1.1.15': - resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} + resolution: + { + integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5020,7 +7013,10 @@ packages: optional: true '@radix-ui/react-arrow@1.1.7': - resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} + resolution: + { + integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5033,7 +7029,10 @@ packages: optional: true '@radix-ui/react-avatar@1.1.10': - resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} + resolution: + { + integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5046,7 +7045,10 @@ packages: optional: true '@radix-ui/react-checkbox@1.3.3': - resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} + resolution: + { + integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5059,7 +7061,10 @@ packages: optional: true '@radix-ui/react-collapsible@1.1.12': - resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} + resolution: + { + integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5072,7 +7077,10 @@ packages: optional: true '@radix-ui/react-collection@1.1.7': - resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} + resolution: + { + integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5085,7 +7093,10 @@ packages: optional: true '@radix-ui/react-compose-refs@1.1.2': - resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} + resolution: + { + integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5094,7 +7105,10 @@ packages: optional: true '@radix-ui/react-context-menu@2.2.16': - resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==} + resolution: + { + integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5107,7 +7121,10 @@ packages: optional: true '@radix-ui/react-context@1.1.2': - resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} + resolution: + { + integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5116,7 +7133,10 @@ packages: optional: true '@radix-ui/react-dialog@1.1.15': - resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} + resolution: + { + integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5129,7 +7149,10 @@ packages: optional: true '@radix-ui/react-direction@1.1.1': - resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} + resolution: + { + integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5138,7 +7161,10 @@ packages: optional: true '@radix-ui/react-dismissable-layer@1.1.11': - resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} + resolution: + { + integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5151,7 +7177,10 @@ packages: optional: true '@radix-ui/react-dropdown-menu@2.1.16': - resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} + resolution: + { + integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5164,7 +7193,10 @@ packages: optional: true '@radix-ui/react-focus-guards@1.1.3': - resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} + resolution: + { + integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5173,7 +7205,10 @@ packages: optional: true '@radix-ui/react-focus-scope@1.1.7': - resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} + resolution: + { + integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5186,7 +7221,10 @@ packages: optional: true '@radix-ui/react-hover-card@1.1.15': - resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==} + resolution: + { + integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5199,12 +7237,18 @@ packages: optional: true '@radix-ui/react-icons@1.3.2': - resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} + resolution: + { + integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==, + } peerDependencies: react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc '@radix-ui/react-id@1.1.1': - resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} + resolution: + { + integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5213,7 +7257,10 @@ packages: optional: true '@radix-ui/react-label@2.1.7': - resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} + resolution: + { + integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5226,7 +7273,10 @@ packages: optional: true '@radix-ui/react-menu@2.1.16': - resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} + resolution: + { + integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5239,7 +7289,10 @@ packages: optional: true '@radix-ui/react-menubar@1.1.16': - resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==} + resolution: + { + integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5252,7 +7305,10 @@ packages: optional: true '@radix-ui/react-navigation-menu@1.2.14': - resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} + resolution: + { + integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5265,7 +7321,10 @@ packages: optional: true '@radix-ui/react-popover@1.1.15': - resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} + resolution: + { + integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5278,7 +7337,10 @@ packages: optional: true '@radix-ui/react-popper@1.2.8': - resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} + resolution: + { + integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5291,7 +7353,10 @@ packages: optional: true '@radix-ui/react-portal@1.1.9': - resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} + resolution: + { + integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5304,7 +7369,10 @@ packages: optional: true '@radix-ui/react-presence@1.1.5': - resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} + resolution: + { + integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5317,7 +7385,10 @@ packages: optional: true '@radix-ui/react-primitive@2.1.3': - resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} + resolution: + { + integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5330,7 +7401,10 @@ packages: optional: true '@radix-ui/react-radio-group@1.3.8': - resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} + resolution: + { + integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5343,7 +7417,10 @@ packages: optional: true '@radix-ui/react-roving-focus@1.1.11': - resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} + resolution: + { + integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5356,7 +7433,10 @@ packages: optional: true '@radix-ui/react-select@2.2.6': - resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} + resolution: + { + integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5369,7 +7449,10 @@ packages: optional: true '@radix-ui/react-separator@1.1.7': - resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} + resolution: + { + integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5382,7 +7465,10 @@ packages: optional: true '@radix-ui/react-slider@1.3.6': - resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} + resolution: + { + integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5395,7 +7481,10 @@ packages: optional: true '@radix-ui/react-slot@1.2.3': - resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} + resolution: + { + integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5404,7 +7493,10 @@ packages: optional: true '@radix-ui/react-switch@1.2.6': - resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} + resolution: + { + integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5417,7 +7509,10 @@ packages: optional: true '@radix-ui/react-tabs@1.1.13': - resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} + resolution: + { + integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5430,7 +7525,10 @@ packages: optional: true '@radix-ui/react-toast@1.2.15': - resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==} + resolution: + { + integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5443,7 +7541,10 @@ packages: optional: true '@radix-ui/react-toggle@1.1.10': - resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} + resolution: + { + integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5456,7 +7557,10 @@ packages: optional: true '@radix-ui/react-tooltip@1.2.8': - resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} + resolution: + { + integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5469,7 +7573,10 @@ packages: optional: true '@radix-ui/react-use-callback-ref@1.1.1': - resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} + resolution: + { + integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5478,7 +7585,10 @@ packages: optional: true '@radix-ui/react-use-controllable-state@1.2.2': - resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} + resolution: + { + integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5487,7 +7597,10 @@ packages: optional: true '@radix-ui/react-use-effect-event@0.0.2': - resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} + resolution: + { + integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5496,7 +7609,10 @@ packages: optional: true '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} + resolution: + { + integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5505,7 +7621,10 @@ packages: optional: true '@radix-ui/react-use-is-hydrated@0.1.0': - resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} + resolution: + { + integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5514,7 +7633,10 @@ packages: optional: true '@radix-ui/react-use-layout-effect@1.1.1': - resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} + resolution: + { + integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5523,7 +7645,10 @@ packages: optional: true '@radix-ui/react-use-previous@1.1.1': - resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} + resolution: + { + integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5532,7 +7657,10 @@ packages: optional: true '@radix-ui/react-use-rect@1.1.1': - resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} + resolution: + { + integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5541,7 +7669,10 @@ packages: optional: true '@radix-ui/react-use-size@1.1.1': - resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} + resolution: + { + integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==, + } peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -5550,7 +7681,10 @@ packages: optional: true '@radix-ui/react-visually-hidden@1.2.3': - resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} + resolution: + { + integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==, + } peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -5563,269 +7697,416 @@ packages: optional: true '@radix-ui/rect@1.1.1': - resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} + resolution: + { + integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==, + } '@react-aria/focus@3.21.0': - resolution: {integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==} + resolution: + { + integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==, + } peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/interactions@3.25.4': - resolution: {integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==} + resolution: + { + integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==, + } peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/ssr@3.9.10': - resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==, + } + engines: { node: '>= 12' } peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/utils@3.30.0': - resolution: {integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==} + resolution: + { + integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==, + } peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-email/body@0.0.11': - resolution: {integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==} + resolution: + { + integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==, + } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/button@0.0.19': - resolution: {integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/code-block@0.0.11': - resolution: {integrity: sha512-4D43p+LIMjDzm66gTDrZch0Flkip5je91mAT7iGs6+SbPyalHgIA+lFQoQwhz/VzHHLxuD0LV6gwmU/WUQ2WEg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-4D43p+LIMjDzm66gTDrZch0Flkip5je91mAT7iGs6+SbPyalHgIA+lFQoQwhz/VzHHLxuD0LV6gwmU/WUQ2WEg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/code-inline@0.0.5': - resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/column@0.0.13': - resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/components@0.0.31': - resolution: {integrity: sha512-rQsTY9ajobncix9raexhBjC7O6cXUMc87eNez2gnB1FwtkUO8DqWZcktbtwOJi7GKmuAPTx0o/IOFtiBNXziKA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-rQsTY9ajobncix9raexhBjC7O6cXUMc87eNez2gnB1FwtkUO8DqWZcktbtwOJi7GKmuAPTx0o/IOFtiBNXziKA==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/container@0.0.15': - resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/font@0.0.9': - resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==} + resolution: + { + integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==, + } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/head@0.0.12': - resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/heading@0.0.15': - resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/hr@0.0.11': - resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/html@0.0.11': - resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/img@0.0.11': - resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/link@0.0.12': - resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/markdown@0.0.14': - resolution: {integrity: sha512-5IsobCyPkb4XwnQO8uFfGcNOxnsg3311GRXhJ3uKv51P7Jxme4ycC/MITnwIZ10w2zx7HIyTiqVzTj4XbuIHbg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-5IsobCyPkb4XwnQO8uFfGcNOxnsg3311GRXhJ3uKv51P7Jxme4ycC/MITnwIZ10w2zx7HIyTiqVzTj4XbuIHbg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/preview@0.0.12': - resolution: {integrity: sha512-g/H5fa9PQPDK6WUEG7iTlC19sAktI23qyoiJtMLqQiXFCfWeQMhqjLGKeLSKkfzszqmfJCjZtpSiKtBoOdxp3Q==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-g/H5fa9PQPDK6WUEG7iTlC19sAktI23qyoiJtMLqQiXFCfWeQMhqjLGKeLSKkfzszqmfJCjZtpSiKtBoOdxp3Q==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/render@1.0.3': - resolution: {integrity: sha512-VQ8g4SuIq/jWdfBTdTjb7B8Np0jj+OoD7VebfdHhLTZzVQKesR2aigpYqE/ZXmwj4juVxDm8T2b6WIIu48rPCg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-VQ8g4SuIq/jWdfBTdTjb7B8Np0jj+OoD7VebfdHhLTZzVQKesR2aigpYqE/ZXmwj4juVxDm8T2b6WIIu48rPCg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/render@1.2.0': - resolution: {integrity: sha512-5fpbV16VYR9Fmk8t7xiwPNAjxjdI8XzVtlx9J9OkhOsIHdr2s5DwAj8/MXzWa9qRYJyLirQ/l7rBSjjgyRAomw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-5fpbV16VYR9Fmk8t7xiwPNAjxjdI8XzVtlx9J9OkhOsIHdr2s5DwAj8/MXzWa9qRYJyLirQ/l7rBSjjgyRAomw==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/row@0.0.12': - resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/section@0.0.16': - resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/tailwind@1.0.4': - resolution: {integrity: sha512-tJdcusncdqgvTUYZIuhNC6LYTfL9vNTSQpwWdTCQhQ1lsrNCEE4OKCSdzSV3S9F32pi0i0xQ+YPJHKIzGjdTSA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-tJdcusncdqgvTUYZIuhNC6LYTfL9vNTSQpwWdTCQhQ1lsrNCEE4OKCSdzSV3S9F32pi0i0xQ+YPJHKIzGjdTSA==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/text@0.0.11': - resolution: {integrity: sha512-a7nl/2KLpRHOYx75YbYZpWspUbX1DFY7JIZbOv5x0QU8SvwDbJt+Hm01vG34PffFyYvHEXrc6Qnip2RTjljNjg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-a7nl/2KLpRHOYx75YbYZpWspUbX1DFY7JIZbOv5x0QU8SvwDbJt+Hm01vG34PffFyYvHEXrc6Qnip2RTjljNjg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-stately/flags@3.1.2': - resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} + resolution: + { + integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==, + } '@react-stately/utils@3.10.8': - resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==} + resolution: + { + integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==, + } peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-types/shared@3.31.0': - resolution: {integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==} + resolution: + { + integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==, + } peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@reactflow/background@11.3.14': - resolution: {integrity: sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==} + resolution: + { + integrity: sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==, + } peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/controls@11.2.14': - resolution: {integrity: sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==} + resolution: + { + integrity: sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==, + } peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/core@11.11.4': - resolution: {integrity: sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==} + resolution: + { + integrity: sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==, + } peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/minimap@11.7.14': - resolution: {integrity: sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==} + resolution: + { + integrity: sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==, + } peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/node-resizer@2.2.14': - resolution: {integrity: sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==} + resolution: + { + integrity: sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==, + } peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/node-toolbar@1.3.14': - resolution: {integrity: sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==} + resolution: + { + integrity: sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==, + } peerDependencies: react: '>=17' react-dom: '>=17' '@redis/bloom@1.2.0': - resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} + resolution: + { + integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==, + } peerDependencies: '@redis/client': ^1.0.0 '@redis/client@1.6.0': - resolution: {integrity: sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==, + } + engines: { node: '>=14' } '@redis/graph@1.1.1': - resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} + resolution: + { + integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==, + } peerDependencies: '@redis/client': ^1.0.0 '@redis/json@1.0.7': - resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} + resolution: + { + integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==, + } peerDependencies: '@redis/client': ^1.0.0 '@redis/search@1.2.0': - resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} + resolution: + { + integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==, + } peerDependencies: '@redis/client': ^1.0.0 '@redis/time-series@1.1.0': - resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} + resolution: + { + integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==, + } peerDependencies: '@redis/client': ^1.0.0 '@remirror/core-constants@3.0.0': - resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} + resolution: + { + integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==, + } '@remirror/core-helpers@4.0.0': - resolution: {integrity: sha512-w90bJ+SLim25DWLN0Y6KjBwDhSgyzWwPxazwHQj7s3Px9dF69sG4cq3nA8RP2TCq1CV4bZmtW4+hCV26pHvgeA==} + resolution: + { + integrity: sha512-w90bJ+SLim25DWLN0Y6KjBwDhSgyzWwPxazwHQj7s3Px9dF69sG4cq3nA8RP2TCq1CV4bZmtW4+hCV26pHvgeA==, + } '@remirror/types@2.0.0': - resolution: {integrity: sha512-j7G+hpyJ3SsZts0RpANYrTkQSWyP1+uy3txZPWgDwXGv3R45wtqRfoDzGO45vFcE9aNno/ThGPvClORZjjbrpw==} + resolution: + { + integrity: sha512-j7G+hpyJ3SsZts0RpANYrTkQSWyP1+uy3txZPWgDwXGv3R45wtqRfoDzGO45vFcE9aNno/ThGPvClORZjjbrpw==, + } '@rolldown/pluginutils@1.0.0-beta.27': - resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} + resolution: + { + integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==, + } '@rollup/plugin-alias@3.1.9': - resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==, + } + engines: { node: '>=8.0.0' } peerDependencies: rollup: ^1.20.0||^2.0.0 '@rollup/plugin-commonjs@15.1.0': - resolution: {integrity: sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==, + } + engines: { node: '>= 8.0.0' } peerDependencies: rollup: ^2.22.0 '@rollup/plugin-commonjs@28.0.1': - resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} - engines: {node: '>=16.0.0 || 14 >= 14.17'} + resolution: + { + integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==, + } + engines: { node: '>=16.0.0 || 14 >= 14.17' } peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -5833,30 +8114,45 @@ packages: optional: true '@rollup/plugin-json@4.1.0': - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} + resolution: + { + integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==, + } peerDependencies: rollup: ^1.20.0 || ^2.0.0 '@rollup/plugin-node-resolve@11.2.1': - resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==, + } + engines: { node: '>= 10.0.0' } peerDependencies: rollup: ^1.20.0||^2.0.0 '@rollup/plugin-replace@2.4.2': - resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} + resolution: + { + integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==, + } peerDependencies: rollup: ^1.20.0 || ^2.0.0 '@rollup/pluginutils@3.1.0': - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, + } + engines: { node: '>= 8.0.0' } peerDependencies: rollup: ^1.20.0||^2.0.0 '@rollup/pluginutils@5.2.0': - resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==, + } + engines: { node: '>=14.0.0' } peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -5864,201 +8160,321 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.46.4': - resolution: {integrity: sha512-B2wfzCJ+ps/OBzRjeds7DlJumCU3rXMxJJS1vzURyj7+KBHGONm7c9q1TfdBl4vCuNMkDvARn3PBl2wZzuR5mw==} + resolution: + { + integrity: sha512-B2wfzCJ+ps/OBzRjeds7DlJumCU3rXMxJJS1vzURyj7+KBHGONm7c9q1TfdBl4vCuNMkDvARn3PBl2wZzuR5mw==, + } cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.46.4': - resolution: {integrity: sha512-FGJYXvYdn8Bs6lAlBZYT5n+4x0ciEp4cmttsvKAZc/c8/JiPaQK8u0c/86vKX8lA7OY/+37lIQSe0YoAImvBAA==} + resolution: + { + integrity: sha512-FGJYXvYdn8Bs6lAlBZYT5n+4x0ciEp4cmttsvKAZc/c8/JiPaQK8u0c/86vKX8lA7OY/+37lIQSe0YoAImvBAA==, + } cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.46.4': - resolution: {integrity: sha512-/9qwE/BM7ATw/W/OFEMTm3dmywbJyLQb4f4v5nmOjgYxPIGpw7HaxRi6LnD4Pjn/q7k55FGeHe1/OD02w63apA==} + resolution: + { + integrity: sha512-/9qwE/BM7ATw/W/OFEMTm3dmywbJyLQb4f4v5nmOjgYxPIGpw7HaxRi6LnD4Pjn/q7k55FGeHe1/OD02w63apA==, + } cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.46.4': - resolution: {integrity: sha512-QkWfNbeRuzFnv2d0aPlrzcA3Ebq2mE8kX/5Pl7VdRShbPBjSnom7dbT8E3Jmhxo2RL784hyqGvR5KHavCJQciw==} + resolution: + { + integrity: sha512-QkWfNbeRuzFnv2d0aPlrzcA3Ebq2mE8kX/5Pl7VdRShbPBjSnom7dbT8E3Jmhxo2RL784hyqGvR5KHavCJQciw==, + } cpu: [x64] os: [darwin] '@rollup/rollup-freebsd-arm64@4.46.4': - resolution: {integrity: sha512-+ToyOMYnSfV8D+ckxO6NthPln/PDNp1P6INcNypfZ7muLmEvPKXqduUiD8DlJpMMT8LxHcE5W0dK9kXfJke9Zw==} + resolution: + { + integrity: sha512-+ToyOMYnSfV8D+ckxO6NthPln/PDNp1P6INcNypfZ7muLmEvPKXqduUiD8DlJpMMT8LxHcE5W0dK9kXfJke9Zw==, + } cpu: [arm64] os: [freebsd] '@rollup/rollup-freebsd-x64@4.46.4': - resolution: {integrity: sha512-cGT6ey/W+sje6zywbLiqmkfkO210FgRz7tepWAzzEVgQU8Hn91JJmQWNqs55IuglG8sJdzk7XfNgmGRtcYlo1w==} + resolution: + { + integrity: sha512-cGT6ey/W+sje6zywbLiqmkfkO210FgRz7tepWAzzEVgQU8Hn91JJmQWNqs55IuglG8sJdzk7XfNgmGRtcYlo1w==, + } cpu: [x64] os: [freebsd] '@rollup/rollup-linux-arm-gnueabihf@4.46.4': - resolution: {integrity: sha512-9fhTJyOb275w5RofPSl8lpr4jFowd+H4oQKJ9XTYzD1JWgxdZKE8bA6d4npuiMemkecQOcigX01FNZNCYnQBdA==} + resolution: + { + integrity: sha512-9fhTJyOb275w5RofPSl8lpr4jFowd+H4oQKJ9XTYzD1JWgxdZKE8bA6d4npuiMemkecQOcigX01FNZNCYnQBdA==, + } cpu: [arm] os: [linux] '@rollup/rollup-linux-arm-musleabihf@4.46.4': - resolution: {integrity: sha512-+6kCIM5Zjvz2HwPl/udgVs07tPMIp1VU2Y0c72ezjOvSvEfAIWsUgpcSDvnC7g9NrjYR6X9bZT92mZZ90TfvXw==} + resolution: + { + integrity: sha512-+6kCIM5Zjvz2HwPl/udgVs07tPMIp1VU2Y0c72ezjOvSvEfAIWsUgpcSDvnC7g9NrjYR6X9bZT92mZZ90TfvXw==, + } cpu: [arm] os: [linux] '@rollup/rollup-linux-arm64-gnu@4.46.4': - resolution: {integrity: sha512-SWuXdnsayCZL4lXoo6jn0yyAj7TTjWE4NwDVt9s7cmu6poMhtiras5c8h6Ih6Y0Zk6Z+8t/mLumvpdSPTWub2Q==} + resolution: + { + integrity: sha512-SWuXdnsayCZL4lXoo6jn0yyAj7TTjWE4NwDVt9s7cmu6poMhtiras5c8h6Ih6Y0Zk6Z+8t/mLumvpdSPTWub2Q==, + } cpu: [arm64] os: [linux] '@rollup/rollup-linux-arm64-musl@4.46.4': - resolution: {integrity: sha512-vDknMDqtMhrrroa5kyX6tuC0aRZZlQ+ipDfbXd2YGz5HeV2t8HOl/FDAd2ynhs7Ki5VooWiiZcCtxiZ4IjqZwQ==} + resolution: + { + integrity: sha512-vDknMDqtMhrrroa5kyX6tuC0aRZZlQ+ipDfbXd2YGz5HeV2t8HOl/FDAd2ynhs7Ki5VooWiiZcCtxiZ4IjqZwQ==, + } cpu: [arm64] os: [linux] '@rollup/rollup-linux-loongarch64-gnu@4.46.4': - resolution: {integrity: sha512-mCBkjRZWhvjtl/x+Bd4fQkWZT8canStKDxGrHlBiTnZmJnWygGcvBylzLVCZXka4dco5ymkWhZlLwKCGFF4ivw==} + resolution: + { + integrity: sha512-mCBkjRZWhvjtl/x+Bd4fQkWZT8canStKDxGrHlBiTnZmJnWygGcvBylzLVCZXka4dco5ymkWhZlLwKCGFF4ivw==, + } cpu: [loong64] os: [linux] '@rollup/rollup-linux-ppc64-gnu@4.46.4': - resolution: {integrity: sha512-YMdz2phOTFF+Z66dQfGf0gmeDSi5DJzY5bpZyeg9CPBkV9QDzJ1yFRlmi/j7WWRf3hYIWrOaJj5jsfwgc8GTHQ==} + resolution: + { + integrity: sha512-YMdz2phOTFF+Z66dQfGf0gmeDSi5DJzY5bpZyeg9CPBkV9QDzJ1yFRlmi/j7WWRf3hYIWrOaJj5jsfwgc8GTHQ==, + } cpu: [ppc64] os: [linux] '@rollup/rollup-linux-riscv64-gnu@4.46.4': - resolution: {integrity: sha512-r0WKLSfFAK8ucG024v2yiLSJMedoWvk8yWqfNICX28NHDGeu3F/wBf8KG6mclghx4FsLePxJr/9N8rIj1PtCnw==} + resolution: + { + integrity: sha512-r0WKLSfFAK8ucG024v2yiLSJMedoWvk8yWqfNICX28NHDGeu3F/wBf8KG6mclghx4FsLePxJr/9N8rIj1PtCnw==, + } cpu: [riscv64] os: [linux] '@rollup/rollup-linux-riscv64-musl@4.46.4': - resolution: {integrity: sha512-IaizpPP2UQU3MNyPH1u0Xxbm73D+4OupL0bjo4Hm0496e2wg3zuvoAIhubkD1NGy9fXILEExPQy87mweujEatA==} + resolution: + { + integrity: sha512-IaizpPP2UQU3MNyPH1u0Xxbm73D+4OupL0bjo4Hm0496e2wg3zuvoAIhubkD1NGy9fXILEExPQy87mweujEatA==, + } cpu: [riscv64] os: [linux] '@rollup/rollup-linux-s390x-gnu@4.46.4': - resolution: {integrity: sha512-aCM29orANR0a8wk896p6UEgIfupReupnmISz6SUwMIwTGaTI8MuKdE0OD2LvEg8ondDyZdMvnaN3bW4nFbATPA==} + resolution: + { + integrity: sha512-aCM29orANR0a8wk896p6UEgIfupReupnmISz6SUwMIwTGaTI8MuKdE0OD2LvEg8ondDyZdMvnaN3bW4nFbATPA==, + } cpu: [s390x] os: [linux] '@rollup/rollup-linux-x64-gnu@4.46.4': - resolution: {integrity: sha512-0Xj1vZE3cbr/wda8d/m+UeuSL+TDpuozzdD4QaSzu/xSOMK0Su5RhIkF7KVHFQsobemUNHPLEcYllL7ZTCP/Cg==} + resolution: + { + integrity: sha512-0Xj1vZE3cbr/wda8d/m+UeuSL+TDpuozzdD4QaSzu/xSOMK0Su5RhIkF7KVHFQsobemUNHPLEcYllL7ZTCP/Cg==, + } cpu: [x64] os: [linux] '@rollup/rollup-linux-x64-musl@4.46.4': - resolution: {integrity: sha512-kM/orjpolfA5yxsx84kI6bnK47AAZuWxglGKcNmokw2yy9i5eHY5UAjcX45jemTJnfHAWo3/hOoRqEeeTdL5hw==} + resolution: + { + integrity: sha512-kM/orjpolfA5yxsx84kI6bnK47AAZuWxglGKcNmokw2yy9i5eHY5UAjcX45jemTJnfHAWo3/hOoRqEeeTdL5hw==, + } cpu: [x64] os: [linux] '@rollup/rollup-win32-arm64-msvc@4.46.4': - resolution: {integrity: sha512-cNLH4psMEsWKILW0isbpQA2OvjXLbKvnkcJFmqAptPQbtLrobiapBJVj6RoIvg6UXVp5w0wnIfd/Q56cNpF+Ew==} + resolution: + { + integrity: sha512-cNLH4psMEsWKILW0isbpQA2OvjXLbKvnkcJFmqAptPQbtLrobiapBJVj6RoIvg6UXVp5w0wnIfd/Q56cNpF+Ew==, + } cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.46.4': - resolution: {integrity: sha512-OiEa5lRhiANpv4SfwYVgQ3opYWi/QmPDC5ve21m8G9pf6ZO+aX1g2EEF1/IFaM1xPSP7mK0msTRXlPs6mIagkg==} + resolution: + { + integrity: sha512-OiEa5lRhiANpv4SfwYVgQ3opYWi/QmPDC5ve21m8G9pf6ZO+aX1g2EEF1/IFaM1xPSP7mK0msTRXlPs6mIagkg==, + } cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-msvc@4.46.4': - resolution: {integrity: sha512-IKL9mewGZ5UuuX4NQlwOmxPyqielvkAPUS2s1cl6yWjjQvyN3h5JTdVFGD5Jr5xMjRC8setOfGQDVgX8V+dkjg==} + resolution: + { + integrity: sha512-IKL9mewGZ5UuuX4NQlwOmxPyqielvkAPUS2s1cl6yWjjQvyN3h5JTdVFGD5Jr5xMjRC8setOfGQDVgX8V+dkjg==, + } cpu: [x64] os: [win32] '@selderee/plugin-htmlparser2@0.11.0': - resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} + resolution: + { + integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==, + } '@sentry-internal/browser-utils@10.5.0': - resolution: {integrity: sha512-4KIJdEj/8Ip9yqJleVSFe68r/U5bn5o/lYUwnFNEnDNxmpUbOlr7x3DXYuRFi1sfoMUxK9K1DrjnBkR7YYF00g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-4KIJdEj/8Ip9yqJleVSFe68r/U5bn5o/lYUwnFNEnDNxmpUbOlr7x3DXYuRFi1sfoMUxK9K1DrjnBkR7YYF00g==, + } + engines: { node: '>=18' } '@sentry-internal/feedback@10.5.0': - resolution: {integrity: sha512-x79P4VZwUxb1EGZb9OQ5EEgrDWFCUlrbzHBwV/oocQA5Ss1SFz5u6cP5Ak7yJtILiJtdGzAyAoQOy4GKD13D4Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-x79P4VZwUxb1EGZb9OQ5EEgrDWFCUlrbzHBwV/oocQA5Ss1SFz5u6cP5Ak7yJtILiJtdGzAyAoQOy4GKD13D4Q==, + } + engines: { node: '>=18' } '@sentry-internal/replay-canvas@10.5.0': - resolution: {integrity: sha512-5nrRKd5swefd9+sFXFZ/NeL3bz/VxBls3ubAQ3afak15FikkSyHq3oKRKpMOtDsiYKXE3Bc0y3rF5A+y3OXjIA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-5nrRKd5swefd9+sFXFZ/NeL3bz/VxBls3ubAQ3afak15FikkSyHq3oKRKpMOtDsiYKXE3Bc0y3rF5A+y3OXjIA==, + } + engines: { node: '>=18' } '@sentry-internal/replay@10.5.0': - resolution: {integrity: sha512-Dp4coE/nPzhFrYH3iVrpVKmhNJ1m/jGXMEDBCNg3wJZRszI41Hrj0jCAM0Y2S3Q4IxYOmFYaFbGtVpAznRyOHg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Dp4coE/nPzhFrYH3iVrpVKmhNJ1m/jGXMEDBCNg3wJZRszI41Hrj0jCAM0Y2S3Q4IxYOmFYaFbGtVpAznRyOHg==, + } + engines: { node: '>=18' } '@sentry/babel-plugin-component-annotate@4.1.1': - resolution: {integrity: sha512-HUpqrCK7zDVojTV6KL6BO9ZZiYrEYQqvYQrscyMsq04z+WCupXaH6YEliiNRvreR8DBJgdsG3lBRpebhUGmvfA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-HUpqrCK7zDVojTV6KL6BO9ZZiYrEYQqvYQrscyMsq04z+WCupXaH6YEliiNRvreR8DBJgdsG3lBRpebhUGmvfA==, + } + engines: { node: '>= 14' } '@sentry/browser@10.5.0': - resolution: {integrity: sha512-o5pEJeZ/iZ7Fmaz2sIirThfnmSVNiP5ZYhacvcDi0qc288TmBbikCX3fXxq3xiSkhXfe1o5QIbNyovzfutyuVw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-o5pEJeZ/iZ7Fmaz2sIirThfnmSVNiP5ZYhacvcDi0qc288TmBbikCX3fXxq3xiSkhXfe1o5QIbNyovzfutyuVw==, + } + engines: { node: '>=18' } '@sentry/bundler-plugin-core@4.1.1': - resolution: {integrity: sha512-Hx9RgXaD1HEYmL5aYoWwCKkVvPp4iklwfD9mvmdpQtcwLg6b6oLnPVDQaOry1ak6Pxt8smlrWcKy4IiKASlvig==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-Hx9RgXaD1HEYmL5aYoWwCKkVvPp4iklwfD9mvmdpQtcwLg6b6oLnPVDQaOry1ak6Pxt8smlrWcKy4IiKASlvig==, + } + engines: { node: '>= 14' } '@sentry/cli-darwin@2.52.0': - resolution: {integrity: sha512-ieQs/p4yTHT27nBzy0wtAb8BSISfWlpXdgsACcwXimYa36NJRwyCqgOXUaH/BYiTdwWSHpuANbUHGJW6zljzxw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ieQs/p4yTHT27nBzy0wtAb8BSISfWlpXdgsACcwXimYa36NJRwyCqgOXUaH/BYiTdwWSHpuANbUHGJW6zljzxw==, + } + engines: { node: '>=10' } os: [darwin] '@sentry/cli-linux-arm64@2.52.0': - resolution: {integrity: sha512-RxT5uzxjCkcvplmx0bavJIEYerRex2Rg/2RAVBdVvWLKFOcmeerTn/VVxPZVuDIVMVyjlZsteWPYwfUm+Ia3wQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-RxT5uzxjCkcvplmx0bavJIEYerRex2Rg/2RAVBdVvWLKFOcmeerTn/VVxPZVuDIVMVyjlZsteWPYwfUm+Ia3wQ==, + } + engines: { node: '>=10' } cpu: [arm64] os: [linux, freebsd, android] '@sentry/cli-linux-arm@2.52.0': - resolution: {integrity: sha512-tWMLU+hj+iip5Akx+S76biAOE1eMMWTDq8c0MqMv/ahHgb6/HiVngMcUsp59Oz3EczJGbTkcnS3vRTDodEcMDw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-tWMLU+hj+iip5Akx+S76biAOE1eMMWTDq8c0MqMv/ahHgb6/HiVngMcUsp59Oz3EczJGbTkcnS3vRTDodEcMDw==, + } + engines: { node: '>=10' } cpu: [arm] os: [linux, freebsd, android] '@sentry/cli-linux-i686@2.52.0': - resolution: {integrity: sha512-sKcJmIg7QWFtlNU5Bs5OZprwdIzzyYMRpFkWioPZ4TE82yvP1+2SAX31VPUlTx+7NLU6YVEWNwvSxh8LWb7iOw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-sKcJmIg7QWFtlNU5Bs5OZprwdIzzyYMRpFkWioPZ4TE82yvP1+2SAX31VPUlTx+7NLU6YVEWNwvSxh8LWb7iOw==, + } + engines: { node: '>=10' } cpu: [x86, ia32] os: [linux, freebsd, android] '@sentry/cli-linux-x64@2.52.0': - resolution: {integrity: sha512-aPZ7bP02zGkuEqTiOAm4np/ggfgtzrq4ti1Xze96Csi/DV3820SCfLrPlsvcvnqq7x69IL9cI3kXjdEpgrfGxw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-aPZ7bP02zGkuEqTiOAm4np/ggfgtzrq4ti1Xze96Csi/DV3820SCfLrPlsvcvnqq7x69IL9cI3kXjdEpgrfGxw==, + } + engines: { node: '>=10' } cpu: [x64] os: [linux, freebsd, android] '@sentry/cli-win32-arm64@2.52.0': - resolution: {integrity: sha512-90hrB5XdwJVhRpCmVrEcYoKW8nl5/V9OfVvOGeKUPvUkApLzvsInK74FYBZEVyAn1i/NdUv+Xk9q2zqUGK1aLQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-90hrB5XdwJVhRpCmVrEcYoKW8nl5/V9OfVvOGeKUPvUkApLzvsInK74FYBZEVyAn1i/NdUv+Xk9q2zqUGK1aLQ==, + } + engines: { node: '>=10' } cpu: [arm64] os: [win32] '@sentry/cli-win32-i686@2.52.0': - resolution: {integrity: sha512-HXlSE4CaLylNrELx4KVmOQjV5bURCNuky6sjCWiTH7HyDqHEak2Rk8iLE0JNLj5RETWMvmaZnZZFfmyGlY1opg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-HXlSE4CaLylNrELx4KVmOQjV5bURCNuky6sjCWiTH7HyDqHEak2Rk8iLE0JNLj5RETWMvmaZnZZFfmyGlY1opg==, + } + engines: { node: '>=10' } cpu: [x86, ia32] os: [win32] '@sentry/cli-win32-x64@2.52.0': - resolution: {integrity: sha512-hJT0C3FwHk1Mt9oFqcci88wbO1D+yAWUL8J29HEGM5ZAqlhdh7sAtPDIC3P2LceUJOjnXihow47Bkj62juatIQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hJT0C3FwHk1Mt9oFqcci88wbO1D+yAWUL8J29HEGM5ZAqlhdh7sAtPDIC3P2LceUJOjnXihow47Bkj62juatIQ==, + } + engines: { node: '>=10' } cpu: [x64] os: [win32] '@sentry/cli@2.52.0': - resolution: {integrity: sha512-PXyo7Yv7+rVMSBGZfI/eFEzzhiKedTs25sDCjz4a3goAZ/F5R5tn3MKq30pnze5wNnoQmLujAa0uUjfNcWP+uQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-PXyo7Yv7+rVMSBGZfI/eFEzzhiKedTs25sDCjz4a3goAZ/F5R5tn3MKq30pnze5wNnoQmLujAa0uUjfNcWP+uQ==, + } + engines: { node: '>= 10' } hasBin: true '@sentry/core@10.5.0': - resolution: {integrity: sha512-jTJ8NhZSKB2yj3QTVRXfCCngQzAOLThQUxCl9A7Mv+XF10tP7xbH/88MVQ5WiOr2IzcmrB9r2nmUe36BnMlLjA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-jTJ8NhZSKB2yj3QTVRXfCCngQzAOLThQUxCl9A7Mv+XF10tP7xbH/88MVQ5WiOr2IzcmrB9r2nmUe36BnMlLjA==, + } + engines: { node: '>=18' } '@sentry/nextjs@10.5.0': - resolution: {integrity: sha512-CWozbPqbAX8qUx4DdVLgjEkjcG+JJ5vHyGczo8yiWVQQZAv/Ivd+TVxqAVMJiL68y+C4VQYfejGp64zsIYS3yw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-CWozbPqbAX8qUx4DdVLgjEkjcG+JJ5vHyGczo8yiWVQQZAv/Ivd+TVxqAVMJiL68y+C4VQYfejGp64zsIYS3yw==, + } + engines: { node: '>=18' } peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 '@sentry/node-core@10.5.0': - resolution: {integrity: sha512-VC4FCKMvvbUT32apTE0exfI/WigqKskzQA+VdFz61Y+T7mTCADngNrOjG3ilVYPBU7R9KEEziEd/oKgencqkmQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-VC4FCKMvvbUT32apTE0exfI/WigqKskzQA+VdFz61Y+T7mTCADngNrOjG3ilVYPBU7R9KEEziEd/oKgencqkmQ==, + } + engines: { node: '>=18' } peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 @@ -6069,12 +8485,18 @@ packages: '@opentelemetry/semantic-conventions': ^1.34.0 '@sentry/node@10.5.0': - resolution: {integrity: sha512-GqTkOc7tkWqRTKNjipysElh/bzIkhfLsvNGwH6+zel5kU15IdOCFtAqIri85ZLo9vbaIVtjQELXOzfo/5MMAFQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-GqTkOc7tkWqRTKNjipysElh/bzIkhfLsvNGwH6+zel5kU15IdOCFtAqIri85ZLo9vbaIVtjQELXOzfo/5MMAFQ==, + } + engines: { node: '>=18' } '@sentry/opentelemetry@10.5.0': - resolution: {integrity: sha512-/Qva5vngtuh79YUUBA8kbbrD6w/A+u1vy1jnLoPMKDxWTfNPqT4tCiOOmWYotnITaE3QO0UtXK/j7LMX8FhtUA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-/Qva5vngtuh79YUUBA8kbbrD6w/A+u1vy1jnLoPMKDxWTfNPqT4tCiOOmWYotnITaE3QO0UtXK/j7LMX8FhtUA==, + } + engines: { node: '>=18' } peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 @@ -6083,272 +8505,476 @@ packages: '@opentelemetry/semantic-conventions': ^1.34.0 '@sentry/react@10.5.0': - resolution: {integrity: sha512-UHanvg+oIAvE/Hm76QCCdxYgb+tIuF0JszQoROApl5C5RxRfJJcU643pASQs6BDvrtxbuMQ/AHTacLTYpsn0cg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-UHanvg+oIAvE/Hm76QCCdxYgb+tIuF0JszQoROApl5C5RxRfJJcU643pASQs6BDvrtxbuMQ/AHTacLTYpsn0cg==, + } + engines: { node: '>=18' } peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x '@sentry/vercel-edge@10.5.0': - resolution: {integrity: sha512-DoH+BrKyI9uVUHyEh6raSba2OUgQ0CLtFeitG0geU90VPgAlINNnjhNeKJPLp0rR3v1KesdHebnRNGUUlvXalA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-DoH+BrKyI9uVUHyEh6raSba2OUgQ0CLtFeitG0geU90VPgAlINNnjhNeKJPLp0rR3v1KesdHebnRNGUUlvXalA==, + } + engines: { node: '>=18' } '@sentry/webpack-plugin@4.1.1': - resolution: {integrity: sha512-2gFWcQMW1HdJDo/7rADeFs9crkH02l+mW4O1ORbxSjuegauyp1W8SBe7EfPoXbUmLdA3zwnpIxEXjjQpP5Etzg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-2gFWcQMW1HdJDo/7rADeFs9crkH02l+mW4O1ORbxSjuegauyp1W8SBe7EfPoXbUmLdA3zwnpIxEXjjQpP5Etzg==, + } + engines: { node: '>= 14' } peerDependencies: webpack: '>=4.40.0' '@shikijs/core@3.11.0': - resolution: {integrity: sha512-oJwU+DxGqp6lUZpvtQgVOXNZcVsirN76tihOLBmwILkKuRuwHteApP8oTXmL4tF5vS5FbOY0+8seXmiCoslk4g==} + resolution: + { + integrity: sha512-oJwU+DxGqp6lUZpvtQgVOXNZcVsirN76tihOLBmwILkKuRuwHteApP8oTXmL4tF5vS5FbOY0+8seXmiCoslk4g==, + } '@shikijs/engine-javascript@3.11.0': - resolution: {integrity: sha512-6/ov6pxrSvew13k9ztIOnSBOytXeKs5kfIR7vbhdtVRg+KPzvp2HctYGeWkqv7V6YIoLicnig/QF3iajqyElZA==} + resolution: + { + integrity: sha512-6/ov6pxrSvew13k9ztIOnSBOytXeKs5kfIR7vbhdtVRg+KPzvp2HctYGeWkqv7V6YIoLicnig/QF3iajqyElZA==, + } '@shikijs/engine-oniguruma@3.11.0': - resolution: {integrity: sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==} + resolution: + { + integrity: sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==, + } '@shikijs/langs@3.11.0': - resolution: {integrity: sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==} + resolution: + { + integrity: sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==, + } '@shikijs/themes@3.11.0': - resolution: {integrity: sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==} + resolution: + { + integrity: sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==, + } '@shikijs/twoslash@3.11.0': - resolution: {integrity: sha512-/mYrydaKDr5vwlgFbcaGOvYHds3oceIpru4eVWVvScOC6XbWx9lbYCVhyGtlgHlF1m5rZkAR6sdNAPKeDGKOAw==} + resolution: + { + integrity: sha512-/mYrydaKDr5vwlgFbcaGOvYHds3oceIpru4eVWVvScOC6XbWx9lbYCVhyGtlgHlF1m5rZkAR6sdNAPKeDGKOAw==, + } peerDependencies: typescript: '>=5.5.0' '@shikijs/types@3.11.0': - resolution: {integrity: sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==} + resolution: + { + integrity: sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==, + } '@shikijs/vscode-textmate@10.0.2': - resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} + resolution: + { + integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==, + } '@sinclair/typebox@0.34.30': - resolution: {integrity: sha512-gFB3BiqjDxEoadW0zn+xyMVb7cLxPCoblVn2C/BKpI41WPYi2d6fwHAlynPNZ5O/Q4WEiujdnJzVtvG/Jc2CBQ==} + resolution: + { + integrity: sha512-gFB3BiqjDxEoadW0zn+xyMVb7cLxPCoblVn2C/BKpI41WPYi2d6fwHAlynPNZ5O/Q4WEiujdnJzVtvG/Jc2CBQ==, + } '@smithy/abort-controller@4.0.5': - resolution: {integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==, + } + engines: { node: '>=18.0.0' } '@smithy/chunked-blob-reader-native@4.0.0': - resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==, + } + engines: { node: '>=18.0.0' } '@smithy/chunked-blob-reader@5.0.0': - resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==, + } + engines: { node: '>=18.0.0' } '@smithy/config-resolver@4.1.5': - resolution: {integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==, + } + engines: { node: '>=18.0.0' } '@smithy/core@3.8.0': - resolution: {integrity: sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==, + } + engines: { node: '>=18.0.0' } '@smithy/credential-provider-imds@4.0.7': - resolution: {integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==, + } + engines: { node: '>=18.0.0' } '@smithy/eventstream-codec@4.0.5': - resolution: {integrity: sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==, + } + engines: { node: '>=18.0.0' } '@smithy/eventstream-serde-browser@4.0.5': - resolution: {integrity: sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==, + } + engines: { node: '>=18.0.0' } '@smithy/eventstream-serde-config-resolver@4.1.3': - resolution: {integrity: sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==, + } + engines: { node: '>=18.0.0' } '@smithy/eventstream-serde-node@4.0.5': - resolution: {integrity: sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==, + } + engines: { node: '>=18.0.0' } '@smithy/eventstream-serde-universal@4.0.5': - resolution: {integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==, + } + engines: { node: '>=18.0.0' } '@smithy/fetch-http-handler@5.1.1': - resolution: {integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==, + } + engines: { node: '>=18.0.0' } '@smithy/hash-blob-browser@4.0.5': - resolution: {integrity: sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==, + } + engines: { node: '>=18.0.0' } '@smithy/hash-node@4.0.5': - resolution: {integrity: sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==, + } + engines: { node: '>=18.0.0' } '@smithy/hash-stream-node@4.0.5': - resolution: {integrity: sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==, + } + engines: { node: '>=18.0.0' } '@smithy/invalid-dependency@4.0.5': - resolution: {integrity: sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==, + } + engines: { node: '>=18.0.0' } '@smithy/is-array-buffer@2.2.0': - resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==, + } + engines: { node: '>=14.0.0' } '@smithy/is-array-buffer@4.0.0': - resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==, + } + engines: { node: '>=18.0.0' } '@smithy/md5-js@4.0.5': - resolution: {integrity: sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==, + } + engines: { node: '>=18.0.0' } '@smithy/middleware-content-length@4.0.5': - resolution: {integrity: sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==, + } + engines: { node: '>=18.0.0' } '@smithy/middleware-endpoint@4.1.18': - resolution: {integrity: sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==, + } + engines: { node: '>=18.0.0' } '@smithy/middleware-retry@4.1.19': - resolution: {integrity: sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==, + } + engines: { node: '>=18.0.0' } '@smithy/middleware-serde@4.0.9': - resolution: {integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==, + } + engines: { node: '>=18.0.0' } '@smithy/middleware-stack@4.0.5': - resolution: {integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==, + } + engines: { node: '>=18.0.0' } '@smithy/node-config-provider@4.1.4': - resolution: {integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==, + } + engines: { node: '>=18.0.0' } '@smithy/node-http-handler@4.1.1': - resolution: {integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==, + } + engines: { node: '>=18.0.0' } '@smithy/property-provider@4.0.5': - resolution: {integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==, + } + engines: { node: '>=18.0.0' } '@smithy/protocol-http@5.1.3': - resolution: {integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==, + } + engines: { node: '>=18.0.0' } '@smithy/querystring-builder@4.0.5': - resolution: {integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==, + } + engines: { node: '>=18.0.0' } '@smithy/querystring-parser@4.0.5': - resolution: {integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==, + } + engines: { node: '>=18.0.0' } '@smithy/service-error-classification@4.0.7': - resolution: {integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==, + } + engines: { node: '>=18.0.0' } '@smithy/shared-ini-file-loader@4.0.5': - resolution: {integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==, + } + engines: { node: '>=18.0.0' } '@smithy/signature-v4@5.1.3': - resolution: {integrity: sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==, + } + engines: { node: '>=18.0.0' } '@smithy/smithy-client@4.4.10': - resolution: {integrity: sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==, + } + engines: { node: '>=18.0.0' } '@smithy/types@4.3.2': - resolution: {integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==, + } + engines: { node: '>=18.0.0' } '@smithy/url-parser@4.0.5': - resolution: {integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==, + } + engines: { node: '>=18.0.0' } '@smithy/util-base64@4.0.0': - resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==, + } + engines: { node: '>=18.0.0' } '@smithy/util-body-length-browser@4.0.0': - resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==, + } + engines: { node: '>=18.0.0' } '@smithy/util-body-length-node@4.0.0': - resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==, + } + engines: { node: '>=18.0.0' } '@smithy/util-buffer-from@2.2.0': - resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==, + } + engines: { node: '>=14.0.0' } '@smithy/util-buffer-from@4.0.0': - resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==, + } + engines: { node: '>=18.0.0' } '@smithy/util-config-provider@4.0.0': - resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==, + } + engines: { node: '>=18.0.0' } '@smithy/util-defaults-mode-browser@4.0.26': - resolution: {integrity: sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==, + } + engines: { node: '>=18.0.0' } '@smithy/util-defaults-mode-node@4.0.26': - resolution: {integrity: sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==, + } + engines: { node: '>=18.0.0' } '@smithy/util-endpoints@3.0.7': - resolution: {integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==, + } + engines: { node: '>=18.0.0' } '@smithy/util-hex-encoding@4.0.0': - resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==, + } + engines: { node: '>=18.0.0' } '@smithy/util-middleware@4.0.5': - resolution: {integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==, + } + engines: { node: '>=18.0.0' } '@smithy/util-retry@4.0.7': - resolution: {integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==, + } + engines: { node: '>=18.0.0' } '@smithy/util-stream@4.2.4': - resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==, + } + engines: { node: '>=18.0.0' } '@smithy/util-uri-escape@4.0.0': - resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==, + } + engines: { node: '>=18.0.0' } '@smithy/util-utf8@2.3.0': - resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==, + } + engines: { node: '>=14.0.0' } '@smithy/util-utf8@4.0.0': - resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==, + } + engines: { node: '>=18.0.0' } '@smithy/util-waiter@4.0.7': - resolution: {integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==, + } + engines: { node: '>=18.0.0' } '@socket.io/component-emitter@3.1.2': - resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} + resolution: + { + integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==, + } '@storybook/addon-docs@9.1.2': - resolution: {integrity: sha512-U3eHJ8lQFfEZ/OcgdKkUBbW2Y2tpAsHfy8lQOBgs5Pgj9biHEJcUmq+drOS/sJhle673eoBcUFmspXulI4KP1w==} + resolution: + { + integrity: sha512-U3eHJ8lQFfEZ/OcgdKkUBbW2Y2tpAsHfy8lQOBgs5Pgj9biHEJcUmq+drOS/sJhle673eoBcUFmspXulI4KP1w==, + } peerDependencies: storybook: ^9.1.2 '@storybook/addon-links@9.1.2': - resolution: {integrity: sha512-drAWdhn5cRo5WcaORoCYfJ6tgTAw1m+ZJb1ICyNtTU6i/0nErV8jJjt7AziUcUIyzaGVJAkAMNC3+R4uDPSFDA==} + resolution: + { + integrity: sha512-drAWdhn5cRo5WcaORoCYfJ6tgTAw1m+ZJb1ICyNtTU6i/0nErV8jJjt7AziUcUIyzaGVJAkAMNC3+R4uDPSFDA==, + } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^9.1.2 @@ -6357,12 +8983,18 @@ packages: optional: true '@storybook/addon-onboarding@9.1.2': - resolution: {integrity: sha512-WfYIBmRtwUF13Hcu6BdsqATsAuBK0dwsz7O4tL0FGrIwY/vdzZ5jNzYvzzgilzlu9QiPvzEIBvs6X4BVulN3LQ==} + resolution: + { + integrity: sha512-WfYIBmRtwUF13Hcu6BdsqATsAuBK0dwsz7O4tL0FGrIwY/vdzZ5jNzYvzzgilzlu9QiPvzEIBvs6X4BVulN3LQ==, + } peerDependencies: storybook: ^9.1.2 '@storybook/addon-vitest@9.0.8': - resolution: {integrity: sha512-LfO98ZbXwMknEnN9ICOj2UodVyr/62Q1o64WQyuktVZVZ4fXQXtPZO7uP9F4TX5HuvNWIiaxGlhBYfEzcErbUA==} + resolution: + { + integrity: sha512-LfO98ZbXwMknEnN9ICOj2UodVyr/62Q1o64WQyuktVZVZ4fXQXtPZO7uP9F4TX5HuvNWIiaxGlhBYfEzcErbUA==, + } peerDependencies: '@vitest/browser': ^3.0.0 '@vitest/runner': ^3.0.0 @@ -6377,29 +9009,44 @@ packages: optional: true '@storybook/builder-vite@9.1.2': - resolution: {integrity: sha512-5Y7e5wnSzFxCGP63UNRRZVoxHe1znU4dYXazJBobAlEcUPBk7A0sH2716tA6bS4oz92oG9tgvn1g996hRrw4ow==} + resolution: + { + integrity: sha512-5Y7e5wnSzFxCGP63UNRRZVoxHe1znU4dYXazJBobAlEcUPBk7A0sH2716tA6bS4oz92oG9tgvn1g996hRrw4ow==, + } peerDependencies: storybook: ^9.1.2 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 '@storybook/csf-plugin@9.1.2': - resolution: {integrity: sha512-bfMh6r+RieBLPWtqqYN70le2uTE4JzOYPMYSCagHykUti3uM/1vRFaZNkZtUsRy5GwEzE5jLdDXioG1lOEeT2Q==} + resolution: + { + integrity: sha512-bfMh6r+RieBLPWtqqYN70le2uTE4JzOYPMYSCagHykUti3uM/1vRFaZNkZtUsRy5GwEzE5jLdDXioG1lOEeT2Q==, + } peerDependencies: storybook: ^9.1.2 '@storybook/global@5.0.0': - resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} + resolution: + { + integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==, + } '@storybook/icons@1.4.0': - resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==, + } + engines: { node: '>=14.0.0' } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta '@storybook/nextjs-vite@9.1.2': - resolution: {integrity: sha512-qmbNLmM4B+Zs6fNxdB4pm7Q8MbDYm4Tc/jmVA3KZPJB6Nmvjgj2td6LJa22ByPnFOq+z0NIM7IXDgkmb5zOTbQ==} - engines: {node: '>=20.0.0'} + resolution: + { + integrity: sha512-qmbNLmM4B+Zs6fNxdB4pm7Q8MbDYm4Tc/jmVA3KZPJB6Nmvjgj2td6LJa22ByPnFOq+z0NIM7IXDgkmb5zOTbQ==, + } + engines: { node: '>=20.0.0' } peerDependencies: next: ^14.1.0 || ^15.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -6412,15 +9059,21 @@ packages: optional: true '@storybook/react-dom-shim@9.1.2': - resolution: {integrity: sha512-nw7BLAHCJswPZGsuL0Gs2AvFUWriusCTgPBmcHppSw/AqvT4XRFRDE+5q3j04/XKuZBrAA2sC4L+HuC0uzEChQ==} + resolution: + { + integrity: sha512-nw7BLAHCJswPZGsuL0Gs2AvFUWriusCTgPBmcHppSw/AqvT4XRFRDE+5q3j04/XKuZBrAA2sC4L+HuC0uzEChQ==, + } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^9.1.2 '@storybook/react-vite@9.1.2': - resolution: {integrity: sha512-dv3CBjOzmMoSyIotMtdmsBRjB25i19OjFP0IZqauLeUoVm6QddILW7JRcZVLrzhATyBEn+sEAdWQ4j79Z11HAg==} - engines: {node: '>=20.0.0'} + resolution: + { + integrity: sha512-dv3CBjOzmMoSyIotMtdmsBRjB25i19OjFP0IZqauLeUoVm6QddILW7JRcZVLrzhATyBEn+sEAdWQ4j79Z11HAg==, + } + engines: { node: '>=20.0.0' } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -6428,8 +9081,11 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 '@storybook/react@9.1.2': - resolution: {integrity: sha512-VVXu1HrhDExj/yj+heFYc8cgIzBruXy1UYT3LW0WiJyadgzYz3J41l/Lf/j2FCppyxwlXb19Uv51plb1F1C77w==} - engines: {node: '>=20.0.0'} + resolution: + { + integrity: sha512-VVXu1HrhDExj/yj+heFYc8cgIzBruXy1UYT3LW0WiJyadgzYz3J41l/Lf/j2FCppyxwlXb19Uv51plb1F1C77w==, + } + engines: { node: '>=20.0.0' } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -6440,68 +9096,101 @@ packages: optional: true '@swc/core-darwin-arm64@1.7.24': - resolution: {integrity: sha512-s0k09qAcsoa8jIncwgRRd43VApYqXu28R4OmICtDffV4S01HtsRLRarXsMuLutoZk3tbxqitep+A8MPBuqNgdg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-s0k09qAcsoa8jIncwgRRd43VApYqXu28R4OmICtDffV4S01HtsRLRarXsMuLutoZk3tbxqitep+A8MPBuqNgdg==, + } + engines: { node: '>=10' } cpu: [arm64] os: [darwin] '@swc/core-darwin-x64@1.7.24': - resolution: {integrity: sha512-1dlsulJ/fiOoJoJyQgaCewIEaZ7Sh6aJN4r5Uhl4lIZuNWa27XOb28A3K29/6HDO9JML3IJrvXPnl5o0vxDQuQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-1dlsulJ/fiOoJoJyQgaCewIEaZ7Sh6aJN4r5Uhl4lIZuNWa27XOb28A3K29/6HDO9JML3IJrvXPnl5o0vxDQuQ==, + } + engines: { node: '>=10' } cpu: [x64] os: [darwin] '@swc/core-linux-arm-gnueabihf@1.7.24': - resolution: {integrity: sha512-2ft1NmxyvHCu5CY4r2rNVybPqZtJaxpRSzvCcPlVjN/2D5Q3QgM5kBoo1t+0RCFfk4TS2V0KWJhtqKz0CNX62Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-2ft1NmxyvHCu5CY4r2rNVybPqZtJaxpRSzvCcPlVjN/2D5Q3QgM5kBoo1t+0RCFfk4TS2V0KWJhtqKz0CNX62Q==, + } + engines: { node: '>=10' } cpu: [arm] os: [linux] '@swc/core-linux-arm64-gnu@1.7.24': - resolution: {integrity: sha512-v/Z8I9tUUNkNHKa1Sw4r1Q7Wp66ezbRhe6xMIxvPNKVJQFaMOsRpe0t8T5qbk5sV2hJGOCKpQynSpZqQXLcJDQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-v/Z8I9tUUNkNHKa1Sw4r1Q7Wp66ezbRhe6xMIxvPNKVJQFaMOsRpe0t8T5qbk5sV2hJGOCKpQynSpZqQXLcJDQ==, + } + engines: { node: '>=10' } cpu: [arm64] os: [linux] '@swc/core-linux-arm64-musl@1.7.24': - resolution: {integrity: sha512-0jJx0IcajcyOXaJsx1jXy86lYVrbupyy2VUj/OiJux/ic4oBJLjfL+WOuc8T8/hZj2p6X0X4jvfSCqWSuic4kA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0jJx0IcajcyOXaJsx1jXy86lYVrbupyy2VUj/OiJux/ic4oBJLjfL+WOuc8T8/hZj2p6X0X4jvfSCqWSuic4kA==, + } + engines: { node: '>=10' } cpu: [arm64] os: [linux] '@swc/core-linux-x64-gnu@1.7.24': - resolution: {integrity: sha512-2+3aKQpSGjVnWKDTKUPuJzitQlTQrGorg+PVFMRkv6l+RcNCHZQNe/8VYpMhyBhxDMb3LUlbp7776FRevcruxg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-2+3aKQpSGjVnWKDTKUPuJzitQlTQrGorg+PVFMRkv6l+RcNCHZQNe/8VYpMhyBhxDMb3LUlbp7776FRevcruxg==, + } + engines: { node: '>=10' } cpu: [x64] os: [linux] '@swc/core-linux-x64-musl@1.7.24': - resolution: {integrity: sha512-PMQ6SkCtMoj0Ks77DiishpEmIuHpYjFLDuVOzzJCzGeGoii0yRP5lKy/VeglFYLPqJzmhK9BHlpVehVf/8ZpvA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-PMQ6SkCtMoj0Ks77DiishpEmIuHpYjFLDuVOzzJCzGeGoii0yRP5lKy/VeglFYLPqJzmhK9BHlpVehVf/8ZpvA==, + } + engines: { node: '>=10' } cpu: [x64] os: [linux] '@swc/core-win32-arm64-msvc@1.7.24': - resolution: {integrity: sha512-SNdCa4DtGXNWrPVHqctVUxgEVZVETuqERpqF50KFHO0Bvf5V/m1IJ4hFr2BxXlrzgnIW4t1Dpi6YOJbcGbEmnA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-SNdCa4DtGXNWrPVHqctVUxgEVZVETuqERpqF50KFHO0Bvf5V/m1IJ4hFr2BxXlrzgnIW4t1Dpi6YOJbcGbEmnA==, + } + engines: { node: '>=10' } cpu: [arm64] os: [win32] '@swc/core-win32-ia32-msvc@1.7.24': - resolution: {integrity: sha512-5p3olHqwibMfrVFg2yVuSIPh9HArDYYlJXNZ9JKqeZk23A19J1pl9MuPmXDw+sxsiPfYJ/nUedIGeUHPF/+EDw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-5p3olHqwibMfrVFg2yVuSIPh9HArDYYlJXNZ9JKqeZk23A19J1pl9MuPmXDw+sxsiPfYJ/nUedIGeUHPF/+EDw==, + } + engines: { node: '>=10' } cpu: [ia32] os: [win32] '@swc/core-win32-x64-msvc@1.7.24': - resolution: {integrity: sha512-gRyPIxDznS8d2ClfmWbytjp2d48bij6swHnDLWhukNuOvXdQkEmaIzjEsionFG/zhcFLnz8zKfTvjEjInAMzxg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-gRyPIxDznS8d2ClfmWbytjp2d48bij6swHnDLWhukNuOvXdQkEmaIzjEsionFG/zhcFLnz8zKfTvjEjInAMzxg==, + } + engines: { node: '>=10' } cpu: [x64] os: [win32] '@swc/core@1.7.24': - resolution: {integrity: sha512-FzJaai6z6DYdICAY1UKNN5pzTn296ksK2zzEjjaXlpZtoMkGktWT0ttS7hbdBCPGhLOu5Q9TA2zdPejKUFjgig==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-FzJaai6z6DYdICAY1UKNN5pzTn296ksK2zzEjjaXlpZtoMkGktWT0ttS7hbdBCPGhLOu5Q9TA2zdPejKUFjgig==, + } + engines: { node: '>=10' } peerDependencies: '@swc/helpers': '*' peerDependenciesMeta: @@ -6509,19 +9198,34 @@ packages: optional: true '@swc/counter@0.1.3': - resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} + resolution: + { + integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, + } '@swc/helpers@0.5.15': - resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + resolution: + { + integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==, + } '@swc/helpers@0.5.17': - resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} + resolution: + { + integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==, + } '@swc/types@0.1.24': - resolution: {integrity: sha512-tjTMh3V4vAORHtdTprLlfoMptu1WfTZG9Rsca6yOKyNYsRr+MUXutKmliB17orgSZk5DpnDxs8GUdd/qwYxOng==} + resolution: + { + integrity: sha512-tjTMh3V4vAORHtdTprLlfoMptu1WfTZG9Rsca6yOKyNYsRr+MUXutKmliB17orgSZk5DpnDxs8GUdd/qwYxOng==, + } '@t3-oss/env-core@0.11.1': - resolution: {integrity: sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==} + resolution: + { + integrity: sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==, + } peerDependencies: typescript: '>=5.0.0' zod: ^3.0.0 @@ -6530,7 +9234,10 @@ packages: optional: true '@t3-oss/env-core@0.12.0': - resolution: {integrity: sha512-lOPj8d9nJJTt81mMuN9GMk8x5veOt7q9m11OSnCBJhwp1QrL/qR+M8Y467ULBSm9SunosryWNbmQQbgoiMgcdw==} + resolution: + { + integrity: sha512-lOPj8d9nJJTt81mMuN9GMk8x5veOt7q9m11OSnCBJhwp1QrL/qR+M8Y467ULBSm9SunosryWNbmQQbgoiMgcdw==, + } peerDependencies: typescript: '>=5.0.0' valibot: ^1.0.0-beta.7 || ^1.0.0 @@ -6544,7 +9251,10 @@ packages: optional: true '@t3-oss/env-nextjs@0.11.1': - resolution: {integrity: sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==} + resolution: + { + integrity: sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==, + } peerDependencies: typescript: '>=5.0.0' zod: ^3.0.0 @@ -6553,127 +9263,193 @@ packages: optional: true '@tailwindcss/forms@0.5.10': - resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} + resolution: + { + integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==, + } peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' '@tailwindcss/node@4.1.12': - resolution: {integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==} + resolution: + { + integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==, + } '@tailwindcss/node@4.1.17': - resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==} + resolution: + { + integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==, + } '@tailwindcss/oxide-android-arm64@4.1.12': - resolution: {integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [android] '@tailwindcss/oxide-android-arm64@4.1.17': - resolution: {integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [android] '@tailwindcss/oxide-darwin-arm64@4.1.12': - resolution: {integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@tailwindcss/oxide-darwin-arm64@4.1.17': - resolution: {integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.12': - resolution: {integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.17': - resolution: {integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==, + } + engines: { node: '>= 10' } cpu: [x64] os: [darwin] '@tailwindcss/oxide-freebsd-x64@4.1.12': - resolution: {integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@tailwindcss/oxide-freebsd-x64@4.1.17': - resolution: {integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==, + } + engines: { node: '>= 10' } cpu: [x64] os: [freebsd] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': - resolution: {integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': - resolution: {integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==, + } + engines: { node: '>= 10' } cpu: [arm] os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': - resolution: {integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': - resolution: {integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-arm64-musl@4.1.12': - resolution: {integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-arm64-musl@4.1.17': - resolution: {integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-x64-gnu@4.1.12': - resolution: {integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@tailwindcss/oxide-linux-x64-gnu@4.1.17': - resolution: {integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@tailwindcss/oxide-linux-x64-musl@4.1.12': - resolution: {integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@tailwindcss/oxide-linux-x64-musl@4.1.17': - resolution: {integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==, + } + engines: { node: '>= 10' } cpu: [x64] os: [linux] '@tailwindcss/oxide-wasm32-wasi@4.1.12': - resolution: {integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==, + } + engines: { node: '>=14.0.0' } cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' @@ -6684,8 +9460,11 @@ packages: - tslib '@tailwindcss/oxide-wasm32-wasi@4.1.17': - resolution: {integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==, + } + engines: { node: '>=14.0.0' } cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' @@ -6696,96 +9475,156 @@ packages: - tslib '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': - resolution: {integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': - resolution: {integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==, + } + engines: { node: '>= 10' } cpu: [arm64] os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.12': - resolution: {integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.17': - resolution: {integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==, + } + engines: { node: '>= 10' } cpu: [x64] os: [win32] '@tailwindcss/oxide@4.1.12': - resolution: {integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==, + } + engines: { node: '>= 10' } '@tailwindcss/oxide@4.1.17': - resolution: {integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==, + } + engines: { node: '>= 10' } '@tailwindcss/postcss@4.1.12': - resolution: {integrity: sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==} + resolution: + { + integrity: sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==, + } '@tailwindcss/postcss@4.1.17': - resolution: {integrity: sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw==} + resolution: + { + integrity: sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw==, + } '@tailwindcss/typography@0.5.16': - resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} + resolution: + { + integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==, + } peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' '@tanstack/query-core@5.85.5': - resolution: {integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==} + resolution: + { + integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==, + } '@tanstack/query-devtools@5.84.0': - resolution: {integrity: sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==} + resolution: + { + integrity: sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==, + } '@tanstack/react-query-devtools@5.85.5': - resolution: {integrity: sha512-6Ol6Q+LxrCZlQR4NoI5181r+ptTwnlPG2t7H9Sp3klxTBhYGunONqcgBn2YKRPsaKiYM8pItpKMdMXMEINntMQ==} + resolution: + { + integrity: sha512-6Ol6Q+LxrCZlQR4NoI5181r+ptTwnlPG2t7H9Sp3klxTBhYGunONqcgBn2YKRPsaKiYM8pItpKMdMXMEINntMQ==, + } peerDependencies: '@tanstack/react-query': ^5.85.5 react: ^18 || ^19 '@tanstack/react-query@5.85.5': - resolution: {integrity: sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==} + resolution: + { + integrity: sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==, + } peerDependencies: react: ^18 || ^19 '@tanstack/react-table@8.21.3': - resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==, + } + engines: { node: '>=12' } peerDependencies: react: '>=16.8' react-dom: '>=16.8' '@tanstack/react-virtual@3.13.12': - resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} + resolution: + { + integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==, + } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@tanstack/table-core@8.21.3': - resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==, + } + engines: { node: '>=12' } '@tanstack/virtual-core@3.13.12': - resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} + resolution: + { + integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==, + } '@testing-library/dom@10.4.1': - resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==, + } + engines: { node: '>=18' } '@testing-library/jest-dom@6.7.0': - resolution: {integrity: sha512-RI2e97YZ7MRa+vxP4UUnMuMFL2buSsf0ollxUbTgrbPLKhMn8KVTx7raS6DYjC7v1NDVrioOvaShxsguLNISCA==} - engines: {node: '>=14', npm: '>=6', yarn: '>=1'} + resolution: + { + integrity: sha512-RI2e97YZ7MRa+vxP4UUnMuMFL2buSsf0ollxUbTgrbPLKhMn8KVTx7raS6DYjC7v1NDVrioOvaShxsguLNISCA==, + } + engines: { node: '>=14', npm: '>=6', yarn: '>=1' } '@testing-library/react@16.3.0': - resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==, + } + engines: { node: '>=18' } peerDependencies: '@testing-library/dom': ^10.0.0 '@types/react': ^18.0.0 || ^19.0.0 @@ -6799,30 +9638,51 @@ packages: optional: true '@testing-library/user-event@14.6.1': - resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} - engines: {node: '>=12', npm: '>=6'} + resolution: + { + integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==, + } + engines: { node: '>=12', npm: '>=6' } peerDependencies: '@testing-library/dom': '>=7.21.4' '@theguild/remark-mermaid@0.3.0': - resolution: {integrity: sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==} + resolution: + { + integrity: sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==, + } peerDependencies: react: ^18.2.0 || ^19.0.0 '@theguild/remark-npm2yarn@0.3.3': - resolution: {integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==} + resolution: + { + integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==, + } '@tootallnate/quickjs-emscripten@0.23.0': - resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} + resolution: + { + integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, + } '@transloadit/prettier-bytes@0.3.5': - resolution: {integrity: sha512-xF4A3d/ZyX2LJWeQZREZQw+qFX4TGQ8bGVP97OLRt6sPO6T0TNHBFTuRHOJh7RNmYOBmQ9MHxpolD9bXihpuVA==} + resolution: + { + integrity: sha512-xF4A3d/ZyX2LJWeQZREZQw+qFX4TGQ8bGVP97OLRt6sPO6T0TNHBFTuRHOJh7RNmYOBmQ9MHxpolD9bXihpuVA==, + } '@ts-morph/common@0.27.0': - resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==} + resolution: + { + integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==, + } '@ts-rest/core@3.51.0': - resolution: {integrity: sha512-v6lnWEcpZj1UgN9wb84XQ+EORP1QEtncFumoXMJjno5ZUV6vdjKze3MYcQN0C6vjBpIJPQEaI/gab2jr4/0KzQ==} + resolution: + { + integrity: sha512-v6lnWEcpZj1UgN9wb84XQ+EORP1QEtncFumoXMJjno5ZUV6vdjKze3MYcQN0C6vjBpIJPQEaI/gab2jr4/0KzQ==, + } peerDependencies: '@types/node': ^18.18.7 || >=20.8.4 zod: ^3.22.3 @@ -6833,7 +9693,10 @@ packages: optional: true '@ts-rest/next@3.51.0': - resolution: {integrity: sha512-bvnd27rja+Zvi1/tUcVhLr5JxTc6fEMfWfm2JJd/p6Q+JwwzRY/dLy/XD5qm4/rHUtGmsF/tGJZfgC8dD2Mokw==} + resolution: + { + integrity: sha512-bvnd27rja+Zvi1/tUcVhLr5JxTc6fEMfWfm2JJd/p6Q+JwwzRY/dLy/XD5qm4/rHUtGmsF/tGJZfgC8dD2Mokw==, + } peerDependencies: '@ts-rest/core': ~3.51.0 next: ^12.0.0 || ^13.0.0 || ^14.0.0 @@ -6843,13 +9706,19 @@ packages: optional: true '@ts-rest/open-api@3.51.0': - resolution: {integrity: sha512-fvpvRr6HIbAMNZR//QQQi75z5qTxMEBMRtmbaBXVi5e1WVVwOK7P6YBaGWTQp6DXSvsZVULX5VZXmsDd1Z1dew==} + resolution: + { + integrity: sha512-fvpvRr6HIbAMNZR//QQQi75z5qTxMEBMRtmbaBXVi5e1WVVwOK7P6YBaGWTQp6DXSvsZVULX5VZXmsDd1Z1dew==, + } peerDependencies: '@ts-rest/core': ~3.51.0 zod: ^3.22.3 '@ts-rest/react-query@3.51.0': - resolution: {integrity: sha512-pWrbyRqvcvmjvm+ORu3zE3sPFqsS6CHOq5vra/UtyLEgXrcnEA+fu/7d9tj/+BLRwe0kOWvalu2S3/d3SDxvFQ==} + resolution: + { + integrity: sha512-pWrbyRqvcvmjvm+ORu3zE3sPFqsS6CHOq5vra/UtyLEgXrcnEA+fu/7d9tj/+BLRwe0kOWvalu2S3/d3SDxvFQ==, + } peerDependencies: '@tanstack/react-query': ^4.0.0 || ^5.0.0 '@ts-rest/core': ~3.51.0 @@ -6860,7 +9729,10 @@ packages: optional: true '@ts-rest/serverless@3.51.0': - resolution: {integrity: sha512-BjwmLPgnYifdDjSpSvhZk+v1P+3CiM/jpxKNUgdw8RfgnDy/+aaOPmAcSkjhBCOIu6ASChuv/sNpiuWx3YyPUw==} + resolution: + { + integrity: sha512-BjwmLPgnYifdDjSpSvhZk+v1P+3CiM/jpxKNUgdw8RfgnDy/+aaOPmAcSkjhBCOIu6ASChuv/sNpiuWx3YyPUw==, + } peerDependencies: '@azure/functions': ^4.0.0 '@ts-rest/core': ~3.51.0 @@ -6878,7 +9750,10 @@ packages: optional: true '@ts-rest/serverless@3.52.1': - resolution: {integrity: sha512-9lz6SVC/zOjR7Q70Uige1i4fgSLS5cPpei/ocBgdwhc/TJhKWTMQog2IQX3pT2nIA4B4QvZ54YyrBkSiwbrGPw==} + resolution: + { + integrity: sha512-9lz6SVC/zOjR7Q70Uige1i4fgSLS5cPpei/ocBgdwhc/TJhKWTMQog2IQX3pT2nIA4B4QvZ54YyrBkSiwbrGPw==, + } peerDependencies: '@azure/functions': ^4.0.0 '@ts-rest/core': ~3.52.0 @@ -6896,567 +9771,1056 @@ packages: optional: true '@tsconfig/node10@1.0.11': - resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} + resolution: + { + integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, + } '@tsconfig/node12@1.0.11': - resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} + resolution: + { + integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, + } '@tsconfig/node14@1.0.3': - resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} + resolution: + { + integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, + } '@tsconfig/node16@1.0.4': - resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} + resolution: + { + integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, + } '@turbo/gen@2.5.6': - resolution: {integrity: sha512-0ugshQQGJE/lVYHhkFsdAd6prM279Uyl+UVfylkNhrL21YML4/fGKPYb99G0bNJ+okp7bA++4/RDFh3MS0ZeRg==} + resolution: + { + integrity: sha512-0ugshQQGJE/lVYHhkFsdAd6prM279Uyl+UVfylkNhrL21YML4/fGKPYb99G0bNJ+okp7bA++4/RDFh3MS0ZeRg==, + } hasBin: true '@turbo/workspaces@2.5.6': - resolution: {integrity: sha512-TmY25GmxzgX+395Fwl/F0te6S4RHdJtYl1QjZr+wlxVvKJ0IBOACpnpAvnLM3dpTgXuQukGtSWcRz7Zi9mZqcQ==} + resolution: + { + integrity: sha512-TmY25GmxzgX+395Fwl/F0te6S4RHdJtYl1QjZr+wlxVvKJ0IBOACpnpAvnLM3dpTgXuQukGtSWcRz7Zi9mZqcQ==, + } hasBin: true '@tybys/wasm-util@0.10.0': - resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} + resolution: + { + integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==, + } '@tybys/wasm-util@0.8.3': - resolution: {integrity: sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==} + resolution: + { + integrity: sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==, + } '@types/archiver@6.0.3': - resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} + resolution: + { + integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==, + } '@types/aria-query@5.0.4': - resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} + resolution: + { + integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==, + } '@types/aws-lambda@8.10.143': - resolution: {integrity: sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==} + resolution: + { + integrity: sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==, + } '@types/aws-lambda@8.10.145': - resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} + resolution: + { + integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==, + } '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} + resolution: + { + integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, + } '@types/babel__generator@7.27.0': - resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} + resolution: + { + integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==, + } '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + resolution: + { + integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, + } '@types/babel__traverse@7.28.0': - resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} + resolution: + { + integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==, + } '@types/base16@1.0.5': - resolution: {integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==} + resolution: + { + integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==, + } '@types/bunyan@1.8.9': - resolution: {integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==} + resolution: + { + integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==, + } '@types/chai@5.2.2': - resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} + resolution: + { + integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, + } '@types/connect@3.4.36': - resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} + resolution: + { + integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==, + } '@types/connect@3.4.38': - resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} + resolution: + { + integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, + } '@types/cookie@0.6.0': - resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} + resolution: + { + integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, + } '@types/cors@2.8.19': - resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} + resolution: + { + integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==, + } '@types/cross-spawn@6.0.2': - resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} + resolution: + { + integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==, + } '@types/d3-array@3.2.1': - resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} + resolution: + { + integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==, + } '@types/d3-axis@3.0.6': - resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} + resolution: + { + integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==, + } '@types/d3-brush@3.0.6': - resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} + resolution: + { + integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==, + } '@types/d3-chord@3.0.6': - resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} + resolution: + { + integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==, + } '@types/d3-color@3.1.3': - resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} + resolution: + { + integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==, + } '@types/d3-contour@3.0.6': - resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} + resolution: + { + integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==, + } '@types/d3-delaunay@6.0.4': - resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} + resolution: + { + integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==, + } '@types/d3-dispatch@3.0.7': - resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} + resolution: + { + integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==, + } '@types/d3-drag@3.0.7': - resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} + resolution: + { + integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==, + } '@types/d3-dsv@3.0.7': - resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} + resolution: + { + integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==, + } '@types/d3-ease@3.0.2': - resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} + resolution: + { + integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==, + } '@types/d3-fetch@3.0.7': - resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} + resolution: + { + integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==, + } '@types/d3-force@3.0.10': - resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} + resolution: + { + integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==, + } '@types/d3-format@3.0.4': - resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} + resolution: + { + integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==, + } '@types/d3-geo@3.1.0': - resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} + resolution: + { + integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==, + } '@types/d3-hierarchy@3.1.7': - resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} + resolution: + { + integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==, + } '@types/d3-interpolate@3.0.4': - resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} + resolution: + { + integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==, + } '@types/d3-path@3.1.1': - resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} + resolution: + { + integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==, + } '@types/d3-polygon@3.0.2': - resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} + resolution: + { + integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==, + } '@types/d3-quadtree@3.0.6': - resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} + resolution: + { + integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==, + } '@types/d3-random@3.0.3': - resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} + resolution: + { + integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==, + } '@types/d3-scale-chromatic@3.1.0': - resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} + resolution: + { + integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==, + } '@types/d3-scale@4.0.9': - resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} + resolution: + { + integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==, + } '@types/d3-selection@3.0.11': - resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} + resolution: + { + integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==, + } '@types/d3-shape@3.1.7': - resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} + resolution: + { + integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==, + } '@types/d3-time-format@4.0.3': - resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} + resolution: + { + integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==, + } '@types/d3-time@3.0.4': - resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} + resolution: + { + integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==, + } '@types/d3-timer@3.0.2': - resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} + resolution: + { + integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==, + } '@types/d3-transition@3.0.9': - resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} + resolution: + { + integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==, + } '@types/d3-zoom@3.0.8': - resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} + resolution: + { + integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==, + } '@types/d3@7.4.3': - resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} + resolution: + { + integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==, + } '@types/debug@4.1.12': - resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} + resolution: + { + integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, + } '@types/debug@4.1.8': - resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} + resolution: + { + integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==, + } '@types/deep-eql@4.0.2': - resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} + resolution: + { + integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==, + } '@types/diacritics@1.3.3': - resolution: {integrity: sha512-wt0tBItmBsOUVZ8+MCrkBMoVfH/EUZeTXwYSekVVYilZlGDYssREUR+sX72mHvl2IrbdCKgpYARXKh3awD2how==} + resolution: + { + integrity: sha512-wt0tBItmBsOUVZ8+MCrkBMoVfH/EUZeTXwYSekVVYilZlGDYssREUR+sX72mHvl2IrbdCKgpYARXKh3awD2how==, + } '@types/doctrine@0.0.9': - resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} + resolution: + { + integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==, + } '@types/estree-jsx@1.0.5': - resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + resolution: + { + integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==, + } '@types/estree@0.0.39': - resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} + resolution: + { + integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, + } '@types/estree@1.0.8': - resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + resolution: + { + integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==, + } '@types/geojson@7946.0.16': - resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} + resolution: + { + integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==, + } '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} + resolution: + { + integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, + } '@types/hast@2.3.10': - resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} + resolution: + { + integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==, + } '@types/hast@3.0.4': - resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + resolution: + { + integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, + } '@types/inquirer@6.5.0': - resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} + resolution: + { + integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==, + } '@types/interpret@1.1.3': - resolution: {integrity: sha512-uBaBhj/BhilG58r64mtDb/BEdH51HIQLgP5bmWzc5qCtFMja8dCk/IOJmk36j0lbi9QHwI6sbtUNGuqXdKCAtQ==} + resolution: + { + integrity: sha512-uBaBhj/BhilG58r64mtDb/BEdH51HIQLgP5bmWzc5qCtFMja8dCk/IOJmk36j0lbi9QHwI6sbtUNGuqXdKCAtQ==, + } '@types/jsdom@21.1.7': - resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} + resolution: + { + integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==, + } '@types/json-schema@7.0.15': - resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + resolution: + { + integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, + } '@types/json5@2.2.0': - resolution: {integrity: sha512-NrVug5woqbvNZ0WX+Gv4R+L4TGddtmFek2u8RtccAgFZWtS9QXF2xCXY22/M4nzkaKF0q9Fc6M/5rxLDhfwc/A==} + resolution: + { + integrity: sha512-NrVug5woqbvNZ0WX+Gv4R+L4TGddtmFek2u8RtccAgFZWtS9QXF2xCXY22/M4nzkaKF0q9Fc6M/5rxLDhfwc/A==, + } deprecated: This is a stub types definition. json5 provides its own type definitions, so you do not need this installed. '@types/jsonwebtoken@9.0.10': - resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} + resolution: + { + integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==, + } '@types/katex@0.16.7': - resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} + resolution: + { + integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==, + } '@types/linkify-it@5.0.0': - resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} + resolution: + { + integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==, + } '@types/lodash.isequalwith@4.4.9': - resolution: {integrity: sha512-uLXidHwVTfYeaHRipKT/pjl10PFTGM0rHLyfANSSfEJvwtFmRACmQb2y6i8eZbcOCtX+BSxOKa+JzzCTxmQ32g==} + resolution: + { + integrity: sha512-uLXidHwVTfYeaHRipKT/pjl10PFTGM0rHLyfANSSfEJvwtFmRACmQb2y6i8eZbcOCtX+BSxOKa+JzzCTxmQ32g==, + } '@types/lodash.partition@4.6.9': - resolution: {integrity: sha512-ANgnHyTw/C07oHr/8/jzoc1BlZZFRafAyDvc04Z8qR1IvWZpAGB8aHPUkd0UCgJWOauqoCsILhvPLXKsTc4rXQ==} + resolution: + { + integrity: sha512-ANgnHyTw/C07oHr/8/jzoc1BlZZFRafAyDvc04Z8qR1IvWZpAGB8aHPUkd0UCgJWOauqoCsILhvPLXKsTc4rXQ==, + } '@types/lodash@4.17.20': - resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} + resolution: + { + integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==, + } '@types/markdown-it@14.1.2': - resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} + resolution: + { + integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==, + } '@types/mdast@4.0.4': - resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + resolution: + { + integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, + } '@types/mdurl@2.0.0': - resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} + resolution: + { + integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==, + } '@types/mdx@2.0.13': - resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} + resolution: + { + integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==, + } '@types/memcached@2.2.10': - resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} + resolution: + { + integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==, + } '@types/mime-types@2.1.4': - resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} + resolution: + { + integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==, + } '@types/minimatch@6.0.0': - resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} + resolution: + { + integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==, + } deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. '@types/ms@2.1.0': - resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} + resolution: + { + integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==, + } '@types/mudder@2.1.3': - resolution: {integrity: sha512-t4Sacwmm/xj5Ml74q8cHhwTNJPL5I30hG5iqFrlpIOla1ygdDMdzaYZzQ0+OT56kHlP5Ar+G6XKLWxgNBjq+MQ==} + resolution: + { + integrity: sha512-t4Sacwmm/xj5Ml74q8cHhwTNJPL5I30hG5iqFrlpIOla1ygdDMdzaYZzQ0+OT56kHlP5Ar+G6XKLWxgNBjq+MQ==, + } '@types/mysql@2.15.26': - resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} + resolution: + { + integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==, + } '@types/mysql@2.15.27': - resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} + resolution: + { + integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==, + } '@types/nlcst@2.0.3': - resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} + resolution: + { + integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==, + } '@types/node@20.19.11': - resolution: {integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==} + resolution: + { + integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==, + } '@types/node@22.17.2': - resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} + resolution: + { + integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==, + } '@types/node@24.3.0': - resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} + resolution: + { + integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==, + } '@types/nodemailer@6.4.18': - resolution: {integrity: sha512-K+OGGXYCxIGkZ59EzoEFkKDkxUT2yQ4f5zgLb+bOJ+pPTZd8M2i/DGMVYrRigUwFnL76URW5VMqMCkgHgjLX0w==} + resolution: + { + integrity: sha512-K+OGGXYCxIGkZ59EzoEFkKDkxUT2yQ4f5zgLb+bOJ+pPTZd8M2i/DGMVYrRigUwFnL76URW5VMqMCkgHgjLX0w==, + } '@types/normalize-package-data@2.4.4': - resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} + resolution: + { + integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, + } '@types/object.omit@3.0.3': - resolution: {integrity: sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==} + resolution: + { + integrity: sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==, + } '@types/object.pick@1.3.4': - resolution: {integrity: sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==} + resolution: + { + integrity: sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==, + } '@types/parse-json@4.0.2': - resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} + resolution: + { + integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, + } '@types/pg-pool@2.0.6': - resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + resolution: + { + integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==, + } '@types/pg@8.15.4': - resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==} + resolution: + { + integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==, + } '@types/pg@8.15.5': - resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} + resolution: + { + integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==, + } '@types/pg@8.6.1': - resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} + resolution: + { + integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==, + } '@types/pluralize@0.0.33': - resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} + resolution: + { + integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==, + } '@types/prop-types@15.7.15': - resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} + resolution: + { + integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==, + } '@types/prosemirror-dev-tools@3.0.6': - resolution: {integrity: sha512-zARROV118nwc+sX7W+0ea4cffqUeRNOSac0jttSpJ921aS6w++Be+RakAgGiTqoRpPV+J+wKomMR/RuKBAlEMg==} + resolution: + { + integrity: sha512-zARROV118nwc+sX7W+0ea4cffqUeRNOSac0jttSpJ921aS6w++Be+RakAgGiTqoRpPV+J+wKomMR/RuKBAlEMg==, + } '@types/qs@6.14.0': - resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} + resolution: + { + integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==, + } '@types/react-dom@19.1.7': - resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} + resolution: + { + integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==, + } peerDependencies: '@types/react': ^19.0.0 '@types/react@19.1.10': - resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} + resolution: + { + integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==, + } '@types/readdir-glob@1.1.5': - resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} + resolution: + { + integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==, + } '@types/resolve@1.17.1': - resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} + resolution: + { + integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, + } '@types/resolve@1.20.6': - resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} + resolution: + { + integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==, + } '@types/retry@0.12.0': - resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} + resolution: + { + integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==, + } '@types/retry@0.12.2': - resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} + resolution: + { + integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==, + } '@types/semver@7.7.0': - resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} + resolution: + { + integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==, + } '@types/shimmer@1.2.0': - resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} + resolution: + { + integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==, + } '@types/statuses@2.0.6': - resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} + resolution: + { + integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==, + } '@types/tedious@4.0.14': - resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} + resolution: + { + integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==, + } '@types/throttle-debounce@2.1.0': - resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} + resolution: + { + integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==, + } '@types/through@0.0.33': - resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} + resolution: + { + integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==, + } '@types/tinycolor2@1.4.6': - resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} + resolution: + { + integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==, + } '@types/tough-cookie@4.0.5': - resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} + resolution: + { + integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==, + } '@types/trusted-types@2.0.7': - resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} + resolution: + { + integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, + } '@types/unist@2.0.11': - resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} + resolution: + { + integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==, + } '@types/unist@3.0.3': - resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} + resolution: + { + integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, + } '@types/uuid@9.0.8': - resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} + resolution: + { + integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==, + } '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-siuRD9Shh5gVrgYG5HEWxFxG/dkZa4ndupGWKMfM4DwMG7zLeFayi6sB9yiwpD0d203ts01D7uTnTCALdiWXmQ==} + resolution: + { + integrity: sha512-siuRD9Shh5gVrgYG5HEWxFxG/dkZa4ndupGWKMfM4DwMG7zLeFayi6sB9yiwpD0d203ts01D7uTnTCALdiWXmQ==, + } cpu: [arm64] os: [darwin] '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-TyFP7dGMo/Xz37MI3QNfGl3J2i8AKurYwLLD+bG0EDLWnz213wwBwN6U9vMcyatBzfdxKEHHPgdNP0UYCVx3kQ==} + resolution: + { + integrity: sha512-TyFP7dGMo/Xz37MI3QNfGl3J2i8AKurYwLLD+bG0EDLWnz213wwBwN6U9vMcyatBzfdxKEHHPgdNP0UYCVx3kQ==, + } cpu: [arm64] os: [darwin] '@typescript/native-preview-darwin-x64@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-ivqxCrbLXUqZU1OMojVRCnVx5gC/twgi7gKzBXMBLGOgfTkhajbHk/71J3OQhJwzR3T2ISG6FTfXKHhQMtgkkg==} + resolution: + { + integrity: sha512-ivqxCrbLXUqZU1OMojVRCnVx5gC/twgi7gKzBXMBLGOgfTkhajbHk/71J3OQhJwzR3T2ISG6FTfXKHhQMtgkkg==, + } cpu: [x64] os: [darwin] '@typescript/native-preview-darwin-x64@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-1Dr8toDQcmqKjXd5cQoTAjzMR46cscaojQiazbAPJsU/1PQFgBT36/Mb/epLpzN+ZKKgf7Xd6u2eqH2ze0kF6Q==} + resolution: + { + integrity: sha512-1Dr8toDQcmqKjXd5cQoTAjzMR46cscaojQiazbAPJsU/1PQFgBT36/Mb/epLpzN+ZKKgf7Xd6u2eqH2ze0kF6Q==, + } cpu: [x64] os: [darwin] '@typescript/native-preview-linux-arm64@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-ttNri2Ui1CzlLnPJN0sQ4XBgrCMq4jjtxouitRGh7+YlToG561diLERjOwIhNfTzPDKRMS7XO090WoepbvzFpA==} + resolution: + { + integrity: sha512-ttNri2Ui1CzlLnPJN0sQ4XBgrCMq4jjtxouitRGh7+YlToG561diLERjOwIhNfTzPDKRMS7XO090WoepbvzFpA==, + } cpu: [arm64] os: [linux] '@typescript/native-preview-linux-arm64@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-xmGrxP0ERLeczerjJtask6gOln/QhAeELqTmaNoATvU7hZfEzDDxJOgSXZnX6bCIQHdN/Xn49gsyPjzTaK4rAg==} + resolution: + { + integrity: sha512-xmGrxP0ERLeczerjJtask6gOln/QhAeELqTmaNoATvU7hZfEzDDxJOgSXZnX6bCIQHdN/Xn49gsyPjzTaK4rAg==, + } cpu: [arm64] os: [linux] '@typescript/native-preview-linux-arm@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-Bev1d6NCgCmcGOgmdFG514tWRt2lNUSFjQ9RVnN86tSm+bl5p9Lv6TQjc38Ow9vY11J71IZs9HNN1AKWfBCj2Q==} + resolution: + { + integrity: sha512-Bev1d6NCgCmcGOgmdFG514tWRt2lNUSFjQ9RVnN86tSm+bl5p9Lv6TQjc38Ow9vY11J71IZs9HNN1AKWfBCj2Q==, + } cpu: [arm] os: [linux] '@typescript/native-preview-linux-arm@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-svmoHHjs5gDekSDW6yLzk9iyDxhMnLKJZ9Xk6b1bSz0swrQNPPTJdR7mbhVMrv4HtXei0LHPlXdTr85AqI5qOQ==} + resolution: + { + integrity: sha512-svmoHHjs5gDekSDW6yLzk9iyDxhMnLKJZ9Xk6b1bSz0swrQNPPTJdR7mbhVMrv4HtXei0LHPlXdTr85AqI5qOQ==, + } cpu: [arm] os: [linux] '@typescript/native-preview-linux-x64@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-mwsjGZqUKju3SKPzlDuKhKgt9Ht8seA5OBhorvRZk2B5lwlH0gDsApGK4t50TcnzjpbWI85FVxI6wTq1T36dMg==} + resolution: + { + integrity: sha512-mwsjGZqUKju3SKPzlDuKhKgt9Ht8seA5OBhorvRZk2B5lwlH0gDsApGK4t50TcnzjpbWI85FVxI6wTq1T36dMg==, + } cpu: [x64] os: [linux] '@typescript/native-preview-linux-x64@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-cK4XK3L7TXPj9fIalQcXRqSErdM+pZSqiNgp6QtNsNCyoH2W6J281hnjUA4TmD4TRMSn8CRn7Exy3CGNC3gZkA==} + resolution: + { + integrity: sha512-cK4XK3L7TXPj9fIalQcXRqSErdM+pZSqiNgp6QtNsNCyoH2W6J281hnjUA4TmD4TRMSn8CRn7Exy3CGNC3gZkA==, + } cpu: [x64] os: [linux] '@typescript/native-preview-win32-arm64@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-463QnUaRCUhY/Flj/XinORTbBYuxoMthgJiBU1vu7mipLo2Yaipkkgn1ArGHkV9mjWBa7QIPCWg/V2KIEoVdcA==} + resolution: + { + integrity: sha512-463QnUaRCUhY/Flj/XinORTbBYuxoMthgJiBU1vu7mipLo2Yaipkkgn1ArGHkV9mjWBa7QIPCWg/V2KIEoVdcA==, + } cpu: [arm64] os: [win32] '@typescript/native-preview-win32-arm64@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-U919FWN5FZG/1i75+Cv9mnd80Mw2rdFE/to/wJ6DX9m0dUL8IfZARQYPGDXDO1LEC6sV3CyCpCJ/HqsSkqgaAg==} + resolution: + { + integrity: sha512-U919FWN5FZG/1i75+Cv9mnd80Mw2rdFE/to/wJ6DX9m0dUL8IfZARQYPGDXDO1LEC6sV3CyCpCJ/HqsSkqgaAg==, + } cpu: [arm64] os: [win32] '@typescript/native-preview-win32-x64@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-039WAg5xJjqrRYVHMR9Y2y83dYSLofbyx/22Gc6ur3b/nR8u1wdErK9uwrguL3lxpKDo6qdhnkGlbX8FP0Bz+g==} + resolution: + { + integrity: sha512-039WAg5xJjqrRYVHMR9Y2y83dYSLofbyx/22Gc6ur3b/nR8u1wdErK9uwrguL3lxpKDo6qdhnkGlbX8FP0Bz+g==, + } cpu: [x64] os: [win32] '@typescript/native-preview-win32-x64@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-1U/2fG/A1yZtkP59IkDlOVLw2cPtP6NbLROtTytNN0CLSqme+0OXoh+l7wlN2iSmGY5zIeaVcqs4UIL0SiQInQ==} + resolution: + { + integrity: sha512-1U/2fG/A1yZtkP59IkDlOVLw2cPtP6NbLROtTytNN0CLSqme+0OXoh+l7wlN2iSmGY5zIeaVcqs4UIL0SiQInQ==, + } cpu: [x64] os: [win32] '@typescript/native-preview@7.0.0-dev.20260119.1': - resolution: {integrity: sha512-Tf74TdJVJlLRMN0W9VXK8jc0Gor9+wFRm40qTLt2JeHiPpSF5TEN/pHPjlf4Id1wDSJXH9p5/U1wFS3s5TS2PQ==} + resolution: + { + integrity: sha512-Tf74TdJVJlLRMN0W9VXK8jc0Gor9+wFRm40qTLt2JeHiPpSF5TEN/pHPjlf4Id1wDSJXH9p5/U1wFS3s5TS2PQ==, + } hasBin: true '@typescript/native-preview@7.0.0-dev.20260209.1': - resolution: {integrity: sha512-UdA8RC9ic/qi9ajolQQP7ZG8YwtUbxtTMu6FxKBn4pYWicuXqMjzXqH/Ng+VlqqeYrl088P4Ou0erGPuLu4ajw==} + resolution: + { + integrity: sha512-UdA8RC9ic/qi9ajolQQP7ZG8YwtUbxtTMu6FxKBn4pYWicuXqMjzXqH/Ng+VlqqeYrl088P4Ou0erGPuLu4ajw==, + } hasBin: true '@typescript/vfs@1.6.1': - resolution: {integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==} + resolution: + { + integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==, + } peerDependencies: typescript: '*' '@uiw/react-json-view@2.0.0-alpha.27': - resolution: {integrity: sha512-WeR3SZiwr1jnJSPr53Hij4uz05rsd4MiNbOVhpz0kR4CWqGPGmF4ieQZtU92dWLn2Wqh5auVMKkRhf/1WYUDig==} + resolution: + { + integrity: sha512-WeR3SZiwr1jnJSPr53Hij4uz05rsd4MiNbOVhpz0kR4CWqGPGmF4ieQZtU92dWLn2Wqh5auVMKkRhf/1WYUDig==, + } peerDependencies: '@babel/runtime': '>=7.10.0' react: '>=18.0.0' react-dom: '>=18.0.0' '@ungap/structured-clone@1.3.0': - resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + resolution: + { + integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==, + } '@uppy/audio@2.2.2': - resolution: {integrity: sha512-63pwCo+JbJyxB1V/YK59cMSMFi8+g9Mfew6awfJFeu4tAK0HHfZtUk5+fUdZJRdCf4eIwBAiwixBL8Q4BOes+Q==} + resolution: + { + integrity: sha512-63pwCo+JbJyxB1V/YK59cMSMFi8+g9Mfew6awfJFeu4tAK0HHfZtUk5+fUdZJRdCf4eIwBAiwixBL8Q4BOes+Q==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/aws-s3@4.3.2': - resolution: {integrity: sha512-w3LrMUEI9pXVcn5LZ5oNL92hyocMu8mxfDSVVQIAQKxR+TPi57FfusDBqBB5T33UvxJH8EUGt9a04tuU/LpKqw==} + resolution: + { + integrity: sha512-w3LrMUEI9pXVcn5LZ5oNL92hyocMu8mxfDSVVQIAQKxR+TPi57FfusDBqBB5T33UvxJH8EUGt9a04tuU/LpKqw==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/box@3.3.2': - resolution: {integrity: sha512-4hRXPWy48Gpgyegd7lBPMYQTplfFEq1uaHe9ZltHu53LBeXasuGeZuprMbhIQ/7Sl/7UQwiAU0te9uv/ypoXGg==} + resolution: + { + integrity: sha512-4hRXPWy48Gpgyegd7lBPMYQTplfFEq1uaHe9ZltHu53LBeXasuGeZuprMbhIQ/7Sl/7UQwiAU0te9uv/ypoXGg==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/companion-client@4.5.2': - resolution: {integrity: sha512-hfUsReHM5COhn+5d7CdZgZaG8BtDvtwj7vjXzg8qmgKI901mYUm/Zh420iOKT7eHiofKVTNoa7oijeGrqUEnyg==} + resolution: + { + integrity: sha512-hfUsReHM5COhn+5d7CdZgZaG8BtDvtwj7vjXzg8qmgKI901mYUm/Zh420iOKT7eHiofKVTNoa7oijeGrqUEnyg==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/components@0.3.2': - resolution: {integrity: sha512-RHEV2Ru/SU1J8EoLabUX8GXQ59Q5+/FhSL5vIpicaVj++Neei58WYKj4iNWsigE4xE45jtHfYTV9IlXc+fJXaQ==} + resolution: + { + integrity: sha512-RHEV2Ru/SU1J8EoLabUX8GXQ59Q5+/FhSL5vIpicaVj++Neei58WYKj4iNWsigE4xE45jtHfYTV9IlXc+fJXaQ==, + } '@uppy/core@4.5.3': - resolution: {integrity: sha512-52VLeBUY/j904h48lpPGykuWikkOOS4Lz/qkmalDiBQfNALb6iB1MOZs079IM3o/uMLYxzZRL80C3sKpkBUYcw==} + resolution: + { + integrity: sha512-52VLeBUY/j904h48lpPGykuWikkOOS4Lz/qkmalDiBQfNALb6iB1MOZs079IM3o/uMLYxzZRL80C3sKpkBUYcw==, + } '@uppy/dashboard@4.4.3': - resolution: {integrity: sha512-IwgDDTbk9p4OoAJvvvx6sQSemKTIJq9IDSryNVgbbC6NiR9HSyRcu0+WdOZLiR9DOhDg2oYcoNgv7DMlrktI6g==} + resolution: + { + integrity: sha512-IwgDDTbk9p4OoAJvvvx6sQSemKTIJq9IDSryNVgbbC6NiR9HSyRcu0+WdOZLiR9DOhDg2oYcoNgv7DMlrktI6g==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/drag-drop@4.2.2': - resolution: {integrity: sha512-SlVl+lHC8TvCKW4B9L4pdb0n8mEVgACHjKXGWcy7EUsTrRphv3ugmkbIFL57XpmFR+AFMuPblOsKq/9nkPkHOQ==} + resolution: + { + integrity: sha512-SlVl+lHC8TvCKW4B9L4pdb0n8mEVgACHjKXGWcy7EUsTrRphv3ugmkbIFL57XpmFR+AFMuPblOsKq/9nkPkHOQ==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/dropbox@4.3.2': - resolution: {integrity: sha512-Kj/QX8KFomlbf5mUpoCwxZ8dGH9XiN3RMKqT6zJgUk2bW7JfV2eMV6F9XvrVhz1TCtHZNl81Cv5rhu9io3UQ0w==} + resolution: + { + integrity: sha512-Kj/QX8KFomlbf5mUpoCwxZ8dGH9XiN3RMKqT6zJgUk2bW7JfV2eMV6F9XvrVhz1TCtHZNl81Cv5rhu9io3UQ0w==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/facebook@4.3.2': - resolution: {integrity: sha512-fHwFN8ZlRuNyxmuL7zwMLIegU+ARxegIlM3yJdY7RbRWgod/lUi5ouzTHjFgvLaFbuDtYWWRbZgF3GxCsXbmhA==} + resolution: + { + integrity: sha512-fHwFN8ZlRuNyxmuL7zwMLIegU+ARxegIlM3yJdY7RbRWgod/lUi5ouzTHjFgvLaFbuDtYWWRbZgF3GxCsXbmhA==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/file-input@4.2.2': - resolution: {integrity: sha512-tQklK5C1slZWQlMQYQPBJuhfs0e5w1sRb0VwYMt8P297rB1BUcyOjkVH79DAYHkkgXo9aQKUiZSuVoN89tlLjQ==} + resolution: + { + integrity: sha512-tQklK5C1slZWQlMQYQPBJuhfs0e5w1sRb0VwYMt8P297rB1BUcyOjkVH79DAYHkkgXo9aQKUiZSuVoN89tlLjQ==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/google-drive@4.4.2': - resolution: {integrity: sha512-hIxnWZ7WMW1jrRecL+VnMVt9TwY+V3uEpy7KmNxASraQFwS2oYgYUfO5R8MVcmL654wymQgEsRY7Kzp9NQvZGw==} + resolution: + { + integrity: sha512-hIxnWZ7WMW1jrRecL+VnMVt9TwY+V3uEpy7KmNxASraQFwS2oYgYUfO5R8MVcmL654wymQgEsRY7Kzp9NQvZGw==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/image-editor@3.4.2': - resolution: {integrity: sha512-cQD/oDa/0xCuZAtdi4P2uLIxgrG/YR24KgKAxQYPzQHQtNB8KzCdl3TPV5ZWF9kjT4mSlUsoB4RfPQl34GbFhA==} + resolution: + { + integrity: sha512-cQD/oDa/0xCuZAtdi4P2uLIxgrG/YR24KgKAxQYPzQHQtNB8KzCdl3TPV5ZWF9kjT4mSlUsoB4RfPQl34GbFhA==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/informer@4.3.2': - resolution: {integrity: sha512-7A9X8BfxR/GPtG0MGbQlmj1+G1o9fqeF3qtRh37ZvmZpapnEGtbstQ6Ao2vFm0uxYxOolLOMzFs/xCD27NKAvg==} + resolution: + { + integrity: sha512-7A9X8BfxR/GPtG0MGbQlmj1+G1o9fqeF3qtRh37ZvmZpapnEGtbstQ6Ao2vFm0uxYxOolLOMzFs/xCD27NKAvg==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/instagram@4.3.2': - resolution: {integrity: sha512-LHGroKn8uRcRs94v6DM8SPXIMWubZb/aZr5B4FP7TvTzf3vnGaKE63oOen1yAoCEYbsJfSdo2p974qHbSdPEbw==} + resolution: + { + integrity: sha512-LHGroKn8uRcRs94v6DM8SPXIMWubZb/aZr5B4FP7TvTzf3vnGaKE63oOen1yAoCEYbsJfSdo2p974qHbSdPEbw==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/onedrive@4.3.2': - resolution: {integrity: sha512-dfJAl9qsoQsL1LdIrDPKEKmAj82VNA63BInsJ80nF8bx3tf67AvlMz4O1I9fDW2zctfgOiFlGz47kamz01eSPQ==} + resolution: + { + integrity: sha512-dfJAl9qsoQsL1LdIrDPKEKmAj82VNA63BInsJ80nF8bx3tf67AvlMz4O1I9fDW2zctfgOiFlGz47kamz01eSPQ==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/progress-bar@4.3.2': - resolution: {integrity: sha512-5BOhq49xPpBTlEVsEIRLkV+Hgb0qTuey8XKyrmrSetcgtolKLwtlDjrOWmUcxGYI3bkMbdeJulF9aiR8sSqQ6A==} + resolution: + { + integrity: sha512-5BOhq49xPpBTlEVsEIRLkV+Hgb0qTuey8XKyrmrSetcgtolKLwtlDjrOWmUcxGYI3bkMbdeJulF9aiR8sSqQ6A==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/provider-views@4.5.3': - resolution: {integrity: sha512-zExJSlkqRPl65KKG+SMTdP0OCawYMpo/FaKE8xjqHhx/rkACe6QNExCahpEGGjLo7Rr2j7FooAuA3UWmYiyWCg==} + resolution: + { + integrity: sha512-zExJSlkqRPl65KKG+SMTdP0OCawYMpo/FaKE8xjqHhx/rkACe6QNExCahpEGGjLo7Rr2j7FooAuA3UWmYiyWCg==, + } peerDependencies: '@uppy/core': ^4.5.3 '@uppy/react@4.5.2': - resolution: {integrity: sha512-M2RTC8APz0pbzvAwyBIQEw9pwxlR9gFXII4dU7yUJ/Jb0iLkGuvYrltb9ai4GyPsxOGfdWiFX8e5s8f6Z+Ao1g==} + resolution: + { + integrity: sha512-M2RTC8APz0pbzvAwyBIQEw9pwxlR9gFXII4dU7yUJ/Jb0iLkGuvYrltb9ai4GyPsxOGfdWiFX8e5s8f6Z+Ao1g==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/dashboard': ^4.4.2 @@ -7485,59 +10849,95 @@ packages: optional: true '@uppy/remote-sources@2.4.2': - resolution: {integrity: sha512-b8VVlriQWi/xU/LBuoLaQ3y2yMMLqXXJQpkG43tzBQG2R/sYz2qOm593BX9R4HjPQ891Vt4INjzfDTFziaA/4w==} + resolution: + { + integrity: sha512-b8VVlriQWi/xU/LBuoLaQ3y2yMMLqXXJQpkG43tzBQG2R/sYz2qOm593BX9R4HjPQ891Vt4INjzfDTFziaA/4w==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/screen-capture@4.4.2': - resolution: {integrity: sha512-z2+Y34V8hs1lCeMB+culySW9WMBIL/19Z8OEkc0u6aHj3i6iCu0lwelPEaiUMdKHOXMyQTgn6Ubv+C3/OZlOpw==} + resolution: + { + integrity: sha512-z2+Y34V8hs1lCeMB+culySW9WMBIL/19Z8OEkc0u6aHj3i6iCu0lwelPEaiUMdKHOXMyQTgn6Ubv+C3/OZlOpw==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/status-bar@4.2.3': - resolution: {integrity: sha512-0AtKdvNm3HHobuE4N0V8SrC3uWB9MQnjqMEL/gachW/1mi7iZ22V4veHd6Wub/tCBQAQbEklvz7d0hxcz/Fh9g==} + resolution: + { + integrity: sha512-0AtKdvNm3HHobuE4N0V8SrC3uWB9MQnjqMEL/gachW/1mi7iZ22V4veHd6Wub/tCBQAQbEklvz7d0hxcz/Fh9g==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/store-default@4.3.2': - resolution: {integrity: sha512-dnY9R2o8fwmO1bF89D0b5jijD7DGED2qVST5hI/j18JreLWzLKH7u6HuNmOvzok8msrQ/qWzQd5Gx4LDQKhBbw==} + resolution: + { + integrity: sha512-dnY9R2o8fwmO1bF89D0b5jijD7DGED2qVST5hI/j18JreLWzLKH7u6HuNmOvzok8msrQ/qWzQd5Gx4LDQKhBbw==, + } '@uppy/thumbnail-generator@4.2.3': - resolution: {integrity: sha512-qOfJzlHhaD8DmOH/50DMLNN5/E2qCYCJnikFgTZZbuPx6sUOtPGRrHBE8q/ELxVMB5gD3zGi/Fh2SwKGrGoxGA==} + resolution: + { + integrity: sha512-qOfJzlHhaD8DmOH/50DMLNN5/E2qCYCJnikFgTZZbuPx6sUOtPGRrHBE8q/ELxVMB5gD3zGi/Fh2SwKGrGoxGA==, + } peerDependencies: '@uppy/core': ^4.5.3 '@uppy/unsplash@4.4.2': - resolution: {integrity: sha512-1hO7ND/ROrRgZ8urCX38Q/o5rYs2uFGS7djxlNj/cz9xvRdkBagAzj3qp5FUsnPnJzJrRpifXcelvn3tICQjZg==} + resolution: + { + integrity: sha512-1hO7ND/ROrRgZ8urCX38Q/o5rYs2uFGS7djxlNj/cz9xvRdkBagAzj3qp5FUsnPnJzJrRpifXcelvn3tICQjZg==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/url@4.3.2': - resolution: {integrity: sha512-SREfvV9IJxOg2MuzSVQBr2e9LTle8N0dsyUpsHddaSbbPku9KhkoilOiKuDMhPmvw9pnkYWBZhbw9+4UWnrQtQ==} + resolution: + { + integrity: sha512-SREfvV9IJxOg2MuzSVQBr2e9LTle8N0dsyUpsHddaSbbPku9KhkoilOiKuDMhPmvw9pnkYWBZhbw9+4UWnrQtQ==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/utils@6.2.2': - resolution: {integrity: sha512-9mYJtbcngv2HOJIECkyfmdXTI5dW/ObCyvWP1Iti3E5bKtsa4sMmbx5Yh/tGCj8k/lBNhfvWyZuYnvnjmzNLSQ==} + resolution: + { + integrity: sha512-9mYJtbcngv2HOJIECkyfmdXTI5dW/ObCyvWP1Iti3E5bKtsa4sMmbx5Yh/tGCj8k/lBNhfvWyZuYnvnjmzNLSQ==, + } '@uppy/webcam@4.3.2': - resolution: {integrity: sha512-x0qhTWb7AjkfS9Q12J2xhnTdccZ6sMuBh14LpXtXjaFe4Q1Uf191YmFwT7SCKn7lcasZYw3Tug0G5yQkqvg9uQ==} + resolution: + { + integrity: sha512-x0qhTWb7AjkfS9Q12J2xhnTdccZ6sMuBh14LpXtXjaFe4Q1Uf191YmFwT7SCKn7lcasZYw3Tug0G5yQkqvg9uQ==, + } peerDependencies: '@uppy/core': ^4.5.2 '@uppy/zoom@3.3.2': - resolution: {integrity: sha512-e/yP3itmWh2U/A8SBLymVngDSIzmbq08eX0QzBrI5wIA1r38lD5tGlO2V9D70ujY8hNX7HQUqF+nK4OEgdUxJA==} + resolution: + { + integrity: sha512-e/yP3itmWh2U/A8SBLymVngDSIzmbq08eX0QzBrI5wIA1r38lD5tGlO2V9D70ujY8hNX7HQUqF+nK4OEgdUxJA==, + } peerDependencies: '@uppy/core': ^4.5.2 '@vitejs/plugin-react@4.7.0': - resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} - engines: {node: ^14.18.0 || >=16.0.0} + resolution: + { + integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==, + } + engines: { node: ^14.18.0 || >=16.0.0 } peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 '@vitest/browser@3.0.5': - resolution: {integrity: sha512-5WAWJoucuWcGYU5t0HPBY03k9uogbUEIu4pDmZHoB4Dt+6pXqzDbzEmxGjejZSitSYA3k/udYfuotKNxETVA3A==} + resolution: + { + integrity: sha512-5WAWJoucuWcGYU5t0HPBY03k9uogbUEIu4pDmZHoB4Dt+6pXqzDbzEmxGjejZSitSYA3k/udYfuotKNxETVA3A==, + } peerDependencies: playwright: '*' safaridriver: '*' @@ -7552,7 +10952,10 @@ packages: optional: true '@vitest/coverage-v8@3.0.5': - resolution: {integrity: sha512-zOOWIsj5fHh3jjGwQg+P+J1FW3s4jBu1Zqga0qW60yutsBtqEqNEJKWYh7cYn1yGD+1bdPsPdC/eL4eVK56xMg==} + resolution: + { + integrity: sha512-zOOWIsj5fHh3jjGwQg+P+J1FW3s4jBu1Zqga0qW60yutsBtqEqNEJKWYh7cYn1yGD+1bdPsPdC/eL4eVK56xMg==, + } peerDependencies: '@vitest/browser': 3.0.5 vitest: 3.0.5 @@ -7561,10 +10964,16 @@ packages: optional: true '@vitest/expect@3.2.4': - resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} + resolution: + { + integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==, + } '@vitest/mocker@3.0.5': - resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==} + resolution: + { + integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==, + } peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 @@ -7575,7 +10984,10 @@ packages: optional: true '@vitest/mocker@3.2.4': - resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} + resolution: + { + integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==, + } peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 @@ -7586,131 +10998,245 @@ packages: optional: true '@vitest/pretty-format@3.0.5': - resolution: {integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==} + resolution: + { + integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==, + } '@vitest/pretty-format@3.2.4': - resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} + resolution: + { + integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==, + } '@vitest/runner@3.2.4': - resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} + resolution: + { + integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==, + } '@vitest/snapshot@3.2.4': - resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} + resolution: + { + integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==, + } '@vitest/spy@3.0.5': - resolution: {integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==} + resolution: + { + integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==, + } '@vitest/spy@3.2.4': - resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} + resolution: + { + integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==, + } '@vitest/utils@3.0.5': - resolution: {integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==} + resolution: + { + integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==, + } '@vitest/utils@3.2.4': - resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} + resolution: + { + integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, + } '@webassemblyjs/ast@1.14.1': - resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} + resolution: + { + integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==, + } '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} + resolution: + { + integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==, + } '@webassemblyjs/helper-api-error@1.13.2': - resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} + resolution: + { + integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==, + } '@webassemblyjs/helper-buffer@1.14.1': - resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} + resolution: + { + integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==, + } '@webassemblyjs/helper-numbers@1.13.2': - resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} + resolution: + { + integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==, + } '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} + resolution: + { + integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==, + } '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} + resolution: + { + integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==, + } '@webassemblyjs/ieee754@1.13.2': - resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} + resolution: + { + integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==, + } '@webassemblyjs/leb128@1.13.2': - resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} + resolution: + { + integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==, + } '@webassemblyjs/utf8@1.13.2': - resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} + resolution: + { + integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==, + } '@webassemblyjs/wasm-edit@1.14.1': - resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} + resolution: + { + integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==, + } '@webassemblyjs/wasm-gen@1.14.1': - resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} + resolution: + { + integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==, + } '@webassemblyjs/wasm-opt@1.14.1': - resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} + resolution: + { + integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==, + } '@webassemblyjs/wasm-parser@1.14.1': - resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} + resolution: + { + integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==, + } '@webassemblyjs/wast-printer@1.14.1': - resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} + resolution: + { + integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==, + } '@xmldom/xmldom@0.9.8': - resolution: {integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==} - engines: {node: '>=14.6'} + resolution: + { + integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==, + } + engines: { node: '>=14.6' } '@xtuc/ieee754@1.2.0': - resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} + resolution: + { + integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, + } '@xtuc/long@4.2.2': - resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} + resolution: + { + integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, + } '@zeit/schemas@2.36.0': - resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} + resolution: + { + integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==, + } '@zod/core@0.9.0': - resolution: {integrity: sha512-bVfPiV2kDUkAJ4ArvV4MHcPZA8y3xOX6/SjzSy2kX2ACopbaaAP4wk6hd/byRmfi9MLNai+4SFJMmcATdOyclg==} + resolution: + { + integrity: sha512-bVfPiV2kDUkAJ4ArvV4MHcPZA8y3xOX6/SjzSy2kX2ACopbaaAP4wk6hd/byRmfi9MLNai+4SFJMmcATdOyclg==, + } abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} + resolution: + { + integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, + } + engines: { node: '>=6.5' } accepts@1.3.8: - resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, + } + engines: { node: '>= 0.6' } acorn-import-attributes@1.9.5: - resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} + resolution: + { + integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==, + } peerDependencies: acorn: ^8 acorn-jsx@5.3.2: - resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + resolution: + { + integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.4: - resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==, + } + engines: { node: '>=0.4.0' } acorn@8.15.0: - resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==, + } + engines: { node: '>=0.4.0' } hasBin: true agent-base@6.0.2: - resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} - engines: {node: '>= 6.0.0'} + resolution: + { + integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, + } + engines: { node: '>= 6.0.0' } agent-base@7.1.4: - resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==, + } + engines: { node: '>= 14' } aggregate-error@3.1.0: - resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, + } + engines: { node: '>=8' } ajv-formats@2.1.1: - resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} + resolution: + { + integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, + } peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -7718,411 +11244,741 @@ packages: optional: true ajv-keywords@3.5.2: - resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} + resolution: + { + integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, + } peerDependencies: ajv: ^6.9.1 ajv-keywords@5.1.0: - resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} + resolution: + { + integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, + } peerDependencies: ajv: ^8.8.2 ajv@6.12.6: - resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + resolution: + { + integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, + } ajv@8.12.0: - resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} + resolution: + { + integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, + } ajv@8.17.1: - resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} + resolution: + { + integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, + } ansi-align@3.0.1: - resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} + resolution: + { + integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, + } ansi-colors@4.1.3: - resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, + } + engines: { node: '>=6' } ansi-escapes@4.3.2: - resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, + } + engines: { node: '>=8' } ansi-escapes@5.0.0: - resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==, + } + engines: { node: '>=12' } ansi-regex@5.0.1: - resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, + } + engines: { node: '>=8' } ansi-regex@6.2.0: - resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==, + } + engines: { node: '>=12' } ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, + } + engines: { node: '>=4' } ansi-styles@4.3.0: - resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, + } + engines: { node: '>=8' } ansi-styles@5.2.0: - resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, + } + engines: { node: '>=10' } ansi-styles@6.2.1: - resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, + } + engines: { node: '>=12' } anymatch@3.1.3: - resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, + } + engines: { node: '>= 8' } arch@2.2.0: - resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} + resolution: + { + integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==, + } archiver-utils@2.1.0: - resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==, + } + engines: { node: '>= 6' } archiver-utils@3.0.4: - resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==, + } + engines: { node: '>= 10' } archiver-utils@4.0.1: - resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==, + } + engines: { node: '>= 12.0.0' } archiver@5.3.1: - resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==, + } + engines: { node: '>= 10' } archiver@6.0.2: - resolution: {integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==, + } + engines: { node: '>= 12.0.0' } arg@4.1.3: - resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} + resolution: + { + integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, + } arg@5.0.2: - resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + resolution: + { + integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, + } argparse@2.0.1: - resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + resolution: + { + integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, + } aria-hidden@1.2.6: - resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==, + } + engines: { node: '>=10' } aria-query@5.3.0: - resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} + resolution: + { + integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, + } aria-query@5.3.2: - resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==, + } + engines: { node: '>= 0.4' } array-buffer-byte-length@1.0.2: - resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==, + } + engines: { node: '>= 0.4' } array-iterate@2.0.1: - resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} + resolution: + { + integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==, + } array-union@2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, + } + engines: { node: '>=8' } arraybuffer.prototype.slice@1.0.4: - resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==, + } + engines: { node: '>= 0.4' } assertion-error@2.0.1: - resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, + } + engines: { node: '>=12' } ast-types@0.13.4: - resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, + } + engines: { node: '>=4' } ast-types@0.16.1: - resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==, + } + engines: { node: '>=4' } astral-regex@2.0.0: - resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, + } + engines: { node: '>=8' } astring@1.9.0: - resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} + resolution: + { + integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==, + } hasBin: true async-function@1.0.0: - resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==, + } + engines: { node: '>= 0.4' } async@3.2.6: - resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} + resolution: + { + integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==, + } asynckit@0.4.0: - resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + resolution: + { + integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, + } at-least-node@1.0.0: - resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, + } + engines: { node: '>= 4.0.0' } atomic-sleep@1.0.0: - resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, + } + engines: { node: '>=8.0.0' } autoprefixer@10.4.21: - resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==, + } + engines: { node: ^10 || ^12 || >=14 } hasBin: true peerDependencies: postcss: ^8.1.0 available-typed-arrays@1.0.7: - resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, + } + engines: { node: '>= 0.4' } axios@1.11.0: - resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} + resolution: + { + integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==, + } b4a@1.6.7: - resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} + resolution: + { + integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, + } babel-plugin-macros@3.1.0: - resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} - engines: {node: '>=10', npm: '>=6'} + resolution: + { + integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, + } + engines: { node: '>=10', npm: '>=6' } babel-plugin-polyfill-corejs2@0.4.14: - resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} + resolution: + { + integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-corejs3@0.10.6: - resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} + resolution: + { + integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-regenerator@0.6.5: - resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} + resolution: + { + integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==, + } peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 bail@2.0.2: - resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + resolution: + { + integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, + } balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + resolution: + { + integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, + } bare-events@2.6.1: - resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} + resolution: + { + integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==, + } base16@1.0.0: - resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} + resolution: + { + integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==, + } base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} + resolution: + { + integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, + } base64id@2.0.0: - resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} - engines: {node: ^4.5.0 || >= 5.9} + resolution: + { + integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==, + } + engines: { node: ^4.5.0 || >= 5.9 } basic-ftp@5.0.5: - resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==, + } + engines: { node: '>=10.0.0' } better-opn@3.0.2: - resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==, + } + engines: { node: '>=12.0.0' } better-react-mathjax@2.3.0: - resolution: {integrity: sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==} + resolution: + { + integrity: sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==, + } peerDependencies: react: '>=16.8' bignumber.js@9.3.1: - resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} + resolution: + { + integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==, + } binary-extensions@2.3.0: - resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, + } + engines: { node: '>=8' } bl@4.1.0: - resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} + resolution: + { + integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, + } bowser@2.12.0: - resolution: {integrity: sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==} + resolution: + { + integrity: sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==, + } boxen@7.0.0: - resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==, + } + engines: { node: '>=14.16' } brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + resolution: + { + integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==, + } brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + resolution: + { + integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==, + } braces@3.0.3: - resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, + } + engines: { node: '>=8' } browserslist@4.25.3: - resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + resolution: + { + integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==, + } + engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } hasBin: true buffer-crc32@0.2.13: - resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} + resolution: + { + integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, + } buffer-equal-constant-time@1.0.1: - resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} + resolution: + { + integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, + } buffer-from@1.1.2: - resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} + resolution: + { + integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, + } buffer@5.6.0: - resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} + resolution: + { + integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==, + } buffer@5.7.1: - resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} + resolution: + { + integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, + } buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} + resolution: + { + integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, + } builtin-modules@3.3.0: - resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, + } + engines: { node: '>=6' } bytes@3.0.0: - resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, + } + engines: { node: '>= 0.8' } cac@6.7.14: - resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, + } + engines: { node: '>=8' } call-bind-apply-helpers@1.0.2: - resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, + } + engines: { node: '>= 0.4' } call-bind@1.0.8: - resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==, + } + engines: { node: '>= 0.4' } call-bound@1.0.4: - resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, + } + engines: { node: '>= 0.4' } callsites@3.1.0: - resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, + } + engines: { node: '>=6' } camel-case@3.0.0: - resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} + resolution: + { + integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==, + } camelcase@7.0.1: - resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==, + } + engines: { node: '>=14.16' } caniuse-lite@1.0.30001735: - resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==} + resolution: + { + integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==, + } case-anything@2.1.13: - resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==} - engines: {node: '>=12.13'} + resolution: + { + integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==, + } + engines: { node: '>=12.13' } ccount@2.0.1: - resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + resolution: + { + integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, + } chai@5.3.1: - resolution: {integrity: sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==, + } + engines: { node: '>=18' } chainsaw@0.0.9: - resolution: {integrity: sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==} + resolution: + { + integrity: sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==, + } chalk-template@0.4.0: - resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==, + } + engines: { node: '>=12' } chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, + } + engines: { node: '>=4' } chalk@3.0.0: - resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, + } + engines: { node: '>=8' } chalk@4.1.2: - resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, + } + engines: { node: '>=10' } chalk@5.0.1: - resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } chalk@5.3.0: - resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } chalk@5.6.0: - resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} - engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} + resolution: + { + integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==, + } + engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } change-case@3.1.0: - resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==} + resolution: + { + integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==, + } character-entities-html4@2.1.0: - resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + resolution: + { + integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, + } character-entities-legacy@3.0.0: - resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + resolution: + { + integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, + } character-entities@2.0.2: - resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + resolution: + { + integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, + } character-reference-invalid@2.0.1: - resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + resolution: + { + integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, + } chardet@0.7.0: - resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + resolution: + { + integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, + } chardet@2.1.0: - resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} + resolution: + { + integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==, + } check-error@2.1.1: - resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} - engines: {node: '>= 16'} + resolution: + { + integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, + } + engines: { node: '>= 16' } checkpoint-client@1.1.24: - resolution: {integrity: sha512-nIOlLhDS7MKs4tUzS3LCm+sE1NgTCVnVrXlD0RRxaoEkkLu8LIWSUNiNWai6a+LK5unLzTyZeTCYX1Smqy0YoA==} + resolution: + { + integrity: sha512-nIOlLhDS7MKs4tUzS3LCm+sE1NgTCVnVrXlD0RRxaoEkkLu8LIWSUNiNWai6a+LK5unLzTyZeTCYX1Smqy0YoA==, + } chevrotain-allstar@0.3.1: - resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} + resolution: + { + integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==, + } peerDependencies: chevrotain: ^11.0.0 chevrotain@11.0.3: - resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} + resolution: + { + integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==, + } chokidar@3.6.0: - resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} - engines: {node: '>= 8.10.0'} + resolution: + { + integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, + } + engines: { node: '>= 8.10.0' } chokidar@4.0.3: - resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} - engines: {node: '>= 14.16.0'} + resolution: + { + integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, + } + engines: { node: '>= 14.16.0' } chownr@3.0.0: - resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==, + } + engines: { node: '>=18' } chromatic@12.2.0: - resolution: {integrity: sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==} + resolution: + { + integrity: sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==, + } hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -8134,254 +11990,461 @@ packages: optional: true chrome-trace-event@1.0.4: - resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, + } + engines: { node: '>=6.0' } ci-info@3.8.0: - resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, + } + engines: { node: '>=8' } ci-info@3.9.0: - resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, + } + engines: { node: '>=8' } cjs-module-lexer@1.4.3: - resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + resolution: + { + integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==, + } class-variance-authority@0.7.1: - resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} + resolution: + { + integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==, + } classcat@5.0.5: - resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} + resolution: + { + integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==, + } classnames@2.5.1: - resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} + resolution: + { + integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, + } clean-stack@2.2.0: - resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, + } + engines: { node: '>=6' } cli-boxes@3.0.0: - resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, + } + engines: { node: '>=10' } cli-cursor@3.1.0: - resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, + } + engines: { node: '>=8' } cli-cursor@4.0.0: - resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } cli-progress@3.12.0: - resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==, + } + engines: { node: '>=4' } cli-spinners@2.9.2: - resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, + } + engines: { node: '>=6' } cli-truncate@2.1.0: - resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, + } + engines: { node: '>=8' } cli-truncate@3.1.0: - resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } cli-width@3.0.0: - resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, + } + engines: { node: '>= 10' } cli-width@4.1.0: - resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, + } + engines: { node: '>= 12' } client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} + resolution: + { + integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, + } clipboardy@3.0.0: - resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } clipboardy@4.0.0: - resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==, + } + engines: { node: '>=18' } cliui@8.0.1: - resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, + } + engines: { node: '>=12' } clone@1.0.4: - resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, + } + engines: { node: '>=0.8' } clsx@2.1.1: - resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, + } + engines: { node: '>=6' } cluster-key-slot@1.1.2: - resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==, + } + engines: { node: '>=0.10.0' } cmdk@1.1.1: - resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} + resolution: + { + integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==, + } peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc code-block-writer@13.0.3: - resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} + resolution: + { + integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==, + } collapse-white-space@2.1.0: - resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} + resolution: + { + integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==, + } color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} + resolution: + { + integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, + } color-convert@2.0.1: - resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} - engines: {node: '>=7.0.0'} + resolution: + { + integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, + } + engines: { node: '>=7.0.0' } color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} + resolution: + { + integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, + } color-name@1.1.4: - resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + resolution: + { + integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, + } color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} + resolution: + { + integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, + } color@3.2.1: - resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} + resolution: + { + integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, + } color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} + resolution: + { + integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==, + } + engines: { node: '>=12.5.0' } colorette@2.0.19: - resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} + resolution: + { + integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==, + } colorette@2.0.20: - resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + resolution: + { + integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, + } combined-stream@1.0.8: - resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, + } + engines: { node: '>= 0.8' } comma-separated-tokens@2.0.3: - resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + resolution: + { + integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, + } commander@10.0.1: - resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==, + } + engines: { node: '>=14' } commander@11.0.0: - resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, + } + engines: { node: '>=16' } commander@11.1.0: - resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, + } + engines: { node: '>=16' } commander@13.1.0: - resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==, + } + engines: { node: '>=18' } commander@2.20.3: - resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} + resolution: + { + integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, + } commander@7.2.0: - resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, + } + engines: { node: '>= 10' } commander@8.3.0: - resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, + } + engines: { node: '>= 12' } commondir@1.0.1: - resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} + resolution: + { + integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, + } compress-commons@4.1.2: - resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==, + } + engines: { node: '>= 10' } compress-commons@5.0.3: - resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==, + } + engines: { node: '>= 12.0.0' } compressible@2.0.18: - resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, + } + engines: { node: '>= 0.6' } compression@1.7.4: - resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, + } + engines: { node: '>= 0.8.0' } compute-scroll-into-view@3.1.1: - resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} + resolution: + { + integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==, + } concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + resolution: + { + integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, + } concat-stream@1.6.2: - resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} - engines: {'0': node >= 0.8} + resolution: + { + integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, + } + engines: { '0': node >= 0.8 } concurrently@9.2.0: - resolution: {integrity: sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==, + } + engines: { node: '>=18' } hasBin: true confbox@0.1.8: - resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} + resolution: + { + integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, + } confbox@0.2.2: - resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} + resolution: + { + integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==, + } constant-case@2.0.0: - resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} + resolution: + { + integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==, + } content-disposition@0.5.2: - resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==, + } + engines: { node: '>= 0.6' } convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} + resolution: + { + integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, + } convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + resolution: + { + integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, + } cookie@0.7.2: - resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==, + } + engines: { node: '>= 0.6' } core-js-compat@3.45.0: - resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==} + resolution: + { + integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==, + } core-js-pure@3.45.0: - resolution: {integrity: sha512-OtwjqcDpY2X/eIIg1ol/n0y/X8A9foliaNt1dSK0gV3J2/zw+89FcNG3mPK+N8YWts4ZFUPxnrAzsxs/lf8yDA==} + resolution: + { + integrity: sha512-OtwjqcDpY2X/eIIg1ol/n0y/X8A9foliaNt1dSK0gV3J2/zw+89FcNG3mPK+N8YWts4ZFUPxnrAzsxs/lf8yDA==, + } core-util-is@1.0.3: - resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + resolution: + { + integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, + } cors@2.8.5: - resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, + } + engines: { node: '>= 0.10' } cose-base@1.0.3: - resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} + resolution: + { + integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==, + } cose-base@2.2.0: - resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} + resolution: + { + integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==, + } cosmiconfig@7.1.0: - resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, + } + engines: { node: '>=10' } cosmiconfig@8.3.6: - resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, + } + engines: { node: '>=14' } peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: @@ -8389,261 +12452,462 @@ packages: optional: true crc-32@1.2.2: - resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} - engines: {node: '>=0.8'} + resolution: + { + integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, + } + engines: { node: '>=0.8' } hasBin: true crc32-stream@4.0.3: - resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==, + } + engines: { node: '>= 10' } crc32-stream@5.0.1: - resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==, + } + engines: { node: '>= 12.0.0' } create-require@1.1.1: - resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} + resolution: + { + integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, + } crelt@1.0.6: - resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} + resolution: + { + integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, + } cropperjs@1.6.2: - resolution: {integrity: sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==} + resolution: + { + integrity: sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==, + } cross-spawn@7.0.3: - resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, + } + engines: { node: '>= 8' } cross-spawn@7.0.6: - resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, + } + engines: { node: '>= 8' } crypto-random-string@2.0.0: - resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, + } + engines: { node: '>=8' } css.escape@1.5.1: - resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} + resolution: + { + integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==, + } cssesc@3.0.0: - resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, + } + engines: { node: '>=4' } hasBin: true cssstyle@4.6.0: - resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==, + } + engines: { node: '>=18' } csstype@3.1.3: - resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} + resolution: + { + integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, + } csv-parse@5.6.0: - resolution: {integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==} + resolution: + { + integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==, + } cytoscape-cose-bilkent@4.1.0: - resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} + resolution: + { + integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==, + } peerDependencies: cytoscape: ^3.2.0 cytoscape-fcose@2.2.0: - resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} + resolution: + { + integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==, + } peerDependencies: cytoscape: ^3.2.0 cytoscape@3.33.1: - resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==, + } + engines: { node: '>=0.10' } d3-array@2.12.1: - resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} + resolution: + { + integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==, + } d3-array@3.2.4: - resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==, + } + engines: { node: '>=12' } d3-axis@3.0.0: - resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==, + } + engines: { node: '>=12' } d3-brush@3.0.0: - resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==, + } + engines: { node: '>=12' } d3-chord@3.0.1: - resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==, + } + engines: { node: '>=12' } d3-color@3.1.0: - resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, + } + engines: { node: '>=12' } d3-contour@4.0.2: - resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==, + } + engines: { node: '>=12' } d3-delaunay@6.0.4: - resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==, + } + engines: { node: '>=12' } d3-dispatch@3.0.1: - resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==, + } + engines: { node: '>=12' } d3-drag@3.0.0: - resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==, + } + engines: { node: '>=12' } d3-dsv@3.0.1: - resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==, + } + engines: { node: '>=12' } hasBin: true d3-ease@3.0.1: - resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==, + } + engines: { node: '>=12' } d3-fetch@3.0.1: - resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==, + } + engines: { node: '>=12' } d3-force@3.0.0: - resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==, + } + engines: { node: '>=12' } d3-format@3.1.0: - resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==, + } + engines: { node: '>=12' } d3-geo@3.1.1: - resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==, + } + engines: { node: '>=12' } d3-hierarchy@3.1.2: - resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==, + } + engines: { node: '>=12' } d3-interpolate@3.0.1: - resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, + } + engines: { node: '>=12' } d3-path@1.0.9: - resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} + resolution: + { + integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==, + } d3-path@3.1.0: - resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==, + } + engines: { node: '>=12' } d3-polygon@3.0.1: - resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==, + } + engines: { node: '>=12' } d3-quadtree@3.0.1: - resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==, + } + engines: { node: '>=12' } d3-random@3.0.1: - resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==, + } + engines: { node: '>=12' } d3-sankey@0.12.3: - resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} + resolution: + { + integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==, + } d3-scale-chromatic@3.1.0: - resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==, + } + engines: { node: '>=12' } d3-scale@4.0.2: - resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==, + } + engines: { node: '>=12' } d3-selection@3.0.0: - resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==, + } + engines: { node: '>=12' } d3-shape@1.3.7: - resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} + resolution: + { + integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==, + } d3-shape@3.2.0: - resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==, + } + engines: { node: '>=12' } d3-time-format@4.1.0: - resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==, + } + engines: { node: '>=12' } d3-time@3.1.0: - resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==, + } + engines: { node: '>=12' } d3-timer@3.0.1: - resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==, + } + engines: { node: '>=12' } d3-transition@3.0.1: - resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==, + } + engines: { node: '>=12' } peerDependencies: d3-selection: 2 - 3 d3-zoom@3.0.0: - resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==, + } + engines: { node: '>=12' } d3@7.9.0: - resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==, + } + engines: { node: '>=12' } dagre-d3-es@7.0.11: - resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} + resolution: + { + integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==, + } dash-get@1.0.2: - resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} + resolution: + { + integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==, + } data-uri-to-buffer@6.0.2: - resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==, + } + engines: { node: '>= 14' } data-urls@5.0.0: - resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==, + } + engines: { node: '>=18' } data-view-buffer@1.0.2: - resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==, + } + engines: { node: '>= 0.4' } data-view-byte-length@1.0.2: - resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==, + } + engines: { node: '>= 0.4' } data-view-byte-offset@1.0.1: - resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, + } + engines: { node: '>= 0.4' } dataloader@2.2.3: - resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} + resolution: + { + integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==, + } date-fns-jalali@4.1.0-0: - resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==} + resolution: + { + integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==, + } date-fns@4.1.0: - resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} + resolution: + { + integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==, + } dateformat@4.6.3: - resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + resolution: + { + integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==, + } dayjs@1.11.13: - resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} + resolution: + { + integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==, + } debounce@2.0.0: - resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==, + } + engines: { node: '>=18' } debounce@2.2.0: - resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==, + } + engines: { node: '>=18' } debug@2.6.9: - resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} + resolution: + { + integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, + } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -8651,8 +12915,11 @@ packages: optional: true debug@4.3.4: - resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, + } + engines: { node: '>=6.0' } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -8660,8 +12927,11 @@ packages: optional: true debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, + } + engines: { node: '>=6.0' } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -8669,8 +12939,11 @@ packages: optional: true debug@4.4.1: - resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==, + } + engines: { node: '>=6.0' } peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -8678,433 +12951,790 @@ packages: optional: true decimal.js@10.6.0: - resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} + resolution: + { + integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==, + } decode-named-character-reference@1.2.0: - resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} + resolution: + { + integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==, + } deep-eql@5.0.2: - resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, + } + engines: { node: '>=6' } deep-extend@0.6.0: - resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, + } + engines: { node: '>=4.0.0' } deep-is@0.1.4: - resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + resolution: + { + integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, + } deepmerge@4.3.1: - resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, + } + engines: { node: '>=0.10.0' } defaults@1.0.4: - resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} + resolution: + { + integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, + } define-data-property@1.1.4: - resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, + } + engines: { node: '>= 0.4' } define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, + } + engines: { node: '>=8' } define-properties@1.2.1: - resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, + } + engines: { node: '>= 0.4' } degenerator@5.0.1: - resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==, + } + engines: { node: '>= 14' } del@5.1.0: - resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==, + } + engines: { node: '>=8' } del@6.1.1: - resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==, + } + engines: { node: '>=10' } delaunator@5.0.1: - resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} + resolution: + { + integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==, + } delayed-stream@1.0.0: - resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, + } + engines: { node: '>=0.4.0' } denque@2.1.0: - resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==, + } + engines: { node: '>=0.10' } dequal@2.0.3: - resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, + } + engines: { node: '>=6' } detect-indent@6.1.0: - resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, + } + engines: { node: '>=8' } detect-libc@2.0.4: - resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==, + } + engines: { node: '>=8' } detect-node-es@1.1.0: - resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} + resolution: + { + integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==, + } devlop@1.1.0: - resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + resolution: + { + integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, + } diacritics@1.3.0: - resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} + resolution: + { + integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==, + } diff-match-patch@1.0.5: - resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} + resolution: + { + integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==, + } diff@4.0.2: - resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} - engines: {node: '>=0.3.1'} + resolution: + { + integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, + } + engines: { node: '>=0.3.1' } dir-glob@3.0.1: - resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, + } + engines: { node: '>=8' } doctrine@3.0.0: - resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, + } + engines: { node: '>=6.0.0' } dom-accessibility-api@0.5.16: - resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} + resolution: + { + integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==, + } dom-accessibility-api@0.6.3: - resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} + resolution: + { + integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==, + } dom-serializer@2.0.0: - resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} + resolution: + { + integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, + } domelementtype@2.3.0: - resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} + resolution: + { + integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, + } domhandler@5.0.3: - resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, + } + engines: { node: '>= 4' } dompurify@3.2.7: - resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} + resolution: + { + integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==, + } domutils@3.2.2: - resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} + resolution: + { + integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==, + } dot-case@2.1.1: - resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} + resolution: + { + integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==, + } dotenv-cli@5.1.0: - resolution: {integrity: sha512-NoEZAlKo9WVrG0b3i9mBxdD6INdDuGqdgR74t68t8084QcI077/1MnPerRW1odl+9uULhcdnQp2U0pYVppKHOA==} + resolution: + { + integrity: sha512-NoEZAlKo9WVrG0b3i9mBxdD6INdDuGqdgR74t68t8084QcI077/1MnPerRW1odl+9uULhcdnQp2U0pYVppKHOA==, + } hasBin: true dotenv-cli@7.4.4: - resolution: {integrity: sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw==} + resolution: + { + integrity: sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw==, + } hasBin: true dotenv-expand@10.0.0: - resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==, + } + engines: { node: '>=12' } dotenv-expand@8.0.3: - resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==, + } + engines: { node: '>=12' } dotenv@16.0.3: - resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==, + } + engines: { node: '>=12' } dotenv@16.6.1: - resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==, + } + engines: { node: '>=12' } dunder-proto@1.0.1: - resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, + } + engines: { node: '>= 0.4' } eastasianwidth@0.2.0: - resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + resolution: + { + integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, + } ecdsa-sig-formatter@1.0.11: - resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} + resolution: + { + integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, + } electron-to-chromium@1.5.207: - resolution: {integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==} + resolution: + { + integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==, + } emoji-regex@8.0.0: - resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} + resolution: + { + integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, + } emoji-regex@9.2.2: - resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} + resolution: + { + integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, + } end-of-stream@1.4.5: - resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} + resolution: + { + integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==, + } engine.io-parser@5.2.3: - resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==, + } + engines: { node: '>=10.0.0' } engine.io@6.6.4: - resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} - engines: {node: '>=10.2.0'} + resolution: + { + integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==, + } + engines: { node: '>=10.2.0' } enhanced-resolve@5.18.3: - resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==, + } + engines: { node: '>=10.13.0' } enquirer@2.4.1: - resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, + } + engines: { node: '>=8.6' } entities@4.5.0: - resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, + } + engines: { node: '>=0.12' } entities@6.0.1: - resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} - engines: {node: '>=0.12'} + resolution: + { + integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==, + } + engines: { node: '>=0.12' } env-paths@2.2.1: - resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, + } + engines: { node: '>=6' } error-ex@1.3.2: - resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} + resolution: + { + integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, + } es-abstract@1.24.0: - resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==, + } + engines: { node: '>= 0.4' } es-define-property@1.0.1: - resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, + } + engines: { node: '>= 0.4' } es-errors@1.3.0: - resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, + } + engines: { node: '>= 0.4' } es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + resolution: + { + integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==, + } es-object-atoms@1.1.1: - resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, + } + engines: { node: '>= 0.4' } es-set-tostringtag@2.1.0: - resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==, + } + engines: { node: '>= 0.4' } es-to-primitive@1.3.0: - resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==, + } + engines: { node: '>= 0.4' } esast-util-from-estree@2.0.0: - resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} + resolution: + { + integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==, + } esast-util-from-js@2.0.1: - resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} + resolution: + { + integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==, + } esbuild-register@3.6.0: - resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} + resolution: + { + integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==, + } peerDependencies: esbuild: '>=0.12 <1' esbuild@0.19.11: - resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==, + } + engines: { node: '>=12' } hasBin: true esbuild@0.25.9: - resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==, + } + engines: { node: '>=18' } hasBin: true escalade@3.2.0: - resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, + } + engines: { node: '>=6' } escape-string-regexp@1.0.5: - resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, + } + engines: { node: '>=0.8.0' } escape-string-regexp@4.0.0: - resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, + } + engines: { node: '>=10' } escape-string-regexp@5.0.0: - resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, + } + engines: { node: '>=12' } escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} + resolution: + { + integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==, + } + engines: { node: '>=6.0' } hasBin: true eslint-scope@5.1.1: - resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, + } + engines: { node: '>=8.0.0' } esm@3.2.25: - resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==, + } + engines: { node: '>=6' } esprima@4.0.1: - resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, + } + engines: { node: '>=4' } hasBin: true esrecurse@4.3.0: - resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, + } + engines: { node: '>=4.0' } estraverse@4.3.0: - resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, + } + engines: { node: '>=4.0' } estraverse@5.3.0: - resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, + } + engines: { node: '>=4.0' } estree-util-attach-comments@3.0.0: - resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} + resolution: + { + integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==, + } estree-util-build-jsx@3.0.1: - resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} + resolution: + { + integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==, + } estree-util-is-identifier-name@2.1.0: - resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} + resolution: + { + integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, + } estree-util-is-identifier-name@3.0.0: - resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + resolution: + { + integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==, + } estree-util-scope@1.0.0: - resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} + resolution: + { + integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==, + } estree-util-to-js@2.0.0: - resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} + resolution: + { + integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==, + } estree-util-value-to-estree@3.4.0: - resolution: {integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==} + resolution: + { + integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==, + } estree-util-visit@2.0.0: - resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} + resolution: + { + integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==, + } estree-walker@1.0.1: - resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} + resolution: + { + integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, + } estree-walker@2.0.2: - resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + resolution: + { + integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, + } estree-walker@3.0.3: - resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} + resolution: + { + integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, + } esutils@2.0.3: - resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, + } + engines: { node: '>=0.10.0' } eta@3.5.0: - resolution: {integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==, + } + engines: { node: '>=6.0.0' } event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, + } + engines: { node: '>=6' } eventemitter3@5.0.1: - resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} + resolution: + { + integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, + } events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} + resolution: + { + integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, + } + engines: { node: '>=0.8.x' } execa@5.1.1: - resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, + } + engines: { node: '>=10' } execa@7.2.0: - resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} - engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, + } + engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, + } + engines: { node: '>=16.17' } exifr@7.1.3: - resolution: {integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==} + resolution: + { + integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==, + } expect-type@1.2.2: - resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==, + } + engines: { node: '>=12.0.0' } exsolve@1.0.7: - resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} + resolution: + { + integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==, + } extend@3.0.2: - resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + resolution: + { + integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, + } external-editor@3.1.0: - resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, + } + engines: { node: '>=4' } extract-pg-schema@5.7.4: - resolution: {integrity: sha512-6xMKNwsKOEIZ5iwqyEDq3KySV9UmOLYTPSetpOUD8cAm7xnIIcb+7P7Hgkc5dcRhA5tcYjGx32FAH0/+kwmLkw==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-6xMKNwsKOEIZ5iwqyEDq3KySV9UmOLYTPSetpOUD8cAm7xnIIcb+7P7Hgkc5dcRhA5tcYjGx32FAH0/+kwmLkw==, + } + engines: { node: '>=16.0.0' } hasBin: true fast-copy@3.0.2: - resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + resolution: + { + integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==, + } fast-copy@4.0.2: - resolution: {integrity: sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==} + resolution: + { + integrity: sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==, + } fast-deep-equal@2.0.1: - resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} + resolution: + { + integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==, + } fast-deep-equal@3.1.3: - resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + resolution: + { + integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, + } fast-fifo@1.3.2: - resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} + resolution: + { + integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, + } fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, + } + engines: { node: '>=8.6.0' } fast-json-stable-stringify@2.1.0: - resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + resolution: + { + integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, + } fast-levenshtein@2.0.6: - resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + resolution: + { + integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, + } fast-redact@3.5.0: - resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==, + } + engines: { node: '>=6' } fast-safe-stringify@2.1.1: - resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + resolution: + { + integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, + } fast-uri@3.0.6: - resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} + resolution: + { + integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==, + } fast-write-atomic@0.2.1: - resolution: {integrity: sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==} + resolution: + { + integrity: sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==, + } fast-xml-parser@5.2.5: - resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + resolution: + { + integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==, + } hasBin: true fastq@1.19.1: - resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} + resolution: + { + integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==, + } fault@2.0.1: - resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} + resolution: + { + integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, + } fdir@6.5.0: - resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, + } + engines: { node: '>=12.0.0' } peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -9112,39 +13742,66 @@ packages: optional: true figures@3.2.0: - resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, + } + engines: { node: '>=8' } filesize@10.1.6: - resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} - engines: {node: '>= 10.4.0'} + resolution: + { + integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==, + } + engines: { node: '>= 10.4.0' } fill-range@7.1.1: - resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, + } + engines: { node: '>=8' } find-cache-dir@3.3.2: - resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==, + } + engines: { node: '>=8' } find-root@1.1.0: - resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} + resolution: + { + integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, + } find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, + } + engines: { node: '>=8' } find-up@5.0.0: - resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, + } + engines: { node: '>=10' } find-up@7.0.0: - resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, + } + engines: { node: '>=18' } follow-redirects@1.15.11: - resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} - engines: {node: '>=4.0'} + resolution: + { + integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==, + } + engines: { node: '>=4.0' } peerDependencies: debug: '*' peerDependenciesMeta: @@ -9152,840 +13809,1518 @@ packages: optional: true for-each@0.3.5: - resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==, + } + engines: { node: '>= 0.4' } foreground-child@3.3.1: - resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==, + } + engines: { node: '>=14' } form-data@4.0.4: - resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==, + } + engines: { node: '>= 6' } format@0.2.2: - resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} - engines: {node: '>=0.4.x'} + resolution: + { + integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, + } + engines: { node: '>=0.4.x' } forwarded-parse@2.1.2: - resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} + resolution: + { + integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==, + } fp-ts@2.16.0: - resolution: {integrity: sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ==} + resolution: + { + integrity: sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ==, + } fraction.js@4.3.7: - resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} + resolution: + { + integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, + } fs-constants@1.0.0: - resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} + resolution: + { + integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, + } fs-extra@10.1.0: - resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, + } + engines: { node: '>=12' } fs-extra@11.1.1: - resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} - engines: {node: '>=14.14'} + resolution: + { + integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, + } + engines: { node: '>=14.14' } fs-extra@9.1.0: - resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, + } + engines: { node: '>=10' } fs-jetpack@5.1.0: - resolution: {integrity: sha512-Xn4fDhLydXkuzepZVsr02jakLlmoARPy+YWIclo4kh0GyNGUHnTqeH/w/qIsVn50dFxtp8otPL2t/HcPJBbxUA==} + resolution: + { + integrity: sha512-Xn4fDhLydXkuzepZVsr02jakLlmoARPy+YWIclo4kh0GyNGUHnTqeH/w/qIsVn50dFxtp8otPL2t/HcPJBbxUA==, + } fs-monkey@1.1.0: - resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} + resolution: + { + integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==, + } fs.realpath@1.0.0: - resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + resolution: + { + integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, + } fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] fsevents@2.3.3: - resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} - engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + resolution: + { + integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, + } + engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } os: [darwin] function-bind@1.1.2: - resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + resolution: + { + integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, + } function.prototype.name@1.1.8: - resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==, + } + engines: { node: '>= 0.4' } functions-have-names@1.2.3: - resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + resolution: + { + integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, + } fuzzy@0.1.3: - resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} - engines: {node: '>= 0.6.0'} + resolution: + { + integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==, + } + engines: { node: '>= 0.6.0' } gaxios@6.7.1: - resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==, + } + engines: { node: '>=14' } gcp-metadata@6.1.1: - resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==, + } + engines: { node: '>=14' } generic-pool@3.9.0: - resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==, + } + engines: { node: '>= 4' } gensync@1.0.0-beta.2: - resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} - engines: {node: '>=6.9.0'} + resolution: + { + integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, + } + engines: { node: '>=6.9.0' } get-caller-file@2.0.5: - resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} - engines: {node: 6.* || 8.* || >= 10.*} + resolution: + { + integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, + } + engines: { node: 6.* || 8.* || >= 10.* } get-intrinsic@1.3.0: - resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, + } + engines: { node: '>= 0.4' } get-nonce@1.0.1: - resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, + } + engines: { node: '>=6' } get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, + } + engines: { node: '>=8.0.0' } get-proto@1.0.1: - resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, + } + engines: { node: '>= 0.4' } get-stream@6.0.1: - resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, + } + engines: { node: '>=10' } get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, + } + engines: { node: '>=16' } get-symbol-description@1.1.0: - resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==, + } + engines: { node: '>= 0.4' } get-tsconfig@4.10.1: - resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} + resolution: + { + integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==, + } get-uri@6.0.5: - resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==, + } + engines: { node: '>= 14' } getopts@2.3.0: - resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} + resolution: + { + integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==, + } github-slugger@2.0.0: - resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} + resolution: + { + integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==, + } glob-base@0.3.0: - resolution: {integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==, + } + engines: { node: '>=0.10.0' } glob-parent@2.0.0: - resolution: {integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==} + resolution: + { + integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==, + } glob-parent@5.1.2: - resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, + } + engines: { node: '>= 6' } glob-to-regexp@0.4.1: - resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} + resolution: + { + integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, + } glob@10.4.5: - resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + resolution: + { + integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, + } hasBin: true glob@10.5.0: - resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + resolution: + { + integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==, + } hasBin: true glob@11.0.3: - resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==, + } + engines: { node: 20 || >=22 } hasBin: true glob@7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + resolution: + { + integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, + } deprecated: Glob versions prior to v9 are no longer supported glob@8.1.0: - resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, + } + engines: { node: '>=12' } deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@9.3.5: - resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==, + } + engines: { node: '>=16 || 14 >=14.17' } global-dirs@3.0.1: - resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==, + } + engines: { node: '>=10' } globals@15.15.0: - resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==, + } + engines: { node: '>=18' } globalthis@1.0.4: - resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, + } + engines: { node: '>= 0.4' } globby@10.0.2: - resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==, + } + engines: { node: '>=8' } globby@11.1.0: - resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, + } + engines: { node: '>=10' } globrex@0.1.2: - resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + resolution: + { + integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, + } google-auth-library@9.15.1: - resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==, + } + engines: { node: '>=14' } google-logging-utils@0.0.2: - resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==, + } + engines: { node: '>=14' } googleapis-common@7.2.0: - resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==, + } + engines: { node: '>=14.0.0' } gopd@1.2.0: - resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, + } + engines: { node: '>= 0.4' } graceful-fs@4.2.11: - resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} + resolution: + { + integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, + } gradient-string@2.0.2: - resolution: {integrity: sha512-rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==, + } + engines: { node: '>=10' } graphile-config@0.0.1-beta.17: - resolution: {integrity: sha512-1fQ7BK0SxhqirCulUYD7Z0P7zCPfR9QT0NciOKJngTOSqEsJxefY9pLf7ml8M+Mrn+wBrTQO5+55ch9K/tKr6A==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-1fQ7BK0SxhqirCulUYD7Z0P7zCPfR9QT0NciOKJngTOSqEsJxefY9pLf7ml8M+Mrn+wBrTQO5+55ch9K/tKr6A==, + } + engines: { node: '>=16' } graphile-worker@0.16.6: - resolution: {integrity: sha512-e7gGYDmGqzju2l83MpzX8vNG/lOtVJiSzI3eZpAFubSxh/cxs7sRrRGBGjzBP1kNG0H+c95etPpNRNlH65PYhw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-e7gGYDmGqzju2l83MpzX8vNG/lOtVJiSzI3eZpAFubSxh/cxs7sRrRGBGjzBP1kNG0H+c95etPpNRNlH65PYhw==, + } + engines: { node: '>=14.0.0' } hasBin: true graphql@16.11.0: - resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} - engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} + resolution: + { + integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==, + } + engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } gtoken@7.1.0: - resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==, + } + engines: { node: '>=14.0.0' } hachure-fill@0.5.2: - resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} + resolution: + { + integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==, + } handlebars@4.7.8: - resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} - engines: {node: '>=0.4.7'} + resolution: + { + integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, + } + engines: { node: '>=0.4.7' } hasBin: true has-bigints@1.1.0: - resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==, + } + engines: { node: '>= 0.4' } has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, + } + engines: { node: '>=4' } has-flag@4.0.0: - resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, + } + engines: { node: '>=8' } has-property-descriptors@1.0.2: - resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + resolution: + { + integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, + } has-proto@1.2.0: - resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==, + } + engines: { node: '>= 0.4' } has-symbols@1.1.0: - resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, + } + engines: { node: '>= 0.4' } has-tostringtag@1.0.2: - resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, + } + engines: { node: '>= 0.4' } hasha@5.2.2: - resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==, + } + engines: { node: '>=8' } hashish@0.0.4: - resolution: {integrity: sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==} + resolution: + { + integrity: sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==, + } hasown@2.0.2: - resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, + } + engines: { node: '>= 0.4' } hast-util-embedded@3.0.0: - resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} + resolution: + { + integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==, + } hast-util-format@1.1.0: - resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} + resolution: + { + integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==, + } hast-util-from-dom@5.0.1: - resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} + resolution: + { + integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==, + } hast-util-from-html-isomorphic@2.0.0: - resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} + resolution: + { + integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==, + } hast-util-from-html@2.0.3: - resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} + resolution: + { + integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==, + } hast-util-from-parse5@8.0.3: - resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} + resolution: + { + integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==, + } hast-util-has-property@3.0.0: - resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} + resolution: + { + integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==, + } hast-util-is-body-ok-link@3.0.1: - resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} + resolution: + { + integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==, + } hast-util-is-element@3.0.0: - resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} + resolution: + { + integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==, + } hast-util-minify-whitespace@1.0.1: - resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} + resolution: + { + integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==, + } hast-util-parse-selector@4.0.0: - resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} + resolution: + { + integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==, + } hast-util-phrasing@3.0.1: - resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} + resolution: + { + integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==, + } hast-util-raw@9.1.0: - resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} + resolution: + { + integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==, + } hast-util-to-estree@3.1.3: - resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} + resolution: + { + integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==, + } hast-util-to-html@9.0.5: - resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} + resolution: + { + integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==, + } hast-util-to-jsx-runtime@2.3.6: - resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} + resolution: + { + integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==, + } hast-util-to-mdast@10.1.2: - resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==} + resolution: + { + integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==, + } hast-util-to-nlcst@4.0.0: - resolution: {integrity: sha512-+YxIJMLJe+2AEhJeJHXZu1VuhApzjD9dLlWOLTS9kUusHfxKsyqRSnSF/YEu4h0uvzwSC0wPqFwIb9GSnK/chQ==} + resolution: + { + integrity: sha512-+YxIJMLJe+2AEhJeJHXZu1VuhApzjD9dLlWOLTS9kUusHfxKsyqRSnSF/YEu4h0uvzwSC0wPqFwIb9GSnK/chQ==, + } hast-util-to-parse5@8.0.0: - resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} + resolution: + { + integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==, + } hast-util-to-string@2.0.0: - resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} + resolution: + { + integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==, + } hast-util-to-string@3.0.1: - resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} + resolution: + { + integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==, + } hast-util-to-text@4.0.2: - resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} + resolution: + { + integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==, + } hast-util-whitespace@3.0.0: - resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + resolution: + { + integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, + } hastscript@9.0.1: - resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} + resolution: + { + integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==, + } header-case@1.0.1: - resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} + resolution: + { + integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==, + } headers-polyfill@4.0.3: - resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} + resolution: + { + integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==, + } help-me@5.0.0: - resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + resolution: + { + integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==, + } hoist-non-react-statics@3.3.2: - resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} + resolution: + { + integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, + } hono@4.9.7: - resolution: {integrity: sha512-t4Te6ERzIaC48W3x4hJmBwgNlLhmiEdEE5ViYb02ffw4ignHNHa5IBtPjmbKstmtKa8X6C35iWwK4HaqvrzG9w==} - engines: {node: '>=16.9.0'} + resolution: + { + integrity: sha512-t4Te6ERzIaC48W3x4hJmBwgNlLhmiEdEE5ViYb02ffw4ignHNHa5IBtPjmbKstmtKa8X6C35iWwK4HaqvrzG9w==, + } + engines: { node: '>=16.9.0' } hosted-git-info@2.8.9: - resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} + resolution: + { + integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, + } html-encoding-sniffer@4.0.0: - resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==, + } + engines: { node: '>=18' } html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + resolution: + { + integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, + } html-to-text@9.0.5: - resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==, + } + engines: { node: '>=14' } html-url-attributes@3.0.1: - resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} + resolution: + { + integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==, + } html-void-elements@3.0.0: - resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} + resolution: + { + integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, + } html-whitespace-sensitive-tag-names@3.0.1: - resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} + resolution: + { + integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==, + } html@1.0.0: - resolution: {integrity: sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==} + resolution: + { + integrity: sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==, + } hasBin: true htmlparser2@8.0.2: - resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} + resolution: + { + integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, + } http-proxy-agent@7.0.0: - resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==, + } + engines: { node: '>= 14' } http-proxy-agent@7.0.2: - resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, + } + engines: { node: '>= 14' } https-proxy-agent@5.0.1: - resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, + } + engines: { node: '>= 6' } https-proxy-agent@7.0.0: - resolution: {integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==, + } + engines: { node: '>= 14' } https-proxy-agent@7.0.6: - resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, + } + engines: { node: '>= 14' } human-signals@2.1.0: - resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} - engines: {node: '>=10.17.0'} + resolution: + { + integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, + } + engines: { node: '>=10.17.0' } human-signals@4.3.1: - resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} - engines: {node: '>=14.18.0'} + resolution: + { + integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, + } + engines: { node: '>=14.18.0' } human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} + resolution: + { + integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, + } + engines: { node: '>=16.17.0' } husky@8.0.3: - resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, + } + engines: { node: '>=14' } hasBin: true iconv-lite@0.4.24: - resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, + } + engines: { node: '>=0.10.0' } iconv-lite@0.6.3: - resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, + } + engines: { node: '>=0.10.0' } ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + resolution: + { + integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, + } ignore-walk@3.0.4: - resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} + resolution: + { + integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==, + } ignore-walk@5.0.1: - resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { + integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } ignore@5.3.2: - resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, + } + engines: { node: '>= 4' } image-size@2.0.2: - resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} - engines: {node: '>=16.x'} + resolution: + { + integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==, + } + engines: { node: '>=16.x' } hasBin: true import-fresh@3.3.1: - resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, + } + engines: { node: '>=6' } import-in-the-middle@1.14.2: - resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} + resolution: + { + integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==, + } indent-string@4.0.0: - resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, + } + engines: { node: '>=8' } inflight@1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + resolution: + { + integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, + } deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + resolution: + { + integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, + } ini@1.3.8: - resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} + resolution: + { + integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, + } ini@2.0.0: - resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==, + } + engines: { node: '>=10' } inline-style-parser@0.2.4: - resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} + resolution: + { + integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==, + } inquirer@7.3.3: - resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==, + } + engines: { node: '>=8.0.0' } inquirer@8.2.7: - resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==, + } + engines: { node: '>=12.0.0' } install@0.13.0: - resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==, + } + engines: { node: '>= 0.10' } internal-slot@1.1.0: - resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==, + } + engines: { node: '>= 0.4' } internmap@1.0.1: - resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} + resolution: + { + integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==, + } internmap@2.0.3: - resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==, + } + engines: { node: '>=12' } interpret@2.2.0: - resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} - engines: {node: '>= 0.10'} + resolution: + { + integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==, + } + engines: { node: '>= 0.10' } interpret@3.1.1: - resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==, + } + engines: { node: '>=10.13.0' } ioredis@5.7.0: - resolution: {integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==} - engines: {node: '>=12.22.0'} + resolution: + { + integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==, + } + engines: { node: '>=12.22.0' } ip-address@10.0.1: - resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==, + } + engines: { node: '>= 12' } is-alphabetical@2.0.1: - resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + resolution: + { + integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, + } is-alphanumerical@2.0.1: - resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + resolution: + { + integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, + } is-array-buffer@3.0.5: - resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==, + } + engines: { node: '>= 0.4' } is-arrayish@0.2.1: - resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} + resolution: + { + integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, + } is-arrayish@0.3.2: - resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + resolution: + { + integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, + } is-async-function@2.1.1: - resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==, + } + engines: { node: '>= 0.4' } is-bigint@1.1.0: - resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==, + } + engines: { node: '>= 0.4' } is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, + } + engines: { node: '>=8' } is-boolean-object@1.2.2: - resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==, + } + engines: { node: '>= 0.4' } is-callable@1.2.7: - resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, + } + engines: { node: '>= 0.4' } is-core-module@2.16.1: - resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==, + } + engines: { node: '>= 0.4' } is-data-view@1.0.2: - resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==, + } + engines: { node: '>= 0.4' } is-date-object@1.1.0: - resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==, + } + engines: { node: '>= 0.4' } is-decimal@2.0.1: - resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + resolution: + { + integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, + } is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, + } + engines: { node: '>=8' } hasBin: true is-docker@3.0.0: - resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } hasBin: true is-dotfile@1.0.3: - resolution: {integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==, + } + engines: { node: '>=0.10.0' } is-extendable@1.0.1: - resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==, + } + engines: { node: '>=0.10.0' } is-extglob@1.0.0: - resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==, + } + engines: { node: '>=0.10.0' } is-extglob@2.1.1: - resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, + } + engines: { node: '>=0.10.0' } is-finalizationregistry@1.1.1: - resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==, + } + engines: { node: '>= 0.4' } is-fullwidth-code-point@3.0.0: - resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, + } + engines: { node: '>=8' } is-fullwidth-code-point@4.0.0: - resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, + } + engines: { node: '>=12' } is-generator-function@1.1.0: - resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==, + } + engines: { node: '>= 0.4' } is-glob@2.0.1: - resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==, + } + engines: { node: '>=0.10.0' } is-glob@4.0.3: - resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, + } + engines: { node: '>=0.10.0' } is-hexadecimal@2.0.1: - resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + resolution: + { + integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, + } is-inside-container@1.0.0: - resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, + } + engines: { node: '>=14.16' } hasBin: true is-interactive@1.0.0: - resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, + } + engines: { node: '>=8' } is-lower-case@1.1.3: - resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} + resolution: + { + integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==, + } is-map@2.0.3: - resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, + } + engines: { node: '>= 0.4' } is-mobile@4.0.0: - resolution: {integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==} + resolution: + { + integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==, + } is-module@1.0.0: - resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} + resolution: + { + integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, + } is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, + } + engines: { node: '>= 0.4' } is-network-error@1.1.0: - resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==, + } + engines: { node: '>=16' } is-node-process@1.2.0: - resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} + resolution: + { + integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==, + } is-number-object@1.1.1: - resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==, + } + engines: { node: '>= 0.4' } is-number@7.0.0: - resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, + } + engines: { node: '>=0.12.0' } is-path-cwd@2.2.0: - resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==, + } + engines: { node: '>=6' } is-path-inside@3.0.3: - resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, + } + engines: { node: '>=8' } is-plain-obj@4.1.0: - resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, + } + engines: { node: '>=12' } is-plain-object@2.0.4: - resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, + } + engines: { node: '>=0.10.0' } is-port-reachable@4.0.0: - resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} + resolution: + { + integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, + } is-reference@1.2.1: - resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} + resolution: + { + integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, + } is-regex@1.2.1: - resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==, + } + engines: { node: '>= 0.4' } is-set@2.0.3: - resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, + } + engines: { node: '>= 0.4' } is-shared-array-buffer@1.0.4: - resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==, + } + engines: { node: '>= 0.4' } is-stream@2.0.1: - resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, + } + engines: { node: '>=8' } is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } is-string@1.1.1: - resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==, + } + engines: { node: '>= 0.4' } is-symbol@1.1.1: - resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==, + } + engines: { node: '>= 0.4' } is-typed-array@1.1.15: - resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, + } + engines: { node: '>= 0.4' } is-unicode-supported@0.1.0: - resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, + } + engines: { node: '>=10' } is-upper-case@1.1.2: - resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==} + resolution: + { + integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==, + } is-weakmap@2.0.2: - resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, + } + engines: { node: '>= 0.4' } is-weakref@1.1.1: - resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==, + } + engines: { node: '>= 0.4' } is-weakset@2.0.4: - resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==, + } + engines: { node: '>= 0.4' } is-windows@1.0.2: - resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, + } + engines: { node: '>=0.10.0' } is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, + } + engines: { node: '>=8' } is-wsl@3.1.0: - resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, + } + engines: { node: '>=16' } is64bit@2.0.0: - resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==, + } + engines: { node: '>=18' } isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} + resolution: + { + integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, + } isarray@2.0.5: - resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} + resolution: + { + integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, + } isbinaryfile@4.0.10: - resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} - engines: {node: '>= 8.0.0'} + resolution: + { + integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==, + } + engines: { node: '>= 8.0.0' } isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + resolution: + { + integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, + } isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, + } + engines: { node: '>=0.10.0' } isomorphic.js@0.2.5: - resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} + resolution: + { + integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==, + } istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, + } + engines: { node: '>=8' } istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, + } + engines: { node: '>=10' } istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==, + } + engines: { node: '>=10' } istanbul-reports@3.2.0: - resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==, + } + engines: { node: '>=8' } itty-router@5.0.22: - resolution: {integrity: sha512-9hmdGErWdYDOurGYxSbqLhy4EFReIwk71hMZTJ5b+zfa2zjMNV1ftFno2b8VjAQvX615gNB8Qxbl9JMRqHnIVA==} + resolution: + { + integrity: sha512-9hmdGErWdYDOurGYxSbqLhy4EFReIwk71hMZTJ5b+zfa2zjMNV1ftFno2b8VjAQvX615gNB8Qxbl9JMRqHnIVA==, + } jackspeak@3.4.3: - resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} + resolution: + { + integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, + } jackspeak@4.1.1: - resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==, + } + engines: { node: 20 || >=22 } jest-worker@26.6.2: - resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==, + } + engines: { node: '>= 10.13.0' } jest-worker@27.5.1: - resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, + } + engines: { node: '>= 10.13.0' } jiti@2.5.1: - resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} + resolution: + { + integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==, + } hasBin: true jiti@2.6.1: - resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} + resolution: + { + integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==, + } hasBin: true jotai@1.13.1: - resolution: {integrity: sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw==} - engines: {node: '>=12.20.0'} + resolution: + { + integrity: sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw==, + } + engines: { node: '>=12.20.0' } peerDependencies: '@babel/core': '*' '@babel/template': '*' @@ -10024,22 +15359,37 @@ packages: optional: true joycon@3.1.1: - resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, + } + engines: { node: '>=10' } js-tokens@4.0.0: - resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} + resolution: + { + integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, + } js-tokens@9.0.1: - resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + resolution: + { + integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, + } js-yaml@4.1.0: - resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} + resolution: + { + integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, + } hasBin: true jsdom@25.0.1: - resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==, + } + engines: { node: '>=18' } peerDependencies: canvas: ^2.11.2 peerDependenciesMeta: @@ -10047,105 +15397,183 @@ packages: optional: true jsep@1.4.0: - resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} - engines: {node: '>= 10.16.0'} + resolution: + { + integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==, + } + engines: { node: '>= 10.16.0' } jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, + } + engines: { node: '>=6' } hasBin: true jsesc@3.1.0: - resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==, + } + engines: { node: '>=6' } hasBin: true json-bigint@1.0.0: - resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} + resolution: + { + integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, + } json-parse-even-better-errors@2.3.1: - resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} + resolution: + { + integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, + } json-schema-traverse@0.4.1: - resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + resolution: + { + integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, + } json-schema-traverse@1.0.0: - resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} + resolution: + { + integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, + } json5@2.2.3: - resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, + } + engines: { node: '>=6' } hasBin: true jsonata@2.1.0: - resolution: {integrity: sha512-OCzaRMK8HobtX8fp37uIVmL8CY1IGc/a6gLsDqz3quExFR09/U78HUzWYr7T31UEB6+Eu0/8dkVD5fFDOl9a8w==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-OCzaRMK8HobtX8fp37uIVmL8CY1IGc/a6gLsDqz3quExFR09/U78HUzWYr7T31UEB6+Eu0/8dkVD5fFDOl9a8w==, + } + engines: { node: '>= 8' } jsondiffpatch@0.4.1: - resolution: {integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==} - engines: {node: '>=8.17.0'} + resolution: + { + integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==, + } + engines: { node: '>=8.17.0' } hasBin: true bundledDependencies: [] jsonfile@6.2.0: - resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} + resolution: + { + integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==, + } jsonpath-plus@10.3.0: - resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==, + } + engines: { node: '>=18.0.0' } hasBin: true jsonwebtoken@9.0.2: - resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} - engines: {node: '>=12', npm: '>=6'} + resolution: + { + integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==, + } + engines: { node: '>=12', npm: '>=6' } jwa@1.4.2: - resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} + resolution: + { + integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==, + } jwa@2.0.1: - resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} + resolution: + { + integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==, + } jws@3.2.2: - resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} + resolution: + { + integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, + } jws@4.0.0: - resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} + resolution: + { + integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==, + } kanel-kysely@0.4.0: - resolution: {integrity: sha512-kPvF7Miw9PzIH6I71sQPTqKHQUCKa22G7OlJrFODvDAyr5abih9a5GZNaKif3iSorz/GfEQVc1W4TEnVws2xJw==} + resolution: + { + integrity: sha512-kPvF7Miw9PzIH6I71sQPTqKHQUCKa22G7OlJrFODvDAyr5abih9a5GZNaKif3iSorz/GfEQVc1W4TEnVws2xJw==, + } kanel-zod@1.5.2: - resolution: {integrity: sha512-XDbuTLIsyppKnRDesT8W84qmGOa3Klif5sHeZh+5RUONyDESY8r0Gu8bsRQ7wgChIaZIHvPTsqbVgSqZtlC5zg==} + resolution: + { + integrity: sha512-XDbuTLIsyppKnRDesT8W84qmGOa3Klif5sHeZh+5RUONyDESY8r0Gu8bsRQ7wgChIaZIHvPTsqbVgSqZtlC5zg==, + } kanel@3.14.4: - resolution: {integrity: sha512-yUs537wd8W2DBjbxExHJqWMP4tkmEQgsE5hUHlC3ACuN+pfeszMJpFmbUVpDKgwVeLj0V6ZvFtwoYp8/xsoQOg==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-yUs537wd8W2DBjbxExHJqWMP4tkmEQgsE5hUHlC3ACuN+pfeszMJpFmbUVpDKgwVeLj0V6ZvFtwoYp8/xsoQOg==, + } + engines: { node: '>=16.0.0' } hasBin: true katex@0.16.22: - resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} + resolution: + { + integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==, + } hasBin: true khroma@2.1.0: - resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} + resolution: + { + integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==, + } kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, + } + engines: { node: '>=6' } kleur@4.1.5: - resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, + } + engines: { node: '>=6' } knex-pglite@0.12.0: - resolution: {integrity: sha512-EsTpIJ8D1SaFm5sVNqKf+Q57bnPGVEpVWwZXXxGrzDyIwtHOwAnd59dY8izkR/nJt8OFrLHMudqaPKfXajOHsA==} + resolution: + { + integrity: sha512-EsTpIJ8D1SaFm5sVNqKf+Q57bnPGVEpVWwZXXxGrzDyIwtHOwAnd59dY8izkR/nJt8OFrLHMudqaPKfXajOHsA==, + } peerDependencies: '@electric-sql/pglite': 0.x knex: 3.x knex@3.1.0: - resolution: {integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==, + } + engines: { node: '>=16' } hasBin: true peerDependencies: better-sqlite3: '*' @@ -10172,193 +15600,307 @@ packages: optional: true kolorist@1.8.0: - resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} + resolution: + { + integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, + } kysely@0.27.6: - resolution: {integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==, + } + engines: { node: '>=14.0.0' } langium@3.3.1: - resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==, + } + engines: { node: '>=16.0.0' } layout-base@1.0.2: - resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} + resolution: + { + integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==, + } layout-base@2.0.1: - resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} + resolution: + { + integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==, + } lazystream@1.0.1: - resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} - engines: {node: '>= 0.6.3'} + resolution: + { + integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, + } + engines: { node: '>= 0.6.3' } leac@0.6.0: - resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} + resolution: + { + integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, + } levn@0.4.1: - resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, + } + engines: { node: '>= 0.8.0' } lexical@0.23.1: - resolution: {integrity: sha512-iuS72HcAYUemsCRQCm4XZzkGhZb8a9KagW+ee2TFfkkf9f3ZpUYSrobMpjYVZRkgMOx7Zk5VCPMxm1nouJTfnQ==} + resolution: + { + integrity: sha512-iuS72HcAYUemsCRQCm4XZzkGhZb8a9KagW+ee2TFfkkf9f3ZpUYSrobMpjYVZRkgMOx7Zk5VCPMxm1nouJTfnQ==, + } lib0@0.2.114: - resolution: {integrity: sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==, + } + engines: { node: '>=16' } hasBin: true lightningcss-android-arm64@1.30.2: - resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [android] lightningcss-darwin-arm64@1.30.1: - resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [darwin] lightningcss-darwin-arm64@1.30.2: - resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.30.1: - resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [darwin] lightningcss-darwin-x64@1.30.2: - resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.30.1: - resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [freebsd] lightningcss-freebsd-x64@1.30.2: - resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [freebsd] lightningcss-linux-arm-gnueabihf@1.30.1: - resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==, + } + engines: { node: '>= 12.0.0' } cpu: [arm] os: [linux] lightningcss-linux-arm-gnueabihf@1.30.2: - resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==, + } + engines: { node: '>= 12.0.0' } cpu: [arm] os: [linux] lightningcss-linux-arm64-gnu@1.30.1: - resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [linux] lightningcss-linux-arm64-gnu@1.30.2: - resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [linux] lightningcss-linux-arm64-musl@1.30.1: - resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [linux] lightningcss-linux-arm64-musl@1.30.2: - resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [linux] lightningcss-linux-x64-gnu@1.30.1: - resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [linux] lightningcss-linux-x64-gnu@1.30.2: - resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [linux] lightningcss-linux-x64-musl@1.30.1: - resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [linux] lightningcss-linux-x64-musl@1.30.2: - resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [linux] lightningcss-win32-arm64-msvc@1.30.1: - resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [win32] lightningcss-win32-arm64-msvc@1.30.2: - resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==, + } + engines: { node: '>= 12.0.0' } cpu: [arm64] os: [win32] lightningcss-win32-x64-msvc@1.30.1: - resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [win32] lightningcss-win32-x64-msvc@1.30.2: - resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==, + } + engines: { node: '>= 12.0.0' } cpu: [x64] os: [win32] lightningcss@1.30.1: - resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==, + } + engines: { node: '>= 12.0.0' } lightningcss@1.30.2: - resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==, + } + engines: { node: '>= 12.0.0' } lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, + } + engines: { node: '>=10' } lines-and-columns@1.2.4: - resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} + resolution: + { + integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, + } linkify-it@5.0.0: - resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} + resolution: + { + integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==, + } lint-staged@13.3.0: - resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} - engines: {node: ^16.14.0 || >=18.0.0} + resolution: + { + integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==, + } + engines: { node: ^16.14.0 || >=18.0.0 } hasBin: true listr2@6.6.1: - resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==, + } + engines: { node: '>=16.0.0' } peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: @@ -10366,539 +15908,1016 @@ packages: optional: true little-state-machine@4.8.1: - resolution: {integrity: sha512-liPHqaWMQ7rzZryQUDnbZ1Gclnnai3dIyaJ0nAgwZRXMzqbYrydrlCI0NDojRUbE5VYh5vu6hygEUZiH77nQkQ==} + resolution: + { + integrity: sha512-liPHqaWMQ7rzZryQUDnbZ1Gclnnai3dIyaJ0nAgwZRXMzqbYrydrlCI0NDojRUbE5VYh5vu6hygEUZiH77nQkQ==, + } peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 loader-runner@4.3.0: - resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} - engines: {node: '>=6.11.5'} + resolution: + { + integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, + } + engines: { node: '>=6.11.5' } local-pkg@1.1.2: - resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==, + } + engines: { node: '>=14' } locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, + } + engines: { node: '>=8' } locate-path@6.0.0: - resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, + } + engines: { node: '>=10' } locate-path@7.2.0: - resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } lodash-es@4.17.21: - resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + resolution: + { + integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, + } lodash.camelcase@4.3.0: - resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} + resolution: + { + integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, + } lodash.castarray@4.4.0: - resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} + resolution: + { + integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==, + } lodash.curry@4.1.1: - resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} + resolution: + { + integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==, + } lodash.debounce@4.0.8: - resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} + resolution: + { + integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, + } lodash.defaults@4.2.0: - resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} + resolution: + { + integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, + } lodash.difference@4.5.0: - resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} + resolution: + { + integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==, + } lodash.flatten@4.4.0: - resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} + resolution: + { + integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==, + } lodash.get@4.4.2: - resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} + resolution: + { + integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, + } deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. lodash.includes@4.3.0: - resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} + resolution: + { + integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==, + } lodash.isarguments@3.1.0: - resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} + resolution: + { + integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==, + } lodash.isboolean@3.0.3: - resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} + resolution: + { + integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, + } lodash.isequalwith@4.4.0: - resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} + resolution: + { + integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==, + } lodash.isinteger@4.0.4: - resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} + resolution: + { + integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==, + } lodash.isnumber@3.0.3: - resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} + resolution: + { + integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==, + } lodash.isplainobject@4.0.6: - resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} + resolution: + { + integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, + } lodash.isstring@4.0.1: - resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} + resolution: + { + integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==, + } lodash.merge@4.6.2: - resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + resolution: + { + integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, + } lodash.once@4.1.1: - resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} + resolution: + { + integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==, + } lodash.partition@4.6.0: - resolution: {integrity: sha512-35L3dSF3Q6V1w5j6V3NhNlQjzsRDC/pYKCTdYTmwqSib+Q8ponkAmt/PwEOq3EmI38DSCl+SkIVwLd+uSlVdrg==} + resolution: + { + integrity: sha512-35L3dSF3Q6V1w5j6V3NhNlQjzsRDC/pYKCTdYTmwqSib+Q8ponkAmt/PwEOq3EmI38DSCl+SkIVwLd+uSlVdrg==, + } lodash.union@4.6.0: - resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} + resolution: + { + integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==, + } lodash@4.17.21: - resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} + resolution: + { + integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, + } log-symbols@3.0.0: - resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==, + } + engines: { node: '>=8' } log-symbols@4.1.0: - resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, + } + engines: { node: '>=10' } log-update@5.0.1: - resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } long@5.3.2: - resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} + resolution: + { + integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==, + } longest-streak@3.1.0: - resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + resolution: + { + integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, + } loose-envify@1.4.0: - resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + resolution: + { + integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, + } hasBin: true loupe@3.2.0: - resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} + resolution: + { + integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==, + } lower-case-first@1.0.2: - resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} + resolution: + { + integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==, + } lower-case@1.1.4: - resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} + resolution: + { + integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==, + } lru-cache@10.4.3: - resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} + resolution: + { + integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, + } lru-cache@11.1.0: - resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==, + } + engines: { node: 20 || >=22 } lru-cache@5.1.1: - resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} + resolution: + { + integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, + } lru-cache@7.18.3: - resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, + } + engines: { node: '>=12' } lucia@3.2.2: - resolution: {integrity: sha512-P1FlFBGCMPMXu+EGdVD9W4Mjm0DqsusmKgO7Xc33mI5X1bklmsQb0hfzPhXomQr9waWIBDsiOjvr1e6BTaUqpA==} + resolution: + { + integrity: sha512-P1FlFBGCMPMXu+EGdVD9W4Mjm0DqsusmKgO7Xc33mI5X1bklmsQb0hfzPhXomQr9waWIBDsiOjvr1e6BTaUqpA==, + } deprecated: This package has been deprecated. Please see https://lucia-auth.com/lucia-v3/migrate. lucide-react@0.469.0: - resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} + resolution: + { + integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==, + } peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 lz-string@1.5.0: - resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} + resolution: + { + integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, + } hasBin: true magic-string@0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + resolution: + { + integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, + } magic-string@0.30.17: - resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} + resolution: + { + integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, + } magic-string@0.30.21: - resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + resolution: + { + integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, + } magic-string@0.30.8: - resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==, + } + engines: { node: '>=12' } magicast@0.3.5: - resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} + resolution: + { + integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==, + } make-dir@3.1.0: - resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, + } + engines: { node: '>=8' } make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, + } + engines: { node: '>=10' } make-error@1.3.6: - resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} + resolution: + { + integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, + } markdown-extensions@2.0.0: - resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==, + } + engines: { node: '>=16' } markdown-it@14.1.0: - resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} + resolution: + { + integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==, + } hasBin: true markdown-table@3.0.4: - resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} + resolution: + { + integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==, + } marked@14.0.0: - resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} - engines: {node: '>= 18'} + resolution: + { + integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==, + } + engines: { node: '>= 18' } hasBin: true marked@16.2.0: - resolution: {integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==} - engines: {node: '>= 20'} + resolution: + { + integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==, + } + engines: { node: '>= 20' } hasBin: true marked@7.0.4: - resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} - engines: {node: '>= 16'} + resolution: + { + integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==, + } + engines: { node: '>= 16' } hasBin: true math-intrinsics@1.1.0: - resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, + } + engines: { node: '>= 0.4' } mathjax-full@3.2.2: - resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==} + resolution: + { + integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==, + } deprecated: Version 4 replaces this package with the scoped package @mathjax/src md-to-react-email@5.0.5: - resolution: {integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==} + resolution: + { + integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==, + } peerDependencies: react: ^18.0 || ^19.0 mdast-util-directive@3.1.0: - resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} + resolution: + { + integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==, + } mdast-util-find-and-replace@3.0.2: - resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} + resolution: + { + integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==, + } mdast-util-from-markdown@2.0.2: - resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} + resolution: + { + integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==, + } mdast-util-frontmatter@2.0.1: - resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} + resolution: + { + integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==, + } mdast-util-gfm-autolink-literal@2.0.1: - resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} + resolution: + { + integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==, + } mdast-util-gfm-footnote@2.1.0: - resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} + resolution: + { + integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==, + } mdast-util-gfm-strikethrough@2.0.0: - resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} + resolution: + { + integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==, + } mdast-util-gfm-table@2.0.0: - resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} + resolution: + { + integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==, + } mdast-util-gfm-task-list-item@2.0.0: - resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} + resolution: + { + integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==, + } mdast-util-gfm@3.1.0: - resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} + resolution: + { + integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==, + } mdast-util-math@3.0.0: - resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} + resolution: + { + integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==, + } mdast-util-mdx-expression@2.0.1: - resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} + resolution: + { + integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==, + } mdast-util-mdx-jsx@3.2.0: - resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} + resolution: + { + integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==, + } mdast-util-mdx@3.0.0: - resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} + resolution: + { + integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==, + } mdast-util-mdxjs-esm@2.0.1: - resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + resolution: + { + integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==, + } mdast-util-phrasing@4.1.0: - resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + resolution: + { + integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==, + } mdast-util-to-hast@13.2.0: - resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + resolution: + { + integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==, + } mdast-util-to-markdown@2.1.2: - resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} + resolution: + { + integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==, + } mdast-util-to-string@4.0.0: - resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + resolution: + { + integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==, + } mdurl@2.0.0: - resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} + resolution: + { + integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==, + } memfs-browser@3.5.10302: - resolution: {integrity: sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==} + resolution: + { + integrity: sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==, + } memfs@3.5.3: - resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, + } + engines: { node: '>= 4.0.0' } merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} + resolution: + { + integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, + } merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, + } + engines: { node: '>= 8' } mermaid@11.10.0: - resolution: {integrity: sha512-oQsFzPBy9xlpnGxUqLbVY8pvknLlsNIJ0NWwi8SUJjhbP1IT0E0o1lfhU4iYV3ubpy+xkzkaOyDUQMn06vQElQ==} + resolution: + { + integrity: sha512-oQsFzPBy9xlpnGxUqLbVY8pvknLlsNIJ0NWwi8SUJjhbP1IT0E0o1lfhU4iYV3ubpy+xkzkaOyDUQMn06vQElQ==, + } mhchemparser@4.2.1: - resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} + resolution: + { + integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==, + } micromark-core-commonmark@2.0.3: - resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} + resolution: + { + integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==, + } micromark-extension-directive@3.0.2: - resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} + resolution: + { + integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==, + } micromark-extension-frontmatter@2.0.0: - resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} + resolution: + { + integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==, + } micromark-extension-gfm-autolink-literal@2.1.0: - resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} + resolution: + { + integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==, + } micromark-extension-gfm-footnote@2.1.0: - resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} + resolution: + { + integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==, + } micromark-extension-gfm-strikethrough@2.1.0: - resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} + resolution: + { + integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==, + } micromark-extension-gfm-table@2.1.1: - resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} + resolution: + { + integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==, + } micromark-extension-gfm-tagfilter@2.0.0: - resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} + resolution: + { + integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==, + } micromark-extension-gfm-task-list-item@2.1.0: - resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} + resolution: + { + integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==, + } micromark-extension-gfm@3.0.0: - resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} + resolution: + { + integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==, + } micromark-extension-math@3.1.0: - resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} + resolution: + { + integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==, + } micromark-extension-mdx-expression@3.0.1: - resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} + resolution: + { + integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==, + } micromark-extension-mdx-jsx@3.0.2: - resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} + resolution: + { + integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==, + } micromark-extension-mdx-md@2.0.0: - resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} + resolution: + { + integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==, + } micromark-extension-mdxjs-esm@3.0.0: - resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} + resolution: + { + integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==, + } micromark-extension-mdxjs@3.0.0: - resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} + resolution: + { + integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==, + } micromark-factory-destination@2.0.1: - resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} + resolution: + { + integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==, + } micromark-factory-label@2.0.1: - resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} + resolution: + { + integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==, + } micromark-factory-mdx-expression@2.0.3: - resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} + resolution: + { + integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==, + } micromark-factory-space@2.0.1: - resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} + resolution: + { + integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==, + } micromark-factory-title@2.0.1: - resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} + resolution: + { + integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==, + } micromark-factory-whitespace@2.0.1: - resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} + resolution: + { + integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==, + } micromark-util-character@2.1.1: - resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} + resolution: + { + integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==, + } micromark-util-chunked@2.0.1: - resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} + resolution: + { + integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==, + } micromark-util-classify-character@2.0.1: - resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} + resolution: + { + integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==, + } micromark-util-combine-extensions@2.0.1: - resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} + resolution: + { + integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==, + } micromark-util-decode-numeric-character-reference@2.0.2: - resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} + resolution: + { + integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==, + } micromark-util-decode-string@2.0.1: - resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} + resolution: + { + integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==, + } micromark-util-encode@2.0.1: - resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} + resolution: + { + integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==, + } micromark-util-events-to-acorn@2.0.3: - resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} + resolution: + { + integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==, + } micromark-util-html-tag-name@2.0.1: - resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} + resolution: + { + integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==, + } micromark-util-normalize-identifier@2.0.1: - resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} + resolution: + { + integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==, + } micromark-util-resolve-all@2.0.1: - resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} + resolution: + { + integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==, + } micromark-util-sanitize-uri@2.0.1: - resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} + resolution: + { + integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==, + } micromark-util-subtokenize@2.1.0: - resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} + resolution: + { + integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==, + } micromark-util-symbol@2.0.1: - resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} + resolution: + { + integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==, + } micromark-util-types@2.0.2: - resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} + resolution: + { + integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==, + } micromark@4.0.2: - resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} + resolution: + { + integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==, + } micromatch@4.0.5: - resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, + } + engines: { node: '>=8.6' } micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, + } + engines: { node: '>=8.6' } mime-db@1.33.0: - resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==, + } + engines: { node: '>= 0.6' } mime-db@1.52.0: - resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, + } + engines: { node: '>= 0.6' } mime-db@1.54.0: - resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==, + } + engines: { node: '>= 0.6' } mime-match@1.0.2: - resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} + resolution: + { + integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==, + } mime-types@2.1.18: - resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==, + } + engines: { node: '>= 0.6' } mime-types@2.1.35: - resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, + } + engines: { node: '>= 0.6' } mimic-fn@2.1.0: - resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, + } + engines: { node: '>=6' } mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, + } + engines: { node: '>=12' } min-indent@1.0.1: - resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, + } + engines: { node: '>=4' } mini-svg-data-uri@1.4.4: - resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} + resolution: + { + integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==, + } hasBin: true minimatch@10.0.3: - resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==, + } + engines: { node: 20 || >=22 } minimatch@3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + resolution: + { + integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, + } minimatch@5.1.6: - resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, + } + engines: { node: '>=10' } minimatch@8.0.4: - resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==, + } + engines: { node: '>=16 || 14 >=14.17' } minimatch@9.0.5: - resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, + } + engines: { node: '>=16 || 14 >=14.17' } minimist@1.2.8: - resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} + resolution: + { + integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, + } minipass@4.2.8: - resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==, + } + engines: { node: '>=8' } minipass@7.1.2: - resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} - engines: {node: '>=16 || 14 >=14.17'} + resolution: + { + integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, + } + engines: { node: '>=16 || 14 >=14.17' } minizlib@3.0.2: - resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} - engines: {node: '>= 18'} + resolution: + { + integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==, + } + engines: { node: '>= 18' } mitt@3.0.1: - resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} + resolution: + { + integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, + } mj-context-menu@0.6.1: - resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} + resolution: + { + integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==, + } mkdirp@0.5.6: - resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} + resolution: + { + integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, + } hasBin: true mkdirp@3.0.1: - resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==, + } + engines: { node: '>=10' } hasBin: true mlly@1.7.4: - resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} + resolution: + { + integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==, + } module-alias@2.2.3: - resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} + resolution: + { + integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==, + } module-details-from-path@1.0.4: - resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} + resolution: + { + integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==, + } monaco-editor@0.55.1: - resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} + resolution: + { + integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==, + } mrmime@2.0.1: - resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==, + } + engines: { node: '>=10' } ms@2.0.0: - resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} + resolution: + { + integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, + } ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} + resolution: + { + integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, + } ms@2.1.3: - resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + resolution: + { + integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, + } msw@2.10.5: - resolution: {integrity: sha512-0EsQCrCI1HbhpBWd89DvmxY6plmvrM96b0sCIztnvcNHQbXn5vqwm1KlXslo6u4wN9LFGLC1WFjjgljcQhe40A==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-0EsQCrCI1HbhpBWd89DvmxY6plmvrM96b0sCIztnvcNHQbXn5vqwm1KlXslo6u4wN9LFGLC1WFjjgljcQhe40A==, + } + engines: { node: '>=18' } hasBin: true peerDependencies: typescript: '>= 4.8.x' @@ -10907,60 +16926,102 @@ packages: optional: true mudder@2.1.1: - resolution: {integrity: sha512-0/F//kjoRlefsazFcGxa7FAuwRNDoX3ALal7W9uOZgE9QKxKatFM1NKu3tkmxMAFvUXoIHN2b/PlIt5B+hJirQ==} + resolution: + { + integrity: sha512-0/F//kjoRlefsazFcGxa7FAuwRNDoX3ALal7W9uOZgE9QKxKatFM1NKu3tkmxMAFvUXoIHN2b/PlIt5B+hJirQ==, + } mute-stream@0.0.8: - resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} + resolution: + { + integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, + } mute-stream@2.0.0: - resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} - engines: {node: ^18.17.0 || >=20.5.0} + resolution: + { + integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==, + } + engines: { node: ^18.17.0 || >=20.5.0 } namespace-emitter@2.0.1: - resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} + resolution: + { + integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==, + } nanoid@3.3.11: - resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + resolution: + { + integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==, + } + engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } hasBin: true nanoid@5.1.5: - resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} - engines: {node: ^18 || >=20} + resolution: + { + integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==, + } + engines: { node: ^18 || >=20 } hasBin: true negotiator@0.6.3: - resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, + } + engines: { node: '>= 0.6' } negotiator@1.0.0: - resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==, + } + engines: { node: '>= 0.6' } neo-async@2.6.2: - resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} + resolution: + { + integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, + } netmask@2.0.2: - resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} - engines: {node: '>= 0.4.0'} + resolution: + { + integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, + } + engines: { node: '>= 0.4.0' } new-github-issue-url@0.2.1: - resolution: {integrity: sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==, + } + engines: { node: '>=10' } next-connect@1.0.0: - resolution: {integrity: sha512-FeLURm9MdvzY1SDUGE74tk66mukSqL6MAzxajW7Gqh6DZKBZLrXmXnGWtHJZXkfvoi+V/DUe9Hhtfkl4+nTlYA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-FeLURm9MdvzY1SDUGE74tk66mukSqL6MAzxajW7Gqh6DZKBZLrXmXnGWtHJZXkfvoi+V/DUe9Hhtfkl4+nTlYA==, + } + engines: { node: '>=16' } next-themes@0.4.6: - resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} + resolution: + { + integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==, + } peerDependencies: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc next@15.5.9: - resolution: {integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==} - engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} + resolution: + { + integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==, + } + engines: { node: ^18.18.0 || ^19.8.0 || >= 20.0.0 } hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -10980,7 +17041,10 @@ packages: optional: true nextra-theme-docs@4.3.0: - resolution: {integrity: sha512-f8QDU2ZDp6um0yn9VyejcDRBAMWeeM1EYAknZjclkNArXQMc7n/Z+P60EEjUz79eZQKEo7Bk8kKa9X2fU8FsHQ==} + resolution: + { + integrity: sha512-f8QDU2ZDp6um0yn9VyejcDRBAMWeeM1EYAknZjclkNArXQMc7n/Z+P60EEjUz79eZQKEo7Bk8kKa9X2fU8FsHQ==, + } peerDependencies: next: '>=14' nextra: 4.3.0 @@ -10988,22 +17052,34 @@ packages: react-dom: '>=18' nextra@4.3.0: - resolution: {integrity: sha512-hMVd8oyr9ee3h0rWkM0JWx5AEiwU5FBYH+Z+TSJ7iWNpaLDt732fUV4nQhfO/8AReuP379S1cDWM1RPnHv112A==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-hMVd8oyr9ee3h0rWkM0JWx5AEiwU5FBYH+Z+TSJ7iWNpaLDt732fUV4nQhfO/8AReuP379S1cDWM1RPnHv112A==, + } + engines: { node: '>=18' } peerDependencies: next: '>=14' react: '>=18' react-dom: '>=18' nlcst-to-string@4.0.0: - resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} + resolution: + { + integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==, + } no-case@2.3.2: - resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} + resolution: + { + integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==, + } node-fetch@2.6.11: - resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -11011,8 +17087,11 @@ packages: optional: true node-fetch@2.6.12: - resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -11020,8 +17099,11 @@ packages: optional: true node-fetch@2.7.0: - resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} - engines: {node: 4.x || >=6.0.0} + resolution: + { + integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, + } + engines: { node: 4.x || >=6.0.0 } peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -11029,65 +17111,113 @@ packages: optional: true node-plop@0.26.3: - resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} - engines: {node: '>=8.9.4'} + resolution: + { + integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==, + } + engines: { node: '>=8.9.4' } node-releases@2.0.19: - resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} + resolution: + { + integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==, + } nodemailer@6.10.1: - resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==} - engines: {node: '>=6.0.0'} + resolution: + { + integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==, + } + engines: { node: '>=6.0.0' } normalize-package-data@2.5.0: - resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + resolution: + { + integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, + } normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, + } + engines: { node: '>=0.10.0' } normalize-range@0.1.2: - resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, + } + engines: { node: '>=0.10.0' } npm-bundled@1.1.2: - resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} + resolution: + { + integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==, + } npm-bundled@2.0.1: - resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { + integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } npm-normalize-package-bin@1.0.1: - resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} + resolution: + { + integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==, + } npm-normalize-package-bin@2.0.0: - resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { + integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } npm-packlist@2.2.2: - resolution: {integrity: sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==, + } + engines: { node: '>=10' } hasBin: true npm-packlist@5.1.3: - resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} + resolution: + { + integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==, + } + engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } hasBin: true npm-run-path@4.0.1: - resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, + } + engines: { node: '>=8' } npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } npm-to-yarn@3.0.1: - resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } nuqs@2.4.3: - resolution: {integrity: sha512-BgtlYpvRwLYiJuWzxt34q2bXu/AIS66sLU1QePIMr2LWkb+XH0vKXdbLSgn9t6p7QKzwI7f38rX3Wl9llTXQ8Q==} + resolution: + { + integrity: sha512-BgtlYpvRwLYiJuWzxt34q2bXu/AIS66sLU1QePIMr2LWkb+XH0vKXdbLSgn9t6p7QKzwI7f38rX3Wl9llTXQ8Q==, + } peerDependencies: '@remix-run/react': '>=2' next: '>=14.2.0' @@ -11105,313 +17235,568 @@ packages: optional: true nwsapi@2.2.21: - resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} + resolution: + { + integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==, + } object-assign@4.1.1: - resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, + } + engines: { node: '>=0.10.0' } object-inspect@1.13.4: - resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==, + } + engines: { node: '>= 0.4' } object-keys@1.1.1: - resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, + } + engines: { node: '>= 0.4' } object.assign@4.1.7: - resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==, + } + engines: { node: '>= 0.4' } object.omit@3.0.0: - resolution: {integrity: sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==, + } + engines: { node: '>=0.10.0' } object.pick@1.3.0: - resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==, + } + engines: { node: '>=0.10.0' } on-exit-leak-free@2.1.2: - resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==, + } + engines: { node: '>=14.0.0' } on-headers@1.0.2: - resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, + } + engines: { node: '>= 0.8' } once@1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + resolution: + { + integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, + } onetime@5.1.2: - resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, + } + engines: { node: '>=6' } onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, + } + engines: { node: '>=12' } oniguruma-parser@0.12.1: - resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} + resolution: + { + integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==, + } oniguruma-to-es@4.3.3: - resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} + resolution: + { + integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==, + } open@7.4.2: - resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, + } + engines: { node: '>=8' } open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, + } + engines: { node: '>=12' } openapi3-ts@2.0.2: - resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==} + resolution: + { + integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==, + } openapi3-ts@4.5.0: - resolution: {integrity: sha512-jaL+HgTq2Gj5jRcfdutgRGLosCy/hT8sQf6VOy+P+g36cZOjI1iukdPnijC+4CmeRzg/jEllJUboEic2FhxhtQ==} + resolution: + { + integrity: sha512-jaL+HgTq2Gj5jRcfdutgRGLosCy/hT8sQf6VOy+P+g36cZOjI1iukdPnijC+4CmeRzg/jEllJUboEic2FhxhtQ==, + } optionator@0.9.4: - resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, + } + engines: { node: '>= 0.8.0' } ora@4.1.1: - resolution: {integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==, + } + engines: { node: '>=8' } ora@5.4.1: - resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, + } + engines: { node: '>=10' } orderedmap@2.1.1: - resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} + resolution: + { + integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==, + } os-tmpdir@1.0.2: - resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, + } + engines: { node: '>=0.10.0' } oslo@1.2.1: - resolution: {integrity: sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA==} + resolution: + { + integrity: sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA==, + } deprecated: Package is no longer supported. Please see https://oslojs.dev for the successor project. outvariant@1.4.3: - resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} + resolution: + { + integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==, + } own-keys@1.0.1: - resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==, + } + engines: { node: '>= 0.4' } p-filter@2.1.0: - resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, + } + engines: { node: '>=8' } p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, + } + engines: { node: '>=6' } p-limit@3.1.0: - resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, + } + engines: { node: '>=10' } p-limit@4.0.0: - resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, + } + engines: { node: '>=8' } p-locate@5.0.0: - resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, + } + engines: { node: '>=10' } p-locate@6.0.0: - resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } p-map@2.1.0: - resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, + } + engines: { node: '>=6' } p-map@3.0.0: - resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==, + } + engines: { node: '>=8' } p-map@4.0.0: - resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, + } + engines: { node: '>=10' } p-map@7.0.3: - resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==, + } + engines: { node: '>=18' } p-queue@8.1.0: - resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==, + } + engines: { node: '>=18' } p-retry@4.6.2: - resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==, + } + engines: { node: '>=8' } p-retry@6.2.1: - resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} - engines: {node: '>=16.17'} + resolution: + { + integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==, + } + engines: { node: '>=16.17' } p-timeout@6.1.4: - resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==, + } + engines: { node: '>=14.16' } p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, + } + engines: { node: '>=6' } pac-proxy-agent@7.2.0: - resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==, + } + engines: { node: '>= 14' } pac-resolver@7.0.1: - resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==, + } + engines: { node: '>= 14' } package-json-from-dist@1.0.1: - resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} + resolution: + { + integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, + } package-manager-detector@1.3.0: - resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} + resolution: + { + integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==, + } pagefind@1.3.0: - resolution: {integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==} + resolution: + { + integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==, + } hasBin: true param-case@2.1.1: - resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} + resolution: + { + integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==, + } parent-module@1.0.1: - resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, + } + engines: { node: '>=6' } parse-english@7.0.0: - resolution: {integrity: sha512-mxxj3DyPdvOdiUl1okNub3wwoaaZI/Z++paDg3PH96RYvfVilS63WmQOnHlGm0S05y4g9GEjNP3pylyBsJrAwQ==} + resolution: + { + integrity: sha512-mxxj3DyPdvOdiUl1okNub3wwoaaZI/Z++paDg3PH96RYvfVilS63WmQOnHlGm0S05y4g9GEjNP3pylyBsJrAwQ==, + } parse-entities@4.0.2: - resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} + resolution: + { + integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==, + } parse-glob@3.0.4: - resolution: {integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==, + } + engines: { node: '>=0.10.0' } parse-json@5.2.0: - resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, + } + engines: { node: '>=8' } parse-latin@7.0.0: - resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} + resolution: + { + integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==, + } parse-numeric-range@1.3.0: - resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} + resolution: + { + integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==, + } parse5@7.3.0: - resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} + resolution: + { + integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==, + } parseley@0.12.1: - resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} + resolution: + { + integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==, + } pascal-case@2.0.1: - resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==} + resolution: + { + integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==, + } path-browserify@1.0.1: - resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + resolution: + { + integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, + } path-case@2.1.1: - resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==} + resolution: + { + integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==, + } path-data-parser@0.1.0: - resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} + resolution: + { + integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==, + } path-exists@4.0.0: - resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, + } + engines: { node: '>=8' } path-exists@5.0.0: - resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } path-is-absolute@1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, + } + engines: { node: '>=0.10.0' } path-is-inside@1.0.2: - resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} + resolution: + { + integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, + } path-key@3.1.1: - resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, + } + engines: { node: '>=8' } path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, + } + engines: { node: '>=12' } path-parse@1.0.7: - resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} + resolution: + { + integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, + } path-scurry@1.11.1: - resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} - engines: {node: '>=16 || 14 >=14.18'} + resolution: + { + integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, + } + engines: { node: '>=16 || 14 >=14.18' } path-scurry@2.0.0: - resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==, + } + engines: { node: 20 || >=22 } path-to-regexp@3.3.0: - resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} + resolution: + { + integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==, + } path-to-regexp@6.3.0: - resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} + resolution: + { + integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, + } path-type@4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, + } + engines: { node: '>=8' } pathe@2.0.3: - resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} + resolution: + { + integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, + } pathval@2.0.1: - resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} - engines: {node: '>= 14.16'} + resolution: + { + integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==, + } + engines: { node: '>= 14.16' } peberminta@0.9.0: - resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} + resolution: + { + integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==, + } pg-cloudflare@1.2.7: - resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} + resolution: + { + integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==, + } pg-connection-string@2.6.2: - resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} + resolution: + { + integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==, + } pg-connection-string@2.9.1: - resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} + resolution: + { + integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==, + } pg-int8@1.0.1: - resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} - engines: {node: '>=4.0.0'} + resolution: + { + integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==, + } + engines: { node: '>=4.0.0' } pg-pool@3.10.1: - resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} + resolution: + { + integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==, + } peerDependencies: pg: '>=8.0' pg-protocol@1.10.3: - resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} + resolution: + { + integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==, + } pg-query-emscripten@5.1.0: - resolution: {integrity: sha512-H1ZWOzLRddmHuE4GZqFjjo55hA9zMiePz/WDDGANA/EnvILCJps9pcRucyGd+MFvapeYOy6TWSYz6DbtBOaxRQ==} + resolution: + { + integrity: sha512-H1ZWOzLRddmHuE4GZqFjjo55hA9zMiePz/WDDGANA/EnvILCJps9pcRucyGd+MFvapeYOy6TWSYz6DbtBOaxRQ==, + } pg-types@2.2.0: - resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==, + } + engines: { node: '>=4' } pg@8.16.3: - resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==} - engines: {node: '>= 16.0.0'} + resolution: + { + integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==, + } + engines: { node: '>= 16.0.0' } peerDependencies: pg-native: '>=3.0.1' peerDependenciesMeta: @@ -11419,421 +17804,742 @@ packages: optional: true pgpass@1.0.5: - resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} + resolution: + { + integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==, + } picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + resolution: + { + integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, + } picocolors@1.1.1: - resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + resolution: + { + integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, + } picomatch@2.3.1: - resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} - engines: {node: '>=8.6'} + resolution: + { + integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, + } + engines: { node: '>=8.6' } picomatch@4.0.3: - resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==, + } + engines: { node: '>=12' } pidtree@0.6.0: - resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} - engines: {node: '>=0.10'} + resolution: + { + integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, + } + engines: { node: '>=0.10' } hasBin: true pify@2.3.0: - resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, + } + engines: { node: '>=0.10.0' } pino-abstract-transport@1.2.0: - resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} + resolution: + { + integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==, + } pino-abstract-transport@3.0.0: - resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} + resolution: + { + integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==, + } pino-pretty@10.3.1: - resolution: {integrity: sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==} + resolution: + { + integrity: sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==, + } hasBin: true pino-pretty@13.1.3: - resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} + resolution: + { + integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==, + } hasBin: true pino-std-serializers@6.2.2: - resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} + resolution: + { + integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==, + } pino@8.21.0: - resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} + resolution: + { + integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==, + } hasBin: true pirates@4.0.7: - resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==, + } + engines: { node: '>= 6' } pkg-dir@4.2.0: - resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, + } + engines: { node: '>=8' } pkg-types@1.3.1: - resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} + resolution: + { + integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==, + } pkg-types@2.3.0: - resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} + resolution: + { + integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==, + } playwright-core@1.53.0: - resolution: {integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==, + } + engines: { node: '>=18' } hasBin: true playwright@1.53.0: - resolution: {integrity: sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==, + } + engines: { node: '>=18' } hasBin: true pluralize@8.0.0: - resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, + } + engines: { node: '>=4' } points-on-curve@0.2.0: - resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} + resolution: + { + integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==, + } points-on-path@0.2.1: - resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} + resolution: + { + integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==, + } possible-typed-array-names@1.1.0: - resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==, + } + engines: { node: '>= 0.4' } postcss-import@16.1.1: - resolution: {integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==, + } + engines: { node: '>=18.0.0' } peerDependencies: postcss: ^8.0.0 postcss-selector-parser@6.0.10: - resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==, + } + engines: { node: '>=4' } postcss-value-parser@4.2.0: - resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} + resolution: + { + integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, + } postcss@8.4.31: - resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, + } + engines: { node: ^10 || ^12 || >=14 } postcss@8.5.6: - resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} - engines: {node: ^10 || ^12 || >=14} + resolution: + { + integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==, + } + engines: { node: ^10 || ^12 || >=14 } postgres-array@2.0.0: - resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==, + } + engines: { node: '>=4' } postgres-bytea@1.0.0: - resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==, + } + engines: { node: '>=0.10.0' } postgres-date@1.0.7: - resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==, + } + engines: { node: '>=0.10.0' } postgres-interval@1.2.0: - resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==, + } + engines: { node: '>=0.10.0' } preact@10.27.1: - resolution: {integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==} + resolution: + { + integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==, + } prelude-ls@1.2.1: - resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, + } + engines: { node: '>= 0.8.0' } prettier@3.6.2: - resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==, + } + engines: { node: '>=14' } hasBin: true pretty-bytes@6.1.1: - resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} - engines: {node: ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==, + } + engines: { node: ^14.13.1 || >=16.0.0 } pretty-format@27.5.1: - resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + resolution: + { + integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, + } + engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } prisma-dbml-generator@0.12.0: - resolution: {integrity: sha512-b5CqA9cCY5jmNJGjx8oUbPw3KSgVd+mu8711MSZIRY9dIF0Vlcs/Au6LR3S5guncydM7Zkh8iz8vC+c2CDj3Xw==} + resolution: + { + integrity: sha512-b5CqA9cCY5jmNJGjx8oUbPw3KSgVd+mu8711MSZIRY9dIF0Vlcs/Au6LR3S5guncydM7Zkh8iz8vC+c2CDj3Xw==, + } hasBin: true prisma@5.22.0: - resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} - engines: {node: '>=16.13'} + resolution: + { + integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==, + } + engines: { node: '>=16.13' } hasBin: true prismjs@1.29.0: - resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, + } + engines: { node: '>=6' } prismjs@1.30.0: - resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==, + } + engines: { node: '>=6' } process-nextick-args@2.0.1: - resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} + resolution: + { + integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, + } process-warning@3.0.0: - resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} + resolution: + { + integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==, + } process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} + resolution: + { + integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, + } + engines: { node: '>= 0.6.0' } progress@2.0.3: - resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} - engines: {node: '>=0.4.0'} + resolution: + { + integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, + } + engines: { node: '>=0.4.0' } prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, + } + engines: { node: '>= 6' } prop-types@15.8.1: - resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + resolution: + { + integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, + } property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + resolution: + { + integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, + } property-information@7.1.0: - resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} + resolution: + { + integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==, + } prosemirror-autocomplete@0.4.3: - resolution: {integrity: sha512-a4w/SOzgrTjXaWpSYMrai6H3KHSUBuADZC/DBm4VApiD9LGHpv98zQbHzsHgInrEoWcBGzYVT0HUD3tLgrsEVQ==} + resolution: + { + integrity: sha512-a4w/SOzgrTjXaWpSYMrai6H3KHSUBuADZC/DBm4VApiD9LGHpv98zQbHzsHgInrEoWcBGzYVT0HUD3tLgrsEVQ==, + } prosemirror-commands@1.7.1: - resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} + resolution: + { + integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==, + } prosemirror-dev-tools@4.2.0: - resolution: {integrity: sha512-Hm1HRgK0Fxhb+Dy507R1uHgP3Ixuwbh7ZHD6NUZGEAl26BKW95L70nwdA1P4odPfxPsx0lBZm1KMpulsOJMwpQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Hm1HRgK0Fxhb+Dy507R1uHgP3Ixuwbh7ZHD6NUZGEAl26BKW95L70nwdA1P4odPfxPsx0lBZm1KMpulsOJMwpQ==, + } + engines: { node: '>=10' } peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 prosemirror-dropcursor@1.8.2: - resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} + resolution: + { + integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==, + } prosemirror-example-setup@1.2.3: - resolution: {integrity: sha512-+hXZi8+xbFvYM465zZH3rdZ9w7EguVKmUYwYLZjIJIjPK+I0nPTwn8j0ByW2avchVczRwZmOJGNvehblyIerSQ==} + resolution: + { + integrity: sha512-+hXZi8+xbFvYM465zZH3rdZ9w7EguVKmUYwYLZjIJIjPK+I0nPTwn8j0ByW2avchVczRwZmOJGNvehblyIerSQ==, + } prosemirror-gapcursor@1.3.2: - resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} + resolution: + { + integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==, + } prosemirror-history@1.4.1: - resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} + resolution: + { + integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==, + } prosemirror-inputrules@1.5.0: - resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==} + resolution: + { + integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==, + } prosemirror-keymap@1.2.3: - resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} + resolution: + { + integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==, + } prosemirror-markdown@1.13.2: - resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} + resolution: + { + integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==, + } prosemirror-menu@1.2.5: - resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} + resolution: + { + integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==, + } prosemirror-model@1.25.3: - resolution: {integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==} + resolution: + { + integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==, + } prosemirror-schema-basic@1.2.4: - resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} + resolution: + { + integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==, + } prosemirror-schema-list@1.5.1: - resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} + resolution: + { + integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==, + } prosemirror-state@1.4.3: - resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} + resolution: + { + integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==, + } prosemirror-suggest@3.0.0: - resolution: {integrity: sha512-cEYnJHOAnQ+ET7PKY1tY8SMSpyR2rQAuYfPEmVtet0V9exgHAeiaSEzyBcCSeLesxXJRIv8b9cofyqoqyMjlEw==} + resolution: + { + integrity: sha512-cEYnJHOAnQ+ET7PKY1tY8SMSpyR2rQAuYfPEmVtet0V9exgHAeiaSEzyBcCSeLesxXJRIv8b9cofyqoqyMjlEw==, + } peerDependencies: prosemirror-model: ^1.22.1 prosemirror-state: ^1.4.2 prosemirror-view: ^1.33.8 prosemirror-tables@1.7.1: - resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} + resolution: + { + integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==, + } prosemirror-transform@1.10.4: - resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==} + resolution: + { + integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==, + } prosemirror-view@1.39.2: - resolution: {integrity: sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==} + resolution: + { + integrity: sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==, + } protobufjs@7.5.4: - resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==, + } + engines: { node: '>=12.0.0' } proxy-agent@6.5.0: - resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==, + } + engines: { node: '>= 14' } proxy-from-env@1.1.0: - resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + resolution: + { + integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, + } psl@1.15.0: - resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} + resolution: + { + integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==, + } pump@3.0.3: - resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} + resolution: + { + integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==, + } punycode.js@2.3.1: - resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, + } + engines: { node: '>=6' } punycode@2.3.1: - resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, + } + engines: { node: '>=6' } qs@6.14.0: - resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} - engines: {node: '>=0.6'} + resolution: + { + integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==, + } + engines: { node: '>=0.6' } quansync@0.2.11: - resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} + resolution: + { + integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==, + } querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + resolution: + { + integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, + } queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + resolution: + { + integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, + } quick-format-unescaped@4.0.4: - resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + resolution: + { + integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, + } quick-lru@5.1.1: - resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, + } + engines: { node: '>=10' } ramda@0.30.1: - resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==} + resolution: + { + integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==, + } ramda@0.31.3: - resolution: {integrity: sha512-xKADKRNnqmDdX59PPKLm3gGmk1ZgNnj3k7DryqWwkamp4TJ6B36DdpyKEQ0EoEYmH2R62bV4Q+S0ym2z8N2f3Q==} + resolution: + { + integrity: sha512-xKADKRNnqmDdX59PPKLm3gGmk1ZgNnj3k7DryqWwkamp4TJ6B36DdpyKEQ0EoEYmH2R62bV4Q+S0ym2z8N2f3Q==, + } randombytes@2.1.0: - resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} + resolution: + { + integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, + } range-parser@1.2.0: - resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} - engines: {node: '>= 0.6'} + resolution: + { + integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==, + } + engines: { node: '>= 0.6' } rc@1.2.8: - resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} + resolution: + { + integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, + } hasBin: true react-base16-styling@0.9.1: - resolution: {integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==} + resolution: + { + integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==, + } react-colorful@5.6.1: - resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} + resolution: + { + integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==, + } peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' react-compiler-runtime@19.1.0-rc.2: - resolution: {integrity: sha512-852AwyIsbWJ5o1LkQVAZsVK3iLjMxOfKZuxqeGd/RfD+j1GqHb6j3DSHLtpu4HhFbQHsP2DzxjJyKR6luv4D8w==} + resolution: + { + integrity: sha512-852AwyIsbWJ5o1LkQVAZsVK3iLjMxOfKZuxqeGd/RfD+j1GqHb6j3DSHLtpu4HhFbQHsP2DzxjJyKR6luv4D8w==, + } peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental react-csv-to-table@0.0.4: - resolution: {integrity: sha512-YHdhavi7WgksHn3/S/pIHDy4zepeYjTQkTfmKcQv976OwNSWIUB7RlYJKmCFXAgfqkbiCNbtEIHnX1n3/rTfJA==} + resolution: + { + integrity: sha512-YHdhavi7WgksHn3/S/pIHDy4zepeYjTQkTfmKcQv976OwNSWIUB7RlYJKmCFXAgfqkbiCNbtEIHnX1n3/rTfJA==, + } peerDependencies: react: ^16.8.6 react-dom: ^16.8.6 react-day-picker@9.9.0: - resolution: {integrity: sha512-NtkJbuX6cl/VaGNb3sVVhmMA6LSMnL5G3xNL+61IyoZj0mUZFWTg4hmj7PHjIQ8MXN9dHWhUHFoJWG6y60DKSg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-NtkJbuX6cl/VaGNb3sVVhmMA6LSMnL5G3xNL+61IyoZj0mUZFWTg4hmj7PHjIQ8MXN9dHWhUHFoJWG6y60DKSg==, + } + engines: { node: '>=18' } peerDependencies: react: '>=16.8.0' react-docgen-typescript@2.4.0: - resolution: {integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==} + resolution: + { + integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==, + } peerDependencies: typescript: '>= 4.3.x' react-docgen@8.0.1: - resolution: {integrity: sha512-kQKsqPLplY3Hx4jGnM3jpQcG3FQDt7ySz32uTHt3C9HAe45kNXG+3o16Eqn3Fw1GtMfHoN3b4J/z2e6cZJCmqQ==} - engines: {node: ^20.9.0 || >=22} + resolution: + { + integrity: sha512-kQKsqPLplY3Hx4jGnM3jpQcG3FQDt7ySz32uTHt3C9HAe45kNXG+3o16Eqn3Fw1GtMfHoN3b4J/z2e6cZJCmqQ==, + } + engines: { node: ^20.9.0 || >=22 } react-dock@0.6.0: - resolution: {integrity: sha512-jEOhv1s+pqRQ4JxgUw4XUotnprOehZ23mqchf3whxYXnvNgTQOXCxh6bpcqW8P6OybIk2bYO18r3qimZ3ypCbg==} + resolution: + { + integrity: sha512-jEOhv1s+pqRQ4JxgUw4XUotnprOehZ23mqchf3whxYXnvNgTQOXCxh6bpcqW8P6OybIk2bYO18r3qimZ3ypCbg==, + } peerDependencies: '@types/react': ^16.3.0 || ^17.0.0 || ^18.0.0 react: ^16.3.0 || ^17.0.0 || ^18.0.0 react-dom@19.2.3: - resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} + resolution: + { + integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==, + } peerDependencies: react: ^19.2.3 react-email@3.0.4: - resolution: {integrity: sha512-nXdo9P3V+qYSW6m5yN3XpFGhHb/bflX86m0EDQEqDIgayprj6InmBJoBnMSIyC5EP4tPtoAljlclJns4lJG/MQ==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-nXdo9P3V+qYSW6m5yN3XpFGhHb/bflX86m0EDQEqDIgayprj6InmBJoBnMSIyC5EP4tPtoAljlclJns4lJG/MQ==, + } + engines: { node: '>=18.0.0' } hasBin: true react-error-boundary@3.1.4: - resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} - engines: {node: '>=10', npm: '>=6'} + resolution: + { + integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, + } + engines: { node: '>=10', npm: '>=6' } peerDependencies: react: '>=16.13.1' react-hook-form@7.54.2: - resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==, + } + engines: { node: '>=18.0.0' } peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 react-is@16.13.1: - resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + resolution: + { + integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, + } react-is@17.0.2: - resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} + resolution: + { + integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, + } react-json-tree@0.17.0: - resolution: {integrity: sha512-hcWjibI/fAvsKnfYk+lka5OrE1Lvb1jH5pSnFhIU5T8cCCxB85r6h/NOzDPggSSgErjmx4rl3+2EkeclIKBOhg==} + resolution: + { + integrity: sha512-hcWjibI/fAvsKnfYk+lka5OrE1Lvb1jH5pSnFhIU5T8cCCxB85r6h/NOzDPggSSgErjmx4rl3+2EkeclIKBOhg==, + } peerDependencies: '@types/react': ^16.3.0 || ^17.0.0 || ^18.0.0 react: ^16.3.0 || ^17.0.0 || ^18.0.0 react-markdown@9.1.0: - resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} + resolution: + { + integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==, + } peerDependencies: '@types/react': '>=18' react: '>=18' react-medium-image-zoom@5.3.0: - resolution: {integrity: sha512-RCIzVlsKqy3BYgGgYbolUfuvx0aSKC7YhX/IJGEp+WJxsqdIVYJHkBdj++FAj6VD7RiWj6VVmdCfa/9vJE9hZg==} + resolution: + { + integrity: sha512-RCIzVlsKqy3BYgGgYbolUfuvx0aSKC7YhX/IJGEp+WJxsqdIVYJHkBdj++FAj6VD7RiWj6VVmdCfa/9vJE9hZg==, + } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-promise-suspense@0.3.4: - resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} + resolution: + { + integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==, + } react-reconciler@0.32.0: - resolution: {integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==, + } + engines: { node: '>=0.10.0' } peerDependencies: react: ^19.1.0 react-refresh@0.17.0: - resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==, + } + engines: { node: '>=0.10.0' } react-remove-scroll-bar@2.3.8: - resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==, + } + engines: { node: '>=10' } peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -11842,8 +18548,11 @@ packages: optional: true react-remove-scroll@2.7.1: - resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==, + } + engines: { node: '>=10' } peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc @@ -11852,13 +18561,19 @@ packages: optional: true react-simple-animate@3.5.3: - resolution: {integrity: sha512-Ob+SmB5J1tXDEZyOe2Hf950K4M8VaWBBmQ3cS2BUnTORqHjhK0iKG8fB+bo47ZL15t8d3g/Y0roiqH05UBjG7A==} + resolution: + { + integrity: sha512-Ob+SmB5J1tXDEZyOe2Hf950K4M8VaWBBmQ3cS2BUnTORqHjhK0iKG8fB+bo47ZL15t8d3g/Y0roiqH05UBjG7A==, + } peerDependencies: react-dom: ^16.8.0 || ^17 || ^18 || ^19 react-style-singleton@2.2.3: - resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==, + } + engines: { node: '>=10' } peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc @@ -11867,626 +18582,1145 @@ packages: optional: true react@19.2.3: - resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==, + } + engines: { node: '>=0.10.0' } reactflow@11.11.4: - resolution: {integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==} + resolution: + { + integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==, + } peerDependencies: react: '>=17' react-dom: '>=17' read-cache@1.0.0: - resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + resolution: + { + integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, + } read-pkg-up@7.0.1: - resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, + } + engines: { node: '>=8' } read-pkg@5.2.0: - resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, + } + engines: { node: '>=8' } readable-stream@2.3.8: - resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + resolution: + { + integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, + } readable-stream@3.6.2: - resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, + } + engines: { node: '>= 6' } readable-stream@4.7.0: - resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + resolution: + { + integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==, + } + engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } readdir-glob@1.1.3: - resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} + resolution: + { + integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, + } readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} - engines: {node: '>=8.10.0'} + resolution: + { + integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, + } + engines: { node: '>=8.10.0' } readdirp@4.1.2: - resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} - engines: {node: '>= 14.18.0'} + resolution: + { + integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==, + } + engines: { node: '>= 14.18.0' } reading-time@1.5.0: - resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} + resolution: + { + integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==, + } real-require@0.2.0: - resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} - engines: {node: '>= 12.13.0'} + resolution: + { + integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==, + } + engines: { node: '>= 12.13.0' } recast@0.23.11: - resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==, + } + engines: { node: '>= 4' } rechoir@0.8.0: - resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==, + } + engines: { node: '>= 10.13.0' } recma-build-jsx@1.0.0: - resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} + resolution: + { + integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==, + } recma-jsx@1.0.1: - resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} + resolution: + { + integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==, + } peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 recma-parse@1.0.0: - resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} + resolution: + { + integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==, + } recma-stringify@1.0.0: - resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} + resolution: + { + integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==, + } redent@3.0.0: - resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, + } + engines: { node: '>=8' } redis-errors@1.2.0: - resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==, + } + engines: { node: '>=4' } redis-parser@3.0.0: - resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==, + } + engines: { node: '>=4' } redis@4.7.0: - resolution: {integrity: sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==} + resolution: + { + integrity: sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==, + } reflect.getprototypeof@1.0.10: - resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==, + } + engines: { node: '>= 0.4' } regenerate-unicode-properties@10.2.0: - resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==, + } + engines: { node: '>=4' } regenerate@1.4.2: - resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} + resolution: + { + integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, + } regex-recursion@6.0.2: - resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} + resolution: + { + integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==, + } regex-utilities@2.3.0: - resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} + resolution: + { + integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==, + } regex@6.0.1: - resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} + resolution: + { + integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==, + } regexp.prototype.flags@1.5.4: - resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==, + } + engines: { node: '>= 0.4' } regexparam@2.0.2: - resolution: {integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==, + } + engines: { node: '>=8' } regexpu-core@6.2.0: - resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==, + } + engines: { node: '>=4' } registry-auth-token@3.3.2: - resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} + resolution: + { + integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==, + } registry-url@3.1.0: - resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==, + } + engines: { node: '>=0.10.0' } regjsgen@0.8.0: - resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} + resolution: + { + integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==, + } regjsparser@0.12.0: - resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} + resolution: + { + integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==, + } hasBin: true rehype-format@5.0.1: - resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} + resolution: + { + integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==, + } rehype-katex@7.0.1: - resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} + resolution: + { + integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==, + } rehype-minify-whitespace@6.0.2: - resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==} + resolution: + { + integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==, + } rehype-parse@9.0.1: - resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} + resolution: + { + integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==, + } rehype-pretty-code@0.14.1: - resolution: {integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==, + } + engines: { node: '>=18' } peerDependencies: shiki: ^1.0.0 || ^2.0.0 || ^3.0.0 rehype-raw@7.0.0: - resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} + resolution: + { + integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==, + } rehype-recma@1.0.0: - resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} + resolution: + { + integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==, + } rehype-remark@10.0.1: - resolution: {integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==} + resolution: + { + integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==, + } rehype-retext@5.0.1: - resolution: {integrity: sha512-YJqcKZJh/sYCfLd89yzuWo5GI5TzELr0N/OLHac6fDzKmp5Yk8pj8ePU2HFgmtk5O7GmGVuYXJo35YIrGtyL0g==} + resolution: + { + integrity: sha512-YJqcKZJh/sYCfLd89yzuWo5GI5TzELr0N/OLHac6fDzKmp5Yk8pj8ePU2HFgmtk5O7GmGVuYXJo35YIrGtyL0g==, + } rehype-stringify@10.0.1: - resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} + resolution: + { + integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==, + } rehype@13.0.2: - resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} + resolution: + { + integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==, + } remark-directive@3.0.1: - resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} + resolution: + { + integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==, + } remark-frontmatter@5.0.0: - resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} + resolution: + { + integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==, + } remark-gfm@4.0.1: - resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} + resolution: + { + integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==, + } remark-math@6.0.0: - resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} + resolution: + { + integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==, + } remark-mdx@3.1.0: - resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} + resolution: + { + integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==, + } remark-parse@11.0.0: - resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + resolution: + { + integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==, + } remark-reading-time@2.0.2: - resolution: {integrity: sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==} + resolution: + { + integrity: sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==, + } remark-rehype@11.1.2: - resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} + resolution: + { + integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==, + } remark-smartypants@3.0.2: - resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} - engines: {node: '>=16.0.0'} + resolution: + { + integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==, + } + engines: { node: '>=16.0.0' } remark-stringify@11.0.0: - resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} + resolution: + { + integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==, + } remove@0.1.5: - resolution: {integrity: sha512-AJMA9oWvJzdTjwIGwSQZsjGQiRx73YTmiOWmfCp1fpLa/D4n7jKcpoA+CZiVLJqKcEKUuh1Suq80c5wF+L/qVQ==} + resolution: + { + integrity: sha512-AJMA9oWvJzdTjwIGwSQZsjGQiRx73YTmiOWmfCp1fpLa/D4n7jKcpoA+CZiVLJqKcEKUuh1Suq80c5wF+L/qVQ==, + } replace-string@3.1.0: - resolution: {integrity: sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==, + } + engines: { node: '>=8' } require-directory@2.1.1: - resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, + } + engines: { node: '>=0.10.0' } require-from-string@2.0.2: - resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, + } + engines: { node: '>=0.10.0' } require-in-the-middle@7.5.2: - resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} - engines: {node: '>=8.6.0'} + resolution: + { + integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==, + } + engines: { node: '>=8.6.0' } requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + resolution: + { + integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, + } resolve-from@4.0.0: - resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, + } + engines: { node: '>=4' } resolve-from@5.0.0: - resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, + } + engines: { node: '>=8' } resolve-pkg-maps@1.0.0: - resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} + resolution: + { + integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, + } resolve@1.22.10: - resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, + } + engines: { node: '>= 0.4' } hasBin: true resolve@1.22.2: - resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + resolution: + { + integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==, + } hasBin: true resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolution: + { + integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, + } hasBin: true restore-cursor@3.1.0: - resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, + } + engines: { node: '>=8' } restore-cursor@4.0.0: - resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + resolution: + { + integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, + } + engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } retext-latin@4.0.0: - resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} + resolution: + { + integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==, + } retext-smartypants@6.2.0: - resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} + resolution: + { + integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==, + } retext-stringify@4.0.0: - resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} + resolution: + { + integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==, + } retext@9.0.0: - resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} + resolution: + { + integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==, + } retry@0.13.1: - resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} - engines: {node: '>= 4'} + resolution: + { + integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, + } + engines: { node: '>= 4' } reusify@1.1.0: - resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + resolution: + { + integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==, + } + engines: { iojs: '>=1.0.0', node: '>=0.10.0' } rfdc@1.4.1: - resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} + resolution: + { + integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, + } rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + resolution: + { + integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, + } deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@6.0.1: - resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} - engines: {node: 20 || >=22} + resolution: + { + integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==, + } + engines: { node: 20 || >=22 } hasBin: true robust-predicates@3.0.2: - resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} + resolution: + { + integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==, + } rollup@2.79.2: - resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==, + } + engines: { node: '>=10.0.0' } hasBin: true rollup@4.46.4: - resolution: {integrity: sha512-YbxoxvoqNg9zAmw4+vzh1FkGAiZRK+LhnSrbSrSXMdZYsRPDWoshcSd/pldKRO6lWzv/e9TiJAVQyirYIeSIPQ==} - engines: {node: '>=18.0.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-YbxoxvoqNg9zAmw4+vzh1FkGAiZRK+LhnSrbSrSXMdZYsRPDWoshcSd/pldKRO6lWzv/e9TiJAVQyirYIeSIPQ==, + } + engines: { node: '>=18.0.0', npm: '>=8.0.0' } hasBin: true rope-sequence@1.3.4: - resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} + resolution: + { + integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==, + } roughjs@4.6.6: - resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} + resolution: + { + integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==, + } rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + resolution: + { + integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==, + } rrweb-cssom@0.8.0: - resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} + resolution: + { + integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==, + } run-async@2.4.1: - resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} - engines: {node: '>=0.12.0'} + resolution: + { + integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, + } + engines: { node: '>=0.12.0' } run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + resolution: + { + integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, + } rw@1.3.3: - resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} + resolution: + { + integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, + } rxjs@6.6.7: - resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} - engines: {npm: '>=2.0.0'} + resolution: + { + integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, + } + engines: { npm: '>=2.0.0' } rxjs@7.8.2: - resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} + resolution: + { + integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==, + } safe-array-concat@1.1.3: - resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==, + } + engines: { node: '>=0.4' } safe-buffer@5.1.2: - resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + resolution: + { + integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, + } safe-buffer@5.2.1: - resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + resolution: + { + integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, + } safe-push-apply@1.0.0: - resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==, + } + engines: { node: '>= 0.4' } safe-regex-test@1.1.0: - resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==, + } + engines: { node: '>= 0.4' } safe-stable-stringify@2.5.0: - resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==, + } + engines: { node: '>=10' } safer-buffer@2.1.2: - resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + resolution: + { + integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, + } saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} + resolution: + { + integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, + } + engines: { node: '>=v12.22.7' } scheduler@0.26.0: - resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} + resolution: + { + integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==, + } scheduler@0.27.0: - resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} + resolution: + { + integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==, + } schema-utils@3.3.0: - resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, + } + engines: { node: '>= 10.13.0' } schema-utils@4.3.2: - resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==, + } + engines: { node: '>= 10.13.0' } scroll-into-view-if-needed@3.1.0: - resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} + resolution: + { + integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==, + } secure-json-parse@2.7.0: - resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} + resolution: + { + integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==, + } secure-json-parse@4.1.0: - resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + resolution: + { + integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==, + } selderee@0.11.0: - resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} + resolution: + { + integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==, + } semver@5.7.2: - resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} + resolution: + { + integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, + } hasBin: true semver@6.3.1: - resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} + resolution: + { + integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, + } hasBin: true semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==, + } + engines: { node: '>=10' } hasBin: true semver@7.7.2: - resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==, + } + engines: { node: '>=10' } hasBin: true sentence-case@2.1.1: - resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} + resolution: + { + integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==, + } seq@0.3.5: - resolution: {integrity: sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==} + resolution: + { + integrity: sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==, + } serialize-javascript@6.0.2: - resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} + resolution: + { + integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, + } serve-handler@6.1.6: - resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} + resolution: + { + integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==, + } serve@14.2.4: - resolution: {integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==, + } + engines: { node: '>= 14' } hasBin: true server-only@0.0.1: - resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} + resolution: + { + integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==, + } set-function-length@1.2.2: - resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, + } + engines: { node: '>= 0.4' } set-function-name@2.0.2: - resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, + } + engines: { node: '>= 0.4' } set-proto@1.0.0: - resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==, + } + engines: { node: '>= 0.4' } shallow-equal@3.1.0: - resolution: {integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==} + resolution: + { + integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==, + } sharp@0.34.3: - resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} - engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} + resolution: + { + integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==, + } + engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } shebang-command@2.0.0: - resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, + } + engines: { node: '>=8' } shebang-regex@3.0.0: - resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, + } + engines: { node: '>=8' } shell-quote@1.8.3: - resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==, + } + engines: { node: '>= 0.4' } shiki@3.11.0: - resolution: {integrity: sha512-VgKumh/ib38I1i3QkMn6mAQA6XjjQubqaAYhfge71glAll0/4xnt8L2oSuC45Qcr/G5Kbskj4RliMQddGmy/Og==} + resolution: + { + integrity: sha512-VgKumh/ib38I1i3QkMn6mAQA6XjjQubqaAYhfge71glAll0/4xnt8L2oSuC45Qcr/G5Kbskj4RliMQddGmy/Og==, + } shimmer@1.2.1: - resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} + resolution: + { + integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==, + } side-channel-list@1.0.0: - resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==, + } + engines: { node: '>= 0.4' } side-channel-map@1.0.1: - resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, + } + engines: { node: '>= 0.4' } side-channel-weakmap@1.0.2: - resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, + } + engines: { node: '>= 0.4' } side-channel@1.1.0: - resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==, + } + engines: { node: '>= 0.4' } siginfo@2.0.0: - resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + resolution: + { + integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, + } signal-exit@3.0.7: - resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + resolution: + { + integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, + } signal-exit@4.1.0: - resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} - engines: {node: '>=14'} + resolution: + { + integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, + } + engines: { node: '>=14' } simple-swizzle@0.2.2: - resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} + resolution: + { + integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, + } sirv@3.0.1: - resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==, + } + engines: { node: '>=18' } sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} + resolution: + { + integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, + } slash@3.0.0: - resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, + } + engines: { node: '>=8' } slash@5.1.0: - resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==, + } + engines: { node: '>=14.16' } slice-ansi@3.0.0: - resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, + } + engines: { node: '>=8' } slice-ansi@5.0.0: - resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, + } + engines: { node: '>=12' } smart-buffer@4.2.0: - resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} - engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} + resolution: + { + integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, + } + engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } snake-case@2.1.0: - resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} + resolution: + { + integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==, + } socket.io-adapter@2.5.5: - resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} + resolution: + { + integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==, + } socket.io-parser@4.2.4: - resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==, + } + engines: { node: '>=10.0.0' } socket.io@4.8.0: - resolution: {integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==} - engines: {node: '>=10.2.0'} + resolution: + { + integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==, + } + engines: { node: '>=10.2.0' } socks-proxy-agent@8.0.5: - resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==, + } + engines: { node: '>= 14' } socks@2.8.7: - resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} - engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} + resolution: + { + integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==, + } + engines: { node: '>= 10.0.0', npm: '>= 3.0.0' } sonic-boom@3.8.1: - resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} + resolution: + { + integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==, + } sonic-boom@4.2.1: - resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} + resolution: + { + integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==, + } sonner@2.0.7: - resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} + resolution: + { + integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==, + } peerDependencies: react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc source-map-js@1.2.1: - resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, + } + engines: { node: '>=0.10.0' } source-map-support@0.5.21: - resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} + resolution: + { + integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, + } source-map@0.5.7: - resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, + } + engines: { node: '>=0.10.0' } source-map@0.6.1: - resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, + } + engines: { node: '>=0.10.0' } source-map@0.7.6: - resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} - engines: {node: '>= 12'} + resolution: + { + integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==, + } + engines: { node: '>= 12' } sourcemap-codec@1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} + resolution: + { + integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, + } deprecated: Please use @jridgewell/sourcemap-codec instead space-separated-tokens@2.0.2: - resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + resolution: + { + integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, + } spdx-correct@3.2.0: - resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} + resolution: + { + integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, + } spdx-exceptions@2.5.0: - resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} + resolution: + { + integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, + } spdx-expression-parse@3.0.1: - resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} + resolution: + { + integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, + } spdx-license-ids@3.0.22: - resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} + resolution: + { + integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==, + } speech-rule-engine@4.1.2: - resolution: {integrity: sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==} + resolution: + { + integrity: sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==, + } hasBin: true split2@4.2.0: - resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} - engines: {node: '>= 10.x'} + resolution: + { + integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, + } + engines: { node: '>= 10.x' } stackback@0.0.2: - resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} + resolution: + { + integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, + } stacktrace-parser@0.1.11: - resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==, + } + engines: { node: '>=6' } standard-as-callback@2.1.0: - resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} + resolution: + { + integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==, + } state-local@1.0.7: - resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} + resolution: + { + integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==, + } statuses@2.0.2: - resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==, + } + engines: { node: '>= 0.8' } std-env@3.9.0: - resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} + resolution: + { + integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==, + } stop-iteration-iterator@1.1.0: - resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==, + } + engines: { node: '>= 0.4' } storybook@9.1.2: - resolution: {integrity: sha512-TYcq7WmgfVCAQge/KueGkVlM/+g33sQcmbATlC3X6y/g2FEeSSLGrb6E6d3iemht8oio+aY6ld3YOdAnMwx45Q==} + resolution: + { + integrity: sha512-TYcq7WmgfVCAQge/KueGkVlM/+g33sQcmbATlC3X6y/g2FEeSSLGrb6E6d3iemht8oio+aY6ld3YOdAnMwx45Q==, + } hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -12495,105 +19729,189 @@ packages: optional: true stream-browserify@3.0.0: - resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} + resolution: + { + integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==, + } streamx@2.22.1: - resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} + resolution: + { + integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==, + } strict-event-emitter@0.5.1: - resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} + resolution: + { + integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==, + } string-argv@0.3.2: - resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} - engines: {node: '>=0.6.19'} + resolution: + { + integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, + } + engines: { node: '>=0.6.19' } string-width@4.2.3: - resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, + } + engines: { node: '>=8' } string-width@5.1.2: - resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, + } + engines: { node: '>=12' } string.prototype.trim@1.2.10: - resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==, + } + engines: { node: '>= 0.4' } string.prototype.trimend@1.0.9: - resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==, + } + engines: { node: '>= 0.4' } string.prototype.trimstart@1.0.8: - resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, + } + engines: { node: '>= 0.4' } string_decoder@1.1.1: - resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + resolution: + { + integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, + } string_decoder@1.3.0: - resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} + resolution: + { + integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, + } stringify-entities@4.0.4: - resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + resolution: + { + integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, + } strip-ansi@6.0.1: - resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, + } + engines: { node: '>=8' } strip-ansi@7.1.0: - resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, + } + engines: { node: '>=12' } strip-bom@3.0.0: - resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, + } + engines: { node: '>=4' } strip-final-newline@2.0.0: - resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, + } + engines: { node: '>=6' } strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, + } + engines: { node: '>=12' } strip-indent@3.0.0: - resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, + } + engines: { node: '>=8' } strip-indent@4.0.0: - resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==, + } + engines: { node: '>=12' } strip-json-comments@2.0.1: - resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, + } + engines: { node: '>=0.10.0' } strip-json-comments@3.1.1: - resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, + } + engines: { node: '>=8' } strip-json-comments@5.0.3: - resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==, + } + engines: { node: '>=14.16' } strip-literal@3.0.0: - resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} + resolution: + { + integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==, + } strnum@2.1.1: - resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + resolution: + { + integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==, + } style-mod@4.1.2: - resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} + resolution: + { + integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==, + } style-to-js@1.1.17: - resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} + resolution: + { + integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==, + } style-to-object@1.0.9: - resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} + resolution: + { + integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==, + } styled-jsx@5.1.6: - resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==, + } + engines: { node: '>= 12.0.0' } peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' @@ -12605,8 +19923,11 @@ packages: optional: true styled-jsx@5.1.7: - resolution: {integrity: sha512-HPLmEIYprxCeWDMLYiaaAhsV3yGfIlCqzuVOybE6fjF3SUJmH67nCoMDO+nAvHNHo46OfvpCNu4Rcue82dMNFg==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-HPLmEIYprxCeWDMLYiaaAhsV3yGfIlCqzuVOybE6fjF3SUJmH67nCoMDO+nAvHNHo46OfvpCNu4Rcue82dMNFg==, + } + engines: { node: '>= 12.0.0' } peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' @@ -12618,103 +19939,184 @@ packages: optional: true stylis@4.2.0: - resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} + resolution: + { + integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, + } stylis@4.3.6: - resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} + resolution: + { + integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==, + } supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, + } + engines: { node: '>=4' } supports-color@7.2.0: - resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, + } + engines: { node: '>=8' } supports-color@8.1.1: - resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, + } + engines: { node: '>=10' } supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, + } + engines: { node: '>=8' } supports-preserve-symlinks-flag@1.0.0: - resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, + } + engines: { node: '>= 0.4' } swap-case@1.1.2: - resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} + resolution: + { + integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==, + } symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} + resolution: + { + integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, + } system-architecture@0.1.0: - resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==, + } + engines: { node: '>=18' } tabbable@6.2.0: - resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} + resolution: + { + integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, + } tagged-comment-parser@1.3.8: - resolution: {integrity: sha512-HYkOQ/8ha113ln/Vp48wiDTPtbB59AWOdU44AXjhLyJLJjWWfn2kjnXUcyWLQepwbixA/mEeo1iW2Z9OwaBClQ==} + resolution: + { + integrity: sha512-HYkOQ/8ha113ln/Vp48wiDTPtbB59AWOdU44AXjhLyJLJjWWfn2kjnXUcyWLQepwbixA/mEeo1iW2Z9OwaBClQ==, + } tailwind-merge@3.4.0: - resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} + resolution: + { + integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==, + } tailwindcss-animate@1.0.7: - resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} + resolution: + { + integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==, + } peerDependencies: tailwindcss: '>=3.0.0 || insiders' tailwindcss@4.1.12: - resolution: {integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==} + resolution: + { + integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==, + } tailwindcss@4.1.17: - resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==} + resolution: + { + integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==, + } tapable@2.2.2: - resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==, + } + engines: { node: '>=6' } tar-stream@2.2.0: - resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, + } + engines: { node: '>=6' } tar-stream@3.1.7: - resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} + resolution: + { + integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, + } tar@7.4.3: - resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==, + } + engines: { node: '>=18' } tarn@3.0.2: - resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} - engines: {node: '>=8.0.0'} + resolution: + { + integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==, + } + engines: { node: '>=8.0.0' } temp-dir@1.0.0: - resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==, + } + engines: { node: '>=4' } temp-dir@2.0.0: - resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==, + } + engines: { node: '>=8' } temp-write@4.0.0: - resolution: {integrity: sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==, + } + engines: { node: '>=8' } tempy@1.0.1: - resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==, + } + engines: { node: '>=10' } terminal-link@2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==, + } + engines: { node: '>=8' } terser-webpack-plugin@5.3.14: - resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} - engines: {node: '>= 10.13.0'} + resolution: + { + integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==, + } + engines: { node: '>= 10.13.0' } peerDependencies: '@swc/core': '*' esbuild: '*' @@ -12729,147 +20131,267 @@ packages: optional: true terser@5.43.1: - resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==, + } + engines: { node: '>=10' } hasBin: true test-exclude@7.0.1: - resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==, + } + engines: { node: '>=18' } text-decoder@1.2.3: - resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} + resolution: + { + integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==, + } thread-stream@2.7.0: - resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} + resolution: + { + integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==, + } throttle-debounce@3.0.1: - resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==, + } + engines: { node: '>=10' } through@2.3.8: - resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} + resolution: + { + integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, + } tildify@2.0.0: - resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==, + } + engines: { node: '>=8' } tiny-invariant@1.3.3: - resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} + resolution: + { + integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==, + } tinybench@2.9.0: - resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + resolution: + { + integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, + } tinycolor2@1.6.0: - resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} + resolution: + { + integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, + } tinyexec@0.3.2: - resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + resolution: + { + integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, + } tinyexec@1.0.1: - resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} + resolution: + { + integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==, + } tinyglobby@0.2.14: - resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} - engines: {node: '>=12.0.0'} + resolution: + { + integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==, + } + engines: { node: '>=12.0.0' } tinygradient@1.1.5: - resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} + resolution: + { + integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==, + } tinypool@1.1.1: - resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} - engines: {node: ^18.0.0 || >=20.0.0} + resolution: + { + integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==, + } + engines: { node: ^18.0.0 || >=20.0.0 } tinyrainbow@2.0.0: - resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==, + } + engines: { node: '>=14.0.0' } tinyspy@3.0.2: - resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==, + } + engines: { node: '>=14.0.0' } tinyspy@4.0.3: - resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==, + } + engines: { node: '>=14.0.0' } title-case@2.1.1: - resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} + resolution: + { + integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==, + } title@4.0.1: - resolution: {integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==} + resolution: + { + integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==, + } hasBin: true tldts-core@6.1.86: - resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} + resolution: + { + integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==, + } tldts@6.1.86: - resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} + resolution: + { + integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==, + } hasBin: true tmp@0.0.33: - resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} - engines: {node: '>=0.6.0'} + resolution: + { + integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, + } + engines: { node: '>=0.6.0' } tmp@0.2.1: - resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} - engines: {node: '>=8.17.0'} + resolution: + { + integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==, + } + engines: { node: '>=8.17.0' } to-regex-range@5.0.1: - resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} - engines: {node: '>=8.0'} + resolution: + { + integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, + } + engines: { node: '>=8.0' } totalist@3.0.1: - resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, + } + engines: { node: '>=6' } tough-cookie@4.1.4: - resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==, + } + engines: { node: '>=6' } tough-cookie@5.1.2: - resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==, + } + engines: { node: '>=16' } tr46@0.0.3: - resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} + resolution: + { + integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, + } tr46@5.1.1: - resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==, + } + engines: { node: '>=18' } traverse@0.3.9: - resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} + resolution: + { + integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==, + } traverse@0.6.11: - resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==, + } + engines: { node: '>= 0.4' } tree-kill@1.2.2: - resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} + resolution: + { + integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, + } hasBin: true trim-lines@3.0.1: - resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + resolution: + { + integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, + } trim-trailing-lines@2.1.0: - resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==} + resolution: + { + integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==, + } trough@2.2.0: - resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + resolution: + { + integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==, + } ts-dedent@2.2.0: - resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} - engines: {node: '>=6.10'} + resolution: + { + integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==, + } + engines: { node: '>=6.10' } ts-deepmerge@6.2.1: - resolution: {integrity: sha512-8CYSLazCyj0DJDpPIxOFzJG46r93uh6EynYjuey+bxcLltBeqZL7DMfaE5ZPzZNFlav7wx+2TDa/mBl8gkTYzw==} - engines: {node: '>=14.13.1'} + resolution: + { + integrity: sha512-8CYSLazCyj0DJDpPIxOFzJG46r93uh6EynYjuey+bxcLltBeqZL7DMfaE5ZPzZNFlav7wx+2TDa/mBl8gkTYzw==, + } + engines: { node: '>=14.13.1' } ts-morph@26.0.0: - resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==} + resolution: + { + integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==, + } ts-node@10.9.2: - resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} + resolution: + { + integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, + } hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -12883,11 +20405,17 @@ packages: optional: true ts-pattern@4.3.0: - resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} + resolution: + { + integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==, + } tsconfck@3.1.6: - resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} - engines: {node: ^18 || >=20} + resolution: + { + integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==, + } + engines: { node: ^18 || >=20 } hasBin: true peerDependencies: typescript: ^5.0.0 @@ -12896,265 +20424,475 @@ packages: optional: true tsconfig-paths@4.2.0: - resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, + } + engines: { node: '>=6' } tslib@1.14.1: - resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} + resolution: + { + integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, + } tslib@2.8.1: - resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + resolution: + { + integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, + } tsx@4.20.5: - resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==, + } + engines: { node: '>=18.0.0' } hasBin: true turbo-darwin-64@2.5.6: - resolution: {integrity: sha512-3C1xEdo4aFwMJAPvtlPqz1Sw/+cddWIOmsalHFMrsqqydcptwBfu26WW2cDm3u93bUzMbBJ8k3zNKFqxJ9ei2A==} + resolution: + { + integrity: sha512-3C1xEdo4aFwMJAPvtlPqz1Sw/+cddWIOmsalHFMrsqqydcptwBfu26WW2cDm3u93bUzMbBJ8k3zNKFqxJ9ei2A==, + } cpu: [x64] os: [darwin] turbo-darwin-arm64@2.5.6: - resolution: {integrity: sha512-LyiG+rD7JhMfYwLqB6k3LZQtYn8CQQUePbpA8mF/hMLPAekXdJo1g0bUPw8RZLwQXUIU/3BU7tXENvhSGz5DPA==} + resolution: + { + integrity: sha512-LyiG+rD7JhMfYwLqB6k3LZQtYn8CQQUePbpA8mF/hMLPAekXdJo1g0bUPw8RZLwQXUIU/3BU7tXENvhSGz5DPA==, + } cpu: [arm64] os: [darwin] turbo-linux-64@2.5.6: - resolution: {integrity: sha512-GOcUTT0xiT/pSnHL4YD6Yr3HreUhU8pUcGqcI2ksIF9b2/r/kRHwGFcsHgpG3+vtZF/kwsP0MV8FTlTObxsYIA==} + resolution: + { + integrity: sha512-GOcUTT0xiT/pSnHL4YD6Yr3HreUhU8pUcGqcI2ksIF9b2/r/kRHwGFcsHgpG3+vtZF/kwsP0MV8FTlTObxsYIA==, + } cpu: [x64] os: [linux] turbo-linux-arm64@2.5.6: - resolution: {integrity: sha512-10Tm15bruJEA3m0V7iZcnQBpObGBcOgUcO+sY7/2vk1bweW34LMhkWi8svjV9iDF68+KJDThnYDlYE/bc7/zzQ==} + resolution: + { + integrity: sha512-10Tm15bruJEA3m0V7iZcnQBpObGBcOgUcO+sY7/2vk1bweW34LMhkWi8svjV9iDF68+KJDThnYDlYE/bc7/zzQ==, + } cpu: [arm64] os: [linux] turbo-windows-64@2.5.6: - resolution: {integrity: sha512-FyRsVpgaj76It0ludwZsNN40ytHN+17E4PFJyeliBEbxrGTc5BexlXVpufB7XlAaoaZVxbS6KT8RofLfDRyEPg==} + resolution: + { + integrity: sha512-FyRsVpgaj76It0ludwZsNN40ytHN+17E4PFJyeliBEbxrGTc5BexlXVpufB7XlAaoaZVxbS6KT8RofLfDRyEPg==, + } cpu: [x64] os: [win32] turbo-windows-arm64@2.5.6: - resolution: {integrity: sha512-j/tWu8cMeQ7HPpKri6jvKtyXg9K1gRyhdK4tKrrchH8GNHscPX/F71zax58yYtLRWTiK04zNzPcUJuoS0+v/+Q==} + resolution: + { + integrity: sha512-j/tWu8cMeQ7HPpKri6jvKtyXg9K1gRyhdK4tKrrchH8GNHscPX/F71zax58yYtLRWTiK04zNzPcUJuoS0+v/+Q==, + } cpu: [arm64] os: [win32] turbo@2.5.6: - resolution: {integrity: sha512-gxToHmi9oTBNB05UjUsrWf0OyN5ZXtD0apOarC1KIx232Vp3WimRNy3810QzeNSgyD5rsaIDXlxlbnOzlouo+w==} + resolution: + { + integrity: sha512-gxToHmi9oTBNB05UjUsrWf0OyN5ZXtD0apOarC1KIx232Vp3WimRNy3810QzeNSgyD5rsaIDXlxlbnOzlouo+w==, + } hasBin: true twoslash-protocol@0.3.4: - resolution: {integrity: sha512-HHd7lzZNLUvjPzG/IE6js502gEzLC1x7HaO1up/f72d8G8ScWAs9Yfa97igelQRDl5h9tGcdFsRp+lNVre1EeQ==} + resolution: + { + integrity: sha512-HHd7lzZNLUvjPzG/IE6js502gEzLC1x7HaO1up/f72d8G8ScWAs9Yfa97igelQRDl5h9tGcdFsRp+lNVre1EeQ==, + } twoslash@0.3.4: - resolution: {integrity: sha512-RtJURJlGRxrkJmTcZMjpr7jdYly1rfgpujJr1sBM9ch7SKVht/SjFk23IOAyvwT1NLCk+SJiMrvW4rIAUM2Wug==} + resolution: + { + integrity: sha512-RtJURJlGRxrkJmTcZMjpr7jdYly1rfgpujJr1sBM9ch7SKVht/SjFk23IOAyvwT1NLCk+SJiMrvW4rIAUM2Wug==, + } peerDependencies: typescript: ^5.5.0 type-check@0.4.0: - resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} - engines: {node: '>= 0.8.0'} + resolution: + { + integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, + } + engines: { node: '>= 0.8.0' } type-fest@0.16.0: - resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==, + } + engines: { node: '>=10' } type-fest@0.21.3: - resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, + } + engines: { node: '>=10' } type-fest@0.6.0: - resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, + } + engines: { node: '>=8' } type-fest@0.7.1: - resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==, + } + engines: { node: '>=8' } type-fest@0.8.1: - resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, + } + engines: { node: '>=8' } type-fest@1.4.0: - resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==, + } + engines: { node: '>=10' } type-fest@2.19.0: - resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, + } + engines: { node: '>=12.20' } type-fest@3.13.1: - resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} - engines: {node: '>=14.16'} + resolution: + { + integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==, + } + engines: { node: '>=14.16' } type-fest@4.41.0: - resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} - engines: {node: '>=16'} + resolution: + { + integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==, + } + engines: { node: '>=16' } typed-array-buffer@1.0.3: - resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, + } + engines: { node: '>= 0.4' } typed-array-byte-length@1.0.3: - resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==, + } + engines: { node: '>= 0.4' } typed-array-byte-offset@1.0.4: - resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==, + } + engines: { node: '>= 0.4' } typed-array-length@1.0.7: - resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==, + } + engines: { node: '>= 0.4' } typedarray.prototype.slice@1.0.5: - resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==, + } + engines: { node: '>= 0.4' } typedarray@0.0.6: - resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} + resolution: + { + integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, + } typescript@5.9.2: - resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} - engines: {node: '>=14.17'} + resolution: + { + integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==, + } + engines: { node: '>=14.17' } hasBin: true uc.micro@2.1.0: - resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} + resolution: + { + integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, + } ufo@1.6.1: - resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} + resolution: + { + integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==, + } uglify-js@3.19.3: - resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} - engines: {node: '>=0.8.0'} + resolution: + { + integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==, + } + engines: { node: '>=0.8.0' } hasBin: true unbox-primitive@1.1.0: - resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==, + } + engines: { node: '>= 0.4' } undici-types@6.21.0: - resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + resolution: + { + integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, + } undici-types@7.10.0: - resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} + resolution: + { + integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==, + } unicode-canonical-property-names-ecmascript@2.0.1: - resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==, + } + engines: { node: '>=4' } unicode-match-property-ecmascript@2.0.0: - resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, + } + engines: { node: '>=4' } unicode-match-property-value-ecmascript@2.2.0: - resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==, + } + engines: { node: '>=4' } unicode-property-aliases-ecmascript@2.1.0: - resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} - engines: {node: '>=4'} + resolution: + { + integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, + } + engines: { node: '>=4' } unicorn-magic@0.1.0: - resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, + } + engines: { node: '>=18' } unified@11.0.5: - resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + resolution: + { + integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==, + } unique-string@2.0.0: - resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, + } + engines: { node: '>=8' } unist-util-filter@5.0.1: - resolution: {integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==} + resolution: + { + integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==, + } unist-util-find-after@5.0.0: - resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} + resolution: + { + integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==, + } unist-util-is@5.2.1: - resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} + resolution: + { + integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, + } unist-util-is@6.0.0: - resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + resolution: + { + integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, + } unist-util-modify-children@4.0.0: - resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} + resolution: + { + integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==, + } unist-util-position-from-estree@2.0.0: - resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} + resolution: + { + integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==, + } unist-util-position@5.0.0: - resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + resolution: + { + integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, + } unist-util-remove-position@5.0.0: - resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + resolution: + { + integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==, + } unist-util-remove@4.0.0: - resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} + resolution: + { + integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==, + } unist-util-stringify-position@4.0.0: - resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + resolution: + { + integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, + } unist-util-visit-children@3.0.0: - resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} + resolution: + { + integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==, + } unist-util-visit-parents@4.1.1: - resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} + resolution: + { + integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==, + } unist-util-visit-parents@6.0.1: - resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + resolution: + { + integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, + } unist-util-visit@3.1.0: - resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} + resolution: + { + integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==, + } unist-util-visit@5.0.0: - resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + resolution: + { + integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, + } universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} + resolution: + { + integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, + } + engines: { node: '>= 4.0.0' } universalify@2.0.1: - resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} - engines: {node: '>= 10.0.0'} + resolution: + { + integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, + } + engines: { node: '>= 10.0.0' } unplugin@1.0.1: - resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} + resolution: + { + integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==, + } unplugin@1.16.1: - resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==, + } + engines: { node: '>=14.0.0' } update-browserslist-db@1.1.3: - resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} + resolution: + { + integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==, + } hasBin: true peerDependencies: browserslist: '>= 4.21.0' update-check@1.5.4: - resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} + resolution: + { + integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==, + } upper-case-first@1.1.2: - resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==} + resolution: + { + integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==, + } upper-case@1.1.3: - resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} + resolution: + { + integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==, + } uri-js@4.4.1: - resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + resolution: + { + integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, + } url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} + resolution: + { + integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, + } url-template@2.0.8: - resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} + resolution: + { + integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==, + } use-callback-ref@1.3.3: - resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==, + } + engines: { node: '>=10' } peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc @@ -13163,27 +20901,39 @@ packages: optional: true use-debounce@10.0.5: - resolution: {integrity: sha512-Q76E3lnIV+4YT9AHcrHEHYmAd9LKwUAbPXDm7FlqVGDHiSOhX3RDjT8dm0AxbJup6WgOb1YEcKyCr11kBJR5KQ==} - engines: {node: '>= 16.0.0'} + resolution: + { + integrity: sha512-Q76E3lnIV+4YT9AHcrHEHYmAd9LKwUAbPXDm7FlqVGDHiSOhX3RDjT8dm0AxbJup6WgOb1YEcKyCr11kBJR5KQ==, + } + engines: { node: '>= 16.0.0' } peerDependencies: react: '*' use-deep-compare-effect@1.8.1: - resolution: {integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==} - engines: {node: '>=10', npm: '>=6'} + resolution: + { + integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==, + } + engines: { node: '>=10', npm: '>=6' } peerDependencies: react: '>=16.13' use-next-sse@0.2.3: - resolution: {integrity: sha512-THr8yqtMaG59nzUtF9r4i23SiBfMC0OyUTDkW5CPgX4xxaZLUlpME/205bj5j8i3/89yFLpI0Yk4mv4WuM6rxQ==} + resolution: + { + integrity: sha512-THr8yqtMaG59nzUtF9r4i23SiBfMC0OyUTDkW5CPgX4xxaZLUlpME/205bj5j8i3/89yFLpI0Yk4mv4WuM6rxQ==, + } peerDependencies: next: '>=13.5.9 >=14.2.25 >=15.2.3' react: '>=18.0.0' react-dom: '>=18.0.0' use-sidecar@1.1.3: - resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==, + } + engines: { node: '>=10' } peerDependencies: '@types/react': '-' react: '-' @@ -13192,74 +20942,128 @@ packages: optional: true use-sync-external-store@1.5.0: - resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} + resolution: + { + integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==, + } peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 util-deprecate@1.0.2: - resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + resolution: + { + integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, + } uuid@11.1.0: - resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} + resolution: + { + integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==, + } hasBin: true uuid@3.4.0: - resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} + resolution: + { + integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, + } deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + resolution: + { + integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, + } hasBin: true uuid@9.0.0: - resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + resolution: + { + integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==, + } hasBin: true uuid@9.0.1: - resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + resolution: + { + integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, + } hasBin: true v8-compile-cache-lib@3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + resolution: + { + integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, + } v8-compile-cache@2.4.0: - resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} + resolution: + { + integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, + } validate-npm-package-license@3.0.4: - resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} + resolution: + { + integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, + } validate-npm-package-name@5.0.1: - resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} - engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + resolution: + { + integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==, + } + engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } vary@1.1.2: - resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} - engines: {node: '>= 0.8'} + resolution: + { + integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, + } + engines: { node: '>= 0.8' } vfile-location@5.0.3: - resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} + resolution: + { + integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==, + } vfile-message@4.0.3: - resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} + resolution: + { + integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==, + } vfile@6.0.3: - resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} + resolution: + { + integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, + } vite-node@3.2.4: - resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + resolution: + { + integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true vite-plugin-storybook-nextjs@2.0.6: - resolution: {integrity: sha512-lx0UhPIc3bIygsJyP0Bczarj2sV+fqzAkrg88jmJkVST26VuQPcErnsXCSR9gB3ElQQvK4bN2E5ojJFtXwvSiA==} + resolution: + { + integrity: sha512-lx0UhPIc3bIygsJyP0Bczarj2sV+fqzAkrg88jmJkVST26VuQPcErnsXCSR9gB3ElQQvK4bN2E5ojJFtXwvSiA==, + } peerDependencies: next: ^14.1.0 || ^15.0.0 storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vite-tsconfig-paths@5.1.4: - resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} + resolution: + { + integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==, + } peerDependencies: vite: '*' peerDependenciesMeta: @@ -13267,8 +21071,11 @@ packages: optional: true vite@6.3.5: - resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + resolution: + { + integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true peerDependencies: '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 @@ -13307,8 +21114,11 @@ packages: optional: true vitest@3.2.4: - resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} - engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} + resolution: + { + integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==, + } + engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -13335,62 +21145,113 @@ packages: optional: true vscode-jsonrpc@8.2.0: - resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} - engines: {node: '>=14.0.0'} + resolution: + { + integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==, + } + engines: { node: '>=14.0.0' } vscode-languageserver-protocol@3.17.5: - resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} + resolution: + { + integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==, + } vscode-languageserver-textdocument@1.0.12: - resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} + resolution: + { + integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==, + } vscode-languageserver-types@3.17.5: - resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} + resolution: + { + integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==, + } vscode-languageserver@9.0.1: - resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} + resolution: + { + integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==, + } hasBin: true vscode-uri@3.0.8: - resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} + resolution: + { + integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==, + } w3c-keyname@2.2.8: - resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} + resolution: + { + integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, + } w3c-xmlserializer@5.0.0: - resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==, + } + engines: { node: '>=18' } watchpack@2.4.4: - resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==, + } + engines: { node: '>=10.13.0' } wcwidth@1.0.1: - resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + resolution: + { + integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, + } web-namespaces@2.0.1: - resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} + resolution: + { + integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, + } webidl-conversions@3.0.1: - resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} + resolution: + { + integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, + } webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, + } + engines: { node: '>=12' } webpack-sources@3.3.3: - resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==, + } + engines: { node: '>=10.13.0' } webpack-virtual-modules@0.5.0: - resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} + resolution: + { + integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==, + } webpack-virtual-modules@0.6.2: - resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} + resolution: + { + integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==, + } webpack@5.94.0: - resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} - engines: {node: '>=10.13.0'} + resolution: + { + integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==, + } + engines: { node: '>=10.13.0' } hasBin: true peerDependencies: webpack-cli: '*' @@ -13399,81 +21260,141 @@ packages: optional: true whatwg-encoding@3.1.1: - resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, + } + engines: { node: '>=18' } whatwg-mimetype@4.0.0: - resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, + } + engines: { node: '>=18' } whatwg-url@14.2.0: - resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==, + } + engines: { node: '>=18' } whatwg-url@5.0.0: - resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} + resolution: + { + integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, + } which-boxed-primitive@1.1.1: - resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==, + } + engines: { node: '>= 0.4' } which-builtin-type@1.2.1: - resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==, + } + engines: { node: '>= 0.4' } which-collection@1.0.2: - resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, + } + engines: { node: '>= 0.4' } which-typed-array@1.1.19: - resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} - engines: {node: '>= 0.4'} + resolution: + { + integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==, + } + engines: { node: '>= 0.4' } which@2.0.2: - resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} - engines: {node: '>= 8'} + resolution: + { + integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, + } + engines: { node: '>= 8' } hasBin: true why-is-node-running@2.3.0: - resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, + } + engines: { node: '>=8' } hasBin: true wicked-good-xpath@1.3.0: - resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} + resolution: + { + integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==, + } widest-line@4.0.1: - resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, + } + engines: { node: '>=12' } wildcard@1.1.2: - resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} + resolution: + { + integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==, + } word-wrap@1.2.5: - resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} - engines: {node: '>=0.10.0'} + resolution: + { + integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, + } + engines: { node: '>=0.10.0' } wordwrap@1.0.0: - resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} + resolution: + { + integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, + } wrap-ansi@6.2.0: - resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} - engines: {node: '>=8'} + resolution: + { + integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, + } + engines: { node: '>=8' } wrap-ansi@7.0.0: - resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, + } + engines: { node: '>=10' } wrap-ansi@8.1.0: - resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, + } + engines: { node: '>=12' } wrappy@1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + resolution: + { + integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, + } ws@8.17.1: - resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==, + } + engines: { node: '>=10.0.0' } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -13484,8 +21405,11 @@ packages: optional: true ws@8.18.3: - resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} - engines: {node: '>=10.0.0'} + resolution: + { + integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==, + } + engines: { node: '>=10.0.0' } peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -13496,94 +21420,163 @@ packages: optional: true xml-name-validator@5.0.0: - resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==, + } + engines: { node: '>=18' } xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} + resolution: + { + integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, + } xtend@4.0.2: - resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} - engines: {node: '>=0.4'} + resolution: + { + integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, + } + engines: { node: '>=0.4' } y18n@5.0.8: - resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, + } + engines: { node: '>=10' } yallist@3.1.1: - resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} + resolution: + { + integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, + } yallist@4.0.0: - resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} + resolution: + { + integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, + } yallist@5.0.0: - resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==, + } + engines: { node: '>=18' } yaml@1.10.2: - resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} - engines: {node: '>= 6'} + resolution: + { + integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, + } + engines: { node: '>= 6' } yaml@2.3.1: - resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} - engines: {node: '>= 14'} + resolution: + { + integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==, + } + engines: { node: '>= 14' } yaml@2.8.1: - resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} - engines: {node: '>= 14.6'} + resolution: + { + integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==, + } + engines: { node: '>= 14.6' } hasBin: true yargs-parser@21.1.1: - resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, + } + engines: { node: '>=12' } yargs@17.7.2: - resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} - engines: {node: '>=12'} + resolution: + { + integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, + } + engines: { node: '>=12' } yjs@13.6.19: - resolution: {integrity: sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==} - engines: {node: '>=16.0.0', npm: '>=8.0.0'} + resolution: + { + integrity: sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==, + } + engines: { node: '>=16.0.0', npm: '>=8.0.0' } yn@3.1.1: - resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} - engines: {node: '>=6'} + resolution: + { + integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, + } + engines: { node: '>=6' } yocto-queue@0.1.0: - resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} - engines: {node: '>=10'} + resolution: + { + integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, + } + engines: { node: '>=10' } yocto-queue@1.2.1: - resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} - engines: {node: '>=12.20'} + resolution: + { + integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==, + } + engines: { node: '>=12.20' } yoctocolors-cjs@2.1.2: - resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} - engines: {node: '>=18'} + resolution: + { + integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==, + } + engines: { node: '>=18' } zip-stream@4.1.1: - resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} - engines: {node: '>= 10'} + resolution: + { + integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==, + } + engines: { node: '>= 10' } zip-stream@5.0.2: - resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} - engines: {node: '>= 12.0.0'} + resolution: + { + integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==, + } + engines: { node: '>= 12.0.0' } zod-validation-error@5.0.0: - resolution: {integrity: sha512-hmk+pkyKq7Q71PiWVSDUc3VfpzpvcRHZ3QPw9yEMVvmtCekaMeOHnbr3WbxfrgEnQTv6haGP4cmv0Ojmihzsxw==} - engines: {node: '>=18.0.0'} + resolution: + { + integrity: sha512-hmk+pkyKq7Q71PiWVSDUc3VfpzpvcRHZ3QPw9yEMVvmtCekaMeOHnbr3WbxfrgEnQTv6haGP4cmv0Ojmihzsxw==, + } + engines: { node: '>=18.0.0' } peerDependencies: zod: ^3.25.0 || ^4.0.0 zod@3.25.76: - resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} + resolution: + { + integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==, + } zod@4.0.0-beta.20250424T163858: - resolution: {integrity: sha512-fKhW+lEJnfUGo0fvQjmam39zUytARR2UdCEh7/OXJSBbKScIhD343K74nW+UUHu/r6dkzN6Uc/GqwogFjzpCXg==} + resolution: + { + integrity: sha512-fKhW+lEJnfUGo0fvQjmam39zUytARR2UdCEh7/OXJSBbKScIhD343K74nW+UUHu/r6dkzN6Uc/GqwogFjzpCXg==, + } zustand@4.5.7: - resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} - engines: {node: '>=12.7.0'} + resolution: + { + integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==, + } + engines: { node: '>=12.7.0' } peerDependencies: '@types/react': '>=16.8' immer: '>=9.0.6' @@ -13597,8 +21590,11 @@ packages: optional: true zustand@5.0.8: - resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==} - engines: {node: '>=12.20.0'} + resolution: + { + integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==, + } + engines: { node: '>=12.20.0' } peerDependencies: '@types/react': '>=18.0.0' immer: '>=9.0.6' @@ -13615,10 +21611,12 @@ packages: optional: true zwitch@2.0.4: - resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + resolution: + { + integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, + } snapshots: - '@adobe/css-tools@4.4.4': {} '@alloc/quick-lru@5.2.0': {} @@ -17786,7 +25784,8 @@ snapshots: '@prisma/debug@5.22.0': {} - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': + {} '@prisma/engines@5.0.0': {} @@ -17926,9 +25925,11 @@ snapshots: arg: 5.0.2 prompts: 2.4.2 - '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': {} + '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': + {} - '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': + {} '@prisma/schema-files-loader@5.22.0': dependencies: diff --git a/self-host/.env.example b/self-host/.env.example index a4a9c1b8e3..3cbde23db2 100644 --- a/self-host/.env.example +++ b/self-host/.env.example @@ -39,7 +39,7 @@ SMTP_USERNAME="xxx" API_KEY="super_secret_key" -OTEL_SERVICE_NAME="pubpub-v7-dev" # should be shared across components but not environments +OTEL_SERVICE_NAME="pubstar-v7-dev" # should be shared across components but not environments HONEYCOMB_API_KEY="xxx" # KYSELY_DEBUG="true" diff --git a/self-host/docker-compose.yml b/self-host/docker-compose.yml index 0c82022809..9295677030 100644 --- a/self-host/docker-compose.yml +++ b/self-host/docker-compose.yml @@ -64,8 +64,6 @@ services: # can be removed if you manually set up a reverse proxy like nginx instead # useful if you want your assets, platform, and site to be on the same domain # but with different paths - # note: requires the caddy-sites image built from Dockerfile.caddy - # you can build it with: docker build -f Dockerfile.caddy -t ghcr.io/pubpub/caddy-sites:latest . caddy: image: caddy:latest depends_on: diff --git a/site-builder-2/.env.server.development b/site-builder-2/.env.server.development index 303ab43cfc..d6d8a74fad 100644 --- a/site-builder-2/.env.server.development +++ b/site-builder-2/.env.server.development @@ -3,6 +3,6 @@ S3_ACCESS_KEY=pubpubuser S3_SECRET_KEY=pubpubpass S3_ENDPOINT=http://localhost:9000 S3_REGION=us-east-1 -S3_BUCKET_NAME=assets.v7.pubpub.org +S3_BUCKET_NAME=assets.pubpub.org S3_REGION=us-east-1 PORT=4000 diff --git a/site-builder-2/package.json b/site-builder-2/package.json index 965582ee96..7dadb82c6e 100644 --- a/site-builder-2/package.json +++ b/site-builder-2/package.json @@ -20,7 +20,7 @@ "@ts-rest/core": "catalog:", "@ts-rest/serverless": "^3.52.1", "archiver": "^6.0.2", - "@pubpub/json-interpolate": "workspace:", + "@pubstar/json-interpolate": "workspace:", "contracts": "workspace:", "dotenv": "^16.4.5", "hono": "^4.9.7", diff --git a/site-builder-2/server/server.ts b/site-builder-2/server/server.ts index 8303781589..17cfc9ff9f 100644 --- a/site-builder-2/server/server.ts +++ b/site-builder-2/server/server.ts @@ -9,12 +9,12 @@ import { PassThrough } from "node:stream" import { S3Client } from "@aws-sdk/client-s3" import { Upload } from "@aws-sdk/lib-storage" import { serve } from "@hono/node-server" +import { interpolate } from "@pubstar/json-interpolate" import { initClient } from "@ts-rest/core" import { fetchRequestHandler, tsr } from "@ts-rest/serverless/fetch" import archiver from "archiver" import { Hono } from "hono" -import { interpolate } from "@pubpub/json-interpolate" import { createPubProxy, siteApi } from "contracts" import { siteBuilderApi } from "contracts/resources/site-builder-2" import { logger } from "logger" From d33e2db19812c3d4b664ecef964728dc8f3fd0e5 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 16:25:31 +0200 Subject: [PATCH 139/153] fix: rencrypt --- infra/.env.enc | 99 +++++++++++++++++++++--------------------- infra/.env.preview.enc | 90 +++++++++++++++++++------------------- infra/.env.sandbox.enc | 90 +++++++++++++++++++------------------- 3 files changed, 140 insertions(+), 139 deletions(-) diff --git a/infra/.env.enc b/infra/.env.enc index 0e2291d6d0..7cd806279d 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,59 +1,60 @@ -#ENC[AES256_GCM,data:yx9KIliog6+5H6IsPqNAOoAaN4iwc+28Yaajzn7jhRhj,iv:N+jhYD5VHotHY9tnqmjdla4IiMEJIzKl4tqWtQv9pVM=,tag:WnrbMfHAiL333KOTqomH/A==,type:comment] -#ENC[AES256_GCM,data:pJ3VjS4e0TeggGUCLPa+4+F1NYWx91paUA/ffY0vWWDJUpf8ivr/Jv85eQFVBR7sk8yw5MO9NC6LADw=,iv:oCQtlZ7b31/op0dd8kWrAKe92Zc2Bznf5yO3W5tOuCM=,tag:z1mxBK9mMYjs8MFO7oHSVA==,type:comment] -#ENC[AES256_GCM,data:dfFpdAIkvJggdLyayutIYNtmYFu9lVk54iHMRD92FvVCCkb0zu8U4N87MRJMk8hCZshTdywcKq6R8eJXnGNJ8Iq9jA==,iv:2KZ3ZaG96+d5gX6pmtm0asNBghFnmFLdHIDKCEAUP6U=,tag:nrAJ0HKrAEFy/IsAATTIdA==,type:comment] -#ENC[AES256_GCM,data:nUOyYE5C9fViinr8fiD4mpUdaUdhTICzZe2/bfud1QDKe9pqPgx8mFqJNfcZgz4pQQ==,iv:l83DycBtw+vitLnslWtHbmt7uIYIuF76WP7GmqWrL3o=,tag:Er8cmFT0f4R3bUtMLeYpbQ==,type:comment] -PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:yL3am5+LtcgB59h15wzA,iv:Fd8YAisC3qy0ovlvMhr/0KFui3hnRPwg6v8KiSnvImw=,tag:J3bs1tGFCzxRmzArwo0VBg==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:p4xLl/NzrpAfhp+WzixfRerhj8AfmtU=,iv:3oQtsq25a7EYSb2IeEBX8ObLIS7kFmFMbYQ5anBHyN8=,tag:cd1XY92EM/whRJDgrex06A==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:yJiXMIVan4jG8En1pdjPVJba8l5ANXE=,iv:IFxBbzWPNQzuqr7kydrMQwb9fXcYAmciuNYCJ4M7pXs=,tag:5mWFODWIgvgXTjED8kAQww==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:Cj1Q/YHT9A8=,iv:e+olSU4YJBbqXZHDjulnc2ULmIt/xfrfPzbupFBbxWs=,tag:26ZjxXtIb+jTAGzoydVf/Q==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:ZRXVGP+apgH6XJogS2IvxGYyZmODcxBCuxNqyf/AjgUXD7BoAI2TzCYeJ0my+npsRcOy5e4ZfyDq2EXOu4apBA==,iv:ZPHhQ9icXwAMk1utJZGsXTt/KUi0+RncqiYZtwDnc98=,tag:AoARdiUeaQL+csGpEpVRVQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:7xafFD9INA==,iv:hO/Tgah7J5S168hxNupIv/wKaRjTd7dchuBNX3U6voI=,tag:NIuLSEEm5AvPWq5V6GMChw==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:04J74BOYT1K8XM6Z+Tbbvn6T5SVrkWDJnMLroSsuBJlEDko6sOYIoLLNMM8z+eCwAIORXOJvUzxNHuVx7kLUAnDDU3x/B5c80u71oH/nQ+cGDCBOS57cekGMz7bktzyXPxDzyKv3,iv:K0ajVpBtk3UdzoUymL7e6pYkqWVDGo03IXVtJXove7k=,tag:SlCGgIhEB6ApXpwf1s6Ssw==,type:str] -PGHOST=ENC[AES256_GCM,data:M/A=,iv:AydN8aBCRujs0f14+CVDr9avNIr17OWQBDkzWd2u47o=,tag:xal29gkc+snJPjLQXaLiTQ==,type:str] -PGPORT=ENC[AES256_GCM,data:S7SMmA==,iv:LgQzBOajqLdc56m/MO3xJZlqoSBNZFn0CBz0UqGi64g=,tag:WIZCqYpPjzL49n76Tk5P7Q==,type:str] -PGUSER=ENC[AES256_GCM,data:jJH2Tfi9hx4=,iv:6jcRTDnZ2kkPuf6qB3NAF7TMxnXN2cNcr2rXojMjn+Y=,tag:ReGSuGe38+cgbO9wwnG2Tw==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:iLT6Cwdm/OxPQ2XTt8mC+w8CWaPVpgfT5Sde7vijwThb/XcU0KTJfjKUc9QsYNK59VumvY7RajhawUnLQXXLww==,iv:OlP78ek8Is3QiONM3TBkEFj/x1hQfL3UK5daYoWNP6Y=,tag:D3bSfeS/GpSOLMYNtXP3XQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:vNegtEHOcA==,iv:XVC62qETkcoB6UArMn6WGJ21k4bpUpkgdA7QxTOT48g=,tag:VgbCNL1CPDCKKLcIuvMmzA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:wfWPXuA=,iv:uDKzB000ONJfGtArn/0DLLV1t9tqBMerDyMmwDG6HLk=,tag:CxQVHL8Q2Rn8ALMe0r7EFA==,type:str] -#ENC[AES256_GCM,data:zLPv0u5Fe6SVQyR9157CFbAHsjxIIj1Zmxlqibv3,iv:E5eGEaJYSpDCa4Ei81nsh4qRnjIrzlX9Tab7X4wzSyM=,tag:FuK7oApStEdllriil89mFA==,type:comment] -#ENC[AES256_GCM,data:Cfa7vCjkvwmpJsaUs7KyjcrcLGhhKgiWNgxuZDyqOLl0rw==,iv:342mSJ2acENtReJ0nu/xUOA1w3rtKZtgr4sgpf2g/rM=,tag:ZGpzFRdHsFBYDKD3oB+jEw==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:vqTwoOy6p4KWbYS/Yrs5Lt4Y,iv:IfmrvQ31JEPRqvRqH5meXISrVXu+vmSw//0gB9AHDAE=,tag:sxwnkdejzxP+MABDXh+OyA==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:nie1U3SGKUn53vJpGDWzw2064hs=,iv:HIuTN85cCi60iAF5kld1PkbA8fZZ3wEB5zw+2iQPVjo=,tag:uKY5MWew+oS4vPTBVw8u+A==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:zeviPdwYp/4GzlRpy3SKBmWPYVxcAXjPWg2rB1JblQSowcm3NRK1Eg==,iv:0lyiHDPhXqKT9VHq9+cCwHYmxWe7JtUmrwvtbpr0Dvo=,tag:TBKuMqHu8W+e0bG0fk59GQ==,type:str] -S3_REGION=ENC[AES256_GCM,data:43fT6QakXj9+,iv:CTNBQdtCH+MIe44Up2dnefV+GAoCssxQjyxpG9gEAM8=,tag:X6Qzf3oqCcztbwb6E4SJbg==,type:str] -#ENC[AES256_GCM,data:XAz6GsGQpml5nG11HFHKPTCEzUzOoXDb+Bv4VsWm,iv:4KpptdceBAYeJgLPdpN3ixHeH2SIRvEXl8lIPKZ+Y8s=,tag:ZS8DeJSiuOlEYCSCeWTiDw==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:bIap0JdmXWRk,iv:4uAipXfY0BFIFw4sNFPrZfmfuj93It2lLO8xRfuVLaA=,tag:U+jm9BrliL2pg/rUiHa33g==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:fXe6ZNxtk/Jld+7c7qVoHPYWYiHQiW29,iv:WfSYJ+0L4+DesrNAXiP0qJWjUxvlQqNanonVBYyPdIs=,tag:O7I5B9RWIdK+r7U8dBwLoA==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:p+jUvCOQ//K3tDGOx29maFNddhfprenepKuDlMLn9SbrcA==,iv:A9lzmKGlTGr1i8ApEz9LsE6UXYBL6XOdFJAjYsJNx9Q=,tag:UMNdHEhqE/hhHVFzJlmfmA==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:7Q8m,iv:ZyuPkp0HBCm25em9Zkv786Ki/8+dZ+ayHActz0HcD9I=,tag:oCoBYyokm3SZsZah1/atxQ==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:8+/C7KMhh1n7XeA1vZC8vocc4JlScXdzsnDka43NzYDHnl6QzdVPObkTbJ8=,iv:huv3/CD3jDwRyUxkndV1mb0/tApUp6aEh5uFUPpixvU=,tag:t/JAqUv/8deAlZVeTA+Hhg==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:6c5YjDKkf1mWloQ5oaZoyvRK6iA=,iv:6k5lsmdGeYnvmGVKYXkeZCQiMh833SB7GmYYOU3e6B4=,tag:bRO+xJ1Vqllwh53jmMJQnA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:6rDAsSIvxbqo+V9lhqw/,iv:Dw6JPwtO+h2sldQDmRhUAVxRbeKht/+iwNZ7IEvdpQ0=,tag:NjKV3n6sLfeeIolpmDMiFQ==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:Z+wO5UQdSogYk7m3,iv:ZIVFqa7MGzv+2WyYmb/fNiZSHlHxbyutTWsgWvZoc8U=,tag:PY5BPX06He8VFVYNMPIxaQ==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:fyEZhWWfHU+3aBy3SLXm0T7cj2xN0CmybwZ8bAXql9wdFGMV0rbGFmkYNKL64NJaprfroMFaiVmqqDPdok6g80ObcUuT2puS7plRbL8A4yV4ssO69PEeAsSbW4+naBgH2TM/s/ekCNRaGyhGCD2ie4cx21p3Xbswlmjw0zkoOvDCkJHKzUZ4Y1XqbyXDHXnKQ2KEvUdsq2neBhspHuLUlO4zPv6D7TYu8p/K8jvPzPs0VqD3dQtdXUSG7e3YGcAl6tRsKLRY/vj87aKlxDl2onusFLt3EWQW/zA8WoBHD2FW2rithxtYeHhDCX+0sEgtToyqPPh0q2t/OsKViiiJZ4gVFRlZFIe4xvq18zpptGeE2eKmYkd7mCrKR8RxLefsSknYJrlCYFRLhzs8WQhVTbUTjCFkEmA00tkhNNk4V/922YLXgCki7TNel3ePsHwEMZZxjj3uuF7ohUFaCYJU5dyXbOnohURK6AjFbNnc2OexaOiF/8yhEBoZZhphNKQKiroAKbW4bujfbDvapYC4aAtZ2T26xFuio7L1Z0F4h7VwrCsilJzV5Se2yhxwfi9wyS1YQqVGFFBmIA9VgfyyF1NVWqYCSTlzZdgUL+erKbhK1wwEdkZiDIJTFO0MJj2++xFgew3ZZBuEEhhbSKqQor/RsKIgtp/oNCJ3PYHZMYBylv7hnvaKIiJ0wFPCHNC544dIwu5JrCMeK2c1EolqKdqKHQV+Y6xd7b9B3aN4BYLOhrYOUdeXn4RBpMYbzQP9eCFDHMIf6Ud4lRTsERUU+CaPzsrifvhpzoDc6Gjg52Txlsltqv3RFRacj2rW6kYhNOuyDPXneFVKmUi2apSTcSv7GAJlv4oqzPVefMjqETBs/9FL+tY4hPmcHGxPqPbH81DH89fW4cgJ+1fQl8Rt77Yn6Q/9dnEmWD3iZMNq3vcTtc/ZvYHtkjPE3rLelxN2l/3LTf4QFYOCQEj5kKsNjhnal42khap4TVpd4/bcPigzFQDRQtSZ2AmBUdV72B2ZeWbtwgwbiUn+AapJdNR5hrd18SPyeUNIfi/21rdjcNwj09lePs8DCCOpeDMgFNTt9oHmlQKWOSTOVcx7vcmiwQYlMZfYQjIqlpkE/RspQpuCOCy3PT43YoDU5eVsq8CZL0XP97Bk+0TR1cvdtelHBh2XCiz2lplsYcY0M6DhrCjLsjNCUewLTh3CgQ2XXItksFFAmgTe5qWRkiKN/2/i1F4jDwV8uoc1lbe0FG6/AsPWqkB/PCOqe+1nbaoHulvE/XyYhJPwZbClq4WPBX27BtZoOORJXoNByevJcbG5xe1+Hf0YOgiHZGg4pktbJn8XvpDMnA5/SzLjz7FhW7I3MjD/w20v/Gh/hD8O1UqXDKrd8dma0DOOIKOgwo5v+6AIJar3a8J22hFO6oag3mWsxSjfUSjuIX/MWrHfSbVj1dTKrkRfFk0aAN/4ev2kWuXp0O5FwiuUxcBD+3rwgW5v46xMqCzjWQ/z4wtr8MJRr8id5pNYnL7r1YLRLpYAh/LnAoUytGlBnGQBa0qsstcLYgYdg+P4N6TUqQXDPNZLves4Ru9NEid8DlAzh9jDF3iFFySPuKxtKzv+06bULoW8RjGn9LlzEPbgShtRJgt0m5A4dtmoTS6lGS1OuiAxS7Sygpme+RltYOaVc6nLm44CdyL5TVpFAwHJiX10iidxUYVOFxMV87KVw+WU0LtRiQPt566bG1dVdbuVjq9uXzC+uUWcE02R4+lZ5XUEUeQfg9aMnso5i4n2fPH2dhRirbatrm6NgQYf0ZWEjks5ErsPm7kaAHBgUAFcpvHRXJBLFP9Xsor6ihhOXB+5cuM3s6UtiZ1bBjkleEJ22uI08peG5Ebk79b1ZHn046ma81mvowCXB+4ujTI32furkFLjd9uPcQCAtUfpPzfsemy8y66VHT65BJBGeAIAEmnPD3KtPMs9ThI51WGzRmTwIvHLWEUgLRj4nc4c5tNl58wPj8SXOAEUCUp0qfKwOCDQ9x35WhcNWi1QU2i4G/cf3lv0YJB47Cinhz7A6KTBqsF6cHJM8NVeLDhzU14s1Ji1WnbRbzmzZ6quhkma2PyaSY4n3w19SxLuU/ckVd2AObjqMlbZfEySHMh5jGU0kVK27M6/OGpfHlFIxRb+PMRt4kEGNgeOgbvEyzWUKWMGu3yFi7ncFO0s9d47w2TDz5fICuT499w5c85LQpg7KSgrff6BvdXyGThwWatW3B9tDGppmSoasHESNK88g28X2GCvQbGL34Gqkd4YfzOA12PBUBcyWu7hvLLPAItcSLEkuwQWyVRfIrG/+wiW3C7ARwERygxXWtq20YT9RSqqJ3zNBx0gpb6IU29A4MoLeZnkVmlr2T/Afk2Nj4kebgx+oL2vQALM3ZMsoWUv13oe0/XVtHjSnJpGfYiHSjgicZ6cULzCNsvKh+XxzEOfkUqUTI4MxEOuhETJAOvMF36TBLdFMSMDsX5Ssy9TuU17kG57NpqGO6YZAZRixuP5d7qyrU0UXKxWZ7g2C4biigMUCLraX3X+cqCA20VSinVdJ2whHPUhhLZiib4VbDYlJDBe+uaICKhRqGdGcUERE9CX7riDdedgE/MWmPLz86ljNDCsCcNEEQoBQjqTzd3lvMzkV290EKUD+GSSgd7qExCavkEe8I07G/s8UlwQBMHYSLu2tBa9a8HblkOQdxWWvcojgIwHjgdvV77WAy5CYBTVP/uO5301HoD/FXF0MMTvFGi5Dthe5S43EPgj467hTWA3vaI+nwCmXxGMHiZdpM+cpQXtM+3Npmgh4PwSsNnSPvcqjVFczx34wRs4KqD2QPQPBDW8grid7ITx67pGVkgIAgCFhQ8o0bl7evx0/3afQ0PDByGn/P8iU6QQdda/p2PzHJL25ZKRnBGKYfjp671D0sYleqWXD1c4jRfuNwBDxeJ0gd6TG+Aj8w+oXFOwg0lOMhjxfqnDAC87wZDmYOue8FPPrW5jNe5Vb21TP0F1RBK6X+keBWIFMlQqyLsSp0N/SrZAWgfsOYHrNBYBwhxDVbytUAX4ZFCcSVVyvYuETXuYxuGisDugQdnpBgKe5fISkgIL9Nmrv8v0bziUSBh0+J3DtZKas+BGdlhQ6m983IR+ayqAypjJVy4rFRdpR6mmGy6VnIGvJQur1UdbdAkGv4HqCbOA5FKO1UlWUYV9ndKuX0k9QuX7Lwi5/iuQfynely9xOJVD9FFrM+0FmmJxUaT7zEZUh4edQaCpcMIwCtL97wCdGdn0/7SU1BJuOS45fdu3usAk2068MG5KIPFUhuVvwGevqj10VbF+P/6nHzxeGJCgD5/WeWDpYZC2O43bsLd2vif4h9DVvKF+QrdrPuzVAvSkXsI6Uw5UOidwDDF0TdBAz/UuOMXgZ4mhurb2Mzeaeg/07GxEMslZt90akQiEDXTOVj2yxAKm+35p9KFuq8PLP10bH8e4tXQqmPeA0srrlNAkghz/2UEHhkkS2v3/bsmq4xQkMq9RCwjt8XZwXbh0WEpC82XSGm0ZhGmV8eZKCEMAha/5FpLziLOt0ves3IFXaqxtPEgcBYCy6Z1E/k0gD530xQl1rU+yoYfs26ntlpvJlcX68gl15YZGruyBTR0Ui4D6oJ/b2UTw6wDQq0qMqzTimYiTzHE0y9BuGx98bw+WwWof0ODlApsUJfFK8WE7vb/MrZrDrDtCa1y8odrZHqu2J6oX5iRULjd2Tw/5AOhxK/JfZ+XSzSCBI+b6sWBkrEFEV5lCCdv0WlyLQeO3mFR23u8RCgn41YmBOfrWr81eOqqnB7BEZyxJ6TWBRp+UiRdU49HI0/B5jAAjmMKRV3nDfpyXBNkHf+MUNiQFnsnH0vlqCpBibJ0RrcF1uZSoOETAnQSOv3T6XQ7+z13hfZ0DzzZvlMyKpDjVGVaFnYhm1h2ZcfGIpkq2vK8Y0C6nDW/MVzUy0gl/lS6RoN9FopeKL3m6BFtlWwoHwcsKIzLHy4Kw8y+7Ehq6ripGalLcqaiLMkN09NeHiGnlhdH/mW45jJQo8S5v6Bi69zUCT5GpHhcds7EQuMkHXXJAgeuwRhOT31C4LtdWzKY4dibHxF7QDGVXsI39xlT993xDSio9AFL3sZLK/KznHM5vcGwOsfzG7bqSqw==,iv:XC+o6qPV4s1RdOrf5ITvivyDEtB6TQT/5CYYcra7JI0=,tag:wCU/QIIfRer8TR9tQZzUMg==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:EJarv2j5CQ==,iv:u/mx79RT9CbCRVyTKRaMJKlVf73PM3AR18v5/RitgFU=,tag:ZkAXkjAo3oiSfEmR0hcvaw==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:9bmwFyPDCZ++POiiUScqhp6HZfc5pq+N+U7YncwhIG0LqkPM3T8I0QRHKqwzWKYqVqWOKYWakvGPafp0DOlTtQ==,iv:tGSga/JZRsJn0eqfuKVwiyCsjFBBRklHpRQnatDJ8TE=,tag:VCnf8sHjdZI8dcgIBZ0i2Q==,type:str] -API_KEY=ENC[AES256_GCM,data:l/YgxAS4YSbttjDAuaiXFwJv7c4A5+Adhbk/QGidJUw=,iv:MZkc4NDjQgoXHBUovn2WKuf9fKvjvB+prC3givGUv8Q=,tag:7BjByRlAKk3u5wwkk2+LMg==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:oFd/WecNyWl487RrQy1CsYWHIwWKVuMC,iv:TiNcu9Xmh6vIsrhgU5L/uhWFl9oi9yAC4P4VruufHOU=,tag:zNbhJSwVpI3Md7ITElMwcg==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:x6EDx5TOzGX0i5c=,iv:rmwji20UGav0hDA+z5UNkYqgg5BflSR9ih+BuhiA974=,tag:a1Z7UvqebVwSkewd94MGZQ==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:Z5J4PmfvmUp12hkYAQgn,iv:5W/1V3I6bEtVuAvCrR0cZeA3gmIa5nRq8VD13yT8xgY=,tag:+DEDxspgJfbi2bj3uJlpZA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmOFpINkpYYmZtWXdFSGNM\nN054NmJvRlh1ZVdUOEd1OTdFbjhXQ0dnMDNZCjlhQi9ackVKZnUvOWFLc2Y0Tmhk\ncElCTkI0M1I0b0JRb2VPcTNPRmFha1UKLS0tIE44bW9UQ1BidzQ4Q0E0Z3RGRnIy\nc2ZpQThZZ3YwK3pScjRldnc1TDV1M3MKUd4yl+r2bKsxv4tNkfE+GYBEyAaLVdlb\nK+R48GVyvom8MNH7OzDSylm5a+VmZS2t8/W/ilFWLrk6FvzVMTLNbg==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:m6GKHVWgAXtTTDUa7RV9KFuhV+9Gmy61S7cL8oj37zDW,iv:j9W1duEFKGUaWuysoonC0vtxTK9lvqa5Jan2CiGWyQk=,tag:2bwS5dMD+v+/e6VXDkS48g==,type:comment] +#ENC[AES256_GCM,data:rVGmt/4VOWpqHguOh3/u3R086goUfF2EDW8JJsyA74sdBf9WyfbK0LPR7v3+RWWEjtwAMpBXSxCFvAY=,iv:wBVdYVBEGoav/4Fh1Q1iEO8CIx2LImA3tsutWPM9c54=,tag:5dhUlycDIJFEq8klOYP9sA==,type:comment] +#ENC[AES256_GCM,data:NDetqei/OTBQtwZ4Ceo0cLl7N5YcsFrityCpH9+N8c/Ay2yunCHFLi0xJwqr2gYZkLHGcLDsrlNcM7p37WdJlzSk8g==,iv:EVixl72asMr9Nm5h2hIF6SE+U0VQXx72oedHn7NnzNw=,tag:oJK6V/+Bc3pP9IcF2tZCLQ==,type:comment] +#ENC[AES256_GCM,data:fqWfZ9avms/8hHor51G5oc6q7yDqtLRHZ/Ofi9O81ivQ3s+2NvsQrtSurdXN/O970J4=,iv:nCt180egUeis0JBMqgTk5uPuCE9sN7froqedEL1VPG0=,tag:7KWWYPl0/RfYbLg6ssl/Aw==,type:comment] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:cS6aGpxsUwLRnZ21qYgW,iv:5q3WzJ4h0gqw2UXxIr2RWUTqX2ecFzu4v6qdLkE/F6c=,tag:j1CQMai5RkyU5XxuqY0enw==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:8JCgG0qus6yTqb8+Ur0Pdz2+pFVLxe8=,iv:97Wx2Ka0xIUeWL/4S+fTkAKD2C4p8b0W7nKjxNTJk4A=,tag:p9OpL6JV28pWRmcetIRJvw==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:O5Tc4zpWQ5o=,iv:q37V0E43lNr6s+Nz0ANqXuK6xwqtxk44Jk2Zgg7z3F0=,tag://nFk8Wzpr17Z6tM4uG2cg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:k/IhX54YdnRzjt1zyt8a6EGbRdReevtaPwNqb3gI5EsRLQFBpk3AGieE3uAu78VuzPOBhTww1fs/Lz4w6SYmrQ==,iv:eO9HdCmgaRoVtqy3N17NKOMpKlyROs40IMN2viAXKgE=,tag:zctEQ9899P3CTvBGucKAhA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:Z3aHw02z3A==,iv:BYMG39BVzY/f1uw3EbOb736eZL8yi4dEHJlpjx/F8eg=,tag:AF7KdTHFO4CfY/J5ZZwmoQ==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:e5IJHqxtiqGUA29dJymJZ52ukAXBvgXUBMBQvI104Gm1hGHCvUom7yBr+kMlH9NiroDubBFDIVLQU0fpDJ2VME23Isp6IsqnXVCg3hkYn6y6lbtiuFEyU8+jwcHSvxXRPffwM1Gy,iv:zG+CfngFybq+qarDgNWcBkCvXvb7rCRkUU+Um6igJvI=,tag:eOICILZn4RwBZU99ArVN6A==,type:str] +PGHOST=ENC[AES256_GCM,data:A9g=,iv:V4TYr3R8bgXsRKQMEuKnMQe9zN1NS7voqpAz1tazFQA=,tag:jgQTyy+rQYKD7Wq8pbm9AA==,type:str] +PGPORT=ENC[AES256_GCM,data:fuZsvQ==,iv:vL9E+7uWRztZCRXvrKLvBQY016VnemF0YK6MZ6saaEo=,tag:4J8RI5EaivtAsyscNaI4sA==,type:str] +PGUSER=ENC[AES256_GCM,data:JgyR6hs1qGc=,iv:gVvot618hguXdpNdkpwYOybqsZyQ1ScIfs/UhKpJ+yo=,tag:wqaS/MEeXfKH+WpYQXKO3w==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:hj6+bVOIRjlJ1Nkm6GqsUKcHgeBKUjJ8s3Q1cKDUIR9cX80yLk1cc/NjES3cml/3lwKq/OqFbIQmO08W4qbC8g==,iv:RZodNTjOK1zqHLxbeqSE6usS9DKFTmAKGamUMkwSZKM=,tag:rxVWnTjy/X+30hdu/VSxig==,type:str] +PGDATABASE=ENC[AES256_GCM,data:QWVivk8FnQ==,iv:S4ComLfqx9JTb7iEVo5zUGdFGUs2W8su6eJ6l+McMlI=,tag:ib08gpCpTA78p4pJFSQarA==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:YoL/eeM=,iv:CjdFAvTqe9VojpW8d3IbzehnUAQpF0JndwFtSfTrVY8=,tag:YsxbR8d4KY4UgIAkQKY/3g==,type:str] +#ENC[AES256_GCM,data:m6rF6JzjiIVnhuZq34/B06wCiIW4KHUxsNrNav7t,iv:A82EmjrH/bQYLqm7xna8tpIP1mBXaF+BOYPN/NtcG5M=,tag:UxQASIMQuFwCbucyVgiOxQ==,type:comment] +#ENC[AES256_GCM,data:wFhVkyM1GZkR3RqbNKqWo/lk4sY+8YLSAqUCD3BWtrSRdg==,iv:6cq7YcxrOT6OcvpUWPacQKGEQ/0g5DN1UO3ihsc5L4w=,tag:IEJTHHE/p+taAqeO/ltkrw==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:xRYuWDf+slsK34p4s2hR/oHo,iv:ZZgfcDTU7+TKsxkswQ9Bzq3Wi7U7tPPIyTyNXthbD3M=,tag:2FkRIutNR1YjRFJfO+7ZAA==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:0N4cmjNRU+LLB1w43MGCeMou7fg=,iv:E3Zl5VtrDfG+oWyOMgfd9nyhhkWbDAiXZvyC9z268MA=,tag:1trbvuQHFqDOzWu52XORAg==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:zKi7PdZU0FEaPKcdLrDN9xZPsbW4WzVN0esuG5qRFXpf7jBfnVOBrg==,iv:+rfJGP/V+Ata1AZqwjf6HqPBCtPnsZMgqc+Pz5/twGY=,tag:+pJ8jMi/pT1S7PS4Qlg5Zw==,type:str] +S3_REGION=ENC[AES256_GCM,data:DIPslxZ2y1sf,iv:k/RaXHvB8htSp0hnBpE6kzEKREKM1xl3BvmhbWlOqiY=,tag:8tdOr4152+S5Cj1dwVDUpQ==,type:str] +#ENC[AES256_GCM,data:9sTu23l+S7NzJE4ez+whP9vx4YSfQIJXh/yozerT,iv:MaJ07B7zPugqgzXqnCQQW6EbMag2kuxFSlBza15pN9c=,tag:vl8d9PR5DG/rxSUbdMY8Fg==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:JHF7AmgdmZXd,iv:KIbqrtSLrgGwUcFASHOUay+HmKxX4OUD+GoAStS/XnY=,tag:3FkNYOAEaGc4FnZaiSle9A==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:eQIEDF8EAonxjEXx/gDs8WSfRRdG+QPi,iv:KfM4l9f5fu0xFAMtmEQu3UHpyGBQkPSUCMVTpCYhKRU=,tag:bfwQcfEdUsZqNe9YrwJJ+Q==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:G4DV/Bgkm7Gr1pxEqrOYzB+O5Sbb6uChjdnea1OXO8VVwg==,iv:EDh1UeneOlrSBjVTelEqDLbific7enuuhxErl0SypcA=,tag:sZHGVE+TId3afNDPJN6PCQ==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:3/2f,iv:DX8OWAeKhEwKBnGd4tHSabALrC84R9s+eMkBXyhORKs=,tag:G+JKU05PmtxOL10lKPIGew==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:PkitCsM3mULoFqhwq1PzbM68hCsnEg2xiz6F1LGFcJqnvUXm8V86zM5DHs8=,iv:opSnZH55QQsBt8H68MpK4OIEYOMSAaGGcb3bBksLjSg=,tag:gEOsDWWpJhV8zTsEQM4BGA==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:Ahh6SK8FHDzpohFhYwGay0KlvOw=,iv:GtRi8UOs2B6+7I30isi7L3pdDQzXWSFcYOrKhkrhYjA=,tag:SdnEDKoAmZwVQY3oO+ycoA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:KW/0oGQUJ6JoMcIHpS1p,iv:55uEDn4XNGh27eULkNAFwB3+qtJV0WFH7GCMT53FetQ=,tag:H4RZlojiPBDBMKm/6IhD8A==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:U30C3ngleJa1T3TE,iv:4bl4pf6eG5afnMC0tRhFFGrl6xByIAbQg2gLtEdIFRY=,tag:OCd+oWnIytJdHq0/6CSRsg==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:iYjjbY60Tru0JWT6hEk/3wqUKTWH+ewvHppVfbGwyyjCfnHEIyIjncTTNzBTUXMo3KQc6SpA4DHPDq15pZ8Rx2u/I7Abz62OKwhLj8RmyoKrxWGu82TitOqB9OsgrjjU/c88QIuxB9y+3sHZG6eg8CAvjXoPXRpIXqwJsEdrq4g8BXYLL7ywcB3zmA8f3q6Y492wu452C9K727uLvXIDtJmH3cEjPICZt0SCT1OMeNwoSD8Wk3zp8MPvrpEyK3yO0AE0r6+2ULQZNnC0h/xDoK3UC3m3BiOFz4eSCNWT0L1AHBT4WoX/nD1tOnTqsgeF2AIR6T4WBAhGEeQcofysV14VHQW6bv29qZjhM8FGnH5nDfKaHNYR7FrF1lCUWeHAMfwAR2EP1I/dt/+rp8bAl1AZBcdbg77UXYHH47a37SpFb6fMIuKYYJAphCl6awfs347OUv2D2odez8GeuqY6tj9192HDF5uW6wgQ4WYQyr/2TLQ/pOghxeij4NkNcEFOStgwF/EMTgrFBn77vDJjA56702LtE8BqDiIcFwiQI+WsznaHBIIkbLqDyNT2AJB7j6zrZQSMC1F65zEwkkizSlnVuBnZy3yAJOgLMkUI6zOw1mf8VCKWaueMr8DiKMxUforX0oCePTQ781noMTaJStkXL8azzAWbuEfHpdYBk46Dg8k0Y7O7O4hqAPEBH8QoPzOI7R8FhWpVXYRfTFV4gTJKCXn5LkyiIy+pbU7q6gUoGrCIbAvcoGWnY8zCh8N/mPIYw+hBuaKlHimsfnJSaPZyMWFTt5nw5AXdt+/uFk4HnU1eWxcYvE74IcGZhoeondHB+k7bf3irzKra5oxDNz63ZaxSB1LdBYDptu36q95uRdErcKUHMde1eUxWz90ZkzrAGlOSzEn0b6EaDoCIWaqKjbbXBAdeSR2hZAx3I1ULZi0po5nuPk+BseUSs7LlWftW3RuVdd15rFiEkxPdPm0JYY8QHCVoB3lHckuyCI4b50+GtoQL0XO5tELyiKX4WKhUMZa2d4QlxVx77LHLY5S6GQ02hTOn8yxwp8UTGx9wSYlpWgq1FkUmRUKMZuQLNl9fzOXBpMDczKcDdZHomwGPdwTobgPoZgbxA/2lEl1i8LYt1J90BDiPoT21p2AHHqxgq4FdoNgImhkr7GNyBuKZQ4GasPGgJUnAApVs2s9lUhXod8pcqmmoouBKZO0oFs+cynsEOBdmDJeAIBOEZ45mrk1a1aCVg2z180FXJNtpgyUa5aNbxwWCTbgLdbXl12hzaQGphR6FjCHf4Boq+LFChOzcVZsLaLr5yZl+DGuiuakC/X0gG7vE8DmqItOJ+a4zzmNBxUp5oy46fZAh1nNShng7FwM9Ig6qxjDXaJWv3Un5hbiFCB+VCRItZSNKeB4+Z8Z7TQpGAgPDmisk+Ai3l8pkKIfDcH1cojghJlPzpMPdEkF3mbtqEXfCnqGuiyqTlQswDTZTkfHpSHRCMdCI4YGUvXu17uwyRzHSx3kr+QNPz3nd+A4rDH4E5T0ENBV1yoA+PqEt9vzDlvM82KYPHbY8hSBgE4h3ZV7v4EJe5oX/zbviQaQfBnJ+cxfstFfZiQ1gDJKC3Gzmyy6wBOrjgfjIDb1Ghg0sDpzs+Slir/h4Rfq5gYmA/iLFXccRF0Poaz7K1Cr5Bgu7Ljgk/6v2skAtUtY4o0HaXfDdb+adTaT2QRAbA6rOlnzU/7YCrv6bYUcmatBiJNmNFfSOpMTfqNDu4knFGiidEqYPNANO5QNICfxHiEjv0GDkdc5H42IxknWLvysNLBEnKbt61MJe0V+upNefcYvlqdSiE47NXT7kKKA+CwAnpIrgCKK5+k3VEZVXZMin7aYqNhCicCqcW4x36Ht5j5U4MDwiHHmog8J/j/IXtdAqPDRltGjEzyQYxzHbnn1paUT5MXdUi+rwul8xh4j6pRtgezq9EyrP4SSCAdPaQrW2hh9RmdJKhdj0cEW8mRbYPokEpnVwa254IenkRMFW6xO+uL9dGdjZ0+ItMon5pjSG+qnojAEqGnmGdtonf3lPk2tWrBRR8prpI/d9LDXP0hI14RgiitYfMpKR08y2zx0ph/PWiaT4nPD1hlC9AGaldJYuNmx/n1bpxv6zrRlnzSQ0kJZn9dRatnaxeZa7lPpuKkdFYLuBVu7u+Vn3jxEkBCX2M1z3hfQIX+tUhjMwVD1+FK4h3SKjWTkke8S81IleGXSXUfNyGrSy6QaK5yuWSnrxzZ0Dfn8pbh/Ctp96wiE/48HpQJ3hHiGv9s2YamTqxs2noStvWLwjeh8eKNZiSySyWbCkqupSb4CLGp4wwxV3ba2DeVZHxgfaxlN+duQ/+XQBbjo8NjRhrx59S8SNAqtZQTyC0KgHlChyrPI1oKiI9zze65CqDnL+RSjb/BzG37LCB14DL1kIjYP6jjpdhGLf2pkm+wpzARktcsKaidJ5MlVDLk+7nutHA5uPOkqqKHz8R7BXgWu0r4ryeUOXBnHEDzVl/EL10u9XjkLvsXs3semUr4dS2i1Dkwhv44eg04vPiRnCm/Y2Pe76SAGBkJ8DPH2S1QZ4oySubxbDDWpS/GQF9rkwYCWewGvY1/7hDd17YMmVGzgQwKpAeKEHYpfNI28nKjTGGxcRG3Aq0o9MsrPkphMUHSMhYHHBiwWG39FI+qXi1QmalWAo7B4cadkrIcMiscYPv+zbuZJjf83EnsRrxqucfDlTKqfst35nPLBHKVZ1iGWZy28UUkZhrlvqzFWw3Gd6mwo8JqZpc6SN0Cs7vcoutoEJ3l6EDXD77JvvJji0Vlq3hcRT5PxCtYIBKH+DnUS7CWXRMM7USLXgSl6baQXTaHbIE40CO77Lw3HRQXdAHXcfGlITgCOGZ0mb4TpGpwXbCjeCxNj4rNyIevzxKRKbDOPYxdaN/klj5Y2b+7ikh2z/+/RhOmEcS4eldb5UymloKR6iTEvGJUMR+P3oFCFeAWH2DyuU7NL2hHa4kXLQtkM2R7eb3t23QD6BbAVuhWSP/VtUax8JZQJSvUksqz/hZWuGdOzXBUjN4wNP32rWKElRXrKyTrF1rRZ+GSRlqgk0VP32DJ4AE793JjSLwQLqomaV6Zo40M/l0+DCobfNI7BocyMPtYQdQLqkQbg2KamXy7YKuDHge5FbNI837snatSOuhzc6oVtorKnzZGgCjMYdPLsS+wdojNi/hrcKMOjW2/NavPpXw5ZjL70lifpVU1ze5ZYuk67L40S0zeW+ynIqDisQ3qnYLx08hVDxhkCgCFIE78p9tUP4zsuW/SPSx72iQUto3BB6yKXU/HTk0qMErVxmtDFptIK0IBNhrL1K9XWcJcTxRKBhIpSmxwQwiKGvfxM/bE1BtzwsZZRYTRtOOTu8Di0n9JOTACYsgFX12smSfDp9/NUK13D4CDvuYXSa4rwqd62iUCoxc5m5Zpadl/GyGxORZ1ZgpUkLOjZwZ0fL2eym1yFvwee2J54NAGM7zJEDARjVISFnRtq9ngfbzVo2GRtk5WedC3zKyudFrIFq5TfWoJuWMBOvMVY9/Sv0tmGCXUa+uJuhGVqAbEkpVG1HaUAlmtgDP1MUEjHl1w7nuiei5MV/gXZGQW9kLsuWlgc/WJR3FlGb2EWmQlbmMMhXLWm+korlO7GzU3mECnWZOeYcyC7VvHwS7xWVSWru9Asboi3jiymprza8Q1i7shleaOA9dSiPgEas61aeOM0q81hDFfDMQbWMx9XkU4ivUZ3ddV1FJZT6vxW0b9OlVSoK7FhCOO9G/dQGI1oYnLN63ISi5wIiYZ9IPmc6RftUQQEVcO8XHLNZ3ghL/cf2tbIMohjBCgHNj14CQis3v8UEhrNha0XLCVfE3vJaotTuHbHhu4+75+EUytUnrcCmGTP28WXrFXhxQKlakiVhCk8AlHEIlMBv2wRUCyxvaY0cobd3XIDqoC4EghJcRg7ZHBT/7W4poHiN+XCxm29nnyWRQ33T0+/x/ybjDQj9qQizn+RcJ4jTwFBmTWzv5yb/HNauoW+JxOyLilnNGSX6YDksqeUaqY8Y8TxIV7E6VVA7kyF1LrMhxY/cMG1jk5lDmoJK5Udn2MKxyNdIxbkJck4ipSOCnURvSt9zQxLCIhDuYx6dt8Q5cYArDUBBz1YInQ==,iv:trtfphq0FpIwslucwND+3e9nYhFi/KC9W52UMeZJWPM=,tag:h9QVabyPyjgZK71DnnQQew==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:OuwiHWwG/g==,iv:r/YIO4t9myiTqmS0L8n87IsT/Cf2ffRlNnVD5OO1Pkk=,tag:LPxGiPFWM5j+jJpLGrNXgQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:yUnVuq2MxyQe1RdC0El+tA+bmSVGR085Iz2LX2DSY+xLLKuId98Ohb2umgq78xGM8gfDA0ZZI5y8iUFlIoHDtQ==,iv:m6Hfa1ftRzGXFHBXK5AXSqLBvYhlbYtBss7mgXKiVYg=,tag:H70PE5nULau/34+0ZJ/oeg==,type:str] +API_KEY=ENC[AES256_GCM,data:rJvW8WrGFVdjxR4Wf/3/TVrdQqroQHNoLm68R/z8hiY=,iv:PXXUWB1nufNXc/9O8Nk/xdPFh8tPHxSUd+FtqN+R1Pc=,tag:bwL4e7wisxC075KgKuPrMg==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:6hywD3DfhAekELNZTWkGQSuCZQ+sBDOh,iv:/i8AZgI/yzqZC14m/6xL7Gmns47J7YCCn+JgtdVpFZM=,tag:anHLEvCD/RNEWxpdg1vF8A==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:hJiFI54yQVaIvmg=,iv:9D25L4baxoBD3WKpFKKBl5DJ6bSw3NETi6gqHVK0t6o=,tag:/DVLjoODsW4eeWE8Jm2ByQ==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:xLEnQaWrD+yHq8ROYgNI,iv:JlIxBUHqwmZ3qbr0D5fE+nVbOLutzPS1YuUh9l+En/Q=,tag:zjcBFuBobIQxjvp8nkKpyQ==,type:str] +S3_BACKUP_ASSET_KEY=ENC[AES256_GCM,data:KppDfWdPl9oEMgmTCzGZazbyOuI=,iv:/zCO4CSwthSXtQR7mahmZnWpNK/JE2lkvCQ/NaVKFfQ=,tag:ygDz5Yu22VeO7/hrR8/FCg==,type:str] +S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:sl2CAbQI/qUlJ6Vr2+jEcfG5hftQWsmrdwdGeX8PARjbe6PVmMYvFQ==,iv:6Ppmiibu1uodqSMnNvG3TXH5vMjmsDXKEm4aeuNAnZs=,tag:v9yyLHoYD+Ng3zfoyFgIPA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z25JWVlFNHQvWFNwWVJm\nZitNeWdkMitkV2JuKzJFVFNsWHZtV3FhZUVJCmZhNHVCcjVXNGVOcVJoNUJweXNo\nNis2WlB5dUxSNHFHTUp3N1ZQcVBCZlEKLS0tIEpHZUkrbjcrUjJmSTc2N29ybDBW\nODRlRjF1S1E5MVBKeldJaVVzNGpvVTgKNiU3KXpp+j3YYFHUTr2439fk8UM8bz4J\nnr3RA4xJ3/kb9CoTI8jRrye0N53VlFpiwO+BWUtzuN0yn5hLEFmqpQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQdG9BMHFiVzhTOEVOdUZm\nenFrTlRFVStENTFyS01ZNmd5ZUF2WWJIMDM0CnA2UTI3cFJkUVU4MG1keHNyU0pL\nb3dERURVczBDWkYvMjA3bXdyVlJIcTQKLS0tIFB5MzFYdFhMMWxsWnhpMzJqSHBN\nQ3A3a1M5YVoxZVRTd1g3VDNFTGsrc1kKObD/uFtBwsAPKloL3O1GwNDfhvIsdxFH\nzaluLNO+USNz8WHU4FIkGUx3luIot2RXlICKBXH+EUwY3D5RMgN7LA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5MXVYZkRNenJTTk9FYXdq\nOFFrb1gzNzRxZnRMNGkzZWxIOERwRWMzbkFvCnllcjY0ZVgvYXA5RkMybWVXaGQv\nM3NKUThxQlRrdENDdXFrMTBMMWpBZDgKLS0tIGxkUjJpWjBVcittZVY1NFZvbFV3\nNVZtdUhralJGV2RyeENzaWxJSHNjT00KLB8kwWpytBPLrURLc3fZTpZPKF3hMB3C\n5QcScH1RxJxiu6/4Epcf6ZB8T2RjDZhGPztLOJ/xeM8MDG8XTbmUiw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKOGZYQVBBQVQyVnBRSjY2\nSHk1MlpSYUl2MjdMWTZsSVgyQkIwbXhNZ1RvClpNWWM5UXdTUS9vekhITFRJVk03\ndDZaQXBXaTJDUzJkZmptZDFEOERqQmsKLS0tIFpqNlpkYjArbGtSM3FISmxpdDBL\nczFuNzRxUEtWR09jaVlCMzhjU0pIVkkKTVMP+T1D0GmMJW5XBNGhOVpQAjYrPyA5\nkLltmf2m4vqUT3ge1yZXvZ+yvrarpPyNT6TIZmXEwSKqAQil5zHdHQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPZ280ai9YcmZ0bGl3eDhY\neVVwRWI2YWV2bHhXbWlEYi9BRGRKL2dyYmxRCmMwSjh0dXkrdzlXLzE5QjczTFM3\nR2h3aTU4UXB2QXJvS3FMSFBIN2diNWMKLS0tIGZXcUFnbytTZURydm9jRmF2UHRx\nTVlVcjZ4b0JSeVZNVkZrTDFOQk15bzAKI66CxhJy2RLldlggmsg8AocTMszBzPQC\nMNWduVchovMgnfcjDGw8q7Wr1/jJQmgl5DxjQfMXmm3946JAan0NQw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkWnlVdWlyRk4yNEo0MFJL\nNE40Vit6WHNuRzlheDlYd04xcUpJL0trem40CjV0VWtjVTZ4VlFPM2JGbWpXY3Bh\nTXc1R3pFWDZ4TlhnYmJqdVM4elRYTUUKLS0tIEFvK3FOZXl5WVViMURKa0tkN0h1\nL1VZcXc3RDZmcHZYYmJ5K1NDNFFVZEkKhRMIeq94v/trPsnrhjrmahBFNF+3Vuli\ncW8KZzHdSOO0Qg3wCpebl3gnHPkLWlibyj8E6xWbsfCJ8RdfVMmE5A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKbWw1Q0JwYnZkNW9MME0x\nbGZWNmRYbHhrSFU4UjhEMHl1NFA4eis5Qnc4ClZoaDNQZnNrOXlzTkhQaU9ZSjVt\nV0hoLzZOTXRLZENwNG5ZMURLS1NlVU0KLS0tIEljSkduSzhpL3k1T0llaWwyM1Bv\nSmI5T2ZEYnFTN25DYmkvQXVyWitIRUkKGOnwKxYr3MU35vqL7PUb/258gG8Qo2o6\nNg2xu/QVTd1zczLPVAUwijsP9wnYnHUAPquq1jrH1vn3UGXXvRXbjw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2ZnpWdDE3QU5WTnNHTlB4\nR2hHUTRtcm92SmM3L0g0MkltM3RTUXEwdjJnCkJpcDhzYnpnckZWS2Q0ejRhQWU5\nZHhXcGg1OEpJNkFyRlp0UWNyN0NOUk0KLS0tICt6V0xOT0s3QTY4bERvc0Vsb1pu\neFc4NCtENHFpeGhkZ0NETTQ1L3c5ZWsKD8vlDjsdv3106Ir5EjslFtGLV/ghKmz6\n1WglilfnkBpzHbYjnKQSMD+/3gB1L3C1HE2WFFDHwd2VF7/n2G/QWw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxN0trcHViQnFLb2xjWkNZ\nbThwb3B0MlBXcGhrOHRpUk9SclNxT3lZMHprCm1mYVpzYmlsY2ZXdmtJb0JPVjU5\ncWFEUnhnOFowcEFFcmlqOXJsT0x3a2cKLS0tIHMxb3NTRVhzcVBLZHc5bDNhQ1BX\nM3JmVlMzWittWXRLL1owUlRrUmVPM2sK8rUCIh5nePK3s8PR0I317ms6jTAqskG2\n4bjVjnaQnarN55DBW9WMeqzDoX6d4c8rVsrLePy6BForL7jcdbMGVA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB1Nm04R2JCT093aGticEhk\nSitpelFiY01MZEVYUStab01zVTNKbDQwSTFNCmQ2QWZJdGlsbUh3dTNRYU1vRVky\nWXVua0FHN2dNVjdzcEZYWU8wcDBHeU0KLS0tIGtvNWJ6TG5ESTNsbjA2cG1HNW5B\nVzNUWUc0dlRpKzJGTTc2dXZENjhtbjgKMAMVnDOXCLFtW6dMkTsj1xX+BVSIxW2l\nx/RJKVFlCy97LbuPpcmEHbnQEZz35XMmLn5wOtn1HbsrheifJ/5MbA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzcEtJT2ltNWJQOFFIUHZP\nYXpOdVo1RXN5UElFYmJxemVTdW1SZmt4cVg0CkJQUXFnT3hWMm9VVDdpZEhXZ1ov\nU2FEQ2VIK2h3WWZETGNKUTVRWlpOaDAKLS0tIGZBZzNwNjcrR1dSR2FvdWdObTVn\nZlNCMktPbW9iejV3QXFVL2JNemVqcncKj8vBoqMNj3Ekqz4SEhdQrhw12WzsTt/D\nRTIXFElXmrUiqFfhDJ4FiWUn1jUO0Rfx5LFSOhp2Z+pCZLO3HvgB3Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2ZHFRYTZaV1p0VDd1UUFS\nYzhCaDRieGlCQ2JrV0Z2UFIwT3IySk9QWXowCldTa2RmcC9DVjBJTnlBd0ZxL3VO\nT283cHNwWk9KL0ZRb2QrZnlHNUdOdDgKLS0tIHM2Z280UmZOTEVSaTVkSmRlQ3hL\na0F0NzVmVVpsWWdVMnJ1NmppN2h5KzAK8r8EpqkQT+x16WKjY1Lcy80xpr9m9yzC\nccP/rjQyO+kP/ivt2g0eqyRbqZm7FgIJZw5nMrWK8K0W3FxEWk4Eaw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqWHhQL3RraDhUNlY2ZDlq\nMUtnMEMxWXlwYUpLOG05M1U0YTFOQXhEY21vCkJxdjBPZ2tIa1g0Q20xcXNLaHFz\nblZiWFpGWTJxRmgwb2N0bnBWbElRSnMKLS0tIEJSK3FWT2k5cG5uU0JnRTR3RUJk\ndHlvMTVGMzJjNTlhbzJnTkFKWnl1V00KpbGsRa5325JBso1rPqk1y+kvjSnr9V+I\na7ZEJ0QlQD3jeVWs+K5V6mSk/xR/rTarqVxhA8KTg3ElHDrl6DpjAg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzMHBsMThlMEZOVjFadzVa\nalozYWFMSW8yMURwcHNPcGRjejBpNThKTGdRCk00dU1hWWNpcS9Xb20wWjlURDdG\nY0EyWEdBczFzb1c0TlBsS0p3cjJsRFUKLS0tIGRjS3VFNjM5NTYwTW5qbGd0TE9H\nZ1NuQ005UDZJMjFlcndxRHFTUVZ1MEUK5c/hf6ReM+LsuR1ZHV30GgWCqgklwOHz\n2OIkF1TNruICW26kKil3rgyfRo8d7vA0M//jAJr/CzhNZqX7jrqwqg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKVXlrenNoNTZCeGVxV0VY\nK3Y2OEsybUFiNUEycGJxcHN4U21zQ0Y3UUI0Cm1BUSt3bFRORDEzdVNzMENpSEpk\nQUw2UG83Tng0eVMrSFJISEpHS0JWTU0KLS0tIGNJTWw1Qnh5ajZFMXMwYWxBZm1a\nK2x3bnVkekNuMmZVQm1VL2FLN2wwSDAKfDLU7pYsGc4PQJ2O2k2SGDySHDsLN6a9\ntZeq+jcQei64qyocaf4xPAEm+adaUhkU3VabJJvi+XBSfIgN4buOxg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-23T16:26:33Z -sops_mac=ENC[AES256_GCM,data:BSYKmPBzZxfgwINE9GAJIUX9H1ASV1WL5FYH5GtaplSDyXyao0aKms7BMBuCDnnacCSCF+KvfMB0aBNJvhiMCtNAIkiTCJOXH7v0oHkG5eJ8PA/AWweAki0aFSe0x+vdREILPBBNcyxGuR7ChjOf4c6lV5at6ofdiuva8yJi/Dg=,iv:L+3beuxnDQ/0hplVjgVu9M/Xk3fHTbFKw8ApfmM4Ho8=,tag:y5LDrOxuPRTM2RTE3tWF/Q==,type:str] +sops_lastmodified=2026-04-29T14:25:22Z +sops_mac=ENC[AES256_GCM,data:mS4SFQ/V88UkTKavzo42EBUru5aMwBrKgaLt+jSmBm64pcMGsIjI7x3V42p/ErOVNX97M1Stqh1SSCBOyYvgdv45PrOcyWHbZ9l0ollRLo9O6nckgw+eYLwypsFBHhKSbfRpqxu5hO38EsaNZsMTEgsIu9f0k7+AavI/YDXuqjY=,iv:dKhwRUfbyIJK9m7YJM+ByPKG/gsGNHcOn1JHxPGxIeM=,tag:u8BCUS15KBmer808++oGlg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index 6cd0cf7024..a1cc5d93ff 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,55 +1,55 @@ -#ENC[AES256_GCM,data:ZlwsUvseGRU1ZrfJCW+0nnBciErw0toxdP7YwPmDFY+L,iv:5GxLLwaNgb0EkoWPSLQ1e8fLqRwXrcbELo5LsJ+SmeQ=,tag:QibETvJeoPbpRwJbSw+quA==,type:comment] -#ENC[AES256_GCM,data:LMn8aGFiiG8I3Pv596Sllif55DYJ9Zxr4o6ir2ig1/fhcPEfz2JPPTVLdE7qyzkGux8itN7kXBZMkcc=,iv:BqFIZ2VLEJhfEscXU0ByEFVWiGOGWJamapXOO+et+iY=,tag:rm/iMW5gxxGsLugNlvEh0g==,type:comment] -#ENC[AES256_GCM,data:qDEMa8FusdbAW5U7Eyzm4YW9AsV595nH32ILxYFVhwj0PpI8Ddk7GQLaGhUW54P2bgBaG+2e/vF1RM6p5C7izEvIAA==,iv:k8uip3RDCdb40joDjzoc3JTFLtrCN9DCmpytD8RbM/4=,tag:cc/tt+f6zVvINvRBMA55zw==,type:comment] -#ENC[AES256_GCM,data:kWmqsbNBigWvDaRVzIiD9LKnbYfq2ciuu4UPMK0GBph9sutNFJ284Smff2I9qNqJug==,iv:PpGmKMhG/8/6K6YIKmVENBxQvyuTa+WHqlXtPWPICmI=,tag:bIO6tOX8JMbDER4CBktZew==,type:comment] -#ENC[AES256_GCM,data:+6Nvr5TVacYqDxzuDm+PQxKb2d7Tf3xhbiT7YM8RLAEYuQy/5zfZupkY7/Ny+1G4SQHkww==,iv:0az0lXcCSLsaygXUyMVchAHVogACsufzVqBSVWpae2o=,tag:YjWh3VwueZkooxv3da9jXA==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:yrw8t+7M2Dc=,iv:KWn59XO/EPyyG43GO1DQZ99GEpTHQWkNh7LBiM6Td7s=,tag:LhsP6SItB9fh9deUcJYIWQ==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:T4K7AMdcyYA=,iv:Di2f3dNs4rG566mXl13CFqF9/lE7xRLbZnabRrkdMHg=,tag:Lmnls34p0dYLuRA3t7e3Jw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:+pgewKZqEg==,iv:th+lnsvwEQWDT7iFEXuNrLJr7or7aytPY5R1Kbo97X0=,tag:jrfsAiVAILyvyg7PdxIU2A==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:mP/AExNo3EGhUVDAHo+Atm+ZT2zwMa+vfIn+52knripXvcj4AKJ1Rp/clFa+jg==,iv:yjxrHLw/GV3OPs4BCfN7bv0PopuWMoGnI70vXdJe7eU=,tag:dh/Gb02xTMIjbLgbQcojxg==,type:str] -PGHOST=ENC[AES256_GCM,data:3rc=,iv:5ErMPa1Vv1oB/mCjbIV0vTJusiMlmvvDTxmBdLlq9Qg=,tag:TfSYpGOK9b1XBDpdvVNnCw==,type:str] -PGPORT=ENC[AES256_GCM,data:UUMEZA==,iv:GiHgc2ZBWlJLhcNheN/j1XIK98C9g+ERO8mRNXqdmBE=,tag:1MJFT9V1e9pYbUt9FToYdg==,type:str] -PGUSER=ENC[AES256_GCM,data:OIIvvT/TKdw=,iv:KeJYYrW0C4wrPmWc0p1jOlzE162lkm9XUYR5IYMpFjU=,tag:BSgScY5hHasoHzSg1PItLg==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:DkwExG5PGhc=,iv:Oe8X1EI4aySV8yAYzdXufIOrb2cXlMvO4pcy+w5ZSz4=,tag:iaIpyer9pk4oLh0FcUAqNA==,type:str] -PGDATABASE=ENC[AES256_GCM,data:VmY5Z/ItHw==,iv:LAHkBIwi7nLyvzVaHX2FCMUItpIIzo0t/IRJUqyo06A=,tag:q4Fq7m8+l6RyNq31nrViBg==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:u4rHimQ=,iv:dAKwHSKO92neBTI7SO7PaXhRhXKA23MxkKaqqg6DEY4=,tag:Eomoy0ovlTwRlxmK2DQmEw==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:hlIx6A84y+xcGBny5g==,iv:8L9jx4eEMxGHrX1twwMCeHFiNK1oasY0fxadDSjY3O4=,tag:T8IMLgn+yQSWK9XD3it4Pg==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:NuTYLWlchpj8MBwxuQ==,iv:m5qiYllf6Nk7UbgGIy/Dg7oTti2cZsAGbJs7mZlbuu0=,tag:nVM4hCDvAxvQAnaaqvVxKg==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:1OCMU3NPIdjSjUCSjAI=,iv:3puIV+v0S7+Tmw4jV63+XgE0cpz1MxlXLzqrCkD+1P0=,tag:PGhgA00mJopKVJKG1aZTTw==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:z9A1V5rTWaj7oUo=,iv:iRJ1/PepBffosBbzHQ9Y0AyUlUJN13oLa4/AaT1gcoA=,tag:6Vu6qkTDiYmcPFmQ7xT7Fg==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:Z17IDw+i8jWz28s=,iv:Li80DSWRQiipcmZW8nc3mM4h8U6Ui5gIKxYOkX0w7YA=,tag:ioNlMbDVkGQRwCAh05D/Bg==,type:str] -S3_REGION=ENC[AES256_GCM,data:M9WxWxKzWXl1,iv:z3Dukgni2ougfY6qzU8HckOgXtjaOQW1KFmwzNRmQLI=,tag:R48ItB1o/vXKQeNPLxvjYg==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:XsvrotsxTSo+zJy4Tqu7vhw=,iv:Fga80ZBuga31NKpabTMM8FuTYDwKNf+15ar7NB25d+Y=,tag:j0YaoPrLYrOArpEA5lCEJg==,type:str] -#ENC[AES256_GCM,data:5eRA8MgaTeCl7XOWlmZLPwX0iQZizVaYEY8N6FrIRrIjb+ZfEIs+xV8Xeflm3pZI8rGzwt8f+kyDAXSaf0SLmB7O+g==,iv:xiAtGz3fKc5jJiafLdQQRMnT6TlqjzKpDC1zadg7YJM=,tag:ZtefnPNNqca9pdhOIJLb9w==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:utjYi6ZenF8Pqrl+1EFOSfEkvH/Rn5p0,iv:tip0wcIRpPKtvF7PLxcfo9V8YfhqSnxkq9gt9BcceI0=,tag:BtAoEWp5Ub51IUT3SPTBBQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:Uyf+,iv:qpD0oN0+YU8ltYLPbSPPhPm2UTNR+w6GHaDPyXZJVeY=,tag:Rs5Izcy/YVJgc7nMCVa49w==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:nIbqU9vhggw=,iv:gcWhozlrsG7ktXIhzLzkjqYqhvxK3uR4e6VosXsIKx4=,tag:YlX6rTap/3L2TW2x4IedCQ==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:AXLk+g==,iv:0UjiDFr/I+ZKARk4eXCgwRd/EX0wJU3zDZ/+ImMrxhw=,tag:VqlyAsKOU4yux08bk3sMpQ==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:DiMt,iv:kqT/odRRzbDpDW+cGpIEq93f44oTUudYdHq0HrqwL9c=,tag:cHty5QhLwnNVdTLwbc1a2A==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:TDbt,iv:eM1bjmARkHxTzSkEWIi2EnAW9sjXlk+WfaGZ/3L5XCU=,tag:FkMBGtNljR+fjDloxcqPaw==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:tw6bNlOsp5DDC5eAEN58,iv:1UrCSrC90jQh7HDekBOVFjsTSM5thGT33U2IhxIdMyw=,tag:hEWMKt9h0vVCJ4+lils4nA==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:j0x2lcHEy5LCtI02,iv:jbQcXNVaXKyoB5sQu0dZNsppqH/BifNV1FunIAt5ciA=,tag:1msc/du6ogHC5sakJF/M4A==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:jiNa,iv:se0FL5rSVG8xzUl3UGhJGcrNPol/XVDyV2qjymAN3jY=,tag:TtEGRtquVGq4r8obry/CpA==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:LBeax/oFSHQ14fFyJQkGHIVy,iv:eAs7etbQDDrvfThpvoz0xzAFxuJlQTupzw0sjQsE50U=,tag:kiqBrqLkXCVWg4dOzAeZ/Q==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:UY3s,iv:kihrTsVfv/PWJgOlAwv0Y0Ky0WkNQma91WHxJnuHv8o=,tag:6w+OfVh6lqpIXtIOE68YMQ==,type:str] -API_KEY=ENC[AES256_GCM,data:grwf,iv:p4M6sZESnKYGbfvkGMwhTWVTklzfJR0YDs4vF66DHrQ=,tag:eHR6Iq+nSrGJeGefB839qQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4cG44R1BBSU82d1lZeDVq\nbHFZMWFJdFkvaTRrNUN4ZzNISG9Pb0NXR1NNClIyWkJ5YWFoMDJlN29GNE1VQkt6\nQnE3QStybUd6ZWRPc0VmUUhzTWtEVncKLS0tIGpDdUNZZEEvZmszaExSMVJwVVNr\ncWQ3UHA3QWNrc3JXOGFGbUxCcFBoMnMK649+SdQqUxyhEkTAXtjpFSqoU09poXku\n9afnwtYAjgw0/NOUO+kSheNhCkDEAIj5Nk45ZHSLT5JeAuHb/hYj6A==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:9vlbKt7bGWG/WVtPsIEygXcE+IRSdz5Acttvku4reKbH,iv:f5hOvPruaBRW7jlLdAwXBSmrnJBdbvfbZDfoGfeeTts=,tag:ed9hH2b5BOcwl+5Zc+UJ2A==,type:comment] +#ENC[AES256_GCM,data:UUYoJS1resYVXMu42RcEX1/BuCl7eFg0TDZd4X966dheNtrzS+0dMdXqVQeDa+2cH56DT3NkdcZAJ/Y=,iv:slg+pO7UqRtmyK3yyRHL5HlZHYvVQxMND1fQ1PE4RcQ=,tag:ltajqbthQhkx1OkHYgoSdg==,type:comment] +#ENC[AES256_GCM,data:EQpfJsDhAtLwTYEGEwZZDWbaM6vZtcz7R3jwm7cc0vG/hpIUq4hk8uKRhcIQr/CKPwSBBpzsd+wVt3H/xYGsWFMGLg==,iv:yPO9/Pz+/v4VzkTUVHXs2MDAJuYCFlDpiiDB9m4XTg4=,tag:KAvovfCU7W5v/zYywu3aXw==,type:comment] +#ENC[AES256_GCM,data:7kLfpHYiVp89mOWSXyAyuFyRvO8gi/Dt88BCkT1zZTYDqmvBqi4O/4KKzqSnptNgBoA=,iv:VDljV88ozeqT2V4GlFgLirTtNtaxf0vE3OR+MlcCOC8=,tag:4C2ty8wvJi/3QeW7nQoUmw==,type:comment] +#ENC[AES256_GCM,data:GmC0n3YdTnduvQLUuPFtRlhs0ZGp4nIz4XpiUwCq40swkvKZpmX2mrIw40Hb8fPbF19o5Gw=,iv:Urt2EqfOcxl3NVTS8LD6B+Ij+P93LQ6WtZJQ8Cj5XHc=,tag:5FduWhGwwD3xO0b1bGuW5Q==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:V2DxRErSmDw=,iv:xmEfHmY7tSCAMg7kmBCR+JKA/IjYKK8an0E9t4cxIQ0=,tag:pWHHzuF9CDNa9A92PB29pg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:C6omIVEKdDE=,iv:7/wHZzXCgSNDN/CSjI3Dc6pcU+RH/koKdZH9ZJUuB3Q=,tag:nGLGMccE6CheuNAejPA6RQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:gtC9yhAsAQ==,iv:gmwNDle3v+uszHDKWciwDJDScnrPPN4VRpyPSNRtdUs=,tag:A4fsQq6i+7G1VCr4JrKPKA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:OwPheKJ9l6V0S+uDlBi7A2ZU3XI4uBP1OHoNpXMzwePgysNAJwdZ5LlRH3JN/g==,iv:NATvIA/Ecf6uI5oKlXJul5arqUITu+GmdKFbPVcWOWI=,tag:b0KAxTlLXC/AcxjKGx7irQ==,type:str] +PGHOST=ENC[AES256_GCM,data:ABQ=,iv:w6AXknnHLwQ1bZnhN8IYQYXRdLvfWBlwBwZlLICyPWY=,tag:ApjkzJgiKa6qa4TH1FdCkA==,type:str] +PGPORT=ENC[AES256_GCM,data:0/SvDQ==,iv:DD4jWjpBKQiiFniFiDKryVKI4WdhtV0LxwF3ivUNNtc=,tag:jXQcFtK8hW7hWs0ILE+Wlw==,type:str] +PGUSER=ENC[AES256_GCM,data:XEi/EOJOI7g=,iv:Dh9CJ5VHiwlNOGFiQrhoe5gO4xFNtlr4KoqW3VuIilE=,tag:5H7b8pnI1TsdOk/QDrhz+w==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:chh5eWsaJJ0=,iv:E2idH/XJhW1cFJdxWuWClVCSiRCbD1CQTceK8ifrRB4=,tag:lAho5WRwZBJcPbOrqn1xgg==,type:str] +PGDATABASE=ENC[AES256_GCM,data:0N5R2eM8oA==,iv:YgZsz3CmS3Q3mkuAVmDweFF12t/nEp1PikdBELtz9U0=,tag:x3/T7CRmd+9yZaWtT+gOFg==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:fMCQwZ8=,iv:w397G6s7ze4ziFPqVnNSJDtHUMQxFQcNOqaCwgqG7bI=,tag:/SzOcDdDqUS9YEhl6cVpRg==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:BcO9Oh/PD/gNy1B43Q==,iv:DRjNcs03sJlk2XWpBmVJy2udoJANsoLunSZGnJ4Br9I=,tag:cqVxlOtVGWNHYrxVcpxQyA==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:W+9sJqDjIDeFOPhPPw==,iv:+rDZ4R7nMRW+F4NWgaEbW3GrDworhMq+kyioU+ixKas=,tag:6agBrSNI4ckUN3zXZ3gPEA==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:gf4uf0MF55pMor7GUNk=,iv:kVaWsMW4Xw4DGh4CL0jcsDuUQhGOK8+W/KSeFRTD3Bw=,tag:Lgr1m4zbcGy2aIZGpquqvg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:918ubR8R0vEXcg0=,iv:2lWJfH88vaOdV9HfcJTIXRt9SBqq83p/iSS4HbqKjtg=,tag:Z0f3pU6Mlr1HyrHU29SSUQ==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:0qeVdFLywm+n6lo=,iv:hTAw8oVrQDmo2iVQ3hAvAZAwS6C5SqTdPdRpniE406E=,tag:UbXzcShThWDW8/T1+CMieA==,type:str] +S3_REGION=ENC[AES256_GCM,data:yf/4pg5U4Pl8,iv:WscVxoDfUQUV2/yk965jiX5pjpmBLkoqPsrTGXVCIfs=,tag:UFQoEBTsMbWiXmWe0HmljA==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:ngW7fffBZcJP6EZZQJe2L6I=,iv:rHKSk7jgyDV00hwlmvrIqOL+x6pCMkYCqvm3NAhCW4A=,tag:j/pr9uPbRoaFBL2/C1wv1g==,type:str] +#ENC[AES256_GCM,data:1rM7jJcLVX5K7JTVfDaaccg9CWa2Dfpx8ufdya6iv8VFCSZYeOv/7YyiTybefn0p3YNJYCyJDWI6QzHAGmWf8oB37w==,iv:lNjES8PA5nVPfsbhkAfv4bef0urV6MHShh3oWaD23kk=,tag:etHTfv/eDlKB3u9vjF0seA==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:o7d6dfhRRN1PBNmsa3n+mirMHNoX+xZB,iv:DrLMul09Oqs2sP0xooQ3b3jTgSP4QnCKjf8uFLn41wc=,tag:79SXFExLTL2Mq5H+jf1KtQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:/2T5,iv:rkbgOZBNBwiK7f4EzBLYdN5/KjlA/8GrD4njHwtq4G0=,tag:wlQ7cJZSCENHNdZl/3t2+Q==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:TGNf4EhHqRI=,iv:KFx7jO3tMUmoMsYm9LHy8nbGaONJaYvA68MBy4YCjck=,tag:UcyLfp6R46DyZI9UYinONg==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:NynhMg==,iv:CDntrnmGLqbQzja6wdf7bbPJ9++U0GMyyUWB9Q0VNo4=,tag:ovWrYD/alERm/cHsN1Hpfg==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:cnv5,iv:vYH7GNE2xZ5NVCELSMrZPdg/YEYBB6os1wwgWLEbDEw=,tag:r6sK0rSTs6FLAoZz6xdXeQ==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:s/LX,iv:th3EjtoaxPt/RAHyEMViwhq2Oxq4uINttpVJaNnIQzs=,tag:V4eVTJmqPgdW9WSsj9Ue1A==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:QfqjU2GnxHzsFMqCcm/J,iv:wPozT86T51jzIvEvFFXUJcAsYiOC2/Btv/2XlATaf7E=,tag:mUO+3smMijV/OtgrgGxrPw==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:poFqVlLcDU7o+VE9,iv:pjbfMsosB7RJndxRFsuvvdZfiRL13lrDLTsRiuwYT90=,tag:LfscWFlDubTzKFWFzJb71w==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:/dlF,iv:MtkyB7hl69xXFW2z9ivmm6LU6uaIkuzPPtThvCunXwI=,tag:UDu8orRAfKJ1GNBwUw1Bww==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:X6MT5Ssi6Z963Ve4+ldN4MOq,iv:GdRdQbUpqTHPqqf7n73lR6QUgbwwCmYHb00yo392sfE=,tag:N3k4jcDdi5YHTt/twgvuIg==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:HR9T,iv:ZLmX9NFPI6n9R8VX74yZGh83mx8QDAaYbIWgkY0AcTk=,tag:TDP/baonYu/Z+WxkLAXCQA==,type:str] +API_KEY=ENC[AES256_GCM,data:piqM,iv:KEiv6rqNsuJH4BTteBQI9CCS+q2H6tmXzWBLXEhaYqc=,tag:kdbS/cl5VZ4A/jtOq1kLJw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaL2s3WTBXc1dGbHo2WnVJ\neGRPdFlGbUg5VmRNTjMyOWRuckc3R2RGLzJJCk5YL1pZSkE5UmJzeUdCek1hVHAy\nSFVCRU16K3Boa0ZHYlRnUkc4eTF4Ym8KLS0tIHRkSllrZXZGVXBpMENJNzFKcWxR\nZTc1c29OdlQ4NjBYRUkyRE83SGh2V3MKI0RbH+C+6Rz9e6+RPJ5y/EwXDHFKn2Yk\nJJjosaPtCkzCilb7AXxcmpPqztGTCsQwr2F5vgtMYeMGZ/kW5hl9ng==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzcnBlWS9LVTVJMWJEMW5J\nSm50NXNjL1FraVNVYXAxd3lxWFFaRFpycENnCjI4aFRmTmY3RDVGWExjTmRxaExR\nWG9NcVZRYXhkbzhOaDF5T2hOUUlWZUkKLS0tIExQU2x4dE44TmdHQmpKVTJGNER4\nMkNaN0NTYno5ZlBwRnJuMTBCVVJzQlUK21G0AUY2RYwjq8VawPF4SJytgasD29EM\nUEE0FPMeF9nZsY59gN7uH3ET+n/T2H2/7/COthajqHjUcuT0kxPQTg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArMVh5bkh4UjAyMDEyRTBB\nSWV3ZXNEcXo4dGpmdWRRa1RXNXpnUUh6YmpJCjl4MXpoUFNBV3Jmeit1YzF1QWth\nMDdGUmJTR2c0RWRrTGhtWHUxZGF2MEEKLS0tIHdpUWdqTkZ6Q3dDSXVnYzc3ZytY\nWm8vUzhrRjUzMFVIaXZ6MHhXTjBHUmsKrrbZxCNyIDhSeKxYJSq+NxUgjoz/LhB0\nscUglb4KqJj5QTHoGT8Twd2AtSPwPYYZDmscz0Od2IG1dEx0L8zgGQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBieUNuZ1E1UzFtS0ljOFN4\nRi8wNFdaUWhBZ1V3R0hjdlhrMXdOT0NpSUM4CjVkaCtlS3pYMmNiUmkxVUIvTEQr\nMEg3c3BEbXA2MGpTbCt0M3grUnRMS00KLS0tIGk4NFJtVENvNWF3ZTNTSnUwWWd5\nYVdCb2dlYk1CRnl5MGhsbDFZTHZDaWMKkY4dobNLOqdKhzuTjF6XsU+9+Imk1QhS\noMoGxBbLgYBe2qbsosyY19wm1qrMztI7JFbTQdGv1Jl/E4tobP1wYA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXUWtJOWhmOFZjQjl5bHd2\nY2hQMTdvcFNsTTB3YkZ1Z1Y5bno4bTAvUEFBCnZoUEVra2pFM1hITHE5U3JVTWtU\nNXFGRXRlbVBkYytXYWdxSnRvMWFtUVkKLS0tIGhOL05qK2U5cTdmQVlsR2lTcXZs\nZ2hZQUpSUWNJZnROOGNCdVkrcnFieUEKPYsNWbqCAC5u5RX13gNGzslrlTG9FqDx\nWV3ENxpKdfDZ25LH+DEw7w9CzawzRZIH9vFQxI7iI3e5XjJ7iROWHQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0WkphT2tqMTlBWkhYZE5r\ndFV5dXlmZWxzUGpNd211bGw3bUM2OVVQaDBJCnFOWTZFc0NkQkpOalNhclpNWG9m\nMExRQjBMSTlPQUxJUmQ5aXNlMUhmN0kKLS0tIGsvbDcvUlFYbVZ1NGFhWnFHdVBm\neHRQZkdGcTlLdEFsUkJJRTJRd2hwbTgKDaq8TeG64RzCFggKxFEMkHTcp1NCGY/a\nkhsZGNxnrhznpeIBdOqe+NxBUpLBX16IBjTp6hMBWvq2K2hDIhnhGQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvQjdSY05WL1FzZ3hMQjBz\nd2hTODVCRHJySkk5Y0VYRFIvN3h5VllJUEJJClFVOFYwVnljK3lPc09kR21wNldp\nZmo0bnhudloyZm5FYmNOSnUwZ3R2aDAKLS0tIDB1QXRydXMybERBelEvNEhjOXlw\ncGFIYkNidFNja0VoY1c0d1JTa1JuRE0K6YxRpSq/2rumXjfPQFV2PRvLfUUwgaj2\nYY5v04i43UHoK0IjA2J/qARvVU+OMlqKqBIsGAY4b9auw7GhqnK5wg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGWEhJOXcxK1Q3WEsxa2dm\nS0hFNW1MWUpKNFRTYThSUWVmcU51Z3hycmtnCmVncm82bjM0N09wVHJzMVIwK0xk\nMTJ1UmpDSjJwaUsrZjNuays4UnRZRmsKLS0tIFFSZDh0UDBuR2JGM3JnWWhpWE41\neUVicFc2ZHltL2VSak5EUnFkNGtjYUEKFzfxDYUqEhpjp+oa3u31RNuHAV/Yv+Dt\nAnO66LBkOX6177b+t0oa6+GkN2ILOwMkigqChHTZNMy542EiHKqehA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5QThvKzFkdVZRMk9iY0Qw\nVi93TjNGNjhIQ08rczlqY0ppZVpsaWt1ZlNnClQ0bjN4ZGhDMlJwM0hhQ1FwaTcv\nMzFIT296QXk0MmNGNkhlRW90RWt2ejgKLS0tIFNjR1RQV1ZnV0cwUGYvM2xYMFRs\nU2lqZHM0V2xZU21ZSG5aUFU5SkxsU1UKjGc2DCMIuh/im6C/8hU4SiNJ44Yy/+xE\nnGBlOfHwnQEdMcpV1u1Mg72J9BTKwDB+/dfKT83pQOwyKL1lxSl4Sg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNGduOFBnNHpFdWhhaHRr\nWGlzV3pHNjFCTDQ4VjBYWmhlYVBGV01EN3pnClBnQjN4NnlhcGRBMG81dTc3Zmgz\nQjU4R1d4R2ZkeitpK0F3cTlvZlNhQ2sKLS0tIGtMaW5SRUxYYjUyWVI1WGwxalVr\nWFRXMThyT3pTaW0vU2ZUTHFrY2xINzgKnjjydefarPqKwzm9mpYwZvyoiJe3FvLr\nB+WWoxWggvyPtn2z+NXA2Z9ZeS6hRJsJGJ+SQ+FzQsfsn8mlHMAapw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5Wk9HcGlzaTVFUG9UZi9Q\nSDBMOVBOR3lRRzNOZklzanRielhSTmNMeDFJClhIMlo4eHdIMWx6RE9DeEJiT1pW\nMG5FRjVHQ2hNZ0g4Z1Rqb3pubUQ1LzQKLS0tICs2OCtmVUd0Wkk2eHBXejRrWm5R\nZ2dZVFRWWE1HcUFCZTR2WVVwR2RxTXcKeCLsBtXBI4MX7HdIsiOBVLZgcB7w6iUW\nF8qGWersoEyNBIozpF2HzQt74QPtjJqEdiSv80E7uho7Hg8NWJHQUw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXVkk0YXdPV3BpMGpFMjFq\neXpucmoxb1hSWGp4UTJHaU5FOUJoSjA3NjBvClJYMnRjNzhzL1k2NEFjUklQWHBZ\nV2RuYW93S3RkSWxUd0YyMmNjRjNXLzgKLS0tIGtMRVhZL1hBQWJDV1QyODB6akNY\nZ3E2VFMvRXBwZHJTUXpuNVQ1TGJTU00KUjJG3vRc8qIAC0JYJz0xQ1uSkE0omtLC\nw781AaTuEV0nH8v1EOqE+UdRCUanT3aD5HqwZkAuYEncYvCu9fKZxA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFSDlEellrU3B6Ritla3do\nbG1DUGtqZFJhQkhueDFKUUxtS1p4NmpIbTJFCi81Q0tqT1g2NUt1dStIODBJYk5a\nTTVhR0lHZ0l0cjRkamhWY1UwY1RndncKLS0tIHlyYy9XbnA2dGhNTkg0Q0xBODJv\ncDJkREswenI1cDhESlpleUhxNlhzMTAKJ3oWaL4k1z11SghtipIt4rhfcASgXG2O\nAcYhMUFjtf49+c3dnKbXXMeI9Q39XVUZKqcA1sP0yt0W4ibyfbNbCQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Qm5nWnlzQnpsOS81eXV5\naG12RUFOZFI0QW8vaW5TNHdTOTdFSnZMT0gwCkcxRm1aUHdzSmJjSVFtNGp4VU11\nV2VSYzVvcUFhV1c0MDRLY3FmNEhSb0UKLS0tIDZIWXFrSmdNdWZjaXVqSjdtaDlz\nclJLVVdrQ0hKTTJPdHh1ZGlyNmxtbjQK+KFtndjk92ncG0RJNdvN1Ri3CdBqpyDT\ncJ4N22jGsQxWGBnX04hjWV/9A8BA0NZ+LuN+ukAvgP3j6dea6VWh+Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpd0crZkR5MGJzNnladWRR\nQkdReGVpdkdKVG5SZzdtZDQxS3Z6ZlliQkdBCldwUnVpM09DT1lIdnpnZVZ1ai9C\nMkg1RXpHNVRkaStrU0J0UDRiNm45NHcKLS0tIE9udklXMXJoa0M3U0JQU05XTHMz\nNkVJV1l1K3l3bWhLc0tLWFM5M0R6RTAKKEPZWpQ9ctT5nu8ypQdxcF6ZRNxbHpJu\nqCUJMXLRqUyuaH3aYx1lEM6AyH8zgGdRUPjsKMyEn/LXIkINRM7EbA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-28T13:56:30Z -sops_mac=ENC[AES256_GCM,data:5dvwR2aknk3QuWoB8bMIP2QvZ3frqWVXh5aWWrI/C0VBvRMf9/9MDkxg+hwalEzw8/JkVR7IwOVsjiGB+DjbQAhmeHXQgL8fFjdh8w6y1UlrYYjF6Hw1qI5PHP7WAVVBLybSgq/XjtN2yy6jfphPz8pDCcT5vbsks8/7QQQbRtI=,iv:RTeMQ4a8Lz+YtFRNiCWa3YUGzP4S/m8UFevwN3tUJsQ=,tag:isfUa23pl5IFE+F0tor8qA==,type:str] +sops_lastmodified=2026-04-29T14:24:24Z +sops_mac=ENC[AES256_GCM,data:z+mPxvLK1rD6TI5f5+FzGhhps2+feeFe33pIYydCX+c1wBOYZf7KpL9shbeRo4v2O4FA9rIDDGOvATA9t52tJdwnKn2FKkMB+aN1kwyvTvHc0BhKIfHbJ3UBK/jDShsw1xztcOEdLFBimIHm9g3DJNaVVK7B526mg7/OK4eHSDA=,iv:jXJBcYl1QVUvK/ILlNb5Qf8yUO2wjN22PASYA6609z4=,tag:l+XlU9yfWEXI5lHFJnzqdg==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index fce016d2d2..6f8456e007 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,55 +1,55 @@ -#ENC[AES256_GCM,data:5P79lcBuF3CbVM0VJzpzuhETwVeNx5dN0zu8xfN8PnuF,iv:ig9iPXQxQ3QwptTMPf26DjZTQH37CxTkeifaxCpt1dM=,tag:7VmDnSH9oTHNe51I7G7WxA==,type:comment] -#ENC[AES256_GCM,data:QD2RhZeun1gsRsqqmqrmMdZRsJdd+mnTwAupronNF9rNR2Cjk6yj5Hu1pG7Q00cR+52lQTnRWGIRSMM=,iv:X+Ri+r/jELTrCMWGfQ9tWkTy9Df5AvlGWxba/sAS+lE=,tag:ClQJw0d8hDnB2yE4jyft/w==,type:comment] -#ENC[AES256_GCM,data:joznONlBjmY31a0p3mLOER5mDkkFZ2bc55NPuCu7zY3oSTjcpVQDvFQzJFiENn1sVTuBN7QG6K9QCFJtMRhNU4dtEw==,iv:snLb/mPiJyGrNiSFek7xPLCtv5B0bybt5rBllDiQBbA=,tag:ZYPlTtr3kR8wYxI4rgsecg==,type:comment] -PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:mXFUuRsutskcVWVuNj44+xX1cw==,iv:rIO3WzBnGX02w9j1qS5o1NbTYqNbBoYLesKvYudqBGw=,tag:Aoii3Z+iaATDXlvQD8NW3Q==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:vMYYz0t4c4R6A7GTopTilppm8YaNQhOL6uGO,iv:Cl34GCjHbDHsH+ITriUPVVq9H+j6GVzQyPyJqzm5nuI=,tag:gwx4188rtEIb+a647FCYWA==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:Nu+OTUszI0k=,iv:QIELCyR7Q+rtfykysvqaWCaolAvVh7NYks9tTsQ+XPA=,tag:wlQ7tbSEnt3+FtywPBfn8A==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:t2cS2TwihLc=,iv:y135FrsmxCGdGFTbs+WjjjJCYJGb+6LQcqyGdoyzYFg=,tag:8fvsmDh6aXUOntA1CzL32A==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:lNlWmCn+7Q==,iv:7+hVQvtCT8Ez2S73+BpQAmb3IBOiKQfHe1HqFTU70Zc=,tag:Dh1zzuJuHBSulUPTeiD9YA==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:AlBKrxoKMVbC/YwxqUjVrVuOXqDjc1nN+xB4B806c09AAV4ZHLbJm3QPMKIoYg==,iv:Vz2Sm42ypgNEzTGZ6XaMLPLQJ0OqoXenKE1UG5HUqBA=,tag:uhHuzrAT8XYEdqGft/gswg==,type:str] -PGHOST=ENC[AES256_GCM,data:7wo=,iv:zo34uQogCXvAcqxBmgh8JNh6MRcyGM0icqhVQVPoN14=,tag:LVgcp33KGpkxw8CEerVm1A==,type:str] -PGPORT=ENC[AES256_GCM,data:xanQUg==,iv:J+KJnlKy+VdSl1F4UEE4p2G1srxOnC/kVJiWm2BGRgw=,tag:1dXFVKxjinD1Re/v0LQw5w==,type:str] -PGUSER=ENC[AES256_GCM,data:gnSASEt4kyg=,iv:A68hvvnNR0RytSM0Yx12mMcVI7qKXZAwyWUD0N7XQz0=,tag:HO0kMincQVNN+PzKQAmZLg==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:/wtr2D2mpSM=,iv:JPGxeiCmpHdxb2nqbUWHBWbGgIbqpNipFutEDglpxMY=,tag:OJdhNS3KQwDfLymBWmd05w==,type:str] -PGDATABASE=ENC[AES256_GCM,data:jCGhXFQdFA==,iv:To6YBc/+axnxCs7r7Q+n7/4bSeoEzO/qsOXNmpIRO6w=,tag:NcpiA5oLeht23VSEQFsm1w==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:3Yw3ltY=,iv:xvj03cpdRGwW0kU/gt+fdr1kwiApGvp7Z6rZZrgAVTU=,tag:vsJBuCXR69stagXgqODqtQ==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:tom4CeusQvuOfHiZ4A==,iv:3pCqUJpzuNbbzFyhstuvIYaZk0u2rWcXJ9x4kXhA7Mo=,tag:NxejQ8Pxknt83OCOdWVJrg==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:110DKMD5TuQ1RWJo6Q==,iv:Xzwpv4OZsn9mSAwmwE8xyWC2ibPHXLhjtL8r0TsYq8k=,tag:dUaLCBMoJCGU+Bm+aoqfrg==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:1gARf5Lv9qRzCyX1poU=,iv:p5w1NxxXPYeyuo6ptLrbAUSH3au3+wwr1FSYilCrBkM=,tag:RVlMFE9oDMXcdkJi3lMJBA==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:HE1geSAwYd5OVPY=,iv:csrV7LgwLB8Wv7Ozjyu97x7ca8uvLUQqrjPEcsRt4no=,tag:fzmgekzd33ViG9cFqwFh1A==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:BAZF0bVdwD5z1HU=,iv:Do6kbA2zd0t3rbjIfoRDIAle1cLrfj6TNFeUU0n/Os0=,tag:6MbjoeUatHZeJSFyg/0tYw==,type:str] -S3_REGION=ENC[AES256_GCM,data:L5HUYmq6ArRd,iv:IuBr2fznt2wxlSQCgIE5SyVWT+wS0Wz1feMFYGI+j8Q=,tag:J//WLPnmCzAv7jc8n6UjHA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:DtkkBqSU/3Ozw+CMr1DAto0=,iv:Vcm+IQalpLCBhxPSNyEE+QqGWmbhXQlA3PVeit5oQEo=,tag:zZ/cKLs9YmE86SemdDo8Rw==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:Kck6FUbzo5YKCMt1lZ42mI4blrICfNNVTb9nQzBy+DufXQ==,iv:LfeGPlvYMrJc12oufPnwXYvgvkaers0/lAa/kuEOOiA=,tag:1iLNUnd1Id/airr3KVi/+w==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:G6eCj7cqEx/WYHbCgRr7frA7IM80F4Kz,iv:vNxyWISolOauWtlobRhXitYhOaYR32smjnZSiRhLqNc=,tag:Xg5fTypCQAZwWxU6YgFkBw==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:vKz2,iv:LRqTYv7tyKvLzuyiYhG9cxiNV32BHVESspriMtlB0tA=,tag:rT0B114cCm/nGB4vK5kNQw==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:MKW/d5b3SRY=,iv:G+17pulXrAdcZGWE0jzTOJevSat+eXegIm5Zc4faIao=,tag:xVV+CDwE4/xun2V3GXieNQ==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:HVEbMg==,iv:JWMNleYUHj3D9wYXpi6uzQGW03ShomsJ2Ulnv/cbyTw=,tag:3EL55WJwmDOJ+SFGnBnMUw==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:DkET,iv:gTCfGgYurL5aW2bAgAtYzItDNyjsSKYoPgU9cm1VSWo=,tag:qmhLlG0A0m/Czw689/13CQ==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:Tvcp,iv:V4zULueFM+1TRkMRjRAJQHcuFsKZoEJ+b2c8KqJmVuw=,tag:vxG0gZVMSsnB2kFTm3olzA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:5raeLmtJxERsAee31bj7,iv:SoKi57IRQZOGNQLLlq2Bae1ecf4pcppS0qc+khkhxlI=,tag:WrRp0VpFML6SbODwGH4HfA==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:f/bEKlmRkT5cMiPo,iv:aGnOvsOLD42AVTzcg9loPKMRVIJYVek687G6CNqAEeE=,tag:nA1B1vx1cZlwmA9masFugw==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:vGAu,iv:+6rBXR8J3/i1OHbnTxZSqYbESoPdFeiMzokDJ4+KEoc=,tag:3N32TAK35qH57Ekvl7aDBA==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:rRr3RLm6hTBTiG5uyDLX3f+O,iv:symY3QYCc2niSaNu4gmR29iwwznimWvL2uZevVLnNkY=,tag:+E69e739FOdIXy4No0cV9g==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:wSs0,iv:m3jqw+UEx9/CCMIDxVc2VRyWph2Hpo+SymXMxGtXvbA=,tag:kcDZBOy8+JZ9n4QUBUXvsw==,type:str] -API_KEY=ENC[AES256_GCM,data:Etn2,iv:ZZDOlUXTewk/KUAVDrDUB3052hid8iw3ee96TNVrJIk=,tag:Du8P+OR8Qd723WJSButoqQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjTDZ0dnU3N2k5QWNINTc3\nMkpIcWFaWms1ZERpNms2RlRhNlhmb3hHU3prCmJYeHFvQm8vUW1ZY28wdlQyMzV0\nc0g5c1Y4d0VSai83UFAzTUwwV0VUd2sKLS0tIC9HaXhqTklCcFBBNEVDQkdwNGxr\nZXd6eG0wVUFscU9YRE4vUmxyV0hPcE0Kxj9IsmkGdjEO7ZwqtBLoavnu6v+ks/TV\n68aSL90rbyFZRUlwx8ExRdQmSA+xCG+QkL2FR1ytk5Yns5RIpJFGSQ==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:zqf/lAV3ZtGVe1B1CdktWwdT/IwCwwfDXwrR8Bx//SZ6,iv:jCrXiJKct1wNsWA3Yl+jnjLxXboxsj26Oqr2kE3Qy4o=,tag:iXCWIE18IBuljmS/BTF57g==,type:comment] +#ENC[AES256_GCM,data:du+QJdIRAyYeEQ3B/uFtB1d+T825KdjKQHlqmykoCHrwEKQ7wMi3GAxME7DT0Vhkjekt54Tva7btJgA=,iv:IzKQitOGxy+Uod+9atDeudj+FPEBo8+1JRS1HeSmt9w=,tag:Nbo3T9Ao1TO7i2uj333vgw==,type:comment] +#ENC[AES256_GCM,data:gkboXLUQmmT3xEKqRYYhMRH4fvDm2x5o6Gn3g4fTm4k02B9V9QGoJKgvFE8eHleEnsKCPln5dVlv0Jsca7089FafEg==,iv:tJjHimurlxRXfoKG11BkAlhY1nobWwWHhA4MJwGMp9Q=,tag:aDCBYzchSdZMs/dg08Zxqg==,type:comment] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:z9TdPhrNpU9GeGxzud9XOboEkw==,iv:irQqhHsIiVtHBChVLuKwTCXEOGJ+n0tf3dRvr4IphsQ=,tag:JDRA4uVrBGGOkbLTfyjuvw==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:VmUV+OZ8kAHPJAPUlqy9ItJlKeTgiPM8CLPf,iv:BeU/auJDDwDEqcbs5HbcWkyZlkIYshe28/NtOic7Fgc=,tag:koErHfpy7BoD7XkE+HDIqg==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:xyHo5nAeAdM=,iv:BGEMF07cLV1WMJBGXNjzX+soHLIr3Sx3Yczw7VC+RPo=,tag:/MVDVJ6Nk4ubvhPyD1p3yA==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:9QHqUu4IlWU=,iv:NxFEV97ABgUXKh6SBB6NV9fbkwXBup1iAjpYbYQ6Ers=,tag:fWVefHArkHtvRx0Em6oaVw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:tJj/uTycDg==,iv:v7g+a8gdbnS92bFljKMRaRiZyOygGGt8c2deiJJRdBU=,tag:ADUxCCmV91ckKmNG9zBjrQ==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:88rcR01BjVA3qMxavShL8+qtXxCDwb4WJp7TjMphn0XwckyhRLVLpkngWFoE/Q==,iv:6YiuVwCVGpuMTQxrXapbyzVMPNsDylq/VblPGxLAdvg=,tag:rrzCjgyIwv4AmEUcsBXxHQ==,type:str] +PGHOST=ENC[AES256_GCM,data:1YQ=,iv:HMRZXbIls4DjGgAf7csO5UyQSvBKjvexo0lAu3dRyeA=,tag:eDqYVvV/DiD+YPmUE/80gg==,type:str] +PGPORT=ENC[AES256_GCM,data:kF1TSg==,iv:yrI5ddqLUsaQqfJhtV8kXJmuj5nKeq1QF3ZVbdCEVQ4=,tag:5QWPHbiWeSyYqbx03LrcPQ==,type:str] +PGUSER=ENC[AES256_GCM,data:E4qEWPEewCo=,iv:pa12aUpYG5hqaHFNhJJLjGHBcR+Y+scvywdMOLuCMq0=,tag:LUQ4lXl2CEmBNJYwa7Z9nQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:/aV1UIy8RnU=,iv:8gpIvIveeIrGpmgv3d7uQAsITR3mQQ6nph4fBs4erFc=,tag:24Hh9XR3X0SPZ46O1SaHXQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:DWUY/wDmEw==,iv:hn+17ug5HslaDuLfoMfWuUsARCg5OGNOEoEFaQ5dLX4=,tag:W75kZHgFfkFwYZ12J9IqqQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:Pvl7IRg=,iv:CkjHJxojFSq8YQ7kXJWkzb1iBE9LTUBjEykG7oZhIeM=,tag:xz8186Fm0ehNwvV0p0bFgg==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:LV+dFUrkIAuzt8N77w==,iv:XohWvwMiW4R53145wjveG4ycc/flijElxp5BsgnL4eU=,tag:GDMMOygQ1hNGhOVxsZhyQg==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:9AJ6rB6799aPepsPGA==,iv:uMlhWHA+Fx9Kxiw5VoVL+bmNEjpoWBpjtOgNjSN6qdg=,tag:lndZodxq8ouQ24/Bv4biAQ==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:CK8rgmZ5cJAC8rdBQIE=,iv:JpWtB0Hq3Meb16fI0KTIScX/PDKo2CeXBpUJLsWvFns=,tag:mxWDc7irbx9BvMc29110kQ==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:Rn7sYjKFj+VtB+o=,iv:XXbYuecWZRF/+KApLFu1FwYRutYhqx2lprwEfkS9isA=,tag:v0MWQQNYrl0hzF2x8BpULg==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:IojQFl7nJZr1Dts=,iv:xe9KfN67c7imLHOvAv0afRCZS5cx/Ll0xGID/F+GdD4=,tag:wQgZaxcw3Zobs+f3aaOZPQ==,type:str] +S3_REGION=ENC[AES256_GCM,data:2rcFy3j9n58V,iv:/UOP/3N8Q1zQkAMbCzgMRUPPHK8vREvjjVnF0A5W2T8=,tag:dLZ86FKp9d68jFl8vBCCPQ==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:WJ5q/LVuq8TZgIVxZ8PE//w=,iv:Zegvqvon9eMDaebWiw9FnXcAe6cpPvSTvw7OX7lOogI=,tag:O3TFGgwE8aWUx3Y1R6LPnw==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:rbIzY7sfUnPSHy+P4uiQe6cuDeKYNa3syJ7zKUfLcrNXPA==,iv:pA88v5Ojp+uNIjrZ0rk7em1R+CKegOjFp9iJaVOwwG0=,tag:/sRr+hxDxTwuJsw7RNMHRg==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:cRNuCUn4drG9fP9Xb6yNpnIHGZZc+V9M,iv:zrvQdYV5/DZTzh6YfsVGgoH8JSRkflKzb0S5vtAsVJk=,tag:JqNFFHE04YmHgNcZiX6tfg==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:fty8,iv:L6XsogALC4DY0mEqbJwXl1/BCA/5WY/2b2fUjuPqQqg=,tag:jyOH4rBl7AVG+IVkX9ZUMg==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:nv6dzZB4H0g=,iv:XpMB5JE7VRuelx107UJeGNnAG0QU5c2ci0hN43fO5NQ=,tag:NXHxiFo51frNTLszrRHURg==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:HPZUPw==,iv:2GsmB8itSPp5eBQALfzvePmcsv3jqoYO2rwvWDHGA4w=,tag:MaDKOyp5zpD0jjpPF5283A==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:Bp+1,iv:588XjW1iLa1JR1O7nEoL18+UJAPm3dgJQ7L9eQMD8ck=,tag:zB0LjneN2rFBWmf3ZfLqaA==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:vbFv,iv:poxmyrs0Yk5HGya5z1LQ3meN3FnhQRuIhFjRGglqaAg=,tag:swBzOW4BlXurGvxyzTiNcw==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:JtXuSE9ajnAiik4F3tTd,iv:E7ycBrvoNnim7766Y+tlKuDhj5r90ez2srueOaDxTMk=,tag:5xAcpTdOa6XytUNV0Gh5sw==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:dvbzniEmHPWcLkvP,iv:SGLTGZWoIEIBA2RjOKpoeXy7315s6JR60Bh8wclEX2M=,tag:G9UsPK3UnhoqFFLVJjrJ2A==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:iXeS,iv:K4mPtLiycHuvpwTYgAs/d/CJnbfRDr303UINhzP9vDc=,tag:NzUonvjtX++SoDlSSz7qOQ==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:lsxgc9cPbAlzRfRzRUkUVZgP,iv:iPNJFsUMf3O7Sdvft971ti38XohPoD3g7T7TFQJJl20=,tag:f8cNJGWPB6cb59LbdJoDIQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:jtyB,iv:SRqU2eKF9KFrv3+dEAWGttUuu8OBAjnWz9tlw+nGqQY=,tag:on15Ho2TcWD0JLe5WsqoWg==,type:str] +API_KEY=ENC[AES256_GCM,data:8Wgn,iv:6nthOVTTbo92dfns88dHPBv76WFb/fDKNEcWK23smxk=,tag:rW7p28pYZl4GW1sNuo7eDg==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVaHBRWkhFOWFxZ2FBeXFH\nMEpDWHRLdmhXZGV4ZTltK3M3UkhtU1luUGwwCkozTWQyMi8yd0M5c1IxNXFIUkEv\nSno0SjhvM05MTnNtbjdxbElpN24vekkKLS0tIDhoQUdLUHhiTmRZV0NkYUhPNFI2\nWkhudnc5QXlINlluSUJYeVlFNzZxUjQK7LDK8aa48+icO32nuWejKPTkdrdu1q3+\nFo3TlD2AiaVVgxLfSGYbVlFMT6nCM2ZlA+zubb/4Jgk4YAE9fzeIlw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZTWFSckxlaXpRU1pJK1c0\ndlRUcWJJeE85U3o0R1l3ZFFERGpEV1RvNlg4CnNybnFNSWRpeU0vQWo0a2gwTEcr\naUVmLzRNTlhHb1ZkZHRpdWlDem1zY2sKLS0tIGIxdCtxUU9hTHp3b05IUWJSUllh\nQ3F5dTBGNnFLL0JDTjJDeTA3M3dBZFEKyxQw/ogv9WLAymxgvdS7cP09KevlNNqh\n5UJkGM3zFNvRZS9vFJMgiCa2KCi1RvGfULQMKIr7b4/vthDUAsN78w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4M2FQRDZJeWRLcHE1VWxu\nbFZvenJFZWJ2bUgxckttckJLME9iLzQvejFVCk91TEF4NGVaSzAvQnFLUHBuZ2dx\nOXcxdFhhVEh6ZmY4cStxd2tEMDdxZU0KLS0tIGNYQnhwWjlpZExtYktaSzgzamtK\nekpZTE9FaVBaT2ZETk5GN3lXNHdxZk0Ky2juLfhBMHQtV2l+lA5vKkMXkH7L7152\n84nhV2TBlcCbCpVBVdfo8NT1z6NNYCTfUDDrJTX1Enr3FiKibLZWVA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0NnhCL2Nhdnh4Q3JxMjZZ\nMjZGQ2g1V3Zobi9ncDZmY2FXSERCL29RZVhFCitKNms2T2VvZENJcElLOTYwUmxl\nWTN3ajB1YWJTcTk0MmN6dk1DUjNrTm8KLS0tIHQ3M0s3dWJTVjdwK0hUNjhNTnVU\nck9jQVBSMkw1K2lpSnpHTWFQK2ZFQlkKw7aKuk4H5thAIVN0T/qEXyxk6Gd/uebh\nfsb2Js3vmjWedDVAvqXKyr5e3VSC/DGSe5Ibr8DCiPLOaRMmWZFEEA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsMTVHb1VCTXNISXh6OVVT\nZTkvWTFacHVLMU5aWlAycWlwSXdLZk1CZlNrCit0Q0R0V2dhZzRvYVJRMExKYW5o\nNDJtZG45cVBXcWF1Q3FRZ2Q0ZVBQWDAKLS0tIDA4Y3pqbnBVZG5pL1VrTmdoMjhw\nTDkva1hZOHFiRlowZzFuWU4yWE14N0EKAtgaBRRRWAOmUuCS94y+lFvLiaMuK4tE\nJWgydI2IN0McNKWZfHJYRkRBNptyglYNB6gZM0lWuEV06fhlzsJIjA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsU0tlS2taZVJzQVl3YXQ0\nSm9wNEdPM0Y1VG9sVzcwdzZyTnk3OGVWeWtNClQwaDBBOWUwY1RuRkUrbzRKZlMr\nNGxPN1VwTEcxK2xsZWswdU5LUWpTUW8KLS0tIHJ1WXR5bXhCeEs1R1VNVlhpbmpZ\nMXI1ekRjLzdhcHViUVE4YzV4Zm1oZkkKZ15aWWJfCaqDB+Otbib89jHpiKSCV2yW\nbkBWWbDmPduz0b77xPKkbl3VqYk3Q2+vgP1JwA3rxnQrwfpck6eyhQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBydWE2U2dFN0pDSU9TdVEv\nNjJMN2xZUEMxaWJuNStCQ24xeGcrV2NhMHc4CkpnUG5vVVV2L1BRb3M0Q0cxZVlK\nZFg1eDBRdFgwMmdhVHNleGF2WFEycFkKLS0tIHZrNCtqbWZ5RmJmK2ZEaHhvazQ2\nTmNNQ1pWVWdiWlpzSHVYVndBNXpZelUKc5d8uILLBcr3YWQQ2ba7vafTNiPyyq2X\nmexxpFIE9CObc2zxcsgfAkLcQ6snGpVZQ/6BOGGh00s5+YEOofjC8Q==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMUUh2L3JRV3krZE95aTNz\nVkh3YmRXNHJOR2NBekpkT09GUzJNbFJjYkdzCkRpU1NIQk9zdzVlUXlXTHBnZTVu\nVlVyWC90dEp4YVdiN2NndXAvaW1YK0kKLS0tIFRzeW9uaTRRQnV6QWJ0Z3ZWZXdL\nNlBlaVV4Y1RicHIyNDlxdE1mR0hjUGMKxxGehuJjbpTpGQntxcRBCpxHwhBeGPwr\n5thqVteqHMZ6eIfRf2Eyl+/QbsqNwrEZOlt98CVrl/JXCGdEFH/QyQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJMkNPT2Z4V1NYMUJhcXc1\nTGd1RDRVTHZSL1FRcjgzTndDcE9UTzVSUGxFCms3UzVhZG16bjY0dytTNnNHR1l5\nVm4rTjVja05pM2F4SVhneXMzWnk3cmMKLS0tIGVmSHYyTE1Ka2Z1dVVqTmlCdE1L\nOEV3b3BsS3BSNWNPQTFqNHhLQXUwVU0K1SyIVNJscpq+SKwVLKxxLAOq4ouvePIH\nlVvlgaH4b6kFZWPwnDOOiHBHVAeLl/McOg8iw98cQvrBHLjNmb+bMQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3UGVxcXRuRy90Qm12TCtN\nb3UwejR6MVR6WXh4M21rQ3ZYaTNaZEJWQUNnCm9heGpQdExEWVA0UGkyMllkK1Rp\neVNTMmRFUUZTUk1wMVBRQVh6Q29RZlEKLS0tIE5iWEhXN3l0UGphVGN5Y2txYWhO\nRzdwbTF1dGUzTkw5NGw0N0EzbkthdjAKWZ5IaZPiG8vSMvfDhljX1rBTJvGjwnO2\nYViSzM4cam4QiVbE0pYBEN7Gkbdw7gidKBnhCu4RWjGr0c6zq99V4Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNVd4ZjVKMTFOV3h2bmF4\nM0pBUGZIb1JCUFhpL1YxallNKzNncVhwc1NjCjFYd2YxQVpwZ3ROVk1SRW1CTFk0\nU0E2WFhXbzdCSWVKY1B4UnVSNm4vbW8KLS0tIGVZeW9PSnRIcUlSYjNGcytIbmN1\naWdWTG0wQ09ZOGx0RXpNQzlhUXFqaFkK5NJwrQ6kmINb81TE4bAV5KJ2FXe9Su2B\nJ6BhsyfAL2kh+Q38VuvYcnSNNG2FZV6udVjn36ot42fcvhtlVWK3jQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2czk2UjNRdWRwdkdXTWor\nVUxaMnphZDY2L1hoN3YzaDBzUHpxQ0FLMmtzCm1jYnd1dm90NklCT2ZqeDFqYlFY\nSTF5WDYxYkhZYzFXenFOWFRJSWh1WlEKLS0tIDkxOEpYajlhRWsrRzc1Y3FtL1hm\nWWNEdnFMTHMyL3VvTlh3M3dmR0I5dHMKAydQTlqTTSCWJAxOrw23p0D8j79cFUc6\nDXYYIeGfmo2KsE1iOkBmuTifaAgVsoZvOXwIy/DNWXC6UTIjVFS4hQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzUERQWXJXbWY1QTRhQkhh\nMXJWQittMWx1V3pTTndTWlRWRW9KalhlbkJZCjNIKzNXd21Pb3RRVERmREdLeDBo\nU1RoaHVya1RmZXQzN2dRQnRmRStzb3MKLS0tIDNJQzJlUUpveUZLaFNDdWRzaWw5\nMlVkSXhxaDIwZ284RDY1Y2w1cUFiQ3MKSOtNtzdaIjbKZYnyD+xuHXga9mAGzwoa\nL/cRRd1/lHcuLdbwkEGQ2KS/B1VrjvPX0+jmJwxpUTUgjWUUZBns0g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJYlcyYUF2ZE85VzdCQWlL\nSnk3UGpCb1VJVWdDM2JRQmVRaitBUytIeGtJCkg3T2lxdW1tVlRreTZmTy9Kd25Y\nUUJubW84L21Yd1Jkc3RLU2RobkpjN1UKLS0tIFY4bDQwMVZrdzR6Nzh6S2RYdTdJ\nWXBWSmVkVDBJeVYwY2lMU3NHekxpSjAKArfWQUITnCms0GsT36AJWVeLBbJtpHV6\nE1Z4Ab5aLGyZDCHmH3RaZIgmFK3U4fJOKPOvALGkvV1y+yh+7I/Xhg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoNGprYnZLeTkxVUpuV2lE\nV3BOcnB6anNWMWxnT1h0OTBPd093c28rd0hJCnp6UmU1dTYrZnlWdy9RaytHMXdN\nUStMa0N3V3BERmhPbXAwNStlMGptK1kKLS0tIDVBL2xIZjJrd1NOOG9GOS85MTN1\nRGUzN3d2dmY1SWFXNk5LU0IyOW1hMDAKRsVeyjNYS57o/1+uij+dNbavNbtXrYsJ\nlJmGFxKr9eqKg1GYIUMmB3o/2+YPDncxTcgWvyRRVP2cKYg7GBv5tw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-28T13:56:24Z -sops_mac=ENC[AES256_GCM,data:Tx0TgWKsUkNpv/Lzf4qZ5oNF8UNhKXPRVz/+Y5yoo1OHLAsnoZMimf/Cojty4ZpTbE1TIZ+58EvbHmp3hxouHHZ3OY82Q5GTjvpRHOs/mcD0YDZ4gmx8XmRMS2vV/WJLn4XJu8lo5CkAc0eb942zcTVC7JmHHC4XZx8HokSok0o=,iv:jXoPlYKq1E+XHddS3xffufiv4K1AtV03EjNrULGsJq4=,tag:d2RRaW1Wrl81CrDMVmIlaA==,type:str] +sops_lastmodified=2026-04-29T14:24:29Z +sops_mac=ENC[AES256_GCM,data:VE4Ofm6ra9m14+YUmSTHkGGOWVSl4DVlV0HPS+pfLx8zPjHz6G6YT75YiGACkv+ZOpLe4hUwFtHoWHkZhJHgvSEAzQFRjyLObBcJXJ27FOWNGpJdQGTbaw3eAaZS+lZz2OSQ8pz7psHWurDaBvIngoG3ffYkrO410VHwNKgBI1I=,iv:HfFlD8dNk4ugP0sViVTqjnNQFb4hmzrKybuxbz1Oi0o=,tag:nX8j351ZQV0318sL3PM+sA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From 7628a507d904f55085fa4f2d7c5b460a961bbcab Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 16:26:14 +0200 Subject: [PATCH 140/153] fix: lint --- core/actions/_lib/ActionFieldJsonataTestPanel.tsx | 2 +- core/actions/_lib/evaluateConditions.ts | 1 - core/actions/_lib/resolveAutomationInput.ts | 2 +- core/actions/buildSite/formActions.ts | 1 - core/actions/buildSite/run.tsx | 2 +- core/actions/createPub/run.ts | 1 - core/actions/http/run.tsx | 2 +- core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts | 2 +- site-builder-2/server/server.ts | 2 +- 9 files changed, 6 insertions(+), 9 deletions(-) diff --git a/core/actions/_lib/ActionFieldJsonataTestPanel.tsx b/core/actions/_lib/ActionFieldJsonataTestPanel.tsx index 925c89f6ab..1b4d5eeb23 100644 --- a/core/actions/_lib/ActionFieldJsonataTestPanel.tsx +++ b/core/actions/_lib/ActionFieldJsonataTestPanel.tsx @@ -4,11 +4,11 @@ import type z from "zod" import type { ActionFormContextContextValue } from "./ActionForm" import { useCallback, useEffect, useMemo, useRef, useState } from "react" -import { interpolate } from "@pubstar/json-interpolate" import { skipToken } from "@tanstack/react-query" import { AlertCircle, CheckCircle2, Loader2, Play, Zap, ZapOff } from "lucide-react" import { useWatch } from "react-hook-form" +import { interpolate } from "@pubstar/json-interpolate" import { Alert, AlertDescription } from "ui/alert" import { Button } from "ui/button" import { Label } from "ui/label" diff --git a/core/actions/_lib/evaluateConditions.ts b/core/actions/_lib/evaluateConditions.ts index c39a61f455..3377a9d124 100644 --- a/core/actions/_lib/evaluateConditions.ts +++ b/core/actions/_lib/evaluateConditions.ts @@ -1,7 +1,6 @@ import type { ConditionBlock } from "db/types" import { interpolate } from "@pubstar/json-interpolate" - import { AutomationConditionBlockType } from "db/public" type ConditionItem = ConditionBlock["items"][number] diff --git a/core/actions/_lib/resolveAutomationInput.ts b/core/actions/_lib/resolveAutomationInput.ts index 0d2cb4ae3f..eec6c1ab0c 100644 --- a/core/actions/_lib/resolveAutomationInput.ts +++ b/core/actions/_lib/resolveAutomationInput.ts @@ -3,9 +3,9 @@ import type { CommunitiesId } from "db/public" import type { FullAutomation, Json } from "db/types" import type { InterpolationContext } from "./interpolationContext" -import { interpolate } from "@pubstar/json-interpolate" import jsonata from "jsonata" +import { interpolate } from "@pubstar/json-interpolate" import { logger } from "logger" import { tryCatch } from "utils/try-catch" diff --git a/core/actions/buildSite/formActions.ts b/core/actions/buildSite/formActions.ts index c3d147ec43..e3fff8adaf 100644 --- a/core/actions/buildSite/formActions.ts +++ b/core/actions/buildSite/formActions.ts @@ -1,7 +1,6 @@ "use server" import { interpolate } from "@pubstar/json-interpolate" - import { logger } from "logger" import { getLoginData } from "~/lib/authentication/loginData" diff --git a/core/actions/buildSite/run.tsx b/core/actions/buildSite/run.tsx index 8df1e0b7f5..28799f0040 100644 --- a/core/actions/buildSite/run.tsx +++ b/core/actions/buildSite/run.tsx @@ -6,10 +6,10 @@ import type { PubsId } from "db/public" import type { PubValues } from "~/lib/server" import type { action } from "./action" -import { interpolate } from "@pubstar/json-interpolate" import { initClient } from "@ts-rest/core" import { JSONPath } from "jsonpath-plus" +import { interpolate } from "@pubstar/json-interpolate" import { siteBuilderApi } from "contracts/resources/site-builder-2" import { logger } from "logger" import { tryCatch } from "utils/try-catch" diff --git a/core/actions/createPub/run.ts b/core/actions/createPub/run.ts index 7fa1513c56..101e0bc4e0 100644 --- a/core/actions/createPub/run.ts +++ b/core/actions/createPub/run.ts @@ -5,7 +5,6 @@ import type { PubFieldsId, PubsId, PubTypesId, StagesId } from "db/public" import type { action } from "./action" import { interpolate } from "@pubstar/json-interpolate" - import { logger } from "logger" import { db } from "~/kysely/database" diff --git a/core/actions/http/run.tsx b/core/actions/http/run.tsx index 81c5500f97..44b0766928 100644 --- a/core/actions/http/run.tsx +++ b/core/actions/http/run.tsx @@ -5,9 +5,9 @@ import type { PubsId } from "db/public" import type { PubValues } from "~/lib/server" import type { action } from "./action" -import { interpolate } from "@pubstar/json-interpolate" import { JSONPath } from "jsonpath-plus" +import { interpolate } from "@pubstar/json-interpolate" import { logger } from "logger" import { env } from "~/lib/env/env" diff --git a/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts b/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts index 048215f539..ee7af588b7 100644 --- a/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts +++ b/core/app/api/v0/c/[communitySlug]/site/[...ts-rest]/route.ts @@ -1,9 +1,9 @@ import type { CommunitiesId, CommunityMembershipsId, PubsId, PubTypesId, StagesId } from "db/public" import type { ExpressionBuilder, ExpressionWrapper } from "kysely" -import { interpolate } from "@pubstar/json-interpolate" import { createNextHandler } from "@ts-rest/serverless/next" +import { interpolate } from "@pubstar/json-interpolate" import { siteApi, TOTAL_PUBS_COUNT_HEADER } from "contracts" import { ApiAccessScope, diff --git a/site-builder-2/server/server.ts b/site-builder-2/server/server.ts index 17cfc9ff9f..6888fa6b5f 100644 --- a/site-builder-2/server/server.ts +++ b/site-builder-2/server/server.ts @@ -9,12 +9,12 @@ import { PassThrough } from "node:stream" import { S3Client } from "@aws-sdk/client-s3" import { Upload } from "@aws-sdk/lib-storage" import { serve } from "@hono/node-server" -import { interpolate } from "@pubstar/json-interpolate" import { initClient } from "@ts-rest/core" import { fetchRequestHandler, tsr } from "@ts-rest/serverless/fetch" import archiver from "archiver" import { Hono } from "hono" +import { interpolate } from "@pubstar/json-interpolate" import { createPubProxy, siteApi } from "contracts" import { siteBuilderApi } from "contracts/resources/site-builder-2" import { logger } from "logger" From 7bb59a7b742cc3a6546f5ff225d38037cebde157 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 29 Apr 2026 17:00:40 +0200 Subject: [PATCH 141/153] feat: add backup job --- .env.docker-compose.dev | 22 +- .env.example | 8 + Dockerfile | 2 +- core/app/(user)/superadmin/BackupsPanel.tsx | 258 + .../(user)/superadmin/SuperadminDashboard.tsx | 15 + core/app/(user)/superadmin/backup-actions.ts | 198 + core/app/(user)/superadmin/page.tsx | 7 +- core/app/c/[communitySlug]/LoginSwitcher.tsx | 17 + core/app/components/pubs/CreatePubButton.tsx | 5 +- core/lib/env/env.ts | 6 + core/lib/server/jobs.ts | 48 + .../migration.sql | 37 + .../migration.sql | 265 + core/prisma/schema/comments/.comments-lock | 13 + core/prisma/schema/schema.dbml | 29 + core/prisma/schema/schema.prisma | 34 + docker-compose.base.yml | 16 +- infra/.env.example | 8 + infra/.env.preview.enc | 96 +- infra/.env.sandbox.enc | 96 +- infra/stack.preview.yml | 14 +- jobs/.env.development | 8 +- jobs/package.json | 7 +- jobs/src/index.ts | 2 + jobs/src/jobs/createBackup.ts | 334 + packages/db/src/public.ts | 3 + packages/db/src/public/BackupConfig.ts | 59 + packages/db/src/public/BackupRecords.ts | 81 + packages/db/src/public/BackupStatus.ts | 15 + packages/db/src/public/PublicSchema.ts | 6 + packages/db/src/table-names.ts | 144 + pnpm-lock.yaml | 18730 ++++++---------- self-host/.env.example | 8 + self-host/docker-compose.yml | 6 + self-host/minio-init.sh | 9 +- 35 files changed, 8312 insertions(+), 12294 deletions(-) create mode 100644 core/app/(user)/superadmin/BackupsPanel.tsx create mode 100644 core/app/(user)/superadmin/backup-actions.ts create mode 100644 core/prisma/migrations/20260428162431_add_backup_system/migration.sql create mode 100644 core/prisma/migrations/20260429123620_update_comments/migration.sql create mode 100644 jobs/src/jobs/createBackup.ts create mode 100644 packages/db/src/public/BackupConfig.ts create mode 100644 packages/db/src/public/BackupRecords.ts create mode 100644 packages/db/src/public/BackupStatus.ts diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index d91c3d3c38..1d81650933 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -1,14 +1,24 @@ # garage admin token for init script GARAGE_ADMIN_TOKEN=dev_admin_token -S3_BUCKET_NAME=assets.pubpub.org -S3_ACCESS_KEY=pubpubuser -S3_SECRET_KEY=pubpubpass -S3_REGION=garage +S3_BUCKET_NAME=assets.pubstar.org +S3_ACCESS_KEY=pubstaruser +S3_SECRET_KEY=pubstarpass +S3_REGION=us-east-1 # internal endpoint used by backend services running in Docker -S3_ENDPOINT=http://minio:3900 +S3_ENDPOINT=http://minio:9000 # public endpoint used for signed URLs accessible from browsers -S3_PUBLIC_ENDPOINT=http://localhost:3900 +S3_PUBLIC_ENDPOINT=http://localhost:9000 + +MINIO_ROOT_USER=pubstar-admin +MINIO_ROOT_PASSWORD=pubstar-admin + +S3_BACKUP_BUCKET=backups.pubstar.org +S3_BACKUP_ACCESS_KEY=pubstarbackupuser +S3_BACKUP_SECRET_KEY=pubstarbackuppass +S3_BACKUP_REGION=us-east-1 +S3_BACKUP_ENDPOINT=http://minio:9000 +S3_BACKUP_KEY_PREFIX=pg-backups POSTGRES_PORT=54322 POSTGRES_USER=postgres diff --git a/.env.example b/.env.example index 4bdb59a5be..dc6316c1b2 100644 --- a/.env.example +++ b/.env.example @@ -28,6 +28,14 @@ S3_ENDPOINT=http://localhost:9000 # // # S3_PUBLIC_ENDPOINT=https://assets.pubstar.org +# private backup storage config +S3_BACKUP_BUCKET=backups.pubstar.local +S3_BACKUP_ACCESS_KEY=pubstarbackupuser +S3_BACKUP_SECRET_KEY=pubstarbackuppass +S3_BACKUP_REGION=us-east-1 +S3_BACKUP_ENDPOINT=http://localhost:9000 +S3_BACKUP_KEY_PREFIX=pg-backups + # Email configuration SMTP_HOST=localhost SMTP_PORT=54325 diff --git a/Dockerfile b/Dockerfile index ae1dd7baaa..9be2043589 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,7 +23,7 @@ ARG PNPM_VERSION # Instll dependencies we need at the end -RUN apk add ca-certificates curl postgresql +RUN apk add ca-certificates curl postgresql@17 # Setup RDS CA Certificates RUN curl -L \ diff --git a/core/app/(user)/superadmin/BackupsPanel.tsx b/core/app/(user)/superadmin/BackupsPanel.tsx new file mode 100644 index 0000000000..27a7d38298 --- /dev/null +++ b/core/app/(user)/superadmin/BackupsPanel.tsx @@ -0,0 +1,258 @@ +"use client" + +import type { ColumnDef } from "@tanstack/react-table" +import type { BackupRecordsId, BackupStatus } from "db/public" + +import { useMemo, useState, useTransition } from "react" +import { useRouter } from "next/navigation" + +import { Badge } from "ui/badge" +import { Button } from "ui/button" +import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "ui/card" +import { RefreshCw, XCircle } from "ui/icon" +import { Input } from "ui/input" +import { Switch } from "ui/switch" +import { cn } from "utils" + +import { DataTable } from "~/app/components/DataTable/v2/DataTable" +import { deleteBackup, triggerBackup, updateBackupConfig } from "./backup-actions" + +type BackupConfig = { + enabled: boolean + intervalHours: number + retentionDays: number +} + +export type BackupRow = { + id: string + filename: string + s3Key: string + sizeBytes: bigint | string | null + status: BackupStatus + error: string | null + startedAt: Date | string | null + completedAt: Date | string | null + createdAt: Date | string +} + +const formatDate = (value: Date | string | null) => { + if (!value) { + return "-" + } + + const date = typeof value === "string" ? new Date(value) : value + return date.toLocaleString() +} + +const formatSize = (value: BackupRow["sizeBytes"]) => { + if (!value) { + return "-" + } + + const bytes = typeof value === "bigint" ? Number(value) : Number(value) + if (!Number.isFinite(bytes)) { + return "-" + } + + const mb = bytes / 1024 / 1024 + return `${mb.toFixed(1)} MB` +} + +const StatusBadge = ({ status }: { status: BackupStatus }) => { + if (status === "completed") { + return {status} + } + + if (status === "in_progress") { + return {status} + } + + if (status === "pending") { + return {status} + } + + return {status} +} + +export const BackupsPanel = ({ + backups, + config, +}: { + backups: BackupRow[] + config: BackupConfig +}) => { + const router = useRouter() + const [isPending, startTransition] = useTransition() + const [enabled, setEnabled] = useState(config.enabled) + const [intervalHours, setIntervalHours] = useState(String(config.intervalHours)) + const [retentionDays, setRetentionDays] = useState(String(config.retentionDays)) + + const columns = useMemo( + () => + [ + { + id: "filename", + header: "Filename", + cell: ({ row }) => ( +
+ {row.original.filename} +
+ ), + }, + { + id: "status", + header: "Status", + cell: ({ row }) => , + }, + { + id: "sizeBytes", + header: "Size", + accessorFn: (row) => formatSize(row.sizeBytes), + }, + { + id: "startedAt", + header: "Started", + accessorFn: (row) => formatDate(row.startedAt), + }, + { + id: "completedAt", + header: "Completed", + accessorFn: (row) => formatDate(row.completedAt), + }, + { + id: "actions", + header: "", + cell: ({ row }) => ( + + ), + }, + ] as const satisfies ColumnDef[], + [isPending, router] + ) + + const handleSave = () => { + startTransition(async () => { + await updateBackupConfig({ + enabled, + intervalHours: Number(intervalHours) || 24, + retentionDays: Number(retentionDays) || 14, + }) + + router.refresh() + }) + } + + const handleCreateNow = () => { + startTransition(async () => { + await triggerBackup() + router.refresh() + }) + } + + const hasFailedBackup = backups.some((backup) => backup.status === "failed") + + return ( +
+
+

Backups

+ +
+ + + + Backup configuration + + Configure backup schedule and retention. Backup storage credentials are read + from environment variables. + + + + +
+ + Enable scheduled backups +
+ +
+
+

Interval (hours)

+ setIntervalHours(event.target.value)} + /> +
+ +
+

Retention (days)

+ setRetentionDays(event.target.value)} + /> +
+
+ + +
+
+ + {hasFailedBackup && ( + + + Failed backups + + One or more backups failed. Check the error details below. + + + + )} + +
+ +
+ + {backups + .filter((backup) => backup.error) + .map((backup) => ( + + + + + {backup.filename} + + + +
+								{backup.error}
+							
+
+
+ ))} +
+ ) +} diff --git a/core/app/(user)/superadmin/SuperadminDashboard.tsx b/core/app/(user)/superadmin/SuperadminDashboard.tsx index b6c78c0095..b4813ff3ca 100644 --- a/core/app/(user)/superadmin/SuperadminDashboard.tsx +++ b/core/app/(user)/superadmin/SuperadminDashboard.tsx @@ -1,6 +1,7 @@ "use client" import type { TableCommunity } from "../communities/getCommunityTableColumns" +import type { BackupRow } from "./BackupsPanel" import type { MigrationRow } from "./MigrationsPanel" import { parseAsString, useQueryState } from "nuqs" @@ -9,16 +10,25 @@ import { Tabs, TabsContent, TabsList, TabsTrigger } from "ui/tabs" import { AddCommunity } from "../communities/AddCommunityDialog" import { CommunityTable } from "../communities/CommunityTable" +import { BackupsPanel } from "./BackupsPanel" import { MigrationsPanel } from "./MigrationsPanel" export const SuperadminDashboard = ({ communities, migrations, migrationError, + backups, + backupConfig, }: { communities: TableCommunity[] migrations: MigrationRow[] migrationError?: string + backups: BackupRow[] + backupConfig: { + enabled: boolean + intervalHours: number + retentionDays: number + } }) => { const [activeTab, setActiveTab] = useQueryState("tab", parseAsString.withDefault("communities")) @@ -30,6 +40,7 @@ export const SuperadminDashboard = ({ Communities Migrations + Backups @@ -44,6 +55,10 @@ export const SuperadminDashboard = ({ + + + + ) diff --git a/core/app/(user)/superadmin/backup-actions.ts b/core/app/(user)/superadmin/backup-actions.ts new file mode 100644 index 0000000000..9fdd3b87c0 --- /dev/null +++ b/core/app/(user)/superadmin/backup-actions.ts @@ -0,0 +1,198 @@ +"use server" + +import { revalidatePath } from "next/cache" +import { DeleteObjectCommand, S3Client } from "@aws-sdk/client-s3" +import { sql } from "kysely" + +import { db } from "~/kysely/database" +import { getLoginData } from "~/lib/authentication/loginData" +import { env } from "~/lib/env/env" +import { defineServerAction } from "~/lib/server/defineServerAction" +import { getJobsClient } from "~/lib/server/jobs" + +const BACKUP_SCHEDULER_JOB_KEY = "database-backup-scheduler" + +const getErrorMessage = (error: unknown, fallback: string) => { + if (error instanceof Error) { + return error.message + } + + return fallback +} + +const ensureSuperAdmin = async () => { + const { user } = await getLoginData() + if (!user?.isSuperAdmin) { + return null + } + + return user +} + +const getBackupS3Client = () => { + const bucket = env.S3_BACKUP_BUCKET + const region = env.S3_BACKUP_REGION + const accessKey = env.S3_BACKUP_ACCESS_KEY + const secretKey = env.S3_BACKUP_SECRET_KEY + const endpoint = env.S3_BACKUP_ENDPOINT + + const isMissingS3BackupConfig = !bucket || !region || !accessKey || !secretKey + + if (isMissingS3BackupConfig) { + return null + } + + return new S3Client({ + region, + endpoint, + credentials: { + accessKeyId: accessKey, + secretAccessKey: secretKey, + }, + forcePathStyle: true, + }) +} + +export const triggerBackup = defineServerAction(async function triggerBackup() { + const user = await ensureSuperAdmin() + if (!user) { + return { title: "Unauthorized", error: "Must be a superadmin" } + } + + const insertedBackup = await sql<{ + id: string + }>`insert into backup_records (filename, "s3Key", status) + values (${`queued-${Date.now()}.dump`}, ${"queued"}, 'pending'::"BackupStatus") + returning id` + .execute(db) + .then((result) => result.rows[0]) + + if (!insertedBackup) { + return { title: "Backup failed", error: "Failed to create backup record" } + } + + const jobsClient = await getJobsClient() + const scheduleResult = await jobsClient.scheduleBackup({ + backupId: insertedBackup.id, + }) + + if ("error" in scheduleResult) { + return { + title: "Backup failed", + error: getErrorMessage(scheduleResult.error, "Failed to queue backup"), + } + } + + revalidatePath("/superadmin") +}) + +export const deleteBackup = defineServerAction(async function deleteBackup({ + backupId, +}: { + backupId: string +}) { + const user = await ensureSuperAdmin() + if (!user) { + return { title: "Unauthorized", error: "Must be a superadmin" } + } + + const backupRecord = await sql<{ id: string; s3Key: string }>` + select id, "s3Key" from backup_records where id = ${backupId}::uuid + ` + .execute(db) + .then((result) => result.rows[0]) + + if (!backupRecord) { + return { title: "Not found", error: "Backup record not found" } + } + + await sql`delete from backup_records where id = ${backupId}::uuid`.execute(db) + + const s3Client = getBackupS3Client() + if (s3Client && env.S3_BACKUP_BUCKET && backupRecord.s3Key !== "queued") { + await s3Client.send( + new DeleteObjectCommand({ + Bucket: env.S3_BACKUP_BUCKET, + Key: backupRecord.s3Key, + }) + ) + } + + revalidatePath("/superadmin") +}) + +export const updateBackupConfig = defineServerAction(async function updateBackupConfig({ + enabled, + intervalHours, + retentionDays, +}: { + enabled: boolean + intervalHours: number + retentionDays: number +}) { + const user = await ensureSuperAdmin() + if (!user) { + return { title: "Unauthorized", error: "Must be a superadmin" } + } + + await sql` + with updated as ( + update backup_config + set enabled = ${enabled}, + "intervalHours" = ${intervalHours}, + "retentionDays" = ${retentionDays} + returning id + ) + insert into backup_config (enabled, "intervalHours", "retentionDays") + select ${enabled}, ${intervalHours}, ${retentionDays} + where not exists (select 1 from updated) + `.execute(db) + + const jobsClient = await getJobsClient() + + if (enabled) { + const scheduleResult = await jobsClient.scheduleBackup({ + runAt: new Date(Date.now() + intervalHours * 60 * 60 * 1000), + jobKey: BACKUP_SCHEDULER_JOB_KEY, + }) + + if ("error" in scheduleResult) { + return { + title: "Schedule failed", + error: getErrorMessage(scheduleResult.error, "Failed to update backup schedule"), + } + } + } + + if (!enabled) { + await jobsClient.unscheduleJob(BACKUP_SCHEDULER_JOB_KEY) + } + + revalidatePath("/superadmin") +}) + +export const getBackups = async () => { + return db.selectFrom("backup_records").selectAll().orderBy("createdAt", "desc").execute() +} + +export const getBackupConfig = async () => { + const config = await db + .selectFrom("backup_config") + .selectAll() + .orderBy("updatedAt", "desc") + .limit(1) + .executeTakeFirst() + + if (config) { + return config + } + + return { + id: "00000000-0000-0000-0000-000000000000", + enabled: false, + intervalHours: 24, + retentionDays: 14, + createdAt: new Date(), + updatedAt: new Date(), + } +} diff --git a/core/app/(user)/superadmin/page.tsx b/core/app/(user)/superadmin/page.tsx index 1065970bf7..d9c25fdedf 100644 --- a/core/app/(user)/superadmin/page.tsx +++ b/core/app/(user)/superadmin/page.tsx @@ -5,6 +5,7 @@ import { redirect } from "next/navigation" import { db } from "~/kysely/database" import { getPageLoginData } from "~/lib/authentication/loginData" import { getMigrationStatus } from "~/lib/server/migrate" +import { getBackupConfig, getBackups } from "./backup-actions" import { SuperadminDashboard } from "./SuperadminDashboard" export const metadata = { @@ -20,7 +21,7 @@ export default async function Page() { redirect("/") } - const [communities, migrationResult] = await Promise.all([ + const [communities, migrationResult, backups, backupConfig] = await Promise.all([ db .selectFrom("communities") .select([ @@ -32,6 +33,8 @@ export default async function Page() { ]) .execute(), getMigrationStatus(), + getBackups(), + getBackupConfig(), ]) const tableCommunities = communities.map((c) => ({ @@ -50,6 +53,8 @@ export default async function Page() { communities={tableCommunities} migrations={migrations} migrationError={migrationError} + backups={backups} + backupConfig={backupConfig} /> ) } diff --git a/core/app/c/[communitySlug]/LoginSwitcher.tsx b/core/app/c/[communitySlug]/LoginSwitcher.tsx index 362cb80fac..61bac02f02 100644 --- a/core/app/c/[communitySlug]/LoginSwitcher.tsx +++ b/core/app/c/[communitySlug]/LoginSwitcher.tsx @@ -52,6 +52,23 @@ export default async function LoginSwitcher() { Settings + + {user.isSuperAdmin && ( + + )} { buttonText={props.text ?? "Create"} buttonVariant={props.variant} className={props.className} - icon={} + icon={} id={id} param="create-pub-form" title="Create Pub" diff --git a/core/lib/env/env.ts b/core/lib/env/env.ts index 7bdde9b688..4c32aa17c5 100644 --- a/core/lib/env/env.ts +++ b/core/lib/env/env.ts @@ -48,6 +48,12 @@ export const env = createEnv({ .describe( "The public endpoint for the S3 bucket to use for storing assets. This is the endpoint that will be used to access the assets from the web, and is what your users will see when they view the assets." ), + S3_BACKUP_BUCKET: z.string().optional(), + S3_BACKUP_REGION: z.string().optional(), + S3_BACKUP_ACCESS_KEY: z.string().optional(), + S3_BACKUP_SECRET_KEY: z.string().optional(), + S3_BACKUP_ENDPOINT: z.string().url().optional(), + S3_BACKUP_KEY_PREFIX: z.string().optional(), /** * Whether or not to verbosely log `memoize` cache hits and misses */ diff --git a/core/lib/server/jobs.ts b/core/lib/server/jobs.ts index b81f35234c..002d051e7e 100644 --- a/core/lib/server/jobs.ts +++ b/core/lib/server/jobs.ts @@ -31,6 +31,11 @@ export const getScheduledAutomationJobKey = ({ export type JobsClient = { unscheduleJob(jobKey: string): Promise + scheduleBackup(options?: { + backupId?: string + runAt?: Date + jobKey?: string + }): Promise scheduleDelayedAutomation(options: { automationId: AutomationsId stageId: StagesId @@ -66,6 +71,49 @@ export const makeJobsClient = async (): Promise => { job: { key: jobKey }, }) }, + async scheduleBackup(options) { + const backupId = options?.backupId + const runAt = options?.runAt + const jobKey = options?.jobKey + + try { + const job = await workerUtils.addJob( + "createBackup", + { + ...(backupId ? { backupId } : {}), + }, + { + ...(runAt ? { runAt } : {}), + ...(jobKey + ? { + jobKey, + jobKeyMode: "replace", + } + : {}), + } + ) + + logger.info({ + msg: "Successfully scheduled backup job", + backupId, + runAt, + jobId: job.id, + }) + + return job + } catch (err) { + logger.error({ + msg: "Error scheduling backup job", + backupId, + runAt, + err: err instanceof Error ? err.message : String(err), + }) + + return { + error: err, + } as ClientException + } + }, async scheduleDelayedAutomation({ automationId, stageId, diff --git a/core/prisma/migrations/20260428162431_add_backup_system/migration.sql b/core/prisma/migrations/20260428162431_add_backup_system/migration.sql new file mode 100644 index 0000000000..9f8aeb59d0 --- /dev/null +++ b/core/prisma/migrations/20260428162431_add_backup_system/migration.sql @@ -0,0 +1,37 @@ +-- CreateEnum +CREATE TYPE "BackupStatus" AS ENUM( + 'pending', + 'in_progress', + 'completed', + 'failed' +); + +-- CreateTable +CREATE TABLE "backup_records"( + "id" text NOT NULL DEFAULT gen_random_uuid(), + "filename" text NOT NULL, + "s3Key" text NOT NULL, + "sizeBytes" bigint, + "status" "BackupStatus" NOT NULL DEFAULT 'pending', + "error" text, + "startedAt" timestamp(3), + "completedAt" timestamp(3), + "createdAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "backup_records_pkey" PRIMARY KEY ("id") +); + +-- CreateTable +CREATE TABLE "backup_config"( + "id" text NOT NULL DEFAULT gen_random_uuid(), + "enabled" boolean NOT NULL DEFAULT FALSE, + "intervalHours" integer NOT NULL DEFAULT 24, + "retentionDays" integer NOT NULL DEFAULT 14, + "createdAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + "updatedAt" timestamp(3) NOT NULL DEFAULT CURRENT_TIMESTAMP, + CONSTRAINT "backup_config_pkey" PRIMARY KEY ("id") +); + +-- CreateIndex +CREATE INDEX "backup_records_createdAt_idx" ON "backup_records"("createdAt"); + diff --git a/core/prisma/migrations/20260429123620_update_comments/migration.sql b/core/prisma/migrations/20260429123620_update_comments/migration.sql new file mode 100644 index 0000000000..6997e9a89c --- /dev/null +++ b/core/prisma/migrations/20260429123620_update_comments/migration.sql @@ -0,0 +1,265 @@ +-- generator-version: 1.0.0 + +-- Model member_groups comments + + + +-- Model community_memberships comments + + + +-- Model pub_memberships comments + + + +-- Model stage_memberships comments + + + +-- Model membership_capabilities comments + + + +-- Model invites_history comments + + + +-- Model pub_values_history comments + + + +-- Model users comments + +COMMENT ON COLUMN "users"."isProvisional" IS 'Indicates whether a user is provisional, meaning they were added through an invite and need to accept it to become a full user'; + + +-- Model sessions comments + +COMMENT ON COLUMN "sessions"."type" IS 'With what type of token is this session created? Used for determining on a page-by-page basis whether to allow a certain session to access it. For instance, a verify email token/session should not allow you to access the password reset page.'; + + +-- Model auth_tokens comments + + + +-- Model communities comments + + + +-- Model pubs comments + + + +-- Model pub_fields comments + + + +-- Model PubFieldSchema comments + +COMMENT ON COLUMN "PubFieldSchema"."schema" IS '@type(JSONSchemaType, ''ajv'', true, false, true)'; + + +-- Model pub_values comments + +COMMENT ON COLUMN "pub_values"."lastModifiedBy" IS '@type(LastModifiedBy, ''../types'', true, false, true)'; + + +-- Model pub_types comments + + + +-- Model _PubFieldToPubType comments + + + +-- Model stages comments + + + +-- Model PubsInStages comments + + + +-- Model move_constraint comments + + + +-- Model action_instances comments + +COMMENT ON COLUMN "action_instances"."config" IS '@type(BaseActionInstanceConfig, ''../types'', true, false, true)'; + + +-- Model action_config_defaults comments + + + +-- Model automation_runs comments + + + +-- Model action_runs comments + + + +-- Model automations comments + +COMMENT ON COLUMN "automations"."icon" IS '@type(IconConfig, ''../types'', true, false, true)'; + + +-- Model automation_triggers comments + + + +-- Model automation_condition_blocks comments + + + +-- Model automation_conditions comments + + + +-- Model forms comments + + + +-- Model form_elements comments + + + +-- Model api_access_tokens comments + + + +-- Model api_access_logs comments + + + +-- Model api_access_permissions comments + +COMMENT ON COLUMN "api_access_permissions"."constraints" IS '@type(ApiAccessPermissionConstraints, ''../types'', true, false, true)'; + + +-- Model invites comments + +COMMENT ON COLUMN "invites"."lastModifiedBy" IS '@type(LastModifiedBy, ''../types'', true, false, true)'; + + +-- Model invite_forms comments + + + +-- Model backup_records comments + + + +-- Model backup_config comments + + + +-- Enum Capabilities comments + + + + +-- Enum MemberRole comments + + + + +-- Enum MembershipType comments + + + + +-- Enum AuthTokenType comments + +COMMENT ON TYPE "AuthTokenType" IS '@property generic - For most use-cases. This will just authenticate you with a regular session. +@property passwordReset - For resetting your password only +@property signup - For signing up, but also when you''re invited to a community +@property verifyEmail - For verifying your email address'; + + +-- Enum CoreSchemaType comments + + + + +-- Enum OperationType comments + + + + +-- Enum Action comments + + + + +-- Enum ActionRunStatus comments + + + + +-- Enum AutomationEvent comments + + + + +-- Enum ConditionEvaluationTiming comments + + + + +-- Enum AutomationConditionBlockType comments + + + + +-- Enum AutomationConditionType comments + + + + +-- Enum FormAccessType comments + + + + +-- Enum StructuralFormElement comments + + + + +-- Enum ElementType comments + + + + +-- Enum InputComponent comments + + + + +-- Enum ApiAccessType comments + + + + +-- Enum ApiAccessScope comments + + + + +-- Enum InviteStatus comments + +COMMENT ON TYPE "InviteStatus" IS 'Status of an invite +@property created - The invite has been created, but not yet sent +@property pending - The invite has been sent, but not yet accepted +@property accepted - The invite has been accepted, but the relevant signup step has not been completed +@property completed - The invite has been accepted, and the relevant signup step has been completed +@property rejected - The invite has been rejected +@property revoked - The invite has been revoked by the user who created it, or by a sufficient authority'; + + +-- Enum BackupStatus comments + + diff --git a/core/prisma/schema/comments/.comments-lock b/core/prisma/schema/comments/.comments-lock index 9ff290f7aa..6997e9a89c 100644 --- a/core/prisma/schema/comments/.comments-lock +++ b/core/prisma/schema/comments/.comments-lock @@ -148,6 +148,14 @@ COMMENT ON COLUMN "invites"."lastModifiedBy" IS '@type(LastModifiedBy, ''../type +-- Model backup_records comments + + + +-- Model backup_config comments + + + -- Enum Capabilities comments @@ -250,3 +258,8 @@ COMMENT ON TYPE "InviteStatus" IS 'Status of an invite @property completed - The invite has been accepted, and the relevant signup step has been completed @property rejected - The invite has been rejected @property revoked - The invite has been revoked by the user who created it, or by a sufficient authority'; + + +-- Enum BackupStatus comments + + diff --git a/core/prisma/schema/schema.dbml b/core/prisma/schema/schema.dbml index bda79ca8a1..2a73749c6a 100644 --- a/core/prisma/schema/schema.dbml +++ b/core/prisma/schema/schema.dbml @@ -572,6 +572,28 @@ Table invite_forms { } } +Table backup_records { + id String [pk] + filename String [not null] + s3Key String [not null] + sizeBytes BigInt + status BackupStatus [not null, default: 'pending'] + error String + startedAt DateTime + completedAt DateTime + createdAt DateTime [default: `now()`, not null] + updatedAt DateTime [default: `now()`, not null] +} + +Table backup_config { + id String [pk] + enabled Boolean [not null, default: false] + intervalHours Int [not null, default: 24] + retentionDays Int [not null, default: 14] + createdAt DateTime [default: `now()`, not null] + updatedAt DateTime [default: `now()`, not null] +} + Table MemberGroupToUser { usersId String [ref: > users.id] membergroupsId String [ref: > member_groups.id] @@ -768,6 +790,13 @@ Enum InviteStatus { revoked } +Enum BackupStatus { + pending + in_progress + completed + failed +} + Ref: member_groups.communityId > communities.id [delete: Cascade] Ref: community_memberships.communityId > communities.id [delete: Cascade] diff --git a/core/prisma/schema/schema.prisma b/core/prisma/schema/schema.prisma index 68ae9deab9..76e3fa4cb9 100644 --- a/core/prisma/schema/schema.prisma +++ b/core/prisma/schema/schema.prisma @@ -766,3 +766,37 @@ model InviteForm { @@unique([inviteId, formId, type]) @@map(name: "invite_forms") } + +enum BackupStatus { + pending + in_progress + completed + failed +} + +model BackupRecord { + id String @id @default(dbgenerated("gen_random_uuid()")) + filename String + s3Key String + sizeBytes BigInt? + status BackupStatus @default(pending) + error String? + startedAt DateTime? + completedAt DateTime? + createdAt DateTime @default(now()) + updatedAt DateTime @default(now()) @updatedAt + + @@index([createdAt]) + @@map(name: "backup_records") +} + +model BackupConfig { + id String @id @default(dbgenerated("gen_random_uuid()")) + enabled Boolean @default(false) + intervalHours Int @default(24) + retentionDays Int @default(14) + createdAt DateTime @default(now()) + updatedAt DateTime @default(now()) @updatedAt + + @@map(name: "backup_config") +} diff --git a/docker-compose.base.yml b/docker-compose.base.yml index 7c6ef4e4de..55f8753514 100644 --- a/docker-compose.base.yml +++ b/docker-compose.base.yml @@ -18,10 +18,10 @@ services: minio-init: image: minio/mc:latest # basically what this does: - # - create the bucket + # - create the public assets bucket # - allow public downloads for said bucket - # - add a new user - # - allow said user to upload + # - add the assets uploader user + # - optionally create a separate private backup bucket + backup user # this sadly can't be done by just configuring some env vars for minio itself, very annoying, you need to use their mc client. I'm not sure this is the best way to go about doing this. entrypoint: > /bin/sh -c ' /usr/bin/mc alias set myminio http://minio:9000 @@ -30,7 +30,15 @@ services: anonymous set download myminio/"$${S3_BUCKET_NAME}"; /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; /usr/bin/mc admin policy attach myminio readwrite --user - "$${S3_ACCESS_KEY}";' + "$${S3_ACCESS_KEY}"; if [ -n "$${S3_BACKUP_BUCKET}" ] && [ -n + "$${S3_BACKUP_ACCESS_KEY}" ] && [ -n "$${S3_BACKUP_SECRET_KEY}" ]; + then echo "Creating backup bucket and user"; + /usr/bin/mc mb --ignore-existing + myminio/"$${S3_BACKUP_BUCKET}"; /usr/bin/mc anonymous set none + myminio/"$${S3_BACKUP_BUCKET}"; /usr/bin/mc admin user add myminio + "$${S3_BACKUP_ACCESS_KEY}" "$${S3_BACKUP_SECRET_KEY}"; /usr/bin/mc + admin policy attach myminio readwrite --user + "$${S3_BACKUP_ACCESS_KEY}"; echo "Backup bucket and user created"; else echo "No backup bucket or user configured"; fi;' db: image: postgres:17 diff --git a/infra/.env.example b/infra/.env.example index a3f2e9ae90..aefd0306ef 100644 --- a/infra/.env.example +++ b/infra/.env.example @@ -31,6 +31,14 @@ S3_PUBLIC_ENDPOINT=https://assets.pubstar.org # if hostname matches S3_BUCKET_NAME => / # otherwise => // +# private backup storage config with separate credentials +S3_BACKUP_BUCKET=backups +S3_BACKUP_ACCESS_KEY= +S3_BACKUP_SECRET_KEY= +S3_BACKUP_REGION=us-east-1 +S3_BACKUP_ENDPOINT=http://minio:9000 +S3_BACKUP_KEY_PREFIX=pg-backups + SITE_BUILDER_ENDPOINT=http://site-builder:4000 SITE_BUILDER_API_KEY= diff --git a/infra/.env.preview.enc b/infra/.env.preview.enc index a1cc5d93ff..46ce1d2921 100644 --- a/infra/.env.preview.enc +++ b/infra/.env.preview.enc @@ -1,55 +1,61 @@ -#ENC[AES256_GCM,data:9vlbKt7bGWG/WVtPsIEygXcE+IRSdz5Acttvku4reKbH,iv:f5hOvPruaBRW7jlLdAwXBSmrnJBdbvfbZDfoGfeeTts=,tag:ed9hH2b5BOcwl+5Zc+UJ2A==,type:comment] -#ENC[AES256_GCM,data:UUYoJS1resYVXMu42RcEX1/BuCl7eFg0TDZd4X966dheNtrzS+0dMdXqVQeDa+2cH56DT3NkdcZAJ/Y=,iv:slg+pO7UqRtmyK3yyRHL5HlZHYvVQxMND1fQ1PE4RcQ=,tag:ltajqbthQhkx1OkHYgoSdg==,type:comment] -#ENC[AES256_GCM,data:EQpfJsDhAtLwTYEGEwZZDWbaM6vZtcz7R3jwm7cc0vG/hpIUq4hk8uKRhcIQr/CKPwSBBpzsd+wVt3H/xYGsWFMGLg==,iv:yPO9/Pz+/v4VzkTUVHXs2MDAJuYCFlDpiiDB9m4XTg4=,tag:KAvovfCU7W5v/zYywu3aXw==,type:comment] -#ENC[AES256_GCM,data:7kLfpHYiVp89mOWSXyAyuFyRvO8gi/Dt88BCkT1zZTYDqmvBqi4O/4KKzqSnptNgBoA=,iv:VDljV88ozeqT2V4GlFgLirTtNtaxf0vE3OR+MlcCOC8=,tag:4C2ty8wvJi/3QeW7nQoUmw==,type:comment] -#ENC[AES256_GCM,data:GmC0n3YdTnduvQLUuPFtRlhs0ZGp4nIz4XpiUwCq40swkvKZpmX2mrIw40Hb8fPbF19o5Gw=,iv:Urt2EqfOcxl3NVTS8LD6B+Ij+P93LQ6WtZJQ8Cj5XHc=,tag:5FduWhGwwD3xO0b1bGuW5Q==,type:comment] -POSTGRES_USER=ENC[AES256_GCM,data:V2DxRErSmDw=,iv:xmEfHmY7tSCAMg7kmBCR+JKA/IjYKK8an0E9t4cxIQ0=,tag:pWHHzuF9CDNa9A92PB29pg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:C6omIVEKdDE=,iv:7/wHZzXCgSNDN/CSjI3Dc6pcU+RH/koKdZH9ZJUuB3Q=,tag:nGLGMccE6CheuNAejPA6RQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:gtC9yhAsAQ==,iv:gmwNDle3v+uszHDKWciwDJDScnrPPN4VRpyPSNRtdUs=,tag:A4fsQq6i+7G1VCr4JrKPKA==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:OwPheKJ9l6V0S+uDlBi7A2ZU3XI4uBP1OHoNpXMzwePgysNAJwdZ5LlRH3JN/g==,iv:NATvIA/Ecf6uI5oKlXJul5arqUITu+GmdKFbPVcWOWI=,tag:b0KAxTlLXC/AcxjKGx7irQ==,type:str] -PGHOST=ENC[AES256_GCM,data:ABQ=,iv:w6AXknnHLwQ1bZnhN8IYQYXRdLvfWBlwBwZlLICyPWY=,tag:ApjkzJgiKa6qa4TH1FdCkA==,type:str] -PGPORT=ENC[AES256_GCM,data:0/SvDQ==,iv:DD4jWjpBKQiiFniFiDKryVKI4WdhtV0LxwF3ivUNNtc=,tag:jXQcFtK8hW7hWs0ILE+Wlw==,type:str] -PGUSER=ENC[AES256_GCM,data:XEi/EOJOI7g=,iv:Dh9CJ5VHiwlNOGFiQrhoe5gO4xFNtlr4KoqW3VuIilE=,tag:5H7b8pnI1TsdOk/QDrhz+w==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:chh5eWsaJJ0=,iv:E2idH/XJhW1cFJdxWuWClVCSiRCbD1CQTceK8ifrRB4=,tag:lAho5WRwZBJcPbOrqn1xgg==,type:str] -PGDATABASE=ENC[AES256_GCM,data:0N5R2eM8oA==,iv:YgZsz3CmS3Q3mkuAVmDweFF12t/nEp1PikdBELtz9U0=,tag:x3/T7CRmd+9yZaWtT+gOFg==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:fMCQwZ8=,iv:w397G6s7ze4ziFPqVnNSJDtHUMQxFQcNOqaCwgqG7bI=,tag:/SzOcDdDqUS9YEhl6cVpRg==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:BcO9Oh/PD/gNy1B43Q==,iv:DRjNcs03sJlk2XWpBmVJy2udoJANsoLunSZGnJ4Br9I=,tag:cqVxlOtVGWNHYrxVcpxQyA==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:W+9sJqDjIDeFOPhPPw==,iv:+rDZ4R7nMRW+F4NWgaEbW3GrDworhMq+kyioU+ixKas=,tag:6agBrSNI4ckUN3zXZ3gPEA==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:gf4uf0MF55pMor7GUNk=,iv:kVaWsMW4Xw4DGh4CL0jcsDuUQhGOK8+W/KSeFRTD3Bw=,tag:Lgr1m4zbcGy2aIZGpquqvg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:918ubR8R0vEXcg0=,iv:2lWJfH88vaOdV9HfcJTIXRt9SBqq83p/iSS4HbqKjtg=,tag:Z0f3pU6Mlr1HyrHU29SSUQ==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:0qeVdFLywm+n6lo=,iv:hTAw8oVrQDmo2iVQ3hAvAZAwS6C5SqTdPdRpniE406E=,tag:UbXzcShThWDW8/T1+CMieA==,type:str] -S3_REGION=ENC[AES256_GCM,data:yf/4pg5U4Pl8,iv:WscVxoDfUQUV2/yk965jiX5pjpmBLkoqPsrTGXVCIfs=,tag:UFQoEBTsMbWiXmWe0HmljA==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:ngW7fffBZcJP6EZZQJe2L6I=,iv:rHKSk7jgyDV00hwlmvrIqOL+x6pCMkYCqvm3NAhCW4A=,tag:j/pr9uPbRoaFBL2/C1wv1g==,type:str] -#ENC[AES256_GCM,data:1rM7jJcLVX5K7JTVfDaaccg9CWa2Dfpx8ufdya6iv8VFCSZYeOv/7YyiTybefn0p3YNJYCyJDWI6QzHAGmWf8oB37w==,iv:lNjES8PA5nVPfsbhkAfv4bef0urV6MHShh3oWaD23kk=,tag:etHTfv/eDlKB3u9vjF0seA==,type:comment] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:o7d6dfhRRN1PBNmsa3n+mirMHNoX+xZB,iv:DrLMul09Oqs2sP0xooQ3b3jTgSP4QnCKjf8uFLn41wc=,tag:79SXFExLTL2Mq5H+jf1KtQ==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:/2T5,iv:rkbgOZBNBwiK7f4EzBLYdN5/KjlA/8GrD4njHwtq4G0=,tag:wlQ7cJZSCENHNdZl/3t2+Q==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:TGNf4EhHqRI=,iv:KFx7jO3tMUmoMsYm9LHy8nbGaONJaYvA68MBy4YCjck=,tag:UcyLfp6R46DyZI9UYinONg==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:NynhMg==,iv:CDntrnmGLqbQzja6wdf7bbPJ9++U0GMyyUWB9Q0VNo4=,tag:ovWrYD/alERm/cHsN1Hpfg==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:cnv5,iv:vYH7GNE2xZ5NVCELSMrZPdg/YEYBB6os1wwgWLEbDEw=,tag:r6sK0rSTs6FLAoZz6xdXeQ==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:s/LX,iv:th3EjtoaxPt/RAHyEMViwhq2Oxq4uINttpVJaNnIQzs=,tag:V4eVTJmqPgdW9WSsj9Ue1A==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:QfqjU2GnxHzsFMqCcm/J,iv:wPozT86T51jzIvEvFFXUJcAsYiOC2/Btv/2XlATaf7E=,tag:mUO+3smMijV/OtgrgGxrPw==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:poFqVlLcDU7o+VE9,iv:pjbfMsosB7RJndxRFsuvvdZfiRL13lrDLTsRiuwYT90=,tag:LfscWFlDubTzKFWFzJb71w==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:/dlF,iv:MtkyB7hl69xXFW2z9ivmm6LU6uaIkuzPPtThvCunXwI=,tag:UDu8orRAfKJ1GNBwUw1Bww==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:X6MT5Ssi6Z963Ve4+ldN4MOq,iv:GdRdQbUpqTHPqqf7n73lR6QUgbwwCmYHb00yo392sfE=,tag:N3k4jcDdi5YHTt/twgvuIg==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:HR9T,iv:ZLmX9NFPI6n9R8VX74yZGh83mx8QDAaYbIWgkY0AcTk=,tag:TDP/baonYu/Z+WxkLAXCQA==,type:str] -API_KEY=ENC[AES256_GCM,data:piqM,iv:KEiv6rqNsuJH4BTteBQI9CCS+q2H6tmXzWBLXEhaYqc=,tag:kdbS/cl5VZ4A/jtOq1kLJw==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaL2s3WTBXc1dGbHo2WnVJ\neGRPdFlGbUg5VmRNTjMyOWRuckc3R2RGLzJJCk5YL1pZSkE5UmJzeUdCek1hVHAy\nSFVCRU16K3Boa0ZHYlRnUkc4eTF4Ym8KLS0tIHRkSllrZXZGVXBpMENJNzFKcWxR\nZTc1c29OdlQ4NjBYRUkyRE83SGh2V3MKI0RbH+C+6Rz9e6+RPJ5y/EwXDHFKn2Yk\nJJjosaPtCkzCilb7AXxcmpPqztGTCsQwr2F5vgtMYeMGZ/kW5hl9ng==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:opvA3YzKiY9Q3J+ZM6oW9hJiW9X4oD/RxvpObZLFkT26,iv:hRFVlcoRJXZpw6TKWdwX0zkcSmMtuAKrhpLsg97aWuo=,tag:dApblQ7vruBMJEHHIHWBng==,type:comment] +#ENC[AES256_GCM,data:hL1rGGSqDZ2k+A6BCPCYTNNgGctAMOvkTp/H/qurxZYXmapGl1uTdSpMREHI+8bTxEVrLrAM8gFGI5U=,iv:FbYksmvf2FgkislfMovwSLcUQ3lJzuGECMA4fH/5uNc=,tag:OmN1wwt5Uew44G8esTYCaA==,type:comment] +#ENC[AES256_GCM,data:udKBSgtC6FDhfTc7YUg2LLRBwAdNOv76yo81FR6rycOW7NkuIYEUszsock14wg/IdPGBOgQkK1Ds157S1Or9YdZfeA==,iv:SCe1tsmsD+CmwhthsR/7LhE9vEWToTDNQ7VzvG+GxkM=,tag:JzBRa7C9HYmSmL6hQuAO/g==,type:comment] +#ENC[AES256_GCM,data:KmWVGKc64MGi3pD6W7TAYQ5nOHQO74Z6c10aH6SllYuYvD4Mwav6QF8X6O4xl2a/4V8=,iv:7hXbLDP8lGsteIhGciSKfBFwQE+KAQXHkSGceWsKOlQ=,tag:b9iW6dhBe+JowUyH7yHVug==,type:comment] +#ENC[AES256_GCM,data:t8elkEXgI2D9JvTfnDjtpDyaygUFPA7sQHIpfmLFXDD9iUS/jAFkO9fbB0JxiMuOFBwLeyQ=,iv:3y3LfpOcBiQBxcfMNt4WNYoDBd0tKhOmonY/Ef7w0lg=,tag:XA6C6KBJMvdRBFS90uWKYA==,type:comment] +POSTGRES_USER=ENC[AES256_GCM,data:K5/C0OPA7fo=,iv:jAqysnPFM/17JrmT1nqrN2sjorLS5vGaujK+Aa3zbVo=,tag:8qSkSlOCiw7lqLkXw9pqNg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:qAKDEuU3IJo=,iv:lI70KKLrUTOoDE7YIEarWccL+f4b3pLhY++ivvac8vw=,tag:ixASoMqSPNt555Y6Kea37A==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:0BZzxBeqLQ==,iv:LFkNxjIud4TJyOi5jMRL59IPBumD1Qq7++Kf/G55v64=,tag:/Xy1GTnURkyjDNWuKm6F3A==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:ISovuAAttgefrbN1B66372Vk1izYOZCjhy53EqpcDkaOT2YswviaLoVd6EOt0A==,iv:IUs2mqHQtNP2el/54mrcePbkPmwA58/VQh7yaUONW2o=,tag:7a9+noTpXFhB0bBZM9LYLA==,type:str] +PGHOST=ENC[AES256_GCM,data:1CA=,iv:3t+kg+XwspXavRqq2/hKx2oG+KoePZrLnVnVIHwI3rA=,tag:mG4t38Faqb4r8HP1GhxJ/g==,type:str] +PGPORT=ENC[AES256_GCM,data:SlCYxw==,iv:lprPPFD/RlmwlwzqfA+qLweWM4xj1mDiF4DrCLU/77Y=,tag:f5E7zYDcwsOoKszK9czHig==,type:str] +PGUSER=ENC[AES256_GCM,data:ELrq1plLYFA=,iv:yuepQOHV4U0/ppGIwbJxiF2Eise9Vd+2cXonJvyg/jg=,tag:S6vEFmrXqtb9SQqW3DOj+g==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:HavMtes7Q1Q=,iv:fiukPac5Td8egzcKBlnvFXwzD4v4dSY6vNX+yHYPSiM=,tag:IFALgtKtTE/ySicH/VUdCQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:wjqyXAoG4g==,iv:eE8CfUrzk0kHPioAkpOTMVWZqe3Dypa2gmdtXDlj4TM=,tag:CM1CRsgqTCop6CG7X6OIog==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:X4k/MLA=,iv:vrdghPqjnhgOvmpleqbND3O8EyMnWI3U1l7XolLi+eQ=,tag:nY73oTSJR/woHshWJPtzvg==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:sCwKQnsZ+DIIJQ3ajw==,iv:27MQR3JzcOWySVvwXQwZpMu70TCb1k5Z86rR0zXRZdo=,tag:IQpAp1bWhHcQ79MbFfpj0A==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:JM9y7JW0hiBEiMHbgw==,iv:gg9n38GeRhNzlBBBNNMeMTHVR3XeqbQz3TOPIWl+0Rc=,tag:nNg/o6R84l+oogLwSSEOZw==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:ngLxQd5kdOZ2hAAGSOM=,iv:hAD9RzivHCRHYuA2cDbYOztQcyIHHWGbA2/1uQPDS0M=,tag:0pzlIXiCuzzG+SstQzlkvg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:qszf+CCC7IcyBvA=,iv:tKy/0OVu+89nedQomfXPOqr7q+RS8HDZxNTDiR6pS4g=,tag:Imv+9+ZfXMdNYQMYLgau5g==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:mi0qfVGQjWdyuNI=,iv:5tvbkHfViJmgEWFfUzxz7gaEngBcbVCprSk/SnukoNE=,tag:0WgrCx5R8hnB48pu17Ll/w==,type:str] +S3_REGION=ENC[AES256_GCM,data:i2h62JmaUcud,iv:LGY09HJCLE8EGY0CZKJSXtmayEKxantndiV3fgFuNis=,tag:pTPctxJvatCZKfEb+gVH4g==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:HO+AZ2jcAruVnKD0TxNDkvA=,iv:unmrLW7S76UwvYtHNnWgs183Cpv8svCHw2qFDAYS1U8=,tag:wzqWNbz+apNXycM9HNM2OQ==,type:str] +#ENC[AES256_GCM,data:FxM6a+BUZqsVlFHLP8win9OWeOJGZMV20qseDC3Zt7nRJRv8LIfOmwIC6FlSTU6bsHSl6HAc+edP+EUq1E61CqtXlg==,iv:kly7uEx2s/sTXYfdRSi6CeZNzOGaqqiCzC/1AsRC0RA=,tag:wD1zhDWicWWQvTxe4j794Q==,type:comment] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:ZRW1tLh1F1QRAWe6UbJbupKBYlyO3TaK,iv:zIYnWHr4XgEFEUjJR6HFNNxi31mLI5FjFl83o3x8D2Y=,tag:W8XacvYDXRyA0KNC5uSL6g==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:wTBd,iv:G/cEVmGsm7AHjoCldhowRMdnIJC7LoVIStVicsgGkVI=,tag:t0WQRO9VMNi9vlFK7Ga9kA==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:CWimJRwOMGA=,iv:dpxpDzTrQEsMLO47gGsgGtbV42e7BTIrh9sNO6qZf2M=,tag:kPwXN0eqcV3ygbb8vZt/og==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:vYzVwg==,iv:yT4d+AV+Ik7yMdWLp2z0BZJFZFKzB1bUAYxYpfKcH7U=,tag:+DydEtLtCb7f83TC6l+AnA==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:TbSj,iv:RlhlJtf9gBqlKLuirIH7AJfoG9CBcjsTvWkHgErfUP0=,tag:srPIDZSeGL+pOe75iRHOAg==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:ayNC,iv:F63iWmQg6wt5CMib97Yjrd4QDNTVxvTIKikz6IkTlyo=,tag:C004iR/Oqwh8d98tkZD8Cg==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:joi3HeS9+oXmPik9M3Tu,iv:O25qj8hu5OgDoAmmek5jWGmELqBtNtCBa9Mr8Ai61i8=,tag:oxUgRTWgtGrswH1xgHe2qA==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:zF4c/sQ9hPZ/lgf1,iv:2p+LiGn8ParfkX1yKVenaMrGiImH+F32lCm5ufvcKk4=,tag:udYB9Eiv8OvpYxUaW26u1Q==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:evFr,iv:mXlpTcWz0wtYFq19YjY0xJaBkUQ3xlB0LmAtBVyaIIQ=,tag:JuvQqEklFspZzVTi5KpvGw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:wkW0PXdD5iWlHYkRFC8VyjCp,iv:/mNLe6/E5xspOqirFXtkd1TodZJOaWgBiSh13f5oGp8=,tag:hylVwslWgVEZNCVddJFYwQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:zlwK,iv:+B/Fn6g44IyMC7yJO0RjUHUSXtouhTA8JJt/eOZ5ivw=,tag:PAomYMA72tZfC9wT/D+AXw==,type:str] +API_KEY=ENC[AES256_GCM,data:jB/x,iv:iurTVomel8n1ovwUwXdF357aV7cv522Bv89bDIVspG4=,tag:gOpmHWO5dIZ+ORiknqGzPA==,type:str] +S3_BACKUP_BUCKET=ENC[AES256_GCM,data:YDT7KwOcriGgHTc5g+2GBUkP+MTk,iv:4YM3ajBuheMPh6a1sBeJxsAK6YodG47lBWvuHng1peA=,tag:ZLvMIyfl2v81w+JDJNpYyg==,type:str] +S3_BACKUP_ACCESS_KEY=ENC[AES256_GCM,data:eHrqsWYibdbo0KAUz+YLp04=,iv:91HsG3+AdoVVK2ubnQ5z2mkzwIzUQCQsEuWR2dqv3mI=,tag:FoN6epp8lAPT1pI/wHzy5g==,type:str] +S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:w0tz2DavM5LraGApdpB2etA=,iv:RelXs3VkqAe1hMQniAAkbyHgE89DGVMDhHmGFt3Xdpw=,tag:qCSitbzUY+MiVPw8nnCNxA==,type:str] +S3_BACKUP_REGION=ENC[AES256_GCM,data:xaE3xXFo8hQ9,iv:Bvk0L46fqwCn2zMwbBb0TPgq/BfGT1eTIlEndtgwMh8=,tag:3gl22oDsiZawkl0YGMKT7Q==,type:str] +S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:yqMRh+eu9R2WoGXA+W4wEO4=,iv:a1PIgTDOUQrhbpGM1yhBOVXUNgHvxxSupu9hLBEUi8E=,tag:M8KAhT9mf50LayVDBpuaew==,type:str] +S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:TgYfURFv08hZBw==,iv:FVfXXL8TpaPIXUWhj5oqDJsaR2iOmp5quV/dU1AB/go=,tag:SsMiCHjWeO+b1fgMTQf1Lw==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUZTdBcS8xekpMSjN6bElS\nTWc5OW83bzRFS2dDRFJidWR5eE5yQ3d4REgwClR6WEdRWHhRWWlTcXZUZzBiRith\nMU1KZmJXb0tHWThEeDhaTitzYU1hRVkKLS0tIHd1TGFtSXI0eElGVVdxK2t1bDhY\nNFIyZUU2M0gvTzhuQlNDbHBTNWxjSWcKltahYQwh7DyrcoVBt77mRHAqj1XzJ7Yo\n3OylYMJ4xxkqEf3gwTTwzhCuiClXzhr8Bau334O9popXSYFTCU81QQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArMVh5bkh4UjAyMDEyRTBB\nSWV3ZXNEcXo4dGpmdWRRa1RXNXpnUUh6YmpJCjl4MXpoUFNBV3Jmeit1YzF1QWth\nMDdGUmJTR2c0RWRrTGhtWHUxZGF2MEEKLS0tIHdpUWdqTkZ6Q3dDSXVnYzc3ZytY\nWm8vUzhrRjUzMFVIaXZ6MHhXTjBHUmsKrrbZxCNyIDhSeKxYJSq+NxUgjoz/LhB0\nscUglb4KqJj5QTHoGT8Twd2AtSPwPYYZDmscz0Od2IG1dEx0L8zgGQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuZVFvb0k3WndabHcyUmd1\nSmYraWpQZ2U3NDJtWVhWUm9qVGkxeENyaUV3CnY3K05lSHhwWTNFV1JCZGovUWV0\nWlQxVjNncjlEZnhpUi80d0oxem5jREkKLS0tIFVDVHdLQm0rTk5WVVNMU2MwSEJ3\nVFh1YzE4SlF2RzIvN215Q3RBSzh0UVEK3X/JLGF/3gue6eMzxID9Tc9HIcR4SRls\nJ3E2NWNiNc5lCr5Pp/SdlUGrb7s1cs7n+uWIhsFmdsf8wN2JfFy+TA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXUWtJOWhmOFZjQjl5bHd2\nY2hQMTdvcFNsTTB3YkZ1Z1Y5bno4bTAvUEFBCnZoUEVra2pFM1hITHE5U3JVTWtU\nNXFGRXRlbVBkYytXYWdxSnRvMWFtUVkKLS0tIGhOL05qK2U5cTdmQVlsR2lTcXZs\nZ2hZQUpSUWNJZnROOGNCdVkrcnFieUEKPYsNWbqCAC5u5RX13gNGzslrlTG9FqDx\nWV3ENxpKdfDZ25LH+DEw7w9CzawzRZIH9vFQxI7iI3e5XjJ7iROWHQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTT2J6b3VSSXY5eHNTYW5H\ncjFCTndYbktSVW9JU3RNd0NML0xLc0RlaDNZClBBODhxQ01CODU0SkJaVEhwSlJ6\nRDRYRHVaMDdwU2lWeS9iTDNsTGk4a3cKLS0tIC9PS1REMnVNZlk5bFB2dVI3a3Fa\nY0dwSU5qRlFoalFzdHExMlpVQWp5Z0kKpAR7j2UL/QEpNQMYgcobP9lYN/zv0Rv1\nval3yv1MNtJb08Gj9D71Wm7N/UMFqtpQElJsovfqnyyX0/VliuNSPg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvQjdSY05WL1FzZ3hMQjBz\nd2hTODVCRHJySkk5Y0VYRFIvN3h5VllJUEJJClFVOFYwVnljK3lPc09kR21wNldp\nZmo0bnhudloyZm5FYmNOSnUwZ3R2aDAKLS0tIDB1QXRydXMybERBelEvNEhjOXlw\ncGFIYkNidFNja0VoY1c0d1JTa1JuRE0K6YxRpSq/2rumXjfPQFV2PRvLfUUwgaj2\nYY5v04i43UHoK0IjA2J/qARvVU+OMlqKqBIsGAY4b9auw7GhqnK5wg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwZi9IMTBhTmxRZWdUQk1k\neXdCQnBXZTl0ZlgyQ2UzSkN2T29GYVB5V1Z3CjBRdWsrbktvUzVKanRVVFVwcG1u\nRjM3VjRFRmtPMkMzNS9XWENoNnFKSG8KLS0tIG9aUXB0a1U5R0pRVnpGTU1Lem5k\nTVRVaVBQZWtlRkhrSFJjOWt5SGw0Qm8KYsxHiwlQSm7DlRFJqf5GpSafdF7Hb5+5\nYaK2r9XOixfsLWsWLeyi+6/9p7dRYFj4cfmKMGgFTLQRtJC3cPdpRw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5QThvKzFkdVZRMk9iY0Qw\nVi93TjNGNjhIQ08rczlqY0ppZVpsaWt1ZlNnClQ0bjN4ZGhDMlJwM0hhQ1FwaTcv\nMzFIT296QXk0MmNGNkhlRW90RWt2ejgKLS0tIFNjR1RQV1ZnV0cwUGYvM2xYMFRs\nU2lqZHM0V2xZU21ZSG5aUFU5SkxsU1UKjGc2DCMIuh/im6C/8hU4SiNJ44Yy/+xE\nnGBlOfHwnQEdMcpV1u1Mg72J9BTKwDB+/dfKT83pQOwyKL1lxSl4Sg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0ekZpSEtjQWlINlBkeW4r\nd1dXd2RYTW1pS0NlcEJOZ3Brb24vcmhPZkJJCmJ0aUFYZ0pyWGY0OGlxbDJ0NWVr\nV3RWeXJJVm9JTFZZQTUrL3ZIdTVmL1UKLS0tIFlOcjBNQ0NURE04K2lQeGZaeDBF\ndjVhSDZWVEpXb3FxbWszbEpDb3UrRkUK4Ih1exUXjTwk0r8DGxzL+1Fp7S57GpFZ\nbsJpNNgsIXvIJOb2EN1Fcyqqx9ZqsQsdTDEV5yui5xYIVgHiHaAKlg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5Wk9HcGlzaTVFUG9UZi9Q\nSDBMOVBOR3lRRzNOZklzanRielhSTmNMeDFJClhIMlo4eHdIMWx6RE9DeEJiT1pW\nMG5FRjVHQ2hNZ0g4Z1Rqb3pubUQ1LzQKLS0tICs2OCtmVUd0Wkk2eHBXejRrWm5R\nZ2dZVFRWWE1HcUFCZTR2WVVwR2RxTXcKeCLsBtXBI4MX7HdIsiOBVLZgcB7w6iUW\nF8qGWersoEyNBIozpF2HzQt74QPtjJqEdiSv80E7uho7Hg8NWJHQUw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVaWdiY0xrQjcwQ2swRjhB\nczc2ZmMwaWR0OU0vZjNZVGdtYmFURGYxMW5ZCmxBV1RyNW5Hb0g5YUk3SWp5ZlNX\nb1ZvUXV1R0FBbm50dE5xL0RNSHFKRnMKLS0tIHdvbTFQM3Q4a3hmUGdLZkZWZjRR\nTExwTW1Ec3k1VkZwZVpBNkh5L0x0aDAKGZy4HGjE2IwTVxtVoLBvVyd1Qry8U2Za\ng2yluEZBtdKDPzi1XkG5xMUzK4EY+Gv/6I8Vvz85bmpgusGTRhC8EQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFSDlEellrU3B6Ritla3do\nbG1DUGtqZFJhQkhueDFKUUxtS1p4NmpIbTJFCi81Q0tqT1g2NUt1dStIODBJYk5a\nTTVhR0lHZ0l0cjRkamhWY1UwY1RndncKLS0tIHlyYy9XbnA2dGhNTkg0Q0xBODJv\ncDJkREswenI1cDhESlpleUhxNlhzMTAKJ3oWaL4k1z11SghtipIt4rhfcASgXG2O\nAcYhMUFjtf49+c3dnKbXXMeI9Q39XVUZKqcA1sP0yt0W4ibyfbNbCQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBENFBDdS9IVXhEQklBN09F\nOG5kZUNGSFFacW9QamJ5SkNsYUdQL0FOTHg0CjFFVUsyYnFNcGF6dTZPUjQvaTly\nclZMMUZraDhpL0tCZzJGYjMzalJlSmMKLS0tIGw1NXFBaU9BYzloOGdZSEpjM0xs\naHc5N0kvZDJPMzdRVldDMWpmc3UyeGMKtQfiu04UdnQPUa39wpyjcwfEhp0jUZGx\nqcvx36r4VXXVr0VyYYD47RXI5JVffDmrmqb6nkC57P9XoTGeDrq0aw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpd0crZkR5MGJzNnladWRR\nQkdReGVpdkdKVG5SZzdtZDQxS3Z6ZlliQkdBCldwUnVpM09DT1lIdnpnZVZ1ai9C\nMkg1RXpHNVRkaStrU0J0UDRiNm45NHcKLS0tIE9udklXMXJoa0M3U0JQU05XTHMz\nNkVJV1l1K3l3bWhLc0tLWFM5M0R6RTAKKEPZWpQ9ctT5nu8ypQdxcF6ZRNxbHpJu\nqCUJMXLRqUyuaH3aYx1lEM6AyH8zgGdRUPjsKMyEn/LXIkINRM7EbA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtZzVPVHhhQ1VKLzVtZnJ6\nc21JSGxxSUJqSlVONE1tTnJJWVBTczZvTmg4CmNVczNxUmdhWG94ZFlSQmhRcWQw\nTkthamY3L285anVCcmNpUlNZdGJyRWMKLS0tIDMvYkhiMkd1N1psZzZxa3NXbDBt\nOXJTL3dDVVJrN0w5Y2JLWXVaUEpxVncKpeZY55h79/76jAEvsWUSROJONWZgA4YN\nCVY9D3kwN1u8xmLLHbUc47FIAfAMHUGZl2aqJyT9D4Nn01cEtwj+5w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-29T14:24:24Z -sops_mac=ENC[AES256_GCM,data:z+mPxvLK1rD6TI5f5+FzGhhps2+feeFe33pIYydCX+c1wBOYZf7KpL9shbeRo4v2O4FA9rIDDGOvATA9t52tJdwnKn2FKkMB+aN1kwyvTvHc0BhKIfHbJ3UBK/jDShsw1xztcOEdLFBimIHm9g3DJNaVVK7B526mg7/OK4eHSDA=,iv:jXJBcYl1QVUvK/ILlNb5Qf8yUO2wjN22PASYA6609z4=,tag:l+XlU9yfWEXI5lHFJnzqdg==,type:str] +sops_lastmodified=2026-04-29T14:59:32Z +sops_mac=ENC[AES256_GCM,data:0IGfy2z1rd9AC2g+dyfPynR2nxZHBm+2I48rsFk2S6D0pe6L1k6M6htC22wQkjX6kSePVbEtS24QTS59/OP74HMPDHKE/YgrUYcxqjwAtr5b9E5DRflO+GMJpDS48WO1x9qTNA6AJkfHIdJ5h1nGPSS1xIcgdZeG96B4VazldgE=,iv:iDP5HpJNiI9cgGkP3ehptEEY4xVQsyzLNr8xuUKJogQ=,tag:CmuKRRlzrtBeQD40wTm/5A==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/.env.sandbox.enc b/infra/.env.sandbox.enc index 6f8456e007..e676edc502 100644 --- a/infra/.env.sandbox.enc +++ b/infra/.env.sandbox.enc @@ -1,55 +1,61 @@ -#ENC[AES256_GCM,data:zqf/lAV3ZtGVe1B1CdktWwdT/IwCwwfDXwrR8Bx//SZ6,iv:jCrXiJKct1wNsWA3Yl+jnjLxXboxsj26Oqr2kE3Qy4o=,tag:iXCWIE18IBuljmS/BTF57g==,type:comment] -#ENC[AES256_GCM,data:du+QJdIRAyYeEQ3B/uFtB1d+T825KdjKQHlqmykoCHrwEKQ7wMi3GAxME7DT0Vhkjekt54Tva7btJgA=,iv:IzKQitOGxy+Uod+9atDeudj+FPEBo8+1JRS1HeSmt9w=,tag:Nbo3T9Ao1TO7i2uj333vgw==,type:comment] -#ENC[AES256_GCM,data:gkboXLUQmmT3xEKqRYYhMRH4fvDm2x5o6Gn3g4fTm4k02B9V9QGoJKgvFE8eHleEnsKCPln5dVlv0Jsca7089FafEg==,iv:tJjHimurlxRXfoKG11BkAlhY1nobWwWHhA4MJwGMp9Q=,tag:aDCBYzchSdZMs/dg08Zxqg==,type:comment] -PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:z9TdPhrNpU9GeGxzud9XOboEkw==,iv:irQqhHsIiVtHBChVLuKwTCXEOGJ+n0tf3dRvr4IphsQ=,tag:JDRA4uVrBGGOkbLTfyjuvw==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:VmUV+OZ8kAHPJAPUlqy9ItJlKeTgiPM8CLPf,iv:BeU/auJDDwDEqcbs5HbcWkyZlkIYshe28/NtOic7Fgc=,tag:koErHfpy7BoD7XkE+HDIqg==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:xyHo5nAeAdM=,iv:BGEMF07cLV1WMJBGXNjzX+soHLIr3Sx3Yczw7VC+RPo=,tag:/MVDVJ6Nk4ubvhPyD1p3yA==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:9QHqUu4IlWU=,iv:NxFEV97ABgUXKh6SBB6NV9fbkwXBup1iAjpYbYQ6Ers=,tag:fWVefHArkHtvRx0Em6oaVw==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:tJj/uTycDg==,iv:v7g+a8gdbnS92bFljKMRaRiZyOygGGt8c2deiJJRdBU=,tag:ADUxCCmV91ckKmNG9zBjrQ==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:88rcR01BjVA3qMxavShL8+qtXxCDwb4WJp7TjMphn0XwckyhRLVLpkngWFoE/Q==,iv:6YiuVwCVGpuMTQxrXapbyzVMPNsDylq/VblPGxLAdvg=,tag:rrzCjgyIwv4AmEUcsBXxHQ==,type:str] -PGHOST=ENC[AES256_GCM,data:1YQ=,iv:HMRZXbIls4DjGgAf7csO5UyQSvBKjvexo0lAu3dRyeA=,tag:eDqYVvV/DiD+YPmUE/80gg==,type:str] -PGPORT=ENC[AES256_GCM,data:kF1TSg==,iv:yrI5ddqLUsaQqfJhtV8kXJmuj5nKeq1QF3ZVbdCEVQ4=,tag:5QWPHbiWeSyYqbx03LrcPQ==,type:str] -PGUSER=ENC[AES256_GCM,data:E4qEWPEewCo=,iv:pa12aUpYG5hqaHFNhJJLjGHBcR+Y+scvywdMOLuCMq0=,tag:LUQ4lXl2CEmBNJYwa7Z9nQ==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:/aV1UIy8RnU=,iv:8gpIvIveeIrGpmgv3d7uQAsITR3mQQ6nph4fBs4erFc=,tag:24Hh9XR3X0SPZ46O1SaHXQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:DWUY/wDmEw==,iv:hn+17ug5HslaDuLfoMfWuUsARCg5OGNOEoEFaQ5dLX4=,tag:W75kZHgFfkFwYZ12J9IqqQ==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:Pvl7IRg=,iv:CkjHJxojFSq8YQ7kXJWkzb1iBE9LTUBjEykG7oZhIeM=,tag:xz8186Fm0ehNwvV0p0bFgg==,type:str] -MINIO_ROOT_USER=ENC[AES256_GCM,data:LV+dFUrkIAuzt8N77w==,iv:XohWvwMiW4R53145wjveG4ycc/flijElxp5BsgnL4eU=,tag:GDMMOygQ1hNGhOVxsZhyQg==,type:str] -MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:9AJ6rB6799aPepsPGA==,iv:uMlhWHA+Fx9Kxiw5VoVL+bmNEjpoWBpjtOgNjSN6qdg=,tag:lndZodxq8ouQ24/Bv4biAQ==,type:str] -S3_BUCKET_NAME=ENC[AES256_GCM,data:CK8rgmZ5cJAC8rdBQIE=,iv:JpWtB0Hq3Meb16fI0KTIScX/PDKo2CeXBpUJLsWvFns=,tag:mxWDc7irbx9BvMc29110kQ==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:Rn7sYjKFj+VtB+o=,iv:XXbYuecWZRF/+KApLFu1FwYRutYhqx2lprwEfkS9isA=,tag:v0MWQQNYrl0hzF2x8BpULg==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:IojQFl7nJZr1Dts=,iv:xe9KfN67c7imLHOvAv0afRCZS5cx/Ll0xGID/F+GdD4=,tag:wQgZaxcw3Zobs+f3aaOZPQ==,type:str] -S3_REGION=ENC[AES256_GCM,data:2rcFy3j9n58V,iv:/UOP/3N8Q1zQkAMbCzgMRUPPHK8vREvjjVnF0A5W2T8=,tag:dLZ86FKp9d68jFl8vBCCPQ==,type:str] -S3_ENDPOINT=ENC[AES256_GCM,data:WJ5q/LVuq8TZgIVxZ8PE//w=,iv:Zegvqvon9eMDaebWiw9FnXcAe6cpPvSTvw7OX7lOogI=,tag:O3TFGgwE8aWUx3Y1R6LPnw==,type:str] -S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:rbIzY7sfUnPSHy+P4uiQe6cuDeKYNa3syJ7zKUfLcrNXPA==,iv:pA88v5Ojp+uNIjrZ0rk7em1R+CKegOjFp9iJaVOwwG0=,tag:/sRr+hxDxTwuJsw7RNMHRg==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:cRNuCUn4drG9fP9Xb6yNpnIHGZZc+V9M,iv:zrvQdYV5/DZTzh6YfsVGgoH8JSRkflKzb0S5vtAsVJk=,tag:JqNFFHE04YmHgNcZiX6tfg==,type:str] -SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:fty8,iv:L6XsogALC4DY0mEqbJwXl1/BCA/5WY/2b2fUjuPqQqg=,tag:jyOH4rBl7AVG+IVkX9ZUMg==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:nv6dzZB4H0g=,iv:XpMB5JE7VRuelx107UJeGNnAG0QU5c2ci0hN43fO5NQ=,tag:NXHxiFo51frNTLszrRHURg==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:HPZUPw==,iv:2GsmB8itSPp5eBQALfzvePmcsv3jqoYO2rwvWDHGA4w=,tag:MaDKOyp5zpD0jjpPF5283A==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:Bp+1,iv:588XjW1iLa1JR1O7nEoL18+UJAPm3dgJQ7L9eQMD8ck=,tag:zB0LjneN2rFBWmf3ZfLqaA==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:vbFv,iv:poxmyrs0Yk5HGya5z1LQ3meN3FnhQRuIhFjRGglqaAg=,tag:swBzOW4BlXurGvxyzTiNcw==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:JtXuSE9ajnAiik4F3tTd,iv:E7ycBrvoNnim7766Y+tlKuDhj5r90ez2srueOaDxTMk=,tag:5xAcpTdOa6XytUNV0Gh5sw==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:dvbzniEmHPWcLkvP,iv:SGLTGZWoIEIBA2RjOKpoeXy7315s6JR60Bh8wclEX2M=,tag:G9UsPK3UnhoqFFLVJjrJ2A==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:iXeS,iv:K4mPtLiycHuvpwTYgAs/d/CJnbfRDr303UINhzP9vDc=,tag:NzUonvjtX++SoDlSSz7qOQ==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:lsxgc9cPbAlzRfRzRUkUVZgP,iv:iPNJFsUMf3O7Sdvft971ti38XohPoD3g7T7TFQJJl20=,tag:f8cNJGWPB6cb59LbdJoDIQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:jtyB,iv:SRqU2eKF9KFrv3+dEAWGttUuu8OBAjnWz9tlw+nGqQY=,tag:on15Ho2TcWD0JLe5WsqoWg==,type:str] -API_KEY=ENC[AES256_GCM,data:8Wgn,iv:6nthOVTTbo92dfns88dHPBv76WFb/fDKNEcWK23smxk=,tag:rW7p28pYZl4GW1sNuo7eDg==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVaHBRWkhFOWFxZ2FBeXFH\nMEpDWHRLdmhXZGV4ZTltK3M3UkhtU1luUGwwCkozTWQyMi8yd0M5c1IxNXFIUkEv\nSno0SjhvM05MTnNtbjdxbElpN24vekkKLS0tIDhoQUdLUHhiTmRZV0NkYUhPNFI2\nWkhudnc5QXlINlluSUJYeVlFNzZxUjQK7LDK8aa48+icO32nuWejKPTkdrdu1q3+\nFo3TlD2AiaVVgxLfSGYbVlFMT6nCM2ZlA+zubb/4Jgk4YAE9fzeIlw==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:tF+NltX0H4lRZhaiAXufdjxUXI6mhahYZJ0a+yLnMfBe,iv:gPG3i+H/MHfIqNkXhTz4/qniEznMTOkkWuBbPJARQTA=,tag:ZODl0D8JpS1kFckbruMVEA==,type:comment] +#ENC[AES256_GCM,data:EN2pyGpFNFSbIkWr2AnLnD2kMSynYkiqnTLEArUVN41JA1mEGmm2pwkfe05M96Ek9/c9OWrSuC9wiZs=,iv:abLSNzneVJZW3MU4M0xTE5wtMInubGRiXmOAKnPV40o=,tag:wgJRdwwbeYkpNbsWwSOwVA==,type:comment] +#ENC[AES256_GCM,data:bziwAg1j9EronJ8qWD+gaH9wafAXUlWJZBXb3kuxE7ebov+/2whAamyHCFJclI5WqHjiIS9rhxIE0GvFRxIbhGpcRQ==,iv:mchtIFdVGpPd8HfEk7AwreZpze61IrMhI7H8ir+t4+0=,tag:Glp5g0pcnQ2NysiGr9qvpA==,type:comment] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:oABFln8WFDncQTjkJwBDASONnQ==,iv:QljTPv9UV8I23E8r2wp5Uj5sEXhG6znb/R25+e5gNHU=,tag:n2pha9MjnUB49JxAa4AeJw==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:Ntj0Tlkx2mZ1PTA/gCFqnxclEjtm9pSiQCrZ,iv:8u698h1GcZDhwgLxkx/DQMbGsk5rKg4vfKjv6KvWvC4=,tag:NviH+AeKs/ZsCbCpac3WBg==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:Rm9As1s20Lg=,iv:+svOJMv5QnE8HW28ILiYdzoXU92T2igJTZgJ1azAzAM=,tag:V/IzKe5u1QVQF8uoGWwzPw==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:omibGjCYIY4=,iv:XiQI25BV9Te8hgRAlqCpYWyG14V2xk0k9sVT6sRoqxg=,tag:1BMdjBzx6psCDjBfC7oDIQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:GfLYNxXSoA==,iv:/EYawF79c2nVd7E2bd5XpZF/JvKmqCuw3450ec7thwg=,tag:XLbc8WpUHhuZ51E6AiJS4g==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:WEe9K67uUkNPvrCUq+nmMJFGByhKvDqEO6jRWOP3E+Mp9UdYYZzdW01idLkwWA==,iv:GwKaKmObHUnJxT/Dt3IcF7kZs+9H1irgmDxMppgemvg=,tag:y2XlWG56mHfmjcSa97oiUA==,type:str] +PGHOST=ENC[AES256_GCM,data:SX0=,iv:bOmUUbSDRNOX1wYv/4QG4Bi1UvTL4okiGepeTRPoHeA=,tag:sdtjbzWcemb3GSjImGikIQ==,type:str] +PGPORT=ENC[AES256_GCM,data:1ZTi8A==,iv:typ1xzPft/qeQd3pXCNa/3x+CGOOIM0Wb6DzAbyzvjg=,tag:yQs2auNzGXLFBS6NyhnfSw==,type:str] +PGUSER=ENC[AES256_GCM,data:L5H4xna9NoI=,iv:CGRd6H8Ao9zPFmNZa/nAZnI3c4luxvIJaX7293sBat8=,tag:3eL+IlQu506bJGOccbIEbA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:c2EHtIGCY7A=,iv:kt1Yn1aiRsiRJSrJ0mofX0YtT4tREq5xIHtP7He9AQ8=,tag:xwqzc73O7PMcHAuyDT/2kw==,type:str] +PGDATABASE=ENC[AES256_GCM,data:i94qQTr+AQ==,iv:PWQF+ck7b2Kuq+x/RZKxRRo55kVtGktJK3z2NmJ+MhI=,tag:w2OAZvJLfpwSctNcOxW8NQ==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:2CDHsec=,iv:wVNaNQri6rNfW+kO8CAcnmTrVG6z6IKNp0P9ybwBSG8=,tag:BXbaxshzZgT+a86MQD8tUw==,type:str] +MINIO_ROOT_USER=ENC[AES256_GCM,data:JcT8s87Bm6DjvC3H8A==,iv:SdZQ6u1G+i/tc/cC/nsd4o+LRfdCQQZy7I22Z9KJrfY=,tag:RXyE27OUKzfjq5lyLWd1BQ==,type:str] +MINIO_ROOT_PASSWORD=ENC[AES256_GCM,data:OcniH42f9zFzqWrfKQ==,iv:hGdpVXbq+qqMP2+B/Vup4oUD2HpExNUD6oie2q5CJkI=,tag:n3PNhPYAC9jgMdXza+YDUw==,type:str] +S3_BUCKET_NAME=ENC[AES256_GCM,data:akRzgwxFWktUm7c44Qk=,iv:UrRsa4yPo10+OWeAEcTEUy9VR9Ah70fJeGbgEyVfob0=,tag:wV+4SDm7A9fPHxZ2H5h1oA==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:KWdo4+7ftT+hcCk=,iv:He6FRP7moevc/vvBiFgBUvGU5I9pvA2ADO0kYVNz0hU=,tag:uVazhycoyXIkO2rerVZibw==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:GffjT1VJqHbQcKQ=,iv:IHadm2kgehENsQaHy//8BMbu8iYbZXrCOjp2fREQtr0=,tag:5LT9VaxPvtAtYRDEy3SR0w==,type:str] +S3_REGION=ENC[AES256_GCM,data:8u4SarTCdTcn,iv:TICaxtJU6wD3Q6i5K/ETOpLgON+eQIGgTNU9eMFMRDA=,tag:Qp8r6JuS+Y6TYnDul+wtHw==,type:str] +S3_ENDPOINT=ENC[AES256_GCM,data:cCR7s5MwGLhtTXm5zaRVTTM=,iv:aAUb+FWKBnsNqH6jytz9REF8qLKe5j5LMc7xF+Jrpc0=,tag:NvjuaN83rxAh5J7kiynq/Q==,type:str] +S3_PUBLIC_ENDPOINT=ENC[AES256_GCM,data:IEYZXG2hBkOQU1DmvEBQWpdHlGLu+6YW668cALMX/QaoVw==,iv:EVrM3BI1R1F23LeYQh1zNS2abESlAu7LjJx4TGdDYms=,tag:1BGPaOfYHRJb/xOUfl1ZEw==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:PNJApXvbgf5wIvGlzutr1rUwJqOHTyAp,iv:tCvJrso+5kPr8MBp3Bzs6XLR60vBjJ2l/lc8wl114b4=,tag:m3kr6BQXJG0EjsHSOj9AGQ==,type:str] +SITE_BUILDER_API_KEY=ENC[AES256_GCM,data:X2jn,iv:prOGWQXw75Hz0e80aVaKGa1gD6Z+MEESgLxn0wLHXaw=,tag:NmRkYoslfXueRKzEYh9DKg==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:uVvjHMdx8uk=,iv:jPVojBeb9J5mwOSzpB+PMh2QoaJOwmIl/02kuGLMIvQ=,tag:tzB7BgzdSE5AQmUkYzH1oQ==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:uiZgUQ==,iv:7wx9UTNhNlEtXWRLvBUMKjS/EKslkKvYBdyFf6B2SkY=,tag:MEZjJAVbuDBNk6QE63tHTw==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:OQTj,iv:FY6HLczXg9rHVr3+Xo1kV+7FByT/FVXzy/4rRLXSpvk=,tag:nkgWdiRt+b511JFc/TRHpQ==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:q1TV,iv:UJeONciELaSSPxT35qWCdRK+ea1hHCxmQ+sQ+q2LH+Q=,tag:kaxTB6D+yUvUuw00HoFRpw==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:HOc3HI787OLj4OXr662h,iv:HXkj85ffIMmLhfWzpcamgmLnxywvSl24DepDJ/MtPpY=,tag:sWmDxISKvVfbjq/Y+++5/A==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:Cxnc64JtRCy/CHo7,iv:N7Iv97ZWDuv/myyLQykPB7qxgcXAd9SP8JMenHGa0B0=,tag:rn1KneMaXOO6RBOLM90S6A==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:fQzh,iv:YLl0RrAvQadpCTaGkqNIa1BvUk5A8pwa1+WWv3y3D0Y=,tag:78YM+o87DPOInnXUa2F7AQ==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:nRuRyQb4WSTfcVYvDsRxseex,iv:4CGO42FS6URtMZQgsMeKS3vv4w0lIJr9vNlIhxGPKj8=,tag:4EMAnRAgB+mmN5ianNChGQ==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:8wiA,iv:c4vfsljDCF/CYBS9xupkNqtvtqc+n6ZyfeNuwrWrB+o=,tag:rOWZxTbMdko1SlZSS1nvRw==,type:str] +API_KEY=ENC[AES256_GCM,data:iURB,iv:3Q6bMO2+AWzd2uLDtWaoSMc1xYu+ODLalxD0i1cjU3Q=,tag:Qvhsw+cuCyiKzF2jE2glRw==,type:str] +S3_BACKUP_BUCKET=ENC[AES256_GCM,data:jpmctOMuie0ZG8MRq8j3bspXUQs2,iv:7BcTXO+nQsNbDw0c8UED31AvDVX55dx6M0zPhPDqTFI=,tag:gfB7jY201ywUIqvmhUcAYA==,type:str] +S3_BACKUP_ACCESS_KEY=ENC[AES256_GCM,data:bkEE8tyr4c0Xfk6AOgFDjDU=,iv:hZuxjKIfMuicOUhofQGFYf6zySe3lnHFZ3mV6xDABWU=,tag:Pj0wERuVvT8yowh/n04JFQ==,type:str] +S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:mjCtsdSn12RoBGRbTpvc0NA=,iv:PAQYzh7ESMPP5JfPtI4/auMMIJ2hy9iheRsF0DQyvvw=,tag:BTOSK1IeniEoXcXHY2lpeQ==,type:str] +S3_BACKUP_REGION=ENC[AES256_GCM,data:SAX9l+VtGSxY,iv:iGMZ5wi4Kv+PdhS8qgQdf43z8zvDVWkQWTa5aAjahJs=,tag:cvctAvbUrpX/soQ5ZG7jVA==,type:str] +S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:tIPNOiQdE0cg1YGDrvxx+48=,iv:QBAAZCpC+tj5hfxmZV2XE8AaT94P73eacO2xk2iNb7U=,tag:JLLPwkEzI99siTaHrBB1dg==,type:str] +S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:V/rtkfWuQRF1zw==,iv:1/e+whCZhLzSW9hug/NSyAi9sGhV8yWWg7IYVCi8JKY=,tag:wnXvQJH/o7wklgi5BO9HCQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQaGlBQ2tBVFNZV3dRcGw5\ncnMyYUhnU3ZXSUtsazNNYkd4Skl6TytrYkJFCkNyVG04L0tlcW5naTk3eWVoSW02\ncmFjUTBMdlI3MWZGMXJDUm4wK2RMVXMKLS0tIE10aWYvbGZKL1FTWHBVWUpRQllX\ndW1PZWE0ZitFYTd4QUMzaHBCdVdnaGMKXsnAeUrceSs5Uw3WHjX3f0/cVcbO5FqO\n5Thdt77+6Vzin2WC0DHwsohBCfDRE7V8dGRzrkBEExG0ZxM0d3VLfA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4M2FQRDZJeWRLcHE1VWxu\nbFZvenJFZWJ2bUgxckttckJLME9iLzQvejFVCk91TEF4NGVaSzAvQnFLUHBuZ2dx\nOXcxdFhhVEh6ZmY4cStxd2tEMDdxZU0KLS0tIGNYQnhwWjlpZExtYktaSzgzamtK\nekpZTE9FaVBaT2ZETk5GN3lXNHdxZk0Ky2juLfhBMHQtV2l+lA5vKkMXkH7L7152\n84nhV2TBlcCbCpVBVdfo8NT1z6NNYCTfUDDrJTX1Enr3FiKibLZWVA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3YWVpdnlwbmRHbU1TQ0RX\nL0pCTzJ1aDU4anRlR1I5Q1lSWFdzWnYrRnlzClBUbUxlUm9NRy94dWU5TDBMWVBy\nYm4wNmR3NEVKNXlHQXVUVFhuS0VJSmsKLS0tIExPYi9rYnlJVUZiUmR2TVlMdnh0\nZWs5bDlWVm1mOUpIaUViMk9uRklOSkUK0QzpgcLSb5SbOc/OBm+7Og4ZijiOh15K\nfqK8OKIbdvWNAvpnGwmD+TIgnKsOGHXHnwXaV2YEVBDeUxCKO5MWMg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsMTVHb1VCTXNISXh6OVVT\nZTkvWTFacHVLMU5aWlAycWlwSXdLZk1CZlNrCit0Q0R0V2dhZzRvYVJRMExKYW5o\nNDJtZG45cVBXcWF1Q3FRZ2Q0ZVBQWDAKLS0tIDA4Y3pqbnBVZG5pL1VrTmdoMjhw\nTDkva1hZOHFiRlowZzFuWU4yWE14N0EKAtgaBRRRWAOmUuCS94y+lFvLiaMuK4tE\nJWgydI2IN0McNKWZfHJYRkRBNptyglYNB6gZM0lWuEV06fhlzsJIjA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxTXJkKzBLZVVyc0xUYnUz\nWGpLL1R4REM1Wjh1SmRRNDRINCtPRVBTQlNFCnJlbmxxQWpTUUFvcjRBNWs2Y1Zr\nVnRYaXRrL2NtMDl1cE1tYWxudnhIZlEKLS0tIFBuZGFFR2N5a1h4UFR1WFhEalp4\nZHZ0ZHVES3RLK1B6K2VHaDJBU2lkeFEKHbDh3f3Qhd6bGGhaP0s7fGxJAkiSiTzs\nS1e7GSw/vhV6bUIiTuqjzBhr6+js3cOAW5medMBA0shS8wgMDV3v7g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBydWE2U2dFN0pDSU9TdVEv\nNjJMN2xZUEMxaWJuNStCQ24xeGcrV2NhMHc4CkpnUG5vVVV2L1BRb3M0Q0cxZVlK\nZFg1eDBRdFgwMmdhVHNleGF2WFEycFkKLS0tIHZrNCtqbWZ5RmJmK2ZEaHhvazQ2\nTmNNQ1pWVWdiWlpzSHVYVndBNXpZelUKc5d8uILLBcr3YWQQ2ba7vafTNiPyyq2X\nmexxpFIE9CObc2zxcsgfAkLcQ6snGpVZQ/6BOGGh00s5+YEOofjC8Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBXT2szemdTOU5IM1NLUEIx\nUThPMGpKUkJXUFNCRlkrWndQKytZdlVWdGtVCjkvOHl2SHg4Q2RFVm8vQ0ltU29t\nQzU1ZXVHN3dOM2tVMEl3VWd5cm96T3MKLS0tIGtXT0RaeHIzMEFpaHhORHhoSnZB\nSXVETHo5TFd4TU1hRkoxYlh4ZU5QRHcKaF9OnxmDiJRezJPNzq6dfVhynC/7bJ5q\na/uKNJSjkADy1ZoNbAIF1iBSXcq5zXX4gN2LAtuMapg8B3BVT1o6Yw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJMkNPT2Z4V1NYMUJhcXc1\nTGd1RDRVTHZSL1FRcjgzTndDcE9UTzVSUGxFCms3UzVhZG16bjY0dytTNnNHR1l5\nVm4rTjVja05pM2F4SVhneXMzWnk3cmMKLS0tIGVmSHYyTE1Ka2Z1dVVqTmlCdE1L\nOEV3b3BsS3BSNWNPQTFqNHhLQXUwVU0K1SyIVNJscpq+SKwVLKxxLAOq4ouvePIH\nlVvlgaH4b6kFZWPwnDOOiHBHVAeLl/McOg8iw98cQvrBHLjNmb+bMQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA5OWhCdVNxM1VLQjIxZ0RY\naHkvT1FKQmZ4NkxrVXBmdDRSSjhiTlJrNlhZCnlZUitOZG9seHc3NGRxN21XOCtE\neGw5ZkE1ZHdwTUxiM0ZFTGozblowVVkKLS0tIDRlcXlnVmhndnJ1UUJVT1ZkN1VV\nbWNmQ2R1QlIzQWR5SnhKbVdzclVXcDQKfQ83Vc163IG2yX2SYiGeuifQB6i43Zvw\n7RgzcXVpq03OG+JJbDrugx8opSbaFzRjvTQYEwjzQC0v3mw3kj2/zw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvNVd4ZjVKMTFOV3h2bmF4\nM0pBUGZIb1JCUFhpL1YxallNKzNncVhwc1NjCjFYd2YxQVpwZ3ROVk1SRW1CTFk0\nU0E2WFhXbzdCSWVKY1B4UnVSNm4vbW8KLS0tIGVZeW9PSnRIcUlSYjNGcytIbmN1\naWdWTG0wQ09ZOGx0RXpNQzlhUXFqaFkK5NJwrQ6kmINb81TE4bAV5KJ2FXe9Su2B\nJ6BhsyfAL2kh+Q38VuvYcnSNNG2FZV6udVjn36ot42fcvhtlVWK3jQ==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhZG5ieDB4WDZEbEp4a3ov\nVDRRYndQU1FzQmtaRVgyUTREZzdiRS9uVnc0CkJLOHdvOTZRL0JmQ29OSlgyemtT\ndkFwc2hlVWtsN0luejFiUE9UZW1IN28KLS0tIGNaRlJBVlM4K3kzaktWR3BOOVlY\nYWl4eXpXN29VQUw0TllmVGsyZW9hbUkKgkPyA1rZxdq5mSWycBGbmZKzGvAYdVbo\nIznxZ5HuWBrgCKPpNU/dYXKBmTiI5+spp/Flv0ZwdDlNpB5zeXWA1w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzUERQWXJXbWY1QTRhQkhh\nMXJWQittMWx1V3pTTndTWlRWRW9KalhlbkJZCjNIKzNXd21Pb3RRVERmREdLeDBo\nU1RoaHVya1RmZXQzN2dRQnRmRStzb3MKLS0tIDNJQzJlUUpveUZLaFNDdWRzaWw5\nMlVkSXhxaDIwZ284RDY1Y2w1cUFiQ3MKSOtNtzdaIjbKZYnyD+xuHXga9mAGzwoa\nL/cRRd1/lHcuLdbwkEGQ2KS/B1VrjvPX0+jmJwxpUTUgjWUUZBns0g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4dHhDWUgxTDBSWWV3cTFK\nSkcxcXBWWjZ6TURJclFzWGVnbFdHTTJqbVdzCm40SzN5SEx3Z2lGanp6MUp4SnVP\nbE1vN1I5UGlsUTF0NlZZRm1FVW43ckUKLS0tIGkyQmxpSWlua3NMbGl1cjltY3ZZ\nbUMxbHBXdnpHOXRLV3hrOG5ZbjB0ZWMK9zYALC7oV5PgWu5S1qaNVm6tnQVRciWt\nmmbYzMgr+dI5wk/KPGVskHA02G6fkbUXK/SvN5kyGzR2GOYrx9X7lg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoNGprYnZLeTkxVUpuV2lE\nV3BOcnB6anNWMWxnT1h0OTBPd093c28rd0hJCnp6UmU1dTYrZnlWdy9RaytHMXdN\nUStMa0N3V3BERmhPbXAwNStlMGptK1kKLS0tIDVBL2xIZjJrd1NOOG9GOS85MTN1\nRGUzN3d2dmY1SWFXNk5LU0IyOW1hMDAKRsVeyjNYS57o/1+uij+dNbavNbtXrYsJ\nlJmGFxKr9eqKg1GYIUMmB3o/2+YPDncxTcgWvyRRVP2cKYg7GBv5tw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6L2MwV2VmcW1KTE5nV0tU\nUkNyTjIybnJiS0N6ckQ0ZDlRMmlENUtUNzJrClgxNDBsTDRuRVNVNFp0ZEkvaFZt\nWkl2d1JkRWQrMnlhMFBEMXNyR3FjOVEKLS0tIDdaZ1lFdTJxWFJ2OXczU3ZLbGk1\nd3p4aG5VZHMwZ0oySzcweXlRaVhybGsK85Pk8mu/pjPcEPd4rlmQ7Z/2ytrflX5v\nIe6HCdX6VFVMJjLv1ymr6Cjq63XsRcArBfMqnq3lKy0LpMVJZE8IZQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-29T14:24:29Z -sops_mac=ENC[AES256_GCM,data:VE4Ofm6ra9m14+YUmSTHkGGOWVSl4DVlV0HPS+pfLx8zPjHz6G6YT75YiGACkv+ZOpLe4hUwFtHoWHkZhJHgvSEAzQFRjyLObBcJXJ27FOWNGpJdQGTbaw3eAaZS+lZz2OSQ8pz7psHWurDaBvIngoG3ffYkrO410VHwNKgBI1I=,iv:HfFlD8dNk4ugP0sViVTqjnNQFb4hmzrKybuxbz1Oi0o=,tag:nX8j351ZQV0318sL3PM+sA==,type:str] +sops_lastmodified=2026-04-29T14:59:35Z +sops_mac=ENC[AES256_GCM,data:FACFsFOpdW5jvRhLOyudN+glulntmoIerT7tI6j59+vgnBzDxMC0R6iIHRX0E4o0OS80GqXeUCC669dIsH8zqn6xMchVM2kQDd+zJocZ3Uqnc1AtudG7+hw+0RCVOceiE/+OGChR1Bz5E/vfPY3xOgcNWYwzchnRJFfdv8OV9bE=,iv:sfMOvKnIYIo2v1E9gvjZgIdPfA2saGGsdlyuH2Aj2Kw=,tag:HG47TvGh9VTd4nLIpi61zA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index e3386bd725..a2e3158621 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -14,6 +14,9 @@ services: SITE_BUILDER_ENDPOINT: http://site-builder:4000 S3_ENDPOINT: https://${ASSETS_HOST} S3_PUBLIC_ENDPOINT: https://${ASSETS_HOST} + S3_BACKUP_REGION: us-east-1 + S3_BACKUP_ENDPOINT: http://minio:9000 + S3_BACKUP_KEY_PREFIX: pg-backups FLAGS: 'uploads:on,invites:on,disabled-actions:http,http-allowed-domains:localhost+127.0.0.1+.pubstar.org,show-test-only-tools:on' DB_RESET: 'true' DB_SEED: 'true' @@ -47,6 +50,9 @@ services: NODE_ENV: production DEPLOY_VERSION: ${IMAGE_TAG} PUBSTAR_URL: http://platform:3000 + S3_BACKUP_REGION: us-east-1 + S3_BACKUP_ENDPOINT: http://minio:9000 + S3_BACKUP_KEY_PREFIX: pg-backups networks: [appnet] deploy: replicas: 1 @@ -124,7 +130,13 @@ services: /usr/bin/mc mb --ignore-existing myminio/"$${S3_BUCKET_NAME}"; /usr/bin/mc anonymous set download myminio/"$${S3_BUCKET_NAME}"; /usr/bin/mc admin user add myminio "$${S3_ACCESS_KEY}" "$${S3_SECRET_KEY}"; - /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}";' + /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_ACCESS_KEY}"; + if [ -n "$${S3_BACKUP_BUCKET}" ] && [ -n "$${S3_BACKUP_ACCESS_KEY}" ] && [ -n "$${S3_BACKUP_SECRET_KEY}" ]; then + /usr/bin/mc mb --ignore-existing myminio/"$${S3_BACKUP_BUCKET}"; + /usr/bin/mc anonymous set none myminio/"$${S3_BACKUP_BUCKET}"; + /usr/bin/mc admin user add myminio "$${S3_BACKUP_ACCESS_KEY}" "$${S3_BACKUP_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_BACKUP_ACCESS_KEY}"; + fi;' networks: [appnet] deploy: mode: replicated-job diff --git a/jobs/.env.development b/jobs/.env.development index 6b98a63c2f..c30fbc16ff 100644 --- a/jobs/.env.development +++ b/jobs/.env.development @@ -1,3 +1,9 @@ API_KEY="super_secret_key" DATABASE_URL="postgresql://postgres:postgres@localhost:54322/postgres" -PUBSTAR_HOSTNAME="http://localhost:3000" \ No newline at end of file +PUBSTAR_HOSTNAME="http://localhost:3000" +S3_BACKUP_BUCKET=backups.pubstar.org +S3_BACKUP_ACCESS_KEY=pubstarbackupuser +S3_BACKUP_SECRET_KEY=pubstarbackuppass +S3_BACKUP_REGION=us-east-1 +S3_BACKUP_ENDPOINT=http://localhost:9000 +S3_BACKUP_KEY_PREFIX=pg-backups \ No newline at end of file diff --git a/jobs/package.json b/jobs/package.json index 099a904af4..c8133c142e 100644 --- a/jobs/package.json +++ b/jobs/package.json @@ -11,8 +11,11 @@ }, "files": ["src"], "dependencies": { + "@aws-sdk/client-s3": "^3.1038.0", + "@aws-sdk/lib-storage": "^3.1038.0", "@honeycombio/opentelemetry-node": "catalog:", "@opentelemetry/auto-instrumentations-node": "catalog:", + "@sentry/node": "^10.50.0", "@ts-rest/core": "catalog:", "contracts": "workspace:*", "db": "workspace:*", @@ -26,9 +29,9 @@ "devDependencies": { "@types/node": "catalog:", "@types/pg": "^8.15.5", + "@typescript/native-preview": "catalog:", "dotenv-cli": "^7.4.4", "tsconfig": "workspace:*", - "typescript": "catalog:", - "@typescript/native-preview": "catalog:" + "typescript": "catalog:" } } diff --git a/jobs/src/index.ts b/jobs/src/index.ts index 2e7c0d5ee9..28ac6cc14d 100644 --- a/jobs/src/index.ts +++ b/jobs/src/index.ts @@ -6,6 +6,7 @@ import pg from "pg" import { logger } from "logger" import { clients } from "./clients" +import { createBackup } from "./jobs/createBackup" import { emitEvent } from "./jobs/emitEvent" // must match the lock id used by the platform's migrate.ts @@ -13,6 +14,7 @@ const ADVISORY_LOCK_ID = 72_398_241 const makeTaskList = (client: typeof clients): TaskList => ({ emitEvent: emitEvent(client.internalClient), + createBackup, }) async function waitForMigrations(connectionString: string, maxAttempts = 60, intervalMs = 3000) { diff --git a/jobs/src/jobs/createBackup.ts b/jobs/src/jobs/createBackup.ts new file mode 100644 index 0000000000..d9a3372528 --- /dev/null +++ b/jobs/src/jobs/createBackup.ts @@ -0,0 +1,334 @@ +import type { JobHelpers } from "graphile-worker" + +import { execFile } from "node:child_process" +import { createReadStream } from "node:fs" +import { stat, unlink } from "node:fs/promises" +import { tmpdir } from "node:os" +import path from "node:path" +import { promisify } from "node:util" +import { DeleteObjectsCommand, type ObjectIdentifier, S3Client } from "@aws-sdk/client-s3" +import { Upload } from "@aws-sdk/lib-storage" +import * as Sentry from "@sentry/node" +import pg from "pg" + +import { logger } from "logger" + +const execFileAsync = promisify(execFile) + +const DEFAULT_BACKUP_PREFIX = "pg-backups" +const DEFAULT_BACKUP_INTERVAL_HOURS = 24 +const DEFAULT_BACKUP_RETENTION_DAYS = 14 + +type CreateBackupPayload = { + backupId?: string +} + +type BackupS3Config = { + bucket: string + region: string + accessKey: string + secretKey: string + endpoint?: string + keyPrefix: string +} + +type BackupConfigRow = { + enabled: boolean + intervalHours: number + retentionDays: number +} + +const ensureSentryInitialized = () => { + const dsn = process.env.SENTRY_DSN + if (!dsn) { + return false + } + + Sentry.init({ dsn }) + return true +} + +const getBackupS3Config = (): BackupS3Config => { + const bucket = process.env.S3_BACKUP_BUCKET + const region = process.env.S3_BACKUP_REGION + const accessKey = process.env.S3_BACKUP_ACCESS_KEY + const secretKey = process.env.S3_BACKUP_SECRET_KEY + const endpoint = process.env.S3_BACKUP_ENDPOINT + const keyPrefix = process.env.S3_BACKUP_KEY_PREFIX ?? DEFAULT_BACKUP_PREFIX + + const isMissingRequiredBackupEnv = !bucket || !region || !accessKey || !secretKey + if (isMissingRequiredBackupEnv) { + throw new Error("Missing S3 backup configuration variables") + } + + return { + bucket, + region, + accessKey, + secretKey, + endpoint, + keyPrefix, + } +} + +const getBackupConfig = async (pool: pg.Pool): Promise => { + const result = await pool.query( + `select enabled, "intervalHours", "retentionDays" + from backup_config + order by "updatedAt" desc + limit 1` + ) + + if (!result.rows[0]) { + return { + enabled: false, + intervalHours: DEFAULT_BACKUP_INTERVAL_HOURS, + retentionDays: DEFAULT_BACKUP_RETENTION_DAYS, + } + } + + return result.rows[0] +} + +const updateBackupRecord = async ( + pool: pg.Pool, + backupId: string, + { + status, + error, + sizeBytes, + startedAt, + completedAt, + }: { + status: "pending" | "in_progress" | "completed" | "failed" + error?: string | null + sizeBytes?: string + startedAt?: Date + completedAt?: Date + } +) => { + await pool.query( + `update backup_records + set + status = $2::"BackupStatus", + error = coalesce($3::text, error), + "sizeBytes" = coalesce($4::bigint, "sizeBytes"), + "startedAt" = coalesce($5::timestamptz, "startedAt"), + "completedAt" = coalesce($6::timestamptz, "completedAt") + where id = $1`, + [backupId, status, error ?? null, sizeBytes ?? null, startedAt ?? null, completedAt ?? null] + ) +} + +const upsertBackupRecordForRun = async ( + pool: pg.Pool, + { + backupId, + filename, + s3Key, + }: { + backupId?: string + filename: string + s3Key: string + } +) => { + if (!backupId) { + const insertResult = await pool.query<{ id: string }>( + `insert into backup_records (filename, "s3Key", status) + values ($1, $2, 'pending'::"BackupStatus") + returning id`, + [filename, s3Key] + ) + + return insertResult.rows[0].id + } + + await pool.query( + `update backup_records + set filename = $2, + "s3Key" = $3 + where id = $1`, + [backupId, filename, s3Key] + ) + + return backupId +} + +const cleanupExpiredBackups = async ( + pool: pg.Pool, + s3Client: S3Client, + backupS3Config: BackupS3Config, + retentionDays: number +) => { + const expiredBackups = await pool.query<{ id: string; s3Key: string }>( + `select id, "s3Key" + from backup_records + where status = 'completed'::"BackupStatus" + and "completedAt" is not null + and "completedAt" < now() - ($1::integer * interval '1 day')`, + [retentionDays] + ) + + if (expiredBackups.rows.length === 0) { + return + } + + const objects = expiredBackups.rows.map((backup) => ({ + Key: backup.s3Key, + })) satisfies ObjectIdentifier[] + + await s3Client.send( + new DeleteObjectsCommand({ + Bucket: backupS3Config.bucket, + Delete: { + Objects: objects, + Quiet: true, + }, + }) + ) + + await pool.query(`delete from backup_records where id = any($1)`, [ + expiredBackups.rows.map((backup) => backup.id), + ]) +} + +const scheduleNextBackup = async (helpers: JobHelpers, backupConfig: BackupConfigRow) => { + if (!backupConfig.enabled) { + return + } + + const runAt = new Date(Date.now() + backupConfig.intervalHours * 60 * 60 * 1000) + + await helpers.addJob( + "createBackup", + {}, + { + runAt, + jobKey: "database-backup-scheduler", + jobKeyMode: "replace", + } + ) +} + +const getBackupFileData = (databaseUrl: string, keyPrefix: string) => { + const timestamp = new Date().toISOString().replace(/[:-]/g, "").split(".")[0] + "Z" + const dbName = new URL(databaseUrl).pathname.slice(1) || "appdb" + const filename = `${dbName}-${timestamp}.dump` + const localPath = path.join(tmpdir(), filename) + const normalizedPrefix = keyPrefix.replace(/\/+$/, "") + const s3Key = `${normalizedPrefix}/${filename}` + + return { + filename, + localPath, + s3Key, + } +} + +export const createBackup = async (payload: CreateBackupPayload, helpers: JobHelpers) => { + const databaseUrl = process.env.DATABASE_URL + if (!databaseUrl) { + throw new Error("Missing DATABASE_URL") + } + + const backupS3Config = getBackupS3Config() + const sentryEnabled = ensureSentryInitialized() + const s3Client = new S3Client({ + region: backupS3Config.region, + endpoint: backupS3Config.endpoint, + credentials: { + accessKeyId: backupS3Config.accessKey, + secretAccessKey: backupS3Config.secretKey, + }, + forcePathStyle: true, + }) + const pool = new pg.Pool({ + connectionString: databaseUrl, + max: 2, + }) + + const startedAt = new Date() + const { backupId } = payload + const { filename, localPath, s3Key } = getBackupFileData(databaseUrl, backupS3Config.keyPrefix) + const recordId = await upsertBackupRecordForRun(pool, { + backupId, + filename, + s3Key, + }) + + try { + await updateBackupRecord(pool, recordId, { + status: "in_progress", + startedAt, + }) + + logger.info({ msg: "starting database backup", backupId: recordId, filename }) + + await execFileAsync("pg_dump", [ + databaseUrl, + "-Fc", + "--no-owner", + "--no-acl", + "-f", + localPath, + ]) + + const fileStats = await stat(localPath) + const upload = new Upload({ + client: s3Client, + params: { + Bucket: backupS3Config.bucket, + Key: s3Key, + Body: createReadStream(localPath), + ContentLength: fileStats.size, + }, + partSize: 64 * 1024 * 1024, + leavePartsOnError: false, + }) + + await upload.done() + + await updateBackupRecord(pool, recordId, { + status: "completed", + sizeBytes: String(fileStats.size), + completedAt: new Date(), + }) + + const backupConfig = await getBackupConfig(pool) + await cleanupExpiredBackups(pool, s3Client, backupS3Config, backupConfig.retentionDays) + await scheduleNextBackup(helpers, backupConfig) + + logger.info({ + msg: "database backup completed", + backupId: recordId, + filename, + s3Key, + sizeBytes: fileStats.size, + }) + } catch (error) { + const errorMessage = error instanceof Error ? error.message : String(error) + + await updateBackupRecord(pool, recordId, { + status: "failed", + error: errorMessage, + completedAt: new Date(), + }) + + logger.error({ + msg: "database backup failed", + backupId: recordId, + error: errorMessage, + }) + + if (sentryEnabled && error instanceof Error) { + Sentry.captureException(error) + await Sentry.flush(5000) + } + + throw error + } finally { + await unlink(localPath).catch(() => undefined) + s3Client.destroy() + await pool.end() + } +} diff --git a/packages/db/src/public.ts b/packages/db/src/public.ts index d88f04c7c5..f8dc726786 100644 --- a/packages/db/src/public.ts +++ b/packages/db/src/public.ts @@ -19,6 +19,9 @@ export * from "./public/AutomationRun" export * from "./public/AutomationRuns" export * from "./public/Automations" export * from "./public/AutomationTriggers" +export * from "./public/BackupConfig" +export * from "./public/BackupRecords" +export * from "./public/BackupStatus" export * from "./public/Capabilities" export * from "./public/Communities" export * from "./public/CommunityMemberships" diff --git a/packages/db/src/public/BackupConfig.ts b/packages/db/src/public/BackupConfig.ts new file mode 100644 index 0000000000..3ad1bd58c7 --- /dev/null +++ b/packages/db/src/public/BackupConfig.ts @@ -0,0 +1,59 @@ +// @generated +// This file is automatically generated by Kanel. Do not modify manually. + +import type { ColumnType, Insertable, Selectable, Updateable } from "kysely" + +import { z } from "zod" + +/** Identifier type for public.backup_config */ +export type BackupConfigId = string & { __brand: "BackupConfigId" } + +/** Represents the table public.backup_config */ +export interface BackupConfigTable { + id: ColumnType + + enabled: ColumnType + + intervalHours: ColumnType + + retentionDays: ColumnType + + createdAt: ColumnType + + updatedAt: ColumnType +} + +export type BackupConfig = Selectable + +export type NewBackupConfig = Insertable + +export type BackupConfigUpdate = Updateable + +export const backupConfigIdSchema = z.string().uuid() as unknown as z.Schema + +export const backupConfigSchema = z.object({ + id: backupConfigIdSchema, + enabled: z.boolean(), + intervalHours: z.number(), + retentionDays: z.number(), + createdAt: z.date(), + updatedAt: z.date(), +}) + +export const backupConfigInitializerSchema = z.object({ + id: backupConfigIdSchema.optional(), + enabled: z.boolean().optional(), + intervalHours: z.number().optional(), + retentionDays: z.number().optional(), + createdAt: z.date().optional(), + updatedAt: z.date().optional(), +}) + +export const backupConfigMutatorSchema = z.object({ + id: backupConfigIdSchema.optional(), + enabled: z.boolean().optional(), + intervalHours: z.number().optional(), + retentionDays: z.number().optional(), + createdAt: z.date().optional(), + updatedAt: z.date().optional(), +}) diff --git a/packages/db/src/public/BackupRecords.ts b/packages/db/src/public/BackupRecords.ts new file mode 100644 index 0000000000..91ed692982 --- /dev/null +++ b/packages/db/src/public/BackupRecords.ts @@ -0,0 +1,81 @@ +// @generated +// This file is automatically generated by Kanel. Do not modify manually. + +import type { ColumnType, Insertable, Selectable, Updateable } from "kysely" + +import { z } from "zod" + +import { type BackupStatus, backupStatusSchema } from "./BackupStatus" + +/** Identifier type for public.backup_records */ +export type BackupRecordsId = string & { __brand: "BackupRecordsId" } + +/** Represents the table public.backup_records */ +export interface BackupRecordsTable { + id: ColumnType + + filename: ColumnType + + s3Key: ColumnType + + sizeBytes: ColumnType + + status: ColumnType + + error: ColumnType + + startedAt: ColumnType + + completedAt: ColumnType + + createdAt: ColumnType + + updatedAt: ColumnType +} + +export type BackupRecords = Selectable + +export type NewBackupRecords = Insertable + +export type BackupRecordsUpdate = Updateable + +export const backupRecordsIdSchema = z.string().uuid() as unknown as z.Schema + +export const backupRecordsSchema = z.object({ + id: backupRecordsIdSchema, + filename: z.string(), + s3Key: z.string(), + sizeBytes: z.string().nullable(), + status: backupStatusSchema, + error: z.string().nullable(), + startedAt: z.date().nullable(), + completedAt: z.date().nullable(), + createdAt: z.date(), + updatedAt: z.date(), +}) + +export const backupRecordsInitializerSchema = z.object({ + id: backupRecordsIdSchema.optional(), + filename: z.string(), + s3Key: z.string(), + sizeBytes: z.string().optional().nullable(), + status: backupStatusSchema.optional(), + error: z.string().optional().nullable(), + startedAt: z.date().optional().nullable(), + completedAt: z.date().optional().nullable(), + createdAt: z.date().optional(), + updatedAt: z.date().optional(), +}) + +export const backupRecordsMutatorSchema = z.object({ + id: backupRecordsIdSchema.optional(), + filename: z.string().optional(), + s3Key: z.string().optional(), + sizeBytes: z.string().optional().nullable(), + status: backupStatusSchema.optional(), + error: z.string().optional().nullable(), + startedAt: z.date().optional().nullable(), + completedAt: z.date().optional().nullable(), + createdAt: z.date().optional(), + updatedAt: z.date().optional(), +}) diff --git a/packages/db/src/public/BackupStatus.ts b/packages/db/src/public/BackupStatus.ts new file mode 100644 index 0000000000..746bf81cc4 --- /dev/null +++ b/packages/db/src/public/BackupStatus.ts @@ -0,0 +1,15 @@ +// @generated +// This file is automatically generated by Kanel. Do not modify manually. + +import { z } from "zod" + +/** Represents the enum public.BackupStatus */ +export enum BackupStatus { + pending = "pending", + in_progress = "in_progress", + completed = "completed", + failed = "failed", +} + +/** Zod schema for BackupStatus */ +export const backupStatusSchema = z.nativeEnum(BackupStatus) diff --git a/packages/db/src/public/PublicSchema.ts b/packages/db/src/public/PublicSchema.ts index e257809c3f..77a47547af 100644 --- a/packages/db/src/public/PublicSchema.ts +++ b/packages/db/src/public/PublicSchema.ts @@ -13,6 +13,8 @@ import type { AutomationConditionsTable } from "./AutomationConditions" import type { AutomationRunsTable } from "./AutomationRuns" import type { AutomationsTable } from "./Automations" import type { AutomationTriggersTable } from "./AutomationTriggers" +import type { BackupConfigTable } from "./BackupConfig" +import type { BackupRecordsTable } from "./BackupRecords" import type { CommunitiesTable } from "./Communities" import type { CommunityMembershipsTable } from "./CommunityMemberships" import type { FormElementsTable } from "./FormElements" @@ -77,6 +79,10 @@ export interface PublicSchema { automations: AutomationsTable + backup_config: BackupConfigTable + + backup_records: BackupRecordsTable + communities: CommunitiesTable community_memberships: CommunityMembershipsTable diff --git a/packages/db/src/table-names.ts b/packages/db/src/table-names.ts index 7dee881561..b4a2523255 100644 --- a/packages/db/src/table-names.ts +++ b/packages/db/src/table-names.ts @@ -20,6 +20,8 @@ export const databaseTableNames = [ "automation_runs", "automation_triggers", "automations", + "backup_config", + "backup_records", "communities", "community_memberships", "form_elements", @@ -1173,6 +1175,148 @@ export const databaseTables = [ }, ], }, + { + name: "backup_config", + isView: false, + schema: "public", + columns: [ + { + name: "id", + dataType: "text", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "enabled", + dataType: "bool", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "intervalHours", + dataType: "int4", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "retentionDays", + dataType: "int4", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "createdAt", + dataType: "timestamp", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "updatedAt", + dataType: "timestamp", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + ], + }, + { + name: "backup_records", + isView: false, + schema: "public", + columns: [ + { + name: "id", + dataType: "text", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "filename", + dataType: "text", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: false, + }, + { + name: "s3Key", + dataType: "text", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: false, + }, + { + name: "sizeBytes", + dataType: "int8", + dataTypeSchema: "pg_catalog", + isNullable: true, + isAutoIncrementing: false, + hasDefaultValue: false, + }, + { + name: "status", + dataType: "BackupStatus", + dataTypeSchema: "public", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "error", + dataType: "text", + dataTypeSchema: "pg_catalog", + isNullable: true, + isAutoIncrementing: false, + hasDefaultValue: false, + }, + { + name: "startedAt", + dataType: "timestamp", + dataTypeSchema: "pg_catalog", + isNullable: true, + isAutoIncrementing: false, + hasDefaultValue: false, + }, + { + name: "completedAt", + dataType: "timestamp", + dataTypeSchema: "pg_catalog", + isNullable: true, + isAutoIncrementing: false, + hasDefaultValue: false, + }, + { + name: "createdAt", + dataType: "timestamp", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + { + name: "updatedAt", + dataType: "timestamp", + dataTypeSchema: "pg_catalog", + isNullable: false, + isAutoIncrementing: false, + hasDefaultValue: true, + }, + ], + }, { name: "communities", isView: false, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 44d72c2dbd..41adaae325 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,7 +56,7 @@ catalogs: version: 20.19.11 '@typescript/native-preview': specifier: latest - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 '@vitejs/plugin-react': specifier: ^4.5.0 version: 4.7.0 @@ -152,6 +152,7 @@ overrides: tailwindcss@3>sucrase: ^3.35.1 importers: + .: devDependencies: '@babel/core': @@ -645,7 +646,7 @@ importers: version: 9.0.8 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 '@vitejs/plugin-react': specifier: 'catalog:' version: 4.7.0(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) @@ -729,13 +730,13 @@ importers: dependencies: next: specifier: 'catalog:' - version: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nextra: specifier: ^4.3.0 - version: 4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) + version: 4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) nextra-theme-docs: specifier: ^4.3.0 - version: 4.3.0(@types/react@19.1.10)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)) + version: 4.3.0(@types/react@19.1.10)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)) pagefind: specifier: ^1.3.0 version: 1.3.0 @@ -760,7 +761,7 @@ importers: version: 19.1.7(@types/react@19.1.10) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 autoprefixer: specifier: 'catalog:' version: 10.4.21(postcss@8.5.6) @@ -785,12 +786,21 @@ importers: jobs: dependencies: + '@aws-sdk/client-s3': + specifier: ^3.1038.0 + version: 3.1038.0 + '@aws-sdk/lib-storage': + specifier: ^3.1038.0 + version: 3.1038.0(@aws-sdk/client-s3@3.1038.0) '@honeycombio/opentelemetry-node': specifier: 'catalog:' version: 0.6.1 '@opentelemetry/auto-instrumentations-node': specifier: 'catalog:' - version: 0.53.0(@opentelemetry/api@1.9.0) + version: 0.53.0(@opentelemetry/api@1.9.1) + '@sentry/node': + specifier: ^10.50.0 + version: 10.50.0 '@ts-rest/core': specifier: 'catalog:' version: 3.51.0(@types/node@20.19.11)(zod@3.25.76) @@ -827,7 +837,7 @@ importers: version: 8.15.5 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 dotenv-cli: specifier: ^7.4.4 version: 7.4.4 @@ -848,7 +858,7 @@ importers: version: 2.1.1 next: specifier: 'catalog:' - version: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: specifier: catalog:react19 version: 19.2.3 @@ -870,7 +880,7 @@ importers: version: 19.1.7(@types/react@19.1.10) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260209.1 + version: 7.0.0-dev.20260428.1 tsconfig: specifier: workspace:* version: link:../config/tsconfig @@ -1126,7 +1136,7 @@ importers: version: 9.0.8 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 '@uiw/react-json-view': specifier: 2.0.0-alpha.27 version: 2.0.0-alpha.27(@babel/runtime@7.28.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1175,7 +1185,7 @@ importers: version: 3.51.0(@types/node@20.19.11)(zod@3.25.76) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1209,7 +1219,7 @@ importers: version: 8.15.5 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 dotenv-cli: specifier: ^7.4.4 version: 7.4.4 @@ -1245,7 +1255,7 @@ importers: version: 0.0.31(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 browserslist: specifier: ^4.25.3 version: 4.25.3 @@ -1257,7 +1267,7 @@ importers: version: 19.2.3 react-email: specifier: 3.0.4 - version: 3.0.4(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 3.0.4(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1289,7 +1299,7 @@ importers: version: 2.2.0 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1311,7 +1321,7 @@ importers: version: 20.19.11 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1336,7 +1346,7 @@ importers: devDependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 react: specifier: catalog:react19 version: 19.2.3 @@ -1519,13 +1529,13 @@ importers: version: 0.55.1 next: specifier: 'catalog:' - version: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + version: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-themes: specifier: ^0.4.6 version: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) nuqs: specifier: 'catalog:' - version: 2.4.3(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) + version: 2.4.3(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3) react-colorful: specifier: ^5.6.1 version: 5.6.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1562,7 +1572,7 @@ importers: version: 19.1.10 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 react: specifier: catalog:react19 version: 19.2.3 @@ -1587,7 +1597,7 @@ importers: devDependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260119.1 + version: 7.0.0-dev.20260428.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1669,342 +1679,326 @@ importers: version: 13.1.3 packages: + '@adobe/css-tools@4.4.4': - resolution: - { - integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==, - } + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} '@alloc/quick-lru@5.2.0': - resolution: - { - integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} + engines: {node: '>=10'} '@ampproject/remapping@2.3.0': - resolution: - { - integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} + engines: {node: '>=6.0.0'} '@anatine/zod-openapi@1.14.2': - resolution: - { - integrity: sha512-q0qHfnuNYVKu0Swrnnvfj9971AEyW7c8v9jCOZGCl5ZbyGMNG4RPyJkRcMi/JC8CRfdOe0IDfNm1nNsi2avprg==, - } + resolution: {integrity: sha512-q0qHfnuNYVKu0Swrnnvfj9971AEyW7c8v9jCOZGCl5ZbyGMNG4RPyJkRcMi/JC8CRfdOe0IDfNm1nNsi2avprg==} peerDependencies: openapi3-ts: ^2.0.0 || ^3.0.0 zod: ^3.20.0 '@antfu/install-pkg@1.1.0': - resolution: - { - integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==, - } + resolution: {integrity: sha512-MGQsmw10ZyI+EJo45CdSER4zEb+p31LpDAFp2Z3gkSd1yqVZGi0Ebx++YTEMonJy4oChEMLsxZ64j8FH6sSqtQ==} '@antfu/ni@0.21.4': - resolution: - { - integrity: sha512-O0Uv9LbLDSoEg26fnMDdDRiPwFJnQSoD4WnrflDwKCJm8Cx/0mV4cGxwBLXan5mGIrpK4Dd7vizf4rQm0QCEAA==, - } + resolution: {integrity: sha512-O0Uv9LbLDSoEg26fnMDdDRiPwFJnQSoD4WnrflDwKCJm8Cx/0mV4cGxwBLXan5mGIrpK4Dd7vizf4rQm0QCEAA==} hasBin: true '@antfu/utils@8.1.1': - resolution: - { - integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==, - } + resolution: {integrity: sha512-Mex9nXf9vR6AhcXmMrlz/HVgYYZpVGJ6YlPgwl7UnaFpnshXs6EK/oa5Gpf3CzENMjkvEx2tQtntGnb7UtSTOQ==} '@asamuzakjp/css-color@3.2.0': - resolution: - { - integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==, - } + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} '@aws-crypto/crc32@5.2.0': - resolution: - { - integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-nLbCWqQNgUiwwtFsen1AdzAtvuLRsQS8rYgMuxCrdKf9kOssamGLuPwyTY9wyYblNr9+1XM8v6zoDTPPSIeANg==} + engines: {node: '>=16.0.0'} '@aws-crypto/crc32c@5.2.0': - resolution: - { - integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==, - } + resolution: {integrity: sha512-+iWb8qaHLYKrNvGRbiYRHSdKRWhto5XlZUEBwDjYNf+ly5SVYG6zEoYIdxvf5R3zyeP16w4PLBn3rH1xc74Rag==} '@aws-crypto/sha1-browser@5.2.0': - resolution: - { - integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==, - } + resolution: {integrity: sha512-OH6lveCFfcDjX4dbAvCFSYUjJZjDr/3XJ3xHtjn3Oj5b9RjojQo8npoLeA/bNwkOkrSQ0wgrHzXk4tDRxGKJeg==} '@aws-crypto/sha256-browser@5.2.0': - resolution: - { - integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==, - } + resolution: {integrity: sha512-AXfN/lGotSQwu6HNcEsIASo7kWXZ5HYWvfOmSNKDsEqC4OashTp8alTmaz+F7TC2L083SFv5RdB+qU3Vs1kZqw==} '@aws-crypto/sha256-js@5.2.0': - resolution: - { - integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-FFQQyu7edu4ufvIZ+OadFpHHOt+eSTBaYaki44c+akjg7qZg9oOQeLlk77F6tSYqjDAFClrHJk9tMf0HdVyOvA==} + engines: {node: '>=16.0.0'} '@aws-crypto/supports-web-crypto@5.2.0': - resolution: - { - integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==, - } + resolution: {integrity: sha512-iAvUotm021kM33eCdNfwIN//F77/IADDSs58i+MDaOqFrVjZo9bAal0NK7HurRuWLLpF1iLX7gbWrjHjeo+YFg==} '@aws-crypto/util@5.2.0': - resolution: - { - integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==, - } + resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} + + '@aws-sdk/client-s3@3.1038.0': + resolution: {integrity: sha512-k60qm50bWkaqNfCJe1z28WaqgpztE0wbWVMZw6ZJcTOGfrWFhsJeLCEqtkH8w00iEozKx9GQwdQXz4G0sMGdKA==} + engines: {node: '>=20.0.0'} '@aws-sdk/client-s3@3.864.0': - resolution: - { - integrity: sha512-QGYi9bWliewxumsvbJLLyx9WC0a4DP4F+utygBcq0zwPxaM0xDfBspQvP1dsepi7mW5aAjZmJ2+Xb7X0EhzJ/g==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-QGYi9bWliewxumsvbJLLyx9WC0a4DP4F+utygBcq0zwPxaM0xDfBspQvP1dsepi7mW5aAjZmJ2+Xb7X0EhzJ/g==} + engines: {node: '>=18.0.0'} '@aws-sdk/client-ses@3.864.0': - resolution: - { - integrity: sha512-cmsOrJZsrNa892gD2cAsbVkweDulgmC8PE38cz//bM//1BW/R1MMFClapF+Q9gACtsRVTRBXNtsIsBq8Gm1Urw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-cmsOrJZsrNa892gD2cAsbVkweDulgmC8PE38cz//bM//1BW/R1MMFClapF+Q9gACtsRVTRBXNtsIsBq8Gm1Urw==} + engines: {node: '>=18.0.0'} '@aws-sdk/client-sso@3.864.0': - resolution: - { - integrity: sha512-THiOp0OpQROEKZ6IdDCDNNh3qnNn/kFFaTSOiugDpgcE5QdsOxh1/RXq7LmHpTJum3cmnFf8jG59PHcz9Tjnlw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-THiOp0OpQROEKZ6IdDCDNNh3qnNn/kFFaTSOiugDpgcE5QdsOxh1/RXq7LmHpTJum3cmnFf8jG59PHcz9Tjnlw==} + engines: {node: '>=18.0.0'} '@aws-sdk/core@3.864.0': - resolution: - { - integrity: sha512-LFUREbobleHEln+Zf7IG83lAZwvHZG0stI7UU0CtwyuhQy5Yx0rKksHNOCmlM7MpTEbSCfntEhYi3jUaY5e5lg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-LFUREbobleHEln+Zf7IG83lAZwvHZG0stI7UU0CtwyuhQy5Yx0rKksHNOCmlM7MpTEbSCfntEhYi3jUaY5e5lg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/core@3.974.6': + resolution: {integrity: sha512-8Vu7zGxu+39ChR/s5J7nXBw3a2kMHAi0OfKT8ohgTVjX0qYed/8mIfdBb638oBmKrWCwwKjYAM5J/4gMJ8nAJA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/crc64-nvme@3.972.7': + resolution: {integrity: sha512-QUagVVBbC8gODCF6e1aV0mE2TXWB9Opz4k8EJFdNrujUVQm5R4AjJa1mpOqzwOuROBzqJU9zawzig7M96L8Ejg==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-env@3.864.0': - resolution: - { - integrity: sha512-StJPOI2Rt8UE6lYjXUpg6tqSZaM72xg46ljPg8kIevtBAAfdtq9K20qT/kSliWGIBocMFAv0g2mC0hAa+ECyvg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-StJPOI2Rt8UE6lYjXUpg6tqSZaM72xg46ljPg8kIevtBAAfdtq9K20qT/kSliWGIBocMFAv0g2mC0hAa+ECyvg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-env@3.972.32': + resolution: {integrity: sha512-7vA4GHg8NSmQxquJHSBcSM3RgB4ZaaRi6u4+zGFKOmOH6aqlgr2Sda46clkZDYzlirgfY96w15Zj0jh6PT48ng==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-http@3.864.0': - resolution: - { - integrity: sha512-E/RFVxGTuGnuD+9pFPH2j4l6HvrXzPhmpL8H8nOoJUosjx7d4v93GJMbbl1v/fkDLqW9qN4Jx2cI6PAjohA6OA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-E/RFVxGTuGnuD+9pFPH2j4l6HvrXzPhmpL8H8nOoJUosjx7d4v93GJMbbl1v/fkDLqW9qN4Jx2cI6PAjohA6OA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-http@3.972.34': + resolution: {integrity: sha512-vBrhWujFCLp1u8ptJRWYlipMutzPptb8pDQ00rKVH9q67T7rGd3VTWIj63aKrlLuY6qSsw1Rt5F/D/7wnNgryA==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-ini@3.864.0': - resolution: - { - integrity: sha512-PlxrijguR1gxyPd5EYam6OfWLarj2MJGf07DvCx9MAuQkw77HBnsu6+XbV8fQriFuoJVTBLn9ROhMr/ROAYfUg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-PlxrijguR1gxyPd5EYam6OfWLarj2MJGf07DvCx9MAuQkw77HBnsu6+XbV8fQriFuoJVTBLn9ROhMr/ROAYfUg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-ini@3.972.36': + resolution: {integrity: sha512-FBHyCmV8EB0gUvh1d+CZm87zt2PrdC7OyWexLRoH3I5zWSOUGa+9t58Y5jbxRfwUp3AWpHAFvKY6YzgR845sVA==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/credential-provider-login@3.972.36': + resolution: {integrity: sha512-IFap01lJKxQc0C/OHmZwZQr/cKq0DhrcmKedRrdnnl42D+P0SImnnnWQjv07uIPqpEdtqmkPXb9TiPYTU+prxQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-node@3.864.0': - resolution: - { - integrity: sha512-2BEymFeXURS+4jE9tP3vahPwbYRl0/1MVaFZcijj6pq+nf5EPGvkFillbdBRdc98ZI2NedZgSKu3gfZXgYdUhQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-2BEymFeXURS+4jE9tP3vahPwbYRl0/1MVaFZcijj6pq+nf5EPGvkFillbdBRdc98ZI2NedZgSKu3gfZXgYdUhQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-node@3.972.37': + resolution: {integrity: sha512-/WFixFAAiw8WpmjZcI0l4t3DerXLmVinOIfuotmRZnu2qmsFPoqqmstASz0z8bi1pGdFXzeLzf6bwucM3mZcUQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-process@3.864.0': - resolution: - { - integrity: sha512-Zxnn1hxhq7EOqXhVYgkF4rI9MnaO3+6bSg/tErnBQ3F8kDpA7CFU24G1YxwaJXp2X4aX3LwthefmSJHwcVP/2g==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Zxnn1hxhq7EOqXhVYgkF4rI9MnaO3+6bSg/tErnBQ3F8kDpA7CFU24G1YxwaJXp2X4aX3LwthefmSJHwcVP/2g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-process@3.972.32': + resolution: {integrity: sha512-uZp4tlGbpczV8QxmtIwOpSkcyGtBRR8/T4BAumRKfAt1nwCig3FSCZvrKl6ARDIDVRYn5p2oRcAsfFR01EgMGA==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-sso@3.864.0': - resolution: - { - integrity: sha512-UPyPNQbxDwHVGmgWdGg9/9yvzuedRQVF5jtMkmP565YX9pKZ8wYAcXhcYdNPWFvH0GYdB0crKOmvib+bmCuwkw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-UPyPNQbxDwHVGmgWdGg9/9yvzuedRQVF5jtMkmP565YX9pKZ8wYAcXhcYdNPWFvH0GYdB0crKOmvib+bmCuwkw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-sso@3.972.36': + resolution: {integrity: sha512-DsLr0UHMyKzRJKe2bjlwU8q1cfoXg8TIJKV/xwvnalAemiZLOZunFzj/whGnFDZIBVLdnbLiwv5SvRf1+CSwkg==} + engines: {node: '>=20.0.0'} '@aws-sdk/credential-provider-web-identity@3.864.0': - resolution: - { - integrity: sha512-nNcjPN4SYg8drLwqK0vgVeSvxeGQiD0FxOaT38mV2H8cu0C5NzpvA+14Xy+W6vT84dxgmJYKk71Cr5QL2Oz+rA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-nNcjPN4SYg8drLwqK0vgVeSvxeGQiD0FxOaT38mV2H8cu0C5NzpvA+14Xy+W6vT84dxgmJYKk71Cr5QL2Oz+rA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/credential-provider-web-identity@3.972.36': + resolution: {integrity: sha512-uzrURO7frJhHQVVNR5zBJcCYeMYflmXcWBK1+MiBym2Dfjh6nXATrMixrmGZi+97Q7ETZ+y/4lUwAy0Nfnznjw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/lib-storage@3.1038.0': + resolution: {integrity: sha512-FEGuFSUL9gNfyWf4KcOgzhLiqQgSSvpML3YPnJbj8k2nSKdgyRznXxg8zd4W+NKoVehtNqXwFBvMXeHyOYlOrg==} + engines: {node: '>=20.0.0'} + peerDependencies: + '@aws-sdk/client-s3': ^3.1038.0 '@aws-sdk/lib-storage@3.864.0': - resolution: - { - integrity: sha512-Me/HlMXXPv3tStPQufdwnYGholY14JmmzCdOjhnG7gnaClBEnroZKcHuQhrgMm+KyfbzCQ2+9YHsULOfFrg7Mw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Me/HlMXXPv3tStPQufdwnYGholY14JmmzCdOjhnG7gnaClBEnroZKcHuQhrgMm+KyfbzCQ2+9YHsULOfFrg7Mw==} + engines: {node: '>=18.0.0'} peerDependencies: '@aws-sdk/client-s3': ^3.864.0 '@aws-sdk/middleware-bucket-endpoint@3.862.0': - resolution: - { - integrity: sha512-Wcsc7VPLjImQw+CP1/YkwyofMs9Ab6dVq96iS8p0zv0C6YTaMjvillkau4zFfrrrTshdzFWKptIFhKK8Zsei1g==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Wcsc7VPLjImQw+CP1/YkwyofMs9Ab6dVq96iS8p0zv0C6YTaMjvillkau4zFfrrrTshdzFWKptIFhKK8Zsei1g==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-bucket-endpoint@3.972.10': + resolution: {integrity: sha512-Vbc2frZH7wXlMNd+ZZSXUEs/l1Sv8Jj4zUnIfwrYF5lwaLdXHZ9xx4U3rjUcaye3HRhFVc+E5DbBxpRAbB16BA==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-expect-continue@3.862.0': - resolution: - { - integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-oG3AaVUJ+26p0ESU4INFn6MmqqiBFZGrebST66Or+YBhteed2rbbFl7mCfjtPWUFgquQlvT1UP19P3LjQKeKpw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-expect-continue@3.972.10': + resolution: {integrity: sha512-2Yn0f1Qiq/DjxYR3wfI3LokXnjOhFM7Ssn4LTdFDIxRMCE6I32MAsVnhPX1cUZsuVA9tiZtwwhlSLAtFGxAZlQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-flexible-checksums@3.864.0': - resolution: - { - integrity: sha512-MvakvzPZi9uyP3YADuIqtk/FAcPFkyYFWVVMf5iFs/rCdk0CUzn02Qf4CSuyhbkS6Y0KrAsMgKR4MgklPU79Wg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-MvakvzPZi9uyP3YADuIqtk/FAcPFkyYFWVVMf5iFs/rCdk0CUzn02Qf4CSuyhbkS6Y0KrAsMgKR4MgklPU79Wg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-flexible-checksums@3.974.14': + resolution: {integrity: sha512-mhTO3amGzYv/DQNbbqZo6UkHquBHlEEVRZwXmjeRqLmy1l9z3xCiFzglPL7n9JpVc2DZc9kjaraAn3JQrueZbw==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-host-header@3.862.0': - resolution: - { - integrity: sha512-jDje8dCFeFHfuCAxMDXBs8hy8q9NCTlyK4ThyyfAj3U4Pixly2mmzY2u7b7AyGhWsjJNx8uhTjlYq5zkQPQCYw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-jDje8dCFeFHfuCAxMDXBs8hy8q9NCTlyK4ThyyfAj3U4Pixly2mmzY2u7b7AyGhWsjJNx8uhTjlYq5zkQPQCYw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-host-header@3.972.10': + resolution: {integrity: sha512-IJSsIMeVQ8MMCPbuh1AbltkFhLBLXn7aejzfX5YKT/VLDHn++Dcz8886tXckE+wQssyPUhaXrJhdakO2VilRhg==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-location-constraint@3.862.0': - resolution: - { - integrity: sha512-MnwLxCw7Cc9OngEH3SHFhrLlDI9WVxaBkp3oTsdY9JE7v8OE38wQ9vtjaRsynjwu0WRtrctSHbpd7h/QVvtjyA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-MnwLxCw7Cc9OngEH3SHFhrLlDI9WVxaBkp3oTsdY9JE7v8OE38wQ9vtjaRsynjwu0WRtrctSHbpd7h/QVvtjyA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-location-constraint@3.972.10': + resolution: {integrity: sha512-rI3NZvJcEvjoD0+0PI0iUAwlPw2IlSlhyvgBK/3WkKJQE/YiKFedd9dMN2lVacdNxPNhxL/jzQaKQdrGtQagjQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-logger@3.862.0': - resolution: - { - integrity: sha512-N/bXSJznNBR/i7Ofmf9+gM6dx/SPBK09ZWLKsW5iQjqKxAKn/2DozlnE54uiEs1saHZWoNDRg69Ww4XYYSlG1Q==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-N/bXSJznNBR/i7Ofmf9+gM6dx/SPBK09ZWLKsW5iQjqKxAKn/2DozlnE54uiEs1saHZWoNDRg69Ww4XYYSlG1Q==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-logger@3.972.10': + resolution: {integrity: sha512-OOuGvvz1Dm20SjZo5oEBePFqxt5nf8AwkNDSyUHvD9/bfNASmstcYxFAHUowy4n6Io7mWUZ04JURZwSBvyQanQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-recursion-detection@3.862.0': - resolution: - { - integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-KVoo3IOzEkTq97YKM4uxZcYFSNnMkhW/qj22csofLegZi5fk90ztUnnaeKfaEJHfHp/tm1Y3uSoOXH45s++kKQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-recursion-detection@3.972.11': + resolution: {integrity: sha512-+zz6f79Kj9V5qFK2P+D8Ehjnw4AhphAlCAsPjUqEcInA9umtSSKMrHbSagEeOIsDNuvVrH98bjRHcyQukTrhaQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-sdk-s3@3.864.0': - resolution: - { - integrity: sha512-GjYPZ6Xnqo17NnC8NIQyvvdzzO7dm+Ks7gpxD/HsbXPmV2aEfuFveJXneGW9e1BheSKFff6FPDWu8Gaj2Iu1yg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-GjYPZ6Xnqo17NnC8NIQyvvdzzO7dm+Ks7gpxD/HsbXPmV2aEfuFveJXneGW9e1BheSKFff6FPDWu8Gaj2Iu1yg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-sdk-s3@3.972.35': + resolution: {integrity: sha512-lLppaNTAz+wNgLdi4FtHzrlwrGF0ODTnBWHBaFg85SKs0eJ+M+tP5ifrA8f/0lNd+Ak3MC1NGC6RavV3ny4HTg==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-ssec@3.862.0': - resolution: - { - integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-72VtP7DZC8lYTE2L3Efx2BrD98oe9WTK8X6hmd3WTLkbIjvgWQWIdjgaFXBs8WevsXkewIctfyA3KEezvL5ggw==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-ssec@3.972.10': + resolution: {integrity: sha512-Gli9A0u8EVVb+5bFDGS/QbSVg28w/wpEidg1ggVcSj65BDTdGR6punsOcVjqdiu1i42WHWo51MCvARPIIz9juw==} + engines: {node: '>=20.0.0'} '@aws-sdk/middleware-user-agent@3.864.0': - resolution: - { - integrity: sha512-wrddonw4EyLNSNBrApzEhpSrDwJiNfjxDm5E+bn8n32BbAojXASH8W8jNpxz/jMgNkkJNxCfyqybGKzBX0OhbQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-wrddonw4EyLNSNBrApzEhpSrDwJiNfjxDm5E+bn8n32BbAojXASH8W8jNpxz/jMgNkkJNxCfyqybGKzBX0OhbQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/middleware-user-agent@3.972.36': + resolution: {integrity: sha512-O2beToxguBvrZFFZ+fFgPbbae8MvyIBjQ6lImee4APHEXXNAD5ZJ2ayLF1mb7rsKw86TM81y5czg82bZncjSjg==} + engines: {node: '>=20.0.0'} '@aws-sdk/nested-clients@3.864.0': - resolution: - { - integrity: sha512-H1C+NjSmz2y8Tbgh7Yy89J20yD/hVyk15hNoZDbCYkXg0M358KS7KVIEYs8E2aPOCr1sK3HBE819D/yvdMgokA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-H1C+NjSmz2y8Tbgh7Yy89J20yD/hVyk15hNoZDbCYkXg0M358KS7KVIEYs8E2aPOCr1sK3HBE819D/yvdMgokA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/nested-clients@3.997.4': + resolution: {integrity: sha512-4Sf+WY1lMJzXlw5MiyCMe/UzdILCwvuaHThbqMXS6dfh9gZy3No360I42RXquOI/ULUOhWy2HCyU0Fp20fQGPQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/region-config-resolver@3.862.0': - resolution: - { - integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-VisR+/HuVFICrBPY+q9novEiE4b3mvDofWqyvmxHcWM7HumTz9ZQSuEtnlB/92GVM3KDUrR9EmBHNRrfXYZkcQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/region-config-resolver@3.972.13': + resolution: {integrity: sha512-CvJ2ZIjK/jVD/lbOpowBVElJyC1YxLTIJ13yM0AEo0t2v7swOzGjSA6lJGH+DwZXQhcjUjoYwc8bVYCX5MDr1A==} + engines: {node: '>=20.0.0'} '@aws-sdk/s3-request-presigner@3.864.0': - resolution: - { - integrity: sha512-IiVFDxabrqTB1A9qZI6IEa3cOgF2eciUG4UX27HzkMY6UXG0EZhnGkgkgHYMt6j2hGAFOvAh0ogv/XxZLg6Zaw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-IiVFDxabrqTB1A9qZI6IEa3cOgF2eciUG4UX27HzkMY6UXG0EZhnGkgkgHYMt6j2hGAFOvAh0ogv/XxZLg6Zaw==} + engines: {node: '>=18.0.0'} '@aws-sdk/signature-v4-multi-region@3.864.0': - resolution: - { - integrity: sha512-w2HIn/WIcUyv1bmyCpRUKHXB5KdFGzyxPkp/YK5g+/FuGdnFFYWGfcO8O+How4jwrZTarBYsAHW9ggoKvwr37w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-w2HIn/WIcUyv1bmyCpRUKHXB5KdFGzyxPkp/YK5g+/FuGdnFFYWGfcO8O+How4jwrZTarBYsAHW9ggoKvwr37w==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/signature-v4-multi-region@3.996.23': + resolution: {integrity: sha512-wBbys3Y53Ikly556vyADurKpYQHXS7Jjaskbz+Ga9PZCz7PB/9f3VdKbDlz7dqIzn+xwz7L/a6TR4iXcOi8IRw==} + engines: {node: '>=20.0.0'} + + '@aws-sdk/token-providers@3.1038.0': + resolution: {integrity: sha512-Qniru+9oGGb/HNK/gGZWbV3jsD0k71ngE7qMQ/x6gYNYLd2EOwHCS6E2E6jfkaqO4i0d+nNKmfRy8bNcshKdGQ==} + engines: {node: '>=20.0.0'} '@aws-sdk/token-providers@3.864.0': - resolution: - { - integrity: sha512-gTc2QHOBo05SCwVA65dUtnJC6QERvFaPiuppGDSxoF7O5AQNK0UR/kMSenwLqN8b5E1oLYvQTv3C1idJLRX0cg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-gTc2QHOBo05SCwVA65dUtnJC6QERvFaPiuppGDSxoF7O5AQNK0UR/kMSenwLqN8b5E1oLYvQTv3C1idJLRX0cg==} + engines: {node: '>=18.0.0'} '@aws-sdk/types@3.862.0': - resolution: - { - integrity: sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/types@3.973.8': + resolution: {integrity: sha512-gjlAdtHMbtR9X5iIhVUvbVcy55KnznpC6bkDUWW9z915bi0ckdUr5cjf16Kp6xq0bP5HBD2xzgbL9F9Quv5vUw==} + engines: {node: '>=20.0.0'} '@aws-sdk/util-arn-parser@3.804.0': - resolution: - { - integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-wmBJqn1DRXnZu3b4EkE6CWnoWMo1ZMvlfkqU5zPz67xx1GMaXlDCchFvKAXMjk4jn/L1O3tKnoFDNsoLV1kgNQ==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-arn-parser@3.972.3': + resolution: {integrity: sha512-HzSD8PMFrvgi2Kserxuff5VitNq2sgf3w9qxmskKDiDTThWfVteJxuCS9JXiPIPtmCrp+7N9asfIaVhBFORllA==} + engines: {node: '>=20.0.0'} '@aws-sdk/util-endpoints@3.862.0': - resolution: - { - integrity: sha512-eCZuScdE9MWWkHGM2BJxm726MCmWk/dlHjOKvkM0sN1zxBellBMw5JohNss1Z8/TUmnW2gb9XHTOiHuGjOdksA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-eCZuScdE9MWWkHGM2BJxm726MCmWk/dlHjOKvkM0sN1zxBellBMw5JohNss1Z8/TUmnW2gb9XHTOiHuGjOdksA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/util-endpoints@3.996.8': + resolution: {integrity: sha512-oOZHcRDihk5iEe5V25NVWg45b3qEA8OpHWVdU/XQh8Zj4heVPAJqWvMphQnU7LkufmUo10EpvFPZuQMiFLJK3g==} + engines: {node: '>=20.0.0'} '@aws-sdk/util-format-url@3.862.0': - resolution: - { - integrity: sha512-4kd2PYUMA/fAnIcVVwBIDCa2KCuUPrS3ELgScLjBaESP0NN+K163m40U5RbzNec/elOcJHR8lEThzzSb7vXH6w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-4kd2PYUMA/fAnIcVVwBIDCa2KCuUPrS3ELgScLjBaESP0NN+K163m40U5RbzNec/elOcJHR8lEThzzSb7vXH6w==} + engines: {node: '>=18.0.0'} '@aws-sdk/util-locate-window@3.804.0': - resolution: - { - integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-zVoRfpmBVPodYlnMjgVjfGoEZagyRF5IPn3Uo6ZvOZp24chnW/FRstH7ESDHDDRga4z3V+ElUQHKpFDXWyBW5A==} + engines: {node: '>=18.0.0'} '@aws-sdk/util-user-agent-browser@3.862.0': - resolution: - { - integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==, - } + resolution: {integrity: sha512-BmPTlm0r9/10MMr5ND9E92r8KMZbq5ltYXYpVcUbAsnB1RJ8ASJuRoLne5F7mB3YMx0FJoOTuSq7LdQM3LgW3Q==} + + '@aws-sdk/util-user-agent-browser@3.972.10': + resolution: {integrity: sha512-FAzqXvfEssGdSIz8ejatan0bOdx1qefBWKF/gWmVBXIP1HkS7v/wjjaqrAGGKvyihrXTXW00/2/1nTJtxpXz7g==} '@aws-sdk/util-user-agent-node@3.864.0': - resolution: - { - integrity: sha512-d+FjUm2eJEpP+FRpVR3z6KzMdx1qwxEYDz8jzNKwxYLBBquaBaP/wfoMtMQKAcbrR7aT9FZVZF7zDgzNxUvQlQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-d+FjUm2eJEpP+FRpVR3z6KzMdx1qwxEYDz8jzNKwxYLBBquaBaP/wfoMtMQKAcbrR7aT9FZVZF7zDgzNxUvQlQ==} + engines: {node: '>=18.0.0'} + peerDependencies: + aws-crt: '>=1.0.0' + peerDependenciesMeta: + aws-crt: + optional: true + + '@aws-sdk/util-user-agent-node@3.973.22': + resolution: {integrity: sha512-YTYqTmOUrwbm1h99Ee4y/mVYpFRl0oSO/amtP5cc1BZZWdaAVWs9zj3TkyRHWvR9aI/ZS8m3mS6awXtYUlWyaw==} + engines: {node: '>=20.0.0'} peerDependencies: aws-crt: '>=1.0.0' peerDependenciesMeta: @@ -2012,1015 +2006,663 @@ packages: optional: true '@aws-sdk/xml-builder@3.862.0': - resolution: - { - integrity: sha512-6Ed0kmC1NMbuFTEgNmamAUU1h5gShgxL1hBVLbEzUa3trX5aJBz1vU4bXaBTvOYUAnOHtiy1Ml4AMStd6hJnFA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-6Ed0kmC1NMbuFTEgNmamAUU1h5gShgxL1hBVLbEzUa3trX5aJBz1vU4bXaBTvOYUAnOHtiy1Ml4AMStd6hJnFA==} + engines: {node: '>=18.0.0'} + + '@aws-sdk/xml-builder@3.972.21': + resolution: {integrity: sha512-qxNiHUtlrsjTeSlrPWiFkWps7uD6YB4eKzg7eLAFH8jbiHTlt0ePNlo2Xu+WlftP38JIcMaIX4jTUjOlE2ySWw==} + engines: {node: '>=20.0.0'} + + '@aws/lambda-invoke-store@0.2.4': + resolution: {integrity: sha512-iY8yvjE0y651BixKNPgmv1WrQc+GZ142sb0z4gYnChDDY2YqI4P/jsSopBWrKfAt7LOJAkOXt7rC/hms+WclQQ==} + engines: {node: '>=18.0.0'} '@babel/code-frame@7.27.1': - resolution: - { - integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} + engines: {node: '>=6.9.0'} '@babel/compat-data@7.28.0': - resolution: - { - integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==} + engines: {node: '>=6.9.0'} '@babel/core@7.24.5': - resolution: - { - integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA==} + engines: {node: '>=6.9.0'} '@babel/core@7.28.3': - resolution: - { - integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==} + engines: {node: '>=6.9.0'} '@babel/generator@7.28.3': - resolution: - { - integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} + engines: {node: '>=6.9.0'} '@babel/helper-annotate-as-pure@7.27.3': - resolution: - { - integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==} + engines: {node: '>=6.9.0'} '@babel/helper-compilation-targets@7.27.2': - resolution: - { - integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} + engines: {node: '>=6.9.0'} '@babel/helper-create-class-features-plugin@7.28.3': - resolution: - { - integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-V9f6ZFIYSLNEbuGA/92uOvYsGCJNsuA8ESZ4ldc09bWk/j8H8TKiPw8Mk1eG6olpnO0ALHJmYfZvF4MEE4gajg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-create-regexp-features-plugin@7.27.1': - resolution: - { - integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-uVDC72XVf8UbrH5qQTc18Agb8emwjTiZrQE11Nv3CuBEZmVvTwwE9CBUEvHku06gQCAyYf8Nv6ja1IN+6LMbxQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-define-polyfill-provider@0.6.5': - resolution: - { - integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==, - } + resolution: {integrity: sha512-uJnGFcPsWQK8fvjgGP5LZUZZsYGIoPeRjSF5PGwrelYgq7Q15/Ft9NGFp1zglwgIv//W0uG4BevRuSJRyylZPg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 '@babel/helper-globals@7.28.0': - resolution: - { - integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} + engines: {node: '>=6.9.0'} '@babel/helper-member-expression-to-functions@7.27.1': - resolution: - { - integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-E5chM8eWjTp/aNoVpcbfM7mLxu9XGLWYise2eBKGQomAk/Mb4XoxyqXTZbuTohbsl8EKqdlMhnDI2CCLfcs9wA==} + engines: {node: '>=6.9.0'} '@babel/helper-module-imports@7.27.1': - resolution: - { - integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} + engines: {node: '>=6.9.0'} '@babel/helper-module-transforms@7.28.3': - resolution: - { - integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-optimise-call-expression@7.27.1': - resolution: - { - integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==} + engines: {node: '>=6.9.0'} '@babel/helper-plugin-utils@7.27.1': - resolution: - { - integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} + engines: {node: '>=6.9.0'} '@babel/helper-remap-async-to-generator@7.27.1': - resolution: - { - integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7fiA521aVw8lSPeI4ZOD3vRFkoqkJcS+z4hFo82bFSH/2tNd6eJ5qCVMS5OzDmZh/kaHQeBaeyxK6wljcPtveA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-replace-supers@7.27.1': - resolution: - { - integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/helper-skip-transparent-expression-wrappers@7.27.1': - resolution: - { - integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==} + engines: {node: '>=6.9.0'} '@babel/helper-string-parser@7.27.1': - resolution: - { - integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-identifier@7.27.1': - resolution: - { - integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} + engines: {node: '>=6.9.0'} '@babel/helper-validator-option@7.27.1': - resolution: - { - integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} + engines: {node: '>=6.9.0'} '@babel/helper-wrap-function@7.28.3': - resolution: - { - integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zdf983tNfLZFletc0RRXYrHrucBEg95NIFMkn6K9dbeMYnsgHaSBGcQqdsCSStG2PYwRre0Qc2NNSCXbG+xc6g==} + engines: {node: '>=6.9.0'} '@babel/helpers@7.28.3': - resolution: - { - integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==} + engines: {node: '>=6.9.0'} '@babel/parser@7.24.5': - resolution: - { - integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-EOv5IK8arwh3LI47dz1b0tKUb/1uhHAnHJOrjgtQMIpu1uXd9mlFrJg9IUgGUgZ41Ch0K8REPTYpO7B76b4vJg==} + engines: {node: '>=6.0.0'} hasBin: true '@babel/parser@7.28.3': - resolution: - { - integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==} + engines: {node: '>=6.0.0'} hasBin: true '@babel/plugin-bugfix-firefox-class-in-computed-class-key@7.27.1': - resolution: - { - integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-QPG3C9cCVRQLxAVwmefEmwdTanECuUBMQZ/ym5kiw3XKCGA7qkuQLcjWWHcrD/GKbn/WmJwaezfuuAOcyKlRPA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-class-field-initializer-scope@7.27.1': - resolution: - { - integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-qNeq3bCKnGgLkEXUuFry6dPlGfCdQNZbn7yUAPCInwAJHMU7THJfrBSozkcWq5sNM6RcF3S8XyQL2A52KNR9IA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@7.27.1': - resolution: - { - integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-g4L7OYun04N1WyqMNjldFwlfPCLVkgB54A/YCXICZYBsvJJE3kByKv9c9+R/nAfmIfjl2rKYLNyMHboYbZaWaA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@7.27.1': - resolution: - { - integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oO02gcONcD5O1iTLi/6frMJBIwWEHceWGSGqrpCmEL8nogiS6J9PBlE48CaK20/Jx1LuRml9aDftLgdjXT8+Cw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.13.0 '@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@7.28.3': - resolution: - { - integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-b6YTX108evsvE4YgWyQ921ZAFFQm3Bn+CA3+ZXlNVnPhx+UfsVURoPjfGAPCjBgrqo30yX/C2nZGX96DxvR9Iw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2': - resolution: - { - integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-async-generators@7.8.4': - resolution: - { - integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==, - } + resolution: {integrity: sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-properties@7.12.13': - resolution: - { - integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==, - } + resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-class-static-block@7.14.5': - resolution: - { - integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-dynamic-import@7.8.3': - resolution: - { - integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==, - } + resolution: {integrity: sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-export-namespace-from@7.8.3': - resolution: - { - integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==, - } + resolution: {integrity: sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-assertions@7.27.1': - resolution: - { - integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-attributes@7.27.1': - resolution: - { - integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-import-meta@7.10.4': - resolution: - { - integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==, - } + resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-json-strings@7.8.3': - resolution: - { - integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==, - } + resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-jsx@7.27.1': - resolution: - { - integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-logical-assignment-operators@7.10.4': - resolution: - { - integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==, - } + resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-nullish-coalescing-operator@7.8.3': - resolution: - { - integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==, - } + resolution: {integrity: sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-numeric-separator@7.10.4': - resolution: - { - integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==, - } + resolution: {integrity: sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-object-rest-spread@7.8.3': - resolution: - { - integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==, - } + resolution: {integrity: sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-catch-binding@7.8.3': - resolution: - { - integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==, - } + resolution: {integrity: sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-optional-chaining@7.8.3': - resolution: - { - integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==, - } + resolution: {integrity: sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-private-property-in-object@7.14.5': - resolution: - { - integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-top-level-await@7.14.5': - resolution: - { - integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-typescript@7.27.1': - resolution: - { - integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-syntax-unicode-sets-regex@7.18.6': - resolution: - { - integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-arrow-functions@7.27.1': - resolution: - { - integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-generator-functions@7.28.0': - resolution: - { - integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BEOdvX4+M765icNPZeidyADIvQ1m1gmunXufXxvRESy/jNNyfovIqUyE7MVgGBjWktCoJlzvFA1To2O4ymIO3Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-async-to-generator@7.27.1': - resolution: - { - integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-NREkZsZVJS4xmTr8qzE5y8AfIPqsdQfRuUiLRTEzb7Qii8iFWCyDKaUV2c0rCuh4ljDZ98ALHP/PetiBV2nddA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoped-functions@7.27.1': - resolution: - { - integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-block-scoping@7.28.0': - resolution: - { - integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-gKKnwjpdx5sER/wl0WN0efUBFzF/56YZO0RJrSYP4CljXnP31ByY7fol89AzomdlLNzI36AvOTmYHsnZTCkq8Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-properties@7.27.1': - resolution: - { - integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-D0VcalChDMtuRvJIu3U/fwWjf8ZMykz5iZsg77Nuj821vCKI3zCyRLwRdWbsuJ/uRwZhZ002QtCqIkwC/ZkvbA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-class-static-block@7.28.3': - resolution: - { - integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LtPXlBbRoc4Njl/oh1CeD/3jC+atytbnf/UqLoqTDcEYGUPj022+rvfkbDYieUrSj3CaV4yHDByPE+T2HwfsJg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.12.0 '@babel/plugin-transform-classes@7.28.3': - resolution: - { - integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-DoEWC5SuxuARF2KdKmGUq3ghfPMO6ZzR12Dnp5gubwbeWJo4dbNWXJPVlwvh4Zlq6Z7YVvL8VFxeSOJgjsx4Sg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-computed-properties@7.27.1': - resolution: - { - integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-destructuring@7.28.0': - resolution: - { - integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-v1nrSMBiKcodhsyJ4Gf+Z0U/yawmJDBOTpEB3mcQY52r9RIyPneGyAS/yM6seP/8I+mWI3elOMtT5dB8GJVs+A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-dotall-regex@7.27.1': - resolution: - { - integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-gEbkDVGRvjj7+T1ivxrfgygpT7GUd4vmODtYpbs0gZATdkX8/iSnOtZSxiZnsgm1YjTgjI6VKBGSJJevkrclzw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-keys@7.27.1': - resolution: - { - integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-MTyJk98sHvSs+cvZ4nOauwTTG1JeonDjSGvGGUNHreGQns+Mpt6WX/dVzWBHgg+dYZhkC4X+zTDfkTU+Vy9y7Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-duplicate-named-capturing-groups-regex@7.27.1': - resolution: - { - integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hkGcueTEzuhB30B3eJCbCYeCaaEQOmQR0AdvzpD4LoN0GXMWzzGSuRrxR2xTnCrvNbVwK9N6/jQ92GSLfiZWoQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-dynamic-import@7.27.1': - resolution: - { - integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-MHzkWQcEmjzzVW9j2q8LGjwGWpG2mjwaaB0BNQwst3FIjqsg8Ct/mIZlvSPJvfi9y2AC8mi/ktxbFVL9pZ1I4A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-exponentiation-operator@7.27.1': - resolution: - { - integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-uspvXnhHvGKf2r4VVtBpeFnuDWsJLQ6MF6lGJLC89jBR1uoVeqM416AZtTuhTezOfgHicpJQmoD5YUakO/YmXQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-export-namespace-from@7.27.1': - resolution: - { - integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-tQvHWSZ3/jH2xuq/vZDy0jNn+ZdXJeM8gHvX4lnJmsc3+50yPlWdZXIc5ay+umX+2/tJIqHqiEqcJvxlmIvRvQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-for-of@7.27.1': - resolution: - { - integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-function-name@7.27.1': - resolution: - { - integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-json-strings@7.27.1': - resolution: - { - integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-6WVLVJiTjqcQauBhn1LkICsR2H+zm62I3h9faTDKt1qP4jn2o72tSvqMwtGFKGTpojce0gJs+76eZ2uCHRZh0Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-literals@7.27.1': - resolution: - { - integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-logical-assignment-operators@7.27.1': - resolution: - { - integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SJvDs5dXxiae4FbSL1aBJlG4wvl594N6YEVVn9e3JGulwioy6z3oPjx/sQBO3Y4NwUu5HNix6KJ3wBZoewcdbw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-member-expression-literals@7.27.1': - resolution: - { - integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-amd@7.27.1': - resolution: - { - integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-iCsytMg/N9/oFq6n+gFTvUYDZQOMK5kEdeYxmxt91fcJGycfxVP9CnrxoliM0oumFERba2i8ZtwRUCMhvP1LnA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-commonjs@7.27.1': - resolution: - { - integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-systemjs@7.27.1': - resolution: - { - integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-w5N1XzsRbc0PQStASMksmUeqECuzKuTJer7kFagK8AXgpCMkeDMO5S+aaFb7A51ZYDF7XI34qsTX+fkHiIm5yA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-modules-umd@7.27.1': - resolution: - { - integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-iQBE/xC5BV1OxJbp6WG7jq9IWiD+xxlZhLrdwpPkTX3ydmXdvoCpyfJN7acaIBZaOqTfr76pgzqBJflNbeRK+w==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-named-capturing-groups-regex@7.27.1': - resolution: - { - integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SstR5JYy8ddZvD6MhV0tM/j16Qds4mIpJTOd1Yu9J9pJjH93bxHECF7pgtc28XvkzTD6Pxcm/0Z73Hvk7kb3Ng==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/plugin-transform-new-target@7.27.1': - resolution: - { - integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-f6PiYeqXQ05lYq3TIfIDu/MtliKUbNwkGApPUvyo6+tc7uaR4cPjPe7DFPr15Uyycg2lZU6btZ575CuQoYh7MQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-nullish-coalescing-operator@7.27.1': - resolution: - { - integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-aGZh6xMo6q9vq1JGcw58lZ1Z0+i0xB2x0XaauNIUXd6O1xXc3RwoWEBlsTQrY4KQ9Jf0s5rgD6SiNkaUdJegTA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-numeric-separator@7.27.1': - resolution: - { - integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-fdPKAcujuvEChxDBJ5c+0BTaS6revLV7CJL08e4m3de8qJfNIuCc2nc7XJYOjBoTMJeqSmwXJ0ypE14RCjLwaw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-rest-spread@7.28.0': - resolution: - { - integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9VNGikXxzu5eCiQjdE4IZn8sb9q7Xsk5EXLDBKUYg1e/Tve8/05+KJEtcxGxAgCY5t/BpKQM+JEL/yT4tvgiUA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-object-super@7.27.1': - resolution: - { - integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-catch-binding@7.27.1': - resolution: - { - integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-txEAEKzYrHEX4xSZN4kJ+OfKXFVSWKB2ZxM9dpcE3wT7smwkNmXo5ORRlVzMVdJbD+Q8ILTgSD7959uj+3Dm3Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-optional-chaining@7.27.1': - resolution: - { - integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-BQmKPPIuc8EkZgNKsv0X4bPmOoayeu4F1YCwx2/CfmDSXDbp7GnzlUH+/ul5VGfRg1AoFPsrIThlEBj2xb4CAg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-parameters@7.27.7': - resolution: - { - integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-methods@7.27.1': - resolution: - { - integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-10FVt+X55AjRAYI9BrdISN9/AQWHqldOeZDUoLyif1Kn05a56xVBXb8ZouL8pZ9jem8QpXaOt8TS7RHUIS+GPA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-private-property-in-object@7.27.1': - resolution: - { - integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-5J+IhqTi1XPa0DXF83jYOaARrX+41gOewWbkPyjMNRDqgOCqdffGh8L3f/Ek5utaEBZExjSAzcyjmV9SSAWObQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-property-literals@7.27.1': - resolution: - { - integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-display-name@7.28.0': - resolution: - { - integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-development@7.27.1': - resolution: - { - integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-ykDdF5yI4f1WrAolLqeF3hmYU12j9ntLQl/AOG1HAS21jxyg1Q0/J/tpREuYLfatGdGmXp/3yS0ZA76kOlVq9Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-self@7.27.1': - resolution: - { - integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx-source@7.27.1': - resolution: - { - integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-jsx@7.27.1': - resolution: - { - integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-react-pure-annotations@7.27.1': - resolution: - { - integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-JfuinvDOsD9FVMTHpzA/pBLisxpv1aSf+OIV8lgH3MuWrks19R27e6a6DipIg4aX1Zm9Wpb04p8wljfKrVSnPA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-regenerator@7.28.3': - resolution: - { - integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-K3/M/a4+ESb5LEldjQb+XSrpY0nF+ZBFlTCbSnKaYAMfD8v33O6PMs4uYnOk19HlcsI8WMu3McdFPTiQHF/1/A==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-reserved-words@7.27.1': - resolution: - { - integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-V2ABPHIJX4kC7HegLkYoDpfg9PVmuWy/i6vUM5eGK22bx4YVFD3M5F0QQnWQoDs6AGsUWTVOopBiMFQgHaSkVw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-shorthand-properties@7.27.1': - resolution: - { - integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-spread@7.27.1': - resolution: - { - integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-sticky-regex@7.27.1': - resolution: - { - integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-lhInBO5bi/Kowe2/aLdBAawijx+q1pQzicSgnkB6dUPc1+RC8QmJHKf2OjvU+NZWitguJHEaEmbV6VWEouT58g==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-template-literals@7.27.1': - resolution: - { - integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typeof-symbol@7.27.1': - resolution: - { - integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-RiSILC+nRJM7FY5srIyc4/fGIwUhyDuuBSdWn4y6yT6gm652DpCHZjIipgn6B7MQ1ITOUnAKWixEUjQRIBIcLw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-typescript@7.28.0': - resolution: - { - integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-4AEiDEBPIZvLQaWlc9liCavE0xRM0dNca41WtBeM3jgFptfUOSG9z0uteLhq6+3rq+WB6jIvUwKDTpXEHPJ2Vg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-escapes@7.27.1': - resolution: - { - integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Ysg4v6AmF26k9vpfFuTZg8HRfVWzsh1kVfowA23y9j/Gu6dOuahdUVhkLqpObp3JIv27MLSii6noRnuKN8H0Mg==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-property-regex@7.27.1': - resolution: - { - integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-uW20S39PnaTImxp39O5qFlHLS9LJEmANjMG7SxIhap8rCHqu0Ik+tLEPX5DKmHn6CsWQ7j3lix2tFOa5YtL12Q==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-regex@7.27.1': - resolution: - { - integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-xvINq24TRojDuyt6JGtHmkVkrfVV3FPT16uytxImLeBZqW3/H52yN+kM1MGuyPkIQxrzKwPHs5U/MP3qKyzkGw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/plugin-transform-unicode-sets-regex@7.27.1': - resolution: - { - integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-EtkOujbc4cgvb0mlpQefi4NTPBzhSIevblFevACNLUspmrALgmEBdL/XfnyyITfd8fKBZrZys92zOWcik7j9Tw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 '@babel/preset-env@7.25.2': - resolution: - { - integrity: sha512-Y2Vkwy3ITW4id9c6KXshVV/x5yCGK7VdJmKkzOzNsDZMojRKfSA/033rRbLqlRozmhRXCejxWHLSJOg/wUHfzw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-Y2Vkwy3ITW4id9c6KXshVV/x5yCGK7VdJmKkzOzNsDZMojRKfSA/033rRbLqlRozmhRXCejxWHLSJOg/wUHfzw==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-modules@0.1.6-no-external-plugins': - resolution: - { - integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==, - } + resolution: {integrity: sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==} peerDependencies: '@babel/core': ^7.0.0-0 || ^8.0.0-0 <8.0.0 '@babel/preset-react@7.27.1': - resolution: - { - integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-oJHWh2gLhU9dW9HHr42q0cI0/iHHXTLGe39qvpAZZzagHy0MzYLCnCVV0symeRvzmjHyVU7mw2K06E6u/JwbhA==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/preset-typescript@7.27.1': - resolution: - { - integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-l7WfQfX0WK4M0v2RudjuQK4u99BS6yLHYEmdtVPP7lKV013zr9DygFuWNlnbvQ9LR+LS0Egz/XAvGx5U9MX0fQ==} + engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 '@babel/runtime-corejs3@7.28.3': - resolution: - { - integrity: sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LKYxD2CIfocUFNREQ1yk+dW+8OH8CRqmgatBZYXb+XhuObO8wsDpEoCNri5bKld9cnj8xukqZjxSX8p1YiRF8Q==} + engines: {node: '>=6.9.0'} '@babel/runtime@7.28.3': - resolution: - { - integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-9uIQ10o0WGdpP6GDhXcdOJPJuDgFtIDtN/9+ArJQ2NAfAmiuhTQdzkaTGR33v43GYS2UrSA0eX2pPPHoFVvpxA==} + engines: {node: '>=6.9.0'} '@babel/template@7.27.2': - resolution: - { - integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} + engines: {node: '>=6.9.0'} '@babel/traverse@7.28.3': - resolution: - { - integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==} + engines: {node: '>=6.9.0'} '@babel/types@7.28.2': - resolution: - { - integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==} + engines: {node: '>=6.9.0'} '@bcoe/v8-coverage@1.0.2': - resolution: - { - integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-6zABk/ECA/QYSCQ1NGiVwwbQerUCZ+TQbp64Q3AgmfNvurHH0j8TtXa1qbShXA6qqkpAj4V5W8pP6mLe1mcMqA==} + engines: {node: '>=18'} '@benrbray/prosemirror-math@1.0.0': - resolution: - { - integrity: sha512-5fPeOKP6SJJ3usXhhf6vnLXGJnfPHPzv0OdsOJlGkCdZvNfCuC6f8fZqgpmnP8vxDKjB8fvSVSmAHTMsaiXc6w==, - } + resolution: {integrity: sha512-5fPeOKP6SJJ3usXhhf6vnLXGJnfPHPzv0OdsOJlGkCdZvNfCuC6f8fZqgpmnP8vxDKjB8fvSVSmAHTMsaiXc6w==} peerDependencies: katex: ^0.16.10 prosemirror-commands: ^1.5.2 @@ -3033,474 +2675,270 @@ packages: prosemirror-view: ^1.33.4 '@biomejs/biome@2.3.6': - resolution: - { - integrity: sha512-oqUhWyU6tae0MFsr/7iLe++QWRg+6jtUhlx9/0GmCWDYFFrK366sBLamNM7D9Y+c7YSynUFKr8lpEp1r6Sk7eA==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-oqUhWyU6tae0MFsr/7iLe++QWRg+6jtUhlx9/0GmCWDYFFrK366sBLamNM7D9Y+c7YSynUFKr8lpEp1r6Sk7eA==} + engines: {node: '>=14.21.3'} hasBin: true '@biomejs/cli-darwin-arm64@2.3.6': - resolution: - { - integrity: sha512-P4JWE5d8UayBxYe197QJwyW4ZHp0B+zvRIGCusOm1WbxmlhpAQA1zEqQuunHgSIzvyEEp4TVxiKGXNFZPg7r9Q==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-P4JWE5d8UayBxYe197QJwyW4ZHp0B+zvRIGCusOm1WbxmlhpAQA1zEqQuunHgSIzvyEEp4TVxiKGXNFZPg7r9Q==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [darwin] '@biomejs/cli-darwin-x64@2.3.6': - resolution: - { - integrity: sha512-I4rTebj+F/L9K93IU7yTFs8nQ6EhaCOivxduRha4w4WEZK80yoZ8OAdR1F33m4yJ/NfUuTUbP/Wjs+vKjlCoWA==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-I4rTebj+F/L9K93IU7yTFs8nQ6EhaCOivxduRha4w4WEZK80yoZ8OAdR1F33m4yJ/NfUuTUbP/Wjs+vKjlCoWA==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [darwin] '@biomejs/cli-linux-arm64-musl@2.3.6': - resolution: - { - integrity: sha512-oK1NpIXIixbJ/4Tcx40cwiieqah6rRUtMGOHDeK2ToT7yUFVEvXUGRKqH0O4hqZ9tW8TcXNZKfgRH6xrsjVtGg==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-oK1NpIXIixbJ/4Tcx40cwiieqah6rRUtMGOHDeK2ToT7yUFVEvXUGRKqH0O4hqZ9tW8TcXNZKfgRH6xrsjVtGg==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] '@biomejs/cli-linux-arm64@2.3.6': - resolution: - { - integrity: sha512-JjYy83eVBnvuINZiqyFO7xx72v8Srh4hsgaacSBCjC22DwM6+ZvnX1/fj8/SBiLuUOfZ8YhU2pfq2Dzakeyg1A==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-JjYy83eVBnvuINZiqyFO7xx72v8Srh4hsgaacSBCjC22DwM6+ZvnX1/fj8/SBiLuUOfZ8YhU2pfq2Dzakeyg1A==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [linux] '@biomejs/cli-linux-x64-musl@2.3.6': - resolution: - { - integrity: sha512-QvxB8GHQeaO4FCtwJpJjCgJkbHBbWxRHUxQlod+xeaYE6gtJdSkYkuxdKAQUZEOIsec+PeaDAhW9xjzYbwmOFA==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-QvxB8GHQeaO4FCtwJpJjCgJkbHBbWxRHUxQlod+xeaYE6gtJdSkYkuxdKAQUZEOIsec+PeaDAhW9xjzYbwmOFA==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] '@biomejs/cli-linux-x64@2.3.6': - resolution: - { - integrity: sha512-ZjPXzy5yN9wusIoX+8Zp4p6cL8r0NzJCXg/4r1KLVveIPXd2jKVlqZ6ZyzEq385WwU3OX5KOwQYLQsOc788waQ==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-ZjPXzy5yN9wusIoX+8Zp4p6cL8r0NzJCXg/4r1KLVveIPXd2jKVlqZ6ZyzEq385WwU3OX5KOwQYLQsOc788waQ==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [linux] '@biomejs/cli-win32-arm64@2.3.6': - resolution: - { - integrity: sha512-YM7hLHpwjdt8R7+O2zS1Vo2cKgqEeptiXB1tWW1rgjN5LlpZovBVKtg7zfwfRrFx3i08aNZThYpTcowpTlczug==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-YM7hLHpwjdt8R7+O2zS1Vo2cKgqEeptiXB1tWW1rgjN5LlpZovBVKtg7zfwfRrFx3i08aNZThYpTcowpTlczug==} + engines: {node: '>=14.21.3'} cpu: [arm64] os: [win32] '@biomejs/cli-win32-x64@2.3.6': - resolution: - { - integrity: sha512-psgNEYgMAobY5h+QHRBVR9xvg2KocFuBKm6axZWB/aD12NWhQjiVFQUjV6wMXhlH4iT0Q9c3yK5JFRiDC/rzHA==, - } - engines: { node: '>=14.21.3' } + resolution: {integrity: sha512-psgNEYgMAobY5h+QHRBVR9xvg2KocFuBKm6axZWB/aD12NWhQjiVFQUjV6wMXhlH4iT0Q9c3yK5JFRiDC/rzHA==} + engines: {node: '>=14.21.3'} cpu: [x64] os: [win32] '@braintree/sanitize-url@7.1.1': - resolution: - { - integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==, - } + resolution: {integrity: sha512-i1L7noDNxtFyL5DmZafWy1wRVhGehQmzZaz1HiN5e7iylJMSZR7ekOV7NsIqa5qBldlLrsKv4HbgFUVlQrz8Mw==} '@bundled-es-modules/cookie@2.0.1': - resolution: - { - integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==, - } + resolution: {integrity: sha512-8o+5fRPLNbjbdGRRmJj3h6Hh1AQJf2dk3qQ/5ZFb+PXkRNiSoMGGUKlsgLfrxneb72axVJyIYji64E2+nNfYyw==} '@bundled-es-modules/statuses@1.0.1': - resolution: - { - integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==, - } + resolution: {integrity: sha512-yn7BklA5acgcBr+7w064fGV+SGIFySjCKpqjcWgBAIfrAkY+4GQTJJHQMeT3V/sgz23VTEVV8TtOmkvJAhFVfg==} '@bundled-es-modules/tough-cookie@0.1.6': - resolution: - { - integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==, - } + resolution: {integrity: sha512-dvMHbL464C0zI+Yqxbz6kZ5TOEp7GLW+pry/RWndAR8MJQAXZ2rPmIs8tziTZjeIyhSNZgZbCePtfSbdWqStJw==} '@chevrotain/cst-dts-gen@11.0.3': - resolution: - { - integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==, - } + resolution: {integrity: sha512-BvIKpRLeS/8UbfxXxgC33xOumsacaeCKAjAeLyOn7Pcp95HiRbrpl14S+9vaZLolnbssPIUuiUd8IvgkRyt6NQ==} '@chevrotain/gast@11.0.3': - resolution: - { - integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==, - } + resolution: {integrity: sha512-+qNfcoNk70PyS/uxmj3li5NiECO+2YKZZQMbmjTqRI3Qchu8Hig/Q9vgkHpI3alNjr7M+a2St5pw5w5F6NL5/Q==} '@chevrotain/regexp-to-ast@11.0.3': - resolution: - { - integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==, - } + resolution: {integrity: sha512-1fMHaBZxLFvWI067AVbGJav1eRY7N8DDvYCTwGBiE/ytKBgP8azTdgyrKyWZ9Mfh09eHWb5PgTSO8wi7U824RA==} '@chevrotain/types@11.0.3': - resolution: - { - integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==, - } + resolution: {integrity: sha512-gsiM3G8b58kZC2HaWR50gu6Y1440cHiJ+i3JUvcp/35JchYejb2+5MVeJK0iKThYpAa/P2PYFV4hoi44HD+aHQ==} '@chevrotain/utils@11.0.3': - resolution: - { - integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==, - } + resolution: {integrity: sha512-YslZMgtJUyuMbZ+aKvfF3x1f5liK4mWNxghFRv7jqRR9C3R3fAOGTTKvxXDa2Y1s9zSbcpuO0cAxDYsc9SrXoQ==} '@chromatic-com/storybook@4.1.1': - resolution: - { - integrity: sha512-+Ib4cHtEjKl/Do+4LyU0U1FhLPbIU2Q/zgbOKHBCV+dTC4T3/vGzPqiGsgkdnZyTsK/zXg96LMPSPC4jjOiapg==, - } - engines: { node: '>=20.0.0', yarn: '>=1.22.18' } + resolution: {integrity: sha512-+Ib4cHtEjKl/Do+4LyU0U1FhLPbIU2Q/zgbOKHBCV+dTC4T3/vGzPqiGsgkdnZyTsK/zXg96LMPSPC4jjOiapg==} + engines: {node: '>=20.0.0', yarn: '>=1.22.18'} peerDependencies: storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 || ^9.2.0-0 || ^10.0.0-0 '@codemirror/autocomplete@6.18.6': - resolution: - { - integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==, - } + resolution: {integrity: sha512-PHHBXFomUs5DF+9tCOM/UoW6XQ4R44lLNNhRaW9PKPTU0D7lIjRg3ElxaJnTwsl/oHiR93WSXDBrekhoUGCPtg==} '@codemirror/commands@6.8.1': - resolution: - { - integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==, - } + resolution: {integrity: sha512-KlGVYufHMQzxbdQONiLyGQDUW0itrLZwq3CcY7xpv9ZLRHqzkBSoteocBHtMCoY7/Ci4xhzSrToIeLg7FxHuaw==} '@codemirror/lang-cpp@6.0.3': - resolution: - { - integrity: sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA==, - } + resolution: {integrity: sha512-URM26M3vunFFn9/sm6rzqrBzDgfWuDixp85uTY49wKudToc2jTHUrKIGGKs+QWND+YLofNNZpxcNGRynFJfvgA==} '@codemirror/lang-css@6.3.1': - resolution: - { - integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==, - } + resolution: {integrity: sha512-kr5fwBGiGtmz6l0LSJIbno9QrifNMUusivHbnA1H6Dmqy4HZFte3UAICix1VuKo0lMPKQr2rqB+0BkKi/S3Ejg==} '@codemirror/lang-html@6.4.9': - resolution: - { - integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==, - } + resolution: {integrity: sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==} '@codemirror/lang-java@6.0.2': - resolution: - { - integrity: sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ==, - } + resolution: {integrity: sha512-m5Nt1mQ/cznJY7tMfQTJchmrjdjQ71IDs+55d1GAa8DGaB8JXWsVCkVT284C3RTASaY43YknrK2X3hPO/J3MOQ==} '@codemirror/lang-javascript@6.2.4': - resolution: - { - integrity: sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==, - } + resolution: {integrity: sha512-0WVmhp1QOqZ4Rt6GlVGwKJN3KW7Xh4H2q8ZZNGZaP6lRdxXJzmjm4FqvmOojVj6khWJHIb9sp7U/72W7xQgqAA==} '@codemirror/lang-json@6.0.2': - resolution: - { - integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==, - } + resolution: {integrity: sha512-x2OtO+AvwEHrEwR0FyyPtfDUiloG3rnVTSZV1W8UteaLL8/MajQd8DpvUb2YVzC+/T18aSDv0H9mu+xw0EStoQ==} '@codemirror/lang-lezer@6.0.2': - resolution: - { - integrity: sha512-mcVAf8lw+sCfSlr2ivMqV8JtNmOQjSXdA1vHKRtoW0OZsz1k6qhF+DX0K2TbWlAThqiGgRkRSZyYzIoEtKB2uQ==, - } + resolution: {integrity: sha512-mcVAf8lw+sCfSlr2ivMqV8JtNmOQjSXdA1vHKRtoW0OZsz1k6qhF+DX0K2TbWlAThqiGgRkRSZyYzIoEtKB2uQ==} '@codemirror/lang-markdown@6.3.4': - resolution: - { - integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==, - } + resolution: {integrity: sha512-fBm0BO03azXnTAsxhONDYHi/qWSI+uSEIpzKM7h/bkIc9fHnFp9y7KTMXKON0teNT97pFhc1a9DQTtWBYEZ7ug==} '@codemirror/lang-php@6.0.2': - resolution: - { - integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==, - } + resolution: {integrity: sha512-ZKy2v1n8Fc8oEXj0Th0PUMXzQJ0AIR6TaZU+PbDHExFwdu+guzOA4jmCHS1Nz4vbFezwD7LyBdDnddSJeScMCA==} '@codemirror/lang-python@6.2.1': - resolution: - { - integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==, - } + resolution: {integrity: sha512-IRjC8RUBhn9mGR9ywecNhB51yePWCGgvHfY1lWN/Mrp3cKuHr0isDKia+9HnvhiWNnMpbGhWrkhuWOc09exRyw==} '@codemirror/lang-rust@6.0.2': - resolution: - { - integrity: sha512-EZaGjCUegtiU7kSMvOfEZpaCReowEf3yNidYu7+vfuGTm9ow4mthAparY5hisJqOHmJowVH3Upu+eJlUji6qqA==, - } + resolution: {integrity: sha512-EZaGjCUegtiU7kSMvOfEZpaCReowEf3yNidYu7+vfuGTm9ow4mthAparY5hisJqOHmJowVH3Upu+eJlUji6qqA==} '@codemirror/lang-sql@6.9.1': - resolution: - { - integrity: sha512-ecSk3gm/mlINcURMcvkCZmXgdzPSq8r/yfCtTB4vgqGGIbBC2IJIAy7GqYTy5pgBEooTVmHP2GZK6Z7h63CDGg==, - } + resolution: {integrity: sha512-ecSk3gm/mlINcURMcvkCZmXgdzPSq8r/yfCtTB4vgqGGIbBC2IJIAy7GqYTy5pgBEooTVmHP2GZK6Z7h63CDGg==} '@codemirror/lang-wast@6.0.2': - resolution: - { - integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==, - } + resolution: {integrity: sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==} '@codemirror/lang-xml@6.1.0': - resolution: - { - integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==, - } + resolution: {integrity: sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==} '@codemirror/language@6.11.3': - resolution: - { - integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==, - } + resolution: {integrity: sha512-9HBM2XnwDj7fnu0551HkGdrUrrqmYq/WC5iv6nbY2WdicXdGbhR/gfbZOH73Aqj4351alY1+aoG9rCNfiwS1RA==} '@codemirror/lint@6.8.5': - resolution: - { - integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==, - } + resolution: {integrity: sha512-s3n3KisH7dx3vsoeGMxsbRAgKe4O1vbrnKBClm99PU0fWxmxsx5rR2PfqQgIt+2MMJBHbiJ5rfIdLYfB9NNvsA==} '@codemirror/search@6.5.11': - resolution: - { - integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==, - } + resolution: {integrity: sha512-KmWepDE6jUdL6n8cAAqIpRmLPBZ5ZKnicE8oGU/s3QrAVID+0VhLFrzUucVKHG5035/BSykhExDL/Xm7dHthiA==} '@codemirror/state@6.5.2': - resolution: - { - integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==, - } + resolution: {integrity: sha512-FVqsPqtPWKVVL3dPSxy8wEF/ymIEuVzF1PK3VbUgrxXpJUSHQWWZz4JMToquRxnkw+36LTamCZG2iua2Ptq0fA==} '@codemirror/view@6.38.1': - resolution: - { - integrity: sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==, - } + resolution: {integrity: sha512-RmTOkE7hRU3OVREqFVITWHz6ocgBjv08GoePscAakgVQfciA3SGCEk7mb9IzwW61cKKmlTpHXG6DUE5Ubx+MGQ==} '@compiled/react@0.11.4': - resolution: - { - integrity: sha512-mtnEUFM7w/5xABWWWj3wW0vjS/cHSg0PAttJC+hOpQ5z5qGZCwk43Gy8Hfjruxvll73igJ5DSMzcAyek6DMKjw==, - } + resolution: {integrity: sha512-mtnEUFM7w/5xABWWWj3wW0vjS/cHSg0PAttJC+hOpQ5z5qGZCwk43Gy8Hfjruxvll73igJ5DSMzcAyek6DMKjw==} peerDependencies: react: '>= 16.12.0' '@cspotcode/source-map-support@0.8.1': - resolution: - { - integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} + engines: {node: '>=12'} '@csstools/color-helpers@5.0.2': - resolution: - { - integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==} + engines: {node: '>=18'} '@csstools/css-calc@2.1.4': - resolution: - { - integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} + engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 '@csstools/css-color-parser@3.0.10': - resolution: - { - integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-TiJ5Ajr6WRd1r8HSiwJvZBiJOqtH86aHpUjq5aEKWHiII2Qfjqd/HCWKPOW8EP4vcspXbHnXrwIDlu5savQipg==} + engines: {node: '>=18'} peerDependencies: '@csstools/css-parser-algorithms': ^3.0.5 '@csstools/css-tokenizer': ^3.0.4 '@csstools/css-parser-algorithms@3.0.5': - resolution: - { - integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} + engines: {node: '>=18'} peerDependencies: '@csstools/css-tokenizer': ^3.0.4 '@csstools/css-tokenizer@3.0.4': - resolution: - { - integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} + engines: {node: '>=18'} '@dagrejs/dagre@1.1.5': - resolution: - { - integrity: sha512-Ghgrh08s12DCL5SeiR6AoyE80mQELTWhJBRmXfFoqDiFkR458vPEdgTbbjA0T+9ETNxUblnD0QW55tfdvi5pjQ==, - } + resolution: {integrity: sha512-Ghgrh08s12DCL5SeiR6AoyE80mQELTWhJBRmXfFoqDiFkR458vPEdgTbbjA0T+9ETNxUblnD0QW55tfdvi5pjQ==} '@dagrejs/graphlib@2.2.4': - resolution: - { - integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==, - } - engines: { node: '>17.0.0' } + resolution: {integrity: sha512-mepCf/e9+SKYy1d02/UkvSy6+6MoyXhVxP8lLDfA7BPE1X1d4dR0sZznmbM8/XVJ1GPM+Svnx7Xj6ZweByWUkw==} + engines: {node: '>17.0.0'} '@date-fns/tz@1.4.1': - resolution: - { - integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==, - } + resolution: {integrity: sha512-P5LUNhtbj6YfI3iJjw5EL9eUAG6OitD0W3fWQcpQjDRc/QIsL0tRNuO1PcDvPccWL1fSTXXdE1ds+l95DV/OFA==} '@dnd-kit/accessibility@3.1.1': - resolution: - { - integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==, - } + resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} peerDependencies: react: '>=16.8.0' '@dnd-kit/core@6.3.1': - resolution: - { - integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==, - } + resolution: {integrity: sha512-xkGBRQQab4RLwgXxoqETICr6S5JlogafbhNsidmrkVv2YRs5MLwpjoF2qpiGjQt8S9AoxtIV603s0GIUpY5eYQ==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' '@dnd-kit/modifiers@7.0.0': - resolution: - { - integrity: sha512-BG/ETy3eBjFap7+zIti53f0PCLGDzNXyTmn6fSdrudORf+OH04MxrW4p5+mPu4mgMk9kM41iYONjc3DOUWTcfg==, - } + resolution: {integrity: sha512-BG/ETy3eBjFap7+zIti53f0PCLGDzNXyTmn6fSdrudORf+OH04MxrW4p5+mPu4mgMk9kM41iYONjc3DOUWTcfg==} peerDependencies: '@dnd-kit/core': ^6.1.0 react: '>=16.8.0' '@dnd-kit/sortable@10.0.0': - resolution: - { - integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==, - } + resolution: {integrity: sha512-+xqhmIIzvAYMGfBYYnbKuNicfSsk4RksY2XdmJhT+HAC01nix6fHCztU68jooFiMUB01Ky3F0FyOvhG/BZrWkg==} peerDependencies: '@dnd-kit/core': ^6.3.0 react: '>=16.8.0' '@dnd-kit/sortable@8.0.0': - resolution: - { - integrity: sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g==, - } + resolution: {integrity: sha512-U3jk5ebVXe1Lr7c2wU7SBZjcWdQP+j7peHJfCspnA81enlu88Mgd7CC8Q+pub9ubP7eKVETzJW+IBAhsqbSu/g==} peerDependencies: '@dnd-kit/core': ^6.1.0 react: '>=16.8.0' '@dnd-kit/utilities@3.2.2': - resolution: - { - integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==, - } + resolution: {integrity: sha512-+MKAJEOfaBe5SmV6t34p80MMKhjvUz0vRrvVJbPT0WElzaOJ/1xs+D+KDv+tD/NE5ujfrChEcshd4fLn0wpiqg==} peerDependencies: react: '>=16.8.0' '@electric-sql/pglite@0.3.7': - resolution: - { - integrity: sha512-5c3mybVrhxu5s47zFZtIGdG8YHkKCBENOmqxnNBjY53ZoDhADY/c5UqBDl159b7qtkzNPtbbb893wL9zi1kAuw==, - } + resolution: {integrity: sha512-5c3mybVrhxu5s47zFZtIGdG8YHkKCBENOmqxnNBjY53ZoDhADY/c5UqBDl159b7qtkzNPtbbb893wL9zi1kAuw==} '@emnapi/core@0.45.0': - resolution: - { - integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==, - } + resolution: {integrity: sha512-DPWjcUDQkCeEM4VnljEOEcXdAD7pp8zSZsgOujk/LGIwCXWbXJngin+MO4zbH429lzeC3WbYLGjE2MaUOwzpyw==} '@emnapi/core@1.4.5': - resolution: - { - integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==, - } + resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==} '@emnapi/runtime@0.45.0': - resolution: - { - integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==, - } + resolution: {integrity: sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==} '@emnapi/runtime@1.4.5': - resolution: - { - integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==, - } + resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==} '@emnapi/wasi-threads@1.0.4': - resolution: - { - integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==, - } + resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==} '@emotion/babel-plugin@11.13.5': - resolution: - { - integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==, - } + resolution: {integrity: sha512-pxHCpT2ex+0q+HH91/zsdHkw/lXd468DIN2zvfvLtPKLLMo6gQj7oLObq8PhkrxOZb/gGCq03S3Z7PDhS8pduQ==} '@emotion/cache@11.14.0': - resolution: - { - integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==, - } + resolution: {integrity: sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==} '@emotion/hash@0.9.2': - resolution: - { - integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==, - } + resolution: {integrity: sha512-MyqliTZGuOm3+5ZRSaaBGP3USLw6+EGykkwZns2EPC5g8jJ4z9OrdZY9apkl3+UP9+sdz76YYkwCKP5gh8iY3g==} '@emotion/is-prop-valid@1.3.1': - resolution: - { - integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==, - } + resolution: {integrity: sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==} '@emotion/memoize@0.9.0': - resolution: - { - integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==, - } + resolution: {integrity: sha512-30FAj7/EoJ5mwVPOWhAyCX+FPfMDrVecJAM+Iw9NRoSl4BBAQeqj4cApHHUXOVvIPgLVDsCFoz/hGD+5QQD1GQ==} '@emotion/react@11.14.0': - resolution: - { - integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==, - } + resolution: {integrity: sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==} peerDependencies: '@types/react': '*' react: '>=16.8.0' @@ -3509,22 +2947,13 @@ packages: optional: true '@emotion/serialize@1.3.3': - resolution: - { - integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==, - } + resolution: {integrity: sha512-EISGqt7sSNWHGI76hC7x1CksiXPahbxEOrC5RjmFRJTqLyEK9/9hZvBbiYn70dw4wuwMKiEMCUlR6ZXTSWQqxA==} '@emotion/sheet@1.4.0': - resolution: - { - integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==, - } + resolution: {integrity: sha512-fTBW9/8r2w3dXWYM4HCB1Rdp8NLibOw2+XELH5m5+AkWiL/KqYX6dc0kKYlaYyKjrQ6ds33MCdMPEwgs2z1rqg==} '@emotion/styled@11.14.1': - resolution: - { - integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==, - } + resolution: {integrity: sha512-qEEJt42DuToa3gurlH4Qqc1kVpNq8wO8cJtDzU46TjlzWjDlsVyevtYCRijVq3SrHsROS+gVQ8Fnea108GnKzw==} peerDependencies: '@emotion/react': ^11.0.0-rc.0 '@types/react': '*' @@ -3534,564 +2963,371 @@ packages: optional: true '@emotion/unitless@0.10.0': - resolution: - { - integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==, - } + resolution: {integrity: sha512-dFoMUuQA20zvtVTuxZww6OHoJYgrzfKM1t52mVySDJnMSEa08ruEvdYQbhvyu6soU+NeLVd3yKfTfT0NeV6qGg==} '@emotion/use-insertion-effect-with-fallbacks@1.2.0': - resolution: - { - integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==, - } + resolution: {integrity: sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==} peerDependencies: react: '>=16.8.0' '@emotion/utils@1.4.2': - resolution: - { - integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==, - } + resolution: {integrity: sha512-3vLclRofFziIa3J2wDh9jjbkUz9qk5Vi3IZ/FSTKViB0k+ef0fPV7dYrUIugbgupYDx7v9ud/SjrtEP8Y4xLoA==} '@emotion/weak-memoize@0.4.0': - resolution: - { - integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==, - } + resolution: {integrity: sha512-snKqtPW01tN0ui7yu9rGv69aJXr/a/Ywvl11sUjNtEcRc+ng/mQriFL0wLXMef74iHa/EkftbDzU9F8iFbH+zg==} '@esbuild/aix-ppc64@0.19.11': - resolution: - { - integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g==} + engines: {node: '>=12'} cpu: [ppc64] os: [aix] '@esbuild/aix-ppc64@0.25.9': - resolution: - { - integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-OaGtL73Jck6pBKjNIe24BnFE6agGl+6KxDtTfHhy1HmhthfKouEcOhqpSL64K4/0WCtbKFLOdzD/44cJ4k9opA==} + engines: {node: '>=18'} cpu: [ppc64] os: [aix] '@esbuild/android-arm64@0.19.11': - resolution: - { - integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q==} + engines: {node: '>=12'} cpu: [arm64] os: [android] '@esbuild/android-arm64@0.25.9': - resolution: - { - integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-IDrddSmpSv51ftWslJMvl3Q2ZT98fUSL2/rlUXuVqRXHCs5EUF1/f+jbjF5+NG9UffUDMCiTyh8iec7u8RlTLg==} + engines: {node: '>=18'} cpu: [arm64] os: [android] '@esbuild/android-arm@0.19.11': - resolution: - { - integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw==} + engines: {node: '>=12'} cpu: [arm] os: [android] '@esbuild/android-arm@0.25.9': - resolution: - { - integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5WNI1DaMtxQ7t7B6xa572XMXpHAaI/9Hnhk8lcxF4zVN4xstUgTlvuGDorBguKEnZO70qwEcLpfifMLoxiPqHQ==} + engines: {node: '>=18'} cpu: [arm] os: [android] '@esbuild/android-x64@0.19.11': - resolution: - { - integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg==} + engines: {node: '>=12'} cpu: [x64] os: [android] '@esbuild/android-x64@0.25.9': - resolution: - { - integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-I853iMZ1hWZdNllhVZKm34f4wErd4lMyeV7BLzEExGEIZYsOzqDWDf+y082izYUE8gtJnYHdeDpN/6tUdwvfiw==} + engines: {node: '>=18'} cpu: [x64] os: [android] '@esbuild/darwin-arm64@0.19.11': - resolution: - { - integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ==} + engines: {node: '>=12'} cpu: [arm64] os: [darwin] '@esbuild/darwin-arm64@0.25.9': - resolution: - { - integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-XIpIDMAjOELi/9PB30vEbVMs3GV1v2zkkPnuyRRURbhqjyzIINwj+nbQATh4H9GxUgH1kFsEyQMxwiLFKUS6Rg==} + engines: {node: '>=18'} cpu: [arm64] os: [darwin] '@esbuild/darwin-x64@0.19.11': - resolution: - { - integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g==} + engines: {node: '>=12'} cpu: [x64] os: [darwin] '@esbuild/darwin-x64@0.25.9': - resolution: - { - integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-jhHfBzjYTA1IQu8VyrjCX4ApJDnH+ez+IYVEoJHeqJm9VhG9Dh2BYaJritkYK3vMaXrf7Ogr/0MQ8/MeIefsPQ==} + engines: {node: '>=18'} cpu: [x64] os: [darwin] '@esbuild/freebsd-arm64@0.19.11': - resolution: - { - integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA==} + engines: {node: '>=12'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-arm64@0.25.9': - resolution: - { - integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-z93DmbnY6fX9+KdD4Ue/H6sYs+bhFQJNCPZsi4XWJoYblUqT06MQUdBCpcSfuiN72AbqeBFu5LVQTjfXDE2A6Q==} + engines: {node: '>=18'} cpu: [arm64] os: [freebsd] '@esbuild/freebsd-x64@0.19.11': - resolution: - { - integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw==} + engines: {node: '>=12'} cpu: [x64] os: [freebsd] '@esbuild/freebsd-x64@0.25.9': - resolution: - { - integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-mrKX6H/vOyo5v71YfXWJxLVxgy1kyt1MQaD8wZJgJfG4gq4DpQGpgTB74e5yBeQdyMTbgxp0YtNj7NuHN0PoZg==} + engines: {node: '>=18'} cpu: [x64] os: [freebsd] '@esbuild/linux-arm64@0.19.11': - resolution: - { - integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg==} + engines: {node: '>=12'} cpu: [arm64] os: [linux] '@esbuild/linux-arm64@0.25.9': - resolution: - { - integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-BlB7bIcLT3G26urh5Dmse7fiLmLXnRlopw4s8DalgZ8ef79Jj4aUcYbk90g8iCa2467HX8SAIidbL7gsqXHdRw==} + engines: {node: '>=18'} cpu: [arm64] os: [linux] '@esbuild/linux-arm@0.19.11': - resolution: - { - integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q==} + engines: {node: '>=12'} cpu: [arm] os: [linux] '@esbuild/linux-arm@0.25.9': - resolution: - { - integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-HBU2Xv78SMgaydBmdor38lg8YDnFKSARg1Q6AT0/y2ezUAKiZvc211RDFHlEZRFNRVhcMamiToo7bDx3VEOYQw==} + engines: {node: '>=18'} cpu: [arm] os: [linux] '@esbuild/linux-ia32@0.19.11': - resolution: - { - integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA==} + engines: {node: '>=12'} cpu: [ia32] os: [linux] '@esbuild/linux-ia32@0.25.9': - resolution: - { - integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-e7S3MOJPZGp2QW6AK6+Ly81rC7oOSerQ+P8L0ta4FhVi+/j/v2yZzx5CqqDaWjtPFfYz21Vi1S0auHrap3Ma3A==} + engines: {node: '>=18'} cpu: [ia32] os: [linux] '@esbuild/linux-loong64@0.19.11': - resolution: - { - integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg==} + engines: {node: '>=12'} cpu: [loong64] os: [linux] '@esbuild/linux-loong64@0.25.9': - resolution: - { - integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Sbe10Bnn0oUAB2AalYztvGcK+o6YFFA/9829PhOCUS9vkJElXGdphz0A3DbMdP8gmKkqPmPcMJmJOrI3VYB1JQ==} + engines: {node: '>=18'} cpu: [loong64] os: [linux] '@esbuild/linux-mips64el@0.19.11': - resolution: - { - integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg==} + engines: {node: '>=12'} cpu: [mips64el] os: [linux] '@esbuild/linux-mips64el@0.25.9': - resolution: - { - integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YcM5br0mVyZw2jcQeLIkhWtKPeVfAerES5PvOzaDxVtIyZ2NUBZKNLjC5z3/fUlDgT6w89VsxP2qzNipOaaDyA==} + engines: {node: '>=18'} cpu: [mips64el] os: [linux] '@esbuild/linux-ppc64@0.19.11': - resolution: - { - integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA==} + engines: {node: '>=12'} cpu: [ppc64] os: [linux] '@esbuild/linux-ppc64@0.25.9': - resolution: - { - integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-++0HQvasdo20JytyDpFvQtNrEsAgNG2CY1CLMwGXfFTKGBGQT3bOeLSYE2l1fYdvML5KUuwn9Z8L1EWe2tzs1w==} + engines: {node: '>=18'} cpu: [ppc64] os: [linux] '@esbuild/linux-riscv64@0.19.11': - resolution: - { - integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ==} + engines: {node: '>=12'} cpu: [riscv64] os: [linux] '@esbuild/linux-riscv64@0.25.9': - resolution: - { - integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-uNIBa279Y3fkjV+2cUjx36xkx7eSjb8IvnL01eXUKXez/CBHNRw5ekCGMPM0BcmqBxBcdgUWuUXmVWwm4CH9kg==} + engines: {node: '>=18'} cpu: [riscv64] os: [linux] '@esbuild/linux-s390x@0.19.11': - resolution: - { - integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q==} + engines: {node: '>=12'} cpu: [s390x] os: [linux] '@esbuild/linux-s390x@0.25.9': - resolution: - { - integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Mfiphvp3MjC/lctb+7D287Xw1DGzqJPb/J2aHHcHxflUo+8tmN/6d4k6I2yFR7BVo5/g7x2Monq4+Yew0EHRIA==} + engines: {node: '>=18'} cpu: [s390x] os: [linux] '@esbuild/linux-x64@0.19.11': - resolution: - { - integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA==} + engines: {node: '>=12'} cpu: [x64] os: [linux] '@esbuild/linux-x64@0.25.9': - resolution: - { - integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-iSwByxzRe48YVkmpbgoxVzn76BXjlYFXC7NvLYq+b+kDjyyk30J0JY47DIn8z1MO3K0oSl9fZoRmZPQI4Hklzg==} + engines: {node: '>=18'} cpu: [x64] os: [linux] '@esbuild/netbsd-arm64@0.25.9': - resolution: - { - integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-9jNJl6FqaUG+COdQMjSCGW4QiMHH88xWbvZ+kRVblZsWrkXlABuGdFJ1E9L7HK+T0Yqd4akKNa/lO0+jDxQD4Q==} + engines: {node: '>=18'} cpu: [arm64] os: [netbsd] '@esbuild/netbsd-x64@0.19.11': - resolution: - { - integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ==} + engines: {node: '>=12'} cpu: [x64] os: [netbsd] '@esbuild/netbsd-x64@0.25.9': - resolution: - { - integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-RLLdkflmqRG8KanPGOU7Rpg829ZHu8nFy5Pqdi9U01VYtG9Y0zOG6Vr2z4/S+/3zIyOxiK6cCeYNWOFR9QP87g==} + engines: {node: '>=18'} cpu: [x64] os: [netbsd] '@esbuild/openbsd-arm64@0.25.9': - resolution: - { - integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YaFBlPGeDasft5IIM+CQAhJAqS3St3nJzDEgsgFixcfZeyGPCd6eJBWzke5piZuZ7CtL656eOSYKk4Ls2C0FRQ==} + engines: {node: '>=18'} cpu: [arm64] os: [openbsd] '@esbuild/openbsd-x64@0.19.11': - resolution: - { - integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw==} + engines: {node: '>=12'} cpu: [x64] os: [openbsd] '@esbuild/openbsd-x64@0.25.9': - resolution: - { - integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-1MkgTCuvMGWuqVtAvkpkXFmtL8XhWy+j4jaSO2wxfJtilVCi0ZE37b8uOdMItIHz4I6z1bWWtEX4CJwcKYLcuA==} + engines: {node: '>=18'} cpu: [x64] os: [openbsd] '@esbuild/openharmony-arm64@0.25.9': - resolution: - { - integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-4Xd0xNiMVXKh6Fa7HEJQbrpP3m3DDn43jKxMjxLLRjWnRsfxjORYJlXPO4JNcXtOyfajXorRKY9NkOpTHptErg==} + engines: {node: '>=18'} cpu: [arm64] os: [openharmony] '@esbuild/sunos-x64@0.19.11': - resolution: - { - integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ==} + engines: {node: '>=12'} cpu: [x64] os: [sunos] '@esbuild/sunos-x64@0.25.9': - resolution: - { - integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-WjH4s6hzo00nNezhp3wFIAfmGZ8U7KtrJNlFMRKxiI9mxEK1scOMAaa9i4crUtu+tBr+0IN6JCuAcSBJZfnphw==} + engines: {node: '>=18'} cpu: [x64] os: [sunos] '@esbuild/win32-arm64@0.19.11': - resolution: - { - integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ==} + engines: {node: '>=12'} cpu: [arm64] os: [win32] '@esbuild/win32-arm64@0.25.9': - resolution: - { - integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-mGFrVJHmZiRqmP8xFOc6b84/7xa5y5YvR1x8djzXpJBSv/UsNK6aqec+6JDjConTgvvQefdGhFDAs2DLAds6gQ==} + engines: {node: '>=18'} cpu: [arm64] os: [win32] '@esbuild/win32-ia32@0.19.11': - resolution: - { - integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg==} + engines: {node: '>=12'} cpu: [ia32] os: [win32] '@esbuild/win32-ia32@0.25.9': - resolution: - { - integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-b33gLVU2k11nVx1OhX3C8QQP6UHQK4ZtN56oFWvVXvz2VkDoe6fbG8TOgHFxEvqeqohmRnIHe5A1+HADk4OQww==} + engines: {node: '>=18'} cpu: [ia32] os: [win32] '@esbuild/win32-x64@0.19.11': - resolution: - { - integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw==} + engines: {node: '>=12'} cpu: [x64] os: [win32] '@esbuild/win32-x64@0.25.9': - resolution: - { - integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-PPOl1mi6lpLNQxnGoyAfschAodRFYXJ+9fs6WHXz7CSWKbOqiMZsubC+BQsVKuul+3vKLuwTHsS2c2y9EoKwxQ==} + engines: {node: '>=18'} cpu: [x64] os: [win32] '@faker-js/faker@9.9.0': - resolution: - { - integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==, - } - engines: { node: '>=18.0.0', npm: '>=9.0.0' } + resolution: {integrity: sha512-OEl393iCOoo/z8bMezRlJu+GlRGlsKbUAN7jKB6LhnKoqKve5DXRpalbItIIcwnCjs1k/FOPjFzcA6Qn+H+YbA==} + engines: {node: '>=18.0.0', npm: '>=9.0.0'} + + '@fastify/otel@0.18.0': + resolution: {integrity: sha512-3TASCATfw+ctICSb4ymrv7iCm0qJ0N9CarB+CZ7zIJ7KqNbwI5JjyDL1/sxoC0ccTO1Zyd1iQ+oqncPg5FJXaA==} + peerDependencies: + '@opentelemetry/api': ^1.9.0 '@floating-ui/core@1.7.3': - resolution: - { - integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==, - } + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} '@floating-ui/dom@1.7.3': - resolution: - { - integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==, - } + resolution: {integrity: sha512-uZA413QEpNuhtb3/iIKoYMSK07keHPYeXF02Zhd6e213j+d1NamLix/mCLxBUDW/Gx52sPH2m+chlUsyaBs/Ag==} '@floating-ui/react-dom@2.1.5': - resolution: - { - integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==, - } + resolution: {integrity: sha512-HDO/1/1oH9fjj4eLgegrlH3dklZpHtUYYFiVwMUwfGvk9jWDRWqkklA2/NFScknrcNSspbV868WjXORvreDX+Q==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' '@floating-ui/react@0.26.28': - resolution: - { - integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==, - } + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' '@floating-ui/utils@0.2.10': - resolution: - { - integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==, - } + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} '@formatjs/intl-localematcher@0.6.1': - resolution: - { - integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==, - } + resolution: {integrity: sha512-ePEgLgVCqi2BBFnTMWPfIghu6FkbZnnBVhO2sSxvLfrdFw7wCHAHiDoM2h4NRgjbaY7+B7HgOLZGkK187pZTZg==} '@fortedigital/nextjs-cache-handler@1.2.0': - resolution: - { - integrity: sha512-dHu7+D6yVHI5ii1/DgNSZM9wVPk8uKAB0zrRoNNbZq6hggpRRwAExV4J6bSGOd26RN6ZnfYaGLBmdb0gLpeBQg==, - } + resolution: {integrity: sha512-dHu7+D6yVHI5ii1/DgNSZM9wVPk8uKAB0zrRoNNbZq6hggpRRwAExV4J6bSGOd26RN6ZnfYaGLBmdb0gLpeBQg==} peerDependencies: next: '>=13.5.1' redis: '>=4.6' '@googleapis/drive@8.16.0': - resolution: - { - integrity: sha512-Xi2mMrUTQ+gsfyouRGd0pfnL+jjg4n4sjKsJruM1y4DknuRfdSBTk5E//WrL0YJ/CqpcBgyd7L8DvaPRtxZD3Q==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-Xi2mMrUTQ+gsfyouRGd0pfnL+jjg4n4sjKsJruM1y4DknuRfdSBTk5E//WrL0YJ/CqpcBgyd7L8DvaPRtxZD3Q==} + engines: {node: '>=12.0.0'} '@graphile/logger@0.2.0': - resolution: - { - integrity: sha512-jjcWBokl9eb1gVJ85QmoaQ73CQ52xAaOCF29ukRbYNl6lY+ts0ErTaDYOBlejcbUs2OpaiqYLO5uDhyLFzWw4w==, - } + resolution: {integrity: sha512-jjcWBokl9eb1gVJ85QmoaQ73CQ52xAaOCF29ukRbYNl6lY+ts0ErTaDYOBlejcbUs2OpaiqYLO5uDhyLFzWw4w==} '@grpc/grpc-js@1.13.4': - resolution: - { - integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==, - } - engines: { node: '>=12.10.0' } + resolution: {integrity: sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==} + engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.15': - resolution: - { - integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==} + engines: {node: '>=6'} hasBin: true '@handlewithcare/react-prosemirror@2.4.12': - resolution: - { - integrity: sha512-55iZ0qmIWiGbaG6tklWZfybRoRLNWqbgzpA3Wvt3gQgXHhOQ6oICJLSAw0Adz8iSI6jdYLOdeCBaKi72noX1Sw==, - } - engines: { node: '>=16.9' } + resolution: {integrity: sha512-55iZ0qmIWiGbaG6tklWZfybRoRLNWqbgzpA3Wvt3gQgXHhOQ6oICJLSAw0Adz8iSI6jdYLOdeCBaKi72noX1Sw==} + engines: {node: '>=16.9'} peerDependencies: prosemirror-model: ^1.0.0 prosemirror-state: ^1.0.0 @@ -4100,271 +3336,175 @@ packages: react-dom: '>=17 <=19.1.0' '@headlessui/react@2.2.7': - resolution: - { - integrity: sha512-WKdTymY8Y49H8/gUc/lIyYK1M+/6dq0Iywh4zTZVAaiTDprRfioxSgD0wnXTQTBpjpGJuTL1NO/mqEvc//5SSg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-WKdTymY8Y49H8/gUc/lIyYK1M+/6dq0Iywh4zTZVAaiTDprRfioxSgD0wnXTQTBpjpGJuTL1NO/mqEvc//5SSg==} + engines: {node: '>=10'} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc '@honeycombio/opentelemetry-node@0.6.1': - resolution: - { - integrity: sha512-ddLSufGaWBlYItwvPftC81N2afJTVANK7abrQCy2+amtaRiPewrjtXbxVRmq3U+qPtM9e36E1huwK91cGGAuBQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ddLSufGaWBlYItwvPftC81N2afJTVANK7abrQCy2+amtaRiPewrjtXbxVRmq3U+qPtM9e36E1huwK91cGGAuBQ==} + engines: {node: '>=14'} '@hono/node-server@1.19.1': - resolution: - { - integrity: sha512-h44e5s+ByUriaRIbeS/C74O8v90m0A95luyYQGMF7KEn96KkYMXO7bZAwombzTpjQTU4e0TkU8U1WBIXlwuwtA==, - } - engines: { node: '>=18.14.1' } + resolution: {integrity: sha512-h44e5s+ByUriaRIbeS/C74O8v90m0A95luyYQGMF7KEn96KkYMXO7bZAwombzTpjQTU4e0TkU8U1WBIXlwuwtA==} + engines: {node: '>=18.14.1'} peerDependencies: hono: ^4 '@hono/zod-validator@0.4.3': - resolution: - { - integrity: sha512-xIgMYXDyJ4Hj6ekm9T9Y27s080Nl9NXHcJkOvkXPhubOLj8hZkOL8pDnnXfvCf5xEE8Q4oMFenQUZZREUY2gqQ==, - } + resolution: {integrity: sha512-xIgMYXDyJ4Hj6ekm9T9Y27s080Nl9NXHcJkOvkXPhubOLj8hZkOL8pDnnXfvCf5xEE8Q4oMFenQUZZREUY2gqQ==} peerDependencies: hono: '>=3.9.0' zod: ^3.19.1 '@hookform/devtools@4.4.0': - resolution: - { - integrity: sha512-Mtlic+uigoYBPXlfvPBfiYYUZuyMrD3pTjDpVIhL6eCZTvQkHsKBSKeZCvXWUZr8fqrkzDg27N+ZuazLKq6Vmg==, - } + resolution: {integrity: sha512-Mtlic+uigoYBPXlfvPBfiYYUZuyMrD3pTjDpVIhL6eCZTvQkHsKBSKeZCvXWUZr8fqrkzDg27N+ZuazLKq6Vmg==} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 react-dom: ^16.8.0 || ^17 || ^18 || ^19 '@hookform/resolvers@3.10.0': - resolution: - { - integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==, - } + resolution: {integrity: sha512-79Dv+3mDF7i+2ajj7SkypSKHhl1cbln1OGavqrsF7p6mbUv11xpqpacPsGDCTRvCSjEEIez2ef1NveSVL3b0Ag==} peerDependencies: react-hook-form: ^7.0.0 '@iconify/types@2.0.0': - resolution: - { - integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==, - } + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} '@iconify/utils@2.3.0': - resolution: - { - integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==, - } + resolution: {integrity: sha512-GmQ78prtwYW6EtzXRU1rY+KwOKfz32PD7iJh6Iyqw68GiKuoZ2A6pRtzWONz5VQJbp50mEjXh/7NkumtrAgRKA==} '@icons-pack/react-simple-icons@10.2.0': - resolution: - { - integrity: sha512-QDUxup8D3GdIIzwGpxQs6bjeFV5mJes25qqf4aqP/PaBYQNCar7AiyD8C14636TosCG0A/QqAUwm/Hviep4d4g==, - } + resolution: {integrity: sha512-QDUxup8D3GdIIzwGpxQs6bjeFV5mJes25qqf4aqP/PaBYQNCar7AiyD8C14636TosCG0A/QqAUwm/Hviep4d4g==} peerDependencies: react: ^16.13 || ^17 || ^18 || ^19 '@img/sharp-darwin-arm64@0.34.3': - resolution: - { - integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-ryFMfvxxpQRsgZJqBd4wsttYQbCxsJksrv9Lw/v798JcQ8+w84mBWuXwl+TT0WJ/WrYOLaYpwQXi3sA9nTIaIg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [darwin] '@img/sharp-darwin-x64@0.34.3': - resolution: - { - integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-yHpJYynROAj12TA6qil58hmPmAwxKKC7reUqtGLzsOHfP7/rniNGTL8tjWX6L3CTV4+5P4ypcS7Pp+7OB+8ihA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [darwin] '@img/sharp-libvips-darwin-arm64@1.2.0': - resolution: - { - integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==, - } + resolution: {integrity: sha512-sBZmpwmxqwlqG9ueWFXtockhsxefaV6O84BMOrhtg/YqbTaRdqDE7hxraVE3y6gVM4eExmfzW4a8el9ArLeEiQ==} cpu: [arm64] os: [darwin] '@img/sharp-libvips-darwin-x64@1.2.0': - resolution: - { - integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==, - } + resolution: {integrity: sha512-M64XVuL94OgiNHa5/m2YvEQI5q2cl9d/wk0qFTDVXcYzi43lxuiFTftMR1tOnFQovVXNZJ5TURSDK2pNe9Yzqg==} cpu: [x64] os: [darwin] '@img/sharp-libvips-linux-arm64@1.2.0': - resolution: - { - integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==, - } + resolution: {integrity: sha512-RXwd0CgG+uPRX5YYrkzKyalt2OJYRiJQ8ED/fi1tq9WQW2jsQIn0tqrlR5l5dr/rjqq6AHAxURhj2DVjyQWSOA==} cpu: [arm64] os: [linux] '@img/sharp-libvips-linux-arm@1.2.0': - resolution: - { - integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==, - } + resolution: {integrity: sha512-mWd2uWvDtL/nvIzThLq3fr2nnGfyr/XMXlq8ZJ9WMR6PXijHlC3ksp0IpuhK6bougvQrchUAfzRLnbsen0Cqvw==} cpu: [arm] os: [linux] '@img/sharp-libvips-linux-ppc64@1.2.0': - resolution: - { - integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==, - } + resolution: {integrity: sha512-Xod/7KaDDHkYu2phxxfeEPXfVXFKx70EAFZ0qyUdOjCcxbjqyJOEUpDe6RIyaunGxT34Anf9ue/wuWOqBW2WcQ==} cpu: [ppc64] os: [linux] '@img/sharp-libvips-linux-s390x@1.2.0': - resolution: - { - integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==, - } + resolution: {integrity: sha512-eMKfzDxLGT8mnmPJTNMcjfO33fLiTDsrMlUVcp6b96ETbnJmd4uvZxVJSKPQfS+odwfVaGifhsB07J1LynFehw==} cpu: [s390x] os: [linux] '@img/sharp-libvips-linux-x64@1.2.0': - resolution: - { - integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==, - } + resolution: {integrity: sha512-ZW3FPWIc7K1sH9E3nxIGB3y3dZkpJlMnkk7z5tu1nSkBoCgw2nSRTFHI5pB/3CQaJM0pdzMF3paf9ckKMSE9Tg==} cpu: [x64] os: [linux] '@img/sharp-libvips-linuxmusl-arm64@1.2.0': - resolution: - { - integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==, - } + resolution: {integrity: sha512-UG+LqQJbf5VJ8NWJ5Z3tdIe/HXjuIdo4JeVNADXBFuG7z9zjoegpzzGIyV5zQKi4zaJjnAd2+g2nna8TZvuW9Q==} cpu: [arm64] os: [linux] '@img/sharp-libvips-linuxmusl-x64@1.2.0': - resolution: - { - integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==, - } + resolution: {integrity: sha512-SRYOLR7CXPgNze8akZwjoGBoN1ThNZoqpOgfnOxmWsklTGVfJiGJoC/Lod7aNMGA1jSsKWM1+HRX43OP6p9+6Q==} cpu: [x64] os: [linux] '@img/sharp-linux-arm64@0.34.3': - resolution: - { - integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-QdrKe3EvQrqwkDrtuTIjI0bu6YEJHTgEeqdzI3uWJOH6G1O8Nl1iEeVYRGdj1h5I21CqxSvQp1Yv7xeU3ZewbA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] '@img/sharp-linux-arm@0.34.3': - resolution: - { - integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-oBK9l+h6KBN0i3dC8rYntLiVfW8D8wH+NPNT3O/WBHeW0OQWCjfWksLUaPidsrDKpJgXp3G3/hkmhptAW0I3+A==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm] os: [linux] '@img/sharp-linux-ppc64@0.34.3': - resolution: - { - integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-GLtbLQMCNC5nxuImPR2+RgrviwKwVql28FWZIW1zWruy6zLgA5/x2ZXk3mxj58X/tszVF69KK0Is83V8YgWhLA==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ppc64] os: [linux] '@img/sharp-linux-s390x@0.34.3': - resolution: - { - integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-3gahT+A6c4cdc2edhsLHmIOXMb17ltffJlxR0aC2VPZfwKoTGZec6u5GrFgdR7ciJSsHT27BD3TIuGcuRT0KmQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [s390x] os: [linux] '@img/sharp-linux-x64@0.34.3': - resolution: - { - integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-8kYso8d806ypnSq3/Ly0QEw90V5ZoHh10yH0HnrzOCr6DKAPI6QVHvwleqMkVQ0m+fc7EH8ah0BB0QPuWY6zJQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] '@img/sharp-linuxmusl-arm64@0.34.3': - resolution: - { - integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-vAjbHDlr4izEiXM1OTggpCcPg9tn4YriK5vAjowJsHwdBIdx0fYRsURkxLG2RLm9gyBq66gwtWI8Gx0/ov+JKQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [linux] '@img/sharp-linuxmusl-x64@0.34.3': - resolution: - { - integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-gCWUn9547K5bwvOn9l5XGAEjVTTRji4aPTqLzGXHvIr6bIDZKNTA34seMPgM0WmSf+RYBH411VavCejp3PkOeQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [linux] '@img/sharp-wasm32@0.34.3': - resolution: - { - integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-+CyRcpagHMGteySaWos8IbnXcHgfDn7pO2fiC2slJxvNq9gDipYBN42/RagzctVRKgxATmfqOSulgZv5e1RdMg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [wasm32] '@img/sharp-win32-arm64@0.34.3': - resolution: - { - integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-MjnHPnbqMXNC2UgeLJtX4XqoVHHlZNd+nPt1kRPmj63wURegwBhZlApELdtxM2OIZDRv/DFtLcNhVbd1z8GYXQ==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [arm64] os: [win32] '@img/sharp-win32-ia32@0.34.3': - resolution: - { - integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-xuCdhH44WxuXgOM714hn4amodJMZl3OEvf0GVTm0BEyMeA2to+8HEdRPShH0SLYptJY1uBw+SCFP9WVQi1Q/cw==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [ia32] os: [win32] '@img/sharp-win32-x64@0.34.3': - resolution: - { - integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-OWwz05d++TxzLEv4VnsTz5CmZ6mI6S05sfQGEMrNrQcOEERbX46332IvE7pO/EUiw7jUrrS40z/M7kPyjfl04g==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} cpu: [x64] os: [win32] '@inquirer/confirm@5.1.15': - resolution: - { - integrity: sha512-SwHMGa8Z47LawQN0rog0sT+6JpiL0B7eW9p1Bb7iCeKDGTI5Ez25TSc2l8kw52VV7hA4sX/C78CGkMrKXfuspA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-SwHMGa8Z47LawQN0rog0sT+6JpiL0B7eW9p1Bb7iCeKDGTI5Ez25TSc2l8kw52VV7hA4sX/C78CGkMrKXfuspA==} + engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4372,11 +3512,8 @@ packages: optional: true '@inquirer/core@10.1.15': - resolution: - { - integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-8xrp836RZvKkpNbVvgWUlxjT4CraKk2q+I3Ksy+seI2zkcE+y6wNs1BVhgcv8VyImFecUhdQrYLdW32pAjwBdA==} + engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4384,11 +3521,8 @@ packages: optional: true '@inquirer/external-editor@1.0.1': - resolution: - { - integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Oau4yL24d2B5IL4ma4UpbQigkVhzPDXLoqy1ggK4gnHg/stmkffJE4oOXHXF3uz0UEpywG68KcyXsyYpA1Re/Q==} + engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4396,18 +3530,12 @@ packages: optional: true '@inquirer/figures@1.0.13': - resolution: - { - integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-lGPVU3yO9ZNqA7vTYz26jny41lE7yoQansmqdMLBEfqaGsmdg7V3W9mK9Pvb5IL4EVZ9GnSDGMO/cJXud5dMaw==} + engines: {node: '>=18'} '@inquirer/type@3.0.8': - resolution: - { - integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-lg9Whz8onIHRthWaN1Q9EGLa/0LFJjyM8mEUbL1eTi6yMGvBf8gvyDLtxSXztQsxMvhxxNpJYrwa1YHdq+w4Jw==} + engines: {node: '>=18'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -4415,51 +3543,30 @@ packages: optional: true '@ioredis/commands@1.3.0': - resolution: - { - integrity: sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==, - } + resolution: {integrity: sha512-M/T6Zewn7sDaBQEqIZ8Rb+i9y8qfGmq+5SDFSf9sA2lUZTmdDLVdOiQaeDp+Q4wElZ9HG1GAX5KhDaidp6LQsQ==} '@isaacs/balanced-match@4.0.1': - resolution: - { - integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==} + engines: {node: 20 || >=22} '@isaacs/brace-expansion@5.0.0': - resolution: - { - integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==} + engines: {node: 20 || >=22} '@isaacs/cliui@8.0.2': - resolution: - { - integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} + engines: {node: '>=12'} '@isaacs/fs-minipass@4.0.1': - resolution: - { - integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==} + engines: {node: '>=18.0.0'} '@istanbuljs/schema@0.1.3': - resolution: - { - integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} '@joshwooding/vite-plugin-react-docgen-typescript@0.6.1': - resolution: - { - integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==, - } + resolution: {integrity: sha512-J4BaTocTOYFkMHIra1JDWrMWpNmBl4EkplIwHEsV8aeUOtdWjwSnln9U7twjMFTAEB7mptNtSKyVi1Y2W9sDJw==} peerDependencies: typescript: '>= 4.3.x' vite: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 @@ -4468,2336 +3575,1676 @@ packages: optional: true '@jridgewell/gen-mapping@0.3.13': - resolution: - { - integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==, - } + resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} '@jridgewell/remapping@2.3.5': - resolution: - { - integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==, - } + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} '@jridgewell/resolve-uri@3.1.2': - resolution: - { - integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} + engines: {node: '>=6.0.0'} '@jridgewell/source-map@0.3.11': - resolution: - { - integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==, - } + resolution: {integrity: sha512-ZMp1V8ZFcPG5dIWnQLr3NSI1MiCU7UETdS/A0G8V/XWHvJv3ZsFqutJn1Y5RPmAPX6F3BiE397OqveU/9NCuIA==} '@jridgewell/sourcemap-codec@1.5.5': - resolution: - { - integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, - } + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} '@jridgewell/trace-mapping@0.3.30': - resolution: - { - integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==, - } + resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} '@jridgewell/trace-mapping@0.3.9': - resolution: - { - integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==, - } + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} '@js-sdsl/ordered-map@4.4.2': - resolution: - { - integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==, - } + resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==} '@jsep-plugin/assignment@1.3.0': - resolution: - { - integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==, - } - engines: { node: '>= 10.16.0' } + resolution: {integrity: sha512-VVgV+CXrhbMI3aSusQyclHkenWSAm95WaiKrMxRFam3JSUiIaQjoMIw2sEs/OX4XifnqeQUN4DYbJjlA8EfktQ==} + engines: {node: '>= 10.16.0'} peerDependencies: jsep: ^0.4.0||^1.0.0 '@jsep-plugin/regex@1.0.4': - resolution: - { - integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==, - } - engines: { node: '>= 10.16.0' } + resolution: {integrity: sha512-q7qL4Mgjs1vByCaTnDFcBnV9HS7GVPJX5vyVoCgZHNSC9rjwIlmbXG5sUuorR5ndfHAIlJ8pVStxvjXHbNvtUg==} + engines: {node: '>= 10.16.0'} peerDependencies: jsep: ^0.4.0||^1.0.0 '@kristiandupont/recase@1.4.1': - resolution: - { - integrity: sha512-e5t4YqhnRGbS9sU4N52cQgTn37qKwTsxDDcIuIkgPvX0UmnL+7eoOR6oFXeCib5zYuw03vYKpR55NBq+W43j1A==, - } + resolution: {integrity: sha512-e5t4YqhnRGbS9sU4N52cQgTn37qKwTsxDDcIuIkgPvX0UmnL+7eoOR6oFXeCib5zYuw03vYKpR55NBq+W43j1A==} '@lexical/clipboard@0.23.1': - resolution: - { - integrity: sha512-MT8IXl1rhTe8VcwnkhgFtWra6sRYNsl/I7nE9aw6QxwvPReKmRDmyBmEIeXwnKSGHRe19OJhu4/A9ciKPyVdMA==, - } + resolution: {integrity: sha512-MT8IXl1rhTe8VcwnkhgFtWra6sRYNsl/I7nE9aw6QxwvPReKmRDmyBmEIeXwnKSGHRe19OJhu4/A9ciKPyVdMA==} '@lexical/code@0.23.1': - resolution: - { - integrity: sha512-TOxaFAwoewrX3rHp4Po+u1LJT8oteP/6Kn2z6j9DaynBW62gIqTuSAFcMPysVx/Puq5hhJHPRD/be9RWDteDZw==, - } + resolution: {integrity: sha512-TOxaFAwoewrX3rHp4Po+u1LJT8oteP/6Kn2z6j9DaynBW62gIqTuSAFcMPysVx/Puq5hhJHPRD/be9RWDteDZw==} '@lexical/devtools-core@0.23.1': - resolution: - { - integrity: sha512-QsgcrECy11ZHhWAfyNW/ougXFF1o0EuQnhFybgTdqQmw0rJ2ZgPLpPjD5lws3CE8mP8g5knBV4/cyxvv42fzzg==, - } + resolution: {integrity: sha512-QsgcrECy11ZHhWAfyNW/ougXFF1o0EuQnhFybgTdqQmw0rJ2ZgPLpPjD5lws3CE8mP8g5knBV4/cyxvv42fzzg==} peerDependencies: react: '>=17.x' react-dom: '>=17.x' '@lexical/dragon@0.23.1': - resolution: - { - integrity: sha512-ZoY9VJDrTpO69sinRhIs3RlPAWviy4mwnC7lqtM77/pVK0Kaknv7z2iDqv+414PKQCgUhyoXp7PfYXu/3yb6LQ==, - } + resolution: {integrity: sha512-ZoY9VJDrTpO69sinRhIs3RlPAWviy4mwnC7lqtM77/pVK0Kaknv7z2iDqv+414PKQCgUhyoXp7PfYXu/3yb6LQ==} '@lexical/hashtag@0.23.1': - resolution: - { - integrity: sha512-EkRCHV/IQwKlggy3VQDF9b4Krc9DKNZEjXe84CkEVrRpQSOwXi0qORzuaAipARyN632WKLSXOZJmNzkUNocJ6A==, - } + resolution: {integrity: sha512-EkRCHV/IQwKlggy3VQDF9b4Krc9DKNZEjXe84CkEVrRpQSOwXi0qORzuaAipARyN632WKLSXOZJmNzkUNocJ6A==} '@lexical/history@0.23.1': - resolution: - { - integrity: sha512-5Vro4bIePw37MwffpvPm56WlwPdlY/u+fVkvXsxdhK9bqiFesmLZhBirokDPvJEMP35V59kzmN5mmWXSYfuRpg==, - } + resolution: {integrity: sha512-5Vro4bIePw37MwffpvPm56WlwPdlY/u+fVkvXsxdhK9bqiFesmLZhBirokDPvJEMP35V59kzmN5mmWXSYfuRpg==} '@lexical/html@0.23.1': - resolution: - { - integrity: sha512-kNkDUaDe/Awypaw8JZn65BzT1gwNj2bNkaGFcmIkXUrTtiqlvgYvKvJeOKLkoAb/i2xq990ZAbHOsJrJm1jMbw==, - } + resolution: {integrity: sha512-kNkDUaDe/Awypaw8JZn65BzT1gwNj2bNkaGFcmIkXUrTtiqlvgYvKvJeOKLkoAb/i2xq990ZAbHOsJrJm1jMbw==} '@lexical/link@0.23.1': - resolution: - { - integrity: sha512-HRaOp7prtcbHjbgq8AjJ4O02jYb8pTeS8RrGcgIRhCOq3/EcsSb1dXMwuraqmh9oxbuFyEu/JE31EFksiOW6qA==, - } + resolution: {integrity: sha512-HRaOp7prtcbHjbgq8AjJ4O02jYb8pTeS8RrGcgIRhCOq3/EcsSb1dXMwuraqmh9oxbuFyEu/JE31EFksiOW6qA==} '@lexical/list@0.23.1': - resolution: - { - integrity: sha512-TI3WyWk3avv9uaJwaq8V+m9zxLRgnzXDYNS0rREafnW09rDpaFkpVmDuX+PZVR3NqPlwVt+slWVSBuyfguAFbA==, - } + resolution: {integrity: sha512-TI3WyWk3avv9uaJwaq8V+m9zxLRgnzXDYNS0rREafnW09rDpaFkpVmDuX+PZVR3NqPlwVt+slWVSBuyfguAFbA==} '@lexical/mark@0.23.1': - resolution: - { - integrity: sha512-E7cMOBVMrNGMw0LsyWKNFQZ5Io3bUIHCC3aCUdH24z1XWnuTmDFKMqNrphywPniO7pzSgVyGpkQBZIAIN76+YA==, - } + resolution: {integrity: sha512-E7cMOBVMrNGMw0LsyWKNFQZ5Io3bUIHCC3aCUdH24z1XWnuTmDFKMqNrphywPniO7pzSgVyGpkQBZIAIN76+YA==} '@lexical/markdown@0.23.1': - resolution: - { - integrity: sha512-TQx8oXenaiVYffBPxD85m4CydbDAuYOonATiABAFG6CHkA6vi898M1TCTgVDS6/iISjtjQpqHo0SW7YjLt14jw==, - } + resolution: {integrity: sha512-TQx8oXenaiVYffBPxD85m4CydbDAuYOonATiABAFG6CHkA6vi898M1TCTgVDS6/iISjtjQpqHo0SW7YjLt14jw==} '@lexical/offset@0.23.1': - resolution: - { - integrity: sha512-ylw5egME/lldacVXDoRsdGDXPuk9lGmYgcqx/aITGrSymav+RDjQoAapHbz1HQqGmm/m18+VLaWTdjtkbrIN6g==, - } + resolution: {integrity: sha512-ylw5egME/lldacVXDoRsdGDXPuk9lGmYgcqx/aITGrSymav+RDjQoAapHbz1HQqGmm/m18+VLaWTdjtkbrIN6g==} '@lexical/overflow@0.23.1': - resolution: - { - integrity: sha512-WubTqozpxOeyTm/tKIHXinsjuRcgPESacOvu93dS+sC7q3n+xeBIu5FL7lM6bbsk3zNtNJQ9sG0svZngmWRjCw==, - } + resolution: {integrity: sha512-WubTqozpxOeyTm/tKIHXinsjuRcgPESacOvu93dS+sC7q3n+xeBIu5FL7lM6bbsk3zNtNJQ9sG0svZngmWRjCw==} '@lexical/plain-text@0.23.1': - resolution: - { - integrity: sha512-tM4DJw+HyT9XV4BKGVECDnejcC//jsFggjFmJgwIMTCxJPiGXEEZLZTXmGqf8QdFZ6cH1I5bhreZPQUWu6dRvg==, - } + resolution: {integrity: sha512-tM4DJw+HyT9XV4BKGVECDnejcC//jsFggjFmJgwIMTCxJPiGXEEZLZTXmGqf8QdFZ6cH1I5bhreZPQUWu6dRvg==} '@lexical/react@0.23.1': - resolution: - { - integrity: sha512-g5CQMOiK+Djqp75UaSFUceHZEUQVIXBzWBuVR69pCiptCgNqN3CNAoIxy0hTTaVrLq6S0SCjUOduBDtioN0bLA==, - } + resolution: {integrity: sha512-g5CQMOiK+Djqp75UaSFUceHZEUQVIXBzWBuVR69pCiptCgNqN3CNAoIxy0hTTaVrLq6S0SCjUOduBDtioN0bLA==} peerDependencies: react: '>=17.x' react-dom: '>=17.x' '@lexical/rich-text@0.23.1': - resolution: - { - integrity: sha512-Y77HGxdF5aemjw/H44BXETD5KNeaNdwMRu9P7IrlK7cC1dvvimzL2D6ezbub5i7F1Ef5T0quOXjwK056vrqaKQ==, - } + resolution: {integrity: sha512-Y77HGxdF5aemjw/H44BXETD5KNeaNdwMRu9P7IrlK7cC1dvvimzL2D6ezbub5i7F1Ef5T0quOXjwK056vrqaKQ==} '@lexical/selection@0.23.1': - resolution: - { - integrity: sha512-xoehAURMZJZYf046GHUXiv8FSv5zTobhwDD2dML4fmNHPp9NxugkWHlNUinTK/b+jGgjSYVsqpEKPBmue4ZHdQ==, - } + resolution: {integrity: sha512-xoehAURMZJZYf046GHUXiv8FSv5zTobhwDD2dML4fmNHPp9NxugkWHlNUinTK/b+jGgjSYVsqpEKPBmue4ZHdQ==} '@lexical/table@0.23.1': - resolution: - { - integrity: sha512-Qs+iuwSVkV4OGTt+JdL9hvyl/QO3X9waH70L5Fxu9JmQk/jLl02tIGXbE38ocJkByfpyk4PrphoXt6l7CugJZA==, - } + resolution: {integrity: sha512-Qs+iuwSVkV4OGTt+JdL9hvyl/QO3X9waH70L5Fxu9JmQk/jLl02tIGXbE38ocJkByfpyk4PrphoXt6l7CugJZA==} '@lexical/text@0.23.1': - resolution: - { - integrity: sha512-aOuuAhmc+l2iSK99uP0x/Zg9LSQswQdNG3IxzGa0rTx844mWUHuEbAUaOqqlgDA1/zZ0WjObyhPfZJL775y63g==, - } + resolution: {integrity: sha512-aOuuAhmc+l2iSK99uP0x/Zg9LSQswQdNG3IxzGa0rTx844mWUHuEbAUaOqqlgDA1/zZ0WjObyhPfZJL775y63g==} '@lexical/utils@0.23.1': - resolution: - { - integrity: sha512-yXEkF6fj32+mJblCoP0ZT/vA0S05FA0nRUkVrvGX6sbZ9y+cIzuIbBoHi4z1ytutcWHQrwCK4TsN9hPYBIlb2w==, - } + resolution: {integrity: sha512-yXEkF6fj32+mJblCoP0ZT/vA0S05FA0nRUkVrvGX6sbZ9y+cIzuIbBoHi4z1ytutcWHQrwCK4TsN9hPYBIlb2w==} '@lexical/yjs@0.23.1': - resolution: - { - integrity: sha512-ygodSxmC65srNicMIhqBRIXI2LHhmnHcR1EO9fLO7flZWGCR1HIoeGmwhHo9FLgJoc5LHanV+dE0z1onFo1qqQ==, - } + resolution: {integrity: sha512-ygodSxmC65srNicMIhqBRIXI2LHhmnHcR1EO9fLO7flZWGCR1HIoeGmwhHo9FLgJoc5LHanV+dE0z1onFo1qqQ==} peerDependencies: yjs: '>=13.5.22' '@lezer/common@1.2.3': - resolution: - { - integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==, - } + resolution: {integrity: sha512-w7ojc8ejBqr2REPsWxJjrMFsA/ysDCFICn8zEOR9mrqzOu2amhITYuLD8ag6XZf0CFXDrhKqw7+tW8cX66NaDA==} '@lezer/cpp@1.1.3': - resolution: - { - integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==, - } + resolution: {integrity: sha512-ykYvuFQKGsRi6IcE+/hCSGUhb/I4WPjd3ELhEblm2wS2cOznDFzO+ubK2c+ioysOnlZ3EduV+MVQFCPzAIoY3w==} '@lezer/css@1.3.0': - resolution: - { - integrity: sha512-pBL7hup88KbI7hXnZV3PQsn43DHy6TWyzuyk2AO9UyoXcDltvIdqWKE1dLL/45JVZ+YZkHe1WVHqO6wugZZWcw==, - } + resolution: {integrity: sha512-pBL7hup88KbI7hXnZV3PQsn43DHy6TWyzuyk2AO9UyoXcDltvIdqWKE1dLL/45JVZ+YZkHe1WVHqO6wugZZWcw==} '@lezer/highlight@1.2.1': - resolution: - { - integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==, - } + resolution: {integrity: sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==} '@lezer/html@1.3.10': - resolution: - { - integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==, - } + resolution: {integrity: sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==} '@lezer/java@1.1.3': - resolution: - { - integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==, - } + resolution: {integrity: sha512-yHquUfujwg6Yu4Fd1GNHCvidIvJwi/1Xu2DaKl/pfWIA2c1oXkVvawH3NyXhCaFx4OdlYBVX5wvz2f7Aoa/4Xw==} '@lezer/javascript@1.5.1': - resolution: - { - integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==, - } + resolution: {integrity: sha512-ATOImjeVJuvgm3JQ/bpo2Tmv55HSScE2MTPnKRMRIPx2cLhHGyX2VnqpHhtIV1tVzIjZDbcWQm+NCTF40ggZVw==} '@lezer/json@1.0.3': - resolution: - { - integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==, - } + resolution: {integrity: sha512-BP9KzdF9Y35PDpv04r0VeSTKDeox5vVr3efE7eBbx3r4s3oNLfunchejZhjArmeieBH+nVOpgIiBJpEAv8ilqQ==} '@lezer/lezer@1.1.2': - resolution: - { - integrity: sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==, - } + resolution: {integrity: sha512-O8yw3CxPhzYHB1hvwbdozjnAslhhR8A5BH7vfEMof0xk3p+/DFDfZkA9Tde6J+88WgtwaHy4Sy6ThZSkaI0Evw==} '@lezer/lr@1.4.2': - resolution: - { - integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==, - } + resolution: {integrity: sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==} '@lezer/markdown@1.4.3': - resolution: - { - integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==, - } + resolution: {integrity: sha512-kfw+2uMrQ/wy/+ONfrH83OkdFNM0ye5Xq96cLlaCy7h5UT9FO54DU4oRoIc0CSBh5NWmWuiIJA7NGLMJbQ+Oxg==} '@lezer/php@1.0.4': - resolution: - { - integrity: sha512-D2dJ0t8Z28/G1guztRczMFvPDUqzeMLSQbdWQmaiHV7urc8NlEOnjYk9UrZ531OcLiRxD4Ihcbv7AsDpNKDRaQ==, - } + resolution: {integrity: sha512-D2dJ0t8Z28/G1guztRczMFvPDUqzeMLSQbdWQmaiHV7urc8NlEOnjYk9UrZ531OcLiRxD4Ihcbv7AsDpNKDRaQ==} '@lezer/python@1.1.18': - resolution: - { - integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==, - } + resolution: {integrity: sha512-31FiUrU7z9+d/ElGQLJFXl+dKOdx0jALlP3KEOsGTex8mvj+SoE1FgItcHWK/axkxCHGUSpqIHt6JAWfWu9Rhg==} '@lezer/rust@1.0.2': - resolution: - { - integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==, - } + resolution: {integrity: sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==} '@lezer/xml@1.0.6': - resolution: - { - integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==, - } + resolution: {integrity: sha512-CdDwirL0OEaStFue/66ZmFSeppuL6Dwjlk8qk153mSQwiSH/Dlri4GNymrNWnUmPl2Um7QfV1FO9KFUyX3Twww==} '@marijn/find-cluster-break@1.0.2': - resolution: - { - integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==, - } + resolution: {integrity: sha512-l0h88YhZFyKdXIFNfSWpyjStDjGHwZ/U7iobcK1cQQD8sejsONdQtTVU+1wVN1PBw40PiiHB1vA5S7VTfQiP9g==} '@mdx-js/mdx@3.1.0': - resolution: - { - integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==, - } + resolution: {integrity: sha512-/QxEhPAvGwbQmy1Px8F899L5Uc2KZ6JtXwlCgJmjSTBedwOZkByYcBG4GceIGPXRDsmfxhHazuS+hlOShRLeDw==} '@mdx-js/react@3.1.0': - resolution: - { - integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==, - } + resolution: {integrity: sha512-QjHtSaoameoalGnKDT3FoIl4+9RwyTmo9ZJGBdLOks/YOiWHoRDI3PUwEzOE7kEmGcV3AFcp9K6dYu9rEuKLAQ==} peerDependencies: '@types/react': '>=16' react: '>=16' '@mermaid-js/parser@0.6.2': - resolution: - { - integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==, - } + resolution: {integrity: sha512-+PO02uGF6L6Cs0Bw8RpGhikVvMWEysfAyl27qTlroUB8jSWr1lL0Sf6zi78ZxlSnmgSY2AMMKVgghnN9jTtwkQ==} '@monaco-editor/loader@1.7.0': - resolution: - { - integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==, - } + resolution: {integrity: sha512-gIwR1HrJrrx+vfyOhYmCZ0/JcWqG5kbfG7+d3f/C1LXk2EvzAbHSg3MQ5lO2sMlo9izoAZ04shohfKLVT6crVA==} '@monaco-editor/react@4.7.0': - resolution: - { - integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==, - } + resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==} peerDependencies: monaco-editor: '>= 0.25.0 < 1' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@mswjs/interceptors@0.39.6': - resolution: - { - integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-bndDP83naYYkfayr/qhBHMhk0YGwS1iv6vaEGcr0SQbO0IZtbOPqjKjds/WcG+bJA+1T5vCx6kprKOzn5Bg+Vw==} + engines: {node: '>=18'} '@napi-rs/simple-git-android-arm-eabi@0.1.22': - resolution: - { - integrity: sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-JQZdnDNm8o43A5GOzwN/0Tz3CDBQtBUNqzVwEopm32uayjdjxev1Csp1JeaqF3v9djLDIvsSE39ecsN2LhCKKQ==} + engines: {node: '>= 10'} cpu: [arm] os: [android] '@napi-rs/simple-git-android-arm64@0.1.22': - resolution: - { - integrity: sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-46OZ0SkhnvM+fapWjzg/eqbJvClxynUpWYyYBn4jAj7GQs1/Yyc8431spzDmkA8mL0M7Xo8SmbkzTDE7WwYAfg==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@napi-rs/simple-git-darwin-arm64@0.1.22': - resolution: - { - integrity: sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-zH3h0C8Mkn9//MajPI6kHnttywjsBmZ37fhLX/Fiw5XKu84eHA6dRyVtMzoZxj6s+bjNTgaMgMUucxPn9ktxTQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@napi-rs/simple-git-darwin-x64@0.1.22': - resolution: - { - integrity: sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-GZN7lRAkGKB6PJxWsoyeYJhh85oOOjVNyl+/uipNX8bR+mFDCqRsCE3rRCFGV9WrZUHXkcuRL2laIRn7lLi3ag==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@napi-rs/simple-git-freebsd-x64@0.1.22': - resolution: - { - integrity: sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-xyqX1C5I0WBrUgZONxHjZH5a4LqQ9oki3SKFAVpercVYAcx3pq6BkZy1YUOP4qx78WxU1CCNfHBN7V+XO7D99A==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@napi-rs/simple-git-linux-arm-gnueabihf@0.1.22': - resolution: - { - integrity: sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-4LOtbp9ll93B9fxRvXiUJd1/RM3uafMJE7dGBZGKWBMGM76+BAcCEUv2BY85EfsU/IgopXI6n09TycRfPWOjxA==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@napi-rs/simple-git-linux-arm64-gnu@0.1.22': - resolution: - { - integrity: sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-GVOjP/JjCzbQ0kSqao7ctC/1sodVtv5VF57rW9BFpo2y6tEYPCqHnkQkTpieuwMNe+TVOhBUC1+wH0d9/knIHg==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@napi-rs/simple-git-linux-arm64-musl@0.1.22': - resolution: - { - integrity: sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-MOs7fPyJiU/wqOpKzAOmOpxJ/TZfP4JwmvPad/cXTOWYwwyppMlXFRms3i98EU3HOazI/wMU2Ksfda3+TBluWA==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@napi-rs/simple-git-linux-ppc64-gnu@0.1.22': - resolution: - { - integrity: sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-L59dR30VBShRUIZ5/cQHU25upNgKS0AMQ7537J6LCIUEFwwXrKORZKJ8ceR+s3Sr/4jempWVvMdjEpFDE4HYww==} + engines: {node: '>= 10'} cpu: [ppc64] os: [linux] '@napi-rs/simple-git-linux-s390x-gnu@0.1.22': - resolution: - { - integrity: sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-4FHkPlCSIZUGC6HiADffbe6NVoTBMd65pIwcd40IDbtFKOgFMBA+pWRqKiQ21FERGH16Zed7XHJJoY3jpOqtmQ==} + engines: {node: '>= 10'} cpu: [s390x] os: [linux] '@napi-rs/simple-git-linux-x64-gnu@0.1.22': - resolution: - { - integrity: sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-Ei1tM5Ho/dwknF3pOzqkNW9Iv8oFzRxE8uOhrITcdlpxRxVrBVptUF6/0WPdvd7R9747D/q61QG/AVyWsWLFKw==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@napi-rs/simple-git-linux-x64-musl@0.1.22': - resolution: - { - integrity: sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-zRYxg7it0p3rLyEJYoCoL2PQJNgArVLyNavHW03TFUAYkYi5bxQ/UFNVpgxMaXohr5yu7qCBqeo9j4DWeysalg==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@napi-rs/simple-git-win32-arm64-msvc@0.1.22': - resolution: - { - integrity: sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-XGFR1fj+Y9cWACcovV2Ey/R2xQOZKs8t+7KHPerYdJ4PtjVzGznI4c2EBHXtdOIYvkw7tL5rZ7FN1HJKdD5Quw==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@napi-rs/simple-git-win32-ia32-msvc@0.1.22': - resolution: - { - integrity: sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-Gqr9Y0gs6hcNBA1IXBpoqTFnnIoHuZGhrYqaZzEvGMLrTrpbXrXVEtX3DAAD2RLc1b87CPcJ49a7sre3PU3Rfw==} + engines: {node: '>= 10'} cpu: [ia32] os: [win32] '@napi-rs/simple-git-win32-x64-msvc@0.1.22': - resolution: - { - integrity: sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-hQjcreHmUcpw4UrtkOron1/TQObfe484lxiXFLLUj7aWnnnOVs1mnXq5/Bo9+3NYZldFpFRJPdPBeHCisXkKJg==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@napi-rs/simple-git@0.1.22': - resolution: - { - integrity: sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-bMVoAKhpjTOPHkW/lprDPwv5aD4R4C3Irt8vn+SKA9wudLe9COLxOhurrKRsxmZccUbWXRF7vukNeGUAj5P8kA==} + engines: {node: '>= 10'} '@napi-rs/wasm-runtime@0.2.12': - resolution: - { - integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==, - } + resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} '@neoconfetti/react@1.0.0': - resolution: - { - integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==, - } + resolution: {integrity: sha512-klcSooChXXOzIm+SE5IISIAn3bYzYfPjbX7D7HoqZL84oAfgREeSg5vSIaSFH+DaGzzvImTyWe1OyrJ67vik4A==} '@neshca/cache-handler@1.9.0': - resolution: - { - integrity: sha512-dh0x4pdjDKvPRfZF5DZb8TtOUkbBfeTodOUdQsHDuv0oiuqQ3p7GLx38f6bPn8Sa4he8HsWo+rM4S20ZRqr7pA==, - } + resolution: {integrity: sha512-dh0x4pdjDKvPRfZF5DZb8TtOUkbBfeTodOUdQsHDuv0oiuqQ3p7GLx38f6bPn8Sa4he8HsWo+rM4S20ZRqr7pA==} peerDependencies: next: '>= 13.5.1 < 15' redis: '>= 4.6' '@next/env@15.5.0': - resolution: - { - integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==, - } + resolution: {integrity: sha512-sDaprBAfzCQiOgo2pO+LhnV0Wt2wBgartjrr+dpcTORYVnnXD0gwhHhiiyIih9hQbq+JnbqH4odgcFWhqCGidw==} '@next/env@15.5.9': - resolution: - { - integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==, - } + resolution: {integrity: sha512-4GlTZ+EJM7WaW2HEZcyU317tIQDjkQIyENDLxYJfSWlfqguN+dHkZgyQTV/7ykvobU7yEH5gKvreNrH4B6QgIg==} '@next/swc-darwin-arm64@15.5.7': - resolution: - { - integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-IZwtxCEpI91HVU/rAUOOobWSZv4P2DeTtNaCdHqLcTJU4wdNXgAySvKa/qJCgR5m6KI8UsKDXtO2B31jcaw1Yw==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@next/swc-darwin-x64@15.5.7': - resolution: - { - integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-UP6CaDBcqaCBuiq/gfCEJw7sPEoX1aIjZHnBWN9v9qYHQdMKvCKcAVs4OX1vIjeE+tC5EIuwDTVIoXpUes29lg==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@next/swc-linux-arm64-gnu@15.5.7': - resolution: - { - integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-NCslw3GrNIw7OgmRBxHtdWFQYhexoUCq+0oS2ccjyYLtcn1SzGzeM54jpTFonIMUjNbHmpKpziXnpxhSWLcmBA==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@next/swc-linux-arm64-musl@15.5.7': - resolution: - { - integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-nfymt+SE5cvtTrG9u1wdoxBr9bVB7mtKTcj0ltRn6gkP/2Nu1zM5ei8rwP9qKQP0Y//umK+TtkKgNtfboBxRrw==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@next/swc-linux-x64-gnu@15.5.7': - resolution: - { - integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-hvXcZvCaaEbCZcVzcY7E1uXN9xWZfFvkNHwbe/n4OkRhFWrs1J1QV+4U1BN06tXLdaS4DazEGXwgqnu/VMcmqw==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@next/swc-linux-x64-musl@15.5.7': - resolution: - { - integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-4IUO539b8FmF0odY6/SqANJdgwn1xs1GkPO5doZugwZ3ETF6JUdckk7RGmsfSf7ws8Qb2YB5It33mvNL/0acqA==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@next/swc-win32-arm64-msvc@15.5.7': - resolution: - { - integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-CpJVTkYI3ZajQkC5vajM7/ApKJUOlm6uP4BknM3XKvJ7VXAvCqSjSLmM0LKdYzn6nBJVSjdclx8nYJSa3xlTgQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@next/swc-win32-x64-msvc@15.5.7': - resolution: - { - integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-gMzgBX164I6DN+9/PGA+9dQiwmTkE4TloBNx8Kv9UiGARsr9Nba7IpcBRA1iTV9vwlYnrE3Uy6I7Aj6qLjQuqw==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@nimpl/getters@2.2.0': - resolution: - { - integrity: sha512-zuvly0OZ+Adq63duhHZFfNOPyRj/AKP2VLA7qGhuu8ymFzMNW2GLRouA9qDtAFvgqO+Zt9I+QECQ+NCHo2C7Mg==, - } + resolution: {integrity: sha512-zuvly0OZ+Adq63duhHZFfNOPyRj/AKP2VLA7qGhuu8ymFzMNW2GLRouA9qDtAFvgqO+Zt9I+QECQ+NCHo2C7Mg==} peerDependencies: next: '>= 14.0.0' react: '>= 18.2.0' react-dom: '>= 18.2.0' + '@nodable/entities@2.1.0': + resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} + '@node-rs/argon2-android-arm-eabi@1.7.0': - resolution: - { - integrity: sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-udDqkr5P9E+wYX1SZwAVPdyfYvaF4ry9Tm+R9LkfSHbzWH0uhU6zjIwNRp7m+n4gx691rk+lqqDAIP8RLKwbhg==} + engines: {node: '>= 10'} cpu: [arm] os: [android] '@node-rs/argon2-android-arm-eabi@1.8.3': - resolution: - { - integrity: sha512-JFZPlNM0A8Og+Tncb8UZsQrhEMlbHBXPsT3hRoKImzVmTmq28Os0ucFWow0AACp2coLHBSydXH3Dh0lZup3rWw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-JFZPlNM0A8Og+Tncb8UZsQrhEMlbHBXPsT3hRoKImzVmTmq28Os0ucFWow0AACp2coLHBSydXH3Dh0lZup3rWw==} + engines: {node: '>= 10'} cpu: [arm] os: [android] '@node-rs/argon2-android-arm64@1.7.0': - resolution: - { - integrity: sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-s9j/G30xKUx8WU50WIhF0fIl1EdhBGq0RQ06lEhZ0Gi0ap8lhqbE2Bn5h3/G2D1k0Dx+yjeVVNmt/xOQIRG38A==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@node-rs/argon2-android-arm64@1.8.3': - resolution: - { - integrity: sha512-zaf8P3T92caeW2xnMA7P1QvRA4pIt/04oilYP44XlTCtMye//vwXDMeK53sl7dvYiJKnzAWDRx41k8vZvpZazg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-zaf8P3T92caeW2xnMA7P1QvRA4pIt/04oilYP44XlTCtMye//vwXDMeK53sl7dvYiJKnzAWDRx41k8vZvpZazg==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@node-rs/argon2-darwin-arm64@1.7.0': - resolution: - { - integrity: sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-ZIz4L6HGOB9U1kW23g+m7anGNuTZ0RuTw0vNp3o+2DWpb8u8rODq6A8tH4JRL79S+Co/Nq608m9uackN2pe0Rw==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@node-rs/argon2-darwin-arm64@1.8.3': - resolution: - { - integrity: sha512-DV/IbmLGdNXBtXb5o2UI5ba6kvqXqPAJgmMOTUCuHeBSp992GlLHdfU4rzGu0dNrxudBnunNZv+crd0YdEQSUA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-DV/IbmLGdNXBtXb5o2UI5ba6kvqXqPAJgmMOTUCuHeBSp992GlLHdfU4rzGu0dNrxudBnunNZv+crd0YdEQSUA==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@node-rs/argon2-darwin-x64@1.7.0': - resolution: - { - integrity: sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-5oi/pxqVhODW/pj1+3zElMTn/YukQeywPHHYDbcAW3KsojFjKySfhcJMd1DjKTc+CHQI+4lOxZzSUzK7mI14Hw==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@node-rs/argon2-darwin-x64@1.8.3': - resolution: - { - integrity: sha512-YMjmBGFZhLfYjfQ2gll9A+BZu/zAMV7lWZIbKxb7ZgEofILQwuGmExjDtY3Jplido/6leCEdpmlk2oIsME00LA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-YMjmBGFZhLfYjfQ2gll9A+BZu/zAMV7lWZIbKxb7ZgEofILQwuGmExjDtY3Jplido/6leCEdpmlk2oIsME00LA==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@node-rs/argon2-freebsd-x64@1.7.0': - resolution: - { - integrity: sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-Ify08683hA4QVXYoIm5SUWOY5DPIT/CMB0CQT+IdxQAg/F+qp342+lUkeAtD5bvStQuCx/dFO3bnnzoe2clMhA==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@node-rs/argon2-freebsd-x64@1.8.3': - resolution: - { - integrity: sha512-Hq3Rj5Yb2RolTG/luRPnv+XiGCbi5nAK25Pc8ou/tVapwX+iktEm/NXbxc5zsMxraYVkCvfdwBjweC5O+KqCGw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-Hq3Rj5Yb2RolTG/luRPnv+XiGCbi5nAK25Pc8ou/tVapwX+iktEm/NXbxc5zsMxraYVkCvfdwBjweC5O+KqCGw==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@node-rs/argon2-linux-arm-gnueabihf@1.7.0': - resolution: - { - integrity: sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-7DjDZ1h5AUHAtRNjD19RnQatbhL+uuxBASuuXIBu4/w6Dx8n7YPxwTP4MXfsvuRgKuMWiOb/Ub/HJ3kXVCXRkg==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@node-rs/argon2-linux-arm-gnueabihf@1.8.3': - resolution: - { - integrity: sha512-x49l8RgzKoG0/V0IXa5rrEl1TcJEc936ctlYFvqcunSOyowZ6kiWtrp1qrbOR8gbaNILl11KTF52vF6+h8UlEQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-x49l8RgzKoG0/V0IXa5rrEl1TcJEc936ctlYFvqcunSOyowZ6kiWtrp1qrbOR8gbaNILl11KTF52vF6+h8UlEQ==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@node-rs/argon2-linux-arm64-gnu@1.7.0': - resolution: - { - integrity: sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-nJDoMP4Y3YcqGswE4DvP080w6O24RmnFEDnL0emdI8Nou17kNYBzP2546Nasx9GCyLzRcYQwZOUjrtUuQ+od2g==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@node-rs/argon2-linux-arm64-gnu@1.8.3': - resolution: - { - integrity: sha512-gJesam/qA63reGkb9qJ2TjFSLBtY41zQh2oei7nfnYsmVQPuHHWItJxEa1Bm21SPW53gZex4jFJbDIgj0+PxIw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-gJesam/qA63reGkb9qJ2TjFSLBtY41zQh2oei7nfnYsmVQPuHHWItJxEa1Bm21SPW53gZex4jFJbDIgj0+PxIw==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@node-rs/argon2-linux-arm64-musl@1.7.0': - resolution: - { - integrity: sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-BKWS8iVconhE3jrb9mj6t1J9vwUqQPpzCbUKxfTGJfc+kNL58F1SXHBoe2cDYGnHrFEHTY0YochzXoAfm4Dm/A==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@node-rs/argon2-linux-arm64-musl@1.8.3': - resolution: - { - integrity: sha512-7O6kQdSKzB4Tjx/EBa8zKIxnmLkQE8VdJgPm6Ksrpn+ueo0mx2xf76fIDnbbTCtm3UbB+y+FkTo2wLA7tOqIKg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-7O6kQdSKzB4Tjx/EBa8zKIxnmLkQE8VdJgPm6Ksrpn+ueo0mx2xf76fIDnbbTCtm3UbB+y+FkTo2wLA7tOqIKg==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@node-rs/argon2-linux-x64-gnu@1.7.0': - resolution: - { - integrity: sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-EmgqZOlf4Jurk/szW1iTsVISx25bKksVC5uttJDUloTgsAgIGReCpUUO1R24pBhu9ESJa47iv8NSf3yAfGv6jQ==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@node-rs/argon2-linux-x64-gnu@1.8.3': - resolution: - { - integrity: sha512-OBH+EFG7BGjFyldaao2H2gSCLmjtrrwf420B1L+lFn7JLW9UAjsIPFKAcWsYwPa/PwYzIge9Y7SGcpqlsSEX0w==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-OBH+EFG7BGjFyldaao2H2gSCLmjtrrwf420B1L+lFn7JLW9UAjsIPFKAcWsYwPa/PwYzIge9Y7SGcpqlsSEX0w==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@node-rs/argon2-linux-x64-musl@1.7.0': - resolution: - { - integrity: sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-/o1efYCYIxjfuoRYyBTi2Iy+1iFfhqHCvvVsnjNSgO1xWiWrX0Rrt/xXW5Zsl7vS2Y+yu8PL8KFWRzZhaVxfKA==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@node-rs/argon2-linux-x64-musl@1.8.3': - resolution: - { - integrity: sha512-bDbMuyekIxZaN7NaX+gHVkOyABB8bcMEJYeRPW1vCXKHj3brJns1wiUFSxqeUXreupifNVJlQfPt1Y5B/vFXgQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-bDbMuyekIxZaN7NaX+gHVkOyABB8bcMEJYeRPW1vCXKHj3brJns1wiUFSxqeUXreupifNVJlQfPt1Y5B/vFXgQ==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@node-rs/argon2-wasm32-wasi@1.7.0': - resolution: - { - integrity: sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-Evmk9VcxqnuwQftfAfYEr6YZYSPLzmKUsbFIMep5nTt9PT4XYRFAERj7wNYp+rOcBenF3X4xoB+LhwcOMTNE5w==} + engines: {node: '>=14.0.0'} cpu: [wasm32] '@node-rs/argon2-wasm32-wasi@1.8.3': - resolution: - { - integrity: sha512-NBf2cMCDbNKMzp13Pog8ZPmI0M9U4Ak5b95EUjkp17kdKZFds12dwW67EMnj7Zy+pRqby2QLECaWebDYfNENTg==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-NBf2cMCDbNKMzp13Pog8ZPmI0M9U4Ak5b95EUjkp17kdKZFds12dwW67EMnj7Zy+pRqby2QLECaWebDYfNENTg==} + engines: {node: '>=14.0.0'} cpu: [wasm32] '@node-rs/argon2-win32-arm64-msvc@1.7.0': - resolution: - { - integrity: sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-qgsU7T004COWWpSA0tppDqDxbPLgg8FaU09krIJ7FBl71Sz8SFO40h7fDIjfbTT5w7u6mcaINMQ5bSHu75PCaA==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@node-rs/argon2-win32-arm64-msvc@1.8.3': - resolution: - { - integrity: sha512-AHpPo7UbdW5WWjwreVpgFSY0o1RY4A7cUFaqDXZB2OqEuyrhMxBdZct9PX7PQKI18D85pLsODnR+gvVuTwJ6rQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-AHpPo7UbdW5WWjwreVpgFSY0o1RY4A7cUFaqDXZB2OqEuyrhMxBdZct9PX7PQKI18D85pLsODnR+gvVuTwJ6rQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@node-rs/argon2-win32-ia32-msvc@1.7.0': - resolution: - { - integrity: sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-JGafwWYQ/HpZ3XSwP4adQ6W41pRvhcdXvpzIWtKvX+17+xEXAe2nmGWM6s27pVkg1iV2ZtoYLRDkOUoGqZkCcg==} + engines: {node: '>= 10'} cpu: [ia32] os: [win32] '@node-rs/argon2-win32-ia32-msvc@1.8.3': - resolution: - { - integrity: sha512-bqzn2rcQkEwCINefhm69ttBVVkgHJb/V03DdBKsPFtiX6H47axXKz62d1imi26zFXhOEYxhKbu3js03GobJOLw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-bqzn2rcQkEwCINefhm69ttBVVkgHJb/V03DdBKsPFtiX6H47axXKz62d1imi26zFXhOEYxhKbu3js03GobJOLw==} + engines: {node: '>= 10'} cpu: [ia32] os: [win32] '@node-rs/argon2-win32-x64-msvc@1.7.0': - resolution: - { - integrity: sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-9oq4ShyFakw8AG3mRls0AoCpxBFcimYx7+jvXeAf2OqKNO+mSA6eZ9z7KQeVCi0+SOEUYxMGf5UiGiDb9R6+9Q==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@node-rs/argon2-win32-x64-msvc@1.8.3': - resolution: - { - integrity: sha512-ILlrRThdbp5xNR5gwYM2ic1n/vG5rJ8dQZ+YMRqksl+lnTJ/6FDe5BOyIhiPtiDwlCiCtUA+1NxpDB9KlUCAIA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-ILlrRThdbp5xNR5gwYM2ic1n/vG5rJ8dQZ+YMRqksl+lnTJ/6FDe5BOyIhiPtiDwlCiCtUA+1NxpDB9KlUCAIA==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@node-rs/argon2@1.7.0': - resolution: - { - integrity: sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-zfULc+/tmcWcxn+nHkbyY8vP3+MpEqKORbszt4UkpqZgBgDAAIYvuDN/zukfTgdmo6tmJKKVfzigZOPk4LlIog==} + engines: {node: '>= 10'} '@node-rs/argon2@1.8.3': - resolution: - { - integrity: sha512-sf/QAEI59hsMEEE2J8vO4hKrXrv4Oplte3KI2N4MhMDYpytH0drkVfErmHBfWFZxxIEK03fX1WsBNswS2nIZKg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-sf/QAEI59hsMEEE2J8vO4hKrXrv4Oplte3KI2N4MhMDYpytH0drkVfErmHBfWFZxxIEK03fX1WsBNswS2nIZKg==} + engines: {node: '>= 10'} '@node-rs/bcrypt-android-arm-eabi@1.9.0': - resolution: - { - integrity: sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-nOCFISGtnodGHNiLrG0WYLWr81qQzZKYfmwHc7muUeq+KY0sQXyHOwZk9OuNQAWv/lnntmtbwkwT0QNEmOyLvA==} + engines: {node: '>= 10'} cpu: [arm] os: [android] '@node-rs/bcrypt-android-arm64@1.9.0': - resolution: - { - integrity: sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-+ZrIAtigVmjYkqZQTThHVlz0+TG6D+GDHWhVKvR2DifjtqJ0i+mb9gjo++hN+fWEQdWNGxKCiBBjwgT4EcXd6A==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@node-rs/bcrypt-darwin-arm64@1.9.0': - resolution: - { - integrity: sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-CQiS+F9Pa0XozvkXR1g7uXE9QvBOPOplDg0iCCPRYTN9PqA5qYxhwe48G3o+v2UeQceNRrbnEtWuANm7JRqIhw==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@node-rs/bcrypt-darwin-x64@1.9.0': - resolution: - { - integrity: sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-4pTKGawYd7sNEjdJ7R/R67uwQH1VvwPZ0SSUMmeNHbxD5QlwAPXdDH11q22uzVXsvNFZ6nGQBg8No5OUGpx6Ug==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@node-rs/bcrypt-freebsd-x64@1.9.0': - resolution: - { - integrity: sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-UmWzySX4BJhT/B8xmTru6iFif3h0Rpx3TqxRLCcbgmH43r7k5/9QuhpiyzpvKGpKHJCFNm4F3rC2wghvw5FCIg==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@node-rs/bcrypt-linux-arm-gnueabihf@1.9.0': - resolution: - { - integrity: sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-8qoX4PgBND2cVwsbajoAWo3NwdfJPEXgpCsZQZURz42oMjbGyhhSYbovBCskGU3EBLoC8RA2B1jFWooeYVn5BA==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@node-rs/bcrypt-linux-arm64-gnu@1.9.0': - resolution: - { - integrity: sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-TuAC6kx0SbcIA4mSEWPi+OCcDjTQUMl213v5gMNlttF+D4ieIZx6pPDGTaMO6M2PDHTeCG0CBzZl0Lu+9b0c7Q==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@node-rs/bcrypt-linux-arm64-musl@1.9.0': - resolution: - { - integrity: sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-/sIvKDABOI8QOEnLD7hIj02BVaNOuCIWBKvxcJOt8+TuwJ6zmY1UI5kSv9d99WbiHjTp97wtAUbZQwauU4b9ew==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@node-rs/bcrypt-linux-x64-gnu@1.9.0': - resolution: - { - integrity: sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-DyyhDHDsLBsCKz1tZ1hLvUZSc1DK0FU0v52jK6IBQxrj24WscSU9zZe7ie/V9kdmA4Ep57BfpWX8Dsa2JxGdgQ==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@node-rs/bcrypt-linux-x64-musl@1.9.0': - resolution: - { - integrity: sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-duIiuqQ+Lew8ASSAYm6ZRqcmfBGWwsi81XLUwz86a2HR7Qv6V4yc3ZAUQovAikhjCsIqe8C11JlAZSK6+PlXYg==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@node-rs/bcrypt-wasm32-wasi@1.9.0': - resolution: - { - integrity: sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-ylaGmn9Wjwv/D5lxtawttx3H6Uu2WTTR7lWlRHGT6Ga/MB1Vj4OjSGUW8G8zIVnKuXpGbZ92pgHlt4HUpSLctw==} + engines: {node: '>=14.0.0'} cpu: [wasm32] '@node-rs/bcrypt-win32-arm64-msvc@1.9.0': - resolution: - { - integrity: sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-2h86gF7QFyEzODuDFml/Dp1MSJoZjxJ4yyT2Erf4NkwsiA5MqowUhUsorRwZhX6+2CtlGa7orbwi13AKMsYndw==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@node-rs/bcrypt-win32-ia32-msvc@1.9.0': - resolution: - { - integrity: sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-kqxalCvhs4FkN0+gWWfa4Bdy2NQAkfiqq/CEf6mNXC13RSV673Ev9V8sRlQyNpCHCNkeXfOT9pgoBdJmMs9muA==} + engines: {node: '>= 10'} cpu: [ia32] os: [win32] '@node-rs/bcrypt-win32-x64-msvc@1.9.0': - resolution: - { - integrity: sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-2y0Tuo6ZAT2Cz8V7DHulSlv1Bip3zbzeXyeur+uR25IRNYXKvI/P99Zl85Fbuu/zzYAZRLLlGTRe6/9IHofe/w==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@node-rs/bcrypt@1.9.0': - resolution: - { - integrity: sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-u2OlIxW264bFUfvbFqDz9HZKFjwe8FHFtn7T/U8mYjPZ7DWYpbUB+/dkW/QgYfMSfR0ejkyuWaBBe0coW7/7ig==} + engines: {node: '>= 10'} '@nodelib/fs.scandir@2.1.5': - resolution: - { - integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} '@nodelib/fs.stat@2.0.5': - resolution: - { - integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} '@nodelib/fs.walk@1.2.8': - resolution: - { - integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} '@open-draft/deferred-promise@2.2.0': - resolution: - { - integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==, - } + resolution: {integrity: sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==} '@open-draft/logger@0.3.0': - resolution: - { - integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==, - } + resolution: {integrity: sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==} '@open-draft/until@2.1.0': - resolution: - { - integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==, - } + resolution: {integrity: sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==} '@opentelemetry/api-logs@0.203.0': - resolution: - { - integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-9B9RU0H7Ya1Dx/Rkyc4stuBZSGVQF27WigitInx2QQoj6KUpEFYPKoWjdFTunJYxmXmh17HeBvbMa1EhGyPmqQ==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api-logs@0.207.0': + resolution: {integrity: sha512-lAb0jQRVyleQQGiuuvCOTDVspc14nx6XJjP4FspJ1sNARo3Regq4ZZbrc3rN4b1TYSuUCvgH+UXUPug4SLOqEQ==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api-logs@0.212.0': + resolution: {integrity: sha512-TEEVrLbNROUkYY51sBJGk7lO/OLjuepch8+hmpM6ffMJQ2z/KVCjdHuCFX6fJj8OkJP2zckPjrJzQtXU3IAsFg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api-logs@0.214.0': + resolution: {integrity: sha512-40lSJeqYO8Uz2Yj7u94/SJWE/wONa7rmMKjI1ZcIjgf3MHNHv1OZUCrCETGuaRF62d5pQD1wKIW+L4lmSMTzZA==} + engines: {node: '>=8.0.0'} '@opentelemetry/api-logs@0.46.0': - resolution: - { - integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+9BcqfiEDGPXEIo+o3tso/aqGM5dGbGwAkGVp3FPpZ8GlkK1YlaKRd9gMVyPaeRATwvO5wYGGnCsAc/sMMM9Qw==} + engines: {node: '>=14'} '@opentelemetry/api-logs@0.55.0': - resolution: - { - integrity: sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-3cpa+qI45VHYcA5c0bHM6VHo9gicv3p5mlLHNG3rLyjQU8b7e0st1rWtrUn3JbZ3DwwCfhKop4eQ9UuYlC6Pkg==} + engines: {node: '>=14'} '@opentelemetry/api-logs@0.57.2': - resolution: - { - integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-uIX52NnTM0iBh84MShlpouI7UKqkZ7MrUszTmaypHBu4r7NofznSnQRfJ+uUeDtQDj6w8eFGg5KBLDAwAPz1+A==} + engines: {node: '>=14'} '@opentelemetry/api@1.4.1': - resolution: - { - integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-O2yRJce1GOc6PAy3QxFM4NzFiWzvScDC1/5ihYBL6BUEVdq0XMWN01sppE+H6bBXbaFYipjwFLEWLg5PaSOThA==} + engines: {node: '>=8.0.0'} '@opentelemetry/api@1.7.0': - resolution: - { - integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==} + engines: {node: '>=8.0.0'} '@opentelemetry/api@1.9.0': - resolution: - { - integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} + engines: {node: '>=8.0.0'} + + '@opentelemetry/api@1.9.1': + resolution: {integrity: sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==} + engines: {node: '>=8.0.0'} '@opentelemetry/auto-instrumentations-node@0.53.0': - resolution: - { - integrity: sha512-AI3VQX1L2g4Xya8fPE1aahVhvya8/ikU7o2kMbry122Gd4kDVph41pejdOhWa/oNUgPRC6FLJmx7SZZ6/ShVjQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-AI3VQX1L2g4Xya8fPE1aahVhvya8/ikU7o2kMbry122Gd4kDVph41pejdOhWa/oNUgPRC6FLJmx7SZZ6/ShVjQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.4.1 '@opentelemetry/context-async-hooks@1.19.0': - resolution: - { - integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-0i1ECOc9daKK3rjUgDDXf0GDD5XfCou5lXnt2DALIc2qKoruPPcesobNKE54laSVUWnC3jX26RzuOa31g0V32A==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/context-async-hooks@1.28.0': - resolution: - { - integrity: sha512-igcl4Ve+F1N2063PJUkesk/GkYyuGIWinYkSyAFTnIj3gzrOgvOA4k747XNdL47HRRL1w/qh7UW8NDuxOLvKFA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-igcl4Ve+F1N2063PJUkesk/GkYyuGIWinYkSyAFTnIj3gzrOgvOA4k747XNdL47HRRL1w/qh7UW8NDuxOLvKFA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/context-async-hooks@2.0.1': - resolution: - { - integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-XuY23lSI3d4PEqKA+7SLtAgwqIfc6E/E9eAQWLN1vlpC53ybO3o6jW4BsXo1xvz9lYyyWItfQDDLzezER01mCw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@1.19.0': - resolution: - { - integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-w42AukJh3TP8R0IZZOVJVM/kMWu8g+lm4LzT70WtuKqhwq7KVhcDzZZuZinWZa6TtQCl7Smt2wolEYzpHabOgw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/core@1.28.0': - resolution: - { - integrity: sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ZLwRMV+fNDpVmF2WYUdBHlq0eOWtEaUJSusrzjGnBt7iSRvfjFE3RXYUZJrqou/wIDWV0DwQ5KIfYe9WXg9Xqw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@1.30.1': - resolution: - { - integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-OOCM2C/QIURhJMuKaekP3TRBxBKxG/TWWA0TL2J6nXUtDnuCtccy49LUJF8xPFXMX+0LMcxFpCo8M9cGY1W6rQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/core@2.0.1': - resolution: - { - integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-MaZk9SJIDgo1peKevlbhP6+IwIiNPNmswNL4AF0WaQJLbHXjr9SrZMgS12+iqr9ToV4ZVosCcc0f8Rg67LXjxw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.6.1': + resolution: {integrity: sha512-8xHSGWpJP9wBxgBpnqGL0R3PbdWQndL1Qp50qrg71+B28zK5OQmUgcDKLJgzyAAV38t4tOyLMGDD60LneR5W8g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.0.0 <1.10.0' + + '@opentelemetry/core@2.7.0': + resolution: {integrity: sha512-DT12SXVwV2eoJrGf4nnsvZojxxeQo+LlNAsoYGRRObPWTeN6APiqZ2+nqDCQDvQX40eLi1AePONS0onoASp3yQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/exporter-logs-otlp-grpc@0.55.0': - resolution: - { - integrity: sha512-ykqawCL0ILJWyCJlxCPSAlqQXZ6x2bQsxAVUu8S3z22XNqY5SMx0rl2d93XnvnrOwtcfm+sM9ZhbGh/i5AZ9xw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ykqawCL0ILJWyCJlxCPSAlqQXZ6x2bQsxAVUu8S3z22XNqY5SMx0rl2d93XnvnrOwtcfm+sM9ZhbGh/i5AZ9xw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-logs-otlp-http@0.55.0': - resolution: - { - integrity: sha512-fpFObWWq+DoLVrBU2dyMEaVkibByEkmKQZIUIjW/4j7lwIsTgW7aJCoD9RYFVB/tButcqov5Es2C0J2wTjM2tg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-fpFObWWq+DoLVrBU2dyMEaVkibByEkmKQZIUIjW/4j7lwIsTgW7aJCoD9RYFVB/tButcqov5Es2C0J2wTjM2tg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-logs-otlp-proto@0.55.0': - resolution: - { - integrity: sha512-vjE+DxUr+cUpxikdKCPiLZM5Wx7g1bywjCG76TQocvsA7Tmbb9p0t1+8gPlu9AGH7VEzPwDxxpN4p1ajpOurzQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-vjE+DxUr+cUpxikdKCPiLZM5Wx7g1bywjCG76TQocvsA7Tmbb9p0t1+8gPlu9AGH7VEzPwDxxpN4p1ajpOurzQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-metrics-otlp-grpc@0.46.0': - resolution: - { - integrity: sha512-BeYDu4nLOJC9LSfPRay1mM2+Pho6AGDIChrpg3D5A3ie7wYUW66lkyr5nMioLgG9EDZLeRsuHsEbVcv0AXpGQw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-BeYDu4nLOJC9LSfPRay1mM2+Pho6AGDIChrpg3D5A3ie7wYUW66lkyr5nMioLgG9EDZLeRsuHsEbVcv0AXpGQw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-metrics-otlp-http@0.46.0': - resolution: - { - integrity: sha512-7dyNATgM1LCKv4RGf3zsbHZMQNILQ6bxZ5/a56ptGDgg6Bz8Iz8jghonBx/K++A4QNMnu7Ppamm5qL2xlWEYjg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-7dyNATgM1LCKv4RGf3zsbHZMQNILQ6bxZ5/a56ptGDgg6Bz8Iz8jghonBx/K++A4QNMnu7Ppamm5qL2xlWEYjg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-metrics-otlp-proto@0.46.0': - resolution: - { - integrity: sha512-2nj4YoTMcx/PixfTp+Zj7G7uJm9twzlq50TVy9rCRLRC30qSuvNYcEXymNYI1GtOZmQT6FQB1AHE9+JZNetVNg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-2nj4YoTMcx/PixfTp+Zj7G7uJm9twzlq50TVy9rCRLRC30qSuvNYcEXymNYI1GtOZmQT6FQB1AHE9+JZNetVNg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-trace-otlp-grpc@0.46.0': - resolution: - { - integrity: sha512-kR4kehnfIhv7v/2MuNYfrlh9A/ZtQofwCzurTIplornUjdzhKDGgjui1NkNTqTfM1QkqfCiavGsf5hwocx29bA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-kR4kehnfIhv7v/2MuNYfrlh9A/ZtQofwCzurTIplornUjdzhKDGgjui1NkNTqTfM1QkqfCiavGsf5hwocx29bA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-trace-otlp-grpc@0.55.0': - resolution: - { - integrity: sha512-ohIkCLn2Wc3vhhFuf1bH8kOXHMEdcWiD847x7f3Qfygc+CGiatGLzQYscTcEYsWGMV22gVwB/kVcNcx5a3o8gA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ohIkCLn2Wc3vhhFuf1bH8kOXHMEdcWiD847x7f3Qfygc+CGiatGLzQYscTcEYsWGMV22gVwB/kVcNcx5a3o8gA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-trace-otlp-http@0.46.0': - resolution: - { - integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-vZ2pYOB+qrQ+jnKPY6Gnd58y1k/Ti//Ny6/XsSX7/jED0X77crtSVgC6N5UA0JiGJOh6QB2KE9gaH99010XHzg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-trace-otlp-http@0.55.0': - resolution: - { - integrity: sha512-lMiNic63EVHpW+eChmLD2CieDmwQBFi72+LFbh8+5hY0ShrDGrsGP/zuT5MRh7M/vM/UZYO/2A/FYd7CMQGR7A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-lMiNic63EVHpW+eChmLD2CieDmwQBFi72+LFbh8+5hY0ShrDGrsGP/zuT5MRh7M/vM/UZYO/2A/FYd7CMQGR7A==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-trace-otlp-proto@0.46.0': - resolution: - { - integrity: sha512-A7PftDM57w1TLiirrhi8ceAnCpYkpUBObELdn239IyYF67zwngImGfBLf5Yo3TTAOA2Oj1TL76L8zWVL8W+Suw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-A7PftDM57w1TLiirrhi8ceAnCpYkpUBObELdn239IyYF67zwngImGfBLf5Yo3TTAOA2Oj1TL76L8zWVL8W+Suw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-trace-otlp-proto@0.55.0': - resolution: - { - integrity: sha512-qxiJFP+bBZW3+goHCGkE1ZdW9gJU0fR7eQ6OP+Rz5oGtEBbq4nkGodhb7C9FJlEFlE2siPtCxoeupV0gtYynag==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-qxiJFP+bBZW3+goHCGkE1ZdW9gJU0fR7eQ6OP+Rz5oGtEBbq4nkGodhb7C9FJlEFlE2siPtCxoeupV0gtYynag==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/exporter-zipkin@1.19.0': - resolution: - { - integrity: sha512-TY1fy4JiOBN5a8T9fknqTMcz0DXIeFBr6sklaLCgwtj+G699a5R4CekNwpeM7DHSwC44UMX7gljO2I6dYsTS3A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-TY1fy4JiOBN5a8T9fknqTMcz0DXIeFBr6sklaLCgwtj+G699a5R4CekNwpeM7DHSwC44UMX7gljO2I6dYsTS3A==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/exporter-zipkin@1.28.0': - resolution: - { - integrity: sha512-AMwr3eGXaPEH7gk8yhcUcen31VXy1yU5VJETu0pCfGpggGCYmhm0FKgYBpL5/vlIgQJWU/sW2vIjCL7aSilpKg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-AMwr3eGXaPEH7gk8yhcUcen31VXy1yU5VJETu0pCfGpggGCYmhm0FKgYBpL5/vlIgQJWU/sW2vIjCL7aSilpKg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/instrumentation-amqplib@0.44.0': - resolution: - { - integrity: sha512-n2nn2jD1zWeKQOfmDTMXmypHJ2DmyTGZADOYLxRlYNDOv69lTPLZYaxVIUEdnCvioLSuVnB8zPzy077gEKcCaQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-n2nn2jD1zWeKQOfmDTMXmypHJ2DmyTGZADOYLxRlYNDOv69lTPLZYaxVIUEdnCvioLSuVnB8zPzy077gEKcCaQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-amqplib@0.50.0': - resolution: - { - integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-kwNs/itehHG/qaQBcVrLNcvXVPW0I4FCOVtw3LHMLdYIqD7GJ6Yv2nX+a4YHjzbzIeRYj8iyMp0Bl7tlkidq5w==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-amqplib@0.61.0': + resolution: {integrity: sha512-mCKoyTGfRNisge4br0NpOFSy2Z1NnEW8hbCJdUDdJFHrPqVzc4IIBPA/vX0U+LUcQqrQvJX+HMIU0dbDRe0i0Q==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-aws-lambda@0.48.0': - resolution: - { - integrity: sha512-0BJHjCUQwDO5uMCAE1C06LoXcLPK3lWlnT40AORFU9DvT/tFFCjs+KlN3vE39FSlWL7vVzyMVOejdcbDv+xMlw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-0BJHjCUQwDO5uMCAE1C06LoXcLPK3lWlnT40AORFU9DvT/tFFCjs+KlN3vE39FSlWL7vVzyMVOejdcbDv+xMlw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-aws-sdk@0.47.0': - resolution: - { - integrity: sha512-taO5tsee7g5Q71LRebnHSDb8oIEcGDaqMol0gMJdPCAZAu4pZ7vixDGCONAvIo9OgrR948h/NhQX4T0cLJ1fag==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-taO5tsee7g5Q71LRebnHSDb8oIEcGDaqMol0gMJdPCAZAu4pZ7vixDGCONAvIo9OgrR948h/NhQX4T0cLJ1fag==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-bunyan@0.43.0': - resolution: - { - integrity: sha512-nAAXMx63tXXWwuPiTLWTxDRBqXDRvcfE4H3IrXZbrls3BO7P7SkTZ9dvwPCuTku4rRUhEEDpV8vq9Ng4Pk/Uzw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-nAAXMx63tXXWwuPiTLWTxDRBqXDRvcfE4H3IrXZbrls3BO7P7SkTZ9dvwPCuTku4rRUhEEDpV8vq9Ng4Pk/Uzw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-cassandra-driver@0.43.0': - resolution: - { - integrity: sha512-fpnGDwUA5nRFhMDb4N1JBUi3dzsHvZRFcyX5bIXoApx43ZwY3lP/eF44aiHE6a4YObgcStLchLa0bEDM5UT4Fw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-fpnGDwUA5nRFhMDb4N1JBUi3dzsHvZRFcyX5bIXoApx43ZwY3lP/eF44aiHE6a4YObgcStLchLa0bEDM5UT4Fw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-connect@0.41.0': - resolution: - { - integrity: sha512-BFbkWYVzvSG9G9bG/8vp3+VWRfFgBqPPG0fQh4oM8nrz3YWrHK6269PIXmk9W5hXoxvYw0ghzp2kjMXIzX+NeA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-BFbkWYVzvSG9G9bG/8vp3+VWRfFgBqPPG0fQh4oM8nrz3YWrHK6269PIXmk9W5hXoxvYw0ghzp2kjMXIzX+NeA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-connect@0.47.0': - resolution: - { - integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-pjenvjR6+PMRb6/4X85L4OtkQCootgb/Jzh/l/Utu3SJHBid1F+gk9sTGU2FWuhhEfV6P7MZ7BmCdHXQjgJ42g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-connect@0.57.0': + resolution: {integrity: sha512-FMEBChnI4FLN5TE9DHwfH7QpNir1JzXno1uz/TAucVdLCyrG0jTrKIcNHt/i30A0M2AunNBCkcd8Ei26dIPKdg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-cucumber@0.11.0': - resolution: - { - integrity: sha512-6CyeH678mw5AYbXIY1wtuNL7OsE57+XXk5t5pBeiXsAg0Kh0084/MmBzzCNVOCxn+IN5sjXKtjgVIDHrE/iILA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-6CyeH678mw5AYbXIY1wtuNL7OsE57+XXk5t5pBeiXsAg0Kh0084/MmBzzCNVOCxn+IN5sjXKtjgVIDHrE/iILA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/instrumentation-dataloader@0.14.0': - resolution: - { - integrity: sha512-1cQC0CUSCDbyACFA8f8limjYyQbNdYdiKzGIJF2MwSUkhac64WvcoNjknYfK7CCO68QrBmvmaLqoF+IbZ7djZg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-1cQC0CUSCDbyACFA8f8limjYyQbNdYdiKzGIJF2MwSUkhac64WvcoNjknYfK7CCO68QrBmvmaLqoF+IbZ7djZg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-dataloader@0.21.0': - resolution: - { - integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-Xu4CZ1bfhdkV3G6iVHFgKTgHx8GbKSqrTU01kcIJRGHpowVnyOPEv1CW5ow+9GU2X4Eki8zoNuVUenFc3RluxQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-dataloader@0.31.0': + resolution: {integrity: sha512-f654tZFQXS5YeLDNb9KySrwtg7SnqZN119FauD7acBoTzuLduaiGTNz88ixcVSOOMGZ+EjJu/RFtx5klObC95g==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-dns@0.41.0': - resolution: - { - integrity: sha512-4SovC9rlhBcRzlAmw8PZD3tcP8CfIZ8GJIKJlB5Lca7IDh2A92JpOqzrWFCOJVGFYt7E6YeZJ09b+yb/4Ypa5Q==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-4SovC9rlhBcRzlAmw8PZD3tcP8CfIZ8GJIKJlB5Lca7IDh2A92JpOqzrWFCOJVGFYt7E6YeZJ09b+yb/4Ypa5Q==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-express@0.45.0': - resolution: - { - integrity: sha512-7NY+HsETxEP5Rtlhy8Z3pPJdiz6wPmJuFVb9bRDdThKk72ATryox2ozV3t+aMeOdDsVgQiPHpgPzU150/uovOQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-7NY+HsETxEP5Rtlhy8Z3pPJdiz6wPmJuFVb9bRDdThKk72ATryox2ozV3t+aMeOdDsVgQiPHpgPzU150/uovOQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-express@0.52.0': - resolution: - { - integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-W7pizN0Wh1/cbNhhTf7C62NpyYw7VfCFTYg0DYieSTrtPBT1vmoSZei19wfKLnrMsz3sHayCg0HxCVL2c+cz5w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-fastify@0.42.0': - resolution: - { - integrity: sha512-XmLaOI4rCqcuBwL+u/vh+hJdLCaZsjc7Q88BCtvLAQhnrj02UEX3c+MDRMcCAoxUJMQTSJMlCOv/tfibWdrVAg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-XmLaOI4rCqcuBwL+u/vh+hJdLCaZsjc7Q88BCtvLAQhnrj02UEX3c+MDRMcCAoxUJMQTSJMlCOv/tfibWdrVAg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-fs@0.17.0': - resolution: - { - integrity: sha512-WKO2hBdU24LD4VlSNOIWRAP3JegTmDtZtoy0H92ipKeVajvlSMewozvTXiGd2+hF7WY3zL6/sbx47t6ycq9SrA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-WKO2hBdU24LD4VlSNOIWRAP3JegTmDtZtoy0H92ipKeVajvlSMewozvTXiGd2+hF7WY3zL6/sbx47t6ycq9SrA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-fs@0.23.0': - resolution: - { - integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-Puan+QopWHA/KNYvDfOZN6M/JtF6buXEyD934vrb8WhsX1/FuM7OtoMlQyIqAadnE8FqqDL4KDPiEfCQH6pQcQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-fs@0.33.0': + resolution: {integrity: sha512-sCZWXGalQ01wr3tAhSR9ucqFJ0phidpAle6/17HVjD6gN8FLmZMK/8sKxdXYHy3PbnlV1P4zeiSVFNKpbFMNLA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-generic-pool@0.41.0': - resolution: - { - integrity: sha512-V0OcN7VH37laZU1pxLixFROBkXrT55E5/MpacShsziAhGqiPZyU1XlCAHBseZ0T7cPfQ8Ux3cp0BAv59hRPt1Q==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-V0OcN7VH37laZU1pxLixFROBkXrT55E5/MpacShsziAhGqiPZyU1XlCAHBseZ0T7cPfQ8Ux3cp0BAv59hRPt1Q==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-generic-pool@0.47.0': - resolution: - { - integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-UfHqf3zYK+CwDwEtTjaD12uUqGGTswZ7ofLBEdQ4sEJp9GHSSJMQ2hT3pgBxyKADzUdoxQAv/7NqvL42ZI+Qbw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-generic-pool@0.57.0': + resolution: {integrity: sha512-orhmlaK+ZIW9hKU+nHTbXrCSXZcH83AescTqmpamHRobRmYSQwRbD0a1odc0yAzuzOtxYiHiXAnpnIpaSSY7Ow==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-graphql@0.45.0': - resolution: - { - integrity: sha512-NCmL89XZcu9NQAskrYsUHT0PygUiLX90GwjS7kUn72nRAuk/myGg8Zj9YUPwe/OKVJcSLA5Fq755jUHlBQ1odA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-NCmL89XZcu9NQAskrYsUHT0PygUiLX90GwjS7kUn72nRAuk/myGg8Zj9YUPwe/OKVJcSLA5Fq755jUHlBQ1odA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-graphql@0.51.0': - resolution: - { - integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-LchkOu9X5DrXAnPI1+Z06h/EH/zC7D6sA86hhPrk3evLlsJTz0grPrkL/yUJM9Ty0CL/y2HSvmWQCjbJEz/ADg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-graphql@0.62.0': + resolution: {integrity: sha512-3YNuLVPUxafXkH1jBAbGsKNsP3XVzcFDhCDCE3OqBwCwShlqQbLMRMFh1T/d5jaVZiGVmSsfof+ICKD2iOV8xg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-grpc@0.55.0': - resolution: - { - integrity: sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-n2ZH4pRwOy0Vhag/3eKqiyDBwcpUnGgJI9iiIRX7vivE0FMncaLazWphNFezRRaM/LuKwq1TD8pVUvieP68mow==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-hapi@0.43.0': - resolution: - { - integrity: sha512-FsSfn3nWNucswySEK/3EDV9vtgtj24YluVausqWMZiQlTlsLPzTbu2lUl7ynQViJGsUYh0YNpNz9d4IdzAGtcQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-FsSfn3nWNucswySEK/3EDV9vtgtj24YluVausqWMZiQlTlsLPzTbu2lUl7ynQViJGsUYh0YNpNz9d4IdzAGtcQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-hapi@0.50.0': - resolution: - { - integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-5xGusXOFQXKacrZmDbpHQzqYD1gIkrMWuwvlrEPkYOsjUqGUjl1HbxCsn5Y9bUXOCgP1Lj6A4PcKt1UiJ2MujA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-hapi@0.60.0': + resolution: {integrity: sha512-aNljZKYrEa7obLAxd1bCEDxF7kzCLGXTuTJZ8lMR9rIVEjmuKBXN1gfqpm/OB//Zc2zP4iIve1jBp7sr3mQV6w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-http@0.203.0': - resolution: - { - integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-y3uQAcCOAwnO6vEuNVocmpVzG3PER6/YZqbPbbffDdJ9te5NkHEkfSMNzlC3+v7KlE+WinPGc3N7MR30G1HY2g==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-http@0.214.0': + resolution: {integrity: sha512-FlkDhZDRjDJDcO2LcSCtjRpkal1NJ8y0fBqBhTvfAR3JSYY2jAIj1kSS5IjmEBt4c3aWv+u/lqLuoCDrrKCSKg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-http@0.55.0': - resolution: - { - integrity: sha512-AO27XSjkgNicfy/YBthskFAwx9VfaO7tChrLaTONTfOWv14GlB3Rs2eTYpywZIHWsW2cR5hvVkcDte4GV0stoA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-AO27XSjkgNicfy/YBthskFAwx9VfaO7tChrLaTONTfOWv14GlB3Rs2eTYpywZIHWsW2cR5hvVkcDte4GV0stoA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-ioredis@0.45.0': - resolution: - { - integrity: sha512-h79ctSTYgxc6V0saa4JcdjEt/JQd9gkfgFwPNyHZkIx0aQofygMc32Ulp2v7axAHqf8HiI9jP9aP/Qh1mWVSNA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-h79ctSTYgxc6V0saa4JcdjEt/JQd9gkfgFwPNyHZkIx0aQofygMc32Ulp2v7axAHqf8HiI9jP9aP/Qh1mWVSNA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-ioredis@0.51.0': - resolution: - { - integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-9IUws0XWCb80NovS+17eONXsw1ZJbHwYYMXiwsfR9TSurkLV5UNbRSKb9URHO+K+pIJILy9wCxvyiOneMr91Ig==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-ioredis@0.62.0': + resolution: {integrity: sha512-ZYt//zcPve8qklaZX+5Z4MkU7UpEkFRrxsf2cnaKYBitqDnsCN69CPAuuMOX6NYdW2rG9sFy7V/QWtBlP5XiNQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-kafkajs@0.12.0': - resolution: - { - integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-bIe4aSAAxytp88nzBstgr6M7ZiEpW6/D1/SuKXdxxuprf18taVvFL2H5BDNGZ7A14K27haHqzYqtCTqFXHZOYg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-kafkajs@0.23.0': + resolution: {integrity: sha512-4K+nVo+zI+aDz0Z85SObwbdixIbzS9moIuKJaYsdlzcHYnKOPtB7ya8r8Ezivy/GVIBHiKJVq4tv+BEkgOMLaQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-kafkajs@0.5.0': - resolution: - { - integrity: sha512-34Jv473IVv5uKFPz9m1ONX4DAnIxPXB5xKW46imq/6Cre7fZf23P2Aa/NQyFhCNymwbcJDMv6+6uU3THGn73lQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-34Jv473IVv5uKFPz9m1ONX4DAnIxPXB5xKW46imq/6Cre7fZf23P2Aa/NQyFhCNymwbcJDMv6+6uU3THGn73lQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-knex@0.42.0': - resolution: - { - integrity: sha512-lKrr9bfYVLXXX0/p0tB3VB2zMbCgw+8CZkWd5U2d2idr7CORH0efKD+0aZukMFfg10qBaIouhFdFn5iR+34i5w==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-lKrr9bfYVLXXX0/p0tB3VB2zMbCgw+8CZkWd5U2d2idr7CORH0efKD+0aZukMFfg10qBaIouhFdFn5iR+34i5w==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-knex@0.48.0': - resolution: - { - integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-V5wuaBPv/lwGxuHjC6Na2JFRjtPgstw19jTFl1B1b6zvaX8zVDYUDaR5hL7glnQtUSCMktPttQsgK4dhXpddcA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-knex@0.58.0': + resolution: {integrity: sha512-Hc/o8fSsaWxZ8r1Yw4rNDLwTpUopTf4X32y4W6UhlHmW8Wizz8wfhgOKIelSeqFVTKBBPIDUOsQWuIMxBmu8Bw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-koa@0.45.0': - resolution: - { - integrity: sha512-nNdgmOZUkP+yR/yF0RsXapJNioORgnrA2Jl58ExlxyGUbHvHjcSAlNY7dsBljQFHhFYzBOh4NPs3TBbF681+qw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-nNdgmOZUkP+yR/yF0RsXapJNioORgnrA2Jl58ExlxyGUbHvHjcSAlNY7dsBljQFHhFYzBOh4NPs3TBbF681+qw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-koa@0.51.0': - resolution: - { - integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-XNLWeMTMG1/EkQBbgPYzCeBD0cwOrfnn8ao4hWgLv0fNCFQu1kCsJYygz2cvKuCs340RlnG4i321hX7R8gj3Rg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 + '@opentelemetry/instrumentation-koa@0.62.0': + resolution: {integrity: sha512-uVip0VuGUQXZ+vFxkKxAUNq8qNl+VFlyHDh/U6IQ8COOEDfbEchdaHnpFrMYF3psZRUuoSIgb7xOeXj00RdwDA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/instrumentation-lru-memoizer@0.42.0': - resolution: - { - integrity: sha512-536coihEiLB8E9wuSGG4j+f/9QhGQhvbb9WWF3Y+Ogn4Zz89Vm7vIQbre/M5coLLFIzVhLDoBD77QjtE+eXn0g==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-536coihEiLB8E9wuSGG4j+f/9QhGQhvbb9WWF3Y+Ogn4Zz89Vm7vIQbre/M5coLLFIzVhLDoBD77QjtE+eXn0g==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-lru-memoizer@0.48.0': - resolution: - { - integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-KUW29wfMlTPX1wFz+NNrmE7IzN7NWZDrmFWHM/VJcmFEuQGnnBuTIdsP55CnBDxKgQ/qqYFp4udQFNtjeFosPw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-lru-memoizer@0.58.0': + resolution: {integrity: sha512-6grM3TdMyHzlGY1cUA+mwoPueB1F3dYKgKtZIH6jOFXqfHAByyLTc+6PFjGM9tKh52CFBJaDwodNlL/Td39z7Q==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-memcached@0.41.0': - resolution: - { - integrity: sha512-Qrp+yl6pobVAm2F5AJizopDFtKkxwIzJ8iSnV1TDhbB8O7ct4N9p8rz3WvA3XAikS0bVw9rh/cRgYvb7g6AQcQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Qrp+yl6pobVAm2F5AJizopDFtKkxwIzJ8iSnV1TDhbB8O7ct4N9p8rz3WvA3XAikS0bVw9rh/cRgYvb7g6AQcQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongodb@0.49.0': - resolution: - { - integrity: sha512-3qIvelQxqj+znuHB6f2sLGmTG6FUbpX0qsxABEG3yPh7i11f2dJ554bUxkpVV1Y9YafP3iKEHo2ybbjjUm5xyg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-3qIvelQxqj+znuHB6f2sLGmTG6FUbpX0qsxABEG3yPh7i11f2dJ554bUxkpVV1Y9YafP3iKEHo2ybbjjUm5xyg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongodb@0.56.0': - resolution: - { - integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-YG5IXUUmxX3Md2buVMvxm9NWlKADrnavI36hbJsihqqvBGsWnIfguf0rUP5Srr0pfPqhQjUP+agLMsvu0GmUpA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongodb@0.67.0': + resolution: {integrity: sha512-1WJp5N1lYfHq2IhECOTewFs5Tf2NfUOwQRqs/rZdXKTezArMlucxgzAaqcgp3A3YREXopXTpXHsxZTGHjNhMdQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongoose@0.44.0': - resolution: - { - integrity: sha512-gBwxWvUFxTcXDXiLTqpiM7jyOS27X5x8saQesG8RsL128yxAoN3oiy3Hn3hIw13nkh+AHTXBTiADVD/lkazuiA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-gBwxWvUFxTcXDXiLTqpiM7jyOS27X5x8saQesG8RsL128yxAoN3oiy3Hn3hIw13nkh+AHTXBTiADVD/lkazuiA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mongoose@0.50.0': - resolution: - { - integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-Am8pk1Ct951r4qCiqkBcGmPIgGhoDiFcRtqPSLbJrUZqEPUsigjtMjoWDRLG1Ki1NHgOF7D0H7d+suWz1AAizw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mongoose@0.60.0': + resolution: {integrity: sha512-8BahAZpKsOoc+lrZGb7Ofn4g3z8qtp5IxDfvAVpKXsEheQN7ONMH5djT5ihy6yf8yyeQJGS0gXFfpEAEeEHqQg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql2@0.43.0': - resolution: - { - integrity: sha512-9W1AxMfrZV3ZeYBPjz8bkMRIRf1od4h+QZLw+m575lu41DMQIprcHXRZbyZRXZG+tgqM3YNBiNZCI2bDV3x46Q==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-9W1AxMfrZV3ZeYBPjz8bkMRIRf1od4h+QZLw+m575lu41DMQIprcHXRZbyZRXZG+tgqM3YNBiNZCI2bDV3x46Q==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql2@0.49.0': - resolution: - { - integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-dCub9wc02mkJWNyHdVEZ7dvRzy295SmNJa+LrAJY2a/+tIiVBQqEAajFzKwp9zegVVnel9L+WORu34rGLQDzxA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql2@0.60.0': + resolution: {integrity: sha512-m/5d3bxQALllCzezYDk/6vajh0tj5OijMMvOZGr+qN1NMXm1dzMNwyJ0gNZW7Fo3YFRyj/jJMxIw+W7d525dlw==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql@0.43.0': - resolution: - { - integrity: sha512-Yd4QLENitUAovh5JKbDIvzLVkt+3InnQYiWqcD4X7VjUGdVlZuCgMNkyUl6ML3WonH60jDy7S2rmLZAlWm7qTg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Yd4QLENitUAovh5JKbDIvzLVkt+3InnQYiWqcD4X7VjUGdVlZuCgMNkyUl6ML3WonH60jDy7S2rmLZAlWm7qTg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-mysql@0.49.0': - resolution: - { - integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-QU9IUNqNsrlfE3dJkZnFHqLjlndiU39ll/YAAEvWE40sGOCi9AtOF6rmEGzJ1IswoZ3oyePV7q2MP8SrhJfVAA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-mysql@0.60.0': + resolution: {integrity: sha512-08pO8GFPEIz2zquKDGteBZDNmwketdgH8hTe9rVYgW9kCJXq1Psj3wPQGx+VaX4ZJKCfPeoLMYup9+cxHvZyVQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-nestjs-core@0.42.0': - resolution: - { - integrity: sha512-+JRi91A2Ue8JOY7WJ3oSq4HFB6+qIQQ62uu77fKLqV0xn0ft8YX/hDJceUJEKgqPlJMbHH5ppZlCrSPc/d3t0w==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+JRi91A2Ue8JOY7WJ3oSq4HFB6+qIQQ62uu77fKLqV0xn0ft8YX/hDJceUJEKgqPlJMbHH5ppZlCrSPc/d3t0w==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-net@0.41.0': - resolution: - { - integrity: sha512-3IqTpOaNxnCaCzCcFFPwGmX+b626Gx/uSHe61kP1kVDzhIKpwhgrzwWstdI2ZEzMa1jpNzharque/y9wEpsg8A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-3IqTpOaNxnCaCzCcFFPwGmX+b626Gx/uSHe61kP1kVDzhIKpwhgrzwWstdI2ZEzMa1jpNzharque/y9wEpsg8A==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-pg@0.48.0': - resolution: - { - integrity: sha512-z0eG0A6SUXM/zSBisFVYrcp6aYbO8z1+R7cM7hxURBm8ccS98kVvZ+9UpLFd61YpSeof4bGhFsA8wqgNgqh4Vg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-z0eG0A6SUXM/zSBisFVYrcp6aYbO8z1+R7cM7hxURBm8ccS98kVvZ+9UpLFd61YpSeof4bGhFsA8wqgNgqh4Vg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-pg@0.55.0': - resolution: - { - integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-yfJ5bYE7CnkW/uNsnrwouG/FR7nmg09zdk2MSs7k0ZOMkDDAE3WBGpVFFApGgNu2U+gtzLgEzOQG4I/X+60hXw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-pg@0.66.0': + resolution: {integrity: sha512-KxfLGXBb7k2ueaPJfq2GXBDXBly8P+SpR/4Mj410hhNgmQF3sCqwXvUBQxZQkDAmsdBAoenM+yV1LhtsMRamcA==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-pino@0.44.0': - resolution: - { - integrity: sha512-nyu6A1Zq3z/GUsfIJLsEMmUZrdqdVeQSESx8i7PzvUiVYyEdvf8w1sg4oPCBrSwl0PFU7FR4uYR4d04/QxFCoA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-nyu6A1Zq3z/GUsfIJLsEMmUZrdqdVeQSESx8i7PzvUiVYyEdvf8w1sg4oPCBrSwl0PFU7FR4uYR4d04/QxFCoA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-redis-4@0.44.0': - resolution: - { - integrity: sha512-mT4iGxqBeD4vUd2Dp5QG2UxaduWENHzsiPEgFvsPwSDARkyCXbTxCyOoXTTR53Vb4L8EklprbRBjukbljCdMTA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-mT4iGxqBeD4vUd2Dp5QG2UxaduWENHzsiPEgFvsPwSDARkyCXbTxCyOoXTTR53Vb4L8EklprbRBjukbljCdMTA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-redis@0.44.0': - resolution: - { - integrity: sha512-QKBrjwHSejj/31JpxyI6wWEFK6ZqPmY/5ARFvzd7jSuTNtH2lMQ+Gb0j1T5hLJ6j3dDtFceYnC7CGXTSsx1jxg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-QKBrjwHSejj/31JpxyI6wWEFK6ZqPmY/5ARFvzd7jSuTNtH2lMQ+Gb0j1T5hLJ6j3dDtFceYnC7CGXTSsx1jxg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-redis@0.51.0': - resolution: - { - integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-uL/GtBA0u72YPPehwOvthAe+Wf8k3T+XQPBssJmTYl6fzuZjNq8zTfxVFhl9nRFjFVEe+CtiYNT0Q3AyqW1Z0A==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-redis@0.62.0': + resolution: {integrity: sha512-y3pPpot7WzR/8JtHcYlTYsyY8g+pbFhAqbwAuG5bLPnR6v6pt1rQc0DpH0OlGP/9CZbWBP+Zhwp9yFoygf/ZXQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-restify@0.43.0': - resolution: - { - integrity: sha512-gNO8cAF7lPCCcWOPlx17LLTKKz2+jKkHI4OGhNoM+yUCG2KXBD5cZ8+XzL/EVLRL0GXHgV4Un4eeBnCUjXYTOw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-gNO8cAF7lPCCcWOPlx17LLTKKz2+jKkHI4OGhNoM+yUCG2KXBD5cZ8+XzL/EVLRL0GXHgV4Un4eeBnCUjXYTOw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-router@0.42.0': - resolution: - { - integrity: sha512-bA0gmEIOZCkCbrnzWU5auSWPlEcU72URka0nQq3H+zoDaToO+Yi1756h9g5jL/9gx6YFzO5+ufRqVh4tNzf2Jw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-bA0gmEIOZCkCbrnzWU5auSWPlEcU72URka0nQq3H+zoDaToO+Yi1756h9g5jL/9gx6YFzO5+ufRqVh4tNzf2Jw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-socket.io@0.44.0': - resolution: - { - integrity: sha512-Gf53pjHae88FrFY6eUHBGylJcFp90zd4HM5JlrIrTRfM28im7IijsCPSgMYez2m8Anr72aWrEoRtOJWfo7tE0Q==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Gf53pjHae88FrFY6eUHBGylJcFp90zd4HM5JlrIrTRfM28im7IijsCPSgMYez2m8Anr72aWrEoRtOJWfo7tE0Q==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-tedious@0.16.0': - resolution: - { - integrity: sha512-mIzPC0fioXb9KQOm03UgGZDXwSBzYdCIT/6+S4jYHquLeVJvfKe4ivZo7bfNV0yHzfINpOefog76wlZ94tr3OA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-mIzPC0fioXb9KQOm03UgGZDXwSBzYdCIT/6+S4jYHquLeVJvfKe4ivZo7bfNV0yHzfINpOefog76wlZ94tr3OA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-tedious@0.22.0': - resolution: - { - integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-XrrNSUCyEjH1ax9t+Uo6lv0S2FCCykcF7hSxBMxKf7Xn0bPRxD3KyFUZy25aQXzbbbUHhtdxj3r2h88SfEM3aA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation-tedious@0.33.0': + resolution: {integrity: sha512-Q6WQwAD01MMTub31GlejoiFACYNw26J426wyjvU7by7fDIr2nZXNW4vhTGs7i7F0TnXBO3xN688g1tdUgYwJ5w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation-undici@0.14.0': - resolution: - { - integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-2HN+7ztxAReXuxzrtA3WboAKlfP5OsPA57KQn2AdYZbJ3zeRPcLXyW4uO/jpLE6PLm0QRtmeGCmfYpqRlwgSwg==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.7.0 '@opentelemetry/instrumentation-undici@0.8.0': - resolution: - { - integrity: sha512-XUab3nrvk2CPjOTlIPJNUv3v0KIpK6flxF67Re6PoxVaxtN4Zh5hfUTowndn7rXMGwz2feO5LpDWjqfMQw8veQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-XUab3nrvk2CPjOTlIPJNUv3v0KIpK6flxF67Re6PoxVaxtN4Zh5hfUTowndn7rXMGwz2feO5LpDWjqfMQw8veQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.7.0 '@opentelemetry/instrumentation-winston@0.42.0': - resolution: - { - integrity: sha512-kaMbm2oITQpX6q59gOsv5dPuZEXzLNnQYZiICg5P0XdsVCQkbvmWK3xoPhHTgdXUyhgIHc5uUiMknHmHfXqMQQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-kaMbm2oITQpX6q59gOsv5dPuZEXzLNnQYZiICg5P0XdsVCQkbvmWK3xoPhHTgdXUyhgIHc5uUiMknHmHfXqMQQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.203.0': - resolution: - { - integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-ke1qyM+3AK2zPuBPb6Hk/GCsc5ewbLvPNkEuELx/JmANeEp6ZjnZ+wypPAJSucTw0wvCGrUaibDSdcrGFoWxKQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.207.0': + resolution: {integrity: sha512-y6eeli9+TLKnznrR8AZlQMSJT7wILpXH+6EYq5Vf/4Ao+huI7EedxQHwRgVUOMLFbe7VFDvHJrX9/f4lcwnJsA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.212.0': + resolution: {integrity: sha512-IyXmpNnifNouMOe0I/gX7ENfv2ZCNdYTF0FpCsoBcpbIHzk81Ww9rQTYTnvghszCg7qGrIhNvWC8dhEifgX9Jg==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.3.0 + + '@opentelemetry/instrumentation@0.214.0': + resolution: {integrity: sha512-MHqEX5Dk59cqVah5LiARMACku7jXSVk9iVDWOea4x3cr7VfdByeDCURK6o1lntT1JS/Tsovw01UJrBhN3/uC5w==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.46.0': - resolution: - { - integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-a9TijXZZbk0vI5TGLZl+0kxyFfrXHhX6Svtz7Pp2/VBlCSKrazuULEyoJQrOknJyFWNMEmbbJgOciHCCpQcisw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.55.0': - resolution: - { - integrity: sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-YDCMlaQRZkziLL3t6TONRgmmGxDx6MyQDXRD0dknkkgUZtOK5+8MWft1OXzmNu6XfBOdT12MKN5rz+jHUkafKQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/instrumentation@0.57.2': - resolution: - { - integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-BdBGhQBh8IjZ2oIIX6F2/Q3LKm/FDDKi6ccYKcBTeilh6SNdNKveDOLk73BkSJjQLJk6qe4Yh+hHw1UPhCDdrg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/otlp-exporter-base@0.46.0': - resolution: - { - integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-hfkh7cG17l77ZSLRAogz19SIJzr0KeC7xv5PDyTFbHFpwwoxV/bEViO49CqUFH6ckXB63NrltASP9R7po+ahTQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/otlp-exporter-base@0.55.0': - resolution: - { - integrity: sha512-iHQI0Zzq3h1T6xUJTVFwmFl5Dt5y1es+fl4kM+k5T/3YvmVyeYkSiF+wHCg6oKrlUAJfk+t55kaAu3sYmt7ZYA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-iHQI0Zzq3h1T6xUJTVFwmFl5Dt5y1es+fl4kM+k5T/3YvmVyeYkSiF+wHCg6oKrlUAJfk+t55kaAu3sYmt7ZYA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/otlp-grpc-exporter-base@0.46.0': - resolution: - { - integrity: sha512-/KB/xfZZiWIY2JknvCoT/e9paIzQO3QCBN5gR6RyxpXM/AGx3YTAOKvB/Ts9Va19jo5aE74gB7emhFaCNy4Rmw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-/KB/xfZZiWIY2JknvCoT/e9paIzQO3QCBN5gR6RyxpXM/AGx3YTAOKvB/Ts9Va19jo5aE74gB7emhFaCNy4Rmw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/otlp-grpc-exporter-base@0.55.0': - resolution: - { - integrity: sha512-gebbjl9FiSp52igWXuGjcWQKfB6IBwFGt5z1VFwTcVZVeEZevB6bJIqoFrhH4A02m7OUlpJ7l4EfRi3UtkNANQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-gebbjl9FiSp52igWXuGjcWQKfB6IBwFGt5z1VFwTcVZVeEZevB6bJIqoFrhH4A02m7OUlpJ7l4EfRi3UtkNANQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/otlp-proto-exporter-base@0.46.0': - resolution: - { - integrity: sha512-rEJBA8U2AxfEzrdIUcyyjOweyVFkO6V1XAxwP161JkxpvNuVDdULHAfRVnGtoZhiVA1XsJKcpIIq2MEKAqq4cg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-rEJBA8U2AxfEzrdIUcyyjOweyVFkO6V1XAxwP161JkxpvNuVDdULHAfRVnGtoZhiVA1XsJKcpIIq2MEKAqq4cg==} + engines: {node: '>=14'} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/otlp-transformer@0.46.0': - resolution: - { - integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Fj9hZwr6xuqgsaERn667Uf6kuDG884puWhyrai2Jen2Fq+bGf4/5BzEJp/8xvty0VSU4EfXOto/ys3KpSz2UHg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' '@opentelemetry/otlp-transformer@0.55.0': - resolution: - { - integrity: sha512-kVqEfxtp6mSN2Dhpy0REo1ghP4PYhC1kMHQJ2qVlO99Pc+aigELjZDfg7/YKmL71gR6wVGIeJfiql/eXL7sQPA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-kVqEfxtp6mSN2Dhpy0REo1ghP4PYhC1kMHQJ2qVlO99Pc+aigELjZDfg7/YKmL71gR6wVGIeJfiql/eXL7sQPA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.3.0 '@opentelemetry/propagation-utils@0.30.16': - resolution: - { - integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ZVQ3Z/PQ+2GQlrBfbMMMT0U7MzvYZLCPP800+ooyaBqm4hMvuQHfP028gB9/db0mwkmyEAMad9houukUVxhwcw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/propagator-b3@1.19.0': - resolution: - { - integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-v7y5IBOKBm0vP3yf0DHzlw4L2gL6tZ0KeeMTaxfO5IuomMffDbrGWcvYFp0Dt4LdZctTSK523rVLBB9FBHBciQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/propagator-b3@1.28.0': - resolution: - { - integrity: sha512-Q7HVDIMwhN5RxL4bECMT4BdbyYSAKkC6U/RGn4NpO/cbqP6ZRg+BS7fPo/pGZi2w8AHfpIGQFXQmE8d2PC5xxQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Q7HVDIMwhN5RxL4bECMT4BdbyYSAKkC6U/RGn4NpO/cbqP6ZRg+BS7fPo/pGZi2w8AHfpIGQFXQmE8d2PC5xxQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/propagator-jaeger@1.19.0': - resolution: - { - integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-dedkOoTzKg+nYoLWCMp0Im+wo+XkTRW6aXhi8VQRtMW/9SNJGOllCJSu8llToLxMDF0+6zu7OCrKkevAof2tew==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/propagator-jaeger@1.28.0': - resolution: - { - integrity: sha512-wKJ94+s8467CnIRgoSRh0yXm/te0QMOwTq9J01PfG/RzYZvlvN8aRisN2oZ9SznB45dDGnMj3BhUlchSA9cEKA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-wKJ94+s8467CnIRgoSRh0yXm/te0QMOwTq9J01PfG/RzYZvlvN8aRisN2oZ9SznB45dDGnMj3BhUlchSA9cEKA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/redis-common@0.36.2': - resolution: - { - integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-faYX1N0gpLhej/6nyp6bgRjzAKXn5GOEMYY7YhciSfCoITAktLUtQ36d24QEWNA1/WA1y6qQunCe0OhHRkVl9g==} + engines: {node: '>=14'} '@opentelemetry/redis-common@0.38.0': - resolution: - { - integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-4Wc0AWURII2cfXVVoZ6vDqK+s5n4K5IssdrlVrvGsx6OEOKdghKtJZqXAHWFiZv4nTDLH2/2fldjIHY8clMOjQ==} + engines: {node: ^18.19.0 || >=20.6.0} + + '@opentelemetry/redis-common@0.38.3': + resolution: {integrity: sha512-VCghU1JYs/4gP6Gqf/xro9MEsZ7LrMv2uONVsaESKL38ZOB9BqnI98FfS23wjMnHlpuE+TTaWSoAVNpTwYXzjw==} + engines: {node: ^18.19.0 || >=20.6.0} '@opentelemetry/resource-detector-alibaba-cloud@0.29.7': - resolution: - { - integrity: sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-PExUl/R+reSQI6Y/eNtgAsk6RHk1ElYSzOa8/FHfdc/nLmx9sqMasBEpLMkETkzDP7t27ORuXe4F9vwkV2uwwg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-aws@1.12.0': - resolution: - { - integrity: sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Cvi7ckOqiiuWlHBdA1IjS0ufr3sltex2Uws2RK6loVp4gzIJyOijsddAI6IZ5kiO8h/LgCWe8gxPmwkTKImd+Q==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-azure@0.3.0': - resolution: - { - integrity: sha512-MFKiCQ+rUxCwJJH0ZLcdtsJ6FK/vLERsBhcu5pKHPSupdauVPaR5iRibApoF9dxZ1wuG5f+BRFO+USGdZXorDg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-MFKiCQ+rUxCwJJH0ZLcdtsJ6FK/vLERsBhcu5pKHPSupdauVPaR5iRibApoF9dxZ1wuG5f+BRFO+USGdZXorDg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-container@0.5.3': - resolution: - { - integrity: sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-x5DxWu+ZALBuFpxwO2viv9ktH4Y3Gk9LaYKn2U8J+aeD412iy/OcGLPbQ76Px7pQ8qaJ5rnjcevBOHYT4aA+zQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resource-detector-gcp@0.30.0': - resolution: - { - integrity: sha512-lEbeiPEQtD+JGknF1ZZ6W7hsr1Ul9V27S68tIaPrY6WNdnuTL/7vcZSKHO8eu6NnCNJ7Up9oGFloMb2sfUazig==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-lEbeiPEQtD+JGknF1ZZ6W7hsr1Ul9V27S68tIaPrY6WNdnuTL/7vcZSKHO8eu6NnCNJ7Up9oGFloMb2sfUazig==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.0.0 '@opentelemetry/resources@1.19.0': - resolution: - { - integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-RgxvKuuMOf7nctOeOvpDjt2BpZvZGr9Y0vf7eGtY5XYZPkh2p7e2qub1S2IArdBMf9kEbz0SfycqCviOu9isqg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/resources@1.28.0': - resolution: - { - integrity: sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-cIyXSVJjGeTICENN40YSvLDAq4Y2502hGK3iN7tfdynQLKWb3XWZQEkPc+eSx47kiy11YeFAlYkEfXwR1w8kfw==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/resources@1.30.1': - resolution: - { - integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-5UxZqiAgLYGFjS4s9qm5mBVo433u+dSPUFWVWXmLAD4wB65oMCoXaJP1KJa9DIYYMeHu3z4BZcStG3LC593cWA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/resources@2.0.1': - resolution: - { - integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-dZOB3R6zvBwDKnHDTB4X1xtMArB/d324VsbiPkX/Yu0Q8T2xceRthoIVFhJdvgVM2QhGVUyX9tzwiNxGtoBJUw==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/resources@2.7.0': + resolution: {integrity: sha512-K+oi0hNMv94EpZbnW3eyu2X6SGVpD3O5DhG2NIp65Hc7lhAj9brRXTAVzh3wB82+q3ThakEf7Zd7RsFUqcTc7A==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-logs@0.46.0': - resolution: - { - integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Knlyk4+G72uEzNh6GRN1Fhmrj+/rkATI5/lOrevN7zRDLgp4kfyZBGGoWk7w+qQjlYvwhIIdPVxlIcipivdZIg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.8.0' '@opentelemetry/api-logs': '>=0.39.1' '@opentelemetry/sdk-logs@0.55.0': - resolution: - { - integrity: sha512-TSx+Yg/d48uWW6HtjS1AD5x6WPfLhDWLl/WxC7I2fMevaiBuKCuraxTB8MDXieCNnBI24bw9ytyXrDCswFfWgA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-TSx+Yg/d48uWW6HtjS1AD5x6WPfLhDWLl/WxC7I2fMevaiBuKCuraxTB8MDXieCNnBI24bw9ytyXrDCswFfWgA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.4.0 <1.10.0' '@opentelemetry/sdk-metrics@1.19.0': - resolution: - { - integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-FiMii40zr0Fmys4F1i8gmuCvbinBnBsDeGBr4FQemOf0iPCLytYQm5AZJ/nn4xSc71IgKBQwTFQRAGJI7JvZ4Q==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' '@opentelemetry/sdk-metrics@1.28.0': - resolution: - { - integrity: sha512-43tqMK/0BcKTyOvm15/WQ3HLr0Vu/ucAl/D84NO7iSlv6O4eOprxSHa3sUtmYkaZWHqdDJV0AHVz/R6u4JALVQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-43tqMK/0BcKTyOvm15/WQ3HLr0Vu/ucAl/D84NO7iSlv6O4eOprxSHa3sUtmYkaZWHqdDJV0AHVz/R6u4JALVQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-node@0.46.0': - resolution: - { - integrity: sha512-BQhzdCRZXchhKjZaFkgxlgoowjOt/QXekJ1CZgfvFO9Yg5GV15LyJFUEyQkDyD8XbshGo3Cnj0WZMBnDWtWY1A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-BQhzdCRZXchhKjZaFkgxlgoowjOt/QXekJ1CZgfvFO9Yg5GV15LyJFUEyQkDyD8XbshGo3Cnj0WZMBnDWtWY1A==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.8.0' '@opentelemetry/sdk-node@0.55.0': - resolution: - { - integrity: sha512-gSXQWV23+9vhbjsvAIeM0LxY3W8DTKI3MZlzFp61noIb1jSr46ET+qoUjHlfZ1Yymebv9KXWeZsqhft81HBXuQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-gSXQWV23+9vhbjsvAIeM0LxY3W8DTKI3MZlzFp61noIb1jSr46ET+qoUjHlfZ1Yymebv9KXWeZsqhft81HBXuQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-base@1.19.0': - resolution: - { - integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+IRvUm+huJn2KqfFW3yW/cjvRwJ8Q7FzYHoUNx5Fr0Lws0LxjMJG1uVB8HDpLwm7mg5XXH2M5MF+0jj5cM8BpQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/sdk-trace-base@1.28.0': - resolution: - { - integrity: sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-ceUVWuCpIao7Y5xE02Xs3nQi0tOGmMea17ecBdwtCvdo9ekmO+ijc9RFDgfifMl7XCBf41zne/1POM3LqSTZDA==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/sdk-trace-base@2.0.1': - resolution: - { - integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-xYLlvk/xdScGx1aEqvxLwf6sXQLXCjk3/1SQT9X9AoN5rXRhkdvIFShuNNmtTEPRBqcsMbS4p/gJLNI2wXaDuQ==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': '>=1.3.0 <1.10.0' + + '@opentelemetry/sdk-trace-base@2.7.0': + resolution: {integrity: sha512-Yg9zEXJB50DLVLpsKPk7NmNqlPlS+OvqhJGh0A8oawIOTPOwlm4eXs9BMJV7L79lvEwI+dWtAj+YjTyddV336A==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': '>=1.3.0 <1.10.0' '@opentelemetry/sdk-trace-node@1.19.0': - resolution: - { - integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-TCiEq/cUjM15RFqBRwWomTVbOqzndWL4ILa7ZCu0zbjU1/XY6AgHkgrgAc7vGP6TjRqH4Xryuglol8tcIfbBUQ==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.8.0' '@opentelemetry/sdk-trace-node@1.28.0': - resolution: - { - integrity: sha512-N0sYfYXvHpP0FNIyc+UfhLnLSTOuZLytV0qQVrDWIlABeD/DWJIGttS7nYeR14gQLXch0M1DW8zm3VeN6Opwtg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-N0sYfYXvHpP0FNIyc+UfhLnLSTOuZLytV0qQVrDWIlABeD/DWJIGttS7nYeR14gQLXch0M1DW8zm3VeN6Opwtg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': '>=1.0.0 <1.10.0' '@opentelemetry/semantic-conventions@1.19.0': - resolution: - { - integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-14jRpC8f5c0gPSwoZ7SbEJni1PqI+AhAE8m1bMz6v+RPM4OlP1PT2UHBJj5Qh/ALLPjhVU/aZUK3YyjTUqqQVg==} + engines: {node: '>=14'} '@opentelemetry/semantic-conventions@1.27.0': - resolution: - { - integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-sAay1RrB+ONOem0OZanAR1ZI/k7yDpnOQSQmTMuGImUQb2y8EbSaCJ94FQluM74xoU03vlb2d2U90hZluL6nQg==} + engines: {node: '>=14'} '@opentelemetry/semantic-conventions@1.28.0': - resolution: - { - integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==} + engines: {node: '>=14'} '@opentelemetry/semantic-conventions@1.36.0': - resolution: - { - integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-TtxJSRD8Ohxp6bKkhrm27JRHAxPczQA7idtcTOMYI+wQRRrfgqxHv1cFbCApcSnNjtXkmzFozn6jQtFrOmbjPQ==} + engines: {node: '>=14'} + + '@opentelemetry/semantic-conventions@1.40.0': + resolution: {integrity: sha512-cifvXDhcqMwwTlTK04GBNeIe7yyo28Mfby85QXFe1Yk8nmi36Ab/5UQwptOx84SsoGNRg+EVSjwzfSZMy6pmlw==} + engines: {node: '>=14'} '@opentelemetry/sql-common@0.40.1': - resolution: - { - integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-nSDlnHSqzC3pXn/wZEZVLuAuJ1MYMXPBwtv2qAbCa3847SaHItdE7SzUq/Jtb0KZmh1zfAbNi3AAMjztTT4Ugg==} + engines: {node: '>=14'} peerDependencies: '@opentelemetry/api': ^1.1.0 '@opentelemetry/sql-common@0.41.0': - resolution: - { - integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==, - } - engines: { node: ^18.19.0 || >=20.6.0 } + resolution: {integrity: sha512-pmzXctVbEERbqSfiAgdes9Y63xjoOyXcD7B6IXBkVb+vbM7M9U98mn33nGXxPf4dfYR0M+vhcKRZmbSJ7HfqFA==} + engines: {node: ^18.19.0 || >=20.6.0} + peerDependencies: + '@opentelemetry/api': ^1.1.0 + + '@opentelemetry/sql-common@0.41.2': + resolution: {integrity: sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==} + engines: {node: ^18.19.0 || >=20.6.0} peerDependencies: '@opentelemetry/api': ^1.1.0 '@oslojs/asn1@1.0.0': - resolution: - { - integrity: sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==, - } + resolution: {integrity: sha512-zw/wn0sj0j0QKbIXfIlnEcTviaCzYOY3V5rAyjR6YtOByFtJiT574+8p9Wlach0lZH9fddD4yb9laEAIl4vXQA==} '@oslojs/binary@1.0.0': - resolution: - { - integrity: sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==, - } + resolution: {integrity: sha512-9RCU6OwXU6p67H4NODbuxv2S3eenuQ4/WFLrsq+K/k682xrznH5EVWA7N4VFk9VYVcbFtKqur5YQQZc0ySGhsQ==} '@oslojs/crypto@1.0.1': - resolution: - { - integrity: sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==, - } + resolution: {integrity: sha512-7n08G8nWjAr/Yu3vu9zzrd0L9XnrJfpMioQcvCMxBIiF5orECHe5/3J0jmXRVvgfqMm/+4oxlQ+Sq39COYLcNQ==} '@oslojs/encoding@1.1.0': - resolution: - { - integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==, - } + resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} '@pagefind/darwin-arm64@1.3.0': - resolution: - { - integrity: sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==, - } + resolution: {integrity: sha512-365BEGl6ChOsauRjyVpBjXybflXAOvoMROw3TucAROHIcdBvXk9/2AmEvGFU0r75+vdQI4LJdJdpH4Y6Yqaj4A==} cpu: [arm64] os: [darwin] '@pagefind/darwin-x64@1.3.0': - resolution: - { - integrity: sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==, - } + resolution: {integrity: sha512-zlGHA23uuXmS8z3XxEGmbHpWDxXfPZ47QS06tGUq0HDcZjXjXHeLG+cboOy828QIV5FXsm9MjfkP5e4ZNbOkow==} cpu: [x64] os: [darwin] '@pagefind/linux-arm64@1.3.0': - resolution: - { - integrity: sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==, - } + resolution: {integrity: sha512-8lsxNAiBRUk72JvetSBXs4WRpYrQrVJXjlRRnOL6UCdBN9Nlsz0t7hWstRk36+JqHpGWOKYiuHLzGYqYAqoOnQ==} cpu: [arm64] os: [linux] '@pagefind/linux-x64@1.3.0': - resolution: - { - integrity: sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==, - } + resolution: {integrity: sha512-hAvqdPJv7A20Ucb6FQGE6jhjqy+vZ6pf+s2tFMNtMBG+fzcdc91uTw7aP/1Vo5plD0dAOHwdxfkyw0ugal4kcQ==} cpu: [x64] os: [linux] '@pagefind/windows-x64@1.3.0': - resolution: - { - integrity: sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==, - } + resolution: {integrity: sha512-BR1bIRWOMqkf8IoU576YDhij1Wd/Zf2kX/kCI0b2qzCKC8wcc2GQJaaRMCpzvCCrmliO4vtJ6RITp/AnoYUUmQ==} cpu: [x64] os: [win32] '@pkgjs/parseargs@0.11.0': - resolution: - { - integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==} + engines: {node: '>=14'} '@playwright/test@1.53.0': - resolution: - { - integrity: sha512-15hjKreZDcp7t6TL/7jkAo6Df5STZN09jGiv5dbP9A6vMVncXRqE7/B2SncsyOwrkZRBH2i6/TPOL8BVmm3c7w==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-15hjKreZDcp7t6TL/7jkAo6Df5STZN09jGiv5dbP9A6vMVncXRqE7/B2SncsyOwrkZRBH2i6/TPOL8BVmm3c7w==} + engines: {node: '>=18'} hasBin: true '@polka/url@1.0.0-next.29': - resolution: - { - integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==, - } + resolution: {integrity: sha512-wwQAWhWSuHaag8c4q/KN/vCoeOJYshAIvMQwD4GpSb3OiZklFfvAgmj0VCBBImRpuF/aFgIRzllXlVX93Jevww==} '@preconstruct/cli@2.8.12': - resolution: - { - integrity: sha512-SMsMICUWROmu/vb4cmrk7EJUiWhgNjB3U3tM654K9bu9yECXqrPN473vliO7KPV3CSLhmtl3S4nfcMirEJmyZg==, - } + resolution: {integrity: sha512-SMsMICUWROmu/vb4cmrk7EJUiWhgNjB3U3tM654K9bu9yECXqrPN473vliO7KPV3CSLhmtl3S4nfcMirEJmyZg==} hasBin: true '@preconstruct/hook@0.4.0': - resolution: - { - integrity: sha512-a7mrlPTM3tAFJyz43qb4pPVpUx8j8TzZBFsNFqcKcE/sEakNXRlQAuCT4RGZRf9dQiiUnBahzSIWawU4rENl+Q==, - } + resolution: {integrity: sha512-a7mrlPTM3tAFJyz43qb4pPVpUx8j8TzZBFsNFqcKcE/sEakNXRlQAuCT4RGZRf9dQiiUnBahzSIWawU4rENl+Q==} '@preconstruct/next@4.0.0': - resolution: - { - integrity: sha512-vSrc8wFQgBErU7dKTKSQtr/DLWPHcN9jMoiWOAQodB1+B4Kpqqry6QhGYoRm0DQU5gNL+Rcp+Xb350O1E/gjsg==, - } + resolution: {integrity: sha512-vSrc8wFQgBErU7dKTKSQtr/DLWPHcN9jMoiWOAQodB1+B4Kpqqry6QhGYoRm0DQU5gNL+Rcp+Xb350O1E/gjsg==} '@prisma/client@5.19.1': - resolution: - { - integrity: sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==, - } - engines: { node: '>=16.13' } + resolution: {integrity: sha512-x30GFguInsgt+4z5I4WbkZP2CGpotJMUXy+Gl/aaUjHn2o1DnLYNTA+q9XdYmAQZM8fIIkvUiA2NpgosM3fneg==} + engines: {node: '>=16.13'} peerDependencies: prisma: '*' peerDependenciesMeta: @@ -6805,186 +5252,101 @@ packages: optional: true '@prisma/debug@5.0.0': - resolution: - { - integrity: sha512-3q/M/KqlQ01/HJXifU/zCNOHkoTWu24kGelMF/IBrRxm7njPqTTbwfnT1dh4JK+nuWM5/Dg1Lv00u2c0l7AHxg==, - } + resolution: {integrity: sha512-3q/M/KqlQ01/HJXifU/zCNOHkoTWu24kGelMF/IBrRxm7njPqTTbwfnT1dh4JK+nuWM5/Dg1Lv00u2c0l7AHxg==} '@prisma/debug@5.22.0': - resolution: - { - integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==, - } + resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: - { - integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==, - } + resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} '@prisma/engines@5.0.0': - resolution: - { - integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==, - } + resolution: {integrity: sha512-kyT/8fd0OpWmhAU5YnY7eP31brW1q1YrTGoblWrhQJDiN/1K+Z8S1kylcmtjqx5wsUGcP1HBWutayA/jtyt+sg==} '@prisma/engines@5.22.0': - resolution: - { - integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==, - } + resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} '@prisma/fetch-engine@5.0.0': - resolution: - { - integrity: sha512-eSzHTE0KcMvM5+O1++eaMuVf4D1zwWHdqjWr6D70skCg37q7RYsuty4GFnlWBuqC4aXwVf06EvIxiJ0SQIIeRw==, - } + resolution: {integrity: sha512-eSzHTE0KcMvM5+O1++eaMuVf4D1zwWHdqjWr6D70skCg37q7RYsuty4GFnlWBuqC4aXwVf06EvIxiJ0SQIIeRw==} '@prisma/fetch-engine@5.22.0': - resolution: - { - integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==, - } + resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} '@prisma/generator-helper@5.0.0': - resolution: - { - integrity: sha512-pufQ1mhoH6WzKNtzL79HZDoW4Ql3Lf8QEKVmBoW8e3Tdb50bxpYBYue5LBqp9vNW1xd1pgZO53cNiRfLX2d4Zg==, - } + resolution: {integrity: sha512-pufQ1mhoH6WzKNtzL79HZDoW4Ql3Lf8QEKVmBoW8e3Tdb50bxpYBYue5LBqp9vNW1xd1pgZO53cNiRfLX2d4Zg==} '@prisma/generator-helper@5.22.0': - resolution: - { - integrity: sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==, - } + resolution: {integrity: sha512-LwqcBQ5/QsuAaLNQZAIVIAJDJBMjHwMwn16e06IYx/3Okj/xEEfw9IvrqB2cJCl3b2mCBlh3eVH0w9WGmi4aHg==} '@prisma/get-platform@5.0.0': - resolution: - { - integrity: sha512-JT/rz/jaMTggDkd9OIma50si9rPLzSFe7XSrV3mKXwtv9t+rdwx5ZhmKJd+Rz6S1vhn/291k21JLfaxOW6u8KQ==, - } + resolution: {integrity: sha512-JT/rz/jaMTggDkd9OIma50si9rPLzSFe7XSrV3mKXwtv9t+rdwx5ZhmKJd+Rz6S1vhn/291k21JLfaxOW6u8KQ==} '@prisma/get-platform@5.22.0': - resolution: - { - integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==, - } + resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} '@prisma/instrumentation@6.13.0': - resolution: - { - integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==, - } + resolution: {integrity: sha512-b97b0sBycGh89RQcqobSgjGl3jwPaC5cQIOFod6EX1v0zIxlXPmL3ckSXxoHpy+Js0QV/tgCzFvqicMJCtezBA==} + peerDependencies: + '@opentelemetry/api': ^1.8 + + '@prisma/instrumentation@7.6.0': + resolution: {integrity: sha512-ZPW2gRiwpPzEfgeZgaekhqXrbW+Y2RJKHVqUmlhZhKzRNCcvR6DykzylDrynpArKKRQtLxoZy36fK7U0p3pdgQ==} peerDependencies: '@opentelemetry/api': ^1.8 '@prisma/internals@5.0.0': - resolution: - { - integrity: sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ==, - } + resolution: {integrity: sha512-VGWyFk6QlSBXT8z65Alq5F3o9E8IiTtaBoa3rmKkGpZjUk85kJy3jZz4xkRv53TaeghGE5rWfwkfak26KtY5yQ==} '@prisma/internals@5.22.0': - resolution: - { - integrity: sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==, - } + resolution: {integrity: sha512-Rsjw2ARB9VQzDczzEimUriSBdXmYG/Z5tNRer2IEwof/O8Q6A9cqV3oNVUpJ52TgWfQqMAq5K/KEf8LvvYLLOw==} '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': - resolution: - { - integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==, - } + resolution: {integrity: sha512-JFdsnSgBPN8reDTLOI9Vh/6ccCb2aD1LbY/LWQnkcIgNo6IdpzvuM+qRVbBuA6IZP2SdqQI8Lu6RL2P8EFBQUA==} '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: - { - integrity: sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==, - } + resolution: {integrity: sha512-WPNB7SgTxF/rSHMa5o5/9AIINy4oVnRhvUkRzqR4Nfp8Hu9Q2IyUptxuiDuzRVJdjJBRi/U82sHTxyiD3oBBhQ==} '@prisma/schema-files-loader@5.22.0': - resolution: - { - integrity: sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==, - } + resolution: {integrity: sha512-/TNAJXvMSk6mCgZa+gIBM6sp5OUQBnb7rbjiSQm88gvcSibxEuKkVV/2pT3RmQpEAn1yiabvS4+dOvIotYe3ww==} '@protobufjs/aspromise@1.1.2': - resolution: - { - integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==, - } + resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} '@protobufjs/base64@1.1.2': - resolution: - { - integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==, - } + resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==} '@protobufjs/codegen@2.0.4': - resolution: - { - integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==, - } + resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==} '@protobufjs/eventemitter@1.1.0': - resolution: - { - integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==, - } + resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==} '@protobufjs/fetch@1.1.0': - resolution: - { - integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==, - } + resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==} '@protobufjs/float@1.0.2': - resolution: - { - integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==, - } + resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==} '@protobufjs/inquire@1.1.0': - resolution: - { - integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==, - } + resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==} '@protobufjs/path@1.1.2': - resolution: - { - integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==, - } + resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==} '@protobufjs/pool@1.1.0': - resolution: - { - integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==, - } + resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==} '@protobufjs/utf8@1.1.0': - resolution: - { - integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==, - } + resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==} '@radix-ui/number@1.1.1': - resolution: - { - integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==, - } + resolution: {integrity: sha512-MkKCwxlXTgz6CFoJx3pCwn07GKp36+aZyu/u2Ln2VrA5DcdyCZkASEDBTd8x5whTQQL5CiYf4prXKLcgQdv29g==} '@radix-ui/primitive@1.1.3': - resolution: - { - integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==, - } + resolution: {integrity: sha512-JTF99U/6XIjCBo0wqkU5sK10glYe27MRRsfwoiq5zzOEZLHU3A3KCMa5X/azekYRCJ0HlwI0crAXS/5dEHTzDg==} '@radix-ui/react-accordion@1.2.12': - resolution: - { - integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==, - } + resolution: {integrity: sha512-T4nygeh9YE9dLRPhAHSeOZi7HBXo+0kYIPJXayZfvWOWA0+n3dESrZbjfDPUABkUNym6Hd+f2IR113To8D2GPA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -6997,10 +5359,7 @@ packages: optional: true '@radix-ui/react-alert-dialog@1.1.15': - resolution: - { - integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==, - } + resolution: {integrity: sha512-oTVLkEw5GpdRe29BqJ0LSDFWI3qu0vR1M0mUkOQWDIUnY/QIkLpgDMWuKxP94c2NAC2LGcgVhG1ImF3jkZ5wXw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7013,10 +5372,7 @@ packages: optional: true '@radix-ui/react-arrow@1.1.7': - resolution: - { - integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==, - } + resolution: {integrity: sha512-F+M1tLhO+mlQaOWspE8Wstg+z6PwxwRd8oQ8IXceWz92kfAmalTRf0EjrouQeo7QssEPfCn05B4Ihs1K9WQ/7w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7029,10 +5385,7 @@ packages: optional: true '@radix-ui/react-avatar@1.1.10': - resolution: - { - integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==, - } + resolution: {integrity: sha512-V8piFfWapM5OmNCXTzVQY+E1rDa53zY+MQ4Y7356v4fFz6vqCyUtIz2rUD44ZEdwg78/jKmMJHj07+C/Z/rcog==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7045,10 +5398,7 @@ packages: optional: true '@radix-ui/react-checkbox@1.3.3': - resolution: - { - integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==, - } + resolution: {integrity: sha512-wBbpv+NQftHDdG86Qc0pIyXk5IR3tM8Vd0nWLKDcX8nNn4nXFOFwsKuqw2okA/1D/mpaAkmuyndrPJTYDNZtFw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7061,10 +5411,7 @@ packages: optional: true '@radix-ui/react-collapsible@1.1.12': - resolution: - { - integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==, - } + resolution: {integrity: sha512-Uu+mSh4agx2ib1uIGPP4/CKNULyajb3p92LsVXmH2EHVMTfZWpll88XJ0j4W0z3f8NK1eYl1+Mf/szHPmcHzyA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7077,10 +5424,7 @@ packages: optional: true '@radix-ui/react-collection@1.1.7': - resolution: - { - integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==, - } + resolution: {integrity: sha512-Fh9rGN0MoI4ZFUNyfFVNU4y9LUz93u9/0K+yLgA2bwRojxM8JU1DyvvMBabnZPBgMWREAJvU2jjVzq+LrFUglw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7093,10 +5437,7 @@ packages: optional: true '@radix-ui/react-compose-refs@1.1.2': - resolution: - { - integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==, - } + resolution: {integrity: sha512-z4eqJvfiNnFMHIIvXP3CY57y2WJs5g2v3X0zm9mEJkrkNv4rDxu+sg9Jh8EkXyeqBkB7SOcboo9dMVqhyrACIg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7105,10 +5446,7 @@ packages: optional: true '@radix-ui/react-context-menu@2.2.16': - resolution: - { - integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==, - } + resolution: {integrity: sha512-O8morBEW+HsVG28gYDZPTrT9UUovQUlJue5YO836tiTJhuIWBm/zQHc7j388sHWtdH/xUZurK9olD2+pcqx5ww==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7121,10 +5459,7 @@ packages: optional: true '@radix-ui/react-context@1.1.2': - resolution: - { - integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==, - } + resolution: {integrity: sha512-jCi/QKUM2r1Ju5a3J64TH2A5SpKAgh0LpknyqdQ4m6DCV0xJ2HG1xARRwNGPQfi1SLdLWZ1OJz6F4OMBBNiGJA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7133,10 +5468,7 @@ packages: optional: true '@radix-ui/react-dialog@1.1.15': - resolution: - { - integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==, - } + resolution: {integrity: sha512-TCglVRtzlffRNxRMEyR36DGBLJpeusFcgMVD9PZEzAKnUs1lKCgX5u9BmC2Yg+LL9MgZDugFFs1Vl+Jp4t/PGw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7149,10 +5481,7 @@ packages: optional: true '@radix-ui/react-direction@1.1.1': - resolution: - { - integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==, - } + resolution: {integrity: sha512-1UEWRX6jnOA2y4H5WczZ44gOOjTEmlqv1uNW4GAJEO5+bauCBhv8snY65Iw5/VOS/ghKN9gr2KjnLKxrsvoMVw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7161,10 +5490,7 @@ packages: optional: true '@radix-ui/react-dismissable-layer@1.1.11': - resolution: - { - integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==, - } + resolution: {integrity: sha512-Nqcp+t5cTB8BinFkZgXiMJniQH0PsUt2k51FUhbdfeKvc4ACcG2uQniY/8+h1Yv6Kza4Q7lD7PQV0z0oicE0Mg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7177,10 +5503,7 @@ packages: optional: true '@radix-ui/react-dropdown-menu@2.1.16': - resolution: - { - integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==, - } + resolution: {integrity: sha512-1PLGQEynI/3OX/ftV54COn+3Sud/Mn8vALg2rWnBLnRaGtJDduNW/22XjlGgPdpcIbiQxjKtb7BkcjP00nqfJw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7193,10 +5516,7 @@ packages: optional: true '@radix-ui/react-focus-guards@1.1.3': - resolution: - { - integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==, - } + resolution: {integrity: sha512-0rFg/Rj2Q62NCm62jZw0QX7a3sz6QCQU0LpZdNrJX8byRGaGVTqbrW9jAoIAHyMQqsNpeZ81YgSizOt5WXq0Pw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7205,10 +5525,7 @@ packages: optional: true '@radix-ui/react-focus-scope@1.1.7': - resolution: - { - integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==, - } + resolution: {integrity: sha512-t2ODlkXBQyn7jkl6TNaw/MtVEVvIGelJDCG41Okq/KwUsJBwQ4XVZsHAVUkK4mBv3ewiAS3PGuUWuY2BoK4ZUw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7221,10 +5538,7 @@ packages: optional: true '@radix-ui/react-hover-card@1.1.15': - resolution: - { - integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==, - } + resolution: {integrity: sha512-qgTkjNT1CfKMoP0rcasmlH2r1DAiYicWsDsufxl940sT2wHNEWWv6FMWIQXWhVdmC1d/HYfbhQx60KYyAtKxjg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7237,18 +5551,12 @@ packages: optional: true '@radix-ui/react-icons@1.3.2': - resolution: - { - integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==, - } + resolution: {integrity: sha512-fyQIhGDhzfc9pK2kH6Pl9c4BDJGfMkPqkyIgYDthyNYoNg3wVhoJMMh19WS4Up/1KMPFVpNsT2q3WmXn2N1m6g==} peerDependencies: react: ^16.x || ^17.x || ^18.x || ^19.0.0 || ^19.0.0-rc '@radix-ui/react-id@1.1.1': - resolution: - { - integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==, - } + resolution: {integrity: sha512-kGkGegYIdQsOb4XjsfM97rXsiHaBwco+hFI66oO4s9LU+PLAC5oJ7khdOVFxkhsmlbpUqDAvXw11CluXP+jkHg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7257,10 +5565,7 @@ packages: optional: true '@radix-ui/react-label@2.1.7': - resolution: - { - integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==, - } + resolution: {integrity: sha512-YT1GqPSL8kJn20djelMX7/cTRp/Y9w5IZHvfxQTVHrOqa2yMl7i/UfMqKRU5V7mEyKTrUVgJXhNQPVCG8PBLoQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7273,10 +5578,7 @@ packages: optional: true '@radix-ui/react-menu@2.1.16': - resolution: - { - integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==, - } + resolution: {integrity: sha512-72F2T+PLlphrqLcAotYPp0uJMr5SjP5SL01wfEspJbru5Zs5vQaSHb4VB3ZMJPimgHHCHG7gMOeOB9H3Hdmtxg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7289,10 +5591,7 @@ packages: optional: true '@radix-ui/react-menubar@1.1.16': - resolution: - { - integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==, - } + resolution: {integrity: sha512-EB1FktTz5xRRi2Er974AUQZWg2yVBb1yjip38/lgwtCVRd3a+maUoGHN/xs9Yv8SY8QwbSEb+YrxGadVWbEutA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7305,10 +5604,7 @@ packages: optional: true '@radix-ui/react-navigation-menu@1.2.14': - resolution: - { - integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==, - } + resolution: {integrity: sha512-YB9mTFQvCOAQMHU+C/jVl96WmuWeltyUEpRJJky51huhds5W2FQr1J8D/16sQlf0ozxkPK8uF3niQMdUwZPv5w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7321,10 +5617,7 @@ packages: optional: true '@radix-ui/react-popover@1.1.15': - resolution: - { - integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==, - } + resolution: {integrity: sha512-kr0X2+6Yy/vJzLYJUPCZEc8SfQcf+1COFoAqauJm74umQhta9M7lNJHP7QQS3vkvcGLQUbWpMzwrXYwrYztHKA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7337,10 +5630,7 @@ packages: optional: true '@radix-ui/react-popper@1.2.8': - resolution: - { - integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==, - } + resolution: {integrity: sha512-0NJQ4LFFUuWkE7Oxf0htBKS6zLkkjBH+hM1uk7Ng705ReR8m/uelduy1DBo0PyBXPKVnBA6YBlU94MBGXrSBCw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7353,10 +5643,7 @@ packages: optional: true '@radix-ui/react-portal@1.1.9': - resolution: - { - integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==, - } + resolution: {integrity: sha512-bpIxvq03if6UNwXZ+HTK71JLh4APvnXntDc6XOX8UVq4XQOVl7lwok0AvIl+b8zgCw3fSaVTZMpAPPagXbKmHQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7369,10 +5656,7 @@ packages: optional: true '@radix-ui/react-presence@1.1.5': - resolution: - { - integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==, - } + resolution: {integrity: sha512-/jfEwNDdQVBCNvjkGit4h6pMOzq8bHkopq458dPt2lMjx+eBQUohZNG9A7DtO/O5ukSbxuaNGXMjHicgwy6rQQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7385,10 +5669,7 @@ packages: optional: true '@radix-ui/react-primitive@2.1.3': - resolution: - { - integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==, - } + resolution: {integrity: sha512-m9gTwRkhy2lvCPe6QJp4d3G1TYEUHn/FzJUtq9MjH46an1wJU+GdoGC5VLof8RX8Ft/DlpshApkhswDLZzHIcQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7401,10 +5682,7 @@ packages: optional: true '@radix-ui/react-radio-group@1.3.8': - resolution: - { - integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==, - } + resolution: {integrity: sha512-VBKYIYImA5zsxACdisNQ3BjCBfmbGH3kQlnFVqlWU4tXwjy7cGX8ta80BcrO+WJXIn5iBylEH3K6ZTlee//lgQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7417,10 +5695,7 @@ packages: optional: true '@radix-ui/react-roving-focus@1.1.11': - resolution: - { - integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==, - } + resolution: {integrity: sha512-7A6S9jSgm/S+7MdtNDSb+IU859vQqJ/QAtcYQcfFC6W8RS4IxIZDldLR0xqCFZ6DCyrQLjLPsxtTNch5jVA4lA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7433,10 +5708,7 @@ packages: optional: true '@radix-ui/react-select@2.2.6': - resolution: - { - integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==, - } + resolution: {integrity: sha512-I30RydO+bnn2PQztvo25tswPH+wFBjehVGtmagkU78yMdwTwVf12wnAOF+AeP8S2N8xD+5UPbGhkUfPyvT+mwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7449,10 +5721,7 @@ packages: optional: true '@radix-ui/react-separator@1.1.7': - resolution: - { - integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==, - } + resolution: {integrity: sha512-0HEb8R9E8A+jZjvmFCy/J4xhbXy3TV+9XSnGJ3KvTtjlIUy/YQ/p6UYZvi7YbeoeXdyU9+Y3scizK6hkY37baA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7465,10 +5734,7 @@ packages: optional: true '@radix-ui/react-slider@1.3.6': - resolution: - { - integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==, - } + resolution: {integrity: sha512-JPYb1GuM1bxfjMRlNLE+BcmBC8onfCi60Blk7OBqi2MLTFdS+8401U4uFjnwkOr49BLmXxLC6JHkvAsx5OJvHw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7481,10 +5747,7 @@ packages: optional: true '@radix-ui/react-slot@1.2.3': - resolution: - { - integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==, - } + resolution: {integrity: sha512-aeNmHnBxbi2St0au6VBVC7JXFlhLlOnvIIlePNniyUNAClzmtAUEY8/pBiK3iHjufOlwA+c20/8jngo7xcrg8A==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7493,10 +5756,7 @@ packages: optional: true '@radix-ui/react-switch@1.2.6': - resolution: - { - integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==, - } + resolution: {integrity: sha512-bByzr1+ep1zk4VubeEVViV592vu2lHE2BZY5OnzehZqOOgogN80+mNtCqPkhn2gklJqOpxWgPoYTSnhBCqpOXQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7509,10 +5769,7 @@ packages: optional: true '@radix-ui/react-tabs@1.1.13': - resolution: - { - integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==, - } + resolution: {integrity: sha512-7xdcatg7/U+7+Udyoj2zodtI9H/IIopqo+YOIcZOq1nJwXWBZ9p8xiu5llXlekDbZkca79a/fozEYQXIA4sW6A==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7525,10 +5782,7 @@ packages: optional: true '@radix-ui/react-toast@1.2.15': - resolution: - { - integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==, - } + resolution: {integrity: sha512-3OSz3TacUWy4WtOXV38DggwxoqJK4+eDkNMl5Z/MJZaoUPaP4/9lf81xXMe1I2ReTAptverZUpbPY4wWwWyL5g==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7541,10 +5795,7 @@ packages: optional: true '@radix-ui/react-toggle@1.1.10': - resolution: - { - integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==, - } + resolution: {integrity: sha512-lS1odchhFTeZv3xwHH31YPObmJn8gOg7Lq12inrr0+BH/l3Tsq32VfjqH1oh80ARM3mlkfMic15n0kg4sD1poQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7557,10 +5808,7 @@ packages: optional: true '@radix-ui/react-tooltip@1.2.8': - resolution: - { - integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==, - } + resolution: {integrity: sha512-tY7sVt1yL9ozIxvmbtN5qtmH2krXcBCfjEiCgKGLqunJHvgvZG2Pcl2oQ3kbcZARb1BGEHdkLzcYGO8ynVlieg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7573,10 +5821,7 @@ packages: optional: true '@radix-ui/react-use-callback-ref@1.1.1': - resolution: - { - integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==, - } + resolution: {integrity: sha512-FkBMwD+qbGQeMu1cOHnuGB6x4yzPjho8ap5WtbEJ26umhgqVXbhekKUQO+hZEL1vU92a3wHwdp0HAcqAUF5iDg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7585,10 +5830,7 @@ packages: optional: true '@radix-ui/react-use-controllable-state@1.2.2': - resolution: - { - integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==, - } + resolution: {integrity: sha512-BjasUjixPFdS+NKkypcyyN5Pmg83Olst0+c6vGov0diwTEo6mgdqVR6hxcEgFuh4QrAs7Rc+9KuGJ9TVCj0Zzg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7597,10 +5839,7 @@ packages: optional: true '@radix-ui/react-use-effect-event@0.0.2': - resolution: - { - integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==, - } + resolution: {integrity: sha512-Qp8WbZOBe+blgpuUT+lw2xheLP8q0oatc9UpmiemEICxGvFLYmHm9QowVZGHtJlGbS6A6yJ3iViad/2cVjnOiA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7609,10 +5848,7 @@ packages: optional: true '@radix-ui/react-use-escape-keydown@1.1.1': - resolution: - { - integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==, - } + resolution: {integrity: sha512-Il0+boE7w/XebUHyBjroE+DbByORGR9KKmITzbR7MyQ4akpORYP/ZmbhAr0DG7RmmBqoOnZdy2QlvajJ2QA59g==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7621,10 +5857,7 @@ packages: optional: true '@radix-ui/react-use-is-hydrated@0.1.0': - resolution: - { - integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==, - } + resolution: {integrity: sha512-U+UORVEq+cTnRIaostJv9AGdV3G6Y+zbVd+12e18jQ5A3c0xL03IhnHuiU4UV69wolOQp5GfR58NW/EgdQhwOA==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7633,10 +5866,7 @@ packages: optional: true '@radix-ui/react-use-layout-effect@1.1.1': - resolution: - { - integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==, - } + resolution: {integrity: sha512-RbJRS4UWQFkzHTTwVymMTUv8EqYhOp8dOOviLj2ugtTiXRaRQS7GLGxZTLL1jWhMeoSCf5zmcZkqTl9IiYfXcQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7645,10 +5875,7 @@ packages: optional: true '@radix-ui/react-use-previous@1.1.1': - resolution: - { - integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==, - } + resolution: {integrity: sha512-2dHfToCj/pzca2Ck724OZ5L0EVrr3eHRNsG/b3xQJLA2hZpVCS99bLAX+hm1IHXDEnzU6by5z/5MIY794/a8NQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7657,10 +5884,7 @@ packages: optional: true '@radix-ui/react-use-rect@1.1.1': - resolution: - { - integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==, - } + resolution: {integrity: sha512-QTYuDesS0VtuHNNvMh+CjlKJ4LJickCMUAqjlE3+j8w+RlRpwyX3apEQKGFzbZGdo7XNG1tXa+bQqIE7HIXT2w==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7669,10 +5893,7 @@ packages: optional: true '@radix-ui/react-use-size@1.1.1': - resolution: - { - integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==, - } + resolution: {integrity: sha512-ewrXRDTAqAXlkl6t/fkXWNAhFX9I+CkKlw6zjEwk86RSPKwZr3xpBRso655aqYafwtnbpHLj6toFzmd6xdVptQ==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -7681,10 +5902,7 @@ packages: optional: true '@radix-ui/react-visually-hidden@1.2.3': - resolution: - { - integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==, - } + resolution: {integrity: sha512-pzJq12tEaaIhqjbzpCuv/OypJY/BPavOofm+dbab+MHLajy277+1lLm6JFcGgF5eskJ6mquGirhXY2GD/8u8Ug==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -7697,416 +5915,289 @@ packages: optional: true '@radix-ui/rect@1.1.1': - resolution: - { - integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==, - } + resolution: {integrity: sha512-HPwpGIzkl28mWyZqG52jiqDJ12waP11Pa1lGoiyUkIEuMLBP0oeK/C89esbXrxsky5we7dfd8U58nm0SgAWpVw==} '@react-aria/focus@3.21.0': - resolution: - { - integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==, - } + resolution: {integrity: sha512-7NEGtTPsBy52EZ/ToVKCu0HSelE3kq9qeis+2eEq90XSuJOMaDHUQrA7RC2Y89tlEwQB31bud/kKRi9Qme1dkA==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/interactions@3.25.4': - resolution: - { - integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==, - } + resolution: {integrity: sha512-HBQMxgUPHrW8V63u9uGgBymkMfj6vdWbB0GgUJY49K9mBKMsypcHeWkWM6+bF7kxRO728/IK8bWDV6whDbqjHg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/ssr@3.9.10': - resolution: - { - integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-hvTm77Pf+pMBhuBm760Li0BVIO38jv1IBws1xFm1NoL26PU+fe+FMW5+VZWyANR6nYL65joaJKZqOdTQMkO9IQ==} + engines: {node: '>= 12'} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-aria/utils@3.30.0': - resolution: - { - integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==, - } + resolution: {integrity: sha512-ydA6y5G1+gbem3Va2nczj/0G0W7/jUVo/cbN10WA5IizzWIwMP5qhFr7macgbKfHMkZ+YZC3oXnt2NNre5odKw==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-email/body@0.0.11': - resolution: - { - integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==, - } + resolution: {integrity: sha512-ZSD2SxVSgUjHGrB0Wi+4tu3MEpB4fYSbezsFNEJk2xCWDBkFiOeEsjTmR5dvi+CxTK691hQTQlHv0XWuP7ENTg==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/button@0.0.19': - resolution: - { - integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-HYHrhyVGt7rdM/ls6FuuD6XE7fa7bjZTJqB2byn6/oGsfiEZaogY77OtoLL/mrQHjHjZiJadtAMSik9XLcm7+A==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/code-block@0.0.11': - resolution: - { - integrity: sha512-4D43p+LIMjDzm66gTDrZch0Flkip5je91mAT7iGs6+SbPyalHgIA+lFQoQwhz/VzHHLxuD0LV6gwmU/WUQ2WEg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-4D43p+LIMjDzm66gTDrZch0Flkip5je91mAT7iGs6+SbPyalHgIA+lFQoQwhz/VzHHLxuD0LV6gwmU/WUQ2WEg==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/code-inline@0.0.5': - resolution: - { - integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-MmAsOzdJpzsnY2cZoPHFPk6uDO/Ncpb4Kh1hAt9UZc1xOW3fIzpe1Pi9y9p6wwUmpaeeDalJxAxH6/fnTquinA==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/column@0.0.13': - resolution: - { - integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Lqq17l7ShzJG/d3b1w/+lVO+gp2FM05ZUo/nW0rjxB8xBICXOVv6PqjDnn3FXKssvhO5qAV20lHM6S+spRhEwQ==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/components@0.0.31': - resolution: - { - integrity: sha512-rQsTY9ajobncix9raexhBjC7O6cXUMc87eNez2gnB1FwtkUO8DqWZcktbtwOJi7GKmuAPTx0o/IOFtiBNXziKA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-rQsTY9ajobncix9raexhBjC7O6cXUMc87eNez2gnB1FwtkUO8DqWZcktbtwOJi7GKmuAPTx0o/IOFtiBNXziKA==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/container@0.0.15': - resolution: - { - integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Qo2IQo0ru2kZq47REmHW3iXjAQaKu4tpeq/M8m1zHIVwKduL2vYOBQWbC2oDnMtWPmkBjej6XxgtZByxM6cCFg==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/font@0.0.9': - resolution: - { - integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==, - } + resolution: {integrity: sha512-4zjq23oT9APXkerqeslPH3OZWuh5X4crHK6nx82mVHV2SrLba8+8dPEnWbaACWTNjOCbcLIzaC9unk7Wq2MIXw==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/head@0.0.12': - resolution: - { - integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-X2Ii6dDFMF+D4niNwMAHbTkeCjlYYnMsd7edXOsi0JByxt9wNyZ9EnhFiBoQdqkE+SMDcu8TlNNttMrf5sJeMA==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/heading@0.0.15': - resolution: - { - integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-xF2GqsvBrp/HbRHWEfOgSfRFX+Q8I5KBEIG5+Lv3Vb2R/NYr0s8A5JhHHGf2pWBMJdbP4B2WHgj/VUrhy8dkIg==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/hr@0.0.11': - resolution: - { - integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-S1gZHVhwOsd1Iad5IFhpfICwNPMGPJidG/Uysy1AwmspyoAP5a4Iw3OWEpINFdgh9MHladbxcLKO2AJO+cA9Lw==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/html@0.0.11': - resolution: - { - integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-qJhbOQy5VW5qzU74AimjAR9FRFQfrMa7dn4gkEXKMB/S9xZN8e1yC1uA9C15jkXI/PzmJ0muDIWmFwatm5/+VA==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/img@0.0.11': - resolution: - { - integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-aGc8Y6U5C3igoMaqAJKsCpkbm1XjguQ09Acd+YcTKwjnC2+0w3yGUJkjWB2vTx4tN8dCqQCXO8FmdJpMfOA9EQ==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/link@0.0.12': - resolution: - { - integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-vF+xxQk2fGS1CN7UPQDbzvcBGfffr+GjTPNiWM38fhBfsLv6A/YUfaqxWlmL7zLzVmo0K2cvvV9wxlSyNba1aQ==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/markdown@0.0.14': - resolution: - { - integrity: sha512-5IsobCyPkb4XwnQO8uFfGcNOxnsg3311GRXhJ3uKv51P7Jxme4ycC/MITnwIZ10w2zx7HIyTiqVzTj4XbuIHbg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-5IsobCyPkb4XwnQO8uFfGcNOxnsg3311GRXhJ3uKv51P7Jxme4ycC/MITnwIZ10w2zx7HIyTiqVzTj4XbuIHbg==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/preview@0.0.12': - resolution: - { - integrity: sha512-g/H5fa9PQPDK6WUEG7iTlC19sAktI23qyoiJtMLqQiXFCfWeQMhqjLGKeLSKkfzszqmfJCjZtpSiKtBoOdxp3Q==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-g/H5fa9PQPDK6WUEG7iTlC19sAktI23qyoiJtMLqQiXFCfWeQMhqjLGKeLSKkfzszqmfJCjZtpSiKtBoOdxp3Q==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/render@1.0.3': - resolution: - { - integrity: sha512-VQ8g4SuIq/jWdfBTdTjb7B8Np0jj+OoD7VebfdHhLTZzVQKesR2aigpYqE/ZXmwj4juVxDm8T2b6WIIu48rPCg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-VQ8g4SuIq/jWdfBTdTjb7B8Np0jj+OoD7VebfdHhLTZzVQKesR2aigpYqE/ZXmwj4juVxDm8T2b6WIIu48rPCg==} + engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/render@1.2.0': - resolution: - { - integrity: sha512-5fpbV16VYR9Fmk8t7xiwPNAjxjdI8XzVtlx9J9OkhOsIHdr2s5DwAj8/MXzWa9qRYJyLirQ/l7rBSjjgyRAomw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-5fpbV16VYR9Fmk8t7xiwPNAjxjdI8XzVtlx9J9OkhOsIHdr2s5DwAj8/MXzWa9qRYJyLirQ/l7rBSjjgyRAomw==} + engines: {node: '>=18.0.0'} peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc react-dom: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/row@0.0.12': - resolution: - { - integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-HkCdnEjvK3o+n0y0tZKXYhIXUNPDx+2vq1dJTmqappVHXS5tXS6W5JOPZr5j+eoZ8gY3PShI2LWj5rWF7ZEtIQ==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/section@0.0.16': - resolution: - { - integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-FjqF9xQ8FoeUZYKSdt8sMIKvoT9XF8BrzhT3xiFKdEMwYNbsDflcjfErJe3jb7Wj/es/lKTbV5QR1dnLzGpL3w==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/tailwind@1.0.4': - resolution: - { - integrity: sha512-tJdcusncdqgvTUYZIuhNC6LYTfL9vNTSQpwWdTCQhQ1lsrNCEE4OKCSdzSV3S9F32pi0i0xQ+YPJHKIzGjdTSA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-tJdcusncdqgvTUYZIuhNC6LYTfL9vNTSQpwWdTCQhQ1lsrNCEE4OKCSdzSV3S9F32pi0i0xQ+YPJHKIzGjdTSA==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-email/text@0.0.11': - resolution: - { - integrity: sha512-a7nl/2KLpRHOYx75YbYZpWspUbX1DFY7JIZbOv5x0QU8SvwDbJt+Hm01vG34PffFyYvHEXrc6Qnip2RTjljNjg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-a7nl/2KLpRHOYx75YbYZpWspUbX1DFY7JIZbOv5x0QU8SvwDbJt+Hm01vG34PffFyYvHEXrc6Qnip2RTjljNjg==} + engines: {node: '>=18.0.0'} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. peerDependencies: react: ^18.0 || ^19.0 || ^19.0.0-rc '@react-stately/flags@3.1.2': - resolution: - { - integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==, - } + resolution: {integrity: sha512-2HjFcZx1MyQXoPqcBGALwWWmgFVUk2TuKVIQxCbRq7fPyWXIl6VHcakCLurdtYC2Iks7zizvz0Idv48MQ38DWg==} '@react-stately/utils@3.10.8': - resolution: - { - integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==, - } + resolution: {integrity: sha512-SN3/h7SzRsusVQjQ4v10LaVsDc81jyyR0DD5HnsQitm/I5WDpaSr2nRHtyloPFU48jlql1XX/S04T2DLQM7Y3g==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@react-types/shared@3.31.0': - resolution: - { - integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==, - } + resolution: {integrity: sha512-ua5U6V66gDcbLZe4P2QeyNgPp4YWD1ymGA6j3n+s8CGExtrCPe64v+g4mvpT8Bnb985R96e4zFT61+m0YCwqMg==} peerDependencies: react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@reactflow/background@11.3.14': - resolution: - { - integrity: sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==, - } + resolution: {integrity: sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==} peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/controls@11.2.14': - resolution: - { - integrity: sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==, - } + resolution: {integrity: sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==} peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/core@11.11.4': - resolution: - { - integrity: sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==, - } + resolution: {integrity: sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==} peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/minimap@11.7.14': - resolution: - { - integrity: sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==, - } + resolution: {integrity: sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==} peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/node-resizer@2.2.14': - resolution: - { - integrity: sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==, - } + resolution: {integrity: sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==} peerDependencies: react: '>=17' react-dom: '>=17' '@reactflow/node-toolbar@1.3.14': - resolution: - { - integrity: sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==, - } + resolution: {integrity: sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==} peerDependencies: react: '>=17' react-dom: '>=17' '@redis/bloom@1.2.0': - resolution: - { - integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==, - } + resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} peerDependencies: '@redis/client': ^1.0.0 '@redis/client@1.6.0': - resolution: - { - integrity: sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-aR0uffYI700OEEH4gYnitAnv3vzVGXCFvYfdpu/CJKvk4pHfLPEy/JSZyrpQ+15WhXe1yJRXLtfQ84s4mEXnPg==} + engines: {node: '>=14'} '@redis/graph@1.1.1': - resolution: - { - integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==, - } + resolution: {integrity: sha512-FEMTcTHZozZciLRl6GiiIB4zGm5z5F3F6a6FZCyrfxdKOhFlGkiAqlexWMBzCi4DcRoyiOsuLfW+cjlGWyExOw==} peerDependencies: '@redis/client': ^1.0.0 '@redis/json@1.0.7': - resolution: - { - integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==, - } + resolution: {integrity: sha512-6UyXfjVaTBTJtKNG4/9Z8PSpKE6XgSyEb8iwaqDcy+uKrd/DGYHTWkUdnQDyzm727V7p21WUMhsqz5oy65kPcQ==} peerDependencies: '@redis/client': ^1.0.0 '@redis/search@1.2.0': - resolution: - { - integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==, - } + resolution: {integrity: sha512-tYoDBbtqOVigEDMAcTGsRlMycIIjwMCgD8eR2t0NANeQmgK/lvxNAvYyb6bZDD4frHRhIHkJu2TBRvB0ERkOmw==} peerDependencies: '@redis/client': ^1.0.0 '@redis/time-series@1.1.0': - resolution: - { - integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==, - } + resolution: {integrity: sha512-c1Q99M5ljsIuc4YdaCwfUEXsofakb9c8+Zse2qxTadu8TalLXuAESzLvFAvNVbkmSlvlzIQOLpBCmWI9wTOt+g==} peerDependencies: '@redis/client': ^1.0.0 '@remirror/core-constants@3.0.0': - resolution: - { - integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==, - } + resolution: {integrity: sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==} '@remirror/core-helpers@4.0.0': - resolution: - { - integrity: sha512-w90bJ+SLim25DWLN0Y6KjBwDhSgyzWwPxazwHQj7s3Px9dF69sG4cq3nA8RP2TCq1CV4bZmtW4+hCV26pHvgeA==, - } + resolution: {integrity: sha512-w90bJ+SLim25DWLN0Y6KjBwDhSgyzWwPxazwHQj7s3Px9dF69sG4cq3nA8RP2TCq1CV4bZmtW4+hCV26pHvgeA==} '@remirror/types@2.0.0': - resolution: - { - integrity: sha512-j7G+hpyJ3SsZts0RpANYrTkQSWyP1+uy3txZPWgDwXGv3R45wtqRfoDzGO45vFcE9aNno/ThGPvClORZjjbrpw==, - } + resolution: {integrity: sha512-j7G+hpyJ3SsZts0RpANYrTkQSWyP1+uy3txZPWgDwXGv3R45wtqRfoDzGO45vFcE9aNno/ThGPvClORZjjbrpw==} '@rolldown/pluginutils@1.0.0-beta.27': - resolution: - { - integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==, - } + resolution: {integrity: sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==} '@rollup/plugin-alias@3.1.9': - resolution: - { - integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-QI5fsEvm9bDzt32k39wpOwZhVzRcL5ydcffUHMyLVaVaLeC70I8TJZ17F1z1eMoLu4E/UOcH9BWVkKpIKdrfiw==} + engines: {node: '>=8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 '@rollup/plugin-commonjs@15.1.0': - resolution: - { - integrity: sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==, - } - engines: { node: '>= 8.0.0' } + resolution: {integrity: sha512-xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==} + engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^2.22.0 '@rollup/plugin-commonjs@28.0.1': - resolution: - { - integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==, - } - engines: { node: '>=16.0.0 || 14 >= 14.17' } + resolution: {integrity: sha512-+tNWdlWKbpB3WgBN7ijjYkq9X5uhjmcvyjEght4NmH5fAU++zfQzAJ6wumLS+dNcvwEZhKx2Z+skY8m7v0wGSA==} + engines: {node: '>=16.0.0 || 14 >= 14.17'} peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -8114,45 +6205,30 @@ packages: optional: true '@rollup/plugin-json@4.1.0': - resolution: - { - integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==, - } + resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 '@rollup/plugin-node-resolve@11.2.1': - resolution: - { - integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==} + engines: {node: '>= 10.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 '@rollup/plugin-replace@2.4.2': - resolution: - { - integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==, - } + resolution: {integrity: sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==} peerDependencies: rollup: ^1.20.0 || ^2.0.0 '@rollup/pluginutils@3.1.0': - resolution: - { - integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==, - } - engines: { node: '>= 8.0.0' } + resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} + engines: {node: '>= 8.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0 '@rollup/pluginutils@5.2.0': - resolution: - { - integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-qWJ2ZTbmumwiLFomfzTyt5Kng4hwPi9rwCYN4SHb6eaRU1KNO4ccxINHr/VhH4GgPlt1XfSTLX2LBTme8ne4Zw==} + engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 peerDependenciesMeta: @@ -8160,321 +6236,205 @@ packages: optional: true '@rollup/rollup-android-arm-eabi@4.46.4': - resolution: - { - integrity: sha512-B2wfzCJ+ps/OBzRjeds7DlJumCU3rXMxJJS1vzURyj7+KBHGONm7c9q1TfdBl4vCuNMkDvARn3PBl2wZzuR5mw==, - } + resolution: {integrity: sha512-B2wfzCJ+ps/OBzRjeds7DlJumCU3rXMxJJS1vzURyj7+KBHGONm7c9q1TfdBl4vCuNMkDvARn3PBl2wZzuR5mw==} cpu: [arm] os: [android] '@rollup/rollup-android-arm64@4.46.4': - resolution: - { - integrity: sha512-FGJYXvYdn8Bs6lAlBZYT5n+4x0ciEp4cmttsvKAZc/c8/JiPaQK8u0c/86vKX8lA7OY/+37lIQSe0YoAImvBAA==, - } + resolution: {integrity: sha512-FGJYXvYdn8Bs6lAlBZYT5n+4x0ciEp4cmttsvKAZc/c8/JiPaQK8u0c/86vKX8lA7OY/+37lIQSe0YoAImvBAA==} cpu: [arm64] os: [android] '@rollup/rollup-darwin-arm64@4.46.4': - resolution: - { - integrity: sha512-/9qwE/BM7ATw/W/OFEMTm3dmywbJyLQb4f4v5nmOjgYxPIGpw7HaxRi6LnD4Pjn/q7k55FGeHe1/OD02w63apA==, - } + resolution: {integrity: sha512-/9qwE/BM7ATw/W/OFEMTm3dmywbJyLQb4f4v5nmOjgYxPIGpw7HaxRi6LnD4Pjn/q7k55FGeHe1/OD02w63apA==} cpu: [arm64] os: [darwin] '@rollup/rollup-darwin-x64@4.46.4': - resolution: - { - integrity: sha512-QkWfNbeRuzFnv2d0aPlrzcA3Ebq2mE8kX/5Pl7VdRShbPBjSnom7dbT8E3Jmhxo2RL784hyqGvR5KHavCJQciw==, - } + resolution: {integrity: sha512-QkWfNbeRuzFnv2d0aPlrzcA3Ebq2mE8kX/5Pl7VdRShbPBjSnom7dbT8E3Jmhxo2RL784hyqGvR5KHavCJQciw==} cpu: [x64] os: [darwin] '@rollup/rollup-freebsd-arm64@4.46.4': - resolution: - { - integrity: sha512-+ToyOMYnSfV8D+ckxO6NthPln/PDNp1P6INcNypfZ7muLmEvPKXqduUiD8DlJpMMT8LxHcE5W0dK9kXfJke9Zw==, - } + resolution: {integrity: sha512-+ToyOMYnSfV8D+ckxO6NthPln/PDNp1P6INcNypfZ7muLmEvPKXqduUiD8DlJpMMT8LxHcE5W0dK9kXfJke9Zw==} cpu: [arm64] os: [freebsd] '@rollup/rollup-freebsd-x64@4.46.4': - resolution: - { - integrity: sha512-cGT6ey/W+sje6zywbLiqmkfkO210FgRz7tepWAzzEVgQU8Hn91JJmQWNqs55IuglG8sJdzk7XfNgmGRtcYlo1w==, - } + resolution: {integrity: sha512-cGT6ey/W+sje6zywbLiqmkfkO210FgRz7tepWAzzEVgQU8Hn91JJmQWNqs55IuglG8sJdzk7XfNgmGRtcYlo1w==} cpu: [x64] os: [freebsd] '@rollup/rollup-linux-arm-gnueabihf@4.46.4': - resolution: - { - integrity: sha512-9fhTJyOb275w5RofPSl8lpr4jFowd+H4oQKJ9XTYzD1JWgxdZKE8bA6d4npuiMemkecQOcigX01FNZNCYnQBdA==, - } + resolution: {integrity: sha512-9fhTJyOb275w5RofPSl8lpr4jFowd+H4oQKJ9XTYzD1JWgxdZKE8bA6d4npuiMemkecQOcigX01FNZNCYnQBdA==} cpu: [arm] os: [linux] '@rollup/rollup-linux-arm-musleabihf@4.46.4': - resolution: - { - integrity: sha512-+6kCIM5Zjvz2HwPl/udgVs07tPMIp1VU2Y0c72ezjOvSvEfAIWsUgpcSDvnC7g9NrjYR6X9bZT92mZZ90TfvXw==, - } + resolution: {integrity: sha512-+6kCIM5Zjvz2HwPl/udgVs07tPMIp1VU2Y0c72ezjOvSvEfAIWsUgpcSDvnC7g9NrjYR6X9bZT92mZZ90TfvXw==} cpu: [arm] os: [linux] '@rollup/rollup-linux-arm64-gnu@4.46.4': - resolution: - { - integrity: sha512-SWuXdnsayCZL4lXoo6jn0yyAj7TTjWE4NwDVt9s7cmu6poMhtiras5c8h6Ih6Y0Zk6Z+8t/mLumvpdSPTWub2Q==, - } + resolution: {integrity: sha512-SWuXdnsayCZL4lXoo6jn0yyAj7TTjWE4NwDVt9s7cmu6poMhtiras5c8h6Ih6Y0Zk6Z+8t/mLumvpdSPTWub2Q==} cpu: [arm64] os: [linux] '@rollup/rollup-linux-arm64-musl@4.46.4': - resolution: - { - integrity: sha512-vDknMDqtMhrrroa5kyX6tuC0aRZZlQ+ipDfbXd2YGz5HeV2t8HOl/FDAd2ynhs7Ki5VooWiiZcCtxiZ4IjqZwQ==, - } + resolution: {integrity: sha512-vDknMDqtMhrrroa5kyX6tuC0aRZZlQ+ipDfbXd2YGz5HeV2t8HOl/FDAd2ynhs7Ki5VooWiiZcCtxiZ4IjqZwQ==} cpu: [arm64] os: [linux] '@rollup/rollup-linux-loongarch64-gnu@4.46.4': - resolution: - { - integrity: sha512-mCBkjRZWhvjtl/x+Bd4fQkWZT8canStKDxGrHlBiTnZmJnWygGcvBylzLVCZXka4dco5ymkWhZlLwKCGFF4ivw==, - } + resolution: {integrity: sha512-mCBkjRZWhvjtl/x+Bd4fQkWZT8canStKDxGrHlBiTnZmJnWygGcvBylzLVCZXka4dco5ymkWhZlLwKCGFF4ivw==} cpu: [loong64] os: [linux] '@rollup/rollup-linux-ppc64-gnu@4.46.4': - resolution: - { - integrity: sha512-YMdz2phOTFF+Z66dQfGf0gmeDSi5DJzY5bpZyeg9CPBkV9QDzJ1yFRlmi/j7WWRf3hYIWrOaJj5jsfwgc8GTHQ==, - } + resolution: {integrity: sha512-YMdz2phOTFF+Z66dQfGf0gmeDSi5DJzY5bpZyeg9CPBkV9QDzJ1yFRlmi/j7WWRf3hYIWrOaJj5jsfwgc8GTHQ==} cpu: [ppc64] os: [linux] '@rollup/rollup-linux-riscv64-gnu@4.46.4': - resolution: - { - integrity: sha512-r0WKLSfFAK8ucG024v2yiLSJMedoWvk8yWqfNICX28NHDGeu3F/wBf8KG6mclghx4FsLePxJr/9N8rIj1PtCnw==, - } + resolution: {integrity: sha512-r0WKLSfFAK8ucG024v2yiLSJMedoWvk8yWqfNICX28NHDGeu3F/wBf8KG6mclghx4FsLePxJr/9N8rIj1PtCnw==} cpu: [riscv64] os: [linux] '@rollup/rollup-linux-riscv64-musl@4.46.4': - resolution: - { - integrity: sha512-IaizpPP2UQU3MNyPH1u0Xxbm73D+4OupL0bjo4Hm0496e2wg3zuvoAIhubkD1NGy9fXILEExPQy87mweujEatA==, - } + resolution: {integrity: sha512-IaizpPP2UQU3MNyPH1u0Xxbm73D+4OupL0bjo4Hm0496e2wg3zuvoAIhubkD1NGy9fXILEExPQy87mweujEatA==} cpu: [riscv64] os: [linux] '@rollup/rollup-linux-s390x-gnu@4.46.4': - resolution: - { - integrity: sha512-aCM29orANR0a8wk896p6UEgIfupReupnmISz6SUwMIwTGaTI8MuKdE0OD2LvEg8ondDyZdMvnaN3bW4nFbATPA==, - } + resolution: {integrity: sha512-aCM29orANR0a8wk896p6UEgIfupReupnmISz6SUwMIwTGaTI8MuKdE0OD2LvEg8ondDyZdMvnaN3bW4nFbATPA==} cpu: [s390x] os: [linux] '@rollup/rollup-linux-x64-gnu@4.46.4': - resolution: - { - integrity: sha512-0Xj1vZE3cbr/wda8d/m+UeuSL+TDpuozzdD4QaSzu/xSOMK0Su5RhIkF7KVHFQsobemUNHPLEcYllL7ZTCP/Cg==, - } + resolution: {integrity: sha512-0Xj1vZE3cbr/wda8d/m+UeuSL+TDpuozzdD4QaSzu/xSOMK0Su5RhIkF7KVHFQsobemUNHPLEcYllL7ZTCP/Cg==} cpu: [x64] os: [linux] '@rollup/rollup-linux-x64-musl@4.46.4': - resolution: - { - integrity: sha512-kM/orjpolfA5yxsx84kI6bnK47AAZuWxglGKcNmokw2yy9i5eHY5UAjcX45jemTJnfHAWo3/hOoRqEeeTdL5hw==, - } + resolution: {integrity: sha512-kM/orjpolfA5yxsx84kI6bnK47AAZuWxglGKcNmokw2yy9i5eHY5UAjcX45jemTJnfHAWo3/hOoRqEeeTdL5hw==} cpu: [x64] os: [linux] '@rollup/rollup-win32-arm64-msvc@4.46.4': - resolution: - { - integrity: sha512-cNLH4psMEsWKILW0isbpQA2OvjXLbKvnkcJFmqAptPQbtLrobiapBJVj6RoIvg6UXVp5w0wnIfd/Q56cNpF+Ew==, - } + resolution: {integrity: sha512-cNLH4psMEsWKILW0isbpQA2OvjXLbKvnkcJFmqAptPQbtLrobiapBJVj6RoIvg6UXVp5w0wnIfd/Q56cNpF+Ew==} cpu: [arm64] os: [win32] '@rollup/rollup-win32-ia32-msvc@4.46.4': - resolution: - { - integrity: sha512-OiEa5lRhiANpv4SfwYVgQ3opYWi/QmPDC5ve21m8G9pf6ZO+aX1g2EEF1/IFaM1xPSP7mK0msTRXlPs6mIagkg==, - } + resolution: {integrity: sha512-OiEa5lRhiANpv4SfwYVgQ3opYWi/QmPDC5ve21m8G9pf6ZO+aX1g2EEF1/IFaM1xPSP7mK0msTRXlPs6mIagkg==} cpu: [ia32] os: [win32] '@rollup/rollup-win32-x64-msvc@4.46.4': - resolution: - { - integrity: sha512-IKL9mewGZ5UuuX4NQlwOmxPyqielvkAPUS2s1cl6yWjjQvyN3h5JTdVFGD5Jr5xMjRC8setOfGQDVgX8V+dkjg==, - } + resolution: {integrity: sha512-IKL9mewGZ5UuuX4NQlwOmxPyqielvkAPUS2s1cl6yWjjQvyN3h5JTdVFGD5Jr5xMjRC8setOfGQDVgX8V+dkjg==} cpu: [x64] os: [win32] '@selderee/plugin-htmlparser2@0.11.0': - resolution: - { - integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==, - } + resolution: {integrity: sha512-P33hHGdldxGabLFjPPpaTxVolMrzrcegejx+0GxjrIb9Zv48D8yAIA/QTDR2dFl7Uz7urX8aX6+5bCZslr+gWQ==} '@sentry-internal/browser-utils@10.5.0': - resolution: - { - integrity: sha512-4KIJdEj/8Ip9yqJleVSFe68r/U5bn5o/lYUwnFNEnDNxmpUbOlr7x3DXYuRFi1sfoMUxK9K1DrjnBkR7YYF00g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-4KIJdEj/8Ip9yqJleVSFe68r/U5bn5o/lYUwnFNEnDNxmpUbOlr7x3DXYuRFi1sfoMUxK9K1DrjnBkR7YYF00g==} + engines: {node: '>=18'} '@sentry-internal/feedback@10.5.0': - resolution: - { - integrity: sha512-x79P4VZwUxb1EGZb9OQ5EEgrDWFCUlrbzHBwV/oocQA5Ss1SFz5u6cP5Ak7yJtILiJtdGzAyAoQOy4GKD13D4Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-x79P4VZwUxb1EGZb9OQ5EEgrDWFCUlrbzHBwV/oocQA5Ss1SFz5u6cP5Ak7yJtILiJtdGzAyAoQOy4GKD13D4Q==} + engines: {node: '>=18'} '@sentry-internal/replay-canvas@10.5.0': - resolution: - { - integrity: sha512-5nrRKd5swefd9+sFXFZ/NeL3bz/VxBls3ubAQ3afak15FikkSyHq3oKRKpMOtDsiYKXE3Bc0y3rF5A+y3OXjIA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5nrRKd5swefd9+sFXFZ/NeL3bz/VxBls3ubAQ3afak15FikkSyHq3oKRKpMOtDsiYKXE3Bc0y3rF5A+y3OXjIA==} + engines: {node: '>=18'} '@sentry-internal/replay@10.5.0': - resolution: - { - integrity: sha512-Dp4coE/nPzhFrYH3iVrpVKmhNJ1m/jGXMEDBCNg3wJZRszI41Hrj0jCAM0Y2S3Q4IxYOmFYaFbGtVpAznRyOHg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Dp4coE/nPzhFrYH3iVrpVKmhNJ1m/jGXMEDBCNg3wJZRszI41Hrj0jCAM0Y2S3Q4IxYOmFYaFbGtVpAznRyOHg==} + engines: {node: '>=18'} '@sentry/babel-plugin-component-annotate@4.1.1': - resolution: - { - integrity: sha512-HUpqrCK7zDVojTV6KL6BO9ZZiYrEYQqvYQrscyMsq04z+WCupXaH6YEliiNRvreR8DBJgdsG3lBRpebhUGmvfA==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-HUpqrCK7zDVojTV6KL6BO9ZZiYrEYQqvYQrscyMsq04z+WCupXaH6YEliiNRvreR8DBJgdsG3lBRpebhUGmvfA==} + engines: {node: '>= 14'} '@sentry/browser@10.5.0': - resolution: - { - integrity: sha512-o5pEJeZ/iZ7Fmaz2sIirThfnmSVNiP5ZYhacvcDi0qc288TmBbikCX3fXxq3xiSkhXfe1o5QIbNyovzfutyuVw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-o5pEJeZ/iZ7Fmaz2sIirThfnmSVNiP5ZYhacvcDi0qc288TmBbikCX3fXxq3xiSkhXfe1o5QIbNyovzfutyuVw==} + engines: {node: '>=18'} '@sentry/bundler-plugin-core@4.1.1': - resolution: - { - integrity: sha512-Hx9RgXaD1HEYmL5aYoWwCKkVvPp4iklwfD9mvmdpQtcwLg6b6oLnPVDQaOry1ak6Pxt8smlrWcKy4IiKASlvig==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-Hx9RgXaD1HEYmL5aYoWwCKkVvPp4iklwfD9mvmdpQtcwLg6b6oLnPVDQaOry1ak6Pxt8smlrWcKy4IiKASlvig==} + engines: {node: '>= 14'} '@sentry/cli-darwin@2.52.0': - resolution: - { - integrity: sha512-ieQs/p4yTHT27nBzy0wtAb8BSISfWlpXdgsACcwXimYa36NJRwyCqgOXUaH/BYiTdwWSHpuANbUHGJW6zljzxw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-ieQs/p4yTHT27nBzy0wtAb8BSISfWlpXdgsACcwXimYa36NJRwyCqgOXUaH/BYiTdwWSHpuANbUHGJW6zljzxw==} + engines: {node: '>=10'} os: [darwin] '@sentry/cli-linux-arm64@2.52.0': - resolution: - { - integrity: sha512-RxT5uzxjCkcvplmx0bavJIEYerRex2Rg/2RAVBdVvWLKFOcmeerTn/VVxPZVuDIVMVyjlZsteWPYwfUm+Ia3wQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-RxT5uzxjCkcvplmx0bavJIEYerRex2Rg/2RAVBdVvWLKFOcmeerTn/VVxPZVuDIVMVyjlZsteWPYwfUm+Ia3wQ==} + engines: {node: '>=10'} cpu: [arm64] os: [linux, freebsd, android] '@sentry/cli-linux-arm@2.52.0': - resolution: - { - integrity: sha512-tWMLU+hj+iip5Akx+S76biAOE1eMMWTDq8c0MqMv/ahHgb6/HiVngMcUsp59Oz3EczJGbTkcnS3vRTDodEcMDw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-tWMLU+hj+iip5Akx+S76biAOE1eMMWTDq8c0MqMv/ahHgb6/HiVngMcUsp59Oz3EczJGbTkcnS3vRTDodEcMDw==} + engines: {node: '>=10'} cpu: [arm] os: [linux, freebsd, android] '@sentry/cli-linux-i686@2.52.0': - resolution: - { - integrity: sha512-sKcJmIg7QWFtlNU5Bs5OZprwdIzzyYMRpFkWioPZ4TE82yvP1+2SAX31VPUlTx+7NLU6YVEWNwvSxh8LWb7iOw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-sKcJmIg7QWFtlNU5Bs5OZprwdIzzyYMRpFkWioPZ4TE82yvP1+2SAX31VPUlTx+7NLU6YVEWNwvSxh8LWb7iOw==} + engines: {node: '>=10'} cpu: [x86, ia32] os: [linux, freebsd, android] '@sentry/cli-linux-x64@2.52.0': - resolution: - { - integrity: sha512-aPZ7bP02zGkuEqTiOAm4np/ggfgtzrq4ti1Xze96Csi/DV3820SCfLrPlsvcvnqq7x69IL9cI3kXjdEpgrfGxw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-aPZ7bP02zGkuEqTiOAm4np/ggfgtzrq4ti1Xze96Csi/DV3820SCfLrPlsvcvnqq7x69IL9cI3kXjdEpgrfGxw==} + engines: {node: '>=10'} cpu: [x64] os: [linux, freebsd, android] '@sentry/cli-win32-arm64@2.52.0': - resolution: - { - integrity: sha512-90hrB5XdwJVhRpCmVrEcYoKW8nl5/V9OfVvOGeKUPvUkApLzvsInK74FYBZEVyAn1i/NdUv+Xk9q2zqUGK1aLQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-90hrB5XdwJVhRpCmVrEcYoKW8nl5/V9OfVvOGeKUPvUkApLzvsInK74FYBZEVyAn1i/NdUv+Xk9q2zqUGK1aLQ==} + engines: {node: '>=10'} cpu: [arm64] os: [win32] '@sentry/cli-win32-i686@2.52.0': - resolution: - { - integrity: sha512-HXlSE4CaLylNrELx4KVmOQjV5bURCNuky6sjCWiTH7HyDqHEak2Rk8iLE0JNLj5RETWMvmaZnZZFfmyGlY1opg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-HXlSE4CaLylNrELx4KVmOQjV5bURCNuky6sjCWiTH7HyDqHEak2Rk8iLE0JNLj5RETWMvmaZnZZFfmyGlY1opg==} + engines: {node: '>=10'} cpu: [x86, ia32] os: [win32] '@sentry/cli-win32-x64@2.52.0': - resolution: - { - integrity: sha512-hJT0C3FwHk1Mt9oFqcci88wbO1D+yAWUL8J29HEGM5ZAqlhdh7sAtPDIC3P2LceUJOjnXihow47Bkj62juatIQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hJT0C3FwHk1Mt9oFqcci88wbO1D+yAWUL8J29HEGM5ZAqlhdh7sAtPDIC3P2LceUJOjnXihow47Bkj62juatIQ==} + engines: {node: '>=10'} cpu: [x64] os: [win32] '@sentry/cli@2.52.0': - resolution: - { - integrity: sha512-PXyo7Yv7+rVMSBGZfI/eFEzzhiKedTs25sDCjz4a3goAZ/F5R5tn3MKq30pnze5wNnoQmLujAa0uUjfNcWP+uQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-PXyo7Yv7+rVMSBGZfI/eFEzzhiKedTs25sDCjz4a3goAZ/F5R5tn3MKq30pnze5wNnoQmLujAa0uUjfNcWP+uQ==} + engines: {node: '>= 10'} hasBin: true '@sentry/core@10.5.0': - resolution: - { - integrity: sha512-jTJ8NhZSKB2yj3QTVRXfCCngQzAOLThQUxCl9A7Mv+XF10tP7xbH/88MVQ5WiOr2IzcmrB9r2nmUe36BnMlLjA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-jTJ8NhZSKB2yj3QTVRXfCCngQzAOLThQUxCl9A7Mv+XF10tP7xbH/88MVQ5WiOr2IzcmrB9r2nmUe36BnMlLjA==} + engines: {node: '>=18'} + + '@sentry/core@10.50.0': + resolution: {integrity: sha512-J4A+vzUO3adl0TkFCjaN1+4miamrjHiEIYuLHiuu1lmAjq5WIVw32ObvAh4yMwNtxyaEMosTrrh5M6f12XSJFg==} + engines: {node: '>=18'} '@sentry/nextjs@10.5.0': - resolution: - { - integrity: sha512-CWozbPqbAX8qUx4DdVLgjEkjcG+JJ5vHyGczo8yiWVQQZAv/Ivd+TVxqAVMJiL68y+C4VQYfejGp64zsIYS3yw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-CWozbPqbAX8qUx4DdVLgjEkjcG+JJ5vHyGczo8yiWVQQZAv/Ivd+TVxqAVMJiL68y+C4VQYfejGp64zsIYS3yw==} + engines: {node: '>=18'} peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 '@sentry/node-core@10.5.0': - resolution: - { - integrity: sha512-VC4FCKMvvbUT32apTE0exfI/WigqKskzQA+VdFz61Y+T7mTCADngNrOjG3ilVYPBU7R9KEEziEd/oKgencqkmQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-VC4FCKMvvbUT32apTE0exfI/WigqKskzQA+VdFz61Y+T7mTCADngNrOjG3ilVYPBU7R9KEEziEd/oKgencqkmQ==} + engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 @@ -8484,19 +6444,41 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 '@opentelemetry/semantic-conventions': ^1.34.0 + '@sentry/node-core@10.50.0': + resolution: {integrity: sha512-Eb1BYf4Lc7ZYmdX3acKP6SgyGikrBA370gbGHaWI5jRu7G7vig8sIu1ghPmY5AlvqBPOetado7GniXr6fAXbTw==} + engines: {node: '>=18'} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 + '@opentelemetry/exporter-trace-otlp-http': '>=0.57.0 <1' + '@opentelemetry/instrumentation': '>=0.57.1 <1' + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 + '@opentelemetry/semantic-conventions': ^1.39.0 + peerDependenciesMeta: + '@opentelemetry/api': + optional: true + '@opentelemetry/core': + optional: true + '@opentelemetry/exporter-trace-otlp-http': + optional: true + '@opentelemetry/instrumentation': + optional: true + '@opentelemetry/sdk-trace-base': + optional: true + '@opentelemetry/semantic-conventions': + optional: true + '@sentry/node@10.5.0': - resolution: - { - integrity: sha512-GqTkOc7tkWqRTKNjipysElh/bzIkhfLsvNGwH6+zel5kU15IdOCFtAqIri85ZLo9vbaIVtjQELXOzfo/5MMAFQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-GqTkOc7tkWqRTKNjipysElh/bzIkhfLsvNGwH6+zel5kU15IdOCFtAqIri85ZLo9vbaIVtjQELXOzfo/5MMAFQ==} + engines: {node: '>=18'} + + '@sentry/node@10.50.0': + resolution: {integrity: sha512-TvwzFQu8MGKzMQ2/tqxcNzFA8UG2kKTB+GDmA4uOzx3+GT849YZRRSJzEXCmYhk1teVd2fbmgqyYY2nyLF5a+Q==} + engines: {node: '>=18'} '@sentry/opentelemetry@10.5.0': - resolution: - { - integrity: sha512-/Qva5vngtuh79YUUBA8kbbrD6w/A+u1vy1jnLoPMKDxWTfNPqT4tCiOOmWYotnITaE3QO0UtXK/j7LMX8FhtUA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-/Qva5vngtuh79YUUBA8kbbrD6w/A+u1vy1jnLoPMKDxWTfNPqT4tCiOOmWYotnITaE3QO0UtXK/j7LMX8FhtUA==} + engines: {node: '>=18'} peerDependencies: '@opentelemetry/api': ^1.9.0 '@opentelemetry/context-async-hooks': ^1.30.1 || ^2.0.0 @@ -8504,477 +6486,482 @@ packages: '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.0.0 '@opentelemetry/semantic-conventions': ^1.34.0 + '@sentry/opentelemetry@10.50.0': + resolution: {integrity: sha512-axn3pgDPveGdaMUC0abMCmFN7ux2pA5ebPufCef4lMIsyg7BBQvaEJ+vE19wjstMaBCAJGsdZlL3eeP2rtgRMw==} + engines: {node: '>=18'} + peerDependencies: + '@opentelemetry/api': ^1.9.0 + '@opentelemetry/core': ^1.30.1 || ^2.1.0 + '@opentelemetry/sdk-trace-base': ^1.30.1 || ^2.1.0 + '@opentelemetry/semantic-conventions': ^1.39.0 + '@sentry/react@10.5.0': - resolution: - { - integrity: sha512-UHanvg+oIAvE/Hm76QCCdxYgb+tIuF0JszQoROApl5C5RxRfJJcU643pASQs6BDvrtxbuMQ/AHTacLTYpsn0cg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-UHanvg+oIAvE/Hm76QCCdxYgb+tIuF0JszQoROApl5C5RxRfJJcU643pASQs6BDvrtxbuMQ/AHTacLTYpsn0cg==} + engines: {node: '>=18'} peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x '@sentry/vercel-edge@10.5.0': - resolution: - { - integrity: sha512-DoH+BrKyI9uVUHyEh6raSba2OUgQ0CLtFeitG0geU90VPgAlINNnjhNeKJPLp0rR3v1KesdHebnRNGUUlvXalA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-DoH+BrKyI9uVUHyEh6raSba2OUgQ0CLtFeitG0geU90VPgAlINNnjhNeKJPLp0rR3v1KesdHebnRNGUUlvXalA==} + engines: {node: '>=18'} '@sentry/webpack-plugin@4.1.1': - resolution: - { - integrity: sha512-2gFWcQMW1HdJDo/7rADeFs9crkH02l+mW4O1ORbxSjuegauyp1W8SBe7EfPoXbUmLdA3zwnpIxEXjjQpP5Etzg==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-2gFWcQMW1HdJDo/7rADeFs9crkH02l+mW4O1ORbxSjuegauyp1W8SBe7EfPoXbUmLdA3zwnpIxEXjjQpP5Etzg==} + engines: {node: '>= 14'} peerDependencies: webpack: '>=4.40.0' '@shikijs/core@3.11.0': - resolution: - { - integrity: sha512-oJwU+DxGqp6lUZpvtQgVOXNZcVsirN76tihOLBmwILkKuRuwHteApP8oTXmL4tF5vS5FbOY0+8seXmiCoslk4g==, - } + resolution: {integrity: sha512-oJwU+DxGqp6lUZpvtQgVOXNZcVsirN76tihOLBmwILkKuRuwHteApP8oTXmL4tF5vS5FbOY0+8seXmiCoslk4g==} '@shikijs/engine-javascript@3.11.0': - resolution: - { - integrity: sha512-6/ov6pxrSvew13k9ztIOnSBOytXeKs5kfIR7vbhdtVRg+KPzvp2HctYGeWkqv7V6YIoLicnig/QF3iajqyElZA==, - } + resolution: {integrity: sha512-6/ov6pxrSvew13k9ztIOnSBOytXeKs5kfIR7vbhdtVRg+KPzvp2HctYGeWkqv7V6YIoLicnig/QF3iajqyElZA==} '@shikijs/engine-oniguruma@3.11.0': - resolution: - { - integrity: sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==, - } + resolution: {integrity: sha512-4DwIjIgETK04VneKbfOE4WNm4Q7WC1wo95wv82PoHKdqX4/9qLRUwrfKlmhf0gAuvT6GHy0uc7t9cailk6Tbhw==} '@shikijs/langs@3.11.0': - resolution: - { - integrity: sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==, - } + resolution: {integrity: sha512-Njg/nFL4HDcf/ObxcK2VeyidIq61EeLmocrwTHGGpOQx0BzrPWM1j55XtKQ1LvvDWH15cjQy7rg96aJ1/l63uw==} '@shikijs/themes@3.11.0': - resolution: - { - integrity: sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==, - } + resolution: {integrity: sha512-BhhWRzCTEk2CtWt4S4bgsOqPJRkapvxdsifAwqP+6mk5uxboAQchc0etiJ0iIasxnMsb764qGD24DK9albcU9Q==} '@shikijs/twoslash@3.11.0': - resolution: - { - integrity: sha512-/mYrydaKDr5vwlgFbcaGOvYHds3oceIpru4eVWVvScOC6XbWx9lbYCVhyGtlgHlF1m5rZkAR6sdNAPKeDGKOAw==, - } + resolution: {integrity: sha512-/mYrydaKDr5vwlgFbcaGOvYHds3oceIpru4eVWVvScOC6XbWx9lbYCVhyGtlgHlF1m5rZkAR6sdNAPKeDGKOAw==} peerDependencies: typescript: '>=5.5.0' '@shikijs/types@3.11.0': - resolution: - { - integrity: sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==, - } + resolution: {integrity: sha512-RB7IMo2E7NZHyfkqAuaf4CofyY8bPzjWPjJRzn6SEak3b46fIQyG6Vx5fG/obqkfppQ+g8vEsiD7Uc6lqQt32Q==} '@shikijs/vscode-textmate@10.0.2': - resolution: - { - integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==, - } + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} '@sinclair/typebox@0.34.30': - resolution: - { - integrity: sha512-gFB3BiqjDxEoadW0zn+xyMVb7cLxPCoblVn2C/BKpI41WPYi2d6fwHAlynPNZ5O/Q4WEiujdnJzVtvG/Jc2CBQ==, - } + resolution: {integrity: sha512-gFB3BiqjDxEoadW0zn+xyMVb7cLxPCoblVn2C/BKpI41WPYi2d6fwHAlynPNZ5O/Q4WEiujdnJzVtvG/Jc2CBQ==} '@smithy/abort-controller@4.0.5': - resolution: - { - integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==} + engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader-native@4.0.0': - resolution: - { - integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-R9wM2yPmfEMsUmlMlIgSzOyICs0x9uu7UTHoccMyt7BWw8shcGM8HqB355+BZCPBcySvbTYMs62EgEQkNxz2ig==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader-native@4.2.3': + resolution: {integrity: sha512-jA5k5Udn7Y5717L86h4EIv06wIr3xn8GM1qHRi/Nf31annXcXHJjBKvgztnbn2TxH3xWrPBfgwHsOwZf0UmQWw==} + engines: {node: '>=18.0.0'} '@smithy/chunked-blob-reader@5.0.0': - resolution: - { - integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-+sKqDBQqb036hh4NPaUiEkYFkTUGYzRsn3EuFhyfQfMy6oGHEUJDurLP9Ufb5dasr/XiAmPNMr6wa9afjQB+Gw==} + engines: {node: '>=18.0.0'} + + '@smithy/chunked-blob-reader@5.2.2': + resolution: {integrity: sha512-St+kVicSyayWQca+I1rGitaOEH6uKgE8IUWoYnnEX26SWdWQcL6LvMSD19Lg+vYHKdT9B2Zuu7rd3i6Wnyb/iw==} + engines: {node: '>=18.0.0'} '@smithy/config-resolver@4.1.5': - resolution: - { - integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==} + engines: {node: '>=18.0.0'} + + '@smithy/config-resolver@4.4.17': + resolution: {integrity: sha512-TzDZcAnhTyAHbXVxWZo7/tEcrIeFq20IBk8So3OLOetWpR8EwY/yEqBMBFaJMeyEiREDq4NfEl+qO3OAUD+vbQ==} + engines: {node: '>=18.0.0'} + + '@smithy/core@3.23.17': + resolution: {integrity: sha512-x7BlLbUFL8NWCGjMF9C+1N5cVCxcPa7g6Tv9B4A2luWx3be3oU8hQ96wIwxe/s7OhIzvoJH73HAUSg5JXVlEtQ==} + engines: {node: '>=18.0.0'} '@smithy/core@3.8.0': - resolution: - { - integrity: sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==} + engines: {node: '>=18.0.0'} '@smithy/credential-provider-imds@4.0.7': - resolution: - { - integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==} + engines: {node: '>=18.0.0'} + + '@smithy/credential-provider-imds@4.2.14': + resolution: {integrity: sha512-Au28zBN48ZAoXdooGUHemuVBrkE+Ie6RPmGNIAJsFqj33Vhb6xAgRifUydZ2aY+M+KaMAETAlKk5NC5h1G7wpg==} + engines: {node: '>=18.0.0'} '@smithy/eventstream-codec@4.0.5': - resolution: - { - integrity: sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-miEUN+nz2UTNoRYRhRqVTJCx7jMeILdAurStT2XoS+mhokkmz1xAPp95DFW9Gxt4iF2VBqpeF9HbTQ3kY1viOA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-codec@4.2.14': + resolution: {integrity: sha512-erZq0nOIpzfeZdCyzZjdJb4nVSKLUmSkaQUVkRGQTXs30gyUGeKnrYEg+Xe1W5gE3aReS7IgsvANwVPxSzY6Pw==} + engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-browser@4.0.5': - resolution: - { - integrity: sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-LCUQUVTbM6HFKzImYlSB9w4xafZmpdmZsOh9rIl7riPC3osCgGFVP+wwvYVw6pXda9PPT9TcEZxaq3XE81EdJQ==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-browser@4.2.14': + resolution: {integrity: sha512-8IelTCtTctWRbb+0Dcy+C0aICh1qa0qWXqgjcXDmMuCvPJRnv26hiDZoAau2ILOniki65mCPKqOQs/BaWvO4CQ==} + engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-config-resolver@4.1.3': - resolution: - { - integrity: sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-yTTzw2jZjn/MbHu1pURbHdpjGbCuMHWncNBpJnQAPxOVnFUAbSIUSwafiphVDjNV93TdBJWmeVAds7yl5QCkcA==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-config-resolver@4.3.14': + resolution: {integrity: sha512-sqHiHpYRYo3FJlaIxD1J8PhbcmJAm7IuM16mVnwSkCToD7g00IBZzKuiLNMGmftULmEUX6/UAz8/NN5uMP8bVA==} + engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-node@4.0.5': - resolution: - { - integrity: sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-lGS10urI4CNzz6YlTe5EYG0YOpsSp3ra8MXyco4aqSkQDuyZPIw2hcaxDU82OUVtK7UY9hrSvgWtpsW5D4rb4g==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-node@4.2.14': + resolution: {integrity: sha512-Ht/8BuGlKfFTy0H3+8eEu0vdpwGztCnaLLXtpXNdQqiR7Hj4vFScU3T436vRAjATglOIPjJXronY+1WxxNLSiw==} + engines: {node: '>=18.0.0'} '@smithy/eventstream-serde-universal@4.0.5': - resolution: - { - integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-JFnmu4SU36YYw3DIBVao3FsJh4Uw65vVDIqlWT4LzR6gXA0F3KP0IXFKKJrhaVzCBhAuMsrUUaT5I+/4ZhF7aw==} + engines: {node: '>=18.0.0'} + + '@smithy/eventstream-serde-universal@4.2.14': + resolution: {integrity: sha512-lWyt4T2XQZUZgK3tQ3Wn0w3XBvZsK/vjTuJl6bXbnGZBHH0ZUSONTYiK9TgjTTzU54xQr3DRFwpjmhp0oLm3gg==} + engines: {node: '>=18.0.0'} '@smithy/fetch-http-handler@5.1.1': - resolution: - { - integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==} + engines: {node: '>=18.0.0'} + + '@smithy/fetch-http-handler@5.3.17': + resolution: {integrity: sha512-bXOvQzaSm6MnmLaWA1elgfQcAtN4UP3vXqV97bHuoOrHQOJiLT3ds6o9eo5bqd0TJfRFpzdGnDQdW3FACiAVdw==} + engines: {node: '>=18.0.0'} '@smithy/hash-blob-browser@4.0.5': - resolution: - { - integrity: sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-F7MmCd3FH/Q2edhcKd+qulWkwfChHbc9nhguBlVjSUE6hVHhec3q6uPQ+0u69S6ppvLtR3eStfCuEKMXBXhvvA==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-blob-browser@4.2.15': + resolution: {integrity: sha512-0PJ4Al3fg2nM4qKrAIxyNcApgqHAXcBkN8FeizOz69z0rb26uZ6lMESYtxegaTlXB5Hj84JfwMPavMrwDMjucA==} + engines: {node: '>=18.0.0'} '@smithy/hash-node@4.0.5': - resolution: - { - integrity: sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-node@4.2.14': + resolution: {integrity: sha512-8ZBDY2DD4wr+GGjTpPtiglEsqr0lUP+KHqgZcWczFf6qeZ/YRjMIOoQWVQlmwu7EtxKTd8YXD8lblmYcpBIA1g==} + engines: {node: '>=18.0.0'} '@smithy/hash-stream-node@4.0.5': - resolution: - { - integrity: sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-IJuDS3+VfWB67UC0GU0uYBG/TA30w+PlOaSo0GPm9UHS88A6rCP6uZxNjNYiyRtOcjv7TXn/60cW8ox1yuZsLg==} + engines: {node: '>=18.0.0'} + + '@smithy/hash-stream-node@4.2.14': + resolution: {integrity: sha512-tw4GANWkZPb6+BdD4Fgucqzey2+r73Z/GRo9zklsCdwrnxxumUV83ZIaBDdudV4Ylazw3EPTiJZhpX42105ruQ==} + engines: {node: '>=18.0.0'} '@smithy/invalid-dependency@4.0.5': - resolution: - { - integrity: sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==} + engines: {node: '>=18.0.0'} + + '@smithy/invalid-dependency@4.2.14': + resolution: {integrity: sha512-c21qJiTSb25xvvOp+H2TNZzPCngrvl5vIPqPB8zQ/DmJF4QWXO19x1dWfMJZ6wZuuWUPPm0gV8C0cU3+ifcWuw==} + engines: {node: '>=18.0.0'} '@smithy/is-array-buffer@2.2.0': - resolution: - { - integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-GGP3O9QFD24uGeAXYUjwSTXARoqpZykHadOmA8G5vfJPK0/DC67qa//0qvqrJzL1xc8WQWX7/yc7fwudjPHPhA==} + engines: {node: '>=14.0.0'} '@smithy/is-array-buffer@4.0.0': - resolution: - { - integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==} + engines: {node: '>=18.0.0'} + + '@smithy/is-array-buffer@4.2.2': + resolution: {integrity: sha512-n6rQ4N8Jj4YTQO3YFrlgZuwKodf4zUFs7EJIWH86pSCWBaAtAGBFfCM7Wx6D2bBJ2xqFNxGBSrUWswT3M0VJow==} + engines: {node: '>=18.0.0'} '@smithy/md5-js@4.0.5': - resolution: - { - integrity: sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-8n2XCwdUbGr8W/XhMTaxILkVlw2QebkVTn5tm3HOcbPbOpWg89zr6dPXsH8xbeTsbTXlJvlJNTQsKAIoqQGbdA==} + engines: {node: '>=18.0.0'} + + '@smithy/md5-js@4.2.14': + resolution: {integrity: sha512-V2v0vx+h0iUSNG1Alt+GNBMSLGCrl9iVsdd+Ap67HPM9PN479x12V8LkuMoKImNZxn3MXeuyUjls+/7ZACZghA==} + engines: {node: '>=18.0.0'} '@smithy/middleware-content-length@4.0.5': - resolution: - { - integrity: sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-content-length@4.2.14': + resolution: {integrity: sha512-xhHq7fX4/3lv5NHxLUk3OeEvl0xZ+Ek3qIbWaCL4f9JwgDZEclPBElljaZCAItdGPQl/kSM4LPMOpy1MYgprpw==} + engines: {node: '>=18.0.0'} '@smithy/middleware-endpoint@4.1.18': - resolution: - { - integrity: sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-endpoint@4.4.32': + resolution: {integrity: sha512-ZZkgyjnJppiZbIm6Qbx92pbXYi1uzenIvGhBSCDlc7NwuAkiqSgS75j1czAD25ZLs2FjMjYy1q7gyRVWG6JA0Q==} + engines: {node: '>=18.0.0'} '@smithy/middleware-retry@4.1.19': - resolution: - { - integrity: sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-retry@4.5.7': + resolution: {integrity: sha512-bRt6ZImqVSeTk39Nm81K20ObIiAZ3WefY7G6+iz/0tZjs4dgRRjvRX2sgsH+zi6iDCRR/aQvQofLKxxz4rPBZg==} + engines: {node: '>=18.0.0'} '@smithy/middleware-serde@4.0.9': - resolution: - { - integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-serde@4.2.20': + resolution: {integrity: sha512-Lx9JMO9vArPtiChE3wbEZ5akMIDQpWQtlu90lhACQmNOXcGXRbaDywMHDzuDZ2OkZzP+9wQfZi3YJT9F67zTQQ==} + engines: {node: '>=18.0.0'} '@smithy/middleware-stack@4.0.5': - resolution: - { - integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==} + engines: {node: '>=18.0.0'} + + '@smithy/middleware-stack@4.2.14': + resolution: {integrity: sha512-2dvkUKLuFdKsCRmOE4Mn63co0Djtsm+JMh0bYZQupN1pJwMeE8FmQmRLLzzEMN0dnNi7CDCYYH8F0EVwWiPBeA==} + engines: {node: '>=18.0.0'} '@smithy/node-config-provider@4.1.4': - resolution: - { - integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==} + engines: {node: '>=18.0.0'} + + '@smithy/node-config-provider@4.3.14': + resolution: {integrity: sha512-S+gFjyo/weSVL0P1b9Ts8C/CwIfNCgUPikk3sl6QVsfE/uUuO+QsF+NsE/JkpvWqqyz1wg7HFdiaZuj5CoBMRg==} + engines: {node: '>=18.0.0'} '@smithy/node-http-handler@4.1.1': - resolution: - { - integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==} + engines: {node: '>=18.0.0'} + + '@smithy/node-http-handler@4.6.1': + resolution: {integrity: sha512-iB+orM4x3xrr57X3YaXazfKnntl0LHlZB1kcXSGzMV1Tt0+YwEjGlbjk/44qEGtBzXAz6yFDzkYTKSV6Pj2HUg==} + engines: {node: '>=18.0.0'} '@smithy/property-provider@4.0.5': - resolution: - { - integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==} + engines: {node: '>=18.0.0'} + + '@smithy/property-provider@4.2.14': + resolution: {integrity: sha512-WuM31CgfsnQ/10i7NYr0PyxqknD72Y5uMfUMVSniPjbEPceiTErb4eIqJQ+pdxNEAUEWrewrGjIRjVbVHsxZiQ==} + engines: {node: '>=18.0.0'} '@smithy/protocol-http@5.1.3': - resolution: - { - integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==} + engines: {node: '>=18.0.0'} + + '@smithy/protocol-http@5.3.14': + resolution: {integrity: sha512-dN5F8kHx8RNU0r+pCwNmFZyz6ChjMkzShy/zup6MtkRmmix4vZzJdW+di7x//b1LiynIev88FM18ie+wwPcQtQ==} + engines: {node: '>=18.0.0'} '@smithy/querystring-builder@4.0.5': - resolution: - { - integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-builder@4.2.14': + resolution: {integrity: sha512-XYA5Z0IqTeF+5XDdh4BBmSA0HvbgVZIyv4cmOoUheDNR57K1HgBp9ukUMx3Cr3XpDHHpLBnexPE3LAtDsZkj2A==} + engines: {node: '>=18.0.0'} '@smithy/querystring-parser@4.0.5': - resolution: - { - integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==} + engines: {node: '>=18.0.0'} + + '@smithy/querystring-parser@4.2.14': + resolution: {integrity: sha512-hr+YyqBD23GVvRxGGrcc/oOeNlK3PzT5Fu4dzrDXxzS1LpFiuL2PQQqKPs87M79aW7ziMs+nvB3qdw77SqE7Lw==} + engines: {node: '>=18.0.0'} '@smithy/service-error-classification@4.0.7': - resolution: - { - integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==} + engines: {node: '>=18.0.0'} + + '@smithy/service-error-classification@4.3.1': + resolution: {integrity: sha512-aUQuDGh760ts/8MU+APjIZhlLPKhIIfqyzZaJikLEIMrdxFvxuLYD0WxWzaYWpmLbQlXDe9p7EWM3HsBe0K6Gw==} + engines: {node: '>=18.0.0'} '@smithy/shared-ini-file-loader@4.0.5': - resolution: - { - integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==} + engines: {node: '>=18.0.0'} + + '@smithy/shared-ini-file-loader@4.4.9': + resolution: {integrity: sha512-495/V2I15SHgedSJoDPD23JuSfKAp726ZI1V0wtjB07Wh7q/0tri/0e0DLefZCHgxZonrGKt/OCTpAtP1wE1kQ==} + engines: {node: '>=18.0.0'} '@smithy/signature-v4@5.1.3': - resolution: - { - integrity: sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==} + engines: {node: '>=18.0.0'} + + '@smithy/signature-v4@5.3.14': + resolution: {integrity: sha512-1D9Y/nmlVjCeSivCbhZ7hgEpmHyY1h0GvpSZt3l0xcD9JjmjVC1CHOozS6+Gh+/ldMH8JuJ6cujObQqfayAVFA==} + engines: {node: '>=18.0.0'} + + '@smithy/smithy-client@4.12.13': + resolution: {integrity: sha512-y/Pcj1V9+qG98gyu1gvftHB7rDpdh+7kIBIggs55yGm3JdtBV8GT8IFF3a1qxZ79QnaJHX9GXzvBG6tAd+czJA==} + engines: {node: '>=18.0.0'} '@smithy/smithy-client@4.4.10': - resolution: - { - integrity: sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/types@4.14.1': + resolution: {integrity: sha512-59b5HtSVrVR/eYNei3BUj3DCPKD/G7EtDDe7OEJE7i7FtQFugYo6MxbotS8mVJkLNVf8gYaAlEBwwtJ9HzhWSg==} + engines: {node: '>=18.0.0'} '@smithy/types@4.3.2': - resolution: - { - integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==} + engines: {node: '>=18.0.0'} '@smithy/url-parser@4.0.5': - resolution: - { - integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==} + engines: {node: '>=18.0.0'} + + '@smithy/url-parser@4.2.14': + resolution: {integrity: sha512-p06BiBigJ8bTA3MgnOfCtDUWnAMY0YfedO/GRpmc7p+wg3KW8vbXy1xwSu5ASy0wV7rRYtlfZOIKH4XqfhjSQQ==} + engines: {node: '>=18.0.0'} '@smithy/util-base64@4.0.0': - resolution: - { - integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-base64@4.3.2': + resolution: {integrity: sha512-XRH6b0H/5A3SgblmMa5ErXQ2XKhfbQB+Fm/oyLZ2O2kCUrwgg55bU0RekmzAhuwOjA9qdN5VU2BprOvGGUkOOQ==} + engines: {node: '>=18.0.0'} '@smithy/util-body-length-browser@4.0.0': - resolution: - { - integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-browser@4.2.2': + resolution: {integrity: sha512-JKCrLNOup3OOgmzeaKQwi4ZCTWlYR5H4Gm1r2uTMVBXoemo1UEghk5vtMi1xSu2ymgKVGW631e2fp9/R610ZjQ==} + engines: {node: '>=18.0.0'} '@smithy/util-body-length-node@4.0.0': - resolution: - { - integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-body-length-node@4.2.3': + resolution: {integrity: sha512-ZkJGvqBzMHVHE7r/hcuCxlTY8pQr1kMtdsVPs7ex4mMU+EAbcXppfo5NmyxMYi2XU49eqaz56j2gsk4dHHPG/g==} + engines: {node: '>=18.0.0'} '@smithy/util-buffer-from@2.2.0': - resolution: - { - integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} + engines: {node: '>=14.0.0'} '@smithy/util-buffer-from@4.0.0': - resolution: - { - integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==} + engines: {node: '>=18.0.0'} + + '@smithy/util-buffer-from@4.2.2': + resolution: {integrity: sha512-FDXD7cvUoFWwN6vtQfEta540Y/YBe5JneK3SoZg9bThSoOAC/eGeYEua6RkBgKjGa/sz6Y+DuBZj3+YEY21y4Q==} + engines: {node: '>=18.0.0'} '@smithy/util-config-provider@4.0.0': - resolution: - { - integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==} + engines: {node: '>=18.0.0'} + + '@smithy/util-config-provider@4.2.2': + resolution: {integrity: sha512-dWU03V3XUprJwaUIFVv4iOnS1FC9HnMHDfUrlNDSh4315v0cWyaIErP8KiqGVbf5z+JupoVpNM7ZB3jFiTejvQ==} + engines: {node: '>=18.0.0'} '@smithy/util-defaults-mode-browser@4.0.26': - resolution: - { - integrity: sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-browser@4.3.49': + resolution: {integrity: sha512-a5bNrdiONYB/qE2BuKegvUMd/+ZDwdg4vsNuuSzYE8qs2EYAdK9CynL+Rzn29PbPiUqoz/cbpRbcLzD5lEevHw==} + engines: {node: '>=18.0.0'} '@smithy/util-defaults-mode-node@4.0.26': - resolution: - { - integrity: sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-defaults-mode-node@4.2.54': + resolution: {integrity: sha512-g1cvrJvOnzeJgEdf7AE4luI7gp6L8weE0y9a9wQUSGtjb8QRHDbCJYuE4Sy0SD9N8RrnNPFsPltAz/OSoBR9Zw==} + engines: {node: '>=18.0.0'} '@smithy/util-endpoints@3.0.7': - resolution: - { - integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-endpoints@3.4.2': + resolution: {integrity: sha512-a55Tr+3OKld4TTtnT+RhKOQHyPxm3j/xL4OR83WBUhLJaKDS9dnJ7arRMOp3t31dcLhApwG9bgvrRXBHlLdIkg==} + engines: {node: '>=18.0.0'} '@smithy/util-hex-encoding@4.0.0': - resolution: - { - integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==} + engines: {node: '>=18.0.0'} + + '@smithy/util-hex-encoding@4.2.2': + resolution: {integrity: sha512-Qcz3W5vuHK4sLQdyT93k/rfrUwdJ8/HZ+nMUOyGdpeGA1Wxt65zYwi3oEl9kOM+RswvYq90fzkNDahPS8K0OIg==} + engines: {node: '>=18.0.0'} '@smithy/util-middleware@4.0.5': - resolution: - { - integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-middleware@4.2.14': + resolution: {integrity: sha512-1Su2vj9RYNDEv/V+2E+jXkkwGsgR7dc4sfHn9Z7ruzQHJIEni9zzw5CauvRXlFJfmgcqYP8fWa0dkh2Q2YaQyw==} + engines: {node: '>=18.0.0'} '@smithy/util-retry@4.0.7': - resolution: - { - integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-retry@4.3.6': + resolution: {integrity: sha512-p6/FO1n2KxMeQyna067i0uJ6TSbb165ZhnRtCpWh4Foxqbfc6oW+XITaL8QkFJj3KFnDe2URt4gOhgU06EP9ew==} + engines: {node: '>=18.0.0'} '@smithy/util-stream@4.2.4': - resolution: - { - integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==} + engines: {node: '>=18.0.0'} + + '@smithy/util-stream@4.5.25': + resolution: {integrity: sha512-/PFpG4k8Ze8Ei+mMKj3oiPICYekthuzePZMgZbCqMiXIHHf4n2aZ4Ps0aSRShycFTGuj/J6XldmC0x0DwednIA==} + engines: {node: '>=18.0.0'} '@smithy/util-uri-escape@4.0.0': - resolution: - { - integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==} + engines: {node: '>=18.0.0'} + + '@smithy/util-uri-escape@4.2.2': + resolution: {integrity: sha512-2kAStBlvq+lTXHyAZYfJRb/DfS3rsinLiwb+69SstC9Vb0s9vNWkRwpnj918Pfi85mzi42sOqdV72OLxWAISnw==} + engines: {node: '>=18.0.0'} '@smithy/util-utf8@2.3.0': - resolution: - { - integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-R8Rdn8Hy72KKcebgLiv8jQcQkXoLMOGGv5uI1/k0l+snqkOzQ1R0ChUBCxWMlBsFMekWjq0wRudIweFs7sKT5A==} + engines: {node: '>=14.0.0'} '@smithy/util-utf8@4.0.0': - resolution: - { - integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==} + engines: {node: '>=18.0.0'} + + '@smithy/util-utf8@4.2.2': + resolution: {integrity: sha512-75MeYpjdWRe8M5E3AW0O4Cx3UadweS+cwdXjwYGBW5h/gxxnbeZ877sLPX/ZJA9GVTlL/qG0dXP29JWFCD1Ayw==} + engines: {node: '>=18.0.0'} '@smithy/util-waiter@4.0.7': - resolution: - { - integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==} + engines: {node: '>=18.0.0'} + + '@smithy/util-waiter@4.3.0': + resolution: {integrity: sha512-JyjYmLAfS+pdxF92o4yLgEoy0zhayKTw73FU1aofLWwLcJw7iSqIY2exGmMTrl/lmZugP5p/zxdFSippJDfKWA==} + engines: {node: '>=18.0.0'} + + '@smithy/uuid@1.1.2': + resolution: {integrity: sha512-O/IEdcCUKkubz60tFbGA7ceITTAJsty+lBjNoorP4Z6XRqaFb/OjQjZODophEcuq68nKm6/0r+6/lLQ+XVpk8g==} + engines: {node: '>=18.0.0'} '@socket.io/component-emitter@3.1.2': - resolution: - { - integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==, - } + resolution: {integrity: sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==} '@storybook/addon-docs@9.1.2': - resolution: - { - integrity: sha512-U3eHJ8lQFfEZ/OcgdKkUBbW2Y2tpAsHfy8lQOBgs5Pgj9biHEJcUmq+drOS/sJhle673eoBcUFmspXulI4KP1w==, - } + resolution: {integrity: sha512-U3eHJ8lQFfEZ/OcgdKkUBbW2Y2tpAsHfy8lQOBgs5Pgj9biHEJcUmq+drOS/sJhle673eoBcUFmspXulI4KP1w==} peerDependencies: storybook: ^9.1.2 '@storybook/addon-links@9.1.2': - resolution: - { - integrity: sha512-drAWdhn5cRo5WcaORoCYfJ6tgTAw1m+ZJb1ICyNtTU6i/0nErV8jJjt7AziUcUIyzaGVJAkAMNC3+R4uDPSFDA==, - } + resolution: {integrity: sha512-drAWdhn5cRo5WcaORoCYfJ6tgTAw1m+ZJb1ICyNtTU6i/0nErV8jJjt7AziUcUIyzaGVJAkAMNC3+R4uDPSFDA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^9.1.2 @@ -8983,18 +6970,12 @@ packages: optional: true '@storybook/addon-onboarding@9.1.2': - resolution: - { - integrity: sha512-WfYIBmRtwUF13Hcu6BdsqATsAuBK0dwsz7O4tL0FGrIwY/vdzZ5jNzYvzzgilzlu9QiPvzEIBvs6X4BVulN3LQ==, - } + resolution: {integrity: sha512-WfYIBmRtwUF13Hcu6BdsqATsAuBK0dwsz7O4tL0FGrIwY/vdzZ5jNzYvzzgilzlu9QiPvzEIBvs6X4BVulN3LQ==} peerDependencies: storybook: ^9.1.2 '@storybook/addon-vitest@9.0.8': - resolution: - { - integrity: sha512-LfO98ZbXwMknEnN9ICOj2UodVyr/62Q1o64WQyuktVZVZ4fXQXtPZO7uP9F4TX5HuvNWIiaxGlhBYfEzcErbUA==, - } + resolution: {integrity: sha512-LfO98ZbXwMknEnN9ICOj2UodVyr/62Q1o64WQyuktVZVZ4fXQXtPZO7uP9F4TX5HuvNWIiaxGlhBYfEzcErbUA==} peerDependencies: '@vitest/browser': ^3.0.0 '@vitest/runner': ^3.0.0 @@ -9009,44 +6990,29 @@ packages: optional: true '@storybook/builder-vite@9.1.2': - resolution: - { - integrity: sha512-5Y7e5wnSzFxCGP63UNRRZVoxHe1znU4dYXazJBobAlEcUPBk7A0sH2716tA6bS4oz92oG9tgvn1g996hRrw4ow==, - } + resolution: {integrity: sha512-5Y7e5wnSzFxCGP63UNRRZVoxHe1znU4dYXazJBobAlEcUPBk7A0sH2716tA6bS4oz92oG9tgvn1g996hRrw4ow==} peerDependencies: storybook: ^9.1.2 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 '@storybook/csf-plugin@9.1.2': - resolution: - { - integrity: sha512-bfMh6r+RieBLPWtqqYN70le2uTE4JzOYPMYSCagHykUti3uM/1vRFaZNkZtUsRy5GwEzE5jLdDXioG1lOEeT2Q==, - } + resolution: {integrity: sha512-bfMh6r+RieBLPWtqqYN70le2uTE4JzOYPMYSCagHykUti3uM/1vRFaZNkZtUsRy5GwEzE5jLdDXioG1lOEeT2Q==} peerDependencies: storybook: ^9.1.2 '@storybook/global@5.0.0': - resolution: - { - integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==, - } + resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==} '@storybook/icons@1.4.0': - resolution: - { - integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-Td73IeJxOyalzvjQL+JXx72jlIYHgs+REaHiREOqfpo3A2AYYG71AUbcv+lg7mEDIweKVCxsMQ0UKo634c8XeA==} + engines: {node: '>=14.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta '@storybook/nextjs-vite@9.1.2': - resolution: - { - integrity: sha512-qmbNLmM4B+Zs6fNxdB4pm7Q8MbDYm4Tc/jmVA3KZPJB6Nmvjgj2td6LJa22ByPnFOq+z0NIM7IXDgkmb5zOTbQ==, - } - engines: { node: '>=20.0.0' } + resolution: {integrity: sha512-qmbNLmM4B+Zs6fNxdB4pm7Q8MbDYm4Tc/jmVA3KZPJB6Nmvjgj2td6LJa22ByPnFOq+z0NIM7IXDgkmb5zOTbQ==} + engines: {node: '>=20.0.0'} peerDependencies: next: ^14.1.0 || ^15.0.0 react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -9059,21 +7025,15 @@ packages: optional: true '@storybook/react-dom-shim@9.1.2': - resolution: - { - integrity: sha512-nw7BLAHCJswPZGsuL0Gs2AvFUWriusCTgPBmcHppSw/AqvT4XRFRDE+5q3j04/XKuZBrAA2sC4L+HuC0uzEChQ==, - } + resolution: {integrity: sha512-nw7BLAHCJswPZGsuL0Gs2AvFUWriusCTgPBmcHppSw/AqvT4XRFRDE+5q3j04/XKuZBrAA2sC4L+HuC0uzEChQ==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta storybook: ^9.1.2 '@storybook/react-vite@9.1.2': - resolution: - { - integrity: sha512-dv3CBjOzmMoSyIotMtdmsBRjB25i19OjFP0IZqauLeUoVm6QddILW7JRcZVLrzhATyBEn+sEAdWQ4j79Z11HAg==, - } - engines: { node: '>=20.0.0' } + resolution: {integrity: sha512-dv3CBjOzmMoSyIotMtdmsBRjB25i19OjFP0IZqauLeUoVm6QddILW7JRcZVLrzhATyBEn+sEAdWQ4j79Z11HAg==} + engines: {node: '>=20.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -9081,11 +7041,8 @@ packages: vite: ^5.0.0 || ^6.0.0 || ^7.0.0 '@storybook/react@9.1.2': - resolution: - { - integrity: sha512-VVXu1HrhDExj/yj+heFYc8cgIzBruXy1UYT3LW0WiJyadgzYz3J41l/Lf/j2FCppyxwlXb19Uv51plb1F1C77w==, - } - engines: { node: '>=20.0.0' } + resolution: {integrity: sha512-VVXu1HrhDExj/yj+heFYc8cgIzBruXy1UYT3LW0WiJyadgzYz3J41l/Lf/j2FCppyxwlXb19Uv51plb1F1C77w==} + engines: {node: '>=20.0.0'} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0-beta @@ -9096,101 +7053,68 @@ packages: optional: true '@swc/core-darwin-arm64@1.7.24': - resolution: - { - integrity: sha512-s0k09qAcsoa8jIncwgRRd43VApYqXu28R4OmICtDffV4S01HtsRLRarXsMuLutoZk3tbxqitep+A8MPBuqNgdg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-s0k09qAcsoa8jIncwgRRd43VApYqXu28R4OmICtDffV4S01HtsRLRarXsMuLutoZk3tbxqitep+A8MPBuqNgdg==} + engines: {node: '>=10'} cpu: [arm64] os: [darwin] '@swc/core-darwin-x64@1.7.24': - resolution: - { - integrity: sha512-1dlsulJ/fiOoJoJyQgaCewIEaZ7Sh6aJN4r5Uhl4lIZuNWa27XOb28A3K29/6HDO9JML3IJrvXPnl5o0vxDQuQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-1dlsulJ/fiOoJoJyQgaCewIEaZ7Sh6aJN4r5Uhl4lIZuNWa27XOb28A3K29/6HDO9JML3IJrvXPnl5o0vxDQuQ==} + engines: {node: '>=10'} cpu: [x64] os: [darwin] '@swc/core-linux-arm-gnueabihf@1.7.24': - resolution: - { - integrity: sha512-2ft1NmxyvHCu5CY4r2rNVybPqZtJaxpRSzvCcPlVjN/2D5Q3QgM5kBoo1t+0RCFfk4TS2V0KWJhtqKz0CNX62Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-2ft1NmxyvHCu5CY4r2rNVybPqZtJaxpRSzvCcPlVjN/2D5Q3QgM5kBoo1t+0RCFfk4TS2V0KWJhtqKz0CNX62Q==} + engines: {node: '>=10'} cpu: [arm] os: [linux] '@swc/core-linux-arm64-gnu@1.7.24': - resolution: - { - integrity: sha512-v/Z8I9tUUNkNHKa1Sw4r1Q7Wp66ezbRhe6xMIxvPNKVJQFaMOsRpe0t8T5qbk5sV2hJGOCKpQynSpZqQXLcJDQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-v/Z8I9tUUNkNHKa1Sw4r1Q7Wp66ezbRhe6xMIxvPNKVJQFaMOsRpe0t8T5qbk5sV2hJGOCKpQynSpZqQXLcJDQ==} + engines: {node: '>=10'} cpu: [arm64] os: [linux] '@swc/core-linux-arm64-musl@1.7.24': - resolution: - { - integrity: sha512-0jJx0IcajcyOXaJsx1jXy86lYVrbupyy2VUj/OiJux/ic4oBJLjfL+WOuc8T8/hZj2p6X0X4jvfSCqWSuic4kA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-0jJx0IcajcyOXaJsx1jXy86lYVrbupyy2VUj/OiJux/ic4oBJLjfL+WOuc8T8/hZj2p6X0X4jvfSCqWSuic4kA==} + engines: {node: '>=10'} cpu: [arm64] os: [linux] '@swc/core-linux-x64-gnu@1.7.24': - resolution: - { - integrity: sha512-2+3aKQpSGjVnWKDTKUPuJzitQlTQrGorg+PVFMRkv6l+RcNCHZQNe/8VYpMhyBhxDMb3LUlbp7776FRevcruxg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-2+3aKQpSGjVnWKDTKUPuJzitQlTQrGorg+PVFMRkv6l+RcNCHZQNe/8VYpMhyBhxDMb3LUlbp7776FRevcruxg==} + engines: {node: '>=10'} cpu: [x64] os: [linux] '@swc/core-linux-x64-musl@1.7.24': - resolution: - { - integrity: sha512-PMQ6SkCtMoj0Ks77DiishpEmIuHpYjFLDuVOzzJCzGeGoii0yRP5lKy/VeglFYLPqJzmhK9BHlpVehVf/8ZpvA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-PMQ6SkCtMoj0Ks77DiishpEmIuHpYjFLDuVOzzJCzGeGoii0yRP5lKy/VeglFYLPqJzmhK9BHlpVehVf/8ZpvA==} + engines: {node: '>=10'} cpu: [x64] os: [linux] '@swc/core-win32-arm64-msvc@1.7.24': - resolution: - { - integrity: sha512-SNdCa4DtGXNWrPVHqctVUxgEVZVETuqERpqF50KFHO0Bvf5V/m1IJ4hFr2BxXlrzgnIW4t1Dpi6YOJbcGbEmnA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-SNdCa4DtGXNWrPVHqctVUxgEVZVETuqERpqF50KFHO0Bvf5V/m1IJ4hFr2BxXlrzgnIW4t1Dpi6YOJbcGbEmnA==} + engines: {node: '>=10'} cpu: [arm64] os: [win32] '@swc/core-win32-ia32-msvc@1.7.24': - resolution: - { - integrity: sha512-5p3olHqwibMfrVFg2yVuSIPh9HArDYYlJXNZ9JKqeZk23A19J1pl9MuPmXDw+sxsiPfYJ/nUedIGeUHPF/+EDw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-5p3olHqwibMfrVFg2yVuSIPh9HArDYYlJXNZ9JKqeZk23A19J1pl9MuPmXDw+sxsiPfYJ/nUedIGeUHPF/+EDw==} + engines: {node: '>=10'} cpu: [ia32] os: [win32] '@swc/core-win32-x64-msvc@1.7.24': - resolution: - { - integrity: sha512-gRyPIxDznS8d2ClfmWbytjp2d48bij6swHnDLWhukNuOvXdQkEmaIzjEsionFG/zhcFLnz8zKfTvjEjInAMzxg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-gRyPIxDznS8d2ClfmWbytjp2d48bij6swHnDLWhukNuOvXdQkEmaIzjEsionFG/zhcFLnz8zKfTvjEjInAMzxg==} + engines: {node: '>=10'} cpu: [x64] os: [win32] '@swc/core@1.7.24': - resolution: - { - integrity: sha512-FzJaai6z6DYdICAY1UKNN5pzTn296ksK2zzEjjaXlpZtoMkGktWT0ttS7hbdBCPGhLOu5Q9TA2zdPejKUFjgig==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-FzJaai6z6DYdICAY1UKNN5pzTn296ksK2zzEjjaXlpZtoMkGktWT0ttS7hbdBCPGhLOu5Q9TA2zdPejKUFjgig==} + engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' peerDependenciesMeta: @@ -9198,34 +7122,19 @@ packages: optional: true '@swc/counter@0.1.3': - resolution: - { - integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==, - } + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} '@swc/helpers@0.5.15': - resolution: - { - integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==, - } + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} '@swc/helpers@0.5.17': - resolution: - { - integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==, - } + resolution: {integrity: sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==} '@swc/types@0.1.24': - resolution: - { - integrity: sha512-tjTMh3V4vAORHtdTprLlfoMptu1WfTZG9Rsca6yOKyNYsRr+MUXutKmliB17orgSZk5DpnDxs8GUdd/qwYxOng==, - } + resolution: {integrity: sha512-tjTMh3V4vAORHtdTprLlfoMptu1WfTZG9Rsca6yOKyNYsRr+MUXutKmliB17orgSZk5DpnDxs8GUdd/qwYxOng==} '@t3-oss/env-core@0.11.1': - resolution: - { - integrity: sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==, - } + resolution: {integrity: sha512-MaxOwEoG1ntCFoKJsS7nqwgcxLW1SJw238AJwfJeaz3P/8GtkxXZsPPolsz1AdYvUTbe3XvqZ/VCdfjt+3zmKw==} peerDependencies: typescript: '>=5.0.0' zod: ^3.0.0 @@ -9234,10 +7143,7 @@ packages: optional: true '@t3-oss/env-core@0.12.0': - resolution: - { - integrity: sha512-lOPj8d9nJJTt81mMuN9GMk8x5veOt7q9m11OSnCBJhwp1QrL/qR+M8Y467ULBSm9SunosryWNbmQQbgoiMgcdw==, - } + resolution: {integrity: sha512-lOPj8d9nJJTt81mMuN9GMk8x5veOt7q9m11OSnCBJhwp1QrL/qR+M8Y467ULBSm9SunosryWNbmQQbgoiMgcdw==} peerDependencies: typescript: '>=5.0.0' valibot: ^1.0.0-beta.7 || ^1.0.0 @@ -9251,10 +7157,7 @@ packages: optional: true '@t3-oss/env-nextjs@0.11.1': - resolution: - { - integrity: sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==, - } + resolution: {integrity: sha512-rx2XL9+v6wtOqLNJbD5eD8OezKlQD1BtC0WvvtHwBgK66jnF5+wGqtgkKK4Ygie1LVmoDClths2T4tdFmRvGrQ==} peerDependencies: typescript: '>=5.0.0' zod: ^3.0.0 @@ -9263,193 +7166,127 @@ packages: optional: true '@tailwindcss/forms@0.5.10': - resolution: - { - integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==, - } + resolution: {integrity: sha512-utI1ONF6uf/pPNO68kmN1b8rEwNXv3czukalo8VtJH8ksIkZXr3Q3VYudZLkCsDd4Wku120uF02hYK25XGPorw==} peerDependencies: tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20 || >= 4.0.0-beta.1' '@tailwindcss/node@4.1.12': - resolution: - { - integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==, - } + resolution: {integrity: sha512-3hm9brwvQkZFe++SBt+oLjo4OLDtkvlE8q2WalaD/7QWaeM7KEJbAiY/LJZUaCs7Xa8aUu4xy3uoyX4q54UVdQ==} '@tailwindcss/node@4.1.17': - resolution: - { - integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==, - } + resolution: {integrity: sha512-csIkHIgLb3JisEFQ0vxr2Y57GUNYh447C8xzwj89U/8fdW8LhProdxvnVH6U8M2Y73QKiTIH+LWbK3V2BBZsAg==} '@tailwindcss/oxide-android-arm64@4.1.12': - resolution: - { - integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-oNY5pq+1gc4T6QVTsZKwZaGpBb2N1H1fsc1GD4o7yinFySqIuRZ2E4NvGasWc6PhYJwGK2+5YT1f9Tp80zUQZQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@tailwindcss/oxide-android-arm64@4.1.17': - resolution: - { - integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-BMqpkJHgOZ5z78qqiGE6ZIRExyaHyuxjgrJ6eBO5+hfrfGkuya0lYfw8fRHG77gdTjWkNWEEm+qeG2cDMxArLQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [android] '@tailwindcss/oxide-darwin-arm64@4.1.12': - resolution: - { - integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-cq1qmq2HEtDV9HvZlTtrj671mCdGB93bVY6J29mwCyaMYCP/JaUBXxrQQQm7Qn33AXXASPUb2HFZlWiiHWFytw==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@tailwindcss/oxide-darwin-arm64@4.1.17': - resolution: - { - integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-EquyumkQweUBNk1zGEU/wfZo2qkp/nQKRZM8bUYO0J+Lums5+wl2CcG1f9BgAjn/u9pJzdYddHWBiFXJTcxmOg==} + engines: {node: '>= 10'} cpu: [arm64] os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.12': - resolution: - { - integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-6UCsIeFUcBfpangqlXay9Ffty9XhFH1QuUFn0WV83W8lGdX8cD5/+2ONLluALJD5+yJ7k8mVtwy3zMZmzEfbLg==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@tailwindcss/oxide-darwin-x64@4.1.17': - resolution: - { - integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-gdhEPLzke2Pog8s12oADwYu0IAw04Y2tlmgVzIN0+046ytcgx8uZmCzEg4VcQh+AHKiS7xaL8kGo/QTiNEGRog==} + engines: {node: '>= 10'} cpu: [x64] os: [darwin] '@tailwindcss/oxide-freebsd-x64@4.1.12': - resolution: - { - integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-JOH/f7j6+nYXIrHobRYCtoArJdMJh5zy5lr0FV0Qu47MID/vqJAY3r/OElPzx1C/wdT1uS7cPq+xdYYelny1ww==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@tailwindcss/oxide-freebsd-x64@4.1.17': - resolution: - { - integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-hxGS81KskMxML9DXsaXT1H0DyA+ZBIbyG/sSAjWNe2EDl7TkPOBI42GBV3u38itzGUOmFfCzk1iAjDXds8Oh0g==} + engines: {node: '>= 10'} cpu: [x64] os: [freebsd] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.12': - resolution: - { - integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-v4Ghvi9AU1SYgGr3/j38PD8PEe6bRfTnNSUE3YCMIRrrNigCFtHZ2TCm8142X8fcSqHBZBceDx+JlFJEfNg5zQ==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@tailwindcss/oxide-linux-arm-gnueabihf@4.1.17': - resolution: - { - integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-k7jWk5E3ldAdw0cNglhjSgv501u7yrMf8oeZ0cElhxU6Y2o7f8yqelOp3fhf7evjIS6ujTI3U8pKUXV2I4iXHQ==} + engines: {node: '>= 10'} cpu: [arm] os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.12': - resolution: - { - integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-YP5s1LmetL9UsvVAKusHSyPlzSRqYyRB0f+Kl/xcYQSPLEw/BvGfxzbH+ihUciePDjiXwHh+p+qbSP3SlJw+6g==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-arm64-gnu@4.1.17': - resolution: - { - integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-HVDOm/mxK6+TbARwdW17WrgDYEGzmoYayrCgmLEw7FxTPLcp/glBisuyWkFz/jb7ZfiAXAXUACfyItn+nTgsdQ==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-arm64-musl@4.1.12': - resolution: - { - integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-V8pAM3s8gsrXcCv6kCHSuwyb/gPsd863iT+v1PGXC4fSL/OJqsKhfK//v8P+w9ThKIoqNbEnsZqNy+WDnwQqCA==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-arm64-musl@4.1.17': - resolution: - { - integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-HvZLfGr42i5anKtIeQzxdkw/wPqIbpeZqe7vd3V9vI3RQxe3xU1fLjss0TjyhxWcBaipk7NYwSrwTwK1hJARMg==} + engines: {node: '>= 10'} cpu: [arm64] os: [linux] '@tailwindcss/oxide-linux-x64-gnu@4.1.12': - resolution: - { - integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-xYfqYLjvm2UQ3TZggTGrwxjYaLB62b1Wiysw/YE3Yqbh86sOMoTn0feF98PonP7LtjsWOWcXEbGqDL7zv0uW8Q==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@tailwindcss/oxide-linux-x64-gnu@4.1.17': - resolution: - { - integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-M3XZuORCGB7VPOEDH+nzpJ21XPvK5PyjlkSFkFziNHGLc5d6g3di2McAAblmaSUNl8IOmzYwLx9NsE7bplNkwQ==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@tailwindcss/oxide-linux-x64-musl@4.1.12': - resolution: - { - integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-ha0pHPamN+fWZY7GCzz5rKunlv9L5R8kdh+YNvP5awe3LtuXb5nRi/H27GeL2U+TdhDOptU7T6Is7mdwh5Ar3A==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@tailwindcss/oxide-linux-x64-musl@4.1.17': - resolution: - { - integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-k7f+pf9eXLEey4pBlw+8dgfJHY4PZ5qOUFDyNf7SI6lHjQ9Zt7+NcscjpwdCEbYi6FI5c2KDTDWyf2iHcCSyyQ==} + engines: {node: '>= 10'} cpu: [x64] os: [linux] '@tailwindcss/oxide-wasm32-wasi@4.1.12': - resolution: - { - integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-4tSyu3dW+ktzdEpuk6g49KdEangu3eCYoqPhWNsZgUhyegEda3M9rG0/j1GV/JjVVsj+lG7jWAyrTlLzd/WEBg==} + engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' @@ -9460,11 +7297,8 @@ packages: - tslib '@tailwindcss/oxide-wasm32-wasi@4.1.17': - resolution: - { - integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-cEytGqSSoy7zK4JRWiTCx43FsKP/zGr0CsuMawhH67ONlH+T79VteQeJQRO/X7L0juEUA8ZyuYikcRBf0vsxhg==} + engines: {node: '>=14.0.0'} cpu: [wasm32] bundledDependencies: - '@napi-rs/wasm-runtime' @@ -9475,156 +7309,96 @@ packages: - tslib '@tailwindcss/oxide-win32-arm64-msvc@4.1.12': - resolution: - { - integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-iGLyD/cVP724+FGtMWslhcFyg4xyYyM+5F4hGvKA7eifPkXHRAUDFaimu53fpNg9X8dfP75pXx/zFt/jlNF+lg==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@tailwindcss/oxide-win32-arm64-msvc@4.1.17': - resolution: - { - integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-JU5AHr7gKbZlOGvMdb4722/0aYbU+tN6lv1kONx0JK2cGsh7g148zVWLM0IKR3NeKLv+L90chBVYcJ8uJWbC9A==} + engines: {node: '>= 10'} cpu: [arm64] os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.12': - resolution: - { - integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-NKIh5rzw6CpEodv/++r0hGLlfgT/gFN+5WNdZtvh6wpU2BpGNgdjvj6H2oFc8nCM839QM1YOhjpgbAONUb4IxA==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@tailwindcss/oxide-win32-x64-msvc@4.1.17': - resolution: - { - integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-SKWM4waLuqx0IH+FMDUw6R66Hu4OuTALFgnleKbqhgGU30DY20NORZMZUKgLRjQXNN2TLzKvh48QXTig4h4bGw==} + engines: {node: '>= 10'} cpu: [x64] os: [win32] '@tailwindcss/oxide@4.1.12': - resolution: - { - integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-gM5EoKHW/ukmlEtphNwaGx45fGoEmP10v51t9unv55voWh6WrOL19hfuIdo2FjxIaZzw776/BUQg7Pck++cIVw==} + engines: {node: '>= 10'} '@tailwindcss/oxide@4.1.17': - resolution: - { - integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-F0F7d01fmkQhsTjXezGBLdrl1KresJTcI3DB8EkScCldyKp3Msz4hub4uyYaVnk88BAS1g5DQjjF6F5qczheLA==} + engines: {node: '>= 10'} '@tailwindcss/postcss@4.1.12': - resolution: - { - integrity: sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==, - } + resolution: {integrity: sha512-5PpLYhCAwf9SJEeIsSmCDLgyVfdBhdBpzX1OJ87anT9IVR0Z9pjM0FNixCAUAHGnMBGB8K99SwAheXrT0Kh6QQ==} '@tailwindcss/postcss@4.1.17': - resolution: - { - integrity: sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw==, - } + resolution: {integrity: sha512-+nKl9N9mN5uJ+M7dBOOCzINw94MPstNR/GtIhz1fpZysxL/4a+No64jCBD6CPN+bIHWFx3KWuu8XJRrj/572Dw==} '@tailwindcss/typography@0.5.16': - resolution: - { - integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==, - } + resolution: {integrity: sha512-0wDLwCVF5V3x3b1SGXPCDcdsbDHMBe+lkFzBRaHeLvNi+nrrnZ1lA18u+OTWO8iSWU2GxUOCvlXtDuqftc1oiA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders || >=4.0.0-alpha.20 || >=4.0.0-beta.1' '@tanstack/query-core@5.85.5': - resolution: - { - integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==, - } + resolution: {integrity: sha512-KO0WTob4JEApv69iYp1eGvfMSUkgw//IpMnq+//cORBzXf0smyRwPLrUvEe5qtAEGjwZTXrjxg+oJNP/C00t6w==} '@tanstack/query-devtools@5.84.0': - resolution: - { - integrity: sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==, - } + resolution: {integrity: sha512-fbF3n+z1rqhvd9EoGp5knHkv3p5B2Zml1yNRjh7sNXklngYI5RVIWUrUjZ1RIcEoscarUb0+bOvIs5x9dwzOXQ==} '@tanstack/react-query-devtools@5.85.5': - resolution: - { - integrity: sha512-6Ol6Q+LxrCZlQR4NoI5181r+ptTwnlPG2t7H9Sp3klxTBhYGunONqcgBn2YKRPsaKiYM8pItpKMdMXMEINntMQ==, - } + resolution: {integrity: sha512-6Ol6Q+LxrCZlQR4NoI5181r+ptTwnlPG2t7H9Sp3klxTBhYGunONqcgBn2YKRPsaKiYM8pItpKMdMXMEINntMQ==} peerDependencies: '@tanstack/react-query': ^5.85.5 react: ^18 || ^19 '@tanstack/react-query@5.85.5': - resolution: - { - integrity: sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==, - } + resolution: {integrity: sha512-/X4EFNcnPiSs8wM2v+b6DqS5mmGeuJQvxBglmDxl6ZQb5V26ouD2SJYAcC3VjbNwqhY2zjxVD15rDA5nGbMn3A==} peerDependencies: react: ^18 || ^19 '@tanstack/react-table@8.21.3': - resolution: - { - integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5nNMTSETP4ykGegmVkhjcS8tTLW6Vl4axfEGQN3v0zdHYbK4UfoqfPChclTrJ4EoK9QynqAu9oUf8VEmrpZ5Ww==} + engines: {node: '>=12'} peerDependencies: react: '>=16.8' react-dom: '>=16.8' '@tanstack/react-virtual@3.13.12': - resolution: - { - integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==, - } + resolution: {integrity: sha512-Gd13QdxPSukP8ZrkbgS2RwoZseTTbQPLnQEn7HY/rqtM+8Zt95f7xKC7N0EsKs7aoz0WzZ+fditZux+F8EzYxA==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 '@tanstack/table-core@8.21.3': - resolution: - { - integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ldZXEhOBb8Is7xLs01fR3YEc3DERiz5silj8tnGkFZytt1abEvl/GhUmCE0PMLaMPTa3Jk4HbKmRlHmu+gCftg==} + engines: {node: '>=12'} '@tanstack/virtual-core@3.13.12': - resolution: - { - integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==, - } + resolution: {integrity: sha512-1YBOJfRHV4sXUmWsFSf5rQor4Ss82G8dQWLRbnk3GA4jeP8hQt1hxXh0tmflpC0dz3VgEv/1+qwPyLeWkQuPFA==} '@testing-library/dom@10.4.1': - resolution: - { - integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} + engines: {node: '>=18'} '@testing-library/jest-dom@6.7.0': - resolution: - { - integrity: sha512-RI2e97YZ7MRa+vxP4UUnMuMFL2buSsf0ollxUbTgrbPLKhMn8KVTx7raS6DYjC7v1NDVrioOvaShxsguLNISCA==, - } - engines: { node: '>=14', npm: '>=6', yarn: '>=1' } + resolution: {integrity: sha512-RI2e97YZ7MRa+vxP4UUnMuMFL2buSsf0ollxUbTgrbPLKhMn8KVTx7raS6DYjC7v1NDVrioOvaShxsguLNISCA==} + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} '@testing-library/react@16.3.0': - resolution: - { - integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} + engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 '@types/react': ^18.0.0 || ^19.0.0 @@ -9638,51 +7412,30 @@ packages: optional: true '@testing-library/user-event@14.6.1': - resolution: - { - integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==, - } - engines: { node: '>=12', npm: '>=6' } + resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} + engines: {node: '>=12', npm: '>=6'} peerDependencies: '@testing-library/dom': '>=7.21.4' '@theguild/remark-mermaid@0.3.0': - resolution: - { - integrity: sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==, - } + resolution: {integrity: sha512-Fy1J4FSj8totuHsHFpaeWyWRaRSIvpzGTRoEfnNJc1JmLV9uV70sYE3zcT+Jj5Yw20Xq4iCsiT+3Ho49BBZcBQ==} peerDependencies: react: ^18.2.0 || ^19.0.0 '@theguild/remark-npm2yarn@0.3.3': - resolution: - { - integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==, - } + resolution: {integrity: sha512-ma6DvR03gdbvwqfKx1omqhg9May/VYGdMHvTzB4VuxkyS7KzfZ/lzrj43hmcsggpMje0x7SADA/pcMph0ejRnA==} '@tootallnate/quickjs-emscripten@0.23.0': - resolution: - { - integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==, - } + resolution: {integrity: sha512-C5Mc6rdnsaJDjO3UpGW/CQTHtCKaYlScZTly4JIu97Jxo/odCiH0ITnDXSJPTOrEKk/ycSZ0AOgTmkDtkOsvIA==} '@transloadit/prettier-bytes@0.3.5': - resolution: - { - integrity: sha512-xF4A3d/ZyX2LJWeQZREZQw+qFX4TGQ8bGVP97OLRt6sPO6T0TNHBFTuRHOJh7RNmYOBmQ9MHxpolD9bXihpuVA==, - } + resolution: {integrity: sha512-xF4A3d/ZyX2LJWeQZREZQw+qFX4TGQ8bGVP97OLRt6sPO6T0TNHBFTuRHOJh7RNmYOBmQ9MHxpolD9bXihpuVA==} '@ts-morph/common@0.27.0': - resolution: - { - integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==, - } + resolution: {integrity: sha512-Wf29UqxWDpc+i61k3oIOzcUfQt79PIT9y/MWfAGlrkjg6lBC1hwDECLXPVJAhWjiGbfBCxZd65F/LIZF3+jeJQ==} '@ts-rest/core@3.51.0': - resolution: - { - integrity: sha512-v6lnWEcpZj1UgN9wb84XQ+EORP1QEtncFumoXMJjno5ZUV6vdjKze3MYcQN0C6vjBpIJPQEaI/gab2jr4/0KzQ==, - } + resolution: {integrity: sha512-v6lnWEcpZj1UgN9wb84XQ+EORP1QEtncFumoXMJjno5ZUV6vdjKze3MYcQN0C6vjBpIJPQEaI/gab2jr4/0KzQ==} peerDependencies: '@types/node': ^18.18.7 || >=20.8.4 zod: ^3.22.3 @@ -9693,10 +7446,7 @@ packages: optional: true '@ts-rest/next@3.51.0': - resolution: - { - integrity: sha512-bvnd27rja+Zvi1/tUcVhLr5JxTc6fEMfWfm2JJd/p6Q+JwwzRY/dLy/XD5qm4/rHUtGmsF/tGJZfgC8dD2Mokw==, - } + resolution: {integrity: sha512-bvnd27rja+Zvi1/tUcVhLr5JxTc6fEMfWfm2JJd/p6Q+JwwzRY/dLy/XD5qm4/rHUtGmsF/tGJZfgC8dD2Mokw==} peerDependencies: '@ts-rest/core': ~3.51.0 next: ^12.0.0 || ^13.0.0 || ^14.0.0 @@ -9706,19 +7456,13 @@ packages: optional: true '@ts-rest/open-api@3.51.0': - resolution: - { - integrity: sha512-fvpvRr6HIbAMNZR//QQQi75z5qTxMEBMRtmbaBXVi5e1WVVwOK7P6YBaGWTQp6DXSvsZVULX5VZXmsDd1Z1dew==, - } + resolution: {integrity: sha512-fvpvRr6HIbAMNZR//QQQi75z5qTxMEBMRtmbaBXVi5e1WVVwOK7P6YBaGWTQp6DXSvsZVULX5VZXmsDd1Z1dew==} peerDependencies: '@ts-rest/core': ~3.51.0 zod: ^3.22.3 '@ts-rest/react-query@3.51.0': - resolution: - { - integrity: sha512-pWrbyRqvcvmjvm+ORu3zE3sPFqsS6CHOq5vra/UtyLEgXrcnEA+fu/7d9tj/+BLRwe0kOWvalu2S3/d3SDxvFQ==, - } + resolution: {integrity: sha512-pWrbyRqvcvmjvm+ORu3zE3sPFqsS6CHOq5vra/UtyLEgXrcnEA+fu/7d9tj/+BLRwe0kOWvalu2S3/d3SDxvFQ==} peerDependencies: '@tanstack/react-query': ^4.0.0 || ^5.0.0 '@ts-rest/core': ~3.51.0 @@ -9729,10 +7473,7 @@ packages: optional: true '@ts-rest/serverless@3.51.0': - resolution: - { - integrity: sha512-BjwmLPgnYifdDjSpSvhZk+v1P+3CiM/jpxKNUgdw8RfgnDy/+aaOPmAcSkjhBCOIu6ASChuv/sNpiuWx3YyPUw==, - } + resolution: {integrity: sha512-BjwmLPgnYifdDjSpSvhZk+v1P+3CiM/jpxKNUgdw8RfgnDy/+aaOPmAcSkjhBCOIu6ASChuv/sNpiuWx3YyPUw==} peerDependencies: '@azure/functions': ^4.0.0 '@ts-rest/core': ~3.51.0 @@ -9750,10 +7491,7 @@ packages: optional: true '@ts-rest/serverless@3.52.1': - resolution: - { - integrity: sha512-9lz6SVC/zOjR7Q70Uige1i4fgSLS5cPpei/ocBgdwhc/TJhKWTMQog2IQX3pT2nIA4B4QvZ54YyrBkSiwbrGPw==, - } + resolution: {integrity: sha512-9lz6SVC/zOjR7Q70Uige1i4fgSLS5cPpei/ocBgdwhc/TJhKWTMQog2IQX3pT2nIA4B4QvZ54YyrBkSiwbrGPw==} peerDependencies: '@azure/functions': ^4.0.0 '@ts-rest/core': ~3.52.0 @@ -9771,1056 +7509,542 @@ packages: optional: true '@tsconfig/node10@1.0.11': - resolution: - { - integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==, - } + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} '@tsconfig/node12@1.0.11': - resolution: - { - integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==, - } + resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} '@tsconfig/node14@1.0.3': - resolution: - { - integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==, - } + resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} '@tsconfig/node16@1.0.4': - resolution: - { - integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==, - } + resolution: {integrity: sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==} '@turbo/gen@2.5.6': - resolution: - { - integrity: sha512-0ugshQQGJE/lVYHhkFsdAd6prM279Uyl+UVfylkNhrL21YML4/fGKPYb99G0bNJ+okp7bA++4/RDFh3MS0ZeRg==, - } + resolution: {integrity: sha512-0ugshQQGJE/lVYHhkFsdAd6prM279Uyl+UVfylkNhrL21YML4/fGKPYb99G0bNJ+okp7bA++4/RDFh3MS0ZeRg==} hasBin: true '@turbo/workspaces@2.5.6': - resolution: - { - integrity: sha512-TmY25GmxzgX+395Fwl/F0te6S4RHdJtYl1QjZr+wlxVvKJ0IBOACpnpAvnLM3dpTgXuQukGtSWcRz7Zi9mZqcQ==, - } + resolution: {integrity: sha512-TmY25GmxzgX+395Fwl/F0te6S4RHdJtYl1QjZr+wlxVvKJ0IBOACpnpAvnLM3dpTgXuQukGtSWcRz7Zi9mZqcQ==} hasBin: true '@tybys/wasm-util@0.10.0': - resolution: - { - integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==, - } + resolution: {integrity: sha512-VyyPYFlOMNylG45GoAe0xDoLwWuowvf92F9kySqzYh8vmYm7D2u4iUJKa1tOUpS70Ku13ASrOkS4ScXFsTaCNQ==} '@tybys/wasm-util@0.8.3': - resolution: - { - integrity: sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==, - } + resolution: {integrity: sha512-Z96T/L6dUFFxgFJ+pQtkPpne9q7i6kIPYCFnQBHSgSPV9idTsKfIhCss0h5iM9irweZCatkrdeP8yi5uM1eX6Q==} '@types/archiver@6.0.3': - resolution: - { - integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==, - } + resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} '@types/aria-query@5.0.4': - resolution: - { - integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==, - } + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} '@types/aws-lambda@8.10.143': - resolution: - { - integrity: sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==, - } + resolution: {integrity: sha512-u5vzlcR14ge/4pMTTMDQr3MF0wEe38B2F9o84uC4F43vN5DGTy63npRrB6jQhyt+C0lGv4ZfiRcRkqJoZuPnmg==} '@types/aws-lambda@8.10.145': - resolution: - { - integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==, - } + resolution: {integrity: sha512-dtByW6WiFk5W5Jfgz1VM+YPA21xMXTuSFoLYIDY0L44jDLLflVPtZkYuu3/YxpGcvjzKFBZLU+GyKjR0HOYtyw==} '@types/babel__core@7.20.5': - resolution: - { - integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==, - } + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} '@types/babel__generator@7.27.0': - resolution: - { - integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==, - } + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} '@types/babel__template@7.4.4': - resolution: - { - integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==, - } + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} '@types/babel__traverse@7.28.0': - resolution: - { - integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==, - } + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} '@types/base16@1.0.5': - resolution: - { - integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==, - } + resolution: {integrity: sha512-OzOWrTluG9cwqidEzC/Q6FAmIPcnZfm8BFRlIx0+UIUqnuAmi5OS88O0RpT3Yz6qdmqObvUhasrbNsCofE4W9A==} '@types/bunyan@1.8.9': - resolution: - { - integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==, - } + resolution: {integrity: sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==} '@types/chai@5.2.2': - resolution: - { - integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==, - } + resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} '@types/connect@3.4.36': - resolution: - { - integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==, - } + resolution: {integrity: sha512-P63Zd/JUGq+PdrM1lv0Wv5SBYeA2+CORvbrXbngriYY0jzLUWfQMQQxOhjONEz/wlHOAxOdY7CY65rgQdTjq2w==} '@types/connect@3.4.38': - resolution: - { - integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==, - } + resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} '@types/cookie@0.6.0': - resolution: - { - integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==, - } + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} '@types/cors@2.8.19': - resolution: - { - integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==, - } + resolution: {integrity: sha512-mFNylyeyqN93lfe/9CSxOGREz8cpzAhH+E93xJ4xWQf62V8sQ/24reV2nyzUWM6H6Xji+GGHpkbLe7pVoUEskg==} '@types/cross-spawn@6.0.2': - resolution: - { - integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==, - } + resolution: {integrity: sha512-KuwNhp3eza+Rhu8IFI5HUXRP0LIhqH5cAjubUvGXXthh4YYBuP2ntwEX+Cz8GJoZUHlKo247wPWOfA9LYEq4cw==} '@types/d3-array@3.2.1': - resolution: - { - integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==, - } + resolution: {integrity: sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==} '@types/d3-axis@3.0.6': - resolution: - { - integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==, - } + resolution: {integrity: sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==} '@types/d3-brush@3.0.6': - resolution: - { - integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==, - } + resolution: {integrity: sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==} '@types/d3-chord@3.0.6': - resolution: - { - integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==, - } + resolution: {integrity: sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==} '@types/d3-color@3.1.3': - resolution: - { - integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==, - } + resolution: {integrity: sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==} '@types/d3-contour@3.0.6': - resolution: - { - integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==, - } + resolution: {integrity: sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==} '@types/d3-delaunay@6.0.4': - resolution: - { - integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==, - } + resolution: {integrity: sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==} '@types/d3-dispatch@3.0.7': - resolution: - { - integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==, - } + resolution: {integrity: sha512-5o9OIAdKkhN1QItV2oqaE5KMIiXAvDWBDPrD85e58Qlz1c1kI/J0NcqbEG88CoTwJrYe7ntUCVfeUl2UJKbWgA==} '@types/d3-drag@3.0.7': - resolution: - { - integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==, - } + resolution: {integrity: sha512-HE3jVKlzU9AaMazNufooRJ5ZpWmLIoc90A37WU2JMmeq28w1FQqCZswHZ3xR+SuxYftzHq6WU6KJHvqxKzTxxQ==} '@types/d3-dsv@3.0.7': - resolution: - { - integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==, - } + resolution: {integrity: sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==} '@types/d3-ease@3.0.2': - resolution: - { - integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==, - } + resolution: {integrity: sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==} '@types/d3-fetch@3.0.7': - resolution: - { - integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==, - } + resolution: {integrity: sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==} '@types/d3-force@3.0.10': - resolution: - { - integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==, - } + resolution: {integrity: sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==} '@types/d3-format@3.0.4': - resolution: - { - integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==, - } + resolution: {integrity: sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==} '@types/d3-geo@3.1.0': - resolution: - { - integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==, - } + resolution: {integrity: sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==} '@types/d3-hierarchy@3.1.7': - resolution: - { - integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==, - } + resolution: {integrity: sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==} '@types/d3-interpolate@3.0.4': - resolution: - { - integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==, - } + resolution: {integrity: sha512-mgLPETlrpVV1YRJIglr4Ez47g7Yxjl1lj7YKsiMCb27VJH9W8NVM6Bb9d8kkpG/uAQS5AmbA48q2IAolKKo1MA==} '@types/d3-path@3.1.1': - resolution: - { - integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==, - } + resolution: {integrity: sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==} '@types/d3-polygon@3.0.2': - resolution: - { - integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==, - } + resolution: {integrity: sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==} '@types/d3-quadtree@3.0.6': - resolution: - { - integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==, - } + resolution: {integrity: sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==} '@types/d3-random@3.0.3': - resolution: - { - integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==, - } + resolution: {integrity: sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==} '@types/d3-scale-chromatic@3.1.0': - resolution: - { - integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==, - } + resolution: {integrity: sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==} '@types/d3-scale@4.0.9': - resolution: - { - integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==, - } + resolution: {integrity: sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==} '@types/d3-selection@3.0.11': - resolution: - { - integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==, - } + resolution: {integrity: sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==} '@types/d3-shape@3.1.7': - resolution: - { - integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==, - } + resolution: {integrity: sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==} '@types/d3-time-format@4.0.3': - resolution: - { - integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==, - } + resolution: {integrity: sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==} '@types/d3-time@3.0.4': - resolution: - { - integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==, - } + resolution: {integrity: sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==} '@types/d3-timer@3.0.2': - resolution: - { - integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==, - } + resolution: {integrity: sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==} '@types/d3-transition@3.0.9': - resolution: - { - integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==, - } + resolution: {integrity: sha512-uZS5shfxzO3rGlu0cC3bjmMFKsXv+SmZZcgp0KD22ts4uGXp5EVYGzu/0YdwZeKmddhcAccYtREJKkPfXkZuCg==} '@types/d3-zoom@3.0.8': - resolution: - { - integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==, - } + resolution: {integrity: sha512-iqMC4/YlFCSlO8+2Ii1GGGliCAY4XdeG748w5vQUbevlbDu0zSjH/+jojorQVBK/se0j6DUFNPBGSqD3YWYnDw==} '@types/d3@7.4.3': - resolution: - { - integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==, - } + resolution: {integrity: sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==} '@types/debug@4.1.12': - resolution: - { - integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==, - } + resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} '@types/debug@4.1.8': - resolution: - { - integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==, - } + resolution: {integrity: sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ==} '@types/deep-eql@4.0.2': - resolution: - { - integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==, - } + resolution: {integrity: sha512-c9h9dVVMigMPc4bwTvC5dxqtqJZwQPePsWjPlpSOnojbor6pGqdk541lfA7AqFQr5pB1BRdq0juY9db81BwyFw==} '@types/diacritics@1.3.3': - resolution: - { - integrity: sha512-wt0tBItmBsOUVZ8+MCrkBMoVfH/EUZeTXwYSekVVYilZlGDYssREUR+sX72mHvl2IrbdCKgpYARXKh3awD2how==, - } + resolution: {integrity: sha512-wt0tBItmBsOUVZ8+MCrkBMoVfH/EUZeTXwYSekVVYilZlGDYssREUR+sX72mHvl2IrbdCKgpYARXKh3awD2how==} '@types/doctrine@0.0.9': - resolution: - { - integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==, - } + resolution: {integrity: sha512-eOIHzCUSH7SMfonMG1LsC2f8vxBFtho6NGBznK41R84YzPuvSBzrhEps33IsQiOW9+VL6NQ9DbjQJznk/S4uRA==} '@types/estree-jsx@1.0.5': - resolution: - { - integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==, - } + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} '@types/estree@0.0.39': - resolution: - { - integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==, - } + resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} '@types/estree@1.0.8': - resolution: - { - integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==, - } + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} '@types/geojson@7946.0.16': - resolution: - { - integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==, - } + resolution: {integrity: sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==} '@types/glob@7.2.0': - resolution: - { - integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==, - } + resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} '@types/hast@2.3.10': - resolution: - { - integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==, - } + resolution: {integrity: sha512-McWspRw8xx8J9HurkVBfYj0xKoE25tOFlHGdx4MJ5xORQrMGZNqJhVQWaIbm6Oyla5kYOXtDiopzKRJzEOkwJw==} '@types/hast@3.0.4': - resolution: - { - integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==, - } + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} '@types/inquirer@6.5.0': - resolution: - { - integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==, - } + resolution: {integrity: sha512-rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==} '@types/interpret@1.1.3': - resolution: - { - integrity: sha512-uBaBhj/BhilG58r64mtDb/BEdH51HIQLgP5bmWzc5qCtFMja8dCk/IOJmk36j0lbi9QHwI6sbtUNGuqXdKCAtQ==, - } + resolution: {integrity: sha512-uBaBhj/BhilG58r64mtDb/BEdH51HIQLgP5bmWzc5qCtFMja8dCk/IOJmk36j0lbi9QHwI6sbtUNGuqXdKCAtQ==} '@types/jsdom@21.1.7': - resolution: - { - integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==, - } + resolution: {integrity: sha512-yOriVnggzrnQ3a9OKOCxaVuSug3w3/SbOj5i7VwXWZEyUNl3bLF9V3MfxGbZKuwqJOQyRfqXyROBB1CoZLFWzA==} '@types/json-schema@7.0.15': - resolution: - { - integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==, - } + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} '@types/json5@2.2.0': - resolution: - { - integrity: sha512-NrVug5woqbvNZ0WX+Gv4R+L4TGddtmFek2u8RtccAgFZWtS9QXF2xCXY22/M4nzkaKF0q9Fc6M/5rxLDhfwc/A==, - } + resolution: {integrity: sha512-NrVug5woqbvNZ0WX+Gv4R+L4TGddtmFek2u8RtccAgFZWtS9QXF2xCXY22/M4nzkaKF0q9Fc6M/5rxLDhfwc/A==} deprecated: This is a stub types definition. json5 provides its own type definitions, so you do not need this installed. '@types/jsonwebtoken@9.0.10': - resolution: - { - integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==, - } + resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==} '@types/katex@0.16.7': - resolution: - { - integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==, - } + resolution: {integrity: sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==} '@types/linkify-it@5.0.0': - resolution: - { - integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==, - } + resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==} '@types/lodash.isequalwith@4.4.9': - resolution: - { - integrity: sha512-uLXidHwVTfYeaHRipKT/pjl10PFTGM0rHLyfANSSfEJvwtFmRACmQb2y6i8eZbcOCtX+BSxOKa+JzzCTxmQ32g==, - } + resolution: {integrity: sha512-uLXidHwVTfYeaHRipKT/pjl10PFTGM0rHLyfANSSfEJvwtFmRACmQb2y6i8eZbcOCtX+BSxOKa+JzzCTxmQ32g==} '@types/lodash.partition@4.6.9': - resolution: - { - integrity: sha512-ANgnHyTw/C07oHr/8/jzoc1BlZZFRafAyDvc04Z8qR1IvWZpAGB8aHPUkd0UCgJWOauqoCsILhvPLXKsTc4rXQ==, - } + resolution: {integrity: sha512-ANgnHyTw/C07oHr/8/jzoc1BlZZFRafAyDvc04Z8qR1IvWZpAGB8aHPUkd0UCgJWOauqoCsILhvPLXKsTc4rXQ==} '@types/lodash@4.17.20': - resolution: - { - integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==, - } + resolution: {integrity: sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==} '@types/markdown-it@14.1.2': - resolution: - { - integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==, - } + resolution: {integrity: sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==} '@types/mdast@4.0.4': - resolution: - { - integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==, - } + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} '@types/mdurl@2.0.0': - resolution: - { - integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==, - } + resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==} '@types/mdx@2.0.13': - resolution: - { - integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==, - } + resolution: {integrity: sha512-+OWZQfAYyio6YkJb3HLxDrvnx6SWWDbC0zVPfBRzUk0/nqoDyf6dNxQi3eArPe8rJ473nobTMQ/8Zk+LxJ+Yuw==} '@types/memcached@2.2.10': - resolution: - { - integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==, - } + resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==} '@types/mime-types@2.1.4': - resolution: - { - integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==, - } + resolution: {integrity: sha512-lfU4b34HOri+kAY5UheuFMWPDOI+OPceBSHZKp69gEyTL/mmJ4cnU6Y/rlme3UL3GyOn6Y42hyIEw0/q8sWx5w==} '@types/minimatch@6.0.0': - resolution: - { - integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==, - } + resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. '@types/ms@2.1.0': - resolution: - { - integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==, - } + resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} '@types/mudder@2.1.3': - resolution: - { - integrity: sha512-t4Sacwmm/xj5Ml74q8cHhwTNJPL5I30hG5iqFrlpIOla1ygdDMdzaYZzQ0+OT56kHlP5Ar+G6XKLWxgNBjq+MQ==, - } + resolution: {integrity: sha512-t4Sacwmm/xj5Ml74q8cHhwTNJPL5I30hG5iqFrlpIOla1ygdDMdzaYZzQ0+OT56kHlP5Ar+G6XKLWxgNBjq+MQ==} '@types/mysql@2.15.26': - resolution: - { - integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==, - } + resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==} '@types/mysql@2.15.27': - resolution: - { - integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==, - } + resolution: {integrity: sha512-YfWiV16IY0OeBfBCk8+hXKmdTKrKlwKN1MNKAPBu5JYxLwBEZl7QzeEpGnlZb3VMGJrrGmB84gXiH+ofs/TezA==} '@types/nlcst@2.0.3': - resolution: - { - integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==, - } + resolution: {integrity: sha512-vSYNSDe6Ix3q+6Z7ri9lyWqgGhJTmzRjZRqyq15N0Z/1/UnVsno9G/N40NBijoYx2seFDIl0+B2mgAb9mezUCA==} '@types/node@20.19.11': - resolution: - { - integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==, - } + resolution: {integrity: sha512-uug3FEEGv0r+jrecvUUpbY8lLisvIjg6AAic6a2bSP5OEOLeJsDSnvhCDov7ipFFMXS3orMpzlmi0ZcuGkBbow==} '@types/node@22.17.2': - resolution: - { - integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==, - } + resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==} '@types/node@24.3.0': - resolution: - { - integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==, - } + resolution: {integrity: sha512-aPTXCrfwnDLj4VvXrm+UUCQjNEvJgNA8s5F1cvwQU+3KNltTOkBm1j30uNLyqqPNe7gE3KFzImYoZEfLhp4Yow==} '@types/nodemailer@6.4.18': - resolution: - { - integrity: sha512-K+OGGXYCxIGkZ59EzoEFkKDkxUT2yQ4f5zgLb+bOJ+pPTZd8M2i/DGMVYrRigUwFnL76URW5VMqMCkgHgjLX0w==, - } + resolution: {integrity: sha512-K+OGGXYCxIGkZ59EzoEFkKDkxUT2yQ4f5zgLb+bOJ+pPTZd8M2i/DGMVYrRigUwFnL76URW5VMqMCkgHgjLX0w==} '@types/normalize-package-data@2.4.4': - resolution: - { - integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==, - } + resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} '@types/object.omit@3.0.3': - resolution: - { - integrity: sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==, - } + resolution: {integrity: sha512-xrq4bQTBGYY2cw+gV4PzoG2Lv3L0pjZ1uXStRRDQoATOYW1lCsFQHhQ+OkPhIcQoqLjAq7gYif7D14Qaa6Zbew==} '@types/object.pick@1.3.4': - resolution: - { - integrity: sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==, - } + resolution: {integrity: sha512-5PjwB0uP2XDp3nt5u5NJAG2DORHIRClPzWT/TTZhJ2Ekwe8M5bA9tvPdi9NO/n2uvu2/ictat8kgqvLfcIE1SA==} '@types/parse-json@4.0.2': - resolution: - { - integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==, - } + resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} '@types/pg-pool@2.0.6': - resolution: - { - integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==, - } + resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==} + + '@types/pg-pool@2.0.7': + resolution: {integrity: sha512-U4CwmGVQcbEuqpyju8/ptOKg6gEC+Tqsvj2xS9o1g71bUh8twxnC6ZL5rZKCsGN0iyH0CwgUyc9VR5owNQF9Ng==} '@types/pg@8.15.4': - resolution: - { - integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==, - } + resolution: {integrity: sha512-I6UNVBAoYbvuWkkU3oosC8yxqH21f4/Jc4DK71JLG3dT2mdlGe1z+ep/LQGXaKaOgcvUrsQoPRqfgtMcvZiJhg==} '@types/pg@8.15.5': - resolution: - { - integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==, - } + resolution: {integrity: sha512-LF7lF6zWEKxuT3/OR8wAZGzkg4ENGXFNyiV/JeOt9z5B+0ZVwbql9McqX5c/WStFq1GaGso7H1AzP/qSzmlCKQ==} + + '@types/pg@8.15.6': + resolution: {integrity: sha512-NoaMtzhxOrubeL/7UZuNTrejB4MPAJ0RpxZqXQf2qXuVlTPuG6Y8p4u9dKRaue4yjmC7ZhzVO2/Yyyn25znrPQ==} '@types/pg@8.6.1': - resolution: - { - integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==, - } + resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==} '@types/pluralize@0.0.33': - resolution: - { - integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==, - } + resolution: {integrity: sha512-JOqsl+ZoCpP4e8TDke9W79FDcSgPAR0l6pixx2JHkhnRjvShyYiAYw2LVsnA7K08Y6DeOnaU6ujmENO4os/cYg==} '@types/prop-types@15.7.15': - resolution: - { - integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==, - } + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} '@types/prosemirror-dev-tools@3.0.6': - resolution: - { - integrity: sha512-zARROV118nwc+sX7W+0ea4cffqUeRNOSac0jttSpJ921aS6w++Be+RakAgGiTqoRpPV+J+wKomMR/RuKBAlEMg==, - } + resolution: {integrity: sha512-zARROV118nwc+sX7W+0ea4cffqUeRNOSac0jttSpJ921aS6w++Be+RakAgGiTqoRpPV+J+wKomMR/RuKBAlEMg==} '@types/qs@6.14.0': - resolution: - { - integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==, - } + resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==} '@types/react-dom@19.1.7': - resolution: - { - integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==, - } + resolution: {integrity: sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==} peerDependencies: '@types/react': ^19.0.0 '@types/react@19.1.10': - resolution: - { - integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==, - } + resolution: {integrity: sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==} '@types/readdir-glob@1.1.5': - resolution: - { - integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==, - } + resolution: {integrity: sha512-raiuEPUYqXu+nvtY2Pe8s8FEmZ3x5yAH4VkLdihcPdalvsHltomrRC9BzuStrJ9yk06470hS0Crw0f1pXqD+Hg==} '@types/resolve@1.17.1': - resolution: - { - integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==, - } + resolution: {integrity: sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==} '@types/resolve@1.20.6': - resolution: - { - integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==, - } + resolution: {integrity: sha512-A4STmOXPhMUtHH+S6ymgE2GiBSMqf4oTvcQZMcHzokuTLVYzXTB8ttjcgxOVaAp2lGwEdzZ0J+cRbbeevQj1UQ==} '@types/retry@0.12.0': - resolution: - { - integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==, - } + resolution: {integrity: sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==} '@types/retry@0.12.2': - resolution: - { - integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==, - } + resolution: {integrity: sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==} '@types/semver@7.7.0': - resolution: - { - integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==, - } + resolution: {integrity: sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==} '@types/shimmer@1.2.0': - resolution: - { - integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==, - } + resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==} '@types/statuses@2.0.6': - resolution: - { - integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==, - } + resolution: {integrity: sha512-xMAgYwceFhRA2zY+XbEA7mxYbA093wdiW8Vu6gZPGWy9cmOyU9XesH1tNcEWsKFd5Vzrqx5T3D38PWx1FIIXkA==} '@types/tedious@4.0.14': - resolution: - { - integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==, - } + resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==} '@types/throttle-debounce@2.1.0': - resolution: - { - integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==, - } + resolution: {integrity: sha512-5eQEtSCoESnh2FsiLTxE121IiE60hnMqcb435fShf4bpLRjEu1Eoekht23y6zXS9Ts3l+Szu3TARnTsA0GkOkQ==} '@types/through@0.0.33': - resolution: - { - integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==, - } + resolution: {integrity: sha512-HsJ+z3QuETzP3cswwtzt2vEIiHBk/dCcHGhbmG5X3ecnwFD/lPrMpliGXxSCg03L9AhrdwA4Oz/qfspkDW+xGQ==} '@types/tinycolor2@1.4.6': - resolution: - { - integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==, - } + resolution: {integrity: sha512-iEN8J0BoMnsWBqjVbWH/c0G0Hh7O21lpR2/+PrvAVgWdzL7eexIFm4JN/Wn10PTcmNdtS6U67r499mlWMXOxNw==} '@types/tough-cookie@4.0.5': - resolution: - { - integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==, - } + resolution: {integrity: sha512-/Ad8+nIOV7Rl++6f1BdKxFSMgmoqEoYbHRpPcx3JEfv8VRsQe9Z4mCXeJBzxs7mbHY/XOZZuXlRNfhpVPbs6ZA==} '@types/trusted-types@2.0.7': - resolution: - { - integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==, - } + resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==} '@types/unist@2.0.11': - resolution: - { - integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==, - } + resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} '@types/unist@3.0.3': - resolution: - { - integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==, - } + resolution: {integrity: sha512-ko/gIFJRv177XgZsZcBwnqJN5x/Gien8qNOn0D5bQU/zAzVf9Zt3BlcUiLqhV9y4ARk0GbT3tnUiPNgnTXzc/Q==} '@types/uuid@9.0.8': - resolution: - { - integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==, - } - - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-siuRD9Shh5gVrgYG5HEWxFxG/dkZa4ndupGWKMfM4DwMG7zLeFayi6sB9yiwpD0d203ts01D7uTnTCALdiWXmQ==, - } - cpu: [arm64] - os: [darwin] + resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-TyFP7dGMo/Xz37MI3QNfGl3J2i8AKurYwLLD+bG0EDLWnz213wwBwN6U9vMcyatBzfdxKEHHPgdNP0UYCVx3kQ==, - } + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-Lll6WmXfgTEj1G3QBIoHlabQwUtJiyhlRgSLksa06QFL5BoA7V+Lu1waa9PtPNZbGsXLDMHodtk/bRQABKuPiw==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-ivqxCrbLXUqZU1OMojVRCnVx5gC/twgi7gKzBXMBLGOgfTkhajbHk/71J3OQhJwzR3T2ISG6FTfXKHhQMtgkkg==, - } + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-WbsBNSHlo+4sGrTxDWdmI7r8x48tCtSCuKdmK62FvVOq58UWAs6sL13Z4Rev4ohLcGHdXC5E/8AIdpLPqDYQpw==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-1Dr8toDQcmqKjXd5cQoTAjzMR46cscaojQiazbAPJsU/1PQFgBT36/Mb/epLpzN+ZKKgf7Xd6u2eqH2ze0kF6Q==, - } - cpu: [x64] - os: [darwin] - - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-ttNri2Ui1CzlLnPJN0sQ4XBgrCMq4jjtxouitRGh7+YlToG561diLERjOwIhNfTzPDKRMS7XO090WoepbvzFpA==, - } - cpu: [arm64] - os: [linux] - - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-xmGrxP0ERLeczerjJtask6gOln/QhAeELqTmaNoATvU7hZfEzDDxJOgSXZnX6bCIQHdN/Xn49gsyPjzTaK4rAg==, - } + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-cgcBX/ZBMdepkamLT8g8jQdHe7DZS/s6zTZRof6mvcrnJHlMeUnKoC9UO8/c22IrUMV3n0XPh7R8FYjUP0ll+Q==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-Bev1d6NCgCmcGOgmdFG514tWRt2lNUSFjQ9RVnN86tSm+bl5p9Lv6TQjc38Ow9vY11J71IZs9HNN1AKWfBCj2Q==, - } - cpu: [arm] - os: [linux] - - '@typescript/native-preview-linux-arm@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-svmoHHjs5gDekSDW6yLzk9iyDxhMnLKJZ9Xk6b1bSz0swrQNPPTJdR7mbhVMrv4HtXei0LHPlXdTr85AqI5qOQ==, - } + '@typescript/native-preview-linux-arm@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-/d/NnZFvEJU67L5mHh+cO3gsfwNCvJ9HGtxGq1KGz1VwTabOIcwLdpTpfsAR39WXzzfh9GJHL28n6GSGZInPow==} + engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-mwsjGZqUKju3SKPzlDuKhKgt9Ht8seA5OBhorvRZk2B5lwlH0gDsApGK4t50TcnzjpbWI85FVxI6wTq1T36dMg==, - } - cpu: [x64] - os: [linux] - - '@typescript/native-preview-linux-x64@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-cK4XK3L7TXPj9fIalQcXRqSErdM+pZSqiNgp6QtNsNCyoH2W6J281hnjUA4TmD4TRMSn8CRn7Exy3CGNC3gZkA==, - } + '@typescript/native-preview-linux-x64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-4gJCE7wzenx1BH2Vtx2uKWUo8rFxnhGkxNEH1zxbYy/6ASwo+PnOPYmKHAzNE1C3yB5lzw71/vR5p5zyO57Y4A==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-463QnUaRCUhY/Flj/XinORTbBYuxoMthgJiBU1vu7mipLo2Yaipkkgn1ArGHkV9mjWBa7QIPCWg/V2KIEoVdcA==, - } + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-yn6Rzbn62L4QTWrp0QgG8al6l/VG7PCPRdbE0vuGDSlKhInlC+Flo4QSc1qA8KHTbpHgl+nEsq9DymiitI4G4g==} + engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-U919FWN5FZG/1i75+Cv9mnd80Mw2rdFE/to/wJ6DX9m0dUL8IfZARQYPGDXDO1LEC6sV3CyCpCJ/HqsSkqgaAg==, - } - cpu: [arm64] - os: [win32] - - '@typescript/native-preview-win32-x64@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-039WAg5xJjqrRYVHMR9Y2y83dYSLofbyx/22Gc6ur3b/nR8u1wdErK9uwrguL3lxpKDo6qdhnkGlbX8FP0Bz+g==, - } - cpu: [x64] - os: [win32] - - '@typescript/native-preview-win32-x64@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-1U/2fG/A1yZtkP59IkDlOVLw2cPtP6NbLROtTytNN0CLSqme+0OXoh+l7wlN2iSmGY5zIeaVcqs4UIL0SiQInQ==, - } + '@typescript/native-preview-win32-x64@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-T9z13mcMowXmwGjprA2FIR2EEdYZxgqH8+qk7dFZVBlo5vfk41AN/qJfAdN7IsAhEb640MJ8cMN/aiczweZKmA==} + engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20260119.1': - resolution: - { - integrity: sha512-Tf74TdJVJlLRMN0W9VXK8jc0Gor9+wFRm40qTLt2JeHiPpSF5TEN/pHPjlf4Id1wDSJXH9p5/U1wFS3s5TS2PQ==, - } - hasBin: true - - '@typescript/native-preview@7.0.0-dev.20260209.1': - resolution: - { - integrity: sha512-UdA8RC9ic/qi9ajolQQP7ZG8YwtUbxtTMu6FxKBn4pYWicuXqMjzXqH/Ng+VlqqeYrl088P4Ou0erGPuLu4ajw==, - } + '@typescript/native-preview@7.0.0-dev.20260428.1': + resolution: {integrity: sha512-JiM4PYWDGs57TT0mV2KArmaW7BnTkk3XRid79NdG17tfvDbRyg4hBCpKI7vARiQPtxjKrHlxyzxOGDpv5W5T7Q==} + engines: {node: '>=16.20.0'} hasBin: true '@typescript/vfs@1.6.1': - resolution: - { - integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==, - } + resolution: {integrity: sha512-JwoxboBh7Oz1v38tPbkrZ62ZXNHAk9bJ7c9x0eI5zBfBnBYGhURdbnh7Z4smN/MV48Y5OCcZb58n972UtbazsA==} peerDependencies: typescript: '*' '@uiw/react-json-view@2.0.0-alpha.27': - resolution: - { - integrity: sha512-WeR3SZiwr1jnJSPr53Hij4uz05rsd4MiNbOVhpz0kR4CWqGPGmF4ieQZtU92dWLn2Wqh5auVMKkRhf/1WYUDig==, - } + resolution: {integrity: sha512-WeR3SZiwr1jnJSPr53Hij4uz05rsd4MiNbOVhpz0kR4CWqGPGmF4ieQZtU92dWLn2Wqh5auVMKkRhf/1WYUDig==} peerDependencies: '@babel/runtime': '>=7.10.0' react: '>=18.0.0' react-dom: '>=18.0.0' '@ungap/structured-clone@1.3.0': - resolution: - { - integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==, - } + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} '@uppy/audio@2.2.2': - resolution: - { - integrity: sha512-63pwCo+JbJyxB1V/YK59cMSMFi8+g9Mfew6awfJFeu4tAK0HHfZtUk5+fUdZJRdCf4eIwBAiwixBL8Q4BOes+Q==, - } + resolution: {integrity: sha512-63pwCo+JbJyxB1V/YK59cMSMFi8+g9Mfew6awfJFeu4tAK0HHfZtUk5+fUdZJRdCf4eIwBAiwixBL8Q4BOes+Q==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/aws-s3@4.3.2': - resolution: - { - integrity: sha512-w3LrMUEI9pXVcn5LZ5oNL92hyocMu8mxfDSVVQIAQKxR+TPi57FfusDBqBB5T33UvxJH8EUGt9a04tuU/LpKqw==, - } + resolution: {integrity: sha512-w3LrMUEI9pXVcn5LZ5oNL92hyocMu8mxfDSVVQIAQKxR+TPi57FfusDBqBB5T33UvxJH8EUGt9a04tuU/LpKqw==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/box@3.3.2': - resolution: - { - integrity: sha512-4hRXPWy48Gpgyegd7lBPMYQTplfFEq1uaHe9ZltHu53LBeXasuGeZuprMbhIQ/7Sl/7UQwiAU0te9uv/ypoXGg==, - } + resolution: {integrity: sha512-4hRXPWy48Gpgyegd7lBPMYQTplfFEq1uaHe9ZltHu53LBeXasuGeZuprMbhIQ/7Sl/7UQwiAU0te9uv/ypoXGg==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/companion-client@4.5.2': - resolution: - { - integrity: sha512-hfUsReHM5COhn+5d7CdZgZaG8BtDvtwj7vjXzg8qmgKI901mYUm/Zh420iOKT7eHiofKVTNoa7oijeGrqUEnyg==, - } + resolution: {integrity: sha512-hfUsReHM5COhn+5d7CdZgZaG8BtDvtwj7vjXzg8qmgKI901mYUm/Zh420iOKT7eHiofKVTNoa7oijeGrqUEnyg==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/components@0.3.2': - resolution: - { - integrity: sha512-RHEV2Ru/SU1J8EoLabUX8GXQ59Q5+/FhSL5vIpicaVj++Neei58WYKj4iNWsigE4xE45jtHfYTV9IlXc+fJXaQ==, - } + resolution: {integrity: sha512-RHEV2Ru/SU1J8EoLabUX8GXQ59Q5+/FhSL5vIpicaVj++Neei58WYKj4iNWsigE4xE45jtHfYTV9IlXc+fJXaQ==} '@uppy/core@4.5.3': - resolution: - { - integrity: sha512-52VLeBUY/j904h48lpPGykuWikkOOS4Lz/qkmalDiBQfNALb6iB1MOZs079IM3o/uMLYxzZRL80C3sKpkBUYcw==, - } + resolution: {integrity: sha512-52VLeBUY/j904h48lpPGykuWikkOOS4Lz/qkmalDiBQfNALb6iB1MOZs079IM3o/uMLYxzZRL80C3sKpkBUYcw==} '@uppy/dashboard@4.4.3': - resolution: - { - integrity: sha512-IwgDDTbk9p4OoAJvvvx6sQSemKTIJq9IDSryNVgbbC6NiR9HSyRcu0+WdOZLiR9DOhDg2oYcoNgv7DMlrktI6g==, - } + resolution: {integrity: sha512-IwgDDTbk9p4OoAJvvvx6sQSemKTIJq9IDSryNVgbbC6NiR9HSyRcu0+WdOZLiR9DOhDg2oYcoNgv7DMlrktI6g==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/drag-drop@4.2.2': - resolution: - { - integrity: sha512-SlVl+lHC8TvCKW4B9L4pdb0n8mEVgACHjKXGWcy7EUsTrRphv3ugmkbIFL57XpmFR+AFMuPblOsKq/9nkPkHOQ==, - } + resolution: {integrity: sha512-SlVl+lHC8TvCKW4B9L4pdb0n8mEVgACHjKXGWcy7EUsTrRphv3ugmkbIFL57XpmFR+AFMuPblOsKq/9nkPkHOQ==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/dropbox@4.3.2': - resolution: - { - integrity: sha512-Kj/QX8KFomlbf5mUpoCwxZ8dGH9XiN3RMKqT6zJgUk2bW7JfV2eMV6F9XvrVhz1TCtHZNl81Cv5rhu9io3UQ0w==, - } + resolution: {integrity: sha512-Kj/QX8KFomlbf5mUpoCwxZ8dGH9XiN3RMKqT6zJgUk2bW7JfV2eMV6F9XvrVhz1TCtHZNl81Cv5rhu9io3UQ0w==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/facebook@4.3.2': - resolution: - { - integrity: sha512-fHwFN8ZlRuNyxmuL7zwMLIegU+ARxegIlM3yJdY7RbRWgod/lUi5ouzTHjFgvLaFbuDtYWWRbZgF3GxCsXbmhA==, - } + resolution: {integrity: sha512-fHwFN8ZlRuNyxmuL7zwMLIegU+ARxegIlM3yJdY7RbRWgod/lUi5ouzTHjFgvLaFbuDtYWWRbZgF3GxCsXbmhA==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/file-input@4.2.2': - resolution: - { - integrity: sha512-tQklK5C1slZWQlMQYQPBJuhfs0e5w1sRb0VwYMt8P297rB1BUcyOjkVH79DAYHkkgXo9aQKUiZSuVoN89tlLjQ==, - } + resolution: {integrity: sha512-tQklK5C1slZWQlMQYQPBJuhfs0e5w1sRb0VwYMt8P297rB1BUcyOjkVH79DAYHkkgXo9aQKUiZSuVoN89tlLjQ==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/google-drive@4.4.2': - resolution: - { - integrity: sha512-hIxnWZ7WMW1jrRecL+VnMVt9TwY+V3uEpy7KmNxASraQFwS2oYgYUfO5R8MVcmL654wymQgEsRY7Kzp9NQvZGw==, - } + resolution: {integrity: sha512-hIxnWZ7WMW1jrRecL+VnMVt9TwY+V3uEpy7KmNxASraQFwS2oYgYUfO5R8MVcmL654wymQgEsRY7Kzp9NQvZGw==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/image-editor@3.4.2': - resolution: - { - integrity: sha512-cQD/oDa/0xCuZAtdi4P2uLIxgrG/YR24KgKAxQYPzQHQtNB8KzCdl3TPV5ZWF9kjT4mSlUsoB4RfPQl34GbFhA==, - } + resolution: {integrity: sha512-cQD/oDa/0xCuZAtdi4P2uLIxgrG/YR24KgKAxQYPzQHQtNB8KzCdl3TPV5ZWF9kjT4mSlUsoB4RfPQl34GbFhA==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/informer@4.3.2': - resolution: - { - integrity: sha512-7A9X8BfxR/GPtG0MGbQlmj1+G1o9fqeF3qtRh37ZvmZpapnEGtbstQ6Ao2vFm0uxYxOolLOMzFs/xCD27NKAvg==, - } + resolution: {integrity: sha512-7A9X8BfxR/GPtG0MGbQlmj1+G1o9fqeF3qtRh37ZvmZpapnEGtbstQ6Ao2vFm0uxYxOolLOMzFs/xCD27NKAvg==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/instagram@4.3.2': - resolution: - { - integrity: sha512-LHGroKn8uRcRs94v6DM8SPXIMWubZb/aZr5B4FP7TvTzf3vnGaKE63oOen1yAoCEYbsJfSdo2p974qHbSdPEbw==, - } + resolution: {integrity: sha512-LHGroKn8uRcRs94v6DM8SPXIMWubZb/aZr5B4FP7TvTzf3vnGaKE63oOen1yAoCEYbsJfSdo2p974qHbSdPEbw==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/onedrive@4.3.2': - resolution: - { - integrity: sha512-dfJAl9qsoQsL1LdIrDPKEKmAj82VNA63BInsJ80nF8bx3tf67AvlMz4O1I9fDW2zctfgOiFlGz47kamz01eSPQ==, - } + resolution: {integrity: sha512-dfJAl9qsoQsL1LdIrDPKEKmAj82VNA63BInsJ80nF8bx3tf67AvlMz4O1I9fDW2zctfgOiFlGz47kamz01eSPQ==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/progress-bar@4.3.2': - resolution: - { - integrity: sha512-5BOhq49xPpBTlEVsEIRLkV+Hgb0qTuey8XKyrmrSetcgtolKLwtlDjrOWmUcxGYI3bkMbdeJulF9aiR8sSqQ6A==, - } + resolution: {integrity: sha512-5BOhq49xPpBTlEVsEIRLkV+Hgb0qTuey8XKyrmrSetcgtolKLwtlDjrOWmUcxGYI3bkMbdeJulF9aiR8sSqQ6A==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/provider-views@4.5.3': - resolution: - { - integrity: sha512-zExJSlkqRPl65KKG+SMTdP0OCawYMpo/FaKE8xjqHhx/rkACe6QNExCahpEGGjLo7Rr2j7FooAuA3UWmYiyWCg==, - } + resolution: {integrity: sha512-zExJSlkqRPl65KKG+SMTdP0OCawYMpo/FaKE8xjqHhx/rkACe6QNExCahpEGGjLo7Rr2j7FooAuA3UWmYiyWCg==} peerDependencies: '@uppy/core': ^4.5.3 '@uppy/react@4.5.2': - resolution: - { - integrity: sha512-M2RTC8APz0pbzvAwyBIQEw9pwxlR9gFXII4dU7yUJ/Jb0iLkGuvYrltb9ai4GyPsxOGfdWiFX8e5s8f6Z+Ao1g==, - } + resolution: {integrity: sha512-M2RTC8APz0pbzvAwyBIQEw9pwxlR9gFXII4dU7yUJ/Jb0iLkGuvYrltb9ai4GyPsxOGfdWiFX8e5s8f6Z+Ao1g==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/dashboard': ^4.4.2 @@ -10849,95 +8073,59 @@ packages: optional: true '@uppy/remote-sources@2.4.2': - resolution: - { - integrity: sha512-b8VVlriQWi/xU/LBuoLaQ3y2yMMLqXXJQpkG43tzBQG2R/sYz2qOm593BX9R4HjPQ891Vt4INjzfDTFziaA/4w==, - } + resolution: {integrity: sha512-b8VVlriQWi/xU/LBuoLaQ3y2yMMLqXXJQpkG43tzBQG2R/sYz2qOm593BX9R4HjPQ891Vt4INjzfDTFziaA/4w==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/screen-capture@4.4.2': - resolution: - { - integrity: sha512-z2+Y34V8hs1lCeMB+culySW9WMBIL/19Z8OEkc0u6aHj3i6iCu0lwelPEaiUMdKHOXMyQTgn6Ubv+C3/OZlOpw==, - } + resolution: {integrity: sha512-z2+Y34V8hs1lCeMB+culySW9WMBIL/19Z8OEkc0u6aHj3i6iCu0lwelPEaiUMdKHOXMyQTgn6Ubv+C3/OZlOpw==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/status-bar@4.2.3': - resolution: - { - integrity: sha512-0AtKdvNm3HHobuE4N0V8SrC3uWB9MQnjqMEL/gachW/1mi7iZ22V4veHd6Wub/tCBQAQbEklvz7d0hxcz/Fh9g==, - } + resolution: {integrity: sha512-0AtKdvNm3HHobuE4N0V8SrC3uWB9MQnjqMEL/gachW/1mi7iZ22V4veHd6Wub/tCBQAQbEklvz7d0hxcz/Fh9g==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/store-default@4.3.2': - resolution: - { - integrity: sha512-dnY9R2o8fwmO1bF89D0b5jijD7DGED2qVST5hI/j18JreLWzLKH7u6HuNmOvzok8msrQ/qWzQd5Gx4LDQKhBbw==, - } + resolution: {integrity: sha512-dnY9R2o8fwmO1bF89D0b5jijD7DGED2qVST5hI/j18JreLWzLKH7u6HuNmOvzok8msrQ/qWzQd5Gx4LDQKhBbw==} '@uppy/thumbnail-generator@4.2.3': - resolution: - { - integrity: sha512-qOfJzlHhaD8DmOH/50DMLNN5/E2qCYCJnikFgTZZbuPx6sUOtPGRrHBE8q/ELxVMB5gD3zGi/Fh2SwKGrGoxGA==, - } + resolution: {integrity: sha512-qOfJzlHhaD8DmOH/50DMLNN5/E2qCYCJnikFgTZZbuPx6sUOtPGRrHBE8q/ELxVMB5gD3zGi/Fh2SwKGrGoxGA==} peerDependencies: '@uppy/core': ^4.5.3 '@uppy/unsplash@4.4.2': - resolution: - { - integrity: sha512-1hO7ND/ROrRgZ8urCX38Q/o5rYs2uFGS7djxlNj/cz9xvRdkBagAzj3qp5FUsnPnJzJrRpifXcelvn3tICQjZg==, - } + resolution: {integrity: sha512-1hO7ND/ROrRgZ8urCX38Q/o5rYs2uFGS7djxlNj/cz9xvRdkBagAzj3qp5FUsnPnJzJrRpifXcelvn3tICQjZg==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/url@4.3.2': - resolution: - { - integrity: sha512-SREfvV9IJxOg2MuzSVQBr2e9LTle8N0dsyUpsHddaSbbPku9KhkoilOiKuDMhPmvw9pnkYWBZhbw9+4UWnrQtQ==, - } + resolution: {integrity: sha512-SREfvV9IJxOg2MuzSVQBr2e9LTle8N0dsyUpsHddaSbbPku9KhkoilOiKuDMhPmvw9pnkYWBZhbw9+4UWnrQtQ==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/utils@6.2.2': - resolution: - { - integrity: sha512-9mYJtbcngv2HOJIECkyfmdXTI5dW/ObCyvWP1Iti3E5bKtsa4sMmbx5Yh/tGCj8k/lBNhfvWyZuYnvnjmzNLSQ==, - } + resolution: {integrity: sha512-9mYJtbcngv2HOJIECkyfmdXTI5dW/ObCyvWP1Iti3E5bKtsa4sMmbx5Yh/tGCj8k/lBNhfvWyZuYnvnjmzNLSQ==} '@uppy/webcam@4.3.2': - resolution: - { - integrity: sha512-x0qhTWb7AjkfS9Q12J2xhnTdccZ6sMuBh14LpXtXjaFe4Q1Uf191YmFwT7SCKn7lcasZYw3Tug0G5yQkqvg9uQ==, - } + resolution: {integrity: sha512-x0qhTWb7AjkfS9Q12J2xhnTdccZ6sMuBh14LpXtXjaFe4Q1Uf191YmFwT7SCKn7lcasZYw3Tug0G5yQkqvg9uQ==} peerDependencies: '@uppy/core': ^4.5.2 '@uppy/zoom@3.3.2': - resolution: - { - integrity: sha512-e/yP3itmWh2U/A8SBLymVngDSIzmbq08eX0QzBrI5wIA1r38lD5tGlO2V9D70ujY8hNX7HQUqF+nK4OEgdUxJA==, - } + resolution: {integrity: sha512-e/yP3itmWh2U/A8SBLymVngDSIzmbq08eX0QzBrI5wIA1r38lD5tGlO2V9D70ujY8hNX7HQUqF+nK4OEgdUxJA==} peerDependencies: '@uppy/core': ^4.5.2 '@vitejs/plugin-react@4.7.0': - resolution: - { - integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==, - } - engines: { node: ^14.18.0 || >=16.0.0 } + resolution: {integrity: sha512-gUu9hwfWvvEDBBmgtAowQCojwZmJ5mcLn3aufeCsitijs3+f2NsrPtlAWIR6OPiqljl96GVCUbLe0HyqIpVaoA==} + engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 '@vitest/browser@3.0.5': - resolution: - { - integrity: sha512-5WAWJoucuWcGYU5t0HPBY03k9uogbUEIu4pDmZHoB4Dt+6pXqzDbzEmxGjejZSitSYA3k/udYfuotKNxETVA3A==, - } + resolution: {integrity: sha512-5WAWJoucuWcGYU5t0HPBY03k9uogbUEIu4pDmZHoB4Dt+6pXqzDbzEmxGjejZSitSYA3k/udYfuotKNxETVA3A==} peerDependencies: playwright: '*' safaridriver: '*' @@ -10952,10 +8140,7 @@ packages: optional: true '@vitest/coverage-v8@3.0.5': - resolution: - { - integrity: sha512-zOOWIsj5fHh3jjGwQg+P+J1FW3s4jBu1Zqga0qW60yutsBtqEqNEJKWYh7cYn1yGD+1bdPsPdC/eL4eVK56xMg==, - } + resolution: {integrity: sha512-zOOWIsj5fHh3jjGwQg+P+J1FW3s4jBu1Zqga0qW60yutsBtqEqNEJKWYh7cYn1yGD+1bdPsPdC/eL4eVK56xMg==} peerDependencies: '@vitest/browser': 3.0.5 vitest: 3.0.5 @@ -10964,16 +8149,10 @@ packages: optional: true '@vitest/expect@3.2.4': - resolution: - { - integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==, - } + resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} '@vitest/mocker@3.0.5': - resolution: - { - integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==, - } + resolution: {integrity: sha512-CLPNBFBIE7x6aEGbIjaQAX03ZZlBMaWwAjBdMkIf/cAn6xzLTiM3zYqO/WAbieEjsAZir6tO71mzeHZoodThvw==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 @@ -10984,10 +8163,7 @@ packages: optional: true '@vitest/mocker@3.2.4': - resolution: - { - integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==, - } + resolution: {integrity: sha512-46ryTE9RZO/rfDd7pEqFl7etuyzekzEhUbTW3BvmeO/BcCMEgq59BKhek3dXDWgAj4oMK6OZi+vRr1wPW6qjEQ==} peerDependencies: msw: ^2.4.9 vite: ^5.0.0 || ^6.0.0 || ^7.0.0-0 @@ -10998,245 +8174,132 @@ packages: optional: true '@vitest/pretty-format@3.0.5': - resolution: - { - integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==, - } + resolution: {integrity: sha512-CjUtdmpOcm4RVtB+up8r2vVDLR16Mgm/bYdkGFe3Yj/scRfCpbSi2W/BDSDcFK7ohw8UXvjMbOp9H4fByd/cOA==} '@vitest/pretty-format@3.2.4': - resolution: - { - integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==, - } + resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==} '@vitest/runner@3.2.4': - resolution: - { - integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==, - } + resolution: {integrity: sha512-oukfKT9Mk41LreEW09vt45f8wx7DordoWUZMYdY/cyAk7w5TWkTRCNZYF7sX7n2wB7jyGAl74OxgwhPgKaqDMQ==} '@vitest/snapshot@3.2.4': - resolution: - { - integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==, - } + resolution: {integrity: sha512-dEYtS7qQP2CjU27QBC5oUOxLE/v5eLkGqPE0ZKEIDGMs4vKWe7IjgLOeauHsR0D5YuuycGRO5oSRXnwnmA78fQ==} '@vitest/spy@3.0.5': - resolution: - { - integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==, - } + resolution: {integrity: sha512-5fOzHj0WbUNqPK6blI/8VzZdkBlQLnT25knX0r4dbZI9qoZDf3qAdjoMmDcLG5A83W6oUUFJgUd0EYBc2P5xqg==} '@vitest/spy@3.2.4': - resolution: - { - integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==, - } + resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==} '@vitest/utils@3.0.5': - resolution: - { - integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==, - } + resolution: {integrity: sha512-N9AX0NUoUtVwKwy21JtwzaqR5L5R5A99GAbrHfCCXK1lp593i/3AZAXhSP43wRQuxYsflrdzEfXZFo1reR1Nkg==} '@vitest/utils@3.2.4': - resolution: - { - integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, - } + resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==} '@webassemblyjs/ast@1.14.1': - resolution: - { - integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==, - } + resolution: {integrity: sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==} '@webassemblyjs/floating-point-hex-parser@1.13.2': - resolution: - { - integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==, - } + resolution: {integrity: sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==} '@webassemblyjs/helper-api-error@1.13.2': - resolution: - { - integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==, - } + resolution: {integrity: sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==} '@webassemblyjs/helper-buffer@1.14.1': - resolution: - { - integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==, - } + resolution: {integrity: sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==} '@webassemblyjs/helper-numbers@1.13.2': - resolution: - { - integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==, - } + resolution: {integrity: sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==} '@webassemblyjs/helper-wasm-bytecode@1.13.2': - resolution: - { - integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==, - } + resolution: {integrity: sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==} '@webassemblyjs/helper-wasm-section@1.14.1': - resolution: - { - integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==, - } + resolution: {integrity: sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==} '@webassemblyjs/ieee754@1.13.2': - resolution: - { - integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==, - } + resolution: {integrity: sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==} '@webassemblyjs/leb128@1.13.2': - resolution: - { - integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==, - } + resolution: {integrity: sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==} '@webassemblyjs/utf8@1.13.2': - resolution: - { - integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==, - } + resolution: {integrity: sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==} '@webassemblyjs/wasm-edit@1.14.1': - resolution: - { - integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==, - } + resolution: {integrity: sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==} '@webassemblyjs/wasm-gen@1.14.1': - resolution: - { - integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==, - } + resolution: {integrity: sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==} '@webassemblyjs/wasm-opt@1.14.1': - resolution: - { - integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==, - } + resolution: {integrity: sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==} '@webassemblyjs/wasm-parser@1.14.1': - resolution: - { - integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==, - } + resolution: {integrity: sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==} '@webassemblyjs/wast-printer@1.14.1': - resolution: - { - integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==, - } + resolution: {integrity: sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==} '@xmldom/xmldom@0.9.8': - resolution: - { - integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==, - } - engines: { node: '>=14.6' } + resolution: {integrity: sha512-p96FSY54r+WJ50FIOsCOjyj/wavs8921hG5+kVMmZgKcvIKxMXHTrjNJvRgWa/zuX3B6t2lijLNFaOyuxUH+2A==} + engines: {node: '>=14.6'} + deprecated: this version has critical issues, please update to the latest version '@xtuc/ieee754@1.2.0': - resolution: - { - integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==, - } + resolution: {integrity: sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==} '@xtuc/long@4.2.2': - resolution: - { - integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==, - } + resolution: {integrity: sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==} '@zeit/schemas@2.36.0': - resolution: - { - integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==, - } + resolution: {integrity: sha512-7kjMwcChYEzMKjeex9ZFXkt1AyNov9R5HZtjBKVsmVpw7pa7ZtlCGvCBC2vnnXctaYN+aRI61HjIqeetZW5ROg==} '@zod/core@0.9.0': - resolution: - { - integrity: sha512-bVfPiV2kDUkAJ4ArvV4MHcPZA8y3xOX6/SjzSy2kX2ACopbaaAP4wk6hd/byRmfi9MLNai+4SFJMmcATdOyclg==, - } + resolution: {integrity: sha512-bVfPiV2kDUkAJ4ArvV4MHcPZA8y3xOX6/SjzSy2kX2ACopbaaAP4wk6hd/byRmfi9MLNai+4SFJMmcATdOyclg==} abort-controller@3.0.0: - resolution: - { - integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==, - } - engines: { node: '>=6.5' } + resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} + engines: {node: '>=6.5'} accepts@1.3.8: - resolution: - { - integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==} + engines: {node: '>= 0.6'} acorn-import-attributes@1.9.5: - resolution: - { - integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==, - } + resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==} peerDependencies: acorn: ^8 acorn-jsx@5.3.2: - resolution: - { - integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==, - } + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 acorn-walk@8.3.4: - resolution: - { - integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==} + engines: {node: '>=0.4.0'} acorn@8.15.0: - resolution: - { - integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} hasBin: true agent-base@6.0.2: - resolution: - { - integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==, - } - engines: { node: '>= 6.0.0' } + resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} + engines: {node: '>= 6.0.0'} agent-base@7.1.4: - resolution: - { - integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} + engines: {node: '>= 14'} aggregate-error@3.1.0: - resolution: - { - integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==} + engines: {node: '>=8'} ajv-formats@2.1.1: - resolution: - { - integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==, - } + resolution: {integrity: sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==} peerDependencies: ajv: ^8.0.0 peerDependenciesMeta: @@ -11244,741 +8307,420 @@ packages: optional: true ajv-keywords@3.5.2: - resolution: - { - integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==, - } + resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: ajv: ^6.9.1 ajv-keywords@5.1.0: - resolution: - { - integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==, - } + resolution: {integrity: sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==} peerDependencies: ajv: ^8.8.2 ajv@6.12.6: - resolution: - { - integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==, - } + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} ajv@8.12.0: - resolution: - { - integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==, - } + resolution: {integrity: sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA==} ajv@8.17.1: - resolution: - { - integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, - } + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==} ansi-align@3.0.1: - resolution: - { - integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==, - } + resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} ansi-colors@4.1.3: - resolution: - { - integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} ansi-escapes@4.3.2: - resolution: - { - integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==} + engines: {node: '>=8'} ansi-escapes@5.0.0: - resolution: - { - integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==} + engines: {node: '>=12'} ansi-regex@5.0.1: - resolution: - { - integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} ansi-regex@6.2.0: - resolution: - { - integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==} + engines: {node: '>=12'} ansi-styles@3.2.1: - resolution: - { - integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} + engines: {node: '>=4'} ansi-styles@4.3.0: - resolution: - { - integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} ansi-styles@5.2.0: - resolution: - { - integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} + engines: {node: '>=10'} ansi-styles@6.2.1: - resolution: - { - integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==} + engines: {node: '>=12'} anymatch@3.1.3: - resolution: - { - integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} + engines: {node: '>= 8'} arch@2.2.0: - resolution: - { - integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==, - } + resolution: {integrity: sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ==} archiver-utils@2.1.0: - resolution: - { - integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==} + engines: {node: '>= 6'} archiver-utils@3.0.4: - resolution: - { - integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw==} + engines: {node: '>= 10'} archiver-utils@4.0.1: - resolution: - { - integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-Q4Q99idbvzmgCTEAAhi32BkOyq8iVI5EwdO0PmBDSGIzzjYNdcFn7Q7k3OzbLy4kLUPXfJtG6fO2RjftXbobBg==} + engines: {node: '>= 12.0.0'} archiver@5.3.1: - resolution: - { - integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-8KyabkmbYrH+9ibcTScQ1xCJC/CGcugdVIwB+53f5sZziXgwUh3iXlAlANMxcZyDEfTHMe6+Z5FofV8nopXP7w==} + engines: {node: '>= 10'} archiver@6.0.2: - resolution: - { - integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-UQ/2nW7NMl1G+1UnrLypQw1VdT9XZg/ECcKPq7l+STzStrSivFIXIp34D8M5zeNGW5NoOupdYCHv6VySCPNNlw==} + engines: {node: '>= 12.0.0'} arg@4.1.3: - resolution: - { - integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==, - } + resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} arg@5.0.2: - resolution: - { - integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==, - } + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} argparse@2.0.1: - resolution: - { - integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==, - } + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} aria-hidden@1.2.6: - resolution: - { - integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-ik3ZgC9dY/lYVVM++OISsaYDeg1tb0VtP5uL3ouh1koGOaUMDPpbFIei4JkFimWUFPn90sbMNMXQAIVOlnYKJA==} + engines: {node: '>=10'} aria-query@5.3.0: - resolution: - { - integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==, - } + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} aria-query@5.3.2: - resolution: - { - integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} array-buffer-byte-length@1.0.2: - resolution: - { - integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} + engines: {node: '>= 0.4'} array-iterate@2.0.1: - resolution: - { - integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==, - } + resolution: {integrity: sha512-I1jXZMjAgCMmxT4qxXfPXa6SthSoE8h6gkSI9BGGNv8mP8G/v0blc+qFnZu6K42vTOiuME596QaLO0TP3Lk0xg==} array-union@2.1.0: - resolution: - { - integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} arraybuffer.prototype.slice@1.0.4: - resolution: - { - integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} + engines: {node: '>= 0.4'} assertion-error@2.0.1: - resolution: - { - integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} ast-types@0.13.4: - resolution: - { - integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w==} + engines: {node: '>=4'} ast-types@0.16.1: - resolution: - { - integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-6t10qk83GOG8p0vKmaCr8eiilZwO171AvbROMtvvNiwrTly62t+7XkA8RdIIVbpMhCASAsxgAzdRSwh6nw/5Dg==} + engines: {node: '>=4'} astral-regex@2.0.0: - resolution: - { - integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} + engines: {node: '>=8'} astring@1.9.0: - resolution: - { - integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==, - } + resolution: {integrity: sha512-LElXdjswlqjWrPpJFg1Fx4wpkOCxj1TDHlSV4PlaRxHGWko024xICaa97ZkMfs6DRKlCguiAI+rbXv5GWwXIkg==} hasBin: true async-function@1.0.0: - resolution: - { - integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==} + engines: {node: '>= 0.4'} async@3.2.6: - resolution: - { - integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==, - } + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} asynckit@0.4.0: - resolution: - { - integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, - } + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} at-least-node@1.0.0: - resolution: - { - integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} + engines: {node: '>= 4.0.0'} atomic-sleep@1.0.0: - resolution: - { - integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==} + engines: {node: '>=8.0.0'} autoprefixer@10.4.21: - resolution: - { - integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==, - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==} + engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: postcss: ^8.1.0 available-typed-arrays@1.0.7: - resolution: - { - integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} axios@1.11.0: - resolution: - { - integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==, - } + resolution: {integrity: sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA==} b4a@1.6.7: - resolution: - { - integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==, - } + resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} babel-plugin-macros@3.1.0: - resolution: - { - integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==, - } - engines: { node: '>=10', npm: '>=6' } + resolution: {integrity: sha512-Cg7TFGpIr01vOQNODXOOaGz2NpCU5gl8x1qJFbb6hbZxR7XrcE2vtbAsTAbJ7/xwJtUuJEw8K8Zr/AE0LHlesg==} + engines: {node: '>=10', npm: '>=6'} babel-plugin-polyfill-corejs2@0.4.14: - resolution: - { - integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==, - } + resolution: {integrity: sha512-Co2Y9wX854ts6U8gAAPXfn0GmAyctHuK8n0Yhfjd6t30g7yvKjspvvOo9yG+z52PZRgFErt7Ka2pYnXCjLKEpg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-corejs3@0.10.6: - resolution: - { - integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==, - } + resolution: {integrity: sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 babel-plugin-polyfill-regenerator@0.6.5: - resolution: - { - integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==, - } + resolution: {integrity: sha512-ISqQ2frbiNU9vIJkzg7dlPpznPZ4jOiUQ1uSmB0fEHeowtN3COYRsXr/xexn64NpU13P06jc/L5TgiJXOgrbEg==} peerDependencies: '@babel/core': ^7.4.0 || ^8.0.0-0 <8.0.0 bail@2.0.2: - resolution: - { - integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==, - } + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} balanced-match@1.0.2: - resolution: - { - integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==, - } + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + balanced-match@4.0.4: + resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} + engines: {node: 18 || 20 || >=22} bare-events@2.6.1: - resolution: - { - integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==, - } + resolution: {integrity: sha512-AuTJkq9XmE6Vk0FJVNq5QxETrSA/vKHarWVBG5l/JbdCL1prJemiyJqUS0jrlXO0MftuPq4m3YVYhoNc5+aE/g==} base16@1.0.0: - resolution: - { - integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==, - } + resolution: {integrity: sha512-pNdYkNPiJUnEhnfXV56+sQy8+AaPcG3POZAUnwr4EeqCUZFz4u2PePbo3e5Gj4ziYPCWGUZT9RHisvJKnwFuBQ==} base64-js@1.5.1: - resolution: - { - integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==, - } + resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} base64id@2.0.0: - resolution: - { - integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==, - } - engines: { node: ^4.5.0 || >= 5.9 } + resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==} + engines: {node: ^4.5.0 || >= 5.9} basic-ftp@5.0.5: - resolution: - { - integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-4Bcg1P8xhUuqcii/S0Z9wiHIrQVPMermM1any+MX5GeGD7faD3/msQUDGLol9wOcz4/jbg/WJnGqoJF6LiBdtg==} + engines: {node: '>=10.0.0'} + deprecated: Security vulnerability fixed in 5.2.1, please upgrade better-opn@3.0.2: - resolution: - { - integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==} + engines: {node: '>=12.0.0'} better-react-mathjax@2.3.0: - resolution: - { - integrity: sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==, - } + resolution: {integrity: sha512-K0ceQC+jQmB+NLDogO5HCpqmYf18AU2FxDbLdduYgkHYWZApFggkHE4dIaXCV1NqeoscESYXXo1GSkY6fA295w==} peerDependencies: react: '>=16.8' bignumber.js@9.3.1: - resolution: - { - integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==, - } + resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==} binary-extensions@2.3.0: - resolution: - { - integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} + engines: {node: '>=8'} bl@4.1.0: - resolution: - { - integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, - } + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} bowser@2.12.0: - resolution: - { - integrity: sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==, - } + resolution: {integrity: sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==} boxen@7.0.0: - resolution: - { - integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-j//dBVuyacJbvW+tvZ9HuH03fZ46QcaKvvhZickZqtB271DxJ7SNRSNxrV/dZX0085m7hISRZWbzWlJvx/rHSg==} + engines: {node: '>=14.16'} brace-expansion@1.1.12: - resolution: - { - integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==, - } + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} brace-expansion@2.0.2: - resolution: - { - integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==, - } + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} + engines: {node: 18 || 20 || >=22} braces@3.0.3: - resolution: - { - integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} browserslist@4.25.3: - resolution: - { - integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==, - } - engines: { node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7 } + resolution: {integrity: sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true buffer-crc32@0.2.13: - resolution: - { - integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==, - } + resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==} buffer-equal-constant-time@1.0.1: - resolution: - { - integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==, - } + resolution: {integrity: sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==} buffer-from@1.1.2: - resolution: - { - integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==, - } + resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} buffer@5.6.0: - resolution: - { - integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==, - } + resolution: {integrity: sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==} buffer@5.7.1: - resolution: - { - integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, - } + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} buffer@6.0.3: - resolution: - { - integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==, - } + resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} builtin-modules@3.3.0: - resolution: - { - integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==} + engines: {node: '>=6'} bytes@3.0.0: - resolution: - { - integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==} + engines: {node: '>= 0.8'} cac@6.7.14: - resolution: - { - integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} call-bind-apply-helpers@1.0.2: - resolution: - { - integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} call-bind@1.0.8: - resolution: - { - integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} call-bound@1.0.4: - resolution: - { - integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==} + engines: {node: '>= 0.4'} callsites@3.1.0: - resolution: - { - integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} camel-case@3.0.0: - resolution: - { - integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==, - } + resolution: {integrity: sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==} camelcase@7.0.1: - resolution: - { - integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-xlx1yCK2Oc1APsPXDL2LdlNP6+uu8OCDdhOBSVT279M/S+y75O30C2VuD8T2ogdePBBl7PfPF4504tnLgX3zfw==} + engines: {node: '>=14.16'} caniuse-lite@1.0.30001735: - resolution: - { - integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==, - } + resolution: {integrity: sha512-EV/laoX7Wq2J9TQlyIXRxTJqIw4sxfXS4OYgudGxBYRuTv0q7AM6yMEpU/Vo1I94thg9U6EZ2NfZx9GJq83u7w==} case-anything@2.1.13: - resolution: - { - integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==, - } - engines: { node: '>=12.13' } + resolution: {integrity: sha512-zlOQ80VrQ2Ue+ymH5OuM/DlDq64mEm+B9UTdHULv5osUMD6HalNTblf2b1u/m6QecjsnOkBpqVZ+XPwIVsy7Ng==} + engines: {node: '>=12.13'} ccount@2.0.1: - resolution: - { - integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==, - } + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} chai@5.3.1: - resolution: - { - integrity: sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-48af6xm9gQK8rhIcOxWwdGzIervm8BVTin+yRp9HEvU20BtVZ2lBywlIJBzwaDtvo0FvjeL7QdCADoUoqIbV3A==} + engines: {node: '>=18'} chainsaw@0.0.9: - resolution: - { - integrity: sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==, - } + resolution: {integrity: sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==} chalk-template@0.4.0: - resolution: - { - integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==} + engines: {node: '>=12'} chalk@2.4.2: - resolution: - { - integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} + engines: {node: '>=4'} chalk@3.0.0: - resolution: - { - integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} + engines: {node: '>=8'} chalk@4.1.2: - resolution: - { - integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} chalk@5.0.1: - resolution: - { - integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-Fo07WOYGqMfCWHOzSXOt2CxDbC6skS/jO9ynEcmpANMoPrD+W1r1K6Vx7iNm+AQmETU1Xr2t+n8nzkV9t6xh3w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} chalk@5.3.0: - resolution: - { - integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} chalk@5.6.0: - resolution: - { - integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==, - } - engines: { node: ^12.17.0 || ^14.13 || >=16.0.0 } + resolution: {integrity: sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ==} + engines: {node: ^12.17.0 || ^14.13 || >=16.0.0} change-case@3.1.0: - resolution: - { - integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==, - } + resolution: {integrity: sha512-2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==} character-entities-html4@2.1.0: - resolution: - { - integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==, - } + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} character-entities-legacy@3.0.0: - resolution: - { - integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==, - } + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} character-entities@2.0.2: - resolution: - { - integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==, - } + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} character-reference-invalid@2.0.1: - resolution: - { - integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==, - } + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} chardet@0.7.0: - resolution: - { - integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==, - } + resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} chardet@2.1.0: - resolution: - { - integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==, - } + resolution: {integrity: sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==} check-error@2.1.1: - resolution: - { - integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==, - } - engines: { node: '>= 16' } + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} checkpoint-client@1.1.24: - resolution: - { - integrity: sha512-nIOlLhDS7MKs4tUzS3LCm+sE1NgTCVnVrXlD0RRxaoEkkLu8LIWSUNiNWai6a+LK5unLzTyZeTCYX1Smqy0YoA==, - } + resolution: {integrity: sha512-nIOlLhDS7MKs4tUzS3LCm+sE1NgTCVnVrXlD0RRxaoEkkLu8LIWSUNiNWai6a+LK5unLzTyZeTCYX1Smqy0YoA==} chevrotain-allstar@0.3.1: - resolution: - { - integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==, - } + resolution: {integrity: sha512-b7g+y9A0v4mxCW1qUhf3BSVPg+/NvGErk/dOkrDaHA0nQIQGAtrOjlX//9OQtRlSCy+x9rfB5N8yC71lH1nvMw==} peerDependencies: chevrotain: ^11.0.0 chevrotain@11.0.3: - resolution: - { - integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==, - } + resolution: {integrity: sha512-ci2iJH6LeIkvP9eJW6gpueU8cnZhv85ELY8w8WiFtNjMHA5ad6pQLaJo9mEly/9qUyCpvqX8/POVUTf18/HFdw==} chokidar@3.6.0: - resolution: - { - integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, - } - engines: { node: '>= 8.10.0' } + resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} + engines: {node: '>= 8.10.0'} chokidar@4.0.3: - resolution: - { - integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==, - } - engines: { node: '>= 14.16.0' } + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} chownr@3.0.0: - resolution: - { - integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==} + engines: {node: '>=18'} chromatic@12.2.0: - resolution: - { - integrity: sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==, - } + resolution: {integrity: sha512-GswmBW9ZptAoTns1BMyjbm55Z7EsIJnUvYKdQqXIBZIKbGErmpA+p4c0BYA+nzw5B0M+rb3Iqp1IaH8TFwIQew==} hasBin: true peerDependencies: '@chromatic-com/cypress': ^0.*.* || ^1.0.0 @@ -11990,461 +8732,257 @@ packages: optional: true chrome-trace-event@1.0.4: - resolution: - { - integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==} + engines: {node: '>=6.0'} ci-info@3.8.0: - resolution: - { - integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw==} + engines: {node: '>=8'} ci-info@3.9.0: - resolution: - { - integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==} + engines: {node: '>=8'} cjs-module-lexer@1.4.3: - resolution: - { - integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==, - } + resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==} + + cjs-module-lexer@2.2.0: + resolution: {integrity: sha512-4bHTS2YuzUvtoLjdy+98ykbNB5jS0+07EvFNXerqZQJ89F7DI6ET7OQo/HJuW6K0aVsKA9hj9/RVb2kQVOrPDQ==} class-variance-authority@0.7.1: - resolution: - { - integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==, - } + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} classcat@5.0.5: - resolution: - { - integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==, - } + resolution: {integrity: sha512-JhZUT7JFcQy/EzW605k/ktHtncoo9vnyW/2GspNYwFlN1C/WmjuV/xtS04e9SOkL2sTdw0VAZ2UGCcQ9lR6p6w==} classnames@2.5.1: - resolution: - { - integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==, - } + resolution: {integrity: sha512-saHYOzhIQs6wy2sVxTM6bUDsQO4F50V9RQ22qBpEdCW+I+/Wmke2HOl6lS6dTpdxVhb88/I6+Hs+438c3lfUow==} clean-stack@2.2.0: - resolution: - { - integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} + engines: {node: '>=6'} cli-boxes@3.0.0: - resolution: - { - integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==} + engines: {node: '>=10'} cli-cursor@3.1.0: - resolution: - { - integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==} + engines: {node: '>=8'} cli-cursor@4.0.0: - resolution: - { - integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-progress@3.12.0: - resolution: - { - integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A==} + engines: {node: '>=4'} cli-spinners@2.9.2: - resolution: - { - integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==} + engines: {node: '>=6'} cli-truncate@2.1.0: - resolution: - { - integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} + engines: {node: '>=8'} cli-truncate@3.1.0: - resolution: - { - integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} cli-width@3.0.0: - resolution: - { - integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} + engines: {node: '>= 10'} cli-width@4.1.0: - resolution: - { - integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-ouuZd4/dm2Sw5Gmqy6bGyNNNe1qt9RpmxveLSO7KcgsTnU7RXfsw+/bukWGo1abgBiMAic068rclZsO4IWmmxQ==} + engines: {node: '>= 12'} client-only@0.0.1: - resolution: - { - integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==, - } + resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} clipboardy@3.0.0: - resolution: - { - integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-Su+uU5sr1jkUy1sGRpLKjKrvEOVXgSgiSInwa/qeID6aJ07yh+5NWc3h2QfjHjBnfX4LhtFcuAWKUsJ3r+fjbg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} clipboardy@4.0.0: - resolution: - { - integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==} + engines: {node: '>=18'} cliui@8.0.1: - resolution: - { - integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} + engines: {node: '>=12'} clone@1.0.4: - resolution: - { - integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==, - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} + engines: {node: '>=0.8'} clsx@2.1.1: - resolution: - { - integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} + engines: {node: '>=6'} cluster-key-slot@1.1.2: - resolution: - { - integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==} + engines: {node: '>=0.10.0'} cmdk@1.1.1: - resolution: - { - integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==, - } + resolution: {integrity: sha512-Vsv7kFaXm+ptHDMZ7izaRsP70GgrW9NBNGswt9OZaVBLlE0SNpDq8eu/VGXyF9r7M0azK3Wy7OlYXsuyYLFzHg==} peerDependencies: react: ^18 || ^19 || ^19.0.0-rc react-dom: ^18 || ^19 || ^19.0.0-rc code-block-writer@13.0.3: - resolution: - { - integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==, - } + resolution: {integrity: sha512-Oofo0pq3IKnsFtuHqSF7TqBfr71aeyZDVJ0HpmqB7FBM2qEigL0iPONSCZSO9pE9dZTAxANe5XHG9Uy0YMv8cg==} collapse-white-space@2.1.0: - resolution: - { - integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==, - } + resolution: {integrity: sha512-loKTxY1zCOuG4j9f6EPnuyyYkf58RnhhWTvRoZEokgB+WbdXehfjFviyOVYkqzEWz1Q5kRiZdBYS5SwxbQYwzw==} color-convert@1.9.3: - resolution: - { - integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, - } + resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} color-convert@2.0.1: - resolution: - { - integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==, - } - engines: { node: '>=7.0.0' } + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} color-name@1.1.3: - resolution: - { - integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==, - } + resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} color-name@1.1.4: - resolution: - { - integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, - } + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} color-string@1.9.1: - resolution: - { - integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, - } + resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} color@3.2.1: - resolution: - { - integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, - } + resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==} color@4.2.3: - resolution: - { - integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==, - } - engines: { node: '>=12.5.0' } + resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} + engines: {node: '>=12.5.0'} colorette@2.0.19: - resolution: - { - integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==, - } + resolution: {integrity: sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==} colorette@2.0.20: - resolution: - { - integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==, - } + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} combined-stream@1.0.8: - resolution: - { - integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} comma-separated-tokens@2.0.3: - resolution: - { - integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==, - } + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} commander@10.0.1: - resolution: - { - integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} + engines: {node: '>=14'} commander@11.0.0: - resolution: - { - integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==} + engines: {node: '>=16'} commander@11.1.0: - resolution: - { - integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} commander@13.1.0: - resolution: - { - integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==} + engines: {node: '>=18'} commander@2.20.3: - resolution: - { - integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==, - } + resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} commander@7.2.0: - resolution: - { - integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==} + engines: {node: '>= 10'} commander@8.3.0: - resolution: - { - integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==} + engines: {node: '>= 12'} commondir@1.0.1: - resolution: - { - integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==, - } + resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} compress-commons@4.1.2: - resolution: - { - integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==} + engines: {node: '>= 10'} compress-commons@5.0.3: - resolution: - { - integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-/UIcLWvwAQyVibgpQDPtfNM3SvqN7G9elAPAV7GM0L53EbNWwWiCsWtK8Fwed/APEbptPHXs5PuW+y8Bq8lFTA==} + engines: {node: '>= 12.0.0'} compressible@2.0.18: - resolution: - { - integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==} + engines: {node: '>= 0.6'} compression@1.7.4: - resolution: - { - integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==} + engines: {node: '>= 0.8.0'} compute-scroll-into-view@3.1.1: - resolution: - { - integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==, - } + resolution: {integrity: sha512-VRhuHOLoKYOy4UbilLbUzbYg93XLjv2PncJC50EuTWPA3gaja1UjBsUP/D/9/juV3vQFr6XBEzn9KCAHdUvOHw==} concat-map@0.0.1: - resolution: - { - integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==, - } + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} concat-stream@1.6.2: - resolution: - { - integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==, - } - engines: { '0': node >= 0.8 } + resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} + engines: {'0': node >= 0.8} concurrently@9.2.0: - resolution: - { - integrity: sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-IsB/fiXTupmagMW4MNp2lx2cdSN2FfZq78vF90LBB+zZHArbIQZjQtzXCiXnvTxCZSvXanTqFLWBjw2UkLx1SQ==} + engines: {node: '>=18'} hasBin: true confbox@0.1.8: - resolution: - { - integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==, - } + resolution: {integrity: sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==} confbox@0.2.2: - resolution: - { - integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==, - } + resolution: {integrity: sha512-1NB+BKqhtNipMsov4xI/NnhCKp9XG9NamYp5PVm9klAT0fsrNPjaFICsCFhNhwZJKNh7zB/3q8qXz0E9oaMNtQ==} constant-case@2.0.0: - resolution: - { - integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==, - } + resolution: {integrity: sha512-eS0N9WwmjTqrOmR3o83F5vW8Z+9R1HnVz3xmzT2PMFug9ly+Au/fxRWlEBSb6LcZwspSsEn9Xs1uw9YgzAg1EQ==} content-disposition@0.5.2: - resolution: - { - integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-kRGRZw3bLlFISDBgwTSA1TMBFN6J6GWDeubmDE3AF+3+yXL8hTWv8r5rkLbqYXY4RjPk/EzHnClI3zQf1cFmHA==} + engines: {node: '>= 0.6'} convert-source-map@1.9.0: - resolution: - { - integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==, - } + resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} convert-source-map@2.0.0: - resolution: - { - integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==, - } + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} cookie@0.7.2: - resolution: - { - integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==} + engines: {node: '>= 0.6'} core-js-compat@3.45.0: - resolution: - { - integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==, - } + resolution: {integrity: sha512-gRoVMBawZg0OnxaVv3zpqLLxaHmsubEGyTnqdpI/CEBvX4JadI1dMSHxagThprYRtSVbuQxvi6iUatdPxohHpA==} core-js-pure@3.45.0: - resolution: - { - integrity: sha512-OtwjqcDpY2X/eIIg1ol/n0y/X8A9foliaNt1dSK0gV3J2/zw+89FcNG3mPK+N8YWts4ZFUPxnrAzsxs/lf8yDA==, - } + resolution: {integrity: sha512-OtwjqcDpY2X/eIIg1ol/n0y/X8A9foliaNt1dSK0gV3J2/zw+89FcNG3mPK+N8YWts4ZFUPxnrAzsxs/lf8yDA==} core-util-is@1.0.3: - resolution: - { - integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==, - } + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} cors@2.8.5: - resolution: - { - integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==} + engines: {node: '>= 0.10'} cose-base@1.0.3: - resolution: - { - integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==, - } + resolution: {integrity: sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg==} cose-base@2.2.0: - resolution: - { - integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==, - } + resolution: {integrity: sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g==} cosmiconfig@7.1.0: - resolution: - { - integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA==} + engines: {node: '>=10'} cosmiconfig@8.3.6: - resolution: - { - integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} + engines: {node: '>=14'} peerDependencies: typescript: '>=4.9.5' peerDependenciesMeta: @@ -12452,462 +8990,261 @@ packages: optional: true crc-32@1.2.2: - resolution: - { - integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==, - } - engines: { node: '>=0.8' } + resolution: {integrity: sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==} + engines: {node: '>=0.8'} hasBin: true crc32-stream@4.0.3: - resolution: - { - integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw==} + engines: {node: '>= 10'} crc32-stream@5.0.1: - resolution: - { - integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} + engines: {node: '>= 12.0.0'} create-require@1.1.1: - resolution: - { - integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==, - } + resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} crelt@1.0.6: - resolution: - { - integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==, - } + resolution: {integrity: sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==} cropperjs@1.6.2: - resolution: - { - integrity: sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==, - } + resolution: {integrity: sha512-nhymn9GdnV3CqiEHJVai54TULFAE3VshJTXSqSJKa8yXAKyBKDWdhHarnlIPrshJ0WMFTGuFvG02YjLXfPiuOA==} cross-spawn@7.0.3: - resolution: - { - integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} + engines: {node: '>= 8'} cross-spawn@7.0.6: - resolution: - { - integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} crypto-random-string@2.0.0: - resolution: - { - integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} + engines: {node: '>=8'} css.escape@1.5.1: - resolution: - { - integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==, - } + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} cssesc@3.0.0: - resolution: - { - integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} hasBin: true cssstyle@4.6.0: - resolution: - { - integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} + engines: {node: '>=18'} csstype@3.1.3: - resolution: - { - integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==, - } + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} csv-parse@5.6.0: - resolution: - { - integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==, - } + resolution: {integrity: sha512-l3nz3euub2QMg5ouu5U09Ew9Wf6/wQ8I++ch1loQ0ljmzhmfZYrH9fflS22i/PQEvsPvxCwxgz5q7UB8K1JO4Q==} cytoscape-cose-bilkent@4.1.0: - resolution: - { - integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==, - } + resolution: {integrity: sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ==} peerDependencies: cytoscape: ^3.2.0 cytoscape-fcose@2.2.0: - resolution: - { - integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==, - } + resolution: {integrity: sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ==} peerDependencies: cytoscape: ^3.2.0 cytoscape@3.33.1: - resolution: - { - integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-iJc4TwyANnOGR1OmWhsS9ayRS3s+XQ185FmuHObThD+5AeJCakAAbWv8KimMTt08xCCLNgneQwFp+JRJOr9qGQ==} + engines: {node: '>=0.10'} d3-array@2.12.1: - resolution: - { - integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==, - } + resolution: {integrity: sha512-B0ErZK/66mHtEsR1TkPEEkwdy+WDesimkM5gpZr5Dsg54BiTA5RXtYW5qTLIAcekaS9xfZrzBLF/OAkB3Qn1YQ==} d3-array@3.2.4: - resolution: - { - integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==} + engines: {node: '>=12'} d3-axis@3.0.0: - resolution: - { - integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==} + engines: {node: '>=12'} d3-brush@3.0.0: - resolution: - { - integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==} + engines: {node: '>=12'} d3-chord@3.0.1: - resolution: - { - integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==} + engines: {node: '>=12'} d3-color@3.1.0: - resolution: - { - integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==} + engines: {node: '>=12'} d3-contour@4.0.2: - resolution: - { - integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==} + engines: {node: '>=12'} d3-delaunay@6.0.4: - resolution: - { - integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==} + engines: {node: '>=12'} d3-dispatch@3.0.1: - resolution: - { - integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==} + engines: {node: '>=12'} d3-drag@3.0.0: - resolution: - { - integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==} + engines: {node: '>=12'} d3-dsv@3.0.1: - resolution: - { - integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==} + engines: {node: '>=12'} hasBin: true d3-ease@3.0.1: - resolution: - { - integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==} + engines: {node: '>=12'} d3-fetch@3.0.1: - resolution: - { - integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==} + engines: {node: '>=12'} d3-force@3.0.0: - resolution: - { - integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==} + engines: {node: '>=12'} d3-format@3.1.0: - resolution: - { - integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==} + engines: {node: '>=12'} d3-geo@3.1.1: - resolution: - { - integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==} + engines: {node: '>=12'} d3-hierarchy@3.1.2: - resolution: - { - integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==} + engines: {node: '>=12'} d3-interpolate@3.0.1: - resolution: - { - integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==} + engines: {node: '>=12'} d3-path@1.0.9: - resolution: - { - integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==, - } + resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==} d3-path@3.1.0: - resolution: - { - integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==} + engines: {node: '>=12'} d3-polygon@3.0.1: - resolution: - { - integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==} + engines: {node: '>=12'} d3-quadtree@3.0.1: - resolution: - { - integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==} + engines: {node: '>=12'} d3-random@3.0.1: - resolution: - { - integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==} + engines: {node: '>=12'} d3-sankey@0.12.3: - resolution: - { - integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==, - } + resolution: {integrity: sha512-nQhsBRmM19Ax5xEIPLMY9ZmJ/cDvd1BG3UVvt5h3WRxKg5zGRbvnteTyWAbzeSvlh3tW7ZEmq4VwR5mB3tutmQ==} d3-scale-chromatic@3.1.0: - resolution: - { - integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==} + engines: {node: '>=12'} d3-scale@4.0.2: - resolution: - { - integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==} + engines: {node: '>=12'} d3-selection@3.0.0: - resolution: - { - integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==} + engines: {node: '>=12'} d3-shape@1.3.7: - resolution: - { - integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==, - } + resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==} d3-shape@3.2.0: - resolution: - { - integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==} + engines: {node: '>=12'} d3-time-format@4.1.0: - resolution: - { - integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==} + engines: {node: '>=12'} d3-time@3.1.0: - resolution: - { - integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==} + engines: {node: '>=12'} d3-timer@3.0.1: - resolution: - { - integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==} + engines: {node: '>=12'} d3-transition@3.0.1: - resolution: - { - integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==} + engines: {node: '>=12'} peerDependencies: d3-selection: 2 - 3 d3-zoom@3.0.0: - resolution: - { - integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==} + engines: {node: '>=12'} d3@7.9.0: - resolution: - { - integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==} + engines: {node: '>=12'} dagre-d3-es@7.0.11: - resolution: - { - integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==, - } + resolution: {integrity: sha512-tvlJLyQf834SylNKax8Wkzco/1ias1OPw8DcUMDE7oUIoSEW25riQVuiu/0OWEFqT0cxHT3Pa9/D82Jr47IONw==} dash-get@1.0.2: - resolution: - { - integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==, - } + resolution: {integrity: sha512-4FbVrHDwfOASx7uQVxeiCTo7ggSdYZbqs8lH+WU6ViypPlDbe9y6IP5VVUDQBv9DcnyaiPT5XT0UWHgJ64zLeQ==} data-uri-to-buffer@6.0.2: - resolution: - { - integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} + engines: {node: '>= 14'} data-urls@5.0.0: - resolution: - { - integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} + engines: {node: '>=18'} data-view-buffer@1.0.2: - resolution: - { - integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} + engines: {node: '>= 0.4'} data-view-byte-length@1.0.2: - resolution: - { - integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} + engines: {node: '>= 0.4'} data-view-byte-offset@1.0.1: - resolution: - { - integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} + engines: {node: '>= 0.4'} dataloader@2.2.3: - resolution: - { - integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==, - } + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} date-fns-jalali@4.1.0-0: - resolution: - { - integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==, - } + resolution: {integrity: sha512-hTIP/z+t+qKwBDcmmsnmjWTduxCg+5KfdqWQvb2X/8C9+knYY6epN/pfxdDuyVlSVeFz0sM5eEfwIUQ70U4ckg==} date-fns@4.1.0: - resolution: - { - integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==, - } + resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==} dateformat@4.6.3: - resolution: - { - integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==, - } + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} dayjs@1.11.13: - resolution: - { - integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==, - } + resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==} debounce@2.0.0: - resolution: - { - integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-xRetU6gL1VJbs85Mc4FoEGSjQxzpdxRyFhe3lmWFyy2EzydIcD4xzUvRJMD+NPDfMwKNhxa3PvsIOU32luIWeA==} + engines: {node: '>=18'} debounce@2.2.0: - resolution: - { - integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Xks6RUDLZFdz8LIdR6q0MTH44k7FikOmnh5xkSjMig6ch45afc8sjTjRQf3P6ax8dMgcQrYO/AR2RGWURrruqw==} + engines: {node: '>=18'} debug@2.6.9: - resolution: - { - integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==, - } + resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -12915,11 +9252,8 @@ packages: optional: true debug@4.3.4: - resolution: - { - integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -12927,11 +9261,8 @@ packages: optional: true debug@4.3.7: - resolution: - { - integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -12939,11 +9270,8 @@ packages: optional: true debug@4.4.1: - resolution: - { - integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} + engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: @@ -12951,790 +9279,440 @@ packages: optional: true decimal.js@10.6.0: - resolution: - { - integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==, - } + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} decode-named-character-reference@1.2.0: - resolution: - { - integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==, - } + resolution: {integrity: sha512-c6fcElNV6ShtZXmsgNgFFV5tVX2PaV4g+MOAkb8eXHvn6sryJBrZa9r0zV6+dtTyoCKxtDy5tyQ5ZwQuidtd+Q==} deep-eql@5.0.2: - resolution: - { - integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} + engines: {node: '>=6'} deep-extend@0.6.0: - resolution: - { - integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, - } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} + engines: {node: '>=4.0.0'} deep-is@0.1.4: - resolution: - { - integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, - } + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} deepmerge@4.3.1: - resolution: - { - integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} + engines: {node: '>=0.10.0'} defaults@1.0.4: - resolution: - { - integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==, - } + resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} define-data-property@1.1.4: - resolution: - { - integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} define-lazy-prop@2.0.0: - resolution: - { - integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} define-properties@1.2.1: - resolution: - { - integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} degenerator@5.0.1: - resolution: - { - integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} + engines: {node: '>= 14'} del@5.1.0: - resolution: - { - integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA==} + engines: {node: '>=8'} del@6.1.1: - resolution: - { - integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-ua8BhapfP0JUJKC/zV9yHHDW/rDoDxP4Zhn3AkA6/xT6gY7jYXJiaeyBZznYVujhZZET+UgcbZiQ7sN3WqcImg==} + engines: {node: '>=10'} delaunator@5.0.1: - resolution: - { - integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==, - } + resolution: {integrity: sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==} delayed-stream@1.0.0: - resolution: - { - integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} denque@2.1.0: - resolution: - { - integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==} + engines: {node: '>=0.10'} dequal@2.0.3: - resolution: - { - integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} + engines: {node: '>=6'} detect-indent@6.1.0: - resolution: - { - integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} + engines: {node: '>=8'} detect-libc@2.0.4: - resolution: - { - integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-3UDv+G9CsCKO1WKMGw9fwq/SWJYbI0c5Y7LU1AXYoDdbhE2AHQ6N6Nb34sG8Fj7T5APy8qXDCKuuIHd1BR0tVA==} + engines: {node: '>=8'} detect-node-es@1.1.0: - resolution: - { - integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==, - } + resolution: {integrity: sha512-ypdmJU/TbBby2Dxibuv7ZLW3Bs1QEmM7nHjEANfohJLvE0XVujisn1qPJcZxg+qDucsr+bP6fLD1rPS3AhJ7EQ==} devlop@1.1.0: - resolution: - { - integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==, - } + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} diacritics@1.3.0: - resolution: - { - integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==, - } + resolution: {integrity: sha512-wlwEkqcsaxvPJML+rDh/2iS824jbREk6DUMUKkEaSlxdYHeS43cClJtsWglvw2RfeXGm6ohKDqsXteJ5sP5enA==} diff-match-patch@1.0.5: - resolution: - { - integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==, - } + resolution: {integrity: sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==} diff@4.0.2: - resolution: - { - integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==, - } - engines: { node: '>=0.3.1' } + resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} + engines: {node: '>=0.3.1'} dir-glob@3.0.1: - resolution: - { - integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} doctrine@3.0.0: - resolution: - { - integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} dom-accessibility-api@0.5.16: - resolution: - { - integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==, - } + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} dom-accessibility-api@0.6.3: - resolution: - { - integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==, - } + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} dom-serializer@2.0.0: - resolution: - { - integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==, - } + resolution: {integrity: sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==} domelementtype@2.3.0: - resolution: - { - integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==, - } + resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} domhandler@5.0.3: - resolution: - { - integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} + engines: {node: '>= 4'} dompurify@3.2.7: - resolution: - { - integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==, - } + resolution: {integrity: sha512-WhL/YuveyGXJaerVlMYGWhvQswa7myDG17P7Vu65EWC05o8vfeNbvNf4d/BOvH99+ZW+LlQsc1GDKMa1vNK6dw==} domutils@3.2.2: - resolution: - { - integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==, - } + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} dot-case@2.1.1: - resolution: - { - integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==, - } + resolution: {integrity: sha512-HnM6ZlFqcajLsyudHq7LeeLDr2rFAVYtDv/hV5qchQEidSck8j9OPUsXY9KwJv/lHMtYlX4DjRQqwFYa+0r8Ug==} dotenv-cli@5.1.0: - resolution: - { - integrity: sha512-NoEZAlKo9WVrG0b3i9mBxdD6INdDuGqdgR74t68t8084QcI077/1MnPerRW1odl+9uULhcdnQp2U0pYVppKHOA==, - } + resolution: {integrity: sha512-NoEZAlKo9WVrG0b3i9mBxdD6INdDuGqdgR74t68t8084QcI077/1MnPerRW1odl+9uULhcdnQp2U0pYVppKHOA==} hasBin: true dotenv-cli@7.4.4: - resolution: - { - integrity: sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw==, - } + resolution: {integrity: sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw==} hasBin: true dotenv-expand@10.0.0: - resolution: - { - integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} + engines: {node: '>=12'} dotenv-expand@8.0.3: - resolution: - { - integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-SErOMvge0ZUyWd5B0NXMQlDkN+8r+HhVUsxgOO7IoPDOdDRD2JjExpN6y3KnFR66jsJMwSn1pqIivhU5rcJiNg==} + engines: {node: '>=12'} dotenv@16.0.3: - resolution: - { - integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} + engines: {node: '>=12'} dotenv@16.6.1: - resolution: - { - integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} + engines: {node: '>=12'} dunder-proto@1.0.1: - resolution: - { - integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} eastasianwidth@0.2.0: - resolution: - { - integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==, - } + resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} ecdsa-sig-formatter@1.0.11: - resolution: - { - integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==, - } + resolution: {integrity: sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==} electron-to-chromium@1.5.207: - resolution: - { - integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==, - } + resolution: {integrity: sha512-mryFrrL/GXDTmAtIVMVf+eIXM09BBPlO5IQ7lUyKmK8d+A4VpRGG+M3ofoVef6qyF8s60rJei8ymlJxjUA8Faw==} emoji-regex@8.0.0: - resolution: - { - integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==, - } + resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} emoji-regex@9.2.2: - resolution: - { - integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==, - } + resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==} end-of-stream@1.4.5: - resolution: - { - integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==, - } + resolution: {integrity: sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==} engine.io-parser@5.2.3: - resolution: - { - integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==} + engines: {node: '>=10.0.0'} engine.io@6.6.4: - resolution: - { - integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==, - } - engines: { node: '>=10.2.0' } + resolution: {integrity: sha512-ZCkIjSYNDyGn0R6ewHDtXgns/Zre/NT6Agvq1/WobF7JXgFff4SeDroKiCO3fNJreU9YG429Sc81o4w5ok/W5g==} + engines: {node: '>=10.2.0'} enhanced-resolve@5.18.3: - resolution: - { - integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-d4lC8xfavMeBjzGr2vECC3fsGXziXZQyJxD868h2M/mBI3PwAuODxAkLkq5HYuvrPYcUtiLzsTo8U3PgX3Ocww==} + engines: {node: '>=10.13.0'} enquirer@2.4.1: - resolution: - { - integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==} + engines: {node: '>=8.6'} entities@4.5.0: - resolution: - { - integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==, - } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} + engines: {node: '>=0.12'} entities@6.0.1: - resolution: - { - integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==, - } - engines: { node: '>=0.12' } + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} + engines: {node: '>=0.12'} env-paths@2.2.1: - resolution: - { - integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} + engines: {node: '>=6'} error-ex@1.3.2: - resolution: - { - integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==, - } + resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} es-abstract@1.24.0: - resolution: - { - integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==} + engines: {node: '>= 0.4'} es-define-property@1.0.1: - resolution: - { - integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} es-errors@1.3.0: - resolution: - { - integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} es-module-lexer@1.7.0: - resolution: - { - integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==, - } + resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} es-object-atoms@1.1.1: - resolution: - { - integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} es-set-tostringtag@2.1.0: - resolution: - { - integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} es-to-primitive@1.3.0: - resolution: - { - integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} + engines: {node: '>= 0.4'} esast-util-from-estree@2.0.0: - resolution: - { - integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==, - } + resolution: {integrity: sha512-4CyanoAudUSBAn5K13H4JhsMH6L9ZP7XbLVe/dKybkxMO7eDyLsT8UHl9TRNrU2Gr9nz+FovfSIjuXWJ81uVwQ==} esast-util-from-js@2.0.1: - resolution: - { - integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==, - } + resolution: {integrity: sha512-8Ja+rNJ0Lt56Pcf3TAmpBZjmx8ZcK5Ts4cAzIOjsjevg9oSXJnl6SUQ2EevU8tv3h6ZLWmoKL5H4fgWvdvfETw==} esbuild-register@3.6.0: - resolution: - { - integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==, - } + resolution: {integrity: sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==} peerDependencies: esbuild: '>=0.12 <1' esbuild@0.19.11: - resolution: - { - integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA==} + engines: {node: '>=12'} hasBin: true esbuild@0.25.9: - resolution: - { - integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-CRbODhYyQx3qp7ZEwzxOk4JBqmD/seJrzPa/cGjY1VtIn5E09Oi9/dB4JwctnfZ8Q8iT7rioVv5k/FNT/uf54g==} + engines: {node: '>=18'} hasBin: true escalade@3.2.0: - resolution: - { - integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} escape-string-regexp@1.0.5: - resolution: - { - integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} + engines: {node: '>=0.8.0'} escape-string-regexp@4.0.0: - resolution: - { - integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} escape-string-regexp@5.0.0: - resolution: - { - integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==} + engines: {node: '>=12'} escodegen@2.1.0: - resolution: - { - integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==, - } - engines: { node: '>=6.0' } + resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} + engines: {node: '>=6.0'} hasBin: true eslint-scope@5.1.1: - resolution: - { - integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} + engines: {node: '>=8.0.0'} esm@3.2.25: - resolution: - { - integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==} + engines: {node: '>=6'} esprima@4.0.1: - resolution: - { - integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} + engines: {node: '>=4'} hasBin: true esrecurse@4.3.0: - resolution: - { - integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} estraverse@4.3.0: - resolution: - { - integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} + engines: {node: '>=4.0'} estraverse@5.3.0: - resolution: - { - integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} estree-util-attach-comments@3.0.0: - resolution: - { - integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==, - } + resolution: {integrity: sha512-cKUwm/HUcTDsYh/9FgnuFqpfquUbwIqwKM26BVCGDPVgvaCl/nDCCjUfiLlx6lsEZ3Z4RFxNbOQ60pkaEwFxGw==} estree-util-build-jsx@3.0.1: - resolution: - { - integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==, - } + resolution: {integrity: sha512-8U5eiL6BTrPxp/CHbs2yMgP8ftMhR5ww1eIKoWRMlqvltHF8fZn5LRDvTKuxD3DUn+shRbLGqXemcP51oFCsGQ==} estree-util-is-identifier-name@2.1.0: - resolution: - { - integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==, - } + resolution: {integrity: sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ==} estree-util-is-identifier-name@3.0.0: - resolution: - { - integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==, - } + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} estree-util-scope@1.0.0: - resolution: - { - integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==, - } + resolution: {integrity: sha512-2CAASclonf+JFWBNJPndcOpA8EMJwa0Q8LUFJEKqXLW6+qBvbFZuF5gItbQOs/umBUkjviCSDCbBwU2cXbmrhQ==} estree-util-to-js@2.0.0: - resolution: - { - integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==, - } + resolution: {integrity: sha512-WDF+xj5rRWmD5tj6bIqRi6CkLIXbbNQUcxQHzGysQzvHmdYG2G7p/Tf0J0gpxGgkeMZNTIjT/AoSvC9Xehcgdg==} estree-util-value-to-estree@3.4.0: - resolution: - { - integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==, - } + resolution: {integrity: sha512-Zlp+gxis+gCfK12d3Srl2PdX2ybsEA8ZYy6vQGVQTNNYLEGRQQ56XB64bjemN8kxIKXP1nC9ip4Z+ILy9LGzvQ==} estree-util-visit@2.0.0: - resolution: - { - integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==, - } + resolution: {integrity: sha512-m5KgiH85xAhhW8Wta0vShLcUvOsh3LLPI2YVwcbio1l7E09NTLL1EyMZFM1OyWowoH0skScNbhOPl4kcBgzTww==} estree-walker@1.0.1: - resolution: - { - integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==, - } + resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} estree-walker@2.0.2: - resolution: - { - integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==, - } + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} estree-walker@3.0.3: - resolution: - { - integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, - } + resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==} esutils@2.0.3: - resolution: - { - integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} eta@3.5.0: - resolution: - { - integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-e3x3FBvGzeCIHhF+zhK8FZA2vC5uFn6b4HJjegUbIWrDb4mJ7JjTGMJY9VGIbRVpmSwHopNiaJibhjIr+HfLug==} + engines: {node: '>=6.0.0'} event-target-shim@5.0.1: - resolution: - { - integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} + engines: {node: '>=6'} eventemitter3@5.0.1: - resolution: - { - integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==, - } + resolution: {integrity: sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==} events@3.3.0: - resolution: - { - integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, - } - engines: { node: '>=0.8.x' } + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} + engines: {node: '>=0.8.x'} execa@5.1.1: - resolution: - { - integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} execa@7.2.0: - resolution: - { - integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, - } - engines: { node: ^14.18.0 || ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==} + engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} execa@8.0.1: - resolution: - { - integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==, - } - engines: { node: '>=16.17' } + resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} + engines: {node: '>=16.17'} exifr@7.1.3: - resolution: - { - integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==, - } + resolution: {integrity: sha512-g/aje2noHivrRSLbAUtBPWFbxKdKhgj/xr1vATDdUXPOFYJlQ62Ft0oy+72V6XLIpDJfHs6gXLbBLAolqOXYRw==} expect-type@1.2.2: - resolution: - { - integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + engines: {node: '>=12.0.0'} exsolve@1.0.7: - resolution: - { - integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==, - } + resolution: {integrity: sha512-VO5fQUzZtI6C+vx4w/4BWJpg3s/5l+6pRQEHzFRM8WFi4XffSP1Z+4qi7GbjWbvRQEbdIco5mIMq+zX4rPuLrw==} extend@3.0.2: - resolution: - { - integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==, - } + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} external-editor@3.1.0: - resolution: - { - integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} + engines: {node: '>=4'} extract-pg-schema@5.7.4: - resolution: - { - integrity: sha512-6xMKNwsKOEIZ5iwqyEDq3KySV9UmOLYTPSetpOUD8cAm7xnIIcb+7P7Hgkc5dcRhA5tcYjGx32FAH0/+kwmLkw==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-6xMKNwsKOEIZ5iwqyEDq3KySV9UmOLYTPSetpOUD8cAm7xnIIcb+7P7Hgkc5dcRhA5tcYjGx32FAH0/+kwmLkw==} + engines: {node: '>=16.0.0'} hasBin: true fast-copy@3.0.2: - resolution: - { - integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==, - } + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} fast-copy@4.0.2: - resolution: - { - integrity: sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==, - } + resolution: {integrity: sha512-ybA6PDXIXOXivLJK/z9e+Otk7ve13I4ckBvGO5I2RRmBU1gMHLVDJYEuJYhGwez7YNlYji2M2DvVU+a9mSFDlw==} fast-deep-equal@2.0.1: - resolution: - { - integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==, - } + resolution: {integrity: sha512-bCK/2Z4zLidyB4ReuIsvALH6w31YfAQDmXMqMx6FyfHqvBxtjC0eRumeSu4Bs3XtXwpyIywtSTrVT99BxY1f9w==} fast-deep-equal@3.1.3: - resolution: - { - integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, - } + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} fast-fifo@1.3.2: - resolution: - { - integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==, - } + resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} fast-glob@3.3.3: - resolution: - { - integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==, - } - engines: { node: '>=8.6.0' } + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: - resolution: - { - integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, - } + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-levenshtein@2.0.6: - resolution: - { - integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==, - } + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} fast-redact@3.5.0: - resolution: - { - integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-dwsoQlS7h9hMeYUq1W++23NDcBLV4KqONnITDV9DjfS3q1SgDGVrBdvvTLUotWtPSD7asWDV9/CmsZPy8Hf70A==} + engines: {node: '>=6'} fast-safe-stringify@2.1.1: - resolution: - { - integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==, - } + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} fast-uri@3.0.6: - resolution: - { - integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==, - } + resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} fast-write-atomic@0.2.1: - resolution: - { - integrity: sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==, - } + resolution: {integrity: sha512-WvJe06IfNYlr+6cO3uQkdKdy3Cb1LlCJSF8zRs2eT8yuhdbSlR9nIt+TgQ92RUxiRrQm+/S7RARnMfCs5iuAjw==} + + fast-xml-builder@1.1.5: + resolution: {integrity: sha512-4TJn/8FKLeslLAH3dnohXqE3QSoxkhvaMzepOIZytwJXZO69Bfz0HBdDHzOTOon6G59Zrk6VQ2bEiv1t61rfkA==} fast-xml-parser@5.2.5: - resolution: - { - integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==, - } + resolution: {integrity: sha512-pfX9uG9Ki0yekDHx2SiuRIyFdyAr1kMIMitPvb0YBo8SUfKvia7w7FIyd/l6av85pFYRhZscS75MwMnbvY+hcQ==} + hasBin: true + + fast-xml-parser@5.7.2: + resolution: {integrity: sha512-P7oW7tLbYnhOLQk/Gv7cZgzgMPP/XN03K02/Jy6Y/NHzyIAIpxuZIM/YqAkfiXFPxA2CTm7NtCijK9EDu09u2w==} hasBin: true fastq@1.19.1: - resolution: - { - integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==, - } + resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} fault@2.0.1: - resolution: - { - integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==, - } + resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==} fdir@6.5.0: - resolution: - { - integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==} + engines: {node: '>=12.0.0'} peerDependencies: picomatch: ^3 || ^4 peerDependenciesMeta: @@ -13742,66 +9720,39 @@ packages: optional: true figures@3.2.0: - resolution: - { - integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} + engines: {node: '>=8'} filesize@10.1.6: - resolution: - { - integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==, - } - engines: { node: '>= 10.4.0' } + resolution: {integrity: sha512-sJslQKU2uM33qH5nqewAwVB2QgR6w1aMNsYUp3aN5rMRyXEwJGmZvaWzeJFNTOXWlHQyBFCWrdj3fV/fsTOX8w==} + engines: {node: '>= 10.4.0'} fill-range@7.1.1: - resolution: - { - integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} find-cache-dir@3.3.2: - resolution: - { - integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==} + engines: {node: '>=8'} find-root@1.1.0: - resolution: - { - integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==, - } + resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} find-up@4.1.0: - resolution: - { - integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} + engines: {node: '>=8'} find-up@5.0.0: - resolution: - { - integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} find-up@7.0.0: - resolution: - { - integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YyZM99iHrqLKjmt4LJDj58KI+fYyufRLBSYcqycxf//KpBk9FoewoGX0450m9nB44qrZnovzC2oeP5hUibxc/g==} + engines: {node: '>=18'} follow-redirects@1.15.11: - resolution: - { - integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==, - } - engines: { node: '>=4.0' } + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} peerDependencies: debug: '*' peerDependenciesMeta: @@ -13809,1518 +9760,848 @@ packages: optional: true for-each@0.3.5: - resolution: - { - integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==} + engines: {node: '>= 0.4'} foreground-child@3.3.1: - resolution: - { - integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==} + engines: {node: '>=14'} form-data@4.0.4: - resolution: - { - integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} + engines: {node: '>= 6'} format@0.2.2: - resolution: - { - integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==, - } - engines: { node: '>=0.4.x' } + resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==} + engines: {node: '>=0.4.x'} forwarded-parse@2.1.2: - resolution: - { - integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==, - } + resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==} fp-ts@2.16.0: - resolution: - { - integrity: sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ==, - } + resolution: {integrity: sha512-bLq+KgbiXdTEoT1zcARrWEpa5z6A/8b7PcDW7Gef3NSisQ+VS7ll2Xbf1E+xsgik0rWub/8u0qP/iTTjj+PhxQ==} fraction.js@4.3.7: - resolution: - { - integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==, - } + resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} fs-constants@1.0.0: - resolution: - { - integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, - } + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==} fs-extra@10.1.0: - resolution: - { - integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==} + engines: {node: '>=12'} fs-extra@11.1.1: - resolution: - { - integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==, - } - engines: { node: '>=14.14' } + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} fs-extra@9.1.0: - resolution: - { - integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} + engines: {node: '>=10'} fs-jetpack@5.1.0: - resolution: - { - integrity: sha512-Xn4fDhLydXkuzepZVsr02jakLlmoARPy+YWIclo4kh0GyNGUHnTqeH/w/qIsVn50dFxtp8otPL2t/HcPJBbxUA==, - } + resolution: {integrity: sha512-Xn4fDhLydXkuzepZVsr02jakLlmoARPy+YWIclo4kh0GyNGUHnTqeH/w/qIsVn50dFxtp8otPL2t/HcPJBbxUA==} fs-monkey@1.1.0: - resolution: - { - integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==, - } + resolution: {integrity: sha512-QMUezzXWII9EV5aTFXW1UBVUO77wYPpjqIF8/AviUCThNeSYZykpoTixUeaNNBwmCev0AMDWMAni+f8Hxb1IFw==} fs.realpath@1.0.0: - resolution: - { - integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==, - } + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} fsevents@2.3.2: - resolution: - { - integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] fsevents@2.3.3: - resolution: - { - integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, - } - engines: { node: ^8.16.0 || ^10.6.0 || >=11.0.0 } + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] function-bind@1.1.2: - resolution: - { - integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, - } + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} function.prototype.name@1.1.8: - resolution: - { - integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} + engines: {node: '>= 0.4'} functions-have-names@1.2.3: - resolution: - { - integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==, - } + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} fuzzy@0.1.3: - resolution: - { - integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==, - } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-/gZffu4ykarLrCiP3Ygsa86UAo1E5vEVlvTrpkKywXSbP9Xhln3oSp9QSV57gEq3JFFpGJ4GZ+5zdEp3FcUh4w==} + engines: {node: '>= 0.6.0'} gaxios@6.7.1: - resolution: - { - integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==} + engines: {node: '>=14'} gcp-metadata@6.1.1: - resolution: - { - integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==} + engines: {node: '>=14'} generic-pool@3.9.0: - resolution: - { - integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-hymDOu5B53XvN4QT9dBmZxPX4CWhBPPLguTZ9MMFeFa/Kg0xWVfylOVNlJji/E7yTZWFd/q9GO5TxDLq156D7g==} + engines: {node: '>= 4'} gensync@1.0.0-beta.2: - resolution: - { - integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==, - } - engines: { node: '>=6.9.0' } + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} + engines: {node: '>=6.9.0'} get-caller-file@2.0.5: - resolution: - { - integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==, - } - engines: { node: 6.* || 8.* || >= 10.* } + resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} + engines: {node: 6.* || 8.* || >= 10.*} get-intrinsic@1.3.0: - resolution: - { - integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} get-nonce@1.0.1: - resolution: - { - integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} + engines: {node: '>=6'} get-package-type@0.1.0: - resolution: - { - integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} + engines: {node: '>=8.0.0'} get-proto@1.0.1: - resolution: - { - integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} get-stream@6.0.1: - resolution: - { - integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} get-stream@8.0.1: - resolution: - { - integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} + engines: {node: '>=16'} get-symbol-description@1.1.0: - resolution: - { - integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} + engines: {node: '>= 0.4'} get-tsconfig@4.10.1: - resolution: - { - integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==, - } + resolution: {integrity: sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ==} get-uri@6.0.5: - resolution: - { - integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-b1O07XYq8eRuVzBNgJLstU6FYc1tS6wnMtF1I1D9lE8LxZSOGZ7LhxN54yPP6mGw5f2CkXY2BQUL9Fx41qvcIg==} + engines: {node: '>= 14'} getopts@2.3.0: - resolution: - { - integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==, - } + resolution: {integrity: sha512-5eDf9fuSXwxBL6q5HX+dhDj+dslFGWzU5thZ9kNKUkcPtaPdatmUFKwHFrLb/uf/WpA4BHET+AX3Scl56cAjpA==} github-slugger@2.0.0: - resolution: - { - integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==, - } + resolution: {integrity: sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw==} glob-base@0.3.0: - resolution: - { - integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-ab1S1g1EbO7YzauaJLkgLp7DZVAqj9M/dvKlTt8DkXA2tiOIcSMrlVI2J1RZyB5iJVccEscjGn+kpOG9788MHA==} + engines: {node: '>=0.10.0'} glob-parent@2.0.0: - resolution: - { - integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==, - } + resolution: {integrity: sha512-JDYOvfxio/t42HKdxkAYaCiBN7oYiuxykOxKxdaUW5Qn0zaYN3gRQWolrwdnf0shM9/EP0ebuuTmyoXNr1cC5w==} glob-parent@5.1.2: - resolution: - { - integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} glob-to-regexp@0.4.1: - resolution: - { - integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==, - } + resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} glob@10.4.5: - resolution: - { - integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==, - } + resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@10.5.0: - resolution: - { - integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==, - } + resolution: {integrity: sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@11.0.3: - resolution: - { - integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==} + engines: {node: 20 || >=22} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me hasBin: true glob@7.2.3: - resolution: - { - integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==, - } - deprecated: Glob versions prior to v9 are no longer supported + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@8.1.0: - resolution: - { - integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me glob@9.3.5: - resolution: - { - integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} + deprecated: Old versions of glob are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me global-dirs@3.0.1: - resolution: - { - integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA==} + engines: {node: '>=10'} globals@15.15.0: - resolution: - { - integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} globalthis@1.0.4: - resolution: - { - integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} globby@10.0.2: - resolution: - { - integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} + engines: {node: '>=8'} globby@11.1.0: - resolution: - { - integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} globrex@0.1.2: - resolution: - { - integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==, - } + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} google-auth-library@9.15.1: - resolution: - { - integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-Jb6Z0+nvECVz+2lzSMt9u98UsoakXxA2HGHMCxh+so3n90XgYWkq5dur19JAJV7ONiJY22yBTyJB1TSkvPq9Ng==} + engines: {node: '>=14'} google-logging-utils@0.0.2: - resolution: - { - integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==} + engines: {node: '>=14'} googleapis-common@7.2.0: - resolution: - { - integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-/fhDZEJZvOV3X5jmD+fKxMqma5q2Q9nZNSF3kn1F18tpxmA86BcTxAGBQdM0N89Z3bEaIs+HVznSmFJEAmMTjA==} + engines: {node: '>=14.0.0'} gopd@1.2.0: - resolution: - { - integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} graceful-fs@4.2.11: - resolution: - { - integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==, - } + resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} gradient-string@2.0.2: - resolution: - { - integrity: sha512-rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-rEDCuqUQ4tbD78TpzsMtt5OIf0cBCSDWSJtUDaF6JsAh+k0v9r++NzxNEG87oDZx9ZwGhD8DaezR2L/yrw0Jdw==} + engines: {node: '>=10'} graphile-config@0.0.1-beta.17: - resolution: - { - integrity: sha512-1fQ7BK0SxhqirCulUYD7Z0P7zCPfR9QT0NciOKJngTOSqEsJxefY9pLf7ml8M+Mrn+wBrTQO5+55ch9K/tKr6A==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-1fQ7BK0SxhqirCulUYD7Z0P7zCPfR9QT0NciOKJngTOSqEsJxefY9pLf7ml8M+Mrn+wBrTQO5+55ch9K/tKr6A==} + engines: {node: '>=16'} graphile-worker@0.16.6: - resolution: - { - integrity: sha512-e7gGYDmGqzju2l83MpzX8vNG/lOtVJiSzI3eZpAFubSxh/cxs7sRrRGBGjzBP1kNG0H+c95etPpNRNlH65PYhw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-e7gGYDmGqzju2l83MpzX8vNG/lOtVJiSzI3eZpAFubSxh/cxs7sRrRGBGjzBP1kNG0H+c95etPpNRNlH65PYhw==} + engines: {node: '>=14.0.0'} hasBin: true graphql@16.11.0: - resolution: - { - integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==, - } - engines: { node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0 } + resolution: {integrity: sha512-mS1lbMsxgQj6hge1XZ6p7GPhbrtFwUFYi3wRzXAC/FmYnyXMTvvI3td3rjmQ2u8ewXueaSvRPWaEcgVVOT9Jnw==} + engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} gtoken@7.1.0: - resolution: - { - integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-pCcEwRi+TKpMlxAQObHDQ56KawURgyAf6jtIY046fJ5tIv3zDe/LEIubckAO8fj6JnAxLdmWkUfNyulQ2iKdEw==} + engines: {node: '>=14.0.0'} hachure-fill@0.5.2: - resolution: - { - integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==, - } + resolution: {integrity: sha512-3GKBOn+m2LX9iq+JC1064cSFprJY4jL1jCXTcpnfER5HYE2l/4EfWSGzkPa/ZDBmYI0ZOEj5VHV/eKnPGkHuOg==} handlebars@4.7.8: - resolution: - { - integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==, - } - engines: { node: '>=0.4.7' } + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} + engines: {node: '>=0.4.7'} hasBin: true has-bigints@1.1.0: - resolution: - { - integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@3.0.0: - resolution: - { - integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} + engines: {node: '>=4'} has-flag@4.0.0: - resolution: - { - integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} has-property-descriptors@1.0.2: - resolution: - { - integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==, - } + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} has-proto@1.2.0: - resolution: - { - integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} has-symbols@1.1.0: - resolution: - { - integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} has-tostringtag@1.0.2: - resolution: - { - integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} hasha@5.2.2: - resolution: - { - integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==} + engines: {node: '>=8'} hashish@0.0.4: - resolution: - { - integrity: sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==, - } + resolution: {integrity: sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==} hasown@2.0.2: - resolution: - { - integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} hast-util-embedded@3.0.0: - resolution: - { - integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==, - } + resolution: {integrity: sha512-naH8sld4Pe2ep03qqULEtvYr7EjrLK2QHY8KJR6RJkTUjPGObe1vnx585uzem2hGra+s1q08DZZpfgDVYRbaXA==} hast-util-format@1.1.0: - resolution: - { - integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==, - } + resolution: {integrity: sha512-yY1UDz6bC9rDvCWHpx12aIBGRG7krurX0p0Fm6pT547LwDIZZiNr8a+IHDogorAdreULSEzP82Nlv5SZkHZcjA==} hast-util-from-dom@5.0.1: - resolution: - { - integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==, - } + resolution: {integrity: sha512-N+LqofjR2zuzTjCPzyDUdSshy4Ma6li7p/c3pA78uTwzFgENbgbUrm2ugwsOdcjI1muO+o6Dgzp9p8WHtn/39Q==} hast-util-from-html-isomorphic@2.0.0: - resolution: - { - integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==, - } + resolution: {integrity: sha512-zJfpXq44yff2hmE0XmwEOzdWin5xwH+QIhMLOScpX91e/NSGPsAzNCvLQDIEPyO2TXi+lBmU6hjLIhV8MwP2kw==} hast-util-from-html@2.0.3: - resolution: - { - integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==, - } + resolution: {integrity: sha512-CUSRHXyKjzHov8yKsQjGOElXy/3EKpyX56ELnkHH34vDVw1N1XSQ1ZcAvTyAPtGqLTuKP/uxM+aLkSPqF/EtMw==} hast-util-from-parse5@8.0.3: - resolution: - { - integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==, - } + resolution: {integrity: sha512-3kxEVkEKt0zvcZ3hCRYI8rqrgwtlIOFMWkbclACvjlDw8Li9S2hk/d51OI0nr/gIpdMHNepwgOKqZ/sy0Clpyg==} hast-util-has-property@3.0.0: - resolution: - { - integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==, - } + resolution: {integrity: sha512-MNilsvEKLFpV604hwfhVStK0usFY/QmM5zX16bo7EjnAEGofr5YyI37kzopBlZJkHD4t887i+q/C8/tr5Q94cA==} hast-util-is-body-ok-link@3.0.1: - resolution: - { - integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==, - } + resolution: {integrity: sha512-0qpnzOBLztXHbHQenVB8uNuxTnm/QBFUOmdOSsEn7GnBtyY07+ENTWVFBAnXd/zEgd9/SUG3lRY7hSIBWRgGpQ==} hast-util-is-element@3.0.0: - resolution: - { - integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==, - } + resolution: {integrity: sha512-Val9mnv2IWpLbNPqc/pUem+a7Ipj2aHacCwgNfTiK0vJKl0LF+4Ba4+v1oPHFpf3bLYmreq0/l3Gud9S5OH42g==} hast-util-minify-whitespace@1.0.1: - resolution: - { - integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==, - } + resolution: {integrity: sha512-L96fPOVpnclQE0xzdWb/D12VT5FabA7SnZOUMtL1DbXmYiHJMXZvFkIZfiMmTCNJHUeO2K9UYNXoVyfz+QHuOw==} hast-util-parse-selector@4.0.0: - resolution: - { - integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==, - } + resolution: {integrity: sha512-wkQCkSYoOGCRKERFWcxMVMOcYE2K1AaNLU8DXS9arxnLOUEWbOXKXiJUNzEpqZ3JOKpnha3jkFrumEjVliDe7A==} hast-util-phrasing@3.0.1: - resolution: - { - integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==, - } + resolution: {integrity: sha512-6h60VfI3uBQUxHqTyMymMZnEbNl1XmEGtOxxKYL7stY2o601COo62AWAYBQR9lZbYXYSBoxag8UpPRXK+9fqSQ==} hast-util-raw@9.1.0: - resolution: - { - integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==, - } + resolution: {integrity: sha512-Y8/SBAHkZGoNkpzqqfCldijcuUKh7/su31kEBp67cFY09Wy0mTRgtsLYsiIxMJxlu0f6AA5SUTbDR8K0rxnbUw==} hast-util-to-estree@3.1.3: - resolution: - { - integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==, - } + resolution: {integrity: sha512-48+B/rJWAp0jamNbAAf9M7Uf//UVqAoMmgXhBdxTDJLGKY+LRnZ99qcG+Qjl5HfMpYNzS5v4EAwVEF34LeAj7w==} hast-util-to-html@9.0.5: - resolution: - { - integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==, - } + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} hast-util-to-jsx-runtime@2.3.6: - resolution: - { - integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==, - } + resolution: {integrity: sha512-zl6s8LwNyo1P9uw+XJGvZtdFF1GdAkOg8ujOw+4Pyb76874fLps4ueHXDhXWdk6YHQ6OgUtinliG7RsYvCbbBg==} hast-util-to-mdast@10.1.2: - resolution: - { - integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==, - } + resolution: {integrity: sha512-FiCRI7NmOvM4y+f5w32jPRzcxDIz+PUqDwEqn1A+1q2cdp3B8Gx7aVrXORdOKjMNDQsD1ogOr896+0jJHW1EFQ==} hast-util-to-nlcst@4.0.0: - resolution: - { - integrity: sha512-+YxIJMLJe+2AEhJeJHXZu1VuhApzjD9dLlWOLTS9kUusHfxKsyqRSnSF/YEu4h0uvzwSC0wPqFwIb9GSnK/chQ==, - } + resolution: {integrity: sha512-+YxIJMLJe+2AEhJeJHXZu1VuhApzjD9dLlWOLTS9kUusHfxKsyqRSnSF/YEu4h0uvzwSC0wPqFwIb9GSnK/chQ==} hast-util-to-parse5@8.0.0: - resolution: - { - integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==, - } + resolution: {integrity: sha512-3KKrV5ZVI8if87DVSi1vDeByYrkGzg4mEfeu4alwgmmIeARiBLKCZS2uw5Gb6nU9x9Yufyj3iudm6i7nl52PFw==} hast-util-to-string@2.0.0: - resolution: - { - integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==, - } + resolution: {integrity: sha512-02AQ3vLhuH3FisaMM+i/9sm4OXGSq1UhOOCpTLLQtHdL3tZt7qil69r8M8iDkZYyC0HCFylcYoP+8IO7ddta1A==} hast-util-to-string@3.0.1: - resolution: - { - integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==, - } + resolution: {integrity: sha512-XelQVTDWvqcl3axRfI0xSeoVKzyIFPwsAGSLIsKdJKQMXDYJS4WYrBNF/8J7RdhIcFI2BOHgAifggsvsxp/3+A==} hast-util-to-text@4.0.2: - resolution: - { - integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==, - } + resolution: {integrity: sha512-KK6y/BN8lbaq654j7JgBydev7wuNMcID54lkRav1P0CaE1e47P72AWWPiGKXTJU271ooYzcvTAn/Zt0REnvc7A==} hast-util-whitespace@3.0.0: - resolution: - { - integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==, - } + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} hastscript@9.0.1: - resolution: - { - integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==, - } + resolution: {integrity: sha512-g7df9rMFX/SPi34tyGCyUBREQoKkapwdY/T04Qn9TDWfHhAYt4/I0gMVirzK5wEzeUqIjEB+LXC/ypb7Aqno5w==} header-case@1.0.1: - resolution: - { - integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==, - } + resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} headers-polyfill@4.0.3: - resolution: - { - integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==, - } + resolution: {integrity: sha512-IScLbePpkvO846sIwOtOTDjutRMWdXdJmXdMvk6gCBHxFO8d+QKOQedyZSxFTTFYRSmlgSTDtXqqq4pcenBXLQ==} help-me@5.0.0: - resolution: - { - integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==, - } + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} hoist-non-react-statics@3.3.2: - resolution: - { - integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==, - } + resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} hono@4.9.7: - resolution: - { - integrity: sha512-t4Te6ERzIaC48W3x4hJmBwgNlLhmiEdEE5ViYb02ffw4ignHNHa5IBtPjmbKstmtKa8X6C35iWwK4HaqvrzG9w==, - } - engines: { node: '>=16.9.0' } + resolution: {integrity: sha512-t4Te6ERzIaC48W3x4hJmBwgNlLhmiEdEE5ViYb02ffw4ignHNHa5IBtPjmbKstmtKa8X6C35iWwK4HaqvrzG9w==} + engines: {node: '>=16.9.0'} hosted-git-info@2.8.9: - resolution: - { - integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==, - } + resolution: {integrity: sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==} html-encoding-sniffer@4.0.0: - resolution: - { - integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} + engines: {node: '>=18'} html-escaper@2.0.2: - resolution: - { - integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==, - } + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} html-to-text@9.0.5: - resolution: - { - integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-qY60FjREgVZL03vJU6IfMV4GDjGBIoOyvuFdpBDIX9yTlDw0TjxVBQp+P8NvpdIXNJvfWBTNul7fsAQJq2FNpg==} + engines: {node: '>=14'} html-url-attributes@3.0.1: - resolution: - { - integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==, - } + resolution: {integrity: sha512-ol6UPyBWqsrO6EJySPz2O7ZSr856WDrEzM5zMqp+FJJLGMW35cLYmmZnl0vztAZxRUoNZJFTCohfjuIJ8I4QBQ==} html-void-elements@3.0.0: - resolution: - { - integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==, - } + resolution: {integrity: sha512-bEqo66MRXsUGxWHV5IP0PUiAWwoEjba4VCzg0LjFJBpchPaTfyfCKTG6bc5F8ucKec3q5y6qOdGyYTSBEvhCrg==} html-whitespace-sensitive-tag-names@3.0.1: - resolution: - { - integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==, - } + resolution: {integrity: sha512-q+310vW8zmymYHALr1da4HyXUQ0zgiIwIicEfotYPWGN0OJVEN/58IJ3A4GBYcEq3LGAZqKb+ugvP0GNB9CEAA==} html@1.0.0: - resolution: - { - integrity: sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==, - } + resolution: {integrity: sha512-lw/7YsdKiP3kk5PnR1INY17iJuzdAtJewxr14ozKJWbbR97znovZ0mh+WEMZ8rjc3lgTK+ID/htTjuyGKB52Kw==} hasBin: true htmlparser2@8.0.2: - resolution: - { - integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==, - } + resolution: {integrity: sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==} http-proxy-agent@7.0.0: - resolution: - { - integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==} + engines: {node: '>= 14'} http-proxy-agent@7.0.2: - resolution: - { - integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} + engines: {node: '>= 14'} https-proxy-agent@5.0.1: - resolution: - { - integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==} + engines: {node: '>= 6'} https-proxy-agent@7.0.0: - resolution: - { - integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-0euwPCRyAPSgGdzD1IVN9nJYHtBhJwb6XPfbpQcYbPCwrBidX6GzxmchnaF4sfF/jPb74Ojx5g4yTg3sixlyPw==} + engines: {node: '>= 14'} https-proxy-agent@7.0.6: - resolution: - { - integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} + engines: {node: '>= 14'} human-signals@2.1.0: - resolution: - { - integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==, - } - engines: { node: '>=10.17.0' } + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} human-signals@4.3.1: - resolution: - { - integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==, - } - engines: { node: '>=14.18.0' } + resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==} + engines: {node: '>=14.18.0'} human-signals@5.0.0: - resolution: - { - integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==, - } - engines: { node: '>=16.17.0' } + resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} + engines: {node: '>=16.17.0'} husky@8.0.3: - resolution: - { - integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==} + engines: {node: '>=14'} hasBin: true iconv-lite@0.4.24: - resolution: - { - integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} + engines: {node: '>=0.10.0'} iconv-lite@0.6.3: - resolution: - { - integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} + engines: {node: '>=0.10.0'} ieee754@1.2.1: - resolution: - { - integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==, - } + resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} ignore-walk@3.0.4: - resolution: - { - integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==, - } + resolution: {integrity: sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==} ignore-walk@5.0.1: - resolution: - { - integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + resolution: {integrity: sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} ignore@5.3.2: - resolution: - { - integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} image-size@2.0.2: - resolution: - { - integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==, - } - engines: { node: '>=16.x' } + resolution: {integrity: sha512-IRqXKlaXwgSMAMtpNzZa1ZAe8m+Sa1770Dhk8VkSsP9LS+iHD62Zd8FQKs8fbPiagBE7BzoFX23cxFnwshpV6w==} + engines: {node: '>=16.x'} hasBin: true import-fresh@3.3.1: - resolution: - { - integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} import-in-the-middle@1.14.2: - resolution: - { - integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==, - } + resolution: {integrity: sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==} + + import-in-the-middle@3.0.1: + resolution: {integrity: sha512-pYkiyXVL2Mf3pozdlDGV6NAObxQx13Ae8knZk1UJRJ6uRW/ZRmTGHlQYtrsSl7ubuE5F8CD1z+s1n4RHNuTtuA==} + engines: {node: '>=18'} indent-string@4.0.0: - resolution: - { - integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} + engines: {node: '>=8'} inflight@1.0.6: - resolution: - { - integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==, - } + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. inherits@2.0.4: - resolution: - { - integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==, - } + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} ini@1.3.8: - resolution: - { - integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==, - } + resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} ini@2.0.0: - resolution: - { - integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} + engines: {node: '>=10'} inline-style-parser@0.2.4: - resolution: - { - integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==, - } + resolution: {integrity: sha512-0aO8FkhNZlj/ZIbNi7Lxxr12obT7cL1moPfE4tg1LkX7LlLfC6DeX4l2ZEud1ukP9jNQyNnfzQVqwbwmAATY4Q==} inquirer@7.3.3: - resolution: - { - integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} + engines: {node: '>=8.0.0'} inquirer@8.2.7: - resolution: - { - integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} + engines: {node: '>=12.0.0'} install@0.13.0: - resolution: - { - integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-zDml/jzr2PKU9I8J/xyZBQn8rPCAY//UOYNmR01XwNwyfhEWObo2SWfSl1+0tm1u6PhxLwDnfsT/6jB7OUxqFA==} + engines: {node: '>= 0.10'} internal-slot@1.1.0: - resolution: - { - integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} + engines: {node: '>= 0.4'} internmap@1.0.1: - resolution: - { - integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==, - } + resolution: {integrity: sha512-lDB5YccMydFBtasVtxnZ3MRBHuaoE8GKsppq+EchKL2U4nK/DmEpPHNH8MZe5HkMtpSiTSOZwfN0tzYjO/lJEw==} internmap@2.0.3: - resolution: - { - integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==} + engines: {node: '>=12'} interpret@2.2.0: - resolution: - { - integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==, - } - engines: { node: '>= 0.10' } + resolution: {integrity: sha512-Ju0Bz/cEia55xDwUWEa8+olFpCiQoypjnQySseKtmjNrnps3P+xfpUmGr90T7yjlVJmOtybRvPXhKMbHr+fWnw==} + engines: {node: '>= 0.10'} interpret@3.1.1: - resolution: - { - integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ==} + engines: {node: '>=10.13.0'} ioredis@5.7.0: - resolution: - { - integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==, - } - engines: { node: '>=12.22.0' } + resolution: {integrity: sha512-NUcA93i1lukyXU+riqEyPtSEkyFq8tX90uL659J+qpCZ3rEdViB/APC58oAhIh3+bJln2hzdlZbBZsGNrlsR8g==} + engines: {node: '>=12.22.0'} ip-address@10.0.1: - resolution: - { - integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-NWv9YLW4PoW2B7xtzaS3NCot75m6nK7Icdv0o3lfMceJVRfSoQwqD4wEH5rLwoKJwUiZ/rfpiVBhnaF0FK4HoA==} + engines: {node: '>= 12'} is-alphabetical@2.0.1: - resolution: - { - integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==, - } + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} is-alphanumerical@2.0.1: - resolution: - { - integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==, - } + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} is-array-buffer@3.0.5: - resolution: - { - integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} + engines: {node: '>= 0.4'} is-arrayish@0.2.1: - resolution: - { - integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==, - } + resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-arrayish@0.3.2: - resolution: - { - integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, - } + resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} is-async-function@2.1.1: - resolution: - { - integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} + engines: {node: '>= 0.4'} is-bigint@1.1.0: - resolution: - { - integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} is-binary-path@2.1.0: - resolution: - { - integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} + engines: {node: '>=8'} is-boolean-object@1.2.2: - resolution: - { - integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==} + engines: {node: '>= 0.4'} is-callable@1.2.7: - resolution: - { - integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} + engines: {node: '>= 0.4'} is-core-module@2.16.1: - resolution: - { - integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} + engines: {node: '>= 0.4'} is-data-view@1.0.2: - resolution: - { - integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} + engines: {node: '>= 0.4'} is-date-object@1.1.0: - resolution: - { - integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} + engines: {node: '>= 0.4'} is-decimal@2.0.1: - resolution: - { - integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==, - } + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} is-docker@2.2.1: - resolution: - { - integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} hasBin: true is-docker@3.0.0: - resolution: - { - integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} hasBin: true is-dotfile@1.0.3: - resolution: - { - integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-9YclgOGtN/f8zx0Pr4FQYMdibBiTaH3sn52vjYip4ZSf6C4/6RfTEZ+MR4GvKhCxdPh21Bg42/WL55f6KSnKpg==} + engines: {node: '>=0.10.0'} is-extendable@1.0.1: - resolution: - { - integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==} + engines: {node: '>=0.10.0'} is-extglob@1.0.0: - resolution: - { - integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-7Q+VbVafe6x2T+Tu6NcOf6sRklazEPmBoB3IWk3WdGZM2iGUwU/Oe3Wtq5lSEkDTTlpp8yx+5t4pzO/i9Ty1ww==} + engines: {node: '>=0.10.0'} is-extglob@2.1.1: - resolution: - { - integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} is-finalizationregistry@1.1.1: - resolution: - { - integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} is-fullwidth-code-point@3.0.0: - resolution: - { - integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} + engines: {node: '>=8'} is-fullwidth-code-point@4.0.0: - resolution: - { - integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==} + engines: {node: '>=12'} is-generator-function@1.1.0: - resolution: - { - integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} + engines: {node: '>= 0.4'} is-glob@2.0.1: - resolution: - { - integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-a1dBeB19NXsf/E0+FHqkagizel/LQw2DjSQpvQrj3zT+jYPpaUCryPnrQajXKFLCMuf4I6FhRpaGtw4lPrG6Eg==} + engines: {node: '>=0.10.0'} is-glob@4.0.3: - resolution: - { - integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} is-hexadecimal@2.0.1: - resolution: - { - integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==, - } + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} is-inside-container@1.0.0: - resolution: - { - integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} + engines: {node: '>=14.16'} hasBin: true is-interactive@1.0.0: - resolution: - { - integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==} + engines: {node: '>=8'} is-lower-case@1.1.3: - resolution: - { - integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==, - } + resolution: {integrity: sha512-+5A1e/WJpLLXZEDlgz4G//WYSHyQBD32qa4Jd3Lw06qQlv3fJHnp3YIHjTQSGzHMgzmVKz2ZP3rBxTHkPw/lxA==} is-map@2.0.3: - resolution: - { - integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} is-mobile@4.0.0: - resolution: - { - integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==, - } + resolution: {integrity: sha512-mlcHZA84t1qLSuWkt2v0I2l61PYdyQDt4aG1mLIXF5FDMm4+haBCxCPYSr/uwqQNRk1MiTizn0ypEuRAOLRAew==} is-module@1.0.0: - resolution: - { - integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==, - } + resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==} is-negative-zero@2.0.3: - resolution: - { - integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} is-network-error@1.1.0: - resolution: - { - integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-tUdRRAnhT+OtCZR/LxZelH/C7QtjtFrTu5tXCA8pl55eTUElUHT+GPYV8MBMBvea/j+NxQqVt3LbWMRir7Gx9g==} + engines: {node: '>=16'} is-node-process@1.2.0: - resolution: - { - integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==, - } + resolution: {integrity: sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==} is-number-object@1.1.1: - resolution: - { - integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} + engines: {node: '>= 0.4'} is-number@7.0.0: - resolution: - { - integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==, - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} is-path-cwd@2.2.0: - resolution: - { - integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==} + engines: {node: '>=6'} is-path-inside@3.0.3: - resolution: - { - integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} is-plain-obj@4.1.0: - resolution: - { - integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} + engines: {node: '>=12'} is-plain-object@2.0.4: - resolution: - { - integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==} + engines: {node: '>=0.10.0'} is-port-reachable@4.0.0: - resolution: - { - integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-9UoipoxYmSk6Xy7QFgRv2HDyaysmgSG75TFQs6S+3pDM7ZhKTF/bskZV+0UlABHzKjNVhPjYCLfeZUEg1wXxig==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-potential-custom-element-name@1.0.1: - resolution: - { - integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==, - } + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} is-reference@1.2.1: - resolution: - { - integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==, - } + resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==} is-regex@1.2.1: - resolution: - { - integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} is-set@2.0.3: - resolution: - { - integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} is-shared-array-buffer@1.0.4: - resolution: - { - integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} + engines: {node: '>= 0.4'} is-stream@2.0.1: - resolution: - { - integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} + engines: {node: '>=8'} is-stream@3.0.0: - resolution: - { - integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} is-string@1.1.1: - resolution: - { - integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} + engines: {node: '>= 0.4'} is-symbol@1.1.1: - resolution: - { - integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} + engines: {node: '>= 0.4'} is-typed-array@1.1.15: - resolution: - { - integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} + engines: {node: '>= 0.4'} is-unicode-supported@0.1.0: - resolution: - { - integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} + engines: {node: '>=10'} is-upper-case@1.1.2: - resolution: - { - integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==, - } + resolution: {integrity: sha512-GQYSJMgfeAmVwh9ixyk888l7OIhNAGKtY6QA+IrWlu9MDTCaXmeozOZ2S9Knj7bQwBO/H6J2kb+pbyTUiMNbsw==} is-weakmap@2.0.2: - resolution: - { - integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} is-weakref@1.1.1: - resolution: - { - integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==} + engines: {node: '>= 0.4'} is-weakset@2.0.4: - resolution: - { - integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} + engines: {node: '>= 0.4'} is-windows@1.0.2: - resolution: - { - integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} + engines: {node: '>=0.10.0'} is-wsl@2.2.0: - resolution: - { - integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} is-wsl@3.1.0: - resolution: - { - integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==} + engines: {node: '>=16'} is64bit@2.0.0: - resolution: - { - integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==} + engines: {node: '>=18'} isarray@1.0.0: - resolution: - { - integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==, - } + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} isarray@2.0.5: - resolution: - { - integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==, - } + resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} isbinaryfile@4.0.10: - resolution: - { - integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==, - } - engines: { node: '>= 8.0.0' } + resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} + engines: {node: '>= 8.0.0'} isexe@2.0.0: - resolution: - { - integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==, - } + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} isobject@3.0.1: - resolution: - { - integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} isomorphic.js@0.2.5: - resolution: - { - integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==, - } + resolution: {integrity: sha512-PIeMbHqMt4DnUP3MA/Flc0HElYjMXArsw1qwJZcm9sqR8mq3l8NYizFMty0pWwE/tzIGH3EKK5+jes5mAr85yw==} istanbul-lib-coverage@3.2.2: - resolution: - { - integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} + engines: {node: '>=8'} istanbul-lib-report@3.0.1: - resolution: - { - integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} + engines: {node: '>=10'} istanbul-lib-source-maps@5.0.6: - resolution: - { - integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} + engines: {node: '>=10'} istanbul-reports@3.2.0: - resolution: - { - integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==} + engines: {node: '>=8'} itty-router@5.0.22: - resolution: - { - integrity: sha512-9hmdGErWdYDOurGYxSbqLhy4EFReIwk71hMZTJ5b+zfa2zjMNV1ftFno2b8VjAQvX615gNB8Qxbl9JMRqHnIVA==, - } + resolution: {integrity: sha512-9hmdGErWdYDOurGYxSbqLhy4EFReIwk71hMZTJ5b+zfa2zjMNV1ftFno2b8VjAQvX615gNB8Qxbl9JMRqHnIVA==} jackspeak@3.4.3: - resolution: - { - integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==, - } + resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} jackspeak@4.1.1: - resolution: - { - integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==} + engines: {node: 20 || >=22} jest-worker@26.6.2: - resolution: - { - integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==} + engines: {node: '>= 10.13.0'} jest-worker@27.5.1: - resolution: - { - integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==} + engines: {node: '>= 10.13.0'} jiti@2.5.1: - resolution: - { - integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==, - } + resolution: {integrity: sha512-twQoecYPiVA5K/h6SxtORw/Bs3ar+mLUtoPSc7iMXzQzK8d7eJ/R09wmTwAjiamETn1cXYPGfNnu7DMoHgu12w==} hasBin: true jiti@2.6.1: - resolution: - { - integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==, - } + resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true jotai@1.13.1: - resolution: - { - integrity: sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw==, - } - engines: { node: '>=12.20.0' } + resolution: {integrity: sha512-RUmH1S4vLsG3V6fbGlKzGJnLrDcC/HNb5gH2AeA9DzuJknoVxSGvvg8OBB7lke+gDc4oXmdVsaKn/xDUhWZ0vw==} + engines: {node: '>=12.20.0'} peerDependencies: '@babel/core': '*' '@babel/template': '*' @@ -15359,37 +10640,22 @@ packages: optional: true joycon@3.1.1: - resolution: - { - integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} js-tokens@4.0.0: - resolution: - { - integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==, - } + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} js-tokens@9.0.1: - resolution: - { - integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, - } + resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} js-yaml@4.1.0: - resolution: - { - integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==, - } + resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true jsdom@25.0.1: - resolution: - { - integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + engines: {node: '>=18'} peerDependencies: canvas: ^2.11.2 peerDependenciesMeta: @@ -15397,183 +10663,105 @@ packages: optional: true jsep@1.4.0: - resolution: - { - integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==, - } - engines: { node: '>= 10.16.0' } + resolution: {integrity: sha512-B7qPcEVE3NVkmSJbaYxvv4cHkVW7DQsZz13pUMrfS8z8Q/BuShN+gcTXrUlPiGqM2/t/EEaI030bpxMqY8gMlw==} + engines: {node: '>= 10.16.0'} jsesc@3.0.2: - resolution: - { - integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + engines: {node: '>=6'} hasBin: true jsesc@3.1.0: - resolution: - { - integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} + engines: {node: '>=6'} hasBin: true json-bigint@1.0.0: - resolution: - { - integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==, - } + resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==} json-parse-even-better-errors@2.3.1: - resolution: - { - integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==, - } + resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} json-schema-traverse@0.4.1: - resolution: - { - integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==, - } + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} json-schema-traverse@1.0.0: - resolution: - { - integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, - } + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==} json5@2.2.3: - resolution: - { - integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} hasBin: true jsonata@2.1.0: - resolution: - { - integrity: sha512-OCzaRMK8HobtX8fp37uIVmL8CY1IGc/a6gLsDqz3quExFR09/U78HUzWYr7T31UEB6+Eu0/8dkVD5fFDOl9a8w==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-OCzaRMK8HobtX8fp37uIVmL8CY1IGc/a6gLsDqz3quExFR09/U78HUzWYr7T31UEB6+Eu0/8dkVD5fFDOl9a8w==} + engines: {node: '>= 8'} jsondiffpatch@0.4.1: - resolution: - { - integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==, - } - engines: { node: '>=8.17.0' } + resolution: {integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==} + engines: {node: '>=8.17.0'} hasBin: true bundledDependencies: [] jsonfile@6.2.0: - resolution: - { - integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==, - } + resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} jsonpath-plus@10.3.0: - resolution: - { - integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-8TNmfeTCk2Le33A3vRRwtuworG/L5RrgMvdjhKZxvyShO+mBu2fP50OWUjRLNtvw344DdDarFh9buFAZs5ujeA==} + engines: {node: '>=18.0.0'} hasBin: true jsonwebtoken@9.0.2: - resolution: - { - integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==, - } - engines: { node: '>=12', npm: '>=6' } + resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} + engines: {node: '>=12', npm: '>=6'} jwa@1.4.2: - resolution: - { - integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==, - } + resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==} jwa@2.0.1: - resolution: - { - integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==, - } + resolution: {integrity: sha512-hRF04fqJIP8Abbkq5NKGN0Bbr3JxlQ+qhZufXVr0DvujKy93ZCbXZMHDL4EOtodSbCWxOqR8MS1tXA5hwqCXDg==} jws@3.2.2: - resolution: - { - integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==, - } + resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==} jws@4.0.0: - resolution: - { - integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==, - } + resolution: {integrity: sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==} kanel-kysely@0.4.0: - resolution: - { - integrity: sha512-kPvF7Miw9PzIH6I71sQPTqKHQUCKa22G7OlJrFODvDAyr5abih9a5GZNaKif3iSorz/GfEQVc1W4TEnVws2xJw==, - } + resolution: {integrity: sha512-kPvF7Miw9PzIH6I71sQPTqKHQUCKa22G7OlJrFODvDAyr5abih9a5GZNaKif3iSorz/GfEQVc1W4TEnVws2xJw==} kanel-zod@1.5.2: - resolution: - { - integrity: sha512-XDbuTLIsyppKnRDesT8W84qmGOa3Klif5sHeZh+5RUONyDESY8r0Gu8bsRQ7wgChIaZIHvPTsqbVgSqZtlC5zg==, - } + resolution: {integrity: sha512-XDbuTLIsyppKnRDesT8W84qmGOa3Klif5sHeZh+5RUONyDESY8r0Gu8bsRQ7wgChIaZIHvPTsqbVgSqZtlC5zg==} kanel@3.14.4: - resolution: - { - integrity: sha512-yUs537wd8W2DBjbxExHJqWMP4tkmEQgsE5hUHlC3ACuN+pfeszMJpFmbUVpDKgwVeLj0V6ZvFtwoYp8/xsoQOg==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-yUs537wd8W2DBjbxExHJqWMP4tkmEQgsE5hUHlC3ACuN+pfeszMJpFmbUVpDKgwVeLj0V6ZvFtwoYp8/xsoQOg==} + engines: {node: '>=16.0.0'} hasBin: true katex@0.16.22: - resolution: - { - integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==, - } + resolution: {integrity: sha512-XCHRdUw4lf3SKBaJe4EvgqIuWwkPSo9XoeO8GjQW94Bp7TWv9hNhzZjZ+OH9yf1UmLygb7DIT5GSFQiyt16zYg==} hasBin: true khroma@2.1.0: - resolution: - { - integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==, - } + resolution: {integrity: sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw==} kleur@3.0.3: - resolution: - { - integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} + engines: {node: '>=6'} kleur@4.1.5: - resolution: - { - integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==} + engines: {node: '>=6'} knex-pglite@0.12.0: - resolution: - { - integrity: sha512-EsTpIJ8D1SaFm5sVNqKf+Q57bnPGVEpVWwZXXxGrzDyIwtHOwAnd59dY8izkR/nJt8OFrLHMudqaPKfXajOHsA==, - } + resolution: {integrity: sha512-EsTpIJ8D1SaFm5sVNqKf+Q57bnPGVEpVWwZXXxGrzDyIwtHOwAnd59dY8izkR/nJt8OFrLHMudqaPKfXajOHsA==} peerDependencies: '@electric-sql/pglite': 0.x knex: 3.x knex@3.1.0: - resolution: - { - integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-GLoII6hR0c4ti243gMs5/1Rb3B+AjwMOfjYm97pu0FOQa7JH56hgBxYf5WK2525ceSbBY1cjeZ9yk99GPMB6Kw==} + engines: {node: '>=16'} hasBin: true peerDependencies: better-sqlite3: '*' @@ -15600,307 +10788,193 @@ packages: optional: true kolorist@1.8.0: - resolution: - { - integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==, - } + resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==} kysely@0.27.6: - resolution: - { - integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-FIyV/64EkKhJmjgC0g2hygpBv5RNWVPyNCqSAD7eTCv6eFWNIi4PN1UvdSJGicN/o35bnevgis4Y0UDC0qi8jQ==} + engines: {node: '>=14.0.0'} langium@3.3.1: - resolution: - { - integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-QJv/h939gDpvT+9SiLVlY7tZC3xB2qK57v0J04Sh9wpMb6MP1q8gB21L3WIo8T5P1MSMg3Ep14L7KkDCFG3y4w==} + engines: {node: '>=16.0.0'} layout-base@1.0.2: - resolution: - { - integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==, - } + resolution: {integrity: sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg==} layout-base@2.0.1: - resolution: - { - integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==, - } + resolution: {integrity: sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg==} lazystream@1.0.1: - resolution: - { - integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==, - } - engines: { node: '>= 0.6.3' } + resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==} + engines: {node: '>= 0.6.3'} leac@0.6.0: - resolution: - { - integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==, - } + resolution: {integrity: sha512-y+SqErxb8h7nE/fiEX07jsbuhrpO9lL8eca7/Y1nuWV2moNlXhyd59iDGcRf6moVyDMbmTNzL40SUyrFU/yDpg==} levn@0.4.1: - resolution: - { - integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} lexical@0.23.1: - resolution: - { - integrity: sha512-iuS72HcAYUemsCRQCm4XZzkGhZb8a9KagW+ee2TFfkkf9f3ZpUYSrobMpjYVZRkgMOx7Zk5VCPMxm1nouJTfnQ==, - } + resolution: {integrity: sha512-iuS72HcAYUemsCRQCm4XZzkGhZb8a9KagW+ee2TFfkkf9f3ZpUYSrobMpjYVZRkgMOx7Zk5VCPMxm1nouJTfnQ==} lib0@0.2.114: - resolution: - { - integrity: sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-gcxmNFzA4hv8UYi8j43uPlQ7CGcyMJ2KQb5kZASw6SnAKAf10hK12i2fjrS3Cl/ugZa5Ui6WwIu1/6MIXiHttQ==} + engines: {node: '>=16'} hasBin: true lightningcss-android-arm64@1.30.2: - resolution: - { - integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [android] lightningcss-darwin-arm64@1.30.1: - resolution: - { - integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-c8JK7hyE65X1MHMN+Viq9n11RRC7hgin3HhYKhrMyaXflk5GVplZ60IxyoVtzILeKr+xAJwg6zK6sjTBJ0FKYQ==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] lightningcss-darwin-arm64@1.30.2: - resolution: - { - integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [darwin] lightningcss-darwin-x64@1.30.1: - resolution: - { - integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-k1EvjakfumAQoTfcXUcHQZhSpLlkAuEkdMBsI/ivWw9hL+7FtilQc0Cy3hrx0AAQrVtQAbMI7YjCgYgvn37PzA==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] lightningcss-darwin-x64@1.30.2: - resolution: - { - integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [darwin] lightningcss-freebsd-x64@1.30.1: - resolution: - { - integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-kmW6UGCGg2PcyUE59K5r0kWfKPAVy4SltVeut+umLCFoJ53RdCUWxcRDzO1eTaxf/7Q2H7LTquFHPL5R+Gjyig==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] lightningcss-freebsd-x64@1.30.2: - resolution: - { - integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [freebsd] lightningcss-linux-arm-gnueabihf@1.30.1: - resolution: - { - integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-MjxUShl1v8pit+6D/zSPq9S9dQ2NPFSQwGvxBCYaBYLPlCWuPh9/t1MRS8iUaR8i+a6w7aps+B4N0S1TYP/R+Q==} + engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] lightningcss-linux-arm-gnueabihf@1.30.2: - resolution: - { - integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} + engines: {node: '>= 12.0.0'} cpu: [arm] os: [linux] lightningcss-linux-arm64-gnu@1.30.1: - resolution: - { - integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-gB72maP8rmrKsnKYy8XUuXi/4OctJiuQjcuqWNlJQ6jZiWqtPvqFziskH3hnajfvKB27ynbVCucKSm2rkQp4Bw==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] lightningcss-linux-arm64-gnu@1.30.2: - resolution: - { - integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] lightningcss-linux-arm64-musl@1.30.1: - resolution: - { - integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-jmUQVx4331m6LIX+0wUhBbmMX7TCfjF5FoOH6SD1CttzuYlGNVpA7QnrmLxrsub43ClTINfGSYyHe2HWeLl5CQ==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] lightningcss-linux-arm64-musl@1.30.2: - resolution: - { - integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [linux] lightningcss-linux-x64-gnu@1.30.1: - resolution: - { - integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-piWx3z4wN8J8z3+O5kO74+yr6ze/dKmPnI7vLqfSqI8bccaTGY5xiSGVIJBDd5K5BHlvVLpUB3S2YCfelyJ1bw==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] lightningcss-linux-x64-gnu@1.30.2: - resolution: - { - integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] lightningcss-linux-x64-musl@1.30.1: - resolution: - { - integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-rRomAK7eIkL+tHY0YPxbc5Dra2gXlI63HL+v1Pdi1a3sC+tJTcFrHX+E86sulgAXeI7rSzDYhPSeHHjqFhqfeQ==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] lightningcss-linux-x64-musl@1.30.2: - resolution: - { - integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [linux] lightningcss-win32-arm64-msvc@1.30.1: - resolution: - { - integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-mSL4rqPi4iXq5YVqzSsJgMVFENoa4nGTT/GjO2c0Yl9OuQfPsIfncvLrEW6RbbB24WtZ3xP/2CCmI3tNkNV4oA==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] lightningcss-win32-arm64-msvc@1.30.2: - resolution: - { - integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} + engines: {node: '>= 12.0.0'} cpu: [arm64] os: [win32] lightningcss-win32-x64-msvc@1.30.1: - resolution: - { - integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-PVqXh48wh4T53F/1CCu8PIPCxLzWyCnn/9T5W1Jpmdy5h9Cwd+0YQS6/LwhHXSafuc61/xg9Lv5OrCby6a++jg==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] lightningcss-win32-x64-msvc@1.30.2: - resolution: - { - integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} + engines: {node: '>= 12.0.0'} cpu: [x64] os: [win32] lightningcss@1.30.1: - resolution: - { - integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-xi6IyHML+c9+Q3W0S4fCQJOym42pyurFiJUHEcEyHS0CeKzia4yZDEsLlqOFykxOdHpNy0NmvVO31vcSqAxJCg==} + engines: {node: '>= 12.0.0'} lightningcss@1.30.2: - resolution: - { - integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} + engines: {node: '>= 12.0.0'} lilconfig@2.1.0: - resolution: - { - integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} + engines: {node: '>=10'} lines-and-columns@1.2.4: - resolution: - { - integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==, - } + resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} linkify-it@5.0.0: - resolution: - { - integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==, - } + resolution: {integrity: sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==} lint-staged@13.3.0: - resolution: - { - integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==, - } - engines: { node: ^16.14.0 || >=18.0.0 } + resolution: {integrity: sha512-mPRtrYnipYYv1FEE134ufbWpeggNTo+O/UPzngoaKzbzHAthvR55am+8GfHTnqNRQVRRrYQLGW9ZyUoD7DsBHQ==} + engines: {node: ^16.14.0 || >=18.0.0} hasBin: true listr2@6.6.1: - resolution: - { - integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==} + engines: {node: '>=16.0.0'} peerDependencies: enquirer: '>= 2.3.0 < 3' peerDependenciesMeta: @@ -15908,1016 +10982,543 @@ packages: optional: true little-state-machine@4.8.1: - resolution: - { - integrity: sha512-liPHqaWMQ7rzZryQUDnbZ1Gclnnai3dIyaJ0nAgwZRXMzqbYrydrlCI0NDojRUbE5VYh5vu6hygEUZiH77nQkQ==, - } + resolution: {integrity: sha512-liPHqaWMQ7rzZryQUDnbZ1Gclnnai3dIyaJ0nAgwZRXMzqbYrydrlCI0NDojRUbE5VYh5vu6hygEUZiH77nQkQ==} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 loader-runner@4.3.0: - resolution: - { - integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==, - } - engines: { node: '>=6.11.5' } + resolution: {integrity: sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==} + engines: {node: '>=6.11.5'} local-pkg@1.1.2: - resolution: - { - integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-arhlxbFRmoQHl33a0Zkle/YWlmNwoyt6QNZEIJcqNbdrsix5Lvc4HyyI3EnwxTYlZYc32EbYrQ8SzEZ7dqgg9A==} + engines: {node: '>=14'} locate-path@5.0.0: - resolution: - { - integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} + engines: {node: '>=8'} locate-path@6.0.0: - resolution: - { - integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} locate-path@7.2.0: - resolution: - { - integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} lodash-es@4.17.21: - resolution: - { - integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==, - } + resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} lodash.camelcase@4.3.0: - resolution: - { - integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==, - } + resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} lodash.castarray@4.4.0: - resolution: - { - integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==, - } + resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==} lodash.curry@4.1.1: - resolution: - { - integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==, - } + resolution: {integrity: sha512-/u14pXGviLaweY5JI0IUzgzF2J6Ne8INyzAZjImcryjgkZ+ebruBxy2/JaOOkTqScddcYtakjhSaeemV8lR0tA==} lodash.debounce@4.0.8: - resolution: - { - integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==, - } + resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==} lodash.defaults@4.2.0: - resolution: - { - integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==, - } + resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==} lodash.difference@4.5.0: - resolution: - { - integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==, - } + resolution: {integrity: sha512-dS2j+W26TQ7taQBGN8Lbbq04ssV3emRw4NY58WErlTO29pIqS0HmoT5aJ9+TUQ1N3G+JOZSji4eugsWwGp9yPA==} lodash.flatten@4.4.0: - resolution: - { - integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==, - } + resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==} lodash.get@4.4.2: - resolution: - { - integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==, - } + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} deprecated: This package is deprecated. Use the optional chaining (?.) operator instead. lodash.includes@4.3.0: - resolution: - { - integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==, - } + resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==} lodash.isarguments@3.1.0: - resolution: - { - integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==, - } + resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==} lodash.isboolean@3.0.3: - resolution: - { - integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==, - } + resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==} lodash.isequalwith@4.4.0: - resolution: - { - integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==, - } + resolution: {integrity: sha512-dcZON0IalGBpRmJBmMkaoV7d3I80R2O+FrzsZyHdNSFrANq/cgDqKQNmAHE8UEj4+QYWwwhkQOVdLHiAopzlsQ==} lodash.isinteger@4.0.4: - resolution: - { - integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==, - } + resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==} lodash.isnumber@3.0.3: - resolution: - { - integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==, - } + resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==} lodash.isplainobject@4.0.6: - resolution: - { - integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==, - } + resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==} lodash.isstring@4.0.1: - resolution: - { - integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==, - } + resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==} lodash.merge@4.6.2: - resolution: - { - integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==, - } + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} lodash.once@4.1.1: - resolution: - { - integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==, - } + resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==} lodash.partition@4.6.0: - resolution: - { - integrity: sha512-35L3dSF3Q6V1w5j6V3NhNlQjzsRDC/pYKCTdYTmwqSib+Q8ponkAmt/PwEOq3EmI38DSCl+SkIVwLd+uSlVdrg==, - } + resolution: {integrity: sha512-35L3dSF3Q6V1w5j6V3NhNlQjzsRDC/pYKCTdYTmwqSib+Q8ponkAmt/PwEOq3EmI38DSCl+SkIVwLd+uSlVdrg==} lodash.union@4.6.0: - resolution: - { - integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==, - } + resolution: {integrity: sha512-c4pB2CdGrGdjMKYLA+XiRDO7Y0PRQbm/Gzg8qMj+QH+pFVAoTp5sBpO0odL3FjoPCGjK96p6qsP+yQoiLoOBcw==} lodash@4.17.21: - resolution: - { - integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==, - } + resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} log-symbols@3.0.0: - resolution: - { - integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==} + engines: {node: '>=8'} log-symbols@4.1.0: - resolution: - { - integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} + engines: {node: '>=10'} log-update@5.0.1: - resolution: - { - integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} long@5.3.2: - resolution: - { - integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==, - } + resolution: {integrity: sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==} longest-streak@3.1.0: - resolution: - { - integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, - } + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} loose-envify@1.4.0: - resolution: - { - integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==, - } + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true loupe@3.2.0: - resolution: - { - integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==, - } + resolution: {integrity: sha512-2NCfZcT5VGVNX9mSZIxLRkEAegDGBpuQZBy13desuHeVORmBDyAET4TkJr4SjqQy3A8JDofMN6LpkK8Xcm/dlw==} lower-case-first@1.0.2: - resolution: - { - integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==, - } + resolution: {integrity: sha512-UuxaYakO7XeONbKrZf5FEgkantPf5DUqDayzP5VXZrtRPdH86s4kN47I8B3TW10S4QKiE3ziHNf3kRN//okHjA==} lower-case@1.1.4: - resolution: - { - integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==, - } + resolution: {integrity: sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==} lru-cache@10.4.3: - resolution: - { - integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==, - } + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} lru-cache@11.1.0: - resolution: - { - integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-QIXZUBJUx+2zHUdQujWejBkcD9+cs94tLn0+YL8UrCh+D5sCXZ4c7LaEH48pNwRY3MLDgqUFyhlCyjJPf1WP0A==} + engines: {node: 20 || >=22} lru-cache@5.1.1: - resolution: - { - integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==, - } + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} lru-cache@7.18.3: - resolution: - { - integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==} + engines: {node: '>=12'} lucia@3.2.2: - resolution: - { - integrity: sha512-P1FlFBGCMPMXu+EGdVD9W4Mjm0DqsusmKgO7Xc33mI5X1bklmsQb0hfzPhXomQr9waWIBDsiOjvr1e6BTaUqpA==, - } + resolution: {integrity: sha512-P1FlFBGCMPMXu+EGdVD9W4Mjm0DqsusmKgO7Xc33mI5X1bklmsQb0hfzPhXomQr9waWIBDsiOjvr1e6BTaUqpA==} deprecated: This package has been deprecated. Please see https://lucia-auth.com/lucia-v3/migrate. lucide-react@0.469.0: - resolution: - { - integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==, - } + resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 lz-string@1.5.0: - resolution: - { - integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==, - } + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true magic-string@0.25.9: - resolution: - { - integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==, - } + resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} magic-string@0.30.17: - resolution: - { - integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==, - } + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} magic-string@0.30.21: - resolution: - { - integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, - } + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} magic-string@0.30.8: - resolution: - { - integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-ISQTe55T2ao7XtlAStud6qwYPZjE4GK1S/BeVPus4jrq6JuOnQ00YKQC581RWhR122W7msZV263KzVeLoqidyQ==} + engines: {node: '>=12'} magicast@0.3.5: - resolution: - { - integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==, - } + resolution: {integrity: sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==} make-dir@3.1.0: - resolution: - { - integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} + engines: {node: '>=8'} make-dir@4.0.0: - resolution: - { - integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} + engines: {node: '>=10'} make-error@1.3.6: - resolution: - { - integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==, - } + resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} markdown-extensions@2.0.0: - resolution: - { - integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-o5vL7aDWatOTX8LzaS1WMoaoxIiLRQJuIKKe2wAw6IeULDHaqbiqiggmx+pKvZDb1Sj+pE46Sn1T7lCqfFtg1Q==} + engines: {node: '>=16'} markdown-it@14.1.0: - resolution: - { - integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==, - } + resolution: {integrity: sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==} hasBin: true markdown-table@3.0.4: - resolution: - { - integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==, - } + resolution: {integrity: sha512-wiYz4+JrLyb/DqW2hkFJxP7Vd7JuTDm77fvbM8VfEQdmSMqcImWeeRbHwZjBjIFki/VaMK2BhFi7oUUZeM5bqw==} marked@14.0.0: - resolution: - { - integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==, - } - engines: { node: '>= 18' } + resolution: {integrity: sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==} + engines: {node: '>= 18'} hasBin: true marked@16.2.0: - resolution: - { - integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==, - } - engines: { node: '>= 20' } + resolution: {integrity: sha512-LbbTuye+0dWRz2TS9KJ7wsnD4KAtpj0MVkWc90XvBa6AslXsT0hTBVH5k32pcSyHH1fst9XEFJunXHktVy0zlg==} + engines: {node: '>= 20'} hasBin: true marked@7.0.4: - resolution: - { - integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==, - } - engines: { node: '>= 16' } + resolution: {integrity: sha512-t8eP0dXRJMtMvBojtkcsA7n48BkauktUKzfkPSCq85ZMTJ0v76Rke4DYz01omYpPTUh4p/f7HePgRo3ebG8+QQ==} + engines: {node: '>= 16'} hasBin: true math-intrinsics@1.1.0: - resolution: - { - integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} mathjax-full@3.2.2: - resolution: - { - integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==, - } + resolution: {integrity: sha512-+LfG9Fik+OuI8SLwsiR02IVdjcnRCy5MufYLi0C3TdMT56L/pjB0alMVGgoWJF8pN9Rc7FESycZB9BMNWIid5w==} deprecated: Version 4 replaces this package with the scoped package @mathjax/src md-to-react-email@5.0.5: - resolution: - { - integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==, - } + resolution: {integrity: sha512-OvAXqwq57uOk+WZqFFNCMZz8yDp8BD3WazW1wAKHUrPbbdr89K9DWS6JXY09vd9xNdPNeurI8DU/X4flcfaD8A==} peerDependencies: react: ^18.0 || ^19.0 mdast-util-directive@3.1.0: - resolution: - { - integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==, - } + resolution: {integrity: sha512-I3fNFt+DHmpWCYAT7quoM6lHf9wuqtI+oCOfvILnoicNIqjh5E3dEJWiXuYME2gNe8vl1iMQwyUHa7bgFmak6Q==} mdast-util-find-and-replace@3.0.2: - resolution: - { - integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==, - } + resolution: {integrity: sha512-Tmd1Vg/m3Xz43afeNxDIhWRtFZgM2VLyaf4vSTYwudTyeuTneoL3qtWMA5jeLyz/O1vDJmmV4QuScFCA2tBPwg==} mdast-util-from-markdown@2.0.2: - resolution: - { - integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==, - } + resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==} mdast-util-frontmatter@2.0.1: - resolution: - { - integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==, - } + resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==} mdast-util-gfm-autolink-literal@2.0.1: - resolution: - { - integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==, - } + resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==} mdast-util-gfm-footnote@2.1.0: - resolution: - { - integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==, - } + resolution: {integrity: sha512-sqpDWlsHn7Ac9GNZQMeUzPQSMzR6Wv0WKRNvQRg0KqHh02fpTz69Qc1QSseNX29bhz1ROIyNyxExfawVKTm1GQ==} mdast-util-gfm-strikethrough@2.0.0: - resolution: - { - integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==, - } + resolution: {integrity: sha512-mKKb915TF+OC5ptj5bJ7WFRPdYtuHv0yTRxK2tJvi+BDqbkiG7h7u/9SI89nRAYcmap2xHQL9D+QG/6wSrTtXg==} mdast-util-gfm-table@2.0.0: - resolution: - { - integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==, - } + resolution: {integrity: sha512-78UEvebzz/rJIxLvE7ZtDd/vIQ0RHv+3Mh5DR96p7cS7HsBhYIICDBCu8csTNWNO6tBWfqXPWekRuj2FNOGOZg==} mdast-util-gfm-task-list-item@2.0.0: - resolution: - { - integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==, - } + resolution: {integrity: sha512-IrtvNvjxC1o06taBAVJznEnkiHxLFTzgonUdy8hzFVeDun0uTjxxrRGVaNFqkU1wJR3RBPEfsxmU6jDWPofrTQ==} mdast-util-gfm@3.1.0: - resolution: - { - integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==, - } + resolution: {integrity: sha512-0ulfdQOM3ysHhCJ1p06l0b0VKlhU0wuQs3thxZQagjcjPrlFRqY215uZGHHJan9GEAXd9MbfPjFJz+qMkVR6zQ==} mdast-util-math@3.0.0: - resolution: - { - integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==, - } + resolution: {integrity: sha512-Tl9GBNeG/AhJnQM221bJR2HPvLOSnLE/T9cJI9tlc6zwQk2nPk/4f0cHkOdEixQPC/j8UtKDdITswvLAy1OZ1w==} mdast-util-mdx-expression@2.0.1: - resolution: - { - integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==, - } + resolution: {integrity: sha512-J6f+9hUp+ldTZqKRSg7Vw5V6MqjATc+3E4gf3CFNcuZNWD8XdyI6zQ8GqH7f8169MM6P7hMBRDVGnn7oHB9kXQ==} mdast-util-mdx-jsx@3.2.0: - resolution: - { - integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==, - } + resolution: {integrity: sha512-lj/z8v0r6ZtsN/cGNNtemmmfoLAFZnjMbNyLzBafjzikOM+glrjNHPlf6lQDOTccj9n5b0PPihEBbhneMyGs1Q==} mdast-util-mdx@3.0.0: - resolution: - { - integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==, - } + resolution: {integrity: sha512-JfbYLAW7XnYTTbUsmpu0kdBUVe+yKVJZBItEjwyYJiDJuZ9w4eeaqks4HQO+R7objWgS2ymV60GYpI14Ug554w==} mdast-util-mdxjs-esm@2.0.1: - resolution: - { - integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==, - } + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} mdast-util-phrasing@4.1.0: - resolution: - { - integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==, - } + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} mdast-util-to-hast@13.2.0: - resolution: - { - integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==, - } + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} mdast-util-to-markdown@2.1.2: - resolution: - { - integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==, - } + resolution: {integrity: sha512-xj68wMTvGXVOKonmog6LwyJKrYXZPvlwabaryTjLh9LuvovB/KAH+kvi8Gjj+7rJjsFi23nkUxRQv1KqSroMqA==} mdast-util-to-string@4.0.0: - resolution: - { - integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==, - } + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} mdurl@2.0.0: - resolution: - { - integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==, - } + resolution: {integrity: sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==} memfs-browser@3.5.10302: - resolution: - { - integrity: sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==, - } + resolution: {integrity: sha512-JJTc/nh3ig05O0gBBGZjTCPOyydaTxNF0uHYBrcc1gHNnO+KIHIvo0Y1FKCJsaei6FCl8C6xfQomXqu+cuzkIw==} memfs@3.5.3: - resolution: - { - integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==} + engines: {node: '>= 4.0.0'} merge-stream@2.0.0: - resolution: - { - integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, - } + resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} merge2@1.4.1: - resolution: - { - integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} mermaid@11.10.0: - resolution: - { - integrity: sha512-oQsFzPBy9xlpnGxUqLbVY8pvknLlsNIJ0NWwi8SUJjhbP1IT0E0o1lfhU4iYV3ubpy+xkzkaOyDUQMn06vQElQ==, - } + resolution: {integrity: sha512-oQsFzPBy9xlpnGxUqLbVY8pvknLlsNIJ0NWwi8SUJjhbP1IT0E0o1lfhU4iYV3ubpy+xkzkaOyDUQMn06vQElQ==} mhchemparser@4.2.1: - resolution: - { - integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==, - } + resolution: {integrity: sha512-kYmyrCirqJf3zZ9t/0wGgRZ4/ZJw//VwaRVGA75C4nhE60vtnIzhl9J9ndkX/h6hxSN7pjg/cE0VxbnNM+bnDQ==} micromark-core-commonmark@2.0.3: - resolution: - { - integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==, - } + resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==} micromark-extension-directive@3.0.2: - resolution: - { - integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==, - } + resolution: {integrity: sha512-wjcXHgk+PPdmvR58Le9d7zQYWy+vKEU9Se44p2CrCDPiLr2FMyiT4Fyb5UFKFC66wGB3kPlgD7q3TnoqPS7SZA==} micromark-extension-frontmatter@2.0.0: - resolution: - { - integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==, - } + resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==} micromark-extension-gfm-autolink-literal@2.1.0: - resolution: - { - integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==, - } + resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==} micromark-extension-gfm-footnote@2.1.0: - resolution: - { - integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==, - } + resolution: {integrity: sha512-/yPhxI1ntnDNsiHtzLKYnE3vf9JZ6cAisqVDauhp4CEHxlb4uoOTxOCJ+9s51bIB8U1N1FJ1RXOKTIlD5B/gqw==} micromark-extension-gfm-strikethrough@2.1.0: - resolution: - { - integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==, - } + resolution: {integrity: sha512-ADVjpOOkjz1hhkZLlBiYA9cR2Anf8F4HqZUO6e5eDcPQd0Txw5fxLzzxnEkSkfnD0wziSGiv7sYhk/ktvbf1uw==} micromark-extension-gfm-table@2.1.1: - resolution: - { - integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==, - } + resolution: {integrity: sha512-t2OU/dXXioARrC6yWfJ4hqB7rct14e8f7m0cbI5hUmDyyIlwv5vEtooptH8INkbLzOatzKuVbQmAYcbWoyz6Dg==} micromark-extension-gfm-tagfilter@2.0.0: - resolution: - { - integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==, - } + resolution: {integrity: sha512-xHlTOmuCSotIA8TW1mDIM6X2O1SiX5P9IuDtqGonFhEK0qgRI4yeC6vMxEV2dgyr2TiD+2PQ10o+cOhdVAcwfg==} micromark-extension-gfm-task-list-item@2.1.0: - resolution: - { - integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==, - } + resolution: {integrity: sha512-qIBZhqxqI6fjLDYFTBIa4eivDMnP+OZqsNwmQ3xNLE4Cxwc+zfQEfbs6tzAo2Hjq+bh6q5F+Z8/cksrLFYWQQw==} micromark-extension-gfm@3.0.0: - resolution: - { - integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==, - } + resolution: {integrity: sha512-vsKArQsicm7t0z2GugkCKtZehqUm31oeGBV/KVSorWSy8ZlNAv7ytjFhvaryUiCUJYqs+NoE6AFhpQvBTM6Q4w==} micromark-extension-math@3.1.0: - resolution: - { - integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==, - } + resolution: {integrity: sha512-lvEqd+fHjATVs+2v/8kg9i5Q0AP2k85H0WUOwpIVvUML8BapsMvh1XAogmQjOCsLpoKRCVQqEkQBB3NhVBcsOg==} micromark-extension-mdx-expression@3.0.1: - resolution: - { - integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==, - } + resolution: {integrity: sha512-dD/ADLJ1AeMvSAKBwO22zG22N4ybhe7kFIZ3LsDI0GlsNr2A3KYxb0LdC1u5rj4Nw+CHKY0RVdnHX8vj8ejm4Q==} micromark-extension-mdx-jsx@3.0.2: - resolution: - { - integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==, - } + resolution: {integrity: sha512-e5+q1DjMh62LZAJOnDraSSbDMvGJ8x3cbjygy2qFEi7HCeUT4BDKCvMozPozcD6WmOt6sVvYDNBKhFSz3kjOVQ==} micromark-extension-mdx-md@2.0.0: - resolution: - { - integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==, - } + resolution: {integrity: sha512-EpAiszsB3blw4Rpba7xTOUptcFeBFi+6PY8VnJ2hhimH+vCQDirWgsMpz7w1XcZE7LVrSAUGb9VJpG9ghlYvYQ==} micromark-extension-mdxjs-esm@3.0.0: - resolution: - { - integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==, - } + resolution: {integrity: sha512-DJFl4ZqkErRpq/dAPyeWp15tGrcrrJho1hKK5uBS70BCtfrIFg81sqcTVu3Ta+KD1Tk5vAtBNElWxtAa+m8K9A==} micromark-extension-mdxjs@3.0.0: - resolution: - { - integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==, - } + resolution: {integrity: sha512-A873fJfhnJ2siZyUrJ31l34Uqwy4xIFmvPY1oj+Ean5PHcPBYzEsvqvWGaWcfEIr11O5Dlw3p2y0tZWpKHDejQ==} micromark-factory-destination@2.0.1: - resolution: - { - integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==, - } + resolution: {integrity: sha512-Xe6rDdJlkmbFRExpTOmRj9N3MaWmbAgdpSrBQvCFqhezUn4AHqJHbaEnfbVYYiexVSs//tqOdY/DxhjdCiJnIA==} micromark-factory-label@2.0.1: - resolution: - { - integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==, - } + resolution: {integrity: sha512-VFMekyQExqIW7xIChcXn4ok29YE3rnuyveW3wZQWWqF4Nv9Wk5rgJ99KzPvHjkmPXF93FXIbBp6YdW3t71/7Vg==} micromark-factory-mdx-expression@2.0.3: - resolution: - { - integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==, - } + resolution: {integrity: sha512-kQnEtA3vzucU2BkrIa8/VaSAsP+EJ3CKOvhMuJgOEGg9KDC6OAY6nSnNDVRiVNRqj7Y4SlSzcStaH/5jge8JdQ==} micromark-factory-space@2.0.1: - resolution: - { - integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==, - } + resolution: {integrity: sha512-zRkxjtBxxLd2Sc0d+fbnEunsTj46SWXgXciZmHq0kDYGnck/ZSGj9/wULTV95uoeYiK5hRXP2mJ98Uo4cq/LQg==} micromark-factory-title@2.0.1: - resolution: - { - integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==, - } + resolution: {integrity: sha512-5bZ+3CjhAd9eChYTHsjy6TGxpOFSKgKKJPJxr293jTbfry2KDoWkhBb6TcPVB4NmzaPhMs1Frm9AZH7OD4Cjzw==} micromark-factory-whitespace@2.0.1: - resolution: - { - integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==, - } + resolution: {integrity: sha512-Ob0nuZ3PKt/n0hORHyvoD9uZhr+Za8sFoP+OnMcnWK5lngSzALgQYKMr9RJVOWLqQYuyn6ulqGWSXdwf6F80lQ==} micromark-util-character@2.1.1: - resolution: - { - integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==, - } + resolution: {integrity: sha512-wv8tdUTJ3thSFFFJKtpYKOYiGP2+v96Hvk4Tu8KpCAsTMs6yi+nVmGh1syvSCsaxz45J6Jbw+9DD6g97+NV67Q==} micromark-util-chunked@2.0.1: - resolution: - { - integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==, - } + resolution: {integrity: sha512-QUNFEOPELfmvv+4xiNg2sRYeS/P84pTW0TCgP5zc9FpXetHY0ab7SxKyAQCNCc1eK0459uoLI1y5oO5Vc1dbhA==} micromark-util-classify-character@2.0.1: - resolution: - { - integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==, - } + resolution: {integrity: sha512-K0kHzM6afW/MbeWYWLjoHQv1sgg2Q9EccHEDzSkxiP/EaagNzCm7T/WMKZ3rjMbvIpvBiZgwR3dKMygtA4mG1Q==} micromark-util-combine-extensions@2.0.1: - resolution: - { - integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==, - } + resolution: {integrity: sha512-OnAnH8Ujmy59JcyZw8JSbK9cGpdVY44NKgSM7E9Eh7DiLS2E9RNQf0dONaGDzEG9yjEl5hcqeIsj4hfRkLH/Bg==} micromark-util-decode-numeric-character-reference@2.0.2: - resolution: - { - integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==, - } + resolution: {integrity: sha512-ccUbYk6CwVdkmCQMyr64dXz42EfHGkPQlBj5p7YVGzq8I7CtjXZJrubAYezf7Rp+bjPseiROqe7G6foFd+lEuw==} micromark-util-decode-string@2.0.1: - resolution: - { - integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==, - } + resolution: {integrity: sha512-nDV/77Fj6eH1ynwscYTOsbK7rR//Uj0bZXBwJZRfaLEJ1iGBR6kIfNmlNqaqJf649EP0F3NWNdeJi03elllNUQ==} micromark-util-encode@2.0.1: - resolution: - { - integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==, - } + resolution: {integrity: sha512-c3cVx2y4KqUnwopcO9b/SCdo2O67LwJJ/UyqGfbigahfegL9myoEFoDYZgkT7f36T0bLrM9hZTAaAyH+PCAXjw==} micromark-util-events-to-acorn@2.0.3: - resolution: - { - integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==, - } + resolution: {integrity: sha512-jmsiEIiZ1n7X1Rr5k8wVExBQCg5jy4UXVADItHmNk1zkwEVhBuIUKRu3fqv+hs4nxLISi2DQGlqIOGiFxgbfHg==} micromark-util-html-tag-name@2.0.1: - resolution: - { - integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==, - } + resolution: {integrity: sha512-2cNEiYDhCWKI+Gs9T0Tiysk136SnR13hhO8yW6BGNyhOC4qYFnwF1nKfD3HFAIXA5c45RrIG1ub11GiXeYd1xA==} micromark-util-normalize-identifier@2.0.1: - resolution: - { - integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==, - } + resolution: {integrity: sha512-sxPqmo70LyARJs0w2UclACPUUEqltCkJ6PhKdMIDuJ3gSf/Q+/GIe3WKl0Ijb/GyH9lOpUkRAO2wp0GVkLvS9Q==} micromark-util-resolve-all@2.0.1: - resolution: - { - integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==, - } + resolution: {integrity: sha512-VdQyxFWFT2/FGJgwQnJYbe1jjQoNTS4RjglmSjTUlpUMa95Htx9NHeYW4rGDJzbjvCsl9eLjMQwGeElsqmzcHg==} micromark-util-sanitize-uri@2.0.1: - resolution: - { - integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==, - } + resolution: {integrity: sha512-9N9IomZ/YuGGZZmQec1MbgxtlgougxTodVwDzzEouPKo3qFWvymFHWcnDi2vzV1ff6kas9ucW+o3yzJK9YB1AQ==} micromark-util-subtokenize@2.1.0: - resolution: - { - integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==, - } + resolution: {integrity: sha512-XQLu552iSctvnEcgXw6+Sx75GflAPNED1qx7eBJ+wydBb2KCbRZe+NwvIEEMM83uml1+2WSXpBAcp9IUCgCYWA==} micromark-util-symbol@2.0.1: - resolution: - { - integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==, - } + resolution: {integrity: sha512-vs5t8Apaud9N28kgCrRUdEed4UJ+wWNvicHLPxCa9ENlYuAY31M0ETy5y1vA33YoNPDFTghEbnh6efaE8h4x0Q==} micromark-util-types@2.0.2: - resolution: - { - integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==, - } + resolution: {integrity: sha512-Yw0ECSpJoViF1qTU4DC6NwtC4aWGt1EkzaQB8KPPyCRR8z9TWeV0HbEFGTO+ZY1wB22zmxnJqhPyTpOVCpeHTA==} micromark@4.0.2: - resolution: - { - integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==, - } + resolution: {integrity: sha512-zpe98Q6kvavpCr1NPVSCMebCKfD7CA2NqZ+rykeNhONIJBpc1tFKt9hucLGwha3jNTNI8lHpctWJWoimVF4PfA==} micromatch@4.0.5: - resolution: - { - integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} + engines: {node: '>=8.6'} micromatch@4.0.8: - resolution: - { - integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} mime-db@1.33.0: - resolution: - { - integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==} + engines: {node: '>= 0.6'} mime-db@1.52.0: - resolution: - { - integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} mime-db@1.54.0: - resolution: - { - integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==} + engines: {node: '>= 0.6'} mime-match@1.0.2: - resolution: - { - integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==, - } + resolution: {integrity: sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==} mime-types@2.1.18: - resolution: - { - integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==} + engines: {node: '>= 0.6'} mime-types@2.1.35: - resolution: - { - integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} mimic-fn@2.1.0: - resolution: - { - integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} mimic-fn@4.0.0: - resolution: - { - integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} + engines: {node: '>=12'} min-indent@1.0.1: - resolution: - { - integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} + engines: {node: '>=4'} mini-svg-data-uri@1.4.4: - resolution: - { - integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==, - } + resolution: {integrity: sha512-r9deDe9p5FJUPZAk3A59wGH7Ii9YrjjWw0jmw/liSbHl2CHiyXj6FcDXDu2K3TjVAXqiJdaw3xxwlZZr9E6nHg==} hasBin: true minimatch@10.0.3: - resolution: - { - integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==} + engines: {node: 20 || >=22} + + minimatch@10.2.5: + resolution: {integrity: sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==} + engines: {node: 18 || 20 || >=22} minimatch@3.1.2: - resolution: - { - integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==, - } + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} minimatch@5.1.6: - resolution: - { - integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==} + engines: {node: '>=10'} minimatch@8.0.4: - resolution: - { - integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} minimatch@9.0.5: - resolution: - { - integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} minimist@1.2.8: - resolution: - { - integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, - } + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==} minipass@4.2.8: - resolution: - { - integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} minipass@7.1.2: - resolution: - { - integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, - } - engines: { node: '>=16 || 14 >=14.17' } + resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} + engines: {node: '>=16 || 14 >=14.17'} minizlib@3.0.2: - resolution: - { - integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==, - } - engines: { node: '>= 18' } + resolution: {integrity: sha512-oG62iEk+CYt5Xj2YqI5Xi9xWUeZhDI8jjQmC5oThVH5JGCTgIjr7ciJDzC7MBzYd//WvR1OTmP5Q38Q8ShQtVA==} + engines: {node: '>= 18'} mitt@3.0.1: - resolution: - { - integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==, - } + resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} mj-context-menu@0.6.1: - resolution: - { - integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==, - } + resolution: {integrity: sha512-7NO5s6n10TIV96d4g2uDpG7ZDpIhMh0QNfGdJw/W47JswFcosz457wqz/b5sAKvl12sxINGFCn80NZHKwxQEXA==} mkdirp@0.5.6: - resolution: - { - integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==, - } + resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true mkdirp@3.0.1: - resolution: - { - integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==} + engines: {node: '>=10'} hasBin: true mlly@1.7.4: - resolution: - { - integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==, - } + resolution: {integrity: sha512-qmdSIPC4bDJXgZTCR7XosJiNKySV7O215tsPtDN9iEO/7q/76b/ijtgRu/+epFXSJhijtTCCGp3DWS549P3xKw==} module-alias@2.2.3: - resolution: - { - integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==, - } + resolution: {integrity: sha512-23g5BFj4zdQL/b6tor7Ji+QY4pEfNH784BMslY9Qb0UnJWRAt+lQGLYmRaM0KDBwIG23ffEBELhZDP2rhi9f/Q==} module-details-from-path@1.0.4: - resolution: - { - integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==, - } + resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==} monaco-editor@0.55.1: - resolution: - { - integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==, - } + resolution: {integrity: sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==} mrmime@2.0.1: - resolution: - { - integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Y3wQdFg2Va6etvQ5I82yUhGdsKrcYox6p7FfL1LbK2J4V01F9TGlepTIhnK24t7koZibmg82KGglhA1XK5IsLQ==} + engines: {node: '>=10'} ms@2.0.0: - resolution: - { - integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==, - } + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} ms@2.1.2: - resolution: - { - integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==, - } + resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} ms@2.1.3: - resolution: - { - integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, - } + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} msw@2.10.5: - resolution: - { - integrity: sha512-0EsQCrCI1HbhpBWd89DvmxY6plmvrM96b0sCIztnvcNHQbXn5vqwm1KlXslo6u4wN9LFGLC1WFjjgljcQhe40A==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-0EsQCrCI1HbhpBWd89DvmxY6plmvrM96b0sCIztnvcNHQbXn5vqwm1KlXslo6u4wN9LFGLC1WFjjgljcQhe40A==} + engines: {node: '>=18'} hasBin: true peerDependencies: typescript: '>= 4.8.x' @@ -16926,102 +11527,60 @@ packages: optional: true mudder@2.1.1: - resolution: - { - integrity: sha512-0/F//kjoRlefsazFcGxa7FAuwRNDoX3ALal7W9uOZgE9QKxKatFM1NKu3tkmxMAFvUXoIHN2b/PlIt5B+hJirQ==, - } + resolution: {integrity: sha512-0/F//kjoRlefsazFcGxa7FAuwRNDoX3ALal7W9uOZgE9QKxKatFM1NKu3tkmxMAFvUXoIHN2b/PlIt5B+hJirQ==} mute-stream@0.0.8: - resolution: - { - integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==, - } + resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} mute-stream@2.0.0: - resolution: - { - integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==, - } - engines: { node: ^18.17.0 || >=20.5.0 } + resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} + engines: {node: ^18.17.0 || >=20.5.0} namespace-emitter@2.0.1: - resolution: - { - integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==, - } + resolution: {integrity: sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==} nanoid@3.3.11: - resolution: - { - integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==, - } - engines: { node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1 } + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true nanoid@5.1.5: - resolution: - { - integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==, - } - engines: { node: ^18 || >=20 } + resolution: {integrity: sha512-Ir/+ZpE9fDsNH0hQ3C68uyThDXzYcim2EqcZ8zn8Chtt1iylPT9xXJB0kPCnqzgcEGikO9RxSrh63MsmVCU7Fw==} + engines: {node: ^18 || >=20} hasBin: true negotiator@0.6.3: - resolution: - { - integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==} + engines: {node: '>= 0.6'} negotiator@1.0.0: - resolution: - { - integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==} + engines: {node: '>= 0.6'} neo-async@2.6.2: - resolution: - { - integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==, - } + resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} netmask@2.0.2: - resolution: - { - integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==, - } - engines: { node: '>= 0.4.0' } + resolution: {integrity: sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==} + engines: {node: '>= 0.4.0'} new-github-issue-url@0.2.1: - resolution: - { - integrity: sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==} + engines: {node: '>=10'} next-connect@1.0.0: - resolution: - { - integrity: sha512-FeLURm9MdvzY1SDUGE74tk66mukSqL6MAzxajW7Gqh6DZKBZLrXmXnGWtHJZXkfvoi+V/DUe9Hhtfkl4+nTlYA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-FeLURm9MdvzY1SDUGE74tk66mukSqL6MAzxajW7Gqh6DZKBZLrXmXnGWtHJZXkfvoi+V/DUe9Hhtfkl4+nTlYA==} + engines: {node: '>=16'} next-themes@0.4.6: - resolution: - { - integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==, - } + resolution: {integrity: sha512-pZvgD5L0IEvX5/9GWyHMf3m8BKiVQwsCMHfoFosXtXBMnaS0ZnIJ9ST4b4NqLVKDEm8QBxoNNGNaBv2JNF6XNA==} peerDependencies: react: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc react-dom: ^16.8 || ^17 || ^18 || ^19 || ^19.0.0-rc next@15.5.9: - resolution: - { - integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==, - } - engines: { node: ^18.18.0 || ^19.8.0 || >= 20.0.0 } + resolution: {integrity: sha512-agNLK89seZEtC5zUHwtut0+tNrc0Xw4FT/Dg+B/VLEo9pAcS9rtTKpek3V6kVcVwsB2YlqMaHdfZL4eLEVYuCg==} + engines: {node: ^18.18.0 || ^19.8.0 || >= 20.0.0} hasBin: true peerDependencies: '@opentelemetry/api': ^1.1.0 @@ -17041,10 +11600,7 @@ packages: optional: true nextra-theme-docs@4.3.0: - resolution: - { - integrity: sha512-f8QDU2ZDp6um0yn9VyejcDRBAMWeeM1EYAknZjclkNArXQMc7n/Z+P60EEjUz79eZQKEo7Bk8kKa9X2fU8FsHQ==, - } + resolution: {integrity: sha512-f8QDU2ZDp6um0yn9VyejcDRBAMWeeM1EYAknZjclkNArXQMc7n/Z+P60EEjUz79eZQKEo7Bk8kKa9X2fU8FsHQ==} peerDependencies: next: '>=14' nextra: 4.3.0 @@ -17052,34 +11608,22 @@ packages: react-dom: '>=18' nextra@4.3.0: - resolution: - { - integrity: sha512-hMVd8oyr9ee3h0rWkM0JWx5AEiwU5FBYH+Z+TSJ7iWNpaLDt732fUV4nQhfO/8AReuP379S1cDWM1RPnHv112A==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-hMVd8oyr9ee3h0rWkM0JWx5AEiwU5FBYH+Z+TSJ7iWNpaLDt732fUV4nQhfO/8AReuP379S1cDWM1RPnHv112A==} + engines: {node: '>=18'} peerDependencies: next: '>=14' react: '>=18' react-dom: '>=18' nlcst-to-string@4.0.0: - resolution: - { - integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==, - } + resolution: {integrity: sha512-YKLBCcUYKAg0FNlOBT6aI91qFmSiFKiluk655WzPF+DDMA02qIyy8uiRqI8QXtcFpEvll12LpL5MXqEmAZ+dcA==} no-case@2.3.2: - resolution: - { - integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==, - } + resolution: {integrity: sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==} node-fetch@2.6.11: - resolution: - { - integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==, - } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-4I6pdBY1EthSqDmJkiNk3JIT8cswwR9nfeW/cPdUagJYEQG7R95WRH74wpz7ma8Gh/9dI9FP+OU+0E4FvtA55w==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -17087,11 +11631,8 @@ packages: optional: true node-fetch@2.6.12: - resolution: - { - integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==, - } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-C/fGU2E8ToujUivIO0H+tpQ6HWo4eEmchoPIoXtxCrVghxdKq+QOHqEZW7tuP3KlV3bC8FRMO5nMCC7Zm1VP6g==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -17099,11 +11640,8 @@ packages: optional: true node-fetch@2.7.0: - resolution: - { - integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==, - } - engines: { node: 4.x || >=6.0.0 } + resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} + engines: {node: 4.x || >=6.0.0} peerDependencies: encoding: ^0.1.0 peerDependenciesMeta: @@ -17111,113 +11649,65 @@ packages: optional: true node-plop@0.26.3: - resolution: - { - integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==, - } - engines: { node: '>=8.9.4' } + resolution: {integrity: sha512-Cov028YhBZ5aB7MdMWJEmwyBig43aGL5WT4vdoB28Oitau1zZAcHUn8Sgfk9HM33TqhtLJ9PlM/O0Mv+QpV/4Q==} + engines: {node: '>=8.9.4'} node-releases@2.0.19: - resolution: - { - integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==, - } + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} nodemailer@6.10.1: - resolution: - { - integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==, - } - engines: { node: '>=6.0.0' } + resolution: {integrity: sha512-Z+iLaBGVaSjbIzQ4pX6XV41HrooLsQ10ZWPUehGmuantvzWoDVBnmsdUcOIDM1t+yPor5pDhVlDESgOMEGxhHA==} + engines: {node: '>=6.0.0'} normalize-package-data@2.5.0: - resolution: - { - integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==, - } + resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} normalize-path@3.0.0: - resolution: - { - integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} + engines: {node: '>=0.10.0'} normalize-range@0.1.2: - resolution: - { - integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} + engines: {node: '>=0.10.0'} npm-bundled@1.1.2: - resolution: - { - integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==, - } + resolution: {integrity: sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==} npm-bundled@2.0.1: - resolution: - { - integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + resolution: {integrity: sha512-gZLxXdjEzE/+mOstGDqR6b0EkhJ+kM6fxM6vUuckuctuVPh80Q6pw/rSZj9s4Gex9GxWtIicO1pc8DB9KZWudw==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} npm-normalize-package-bin@1.0.1: - resolution: - { - integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==, - } + resolution: {integrity: sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==} npm-normalize-package-bin@2.0.0: - resolution: - { - integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + resolution: {integrity: sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} npm-packlist@2.2.2: - resolution: - { - integrity: sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==} + engines: {node: '>=10'} hasBin: true npm-packlist@5.1.3: - resolution: - { - integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==, - } - engines: { node: ^12.13.0 || ^14.15.0 || >=16.0.0 } + resolution: {integrity: sha512-263/0NGrn32YFYi4J533qzrQ/krmmrWwhKkzwTuM4f/07ug51odoaNjUexxO4vxlzURHcmYMH1QjvHjsNDKLVg==} + engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} hasBin: true npm-run-path@4.0.1: - resolution: - { - integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} npm-run-path@5.3.0: - resolution: - { - integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} npm-to-yarn@3.0.1: - resolution: - { - integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-tt6PvKu4WyzPwWUzy/hvPFqn+uwXO0K1ZHka8az3NnrhWJDmSqI8ncWq0fkL0k/lmmi5tAC11FXwXuh0rFbt1A==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} nuqs@2.4.3: - resolution: - { - integrity: sha512-BgtlYpvRwLYiJuWzxt34q2bXu/AIS66sLU1QePIMr2LWkb+XH0vKXdbLSgn9t6p7QKzwI7f38rX3Wl9llTXQ8Q==, - } + resolution: {integrity: sha512-BgtlYpvRwLYiJuWzxt34q2bXu/AIS66sLU1QePIMr2LWkb+XH0vKXdbLSgn9t6p7QKzwI7f38rX3Wl9llTXQ8Q==} peerDependencies: '@remix-run/react': '>=2' next: '>=14.2.0' @@ -17235,568 +11725,317 @@ packages: optional: true nwsapi@2.2.21: - resolution: - { - integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==, - } + resolution: {integrity: sha512-o6nIY3qwiSXl7/LuOU0Dmuctd34Yay0yeuZRLFmDPrrdHpXKFndPj3hM+YEPVHYC5fx2otBx4Ilc/gyYSAUaIA==} object-assign@4.1.1: - resolution: - { - integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} object-inspect@1.13.4: - resolution: - { - integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==} + engines: {node: '>= 0.4'} object-keys@1.1.1: - resolution: - { - integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} + engines: {node: '>= 0.4'} object.assign@4.1.7: - resolution: - { - integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} + engines: {node: '>= 0.4'} object.omit@3.0.0: - resolution: - { - integrity: sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-EO+BCv6LJfu+gBIF3ggLicFebFLN5zqzz/WWJlMFfkMyGth+oBkhxzDl0wx2W4GkLzuQs/FsSkXZb2IMWQqmBQ==} + engines: {node: '>=0.10.0'} object.pick@1.3.0: - resolution: - { - integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==} + engines: {node: '>=0.10.0'} on-exit-leak-free@2.1.2: - resolution: - { - integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==} + engines: {node: '>=14.0.0'} on-headers@1.0.2: - resolution: - { - integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==} + engines: {node: '>= 0.8'} once@1.4.0: - resolution: - { - integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==, - } + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} onetime@5.1.2: - resolution: - { - integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} onetime@6.0.0: - resolution: - { - integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} + engines: {node: '>=12'} oniguruma-parser@0.12.1: - resolution: - { - integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==, - } + resolution: {integrity: sha512-8Unqkvk1RYc6yq2WBYRj4hdnsAxVze8i7iPfQr8e4uSP3tRv0rpZcbGUDvxfQQcdwHt/e9PrMvGCsa8OqG9X3w==} oniguruma-to-es@4.3.3: - resolution: - { - integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==, - } + resolution: {integrity: sha512-rPiZhzC3wXwE59YQMRDodUwwT9FZ9nNBwQQfsd1wfdtlKEyCdRV0avrTcSZ5xlIvGRVPd/cx6ZN45ECmS39xvg==} open@7.4.2: - resolution: - { - integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==} + engines: {node: '>=8'} open@8.4.2: - resolution: - { - integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} openapi3-ts@2.0.2: - resolution: - { - integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==, - } + resolution: {integrity: sha512-TxhYBMoqx9frXyOgnRHufjQfPXomTIHYKhSKJ6jHfj13kS8OEIhvmE8CTuQyKtjjWttAjX5DPxM1vmalEpo8Qw==} openapi3-ts@4.5.0: - resolution: - { - integrity: sha512-jaL+HgTq2Gj5jRcfdutgRGLosCy/hT8sQf6VOy+P+g36cZOjI1iukdPnijC+4CmeRzg/jEllJUboEic2FhxhtQ==, - } + resolution: {integrity: sha512-jaL+HgTq2Gj5jRcfdutgRGLosCy/hT8sQf6VOy+P+g36cZOjI1iukdPnijC+4CmeRzg/jEllJUboEic2FhxhtQ==} optionator@0.9.4: - resolution: - { - integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} ora@4.1.1: - resolution: - { - integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==} + engines: {node: '>=8'} ora@5.4.1: - resolution: - { - integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==} + engines: {node: '>=10'} orderedmap@2.1.1: - resolution: - { - integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==, - } + resolution: {integrity: sha512-TvAWxi0nDe1j/rtMcWcIj94+Ffe6n7zhow33h40SKxmsmozs6dz/e+EajymfoFcHd7sxNn8yHM8839uixMOV6g==} os-tmpdir@1.0.2: - resolution: - { - integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} + engines: {node: '>=0.10.0'} oslo@1.2.1: - resolution: - { - integrity: sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA==, - } + resolution: {integrity: sha512-HfIhB5ruTdQv0XX2XlncWQiJ5SIHZ7NHZhVyHth0CSZ/xzge00etRyYy/3wp/Dsu+PkxMC+6+B2lS/GcKoewkA==} deprecated: Package is no longer supported. Please see https://oslojs.dev for the successor project. outvariant@1.4.3: - resolution: - { - integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==, - } + resolution: {integrity: sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==} own-keys@1.0.1: - resolution: - { - integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} p-filter@2.1.0: - resolution: - { - integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==} + engines: {node: '>=8'} p-limit@2.3.0: - resolution: - { - integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} + engines: {node: '>=6'} p-limit@3.1.0: - resolution: - { - integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} p-limit@4.0.0: - resolution: - { - integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-locate@4.1.0: - resolution: - { - integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} + engines: {node: '>=8'} p-locate@5.0.0: - resolution: - { - integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} p-locate@6.0.0: - resolution: - { - integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} p-map@2.1.0: - resolution: - { - integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==} + engines: {node: '>=6'} p-map@3.0.0: - resolution: - { - integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==} + engines: {node: '>=8'} p-map@4.0.0: - resolution: - { - integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} + engines: {node: '>=10'} p-map@7.0.3: - resolution: - { - integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==} + engines: {node: '>=18'} p-queue@8.1.0: - resolution: - { - integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-mxLDbbGIBEXTJL0zEx8JIylaj3xQ7Z/7eEVjcF9fJX4DBiH9oqe+oahYnlKKxm0Ci9TlWTyhSHgygxMxjIB2jw==} + engines: {node: '>=18'} p-retry@4.6.2: - resolution: - { - integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==} + engines: {node: '>=8'} p-retry@6.2.1: - resolution: - { - integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==, - } - engines: { node: '>=16.17' } + resolution: {integrity: sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==} + engines: {node: '>=16.17'} p-timeout@6.1.4: - resolution: - { - integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-MyIV3ZA/PmyBN/ud8vV9XzwTrNtR4jFrObymZYnZqMmW0zA8Z17vnT0rBgFE/TlohB+YCHqXMgZzb3Csp49vqg==} + engines: {node: '>=14.16'} p-try@2.2.0: - resolution: - { - integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} + engines: {node: '>=6'} pac-proxy-agent@7.2.0: - resolution: - { - integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-TEB8ESquiLMc0lV8vcd5Ql/JAKAoyzHFXaStwjkzpOpC5Yv+pIzLfHvjTSdf3vpa2bMiUQrg9i6276yn8666aA==} + engines: {node: '>= 14'} pac-resolver@7.0.1: - resolution: - { - integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-5NPgf87AT2STgwa2ntRMr45jTKrYBGkVU36yT0ig/n/GMAa3oPqhZfIQ2kMEimReg0+t9kZViDVZ83qfVUlckg==} + engines: {node: '>= 14'} package-json-from-dist@1.0.1: - resolution: - { - integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==, - } + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} package-manager-detector@1.3.0: - resolution: - { - integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==, - } + resolution: {integrity: sha512-ZsEbbZORsyHuO00lY1kV3/t72yp6Ysay6Pd17ZAlNGuGwmWDLCJxFpRs0IzfXfj1o4icJOkUEioexFHzyPurSQ==} pagefind@1.3.0: - resolution: - { - integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==, - } + resolution: {integrity: sha512-8KPLGT5g9s+olKMRTU9LFekLizkVIu9tes90O1/aigJ0T5LmyPqTzGJrETnSw3meSYg58YH7JTzhTTW/3z6VAw==} hasBin: true param-case@2.1.1: - resolution: - { - integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==, - } + resolution: {integrity: sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==} parent-module@1.0.1: - resolution: - { - integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} parse-english@7.0.0: - resolution: - { - integrity: sha512-mxxj3DyPdvOdiUl1okNub3wwoaaZI/Z++paDg3PH96RYvfVilS63WmQOnHlGm0S05y4g9GEjNP3pylyBsJrAwQ==, - } + resolution: {integrity: sha512-mxxj3DyPdvOdiUl1okNub3wwoaaZI/Z++paDg3PH96RYvfVilS63WmQOnHlGm0S05y4g9GEjNP3pylyBsJrAwQ==} parse-entities@4.0.2: - resolution: - { - integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==, - } + resolution: {integrity: sha512-GG2AQYWoLgL877gQIKeRPGO1xF9+eG1ujIb5soS5gPvLQ1y2o8FL90w2QWNdf9I361Mpp7726c+lj3U0qK1uGw==} parse-glob@3.0.4: - resolution: - { - integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-FC5TeK0AwXzq3tUBFtH74naWkPQCEWs4K+xMxWZBlKDWu0bVHXGZa+KKqxKidd7xwhdZ19ZNuF2uO1M/r196HA==} + engines: {node: '>=0.10.0'} parse-json@5.2.0: - resolution: - { - integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} + engines: {node: '>=8'} parse-latin@7.0.0: - resolution: - { - integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==, - } + resolution: {integrity: sha512-mhHgobPPua5kZ98EF4HWiH167JWBfl4pvAIXXdbaVohtK7a6YBOy56kvhCqduqyo/f3yrHFWmqmiMg/BkBkYYQ==} parse-numeric-range@1.3.0: - resolution: - { - integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==, - } + resolution: {integrity: sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ==} parse5@7.3.0: - resolution: - { - integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==, - } + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} parseley@0.12.1: - resolution: - { - integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==, - } + resolution: {integrity: sha512-e6qHKe3a9HWr0oMRVDTRhKce+bRO8VGQR3NyVwcjwrbhMmFCX9KszEV35+rn4AdilFAq9VPxP/Fe1wC9Qjd2lw==} pascal-case@2.0.1: - resolution: - { - integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==, - } + resolution: {integrity: sha512-qjS4s8rBOJa2Xm0jmxXiyh1+OFf6ekCWOvUaRgAQSktzlTbMotS0nmG9gyYAybCWBcuP4fsBeRCKNwGBnMe2OQ==} path-browserify@1.0.1: - resolution: - { - integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==, - } + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} path-case@2.1.1: - resolution: - { - integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==, - } + resolution: {integrity: sha512-Ou0N05MioItesaLr9q8TtHVWmJ6fxWdqKB2RohFmNWVyJ+2zeKIeDNWAN6B/Pe7wpzWChhZX6nONYmOnMeJQ/Q==} path-data-parser@0.1.0: - resolution: - { - integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==, - } + resolution: {integrity: sha512-NOnmBpt5Y2RWbuv0LMzsayp3lVylAHLPUTut412ZA3l+C4uw4ZVkQbjShYCQ8TCpUMdPapr4YjUqLYD6v68j+w==} path-exists@4.0.0: - resolution: - { - integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} path-exists@5.0.0: - resolution: - { - integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + + path-expression-matcher@1.5.0: + resolution: {integrity: sha512-cbrerZV+6rvdQrrD+iGMcZFEiiSrbv9Tfdkvnusy6y0x0GKBXREFg/Y65GhIfm0tnLntThhzCnfKwp1WRjeCyQ==} + engines: {node: '>=14.0.0'} path-is-absolute@1.0.1: - resolution: - { - integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} path-is-inside@1.0.2: - resolution: - { - integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==, - } + resolution: {integrity: sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==} path-key@3.1.1: - resolution: - { - integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} path-key@4.0.0: - resolution: - { - integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} + engines: {node: '>=12'} path-parse@1.0.7: - resolution: - { - integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==, - } + resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} path-scurry@1.11.1: - resolution: - { - integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==, - } - engines: { node: '>=16 || 14 >=14.18' } + resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==} + engines: {node: '>=16 || 14 >=14.18'} path-scurry@2.0.0: - resolution: - { - integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==} + engines: {node: 20 || >=22} path-to-regexp@3.3.0: - resolution: - { - integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==, - } + resolution: {integrity: sha512-qyCH421YQPS2WFDxDjftfc1ZR5WKQzVzqsp4n9M2kQhVOo/ByahFoUNJfl58kOcEGfQ//7weFTDhm+ss8Ecxgw==} path-to-regexp@6.3.0: - resolution: - { - integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==, - } + resolution: {integrity: sha512-Yhpw4T9C6hPpgPeA28us07OJeqZ5EzQTkbfwuhsUg0c237RomFoETJgmp2sa3F/41gfLE6G5cqcYwznmeEeOlQ==} path-type@4.0.0: - resolution: - { - integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} pathe@2.0.3: - resolution: - { - integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, - } + resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==} pathval@2.0.1: - resolution: - { - integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==, - } - engines: { node: '>= 14.16' } + resolution: {integrity: sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==} + engines: {node: '>= 14.16'} peberminta@0.9.0: - resolution: - { - integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==, - } + resolution: {integrity: sha512-XIxfHpEuSJbITd1H3EeQwpcZbTLHc+VVr8ANI9t5sit565tsI4/xK3KWTUFE2e6QiangUkh3B0jihzmGnNrRsQ==} pg-cloudflare@1.2.7: - resolution: - { - integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==, - } + resolution: {integrity: sha512-YgCtzMH0ptvZJslLM1ffsY4EuGaU0cx4XSdXLRFae8bPP4dS5xL1tNB3k2o/N64cHJpwU7dxKli/nZ2lUa5fLg==} pg-connection-string@2.6.2: - resolution: - { - integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==, - } + resolution: {integrity: sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==} pg-connection-string@2.9.1: - resolution: - { - integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==, - } + resolution: {integrity: sha512-nkc6NpDcvPVpZXxrreI/FOtX3XemeLl8E0qFr6F2Lrm/I8WOnaWNhIPK2Z7OHpw7gh5XJThi6j6ppgNoaT1w4w==} pg-int8@1.0.1: - resolution: - { - integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==, - } - engines: { node: '>=4.0.0' } + resolution: {integrity: sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==} + engines: {node: '>=4.0.0'} pg-pool@3.10.1: - resolution: - { - integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==, - } + resolution: {integrity: sha512-Tu8jMlcX+9d8+QVzKIvM/uJtp07PKr82IUOYEphaWcoBhIYkoHpLXN3qO59nAI11ripznDsEzEv8nUxBVWajGg==} peerDependencies: pg: '>=8.0' pg-protocol@1.10.3: - resolution: - { - integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==, - } + resolution: {integrity: sha512-6DIBgBQaTKDJyxnXaLiLR8wBpQQcGWuAESkRBX/t6OwA8YsqP+iVSiond2EDy6Y/dsGk8rh/jtax3js5NeV7JQ==} pg-query-emscripten@5.1.0: - resolution: - { - integrity: sha512-H1ZWOzLRddmHuE4GZqFjjo55hA9zMiePz/WDDGANA/EnvILCJps9pcRucyGd+MFvapeYOy6TWSYz6DbtBOaxRQ==, - } + resolution: {integrity: sha512-H1ZWOzLRddmHuE4GZqFjjo55hA9zMiePz/WDDGANA/EnvILCJps9pcRucyGd+MFvapeYOy6TWSYz6DbtBOaxRQ==} pg-types@2.2.0: - resolution: - { - integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==} + engines: {node: '>=4'} pg@8.16.3: - resolution: - { - integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==, - } - engines: { node: '>= 16.0.0' } + resolution: {integrity: sha512-enxc1h0jA/aq5oSDMvqyW3q89ra6XIIDZgCX9vkMrnz5DFTw/Ny3Li2lFQ+pt3L6MCgm/5o2o8HW9hiJji+xvw==} + engines: {node: '>= 16.0.0'} peerDependencies: pg-native: '>=3.0.1' peerDependenciesMeta: @@ -17804,742 +12043,421 @@ packages: optional: true pgpass@1.0.5: - resolution: - { - integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==, - } + resolution: {integrity: sha512-FdW9r/jQZhSeohs1Z3sI1yxFQNFvMcnmfuj4WBMUTxOrAyLMaTcE1aAMBiTlbMNaXvBCQuVi0R7hd8udDSP7ug==} picocolors@1.0.1: - resolution: - { - integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==, - } + resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} picocolors@1.1.1: - resolution: - { - integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==, - } + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: - resolution: - { - integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==, - } - engines: { node: '>=8.6' } + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} picomatch@4.0.3: - resolution: - { - integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} pidtree@0.6.0: - resolution: - { - integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==, - } - engines: { node: '>=0.10' } + resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==} + engines: {node: '>=0.10'} hasBin: true pify@2.3.0: - resolution: - { - integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} + engines: {node: '>=0.10.0'} pino-abstract-transport@1.2.0: - resolution: - { - integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==, - } + resolution: {integrity: sha512-Guhh8EZfPCfH+PMXAb6rKOjGQEoy0xlAIn+irODG5kgfYV+BQ0rGYYWTIel3P5mmyXqkYkPmdIkywsn6QKUR1Q==} pino-abstract-transport@3.0.0: - resolution: - { - integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==, - } + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==} pino-pretty@10.3.1: - resolution: - { - integrity: sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==, - } + resolution: {integrity: sha512-az8JbIYeN/1iLj2t0jR9DV48/LQ3RC6hZPpapKPkb84Q+yTidMCpgWxIT3N0flnBDilyBQ1luWNpOeJptjdp/g==} hasBin: true pino-pretty@13.1.3: - resolution: - { - integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==, - } + resolution: {integrity: sha512-ttXRkkOz6WWC95KeY9+xxWL6AtImwbyMHrL1mSwqwW9u+vLp/WIElvHvCSDg0xO/Dzrggz1zv3rN5ovTRVowKg==} hasBin: true pino-std-serializers@6.2.2: - resolution: - { - integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==, - } + resolution: {integrity: sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==} pino@8.21.0: - resolution: - { - integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==, - } + resolution: {integrity: sha512-ip4qdzjkAyDDZklUaZkcRFb2iA118H9SgRh8yzTkSQK8HilsOJF7rSY8HoW5+I0M46AZgX/pxbprf2vvzQCE0Q==} hasBin: true pirates@4.0.7: - resolution: - { - integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==} + engines: {node: '>= 6'} pkg-dir@4.2.0: - resolution: - { - integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} + engines: {node: '>=8'} pkg-types@1.3.1: - resolution: - { - integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==, - } + resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} pkg-types@2.3.0: - resolution: - { - integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==, - } + resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==} playwright-core@1.53.0: - resolution: - { - integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-mGLg8m0pm4+mmtB7M89Xw/GSqoNC+twivl8ITteqvAndachozYe2ZA7srU6uleV1vEdAHYqjq+SV8SNxRRFYBw==} + engines: {node: '>=18'} hasBin: true playwright@1.53.0: - resolution: - { - integrity: sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-ghGNnIEYZC4E+YtclRn4/p6oYbdPiASELBIYkBXfaTVKreQUYbMUYQDwS12a8F0/HtIjr/CkGjtwABeFPGcS4Q==} + engines: {node: '>=18'} hasBin: true pluralize@8.0.0: - resolution: - { - integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} + engines: {node: '>=4'} points-on-curve@0.2.0: - resolution: - { - integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==, - } + resolution: {integrity: sha512-0mYKnYYe9ZcqMCWhUjItv/oHjvgEsfKvnUTg8sAtnHr3GVy7rGkXCb6d5cSyqrWqL4k81b9CPg3urd+T7aop3A==} points-on-path@0.2.1: - resolution: - { - integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==, - } + resolution: {integrity: sha512-25ClnWWuw7JbWZcgqY/gJ4FQWadKxGWk+3kR/7kD0tCaDtPPMj7oHu2ToLaVhfpnHrZzYby2w6tUA0eOIuUg8g==} possible-typed-array-names@1.1.0: - resolution: - { - integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==} + engines: {node: '>= 0.4'} postcss-import@16.1.1: - resolution: - { - integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-2xVS1NCZAfjtVdvXiyegxzJ447GyqCeEI5V7ApgQVOWnros1p5lGNovJNapwPpMombyFBfqDwt7AD3n2l0KOfQ==} + engines: {node: '>=18.0.0'} peerDependencies: postcss: ^8.0.0 postcss-selector-parser@6.0.10: - resolution: - { - integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} + engines: {node: '>=4'} postcss-value-parser@4.2.0: - resolution: - { - integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==, - } + resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} postcss@8.4.31: - resolution: - { - integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==, - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==} + engines: {node: ^10 || ^12 || >=14} postcss@8.5.6: - resolution: - { - integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==, - } - engines: { node: ^10 || ^12 || >=14 } + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} postgres-array@2.0.0: - resolution: - { - integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==} + engines: {node: '>=4'} postgres-bytea@1.0.0: - resolution: - { - integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==} + engines: {node: '>=0.10.0'} postgres-date@1.0.7: - resolution: - { - integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==} + engines: {node: '>=0.10.0'} postgres-interval@1.2.0: - resolution: - { - integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==} + engines: {node: '>=0.10.0'} preact@10.27.1: - resolution: - { - integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==, - } + resolution: {integrity: sha512-V79raXEWch/rbqoNc7nT9E4ep7lu+mI3+sBmfRD4i1M73R3WLYcCtdI0ibxGVf4eQL8ZIz2nFacqEC+rmnOORQ==} prelude-ls@1.2.1: - resolution: - { - integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} prettier@3.6.2: - resolution: - { - integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==} + engines: {node: '>=14'} hasBin: true pretty-bytes@6.1.1: - resolution: - { - integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==, - } - engines: { node: ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-mQUvGU6aUFQ+rNvTIAcZuWGRT9a6f6Yrg9bHs4ImKF+HZCEK+plBvnAZYSIQztknZF2qnzNtr6F8s0+IuptdlQ==} + engines: {node: ^14.13.1 || >=16.0.0} pretty-format@27.5.1: - resolution: - { - integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==, - } - engines: { node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0 } + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} prisma-dbml-generator@0.12.0: - resolution: - { - integrity: sha512-b5CqA9cCY5jmNJGjx8oUbPw3KSgVd+mu8711MSZIRY9dIF0Vlcs/Au6LR3S5guncydM7Zkh8iz8vC+c2CDj3Xw==, - } + resolution: {integrity: sha512-b5CqA9cCY5jmNJGjx8oUbPw3KSgVd+mu8711MSZIRY9dIF0Vlcs/Au6LR3S5guncydM7Zkh8iz8vC+c2CDj3Xw==} hasBin: true prisma@5.22.0: - resolution: - { - integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==, - } - engines: { node: '>=16.13' } + resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} + engines: {node: '>=16.13'} hasBin: true prismjs@1.29.0: - resolution: - { - integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==} + engines: {node: '>=6'} prismjs@1.30.0: - resolution: - { - integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-DEvV2ZF2r2/63V+tK8hQvrR2ZGn10srHbXviTlcv7Kpzw8jWiNTqbVgjO3IY8RxrrOUF8VPMQQFysYYYv0YZxw==} + engines: {node: '>=6'} process-nextick-args@2.0.1: - resolution: - { - integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==, - } + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} process-warning@3.0.0: - resolution: - { - integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==, - } + resolution: {integrity: sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==} process@0.11.10: - resolution: - { - integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==, - } - engines: { node: '>= 0.6.0' } + resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} + engines: {node: '>= 0.6.0'} progress@2.0.3: - resolution: - { - integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==, - } - engines: { node: '>=0.4.0' } + resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} + engines: {node: '>=0.4.0'} prompts@2.4.2: - resolution: - { - integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} + engines: {node: '>= 6'} prop-types@15.8.1: - resolution: - { - integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==, - } + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} property-information@6.5.0: - resolution: - { - integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==, - } + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} property-information@7.1.0: - resolution: - { - integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==, - } + resolution: {integrity: sha512-TwEZ+X+yCJmYfL7TPUOcvBZ4QfoT5YenQiJuX//0th53DE6w0xxLEtfK3iyryQFddXuvkIk51EEgrJQ0WJkOmQ==} prosemirror-autocomplete@0.4.3: - resolution: - { - integrity: sha512-a4w/SOzgrTjXaWpSYMrai6H3KHSUBuADZC/DBm4VApiD9LGHpv98zQbHzsHgInrEoWcBGzYVT0HUD3tLgrsEVQ==, - } + resolution: {integrity: sha512-a4w/SOzgrTjXaWpSYMrai6H3KHSUBuADZC/DBm4VApiD9LGHpv98zQbHzsHgInrEoWcBGzYVT0HUD3tLgrsEVQ==} prosemirror-commands@1.7.1: - resolution: - { - integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==, - } + resolution: {integrity: sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==} prosemirror-dev-tools@4.2.0: - resolution: - { - integrity: sha512-Hm1HRgK0Fxhb+Dy507R1uHgP3Ixuwbh7ZHD6NUZGEAl26BKW95L70nwdA1P4odPfxPsx0lBZm1KMpulsOJMwpQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Hm1HRgK0Fxhb+Dy507R1uHgP3Ixuwbh7ZHD6NUZGEAl26BKW95L70nwdA1P4odPfxPsx0lBZm1KMpulsOJMwpQ==} + engines: {node: '>=10'} peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^17.0.0 || ^18.0.0 || ^19.0.0 prosemirror-dropcursor@1.8.2: - resolution: - { - integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==, - } + resolution: {integrity: sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==} prosemirror-example-setup@1.2.3: - resolution: - { - integrity: sha512-+hXZi8+xbFvYM465zZH3rdZ9w7EguVKmUYwYLZjIJIjPK+I0nPTwn8j0ByW2avchVczRwZmOJGNvehblyIerSQ==, - } + resolution: {integrity: sha512-+hXZi8+xbFvYM465zZH3rdZ9w7EguVKmUYwYLZjIJIjPK+I0nPTwn8j0ByW2avchVczRwZmOJGNvehblyIerSQ==} prosemirror-gapcursor@1.3.2: - resolution: - { - integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==, - } + resolution: {integrity: sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==} prosemirror-history@1.4.1: - resolution: - { - integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==, - } + resolution: {integrity: sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==} prosemirror-inputrules@1.5.0: - resolution: - { - integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==, - } + resolution: {integrity: sha512-K0xJRCmt+uSw7xesnHmcn72yBGTbY45vm8gXI4LZXbx2Z0jwh5aF9xrGQgrVPu0WbyFVFF3E/o9VhJYz6SQWnA==} prosemirror-keymap@1.2.3: - resolution: - { - integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==, - } + resolution: {integrity: sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==} prosemirror-markdown@1.13.2: - resolution: - { - integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==, - } + resolution: {integrity: sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==} prosemirror-menu@1.2.5: - resolution: - { - integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==, - } + resolution: {integrity: sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==} prosemirror-model@1.25.3: - resolution: - { - integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==, - } + resolution: {integrity: sha512-dY2HdaNXlARknJbrManZ1WyUtos+AP97AmvqdOQtWtrrC5g4mohVX5DTi9rXNFSk09eczLq9GuNTtq3EfMeMGA==} prosemirror-schema-basic@1.2.4: - resolution: - { - integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==, - } + resolution: {integrity: sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==} prosemirror-schema-list@1.5.1: - resolution: - { - integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==, - } + resolution: {integrity: sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==} prosemirror-state@1.4.3: - resolution: - { - integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==, - } + resolution: {integrity: sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==} prosemirror-suggest@3.0.0: - resolution: - { - integrity: sha512-cEYnJHOAnQ+ET7PKY1tY8SMSpyR2rQAuYfPEmVtet0V9exgHAeiaSEzyBcCSeLesxXJRIv8b9cofyqoqyMjlEw==, - } + resolution: {integrity: sha512-cEYnJHOAnQ+ET7PKY1tY8SMSpyR2rQAuYfPEmVtet0V9exgHAeiaSEzyBcCSeLesxXJRIv8b9cofyqoqyMjlEw==} peerDependencies: prosemirror-model: ^1.22.1 prosemirror-state: ^1.4.2 prosemirror-view: ^1.33.8 prosemirror-tables@1.7.1: - resolution: - { - integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==, - } + resolution: {integrity: sha512-eRQ97Bf+i9Eby99QbyAiyov43iOKgWa7QCGly+lrDt7efZ1v8NWolhXiB43hSDGIXT1UXgbs4KJN3a06FGpr1Q==} prosemirror-transform@1.10.4: - resolution: - { - integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==, - } + resolution: {integrity: sha512-pwDy22nAnGqNR1feOQKHxoFkkUtepoFAd3r2hbEDsnf4wp57kKA36hXsB3njA9FtONBEwSDnDeCiJe+ItD+ykw==} prosemirror-view@1.39.2: - resolution: - { - integrity: sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==, - } + resolution: {integrity: sha512-BmOkml0QWNob165gyUxXi5K5CVUgVPpqMEAAml/qzgKn9boLUWVPzQ6LtzXw8Cn1GtRQX4ELumPxqtLTDaAKtg==} protobufjs@7.5.4: - resolution: - { - integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==} + engines: {node: '>=12.0.0'} proxy-agent@6.5.0: - resolution: - { - integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-TmatMXdr2KlRiA2CyDu8GqR8EjahTG3aY3nXjdzFyoZbmB8hrBsTyMezhULIXKnC0jpfjlmiZ3+EaCzoInSu/A==} + engines: {node: '>= 14'} proxy-from-env@1.1.0: - resolution: - { - integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==, - } + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} psl@1.15.0: - resolution: - { - integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==, - } + resolution: {integrity: sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==} pump@3.0.3: - resolution: - { - integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==, - } + resolution: {integrity: sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==} punycode.js@2.3.1: - resolution: - { - integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==} + engines: {node: '>=6'} punycode@2.3.1: - resolution: - { - integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} qs@6.14.0: - resolution: - { - integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==, - } - engines: { node: '>=0.6' } + resolution: {integrity: sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==} + engines: {node: '>=0.6'} quansync@0.2.11: - resolution: - { - integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==, - } + resolution: {integrity: sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==} querystringify@2.2.0: - resolution: - { - integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==, - } + resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} queue-microtask@1.2.3: - resolution: - { - integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==, - } + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} quick-format-unescaped@4.0.4: - resolution: - { - integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, - } + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} quick-lru@5.1.1: - resolution: - { - integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} ramda@0.30.1: - resolution: - { - integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==, - } + resolution: {integrity: sha512-tEF5I22zJnuclswcZMc8bDIrwRHRzf+NqVEmqg50ShAZMP7MWeR/RGDthfM/p+BlqvF2fXAzpn8i+SJcYD3alw==} ramda@0.31.3: - resolution: - { - integrity: sha512-xKADKRNnqmDdX59PPKLm3gGmk1ZgNnj3k7DryqWwkamp4TJ6B36DdpyKEQ0EoEYmH2R62bV4Q+S0ym2z8N2f3Q==, - } + resolution: {integrity: sha512-xKADKRNnqmDdX59PPKLm3gGmk1ZgNnj3k7DryqWwkamp4TJ6B36DdpyKEQ0EoEYmH2R62bV4Q+S0ym2z8N2f3Q==} randombytes@2.1.0: - resolution: - { - integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==, - } + resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} range-parser@1.2.0: - resolution: - { - integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==, - } - engines: { node: '>= 0.6' } + resolution: {integrity: sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A==} + engines: {node: '>= 0.6'} rc@1.2.8: - resolution: - { - integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, - } + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true react-base16-styling@0.9.1: - resolution: - { - integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==, - } + resolution: {integrity: sha512-1s0CY1zRBOQ5M3T61wetEpvQmsYSNtWEcdYzyZNxKa8t7oDvaOn9d21xrGezGAHFWLM7SHcktPuPTrvoqxSfKw==} react-colorful@5.6.1: - resolution: - { - integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==, - } + resolution: {integrity: sha512-1exovf0uGTGyq5mXQT0zgQ80uvj2PCwvF8zY1RN9/vbJVSjSo3fsB/4L3ObbF7u70NduSiK4xu4Y6q1MHoUGEw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' react-compiler-runtime@19.1.0-rc.2: - resolution: - { - integrity: sha512-852AwyIsbWJ5o1LkQVAZsVK3iLjMxOfKZuxqeGd/RfD+j1GqHb6j3DSHLtpu4HhFbQHsP2DzxjJyKR6luv4D8w==, - } + resolution: {integrity: sha512-852AwyIsbWJ5o1LkQVAZsVK3iLjMxOfKZuxqeGd/RfD+j1GqHb6j3DSHLtpu4HhFbQHsP2DzxjJyKR6luv4D8w==} peerDependencies: react: ^17.0.0 || ^18.0.0 || ^19.0.0 || ^0.0.0-experimental react-csv-to-table@0.0.4: - resolution: - { - integrity: sha512-YHdhavi7WgksHn3/S/pIHDy4zepeYjTQkTfmKcQv976OwNSWIUB7RlYJKmCFXAgfqkbiCNbtEIHnX1n3/rTfJA==, - } + resolution: {integrity: sha512-YHdhavi7WgksHn3/S/pIHDy4zepeYjTQkTfmKcQv976OwNSWIUB7RlYJKmCFXAgfqkbiCNbtEIHnX1n3/rTfJA==} peerDependencies: react: ^16.8.6 react-dom: ^16.8.6 react-day-picker@9.9.0: - resolution: - { - integrity: sha512-NtkJbuX6cl/VaGNb3sVVhmMA6LSMnL5G3xNL+61IyoZj0mUZFWTg4hmj7PHjIQ8MXN9dHWhUHFoJWG6y60DKSg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-NtkJbuX6cl/VaGNb3sVVhmMA6LSMnL5G3xNL+61IyoZj0mUZFWTg4hmj7PHjIQ8MXN9dHWhUHFoJWG6y60DKSg==} + engines: {node: '>=18'} peerDependencies: react: '>=16.8.0' react-docgen-typescript@2.4.0: - resolution: - { - integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==, - } + resolution: {integrity: sha512-ZtAp5XTO5HRzQctjPU0ybY0RRCQO19X/8fxn3w7y2VVTUbGHDKULPTL4ky3vB05euSgG5NpALhEhDPvQ56wvXg==} peerDependencies: typescript: '>= 4.3.x' react-docgen@8.0.1: - resolution: - { - integrity: sha512-kQKsqPLplY3Hx4jGnM3jpQcG3FQDt7ySz32uTHt3C9HAe45kNXG+3o16Eqn3Fw1GtMfHoN3b4J/z2e6cZJCmqQ==, - } - engines: { node: ^20.9.0 || >=22 } + resolution: {integrity: sha512-kQKsqPLplY3Hx4jGnM3jpQcG3FQDt7ySz32uTHt3C9HAe45kNXG+3o16Eqn3Fw1GtMfHoN3b4J/z2e6cZJCmqQ==} + engines: {node: ^20.9.0 || >=22} react-dock@0.6.0: - resolution: - { - integrity: sha512-jEOhv1s+pqRQ4JxgUw4XUotnprOehZ23mqchf3whxYXnvNgTQOXCxh6bpcqW8P6OybIk2bYO18r3qimZ3ypCbg==, - } + resolution: {integrity: sha512-jEOhv1s+pqRQ4JxgUw4XUotnprOehZ23mqchf3whxYXnvNgTQOXCxh6bpcqW8P6OybIk2bYO18r3qimZ3ypCbg==} peerDependencies: '@types/react': ^16.3.0 || ^17.0.0 || ^18.0.0 react: ^16.3.0 || ^17.0.0 || ^18.0.0 react-dom@19.2.3: - resolution: - { - integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==, - } + resolution: {integrity: sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==} peerDependencies: react: ^19.2.3 react-email@3.0.4: - resolution: - { - integrity: sha512-nXdo9P3V+qYSW6m5yN3XpFGhHb/bflX86m0EDQEqDIgayprj6InmBJoBnMSIyC5EP4tPtoAljlclJns4lJG/MQ==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-nXdo9P3V+qYSW6m5yN3XpFGhHb/bflX86m0EDQEqDIgayprj6InmBJoBnMSIyC5EP4tPtoAljlclJns4lJG/MQ==} + engines: {node: '>=18.0.0'} hasBin: true react-error-boundary@3.1.4: - resolution: - { - integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==, - } - engines: { node: '>=10', npm: '>=6' } + resolution: {integrity: sha512-uM9uPzZJTF6wRQORmSrvOIgt4lJ9MC1sNgEOj2XGsDTRE4kmpWxg7ENK9EWNKJRMAOY9z0MuF4yIfl6gp4sotA==} + engines: {node: '>=10', npm: '>=6'} peerDependencies: react: '>=16.13.1' react-hook-form@7.54.2: - resolution: - { - integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==} + engines: {node: '>=18.0.0'} peerDependencies: react: ^16.8.0 || ^17 || ^18 || ^19 react-is@16.13.1: - resolution: - { - integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==, - } + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} react-is@17.0.2: - resolution: - { - integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==, - } + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} react-json-tree@0.17.0: - resolution: - { - integrity: sha512-hcWjibI/fAvsKnfYk+lka5OrE1Lvb1jH5pSnFhIU5T8cCCxB85r6h/NOzDPggSSgErjmx4rl3+2EkeclIKBOhg==, - } + resolution: {integrity: sha512-hcWjibI/fAvsKnfYk+lka5OrE1Lvb1jH5pSnFhIU5T8cCCxB85r6h/NOzDPggSSgErjmx4rl3+2EkeclIKBOhg==} peerDependencies: '@types/react': ^16.3.0 || ^17.0.0 || ^18.0.0 react: ^16.3.0 || ^17.0.0 || ^18.0.0 react-markdown@9.1.0: - resolution: - { - integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==, - } + resolution: {integrity: sha512-xaijuJB0kzGiUdG7nc2MOMDUDBWPyGAjZtUrow9XxUeua8IqeP+VlIfAZ3bphpcLTnSZXz6z9jcVC/TCwbfgdw==} peerDependencies: '@types/react': '>=18' react: '>=18' react-medium-image-zoom@5.3.0: - resolution: - { - integrity: sha512-RCIzVlsKqy3BYgGgYbolUfuvx0aSKC7YhX/IJGEp+WJxsqdIVYJHkBdj++FAj6VD7RiWj6VVmdCfa/9vJE9hZg==, - } + resolution: {integrity: sha512-RCIzVlsKqy3BYgGgYbolUfuvx0aSKC7YhX/IJGEp+WJxsqdIVYJHkBdj++FAj6VD7RiWj6VVmdCfa/9vJE9hZg==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react-promise-suspense@0.3.4: - resolution: - { - integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==, - } + resolution: {integrity: sha512-I42jl7L3Ze6kZaq+7zXWSunBa3b1on5yfvUW6Eo/3fFOj6dZ5Bqmcd264nJbTK/gn1HjjILAjSwnZbV4RpSaNQ==} react-reconciler@0.32.0: - resolution: - { - integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-2NPMOzgTlG0ZWdIf3qG+dcbLSoAc/uLfOwckc3ofy5sSK0pLJqnQLpUFxvGcN2rlXSjnVtGeeFLNimCQEj5gOQ==} + engines: {node: '>=0.10.0'} peerDependencies: react: ^19.1.0 react-refresh@0.17.0: - resolution: - { - integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} + engines: {node: '>=0.10.0'} react-remove-scroll-bar@2.3.8: - resolution: - { - integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} + engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 @@ -18548,11 +12466,8 @@ packages: optional: true react-remove-scroll@2.7.1: - resolution: - { - integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==} + engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc @@ -18561,19 +12476,13 @@ packages: optional: true react-simple-animate@3.5.3: - resolution: - { - integrity: sha512-Ob+SmB5J1tXDEZyOe2Hf950K4M8VaWBBmQ3cS2BUnTORqHjhK0iKG8fB+bo47ZL15t8d3g/Y0roiqH05UBjG7A==, - } + resolution: {integrity: sha512-Ob+SmB5J1tXDEZyOe2Hf950K4M8VaWBBmQ3cS2BUnTORqHjhK0iKG8fB+bo47ZL15t8d3g/Y0roiqH05UBjG7A==} peerDependencies: react-dom: ^16.8.0 || ^17 || ^18 || ^19 react-style-singleton@2.2.3: - resolution: - { - integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} + engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc @@ -18582,1145 +12491,630 @@ packages: optional: true react@19.2.3: - resolution: - { - integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==} + engines: {node: '>=0.10.0'} reactflow@11.11.4: - resolution: - { - integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==, - } + resolution: {integrity: sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==} peerDependencies: react: '>=17' react-dom: '>=17' read-cache@1.0.0: - resolution: - { - integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==, - } + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} read-pkg-up@7.0.1: - resolution: - { - integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} + engines: {node: '>=8'} read-pkg@5.2.0: - resolution: - { - integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==} + engines: {node: '>=8'} readable-stream@2.3.8: - resolution: - { - integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==, - } + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} readable-stream@3.6.2: - resolution: - { - integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} + engines: {node: '>= 6'} readable-stream@4.7.0: - resolution: - { - integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==, - } - engines: { node: ^12.22.0 || ^14.17.0 || >=16.0.0 } + resolution: {integrity: sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} readdir-glob@1.1.3: - resolution: - { - integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==, - } + resolution: {integrity: sha512-v05I2k7xN8zXvPD9N+z/uhXPaj0sUFCe2rcWZIpBsqxfP7xXFQ0tipAd/wjj1YxWyWtUS5IDJpOG82JKt2EAVA==} readdirp@3.6.0: - resolution: - { - integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, - } - engines: { node: '>=8.10.0' } + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} + engines: {node: '>=8.10.0'} readdirp@4.1.2: - resolution: - { - integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==, - } - engines: { node: '>= 14.18.0' } + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} reading-time@1.5.0: - resolution: - { - integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==, - } + resolution: {integrity: sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg==} real-require@0.2.0: - resolution: - { - integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==, - } - engines: { node: '>= 12.13.0' } + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} + engines: {node: '>= 12.13.0'} recast@0.23.11: - resolution: - { - integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-YTUo+Flmw4ZXiWfQKGcwwc11KnoRAYgzAE2E7mXKCjSviTKShtxBsN6YUUBB2gtaBzKzeKunxhUwNHQuRryhWA==} + engines: {node: '>= 4'} rechoir@0.8.0: - resolution: - { - integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} + engines: {node: '>= 10.13.0'} recma-build-jsx@1.0.0: - resolution: - { - integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==, - } + resolution: {integrity: sha512-8GtdyqaBcDfva+GUKDr3nev3VpKAhup1+RvkMvUxURHpW7QyIvk9F5wz7Vzo06CEMSilw6uArgRqhpiUcWp8ew==} recma-jsx@1.0.1: - resolution: - { - integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==, - } + resolution: {integrity: sha512-huSIy7VU2Z5OLv6oFLosQGGDqPqdO1iq6bWNAdhzMxSJP7RAso4fCZ1cKu8j9YHCZf3TPrq4dw3okhrylgcd7w==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 recma-parse@1.0.0: - resolution: - { - integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==, - } + resolution: {integrity: sha512-OYLsIGBB5Y5wjnSnQW6t3Xg7q3fQ7FWbw/vcXtORTnyaSFscOtABg+7Pnz6YZ6c27fG1/aN8CjfwoUEUIdwqWQ==} recma-stringify@1.0.0: - resolution: - { - integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==, - } + resolution: {integrity: sha512-cjwII1MdIIVloKvC9ErQ+OgAtwHBmcZ0Bg4ciz78FtbT8In39aAYbaA7zvxQ61xVMSPE8WxhLwLbhif4Js2C+g==} redent@3.0.0: - resolution: - { - integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} + engines: {node: '>=8'} redis-errors@1.2.0: - resolution: - { - integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==} + engines: {node: '>=4'} redis-parser@3.0.0: - resolution: - { - integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==} + engines: {node: '>=4'} redis@4.7.0: - resolution: - { - integrity: sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==, - } + resolution: {integrity: sha512-zvmkHEAdGMn+hMRXuMBtu4Vo5P6rHQjLoHftu+lBqq8ZTA3RCVC/WzD790bkKKiNFp7d5/9PcSD19fJyyRvOdQ==} reflect.getprototypeof@1.0.10: - resolution: - { - integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} + engines: {node: '>= 0.4'} regenerate-unicode-properties@10.2.0: - resolution: - { - integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==} + engines: {node: '>=4'} regenerate@1.4.2: - resolution: - { - integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==, - } + resolution: {integrity: sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==} regex-recursion@6.0.2: - resolution: - { - integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==, - } + resolution: {integrity: sha512-0YCaSCq2VRIebiaUviZNs0cBz1kg5kVS2UKUfNIx8YVs1cN3AV7NTctO5FOKBA+UT2BPJIWZauYHPqJODG50cg==} regex-utilities@2.3.0: - resolution: - { - integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==, - } + resolution: {integrity: sha512-8VhliFJAWRaUiVvREIiW2NXXTmHs4vMNnSzuJVhscgmGav3g9VDxLrQndI3dZZVVdp0ZO/5v0xmX516/7M9cng==} regex@6.0.1: - resolution: - { - integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==, - } + resolution: {integrity: sha512-uorlqlzAKjKQZ5P+kTJr3eeJGSVroLKoHmquUj4zHWuR+hEyNqlXsSKlYYF5F4NI6nl7tWCs0apKJ0lmfsXAPA==} regexp.prototype.flags@1.5.4: - resolution: - { - integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} + engines: {node: '>= 0.4'} regexparam@2.0.2: - resolution: - { - integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-A1PeDEYMrkLrfyOwv2jwihXbo9qxdGD3atBYQA9JJgreAx8/7rC6IUkWOw2NQlOxLp2wL0ifQbh1HuidDfYA6w==} + engines: {node: '>=8'} regexpu-core@6.2.0: - resolution: - { - integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA==} + engines: {node: '>=4'} registry-auth-token@3.3.2: - resolution: - { - integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==, - } + resolution: {integrity: sha512-JL39c60XlzCVgNrO+qq68FoNb56w/m7JYvGR2jT5iR1xBrUA3Mfx5Twk5rqTThPmQKMWydGmq8oFtDlxfrmxnQ==} registry-url@3.1.0: - resolution: - { - integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-ZbgR5aZEdf4UKZVBPYIgaglBmSF2Hi94s2PcIHhRGFjKYu+chjJdYfHn4rt3hB6eCKLJ8giVIIfgMa1ehDfZKA==} + engines: {node: '>=0.10.0'} regjsgen@0.8.0: - resolution: - { - integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==, - } + resolution: {integrity: sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==} regjsparser@0.12.0: - resolution: - { - integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==, - } + resolution: {integrity: sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ==} hasBin: true rehype-format@5.0.1: - resolution: - { - integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==, - } + resolution: {integrity: sha512-zvmVru9uB0josBVpr946OR8ui7nJEdzZobwLOOqHb/OOD88W0Vk2SqLwoVOj0fM6IPCCO6TaV9CvQvJMWwukFQ==} rehype-katex@7.0.1: - resolution: - { - integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==, - } + resolution: {integrity: sha512-OiM2wrZ/wuhKkigASodFoo8wimG3H12LWQaH8qSPVJn9apWKFSH3YOCtbKpBorTVw/eI7cuT21XBbvwEswbIOA==} rehype-minify-whitespace@6.0.2: - resolution: - { - integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==, - } + resolution: {integrity: sha512-Zk0pyQ06A3Lyxhe9vGtOtzz3Z0+qZ5+7icZ/PL/2x1SHPbKao5oB/g/rlc6BCTajqBb33JcOe71Ye1oFsuYbnw==} rehype-parse@9.0.1: - resolution: - { - integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==, - } + resolution: {integrity: sha512-ksCzCD0Fgfh7trPDxr2rSylbwq9iYDkSn8TCDmEJ49ljEUBxDVCzCHv7QNzZOfODanX4+bWQ4WZqLCRWYLfhag==} rehype-pretty-code@0.14.1: - resolution: - { - integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-IpG4OL0iYlbx78muVldsK86hdfNoht0z63AP7sekQNW2QOTmjxB7RbTO+rhIYNGRljgHxgVZoPwUl6bIC9SbjA==} + engines: {node: '>=18'} peerDependencies: shiki: ^1.0.0 || ^2.0.0 || ^3.0.0 rehype-raw@7.0.0: - resolution: - { - integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==, - } + resolution: {integrity: sha512-/aE8hCfKlQeA8LmyeyQvQF3eBiLRGNlfBJEvWH7ivp9sBqs7TNqBL5X3v157rM4IFETqDnIOO+z5M/biZbo9Ww==} rehype-recma@1.0.0: - resolution: - { - integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==, - } + resolution: {integrity: sha512-lqA4rGUf1JmacCNWWZx0Wv1dHqMwxzsDWYMTowuplHF3xH0N/MmrZ/G3BDZnzAkRmxDadujCjaKM2hqYdCBOGw==} rehype-remark@10.0.1: - resolution: - { - integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==, - } + resolution: {integrity: sha512-EmDndlb5NVwXGfUa4c9GPK+lXeItTilLhE6ADSaQuHr4JUlKw9MidzGzx4HpqZrNCt6vnHmEifXQiiA+CEnjYQ==} rehype-retext@5.0.1: - resolution: - { - integrity: sha512-YJqcKZJh/sYCfLd89yzuWo5GI5TzELr0N/OLHac6fDzKmp5Yk8pj8ePU2HFgmtk5O7GmGVuYXJo35YIrGtyL0g==, - } + resolution: {integrity: sha512-YJqcKZJh/sYCfLd89yzuWo5GI5TzELr0N/OLHac6fDzKmp5Yk8pj8ePU2HFgmtk5O7GmGVuYXJo35YIrGtyL0g==} rehype-stringify@10.0.1: - resolution: - { - integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==, - } + resolution: {integrity: sha512-k9ecfXHmIPuFVI61B9DeLPN0qFHfawM6RsuX48hoqlaKSF61RskNjSm1lI8PhBEM0MRdLxVVm4WmTqJQccH9mA==} rehype@13.0.2: - resolution: - { - integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==, - } + resolution: {integrity: sha512-j31mdaRFrwFRUIlxGeuPXXKWQxet52RBQRvCmzl5eCefn/KGbomK5GMHNMsOJf55fgo3qw5tST5neDuarDYR2A==} remark-directive@3.0.1: - resolution: - { - integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==, - } + resolution: {integrity: sha512-gwglrEQEZcZYgVyG1tQuA+h58EZfq5CSULw7J90AFuCTyib1thgHPoqQ+h9iFvU6R+vnZ5oNFQR5QKgGpk741A==} remark-frontmatter@5.0.0: - resolution: - { - integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==, - } + resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==} remark-gfm@4.0.1: - resolution: - { - integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==, - } + resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==} remark-math@6.0.0: - resolution: - { - integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==, - } + resolution: {integrity: sha512-MMqgnP74Igy+S3WwnhQ7kqGlEerTETXMvJhrUzDikVZ2/uogJCb+WHUg97hK9/jcfc0dkD73s3LN8zU49cTEtA==} remark-mdx@3.1.0: - resolution: - { - integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==, - } + resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==} remark-parse@11.0.0: - resolution: - { - integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==, - } + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} remark-reading-time@2.0.2: - resolution: - { - integrity: sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==, - } + resolution: {integrity: sha512-ILjIuR0dQQ8pELPgaFvz7ralcSN62rD/L1pTUJgWb4gfua3ZwYEI8mnKGxEQCbrXSUF/OvycTkcUbifGOtOn5A==} remark-rehype@11.1.2: - resolution: - { - integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==, - } + resolution: {integrity: sha512-Dh7l57ianaEoIpzbp0PC9UKAdCSVklD8E5Rpw7ETfbTl3FqcOOgq5q2LVDhgGCkaBv7p24JXikPdvhhmHvKMsw==} remark-smartypants@3.0.2: - resolution: - { - integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==, - } - engines: { node: '>=16.0.0' } + resolution: {integrity: sha512-ILTWeOriIluwEvPjv67v7Blgrcx+LZOkAUVtKI3putuhlZm84FnqDORNXPPm+HY3NdZOMhyDwZ1E+eZB/Df5dA==} + engines: {node: '>=16.0.0'} remark-stringify@11.0.0: - resolution: - { - integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==, - } + resolution: {integrity: sha512-1OSmLd3awB/t8qdoEOMazZkNsfVTeY4fTsgzcQFdXNq8ToTN4ZGwrMnlda4K6smTFKD+GRV6O48i6Z4iKgPPpw==} remove@0.1.5: - resolution: - { - integrity: sha512-AJMA9oWvJzdTjwIGwSQZsjGQiRx73YTmiOWmfCp1fpLa/D4n7jKcpoA+CZiVLJqKcEKUuh1Suq80c5wF+L/qVQ==, - } + resolution: {integrity: sha512-AJMA9oWvJzdTjwIGwSQZsjGQiRx73YTmiOWmfCp1fpLa/D4n7jKcpoA+CZiVLJqKcEKUuh1Suq80c5wF+L/qVQ==} replace-string@3.1.0: - resolution: - { - integrity: sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-yPpxc4ZR2makceA9hy/jHNqc7QVkd4Je/N0WRHm6bs3PtivPuPynxE5ejU/mp5EhnCv8+uZL7vhz8rkluSlx+Q==} + engines: {node: '>=8'} require-directory@2.1.1: - resolution: - { - integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} + engines: {node: '>=0.10.0'} require-from-string@2.0.2: - resolution: - { - integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==} + engines: {node: '>=0.10.0'} require-in-the-middle@7.5.2: - resolution: - { - integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==, - } - engines: { node: '>=8.6.0' } + resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==} + engines: {node: '>=8.6.0'} + + require-in-the-middle@8.0.1: + resolution: {integrity: sha512-QT7FVMXfWOYFbeRBF6nu+I6tr2Tf3u0q8RIEjNob/heKY/nh7drD/k7eeMFmSQgnTtCzLDcCu/XEnpW2wk4xCQ==} + engines: {node: '>=9.3.0 || >=8.10.0 <9.0.0'} requires-port@1.0.0: - resolution: - { - integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==, - } + resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} resolve-from@4.0.0: - resolution: - { - integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} resolve-from@5.0.0: - resolution: - { - integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} + engines: {node: '>=8'} resolve-pkg-maps@1.0.0: - resolution: - { - integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, - } + resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} resolve@1.22.10: - resolution: - { - integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true resolve@1.22.2: - resolution: - { - integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==, - } + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true resolve@1.22.8: - resolution: - { - integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==, - } + resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true restore-cursor@3.1.0: - resolution: - { - integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==} + engines: {node: '>=8'} restore-cursor@4.0.0: - resolution: - { - integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==, - } - engines: { node: ^12.20.0 || ^14.13.1 || >=16.0.0 } + resolution: {integrity: sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} retext-latin@4.0.0: - resolution: - { - integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==, - } + resolution: {integrity: sha512-hv9woG7Fy0M9IlRQloq/N6atV82NxLGveq+3H2WOi79dtIYWN8OaxogDm77f8YnVXJL2VD3bbqowu5E3EMhBYA==} retext-smartypants@6.2.0: - resolution: - { - integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==, - } + resolution: {integrity: sha512-kk0jOU7+zGv//kfjXEBjdIryL1Acl4i9XNkHxtM7Tm5lFiCog576fjNC9hjoR7LTKQ0DsPWy09JummSsH1uqfQ==} retext-stringify@4.0.0: - resolution: - { - integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==, - } + resolution: {integrity: sha512-rtfN/0o8kL1e+78+uxPTqu1Klt0yPzKuQ2BfWwwfgIUSayyzxpM1PJzkKt4V8803uB9qSy32MvI7Xep9khTpiA==} retext@9.0.0: - resolution: - { - integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==, - } + resolution: {integrity: sha512-sbMDcpHCNjvlheSgMfEcVrZko3cDzdbe1x/e7G66dFp0Ff7Mldvi2uv6JkJQzdRcvLYE8CA8Oe8siQx8ZOgTcA==} retry@0.13.1: - resolution: - { - integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==, - } - engines: { node: '>= 4' } + resolution: {integrity: sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==} + engines: {node: '>= 4'} reusify@1.1.0: - resolution: - { - integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==, - } - engines: { iojs: '>=1.0.0', node: '>=0.10.0' } + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} rfdc@1.4.1: - resolution: - { - integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, - } + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==} rimraf@3.0.2: - resolution: - { - integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==, - } + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true rimraf@6.0.1: - resolution: - { - integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==, - } - engines: { node: 20 || >=22 } + resolution: {integrity: sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==} + engines: {node: 20 || >=22} hasBin: true robust-predicates@3.0.2: - resolution: - { - integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==, - } + resolution: {integrity: sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg==} rollup@2.79.2: - resolution: - { - integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==} + engines: {node: '>=10.0.0'} hasBin: true rollup@4.46.4: - resolution: - { - integrity: sha512-YbxoxvoqNg9zAmw4+vzh1FkGAiZRK+LhnSrbSrSXMdZYsRPDWoshcSd/pldKRO6lWzv/e9TiJAVQyirYIeSIPQ==, - } - engines: { node: '>=18.0.0', npm: '>=8.0.0' } + resolution: {integrity: sha512-YbxoxvoqNg9zAmw4+vzh1FkGAiZRK+LhnSrbSrSXMdZYsRPDWoshcSd/pldKRO6lWzv/e9TiJAVQyirYIeSIPQ==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true rope-sequence@1.3.4: - resolution: - { - integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==, - } + resolution: {integrity: sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==} roughjs@4.6.6: - resolution: - { - integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==, - } + resolution: {integrity: sha512-ZUz/69+SYpFN/g/lUlo2FXcIjRkSu3nDarreVdGGndHEBJ6cXPdKguS8JGxwj5HA5xIbVKSmLgr5b3AWxtRfvQ==} rrweb-cssom@0.7.1: - resolution: - { - integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==, - } + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} rrweb-cssom@0.8.0: - resolution: - { - integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==, - } + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} run-async@2.4.1: - resolution: - { - integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==, - } - engines: { node: '>=0.12.0' } + resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} + engines: {node: '>=0.12.0'} run-parallel@1.2.0: - resolution: - { - integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, - } + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} rw@1.3.3: - resolution: - { - integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==, - } + resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==} rxjs@6.6.7: - resolution: - { - integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==, - } - engines: { npm: '>=2.0.0' } + resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} + engines: {npm: '>=2.0.0'} rxjs@7.8.2: - resolution: - { - integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==, - } + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} safe-array-concat@1.1.3: - resolution: - { - integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==, - } - engines: { node: '>=0.4' } + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} + engines: {node: '>=0.4'} safe-buffer@5.1.2: - resolution: - { - integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==, - } + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} safe-buffer@5.2.1: - resolution: - { - integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==, - } + resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} safe-push-apply@1.0.0: - resolution: - { - integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} safe-regex-test@1.1.0: - resolution: - { - integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} safe-stable-stringify@2.5.0: - resolution: - { - integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} + engines: {node: '>=10'} safer-buffer@2.1.2: - resolution: - { - integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, - } + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} saxes@6.0.0: - resolution: - { - integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==, - } - engines: { node: '>=v12.22.7' } + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} + engines: {node: '>=v12.22.7'} scheduler@0.26.0: - resolution: - { - integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==, - } + resolution: {integrity: sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==} scheduler@0.27.0: - resolution: - { - integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==, - } + resolution: {integrity: sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==} schema-utils@3.3.0: - resolution: - { - integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==} + engines: {node: '>= 10.13.0'} schema-utils@4.3.2: - resolution: - { - integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-Gn/JaSk/Mt9gYubxTtSn/QCV4em9mpAPiR1rqy/Ocu19u/G9J5WWdNoUT4SiV6mFC3y6cxyFcFwdzPM3FgxGAQ==} + engines: {node: '>= 10.13.0'} scroll-into-view-if-needed@3.1.0: - resolution: - { - integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==, - } + resolution: {integrity: sha512-49oNpRjWRvnU8NyGVmUaYG4jtTkNonFZI86MmGRDqBphEK2EXT9gdEUoQPZhuBM8yWHxCWbobltqYO5M4XrUvQ==} secure-json-parse@2.7.0: - resolution: - { - integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==, - } + resolution: {integrity: sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw==} secure-json-parse@4.1.0: - resolution: - { - integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==, - } + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} selderee@0.11.0: - resolution: - { - integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==, - } + resolution: {integrity: sha512-5TF+l7p4+OsnP8BCCvSyZiSPc4x4//p5uPwK8TCnVPJYRmU2aYKMpOXvw8zM5a5JvuuCGN1jmsMwuU2W02ukfA==} semver@5.7.2: - resolution: - { - integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==, - } + resolution: {integrity: sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==} hasBin: true semver@6.3.1: - resolution: - { - integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==, - } + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true semver@7.6.2: - resolution: - { - integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + engines: {node: '>=10'} hasBin: true semver@7.7.2: - resolution: - { - integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==} + engines: {node: '>=10'} hasBin: true sentence-case@2.1.1: - resolution: - { - integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==, - } + resolution: {integrity: sha512-ENl7cYHaK/Ktwk5OTD+aDbQ3uC8IByu/6Bkg+HDv8Mm+XnBnppVNalcfJTNsp1ibstKh030/JKQQWglDvtKwEQ==} seq@0.3.5: - resolution: - { - integrity: sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==, - } + resolution: {integrity: sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==} serialize-javascript@6.0.2: - resolution: - { - integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==, - } + resolution: {integrity: sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==} serve-handler@6.1.6: - resolution: - { - integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==, - } + resolution: {integrity: sha512-x5RL9Y2p5+Sh3D38Fh9i/iQ5ZK+e4xuXRd/pGbM4D13tgo/MGwbttUk8emytcr1YYzBYs+apnUngBDFYfpjPuQ==} serve@14.2.4: - resolution: - { - integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-qy1S34PJ/fcY8gjVGszDB3EXiPSk5FKhUa7tQe0UPRddxRidc2V6cNHPNewbE1D7MAkgLuWEt3Vw56vYy73tzQ==} + engines: {node: '>= 14'} hasBin: true server-only@0.0.1: - resolution: - { - integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==, - } + resolution: {integrity: sha512-qepMx2JxAa5jjfzxG79yPPq+8BuFToHd1hm7kI+Z4zAq1ftQiP7HcxMhDDItrbtwVeLg/cY2JnKnrcFkmiswNA==} set-function-length@1.2.2: - resolution: - { - integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} set-function-name@2.0.2: - resolution: - { - integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} set-proto@1.0.0: - resolution: - { - integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} shallow-equal@3.1.0: - resolution: - { - integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==, - } + resolution: {integrity: sha512-pfVOw8QZIXpMbhBWvzBISicvToTiM5WBF1EeAUZDDSb5Dt29yl4AYbyywbJFSEsRUMr7gJaxqCdr4L3tQf9wVg==} sharp@0.34.3: - resolution: - { - integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==, - } - engines: { node: ^18.17.0 || ^20.3.0 || >=21.0.0 } + resolution: {integrity: sha512-eX2IQ6nFohW4DbvHIOLRB3MHFpYqaqvXd3Tp5e/T/dSH83fxaNJQRvDMhASmkNTsNTVF2/OOopzRCt7xokgPfg==} + engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} shebang-command@2.0.0: - resolution: - { - integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} shebang-regex@3.0.0: - resolution: - { - integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} shell-quote@1.8.3: - resolution: - { - integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==} + engines: {node: '>= 0.4'} shiki@3.11.0: - resolution: - { - integrity: sha512-VgKumh/ib38I1i3QkMn6mAQA6XjjQubqaAYhfge71glAll0/4xnt8L2oSuC45Qcr/G5Kbskj4RliMQddGmy/Og==, - } + resolution: {integrity: sha512-VgKumh/ib38I1i3QkMn6mAQA6XjjQubqaAYhfge71glAll0/4xnt8L2oSuC45Qcr/G5Kbskj4RliMQddGmy/Og==} shimmer@1.2.1: - resolution: - { - integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==, - } + resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==} side-channel-list@1.0.0: - resolution: - { - integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} side-channel-map@1.0.1: - resolution: - { - integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} side-channel-weakmap@1.0.2: - resolution: - { - integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} side-channel@1.1.0: - resolution: - { - integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} + engines: {node: '>= 0.4'} siginfo@2.0.0: - resolution: - { - integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, - } + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} signal-exit@3.0.7: - resolution: - { - integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==, - } + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} signal-exit@4.1.0: - resolution: - { - integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, - } - engines: { node: '>=14' } + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} + engines: {node: '>=14'} simple-swizzle@0.2.2: - resolution: - { - integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, - } + resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} sirv@3.0.1: - resolution: - { - integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-FoqMu0NCGBLCcAkS1qA+XJIQTR6/JHfQXl+uGteNCQ76T91DMUjPa9xfmeqMY3z80nLSg9yQmNjK0Px6RWsH/A==} + engines: {node: '>=18'} sisteransi@1.0.5: - resolution: - { - integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==, - } + resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} slash@3.0.0: - resolution: - { - integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} slash@5.1.0: - resolution: - { - integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==} + engines: {node: '>=14.16'} slice-ansi@3.0.0: - resolution: - { - integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} + engines: {node: '>=8'} slice-ansi@5.0.0: - resolution: - { - integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==} + engines: {node: '>=12'} smart-buffer@4.2.0: - resolution: - { - integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==, - } - engines: { node: '>= 6.0.0', npm: '>= 3.0.0' } + resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} + engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} snake-case@2.1.0: - resolution: - { - integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==, - } + resolution: {integrity: sha512-FMR5YoPFwOLuh4rRz92dywJjyKYZNLpMn1R5ujVpIYkbA9p01fq8RMg0FkO4M+Yobt4MjHeLTJVm5xFFBHSV2Q==} socket.io-adapter@2.5.5: - resolution: - { - integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==, - } + resolution: {integrity: sha512-eLDQas5dzPgOWCk9GuuJC2lBqItuhKI4uxGgo9aIV7MYbk2h9Q6uULEh8WBzThoI7l+qU9Ast9fVUmkqPP9wYg==} socket.io-parser@4.2.4: - resolution: - { - integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==} + engines: {node: '>=10.0.0'} socket.io@4.8.0: - resolution: - { - integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==, - } - engines: { node: '>=10.2.0' } + resolution: {integrity: sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==} + engines: {node: '>=10.2.0'} socks-proxy-agent@8.0.5: - resolution: - { - integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-HehCEsotFqbPW9sJ8WVYB6UbmIMv7kUUORIF2Nncq4VQvBfNBLibW9YZR5dlYCSUhwcD628pRllm7n+E+YTzJw==} + engines: {node: '>= 14'} socks@2.8.7: - resolution: - { - integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==, - } - engines: { node: '>= 10.0.0', npm: '>= 3.0.0' } + resolution: {integrity: sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} sonic-boom@3.8.1: - resolution: - { - integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==, - } + resolution: {integrity: sha512-y4Z8LCDBuum+PBP3lSV7RHrXscqksve/bi0as7mhwVnBW+/wUqKT/2Kb7um8yqcFy0duYbbPxzt89Zy2nOCaxg==} sonic-boom@4.2.1: - resolution: - { - integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==, - } + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==} sonner@2.0.7: - resolution: - { - integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==, - } + resolution: {integrity: sha512-W6ZN4p58k8aDKA4XPcx2hpIQXBRAgyiWVkYhT7CvK6D3iAu7xjvVyhQHg2/iaKJZ1XVJ4r7XuwGL+WGEK37i9w==} peerDependencies: react: ^18.0.0 || ^19.0.0 || ^19.0.0-rc react-dom: ^18.0.0 || ^19.0.0 || ^19.0.0-rc source-map-js@1.2.1: - resolution: - { - integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} source-map-support@0.5.21: - resolution: - { - integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==, - } + resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} source-map@0.5.7: - resolution: - { - integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==} + engines: {node: '>=0.10.0'} source-map@0.6.1: - resolution: - { - integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} + engines: {node: '>=0.10.0'} source-map@0.7.6: - resolution: - { - integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==, - } - engines: { node: '>= 12' } + resolution: {integrity: sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==} + engines: {node: '>= 12'} sourcemap-codec@1.4.8: - resolution: - { - integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==, - } + resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} deprecated: Please use @jridgewell/sourcemap-codec instead space-separated-tokens@2.0.2: - resolution: - { - integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==, - } + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} spdx-correct@3.2.0: - resolution: - { - integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==, - } + resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} spdx-exceptions@2.5.0: - resolution: - { - integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==, - } + resolution: {integrity: sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==} spdx-expression-parse@3.0.1: - resolution: - { - integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==, - } + resolution: {integrity: sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==} spdx-license-ids@3.0.22: - resolution: - { - integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==, - } + resolution: {integrity: sha512-4PRT4nh1EImPbt2jASOKHX7PB7I+e4IWNLvkKFDxNhJlfjbYlleYQh285Z/3mPTHSAK/AvdMmw5BNNuYH8ShgQ==} speech-rule-engine@4.1.2: - resolution: - { - integrity: sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==, - } + resolution: {integrity: sha512-S6ji+flMEga+1QU79NDbwZ8Ivf0S/MpupQQiIC0rTpU/ZTKgcajijJJb1OcByBQDjrXCN1/DJtGz4ZJeBMPGJw==} hasBin: true split2@4.2.0: - resolution: - { - integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, - } - engines: { node: '>= 10.x' } + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==} + engines: {node: '>= 10.x'} stackback@0.0.2: - resolution: - { - integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, - } + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} stacktrace-parser@0.1.11: - resolution: - { - integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-WjlahMgHmCJpqzU8bIBy4qtsZdU9lRlcZE3Lvyej6t4tuOuv1vk57OW3MBrj6hXBFx/nNoC9MPMTcr5YA7NQbg==} + engines: {node: '>=6'} standard-as-callback@2.1.0: - resolution: - { - integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==, - } + resolution: {integrity: sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A==} state-local@1.0.7: - resolution: - { - integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==, - } + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} statuses@2.0.2: - resolution: - { - integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} + engines: {node: '>= 0.8'} std-env@3.9.0: - resolution: - { - integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==, - } + resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} stop-iteration-iterator@1.1.0: - resolution: - { - integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==} + engines: {node: '>= 0.4'} storybook@9.1.2: - resolution: - { - integrity: sha512-TYcq7WmgfVCAQge/KueGkVlM/+g33sQcmbATlC3X6y/g2FEeSSLGrb6E6d3iemht8oio+aY6ld3YOdAnMwx45Q==, - } + resolution: {integrity: sha512-TYcq7WmgfVCAQge/KueGkVlM/+g33sQcmbATlC3X6y/g2FEeSSLGrb6E6d3iemht8oio+aY6ld3YOdAnMwx45Q==} hasBin: true peerDependencies: prettier: ^2 || ^3 @@ -19729,189 +13123,108 @@ packages: optional: true stream-browserify@3.0.0: - resolution: - { - integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==, - } + resolution: {integrity: sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==} streamx@2.22.1: - resolution: - { - integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==, - } + resolution: {integrity: sha512-znKXEBxfatz2GBNK02kRnCXjV+AA4kjZIUxeWSr3UGirZMJfTE9uiwKHobnbgxWyL/JWro8tTq+vOqAK1/qbSA==} strict-event-emitter@0.5.1: - resolution: - { - integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==, - } + resolution: {integrity: sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==} string-argv@0.3.2: - resolution: - { - integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==, - } - engines: { node: '>=0.6.19' } + resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==} + engines: {node: '>=0.6.19'} string-width@4.2.3: - resolution: - { - integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} + engines: {node: '>=8'} string-width@5.1.2: - resolution: - { - integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} + engines: {node: '>=12'} string.prototype.trim@1.2.10: - resolution: - { - integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} + engines: {node: '>= 0.4'} string.prototype.trimend@1.0.9: - resolution: - { - integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: - resolution: - { - integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} string_decoder@1.1.1: - resolution: - { - integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==, - } + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} string_decoder@1.3.0: - resolution: - { - integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==, - } + resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} stringify-entities@4.0.4: - resolution: - { - integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==, - } + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} strip-ansi@6.0.1: - resolution: - { - integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} strip-ansi@7.1.0: - resolution: - { - integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==} + engines: {node: '>=12'} strip-bom@3.0.0: - resolution: - { - integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} + engines: {node: '>=4'} strip-final-newline@2.0.0: - resolution: - { - integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} strip-final-newline@3.0.0: - resolution: - { - integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} + engines: {node: '>=12'} strip-indent@3.0.0: - resolution: - { - integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} + engines: {node: '>=8'} strip-indent@4.0.0: - resolution: - { - integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-mnVSV2l+Zv6BLpSD/8V87CW/y9EmmbYzGCIavsnsI6/nwn26DwffM/yztm30Z/I2DY9wdS3vXVCMnHDgZaVNoA==} + engines: {node: '>=12'} strip-json-comments@2.0.1: - resolution: - { - integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} + engines: {node: '>=0.10.0'} strip-json-comments@3.1.1: - resolution: - { - integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} strip-json-comments@5.0.3: - resolution: - { - integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} strip-literal@3.0.0: - resolution: - { - integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==, - } + resolution: {integrity: sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==} strnum@2.1.1: - resolution: - { - integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==, - } + resolution: {integrity: sha512-7ZvoFTiCnGxBtDqJ//Cu6fWtZtc7Y3x+QOirG15wztbdngGSkht27o2pyGWrVy0b4WAy3jbKmnoK6g5VlVNUUw==} + + strnum@2.2.3: + resolution: {integrity: sha512-oKx6RUCuHfT3oyVjtnrmn19H1SiCqgJSg+54XqURKp5aCMbrXrhLjRN9TjuwMjiYstZ0MzDrHqkGZ5dFTKd+zg==} style-mod@4.1.2: - resolution: - { - integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==, - } + resolution: {integrity: sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==} style-to-js@1.1.17: - resolution: - { - integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==, - } + resolution: {integrity: sha512-xQcBGDxJb6jjFCTzvQtfiPn6YvvP2O8U1MDIPNfJQlWMYfktPy+iGsHE7cssjs7y84d9fQaK4UF3RIJaAHSoYA==} style-to-object@1.0.9: - resolution: - { - integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==, - } + resolution: {integrity: sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw==} styled-jsx@5.1.6: - resolution: - { - integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==} + engines: {node: '>= 12.0.0'} peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' @@ -19923,11 +13236,8 @@ packages: optional: true styled-jsx@5.1.7: - resolution: - { - integrity: sha512-HPLmEIYprxCeWDMLYiaaAhsV3yGfIlCqzuVOybE6fjF3SUJmH67nCoMDO+nAvHNHo46OfvpCNu4Rcue82dMNFg==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-HPLmEIYprxCeWDMLYiaaAhsV3yGfIlCqzuVOybE6fjF3SUJmH67nCoMDO+nAvHNHo46OfvpCNu4Rcue82dMNFg==} + engines: {node: '>= 12.0.0'} peerDependencies: '@babel/core': '*' babel-plugin-macros: '*' @@ -19939,184 +13249,104 @@ packages: optional: true stylis@4.2.0: - resolution: - { - integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==, - } + resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==} stylis@4.3.6: - resolution: - { - integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==, - } + resolution: {integrity: sha512-yQ3rwFWRfwNUY7H5vpU0wfdkNSnvnJinhF9830Swlaxl03zsOjCfmX0ugac+3LtK0lYSgwL/KXc8oYL3mG4YFQ==} supports-color@5.5.0: - resolution: - { - integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} + engines: {node: '>=4'} supports-color@7.2.0: - resolution: - { - integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} supports-color@8.1.1: - resolution: - { - integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} supports-hyperlinks@2.3.0: - resolution: - { - integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} + engines: {node: '>=8'} supports-preserve-symlinks-flag@1.0.0: - resolution: - { - integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} + engines: {node: '>= 0.4'} swap-case@1.1.2: - resolution: - { - integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==, - } + resolution: {integrity: sha512-BAmWG6/bx8syfc6qXPprof3Mn5vQgf5dwdUNJhsNqU9WdPt5P+ES/wQ5bxfijy8zwZgZZHslC3iAsxsuQMCzJQ==} symbol-tree@3.2.4: - resolution: - { - integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==, - } + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} system-architecture@0.1.0: - resolution: - { - integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==} + engines: {node: '>=18'} tabbable@6.2.0: - resolution: - { - integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==, - } + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} tagged-comment-parser@1.3.8: - resolution: - { - integrity: sha512-HYkOQ/8ha113ln/Vp48wiDTPtbB59AWOdU44AXjhLyJLJjWWfn2kjnXUcyWLQepwbixA/mEeo1iW2Z9OwaBClQ==, - } + resolution: {integrity: sha512-HYkOQ/8ha113ln/Vp48wiDTPtbB59AWOdU44AXjhLyJLJjWWfn2kjnXUcyWLQepwbixA/mEeo1iW2Z9OwaBClQ==} tailwind-merge@3.4.0: - resolution: - { - integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==, - } + resolution: {integrity: sha512-uSaO4gnW+b3Y2aWoWfFpX62vn2sR3skfhbjsEnaBI81WD1wBLlHZe5sWf0AqjksNdYTbGBEd0UasQMT3SNV15g==} tailwindcss-animate@1.0.7: - resolution: - { - integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==, - } + resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' tailwindcss@4.1.12: - resolution: - { - integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==, - } + resolution: {integrity: sha512-DzFtxOi+7NsFf7DBtI3BJsynR+0Yp6etH+nRPTbpWnS2pZBaSksv/JGctNwSWzbFjp0vxSqknaUylseZqMDGrA==} tailwindcss@4.1.17: - resolution: - { - integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==, - } + resolution: {integrity: sha512-j9Ee2YjuQqYT9bbRTfTZht9W/ytp5H+jJpZKiYdP/bpnXARAuELt9ofP0lPnmHjbga7SNQIxdTAXCmtKVYjN+Q==} tapable@2.2.2: - resolution: - { - integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-Re10+NauLTMCudc7T5WLFLAwDhQ0JWdrMK+9B2M8zR5hRExKmsRDCBA7/aV/pNJFltmBFO5BAMlQFi/vq3nKOg==} + engines: {node: '>=6'} tar-stream@2.2.0: - resolution: - { - integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==} + engines: {node: '>=6'} tar-stream@3.1.7: - resolution: - { - integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==, - } + resolution: {integrity: sha512-qJj60CXt7IU1Ffyc3NJMjh6EkuCFej46zUqJ4J7pqYlThyd9bO0XBTmcOIhSzZJVWfsLks0+nle/j538YAW9RQ==} tar@7.4.3: - resolution: - { - integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-5S7Va8hKfV7W5U6g3aYxXmlPoZVAwUMy9AOKyF2fVuZa2UD3qZjg578OrLRt8PcNN1PleVaL/5/yYATNL0ICUw==} + engines: {node: '>=18'} + deprecated: Old versions of tar are not supported, and contain widely publicized security vulnerabilities, which have been fixed in the current version. Please update. Support for old versions may be purchased (at exorbitant rates) by contacting i@izs.me tarn@3.0.2: - resolution: - { - integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==, - } - engines: { node: '>=8.0.0' } + resolution: {integrity: sha512-51LAVKUSZSVfI05vjPESNc5vwqqZpbXCsU+/+wxlOrUjk2SnFTt97v9ZgQrD4YmxYW1Px6w2KjaDitCfkvgxMQ==} + engines: {node: '>=8.0.0'} temp-dir@1.0.0: - resolution: - { - integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==} + engines: {node: '>=4'} temp-dir@2.0.0: - resolution: - { - integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==} + engines: {node: '>=8'} temp-write@4.0.0: - resolution: - { - integrity: sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-HIeWmj77uOOHb0QX7siN3OtwV3CTntquin6TNVg6SHOqCP3hYKmox90eeFOGaY1MqJ9WYDDjkyZrW6qS5AWpbw==} + engines: {node: '>=8'} tempy@1.0.1: - resolution: - { - integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-biM9brNqxSc04Ee71hzFbryD11nX7VPhQQY32AdDmjFvodsRFz/3ufeoTZ6uYkRFfGo188tENcASNs3vTdsM0w==} + engines: {node: '>=10'} terminal-link@2.1.1: - resolution: - { - integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} + engines: {node: '>=8'} terser-webpack-plugin@5.3.14: - resolution: - { - integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==, - } - engines: { node: '>= 10.13.0' } + resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==} + engines: {node: '>= 10.13.0'} peerDependencies: '@swc/core': '*' esbuild: '*' @@ -20131,267 +13361,147 @@ packages: optional: true terser@5.43.1: - resolution: - { - integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-+6erLbBm0+LROX2sPXlUYx/ux5PyE9K/a92Wrt6oA+WDAoFTdpHE5tCYCI5PNzq2y8df4rA+QgHLJuR4jNymsg==} + engines: {node: '>=10'} hasBin: true test-exclude@7.0.1: - resolution: - { - integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==} + engines: {node: '>=18'} text-decoder@1.2.3: - resolution: - { - integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==, - } + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} thread-stream@2.7.0: - resolution: - { - integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==, - } + resolution: {integrity: sha512-qQiRWsU/wvNolI6tbbCKd9iKaTnCXsTwVxhhKM6nctPdujTyztjlbUkUTUymidWcMnZ5pWR0ej4a0tjsW021vw==} throttle-debounce@3.0.1: - resolution: - { - integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-dTEWWNu6JmeVXY0ZYoPuH5cRIwc0MeGbJwah9KUNYSJwommQpCzTySTpEe8Gs1J23aeWEuAobe4Ag7EHVt/LOg==} + engines: {node: '>=10'} through@2.3.8: - resolution: - { - integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==, - } + resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} tildify@2.0.0: - resolution: - { - integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Cc+OraorugtXNfs50hU9KS369rFXCfgGLpfCfvlc+Ud5u6VWmUQsOAa9HbTvheQdYnrdJqqv1e5oIqXppMYnSw==} + engines: {node: '>=8'} tiny-invariant@1.3.3: - resolution: - { - integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==, - } + resolution: {integrity: sha512-+FbBPE1o9QAYvviau/qC5SE3caw21q3xkvWKBtja5vgqOWIHHJ3ioaq1VPfn/Szqctz2bU/oYeKd9/z5BL+PVg==} tinybench@2.9.0: - resolution: - { - integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, - } + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} tinycolor2@1.6.0: - resolution: - { - integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==, - } + resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==} tinyexec@0.3.2: - resolution: - { - integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==, - } + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} tinyexec@1.0.1: - resolution: - { - integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==, - } + resolution: {integrity: sha512-5uC6DDlmeqiOwCPmK9jMSdOuZTh8bU39Ys6yidB+UTt5hfZUPGAypSgFRiEp+jbi9qH40BLDvy85jIU88wKSqw==} tinyglobby@0.2.14: - resolution: - { - integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==, - } - engines: { node: '>=12.0.0' } + resolution: {integrity: sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==} + engines: {node: '>=12.0.0'} tinygradient@1.1.5: - resolution: - { - integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==, - } + resolution: {integrity: sha512-8nIfc2vgQ4TeLnk2lFj4tRLvvJwEfQuabdsmvDdQPT0xlk9TaNtpGd6nNRxXoK6vQhN6RSzj+Cnp5tTQmpxmbw==} tinypool@1.1.1: - resolution: - { - integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==, - } - engines: { node: ^18.0.0 || >=20.0.0 } + resolution: {integrity: sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==} + engines: {node: ^18.0.0 || >=20.0.0} tinyrainbow@2.0.0: - resolution: - { - integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-op4nsTR47R6p0vMUUoYl/a+ljLFVtlfaXkLQmqfLR1qHma1h/ysYk4hEXZ880bf2CYgTskvTa/e196Vd5dDQXw==} + engines: {node: '>=14.0.0'} tinyspy@3.0.2: - resolution: - { - integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} + engines: {node: '>=14.0.0'} tinyspy@4.0.3: - resolution: - { - integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-t2T/WLB2WRgZ9EpE4jgPJ9w+i66UZfDc8wHh0xrwiRNN+UwH98GIJkTeZqX9rg0i0ptwzqW+uYeIF0T4F8LR7A==} + engines: {node: '>=14.0.0'} title-case@2.1.1: - resolution: - { - integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==, - } + resolution: {integrity: sha512-EkJoZ2O3zdCz3zJsYCsxyq2OC5hrxR9mfdd5I+w8h/tmFfeOxJ+vvkxsKxdmN0WtS9zLdHEgfgVOiMVgv+Po4Q==} title@4.0.1: - resolution: - { - integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==, - } + resolution: {integrity: sha512-xRnPkJx9nvE5MF6LkB5e8QJjE2FW8269wTu/LQdf7zZqBgPly0QJPf/CWAo7srj5so4yXfoLEdCFgurlpi47zg==} hasBin: true tldts-core@6.1.86: - resolution: - { - integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==, - } + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} tldts@6.1.86: - resolution: - { - integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==, - } + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} hasBin: true tmp@0.0.33: - resolution: - { - integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==, - } - engines: { node: '>=0.6.0' } + resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} + engines: {node: '>=0.6.0'} tmp@0.2.1: - resolution: - { - integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==, - } - engines: { node: '>=8.17.0' } + resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} + engines: {node: '>=8.17.0'} to-regex-range@5.0.1: - resolution: - { - integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==, - } - engines: { node: '>=8.0' } + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} totalist@3.0.1: - resolution: - { - integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==} + engines: {node: '>=6'} tough-cookie@4.1.4: - resolution: - { - integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag==} + engines: {node: '>=6'} tough-cookie@5.1.2: - resolution: - { - integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} + engines: {node: '>=16'} tr46@0.0.3: - resolution: - { - integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==, - } + resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} tr46@5.1.1: - resolution: - { - integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} + engines: {node: '>=18'} traverse@0.3.9: - resolution: - { - integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==, - } + resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} traverse@0.6.11: - resolution: - { - integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-vxXDZg8/+p3gblxB6BhhG5yWVn1kGRlaL8O78UDXc3wRnPizB5g83dcvWV1jpDMIPnjZjOFuxlMmE82XJ4407w==} + engines: {node: '>= 0.4'} tree-kill@1.2.2: - resolution: - { - integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==, - } + resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true trim-lines@3.0.1: - resolution: - { - integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==, - } + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} trim-trailing-lines@2.1.0: - resolution: - { - integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==, - } + resolution: {integrity: sha512-5UR5Biq4VlVOtzqkm2AZlgvSlDJtME46uV0br0gENbwN4l5+mMKT4b9gJKqWtuL2zAIqajGJGuvbCbcAJUZqBg==} trough@2.2.0: - resolution: - { - integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==, - } + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} ts-dedent@2.2.0: - resolution: - { - integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==, - } - engines: { node: '>=6.10' } + resolution: {integrity: sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ==} + engines: {node: '>=6.10'} ts-deepmerge@6.2.1: - resolution: - { - integrity: sha512-8CYSLazCyj0DJDpPIxOFzJG46r93uh6EynYjuey+bxcLltBeqZL7DMfaE5ZPzZNFlav7wx+2TDa/mBl8gkTYzw==, - } - engines: { node: '>=14.13.1' } + resolution: {integrity: sha512-8CYSLazCyj0DJDpPIxOFzJG46r93uh6EynYjuey+bxcLltBeqZL7DMfaE5ZPzZNFlav7wx+2TDa/mBl8gkTYzw==} + engines: {node: '>=14.13.1'} ts-morph@26.0.0: - resolution: - { - integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==, - } + resolution: {integrity: sha512-ztMO++owQnz8c/gIENcM9XfCEzgoGphTv+nKpYNM1bgsdOVC/jRZuEBf6N+mLLDNg68Kl+GgUZfOySaRiG1/Ug==} ts-node@10.9.2: - resolution: - { - integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==, - } + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -20405,17 +13515,11 @@ packages: optional: true ts-pattern@4.3.0: - resolution: - { - integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==, - } + resolution: {integrity: sha512-pefrkcd4lmIVR0LA49Imjf9DYLK8vtWhqBPA3Ya1ir8xCW0O2yjL9dsCVvI7pCodLC5q7smNpEtDR2yVulQxOg==} tsconfck@3.1.6: - resolution: - { - integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==, - } - engines: { node: ^18 || >=20 } + resolution: {integrity: sha512-ks6Vjr/jEw0P1gmOVwutM3B7fWxoWBL2KRDb1JfqGVawBmO5UsvmWOQFGHBPl5yxYz4eERr19E6L7NMv+Fej4w==} + engines: {node: ^18 || >=20} hasBin: true peerDependencies: typescript: ^5.0.0 @@ -20424,475 +13528,265 @@ packages: optional: true tsconfig-paths@4.2.0: - resolution: - { - integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} tslib@1.14.1: - resolution: - { - integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==, - } + resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} tslib@2.8.1: - resolution: - { - integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, - } + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} tsx@4.20.5: - resolution: - { - integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-+wKjMNU9w/EaQayHXb7WA7ZaHY6hN8WgfvHNQ3t1PnU91/7O8TcTnIhCDYTZwnt8JsO9IBqZ30Ln1r7pPF52Aw==} + engines: {node: '>=18.0.0'} hasBin: true turbo-darwin-64@2.5.6: - resolution: - { - integrity: sha512-3C1xEdo4aFwMJAPvtlPqz1Sw/+cddWIOmsalHFMrsqqydcptwBfu26WW2cDm3u93bUzMbBJ8k3zNKFqxJ9ei2A==, - } + resolution: {integrity: sha512-3C1xEdo4aFwMJAPvtlPqz1Sw/+cddWIOmsalHFMrsqqydcptwBfu26WW2cDm3u93bUzMbBJ8k3zNKFqxJ9ei2A==} cpu: [x64] os: [darwin] turbo-darwin-arm64@2.5.6: - resolution: - { - integrity: sha512-LyiG+rD7JhMfYwLqB6k3LZQtYn8CQQUePbpA8mF/hMLPAekXdJo1g0bUPw8RZLwQXUIU/3BU7tXENvhSGz5DPA==, - } + resolution: {integrity: sha512-LyiG+rD7JhMfYwLqB6k3LZQtYn8CQQUePbpA8mF/hMLPAekXdJo1g0bUPw8RZLwQXUIU/3BU7tXENvhSGz5DPA==} cpu: [arm64] os: [darwin] turbo-linux-64@2.5.6: - resolution: - { - integrity: sha512-GOcUTT0xiT/pSnHL4YD6Yr3HreUhU8pUcGqcI2ksIF9b2/r/kRHwGFcsHgpG3+vtZF/kwsP0MV8FTlTObxsYIA==, - } + resolution: {integrity: sha512-GOcUTT0xiT/pSnHL4YD6Yr3HreUhU8pUcGqcI2ksIF9b2/r/kRHwGFcsHgpG3+vtZF/kwsP0MV8FTlTObxsYIA==} cpu: [x64] os: [linux] turbo-linux-arm64@2.5.6: - resolution: - { - integrity: sha512-10Tm15bruJEA3m0V7iZcnQBpObGBcOgUcO+sY7/2vk1bweW34LMhkWi8svjV9iDF68+KJDThnYDlYE/bc7/zzQ==, - } + resolution: {integrity: sha512-10Tm15bruJEA3m0V7iZcnQBpObGBcOgUcO+sY7/2vk1bweW34LMhkWi8svjV9iDF68+KJDThnYDlYE/bc7/zzQ==} cpu: [arm64] os: [linux] turbo-windows-64@2.5.6: - resolution: - { - integrity: sha512-FyRsVpgaj76It0ludwZsNN40ytHN+17E4PFJyeliBEbxrGTc5BexlXVpufB7XlAaoaZVxbS6KT8RofLfDRyEPg==, - } + resolution: {integrity: sha512-FyRsVpgaj76It0ludwZsNN40ytHN+17E4PFJyeliBEbxrGTc5BexlXVpufB7XlAaoaZVxbS6KT8RofLfDRyEPg==} cpu: [x64] os: [win32] turbo-windows-arm64@2.5.6: - resolution: - { - integrity: sha512-j/tWu8cMeQ7HPpKri6jvKtyXg9K1gRyhdK4tKrrchH8GNHscPX/F71zax58yYtLRWTiK04zNzPcUJuoS0+v/+Q==, - } + resolution: {integrity: sha512-j/tWu8cMeQ7HPpKri6jvKtyXg9K1gRyhdK4tKrrchH8GNHscPX/F71zax58yYtLRWTiK04zNzPcUJuoS0+v/+Q==} cpu: [arm64] os: [win32] turbo@2.5.6: - resolution: - { - integrity: sha512-gxToHmi9oTBNB05UjUsrWf0OyN5ZXtD0apOarC1KIx232Vp3WimRNy3810QzeNSgyD5rsaIDXlxlbnOzlouo+w==, - } + resolution: {integrity: sha512-gxToHmi9oTBNB05UjUsrWf0OyN5ZXtD0apOarC1KIx232Vp3WimRNy3810QzeNSgyD5rsaIDXlxlbnOzlouo+w==} hasBin: true twoslash-protocol@0.3.4: - resolution: - { - integrity: sha512-HHd7lzZNLUvjPzG/IE6js502gEzLC1x7HaO1up/f72d8G8ScWAs9Yfa97igelQRDl5h9tGcdFsRp+lNVre1EeQ==, - } + resolution: {integrity: sha512-HHd7lzZNLUvjPzG/IE6js502gEzLC1x7HaO1up/f72d8G8ScWAs9Yfa97igelQRDl5h9tGcdFsRp+lNVre1EeQ==} twoslash@0.3.4: - resolution: - { - integrity: sha512-RtJURJlGRxrkJmTcZMjpr7jdYly1rfgpujJr1sBM9ch7SKVht/SjFk23IOAyvwT1NLCk+SJiMrvW4rIAUM2Wug==, - } + resolution: {integrity: sha512-RtJURJlGRxrkJmTcZMjpr7jdYly1rfgpujJr1sBM9ch7SKVht/SjFk23IOAyvwT1NLCk+SJiMrvW4rIAUM2Wug==} peerDependencies: typescript: ^5.5.0 type-check@0.4.0: - resolution: - { - integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, - } - engines: { node: '>= 0.8.0' } + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} type-fest@0.16.0: - resolution: - { - integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==} + engines: {node: '>=10'} type-fest@0.21.3: - resolution: - { - integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} + engines: {node: '>=10'} type-fest@0.6.0: - resolution: - { - integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} + engines: {node: '>=8'} type-fest@0.7.1: - resolution: - { - integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-Ne2YiiGN8bmrmJJEuTWTLJR32nh/JdL1+PSicowtNb0WFpn59GK8/lfD61bVtzguz7b3PBt74nxpv/Pw5po5Rg==} + engines: {node: '>=8'} type-fest@0.8.1: - resolution: - { - integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==} + engines: {node: '>=8'} type-fest@1.4.0: - resolution: - { - integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==} + engines: {node: '>=10'} type-fest@2.19.0: - resolution: - { - integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==, - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==} + engines: {node: '>=12.20'} type-fest@3.13.1: - resolution: - { - integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==, - } - engines: { node: '>=14.16' } + resolution: {integrity: sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==} + engines: {node: '>=14.16'} type-fest@4.41.0: - resolution: - { - integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==, - } - engines: { node: '>=16' } + resolution: {integrity: sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==} + engines: {node: '>=16'} typed-array-buffer@1.0.3: - resolution: - { - integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} + engines: {node: '>= 0.4'} typed-array-byte-length@1.0.3: - resolution: - { - integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} + engines: {node: '>= 0.4'} typed-array-byte-offset@1.0.4: - resolution: - { - integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} + engines: {node: '>= 0.4'} typed-array-length@1.0.7: - resolution: - { - integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} typedarray.prototype.slice@1.0.5: - resolution: - { - integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-q7QNVDGTdl702bVFiI5eY4l/HkgCM6at9KhcFbgUAzezHFbOVy4+0O/lCjsABEQwbZPravVfBIiBVGo89yzHFg==} + engines: {node: '>= 0.4'} typedarray@0.0.6: - resolution: - { - integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==, - } + resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} typescript@5.9.2: - resolution: - { - integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==, - } - engines: { node: '>=14.17' } + resolution: {integrity: sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==} + engines: {node: '>=14.17'} hasBin: true uc.micro@2.1.0: - resolution: - { - integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==, - } + resolution: {integrity: sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==} ufo@1.6.1: - resolution: - { - integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==, - } + resolution: {integrity: sha512-9a4/uxlTWJ4+a5i0ooc1rU7C7YOw3wT+UGqdeNNHWnOF9qcMBgLRS+4IYUqbczewFx4mLEig6gawh7X6mFlEkA==} uglify-js@3.19.3: - resolution: - { - integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==, - } - engines: { node: '>=0.8.0' } + resolution: {integrity: sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==} + engines: {node: '>=0.8.0'} hasBin: true unbox-primitive@1.1.0: - resolution: - { - integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} undici-types@6.21.0: - resolution: - { - integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==, - } + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} undici-types@7.10.0: - resolution: - { - integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==, - } + resolution: {integrity: sha512-t5Fy/nfn+14LuOc2KNYg75vZqClpAiqscVvMygNnlsHBFpSXdJaYtXMcdNLpl/Qvc3P2cB3s6lOV51nqsFq4ag==} unicode-canonical-property-names-ecmascript@2.0.1: - resolution: - { - integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==} + engines: {node: '>=4'} unicode-match-property-ecmascript@2.0.0: - resolution: - { - integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==} + engines: {node: '>=4'} unicode-match-property-value-ecmascript@2.2.0: - resolution: - { - integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==} + engines: {node: '>=4'} unicode-property-aliases-ecmascript@2.1.0: - resolution: - { - integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==, - } - engines: { node: '>=4' } + resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} + engines: {node: '>=4'} unicorn-magic@0.1.0: - resolution: - { - integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==} + engines: {node: '>=18'} unified@11.0.5: - resolution: - { - integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==, - } + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} unique-string@2.0.0: - resolution: - { - integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} + engines: {node: '>=8'} unist-util-filter@5.0.1: - resolution: - { - integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==, - } + resolution: {integrity: sha512-pHx7D4Zt6+TsfwylH9+lYhBhzyhEnCXs/lbq/Hstxno5z4gVdyc2WEW0asfjGKPyG4pEKrnBv5hdkO6+aRnQJw==} unist-util-find-after@5.0.0: - resolution: - { - integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==, - } + resolution: {integrity: sha512-amQa0Ep2m6hE2g72AugUItjbuM8X8cGQnFoHk0pGfrFeT9GZhzN5SW8nRsiGKK7Aif4CrACPENkA6P/Lw6fHGQ==} unist-util-is@5.2.1: - resolution: - { - integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==, - } + resolution: {integrity: sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw==} unist-util-is@6.0.0: - resolution: - { - integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==, - } + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} unist-util-modify-children@4.0.0: - resolution: - { - integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==, - } + resolution: {integrity: sha512-+tdN5fGNddvsQdIzUF3Xx82CU9sMM+fA0dLgR9vOmT0oPT2jH+P1nd5lSqfCfXAw+93NhcXNY2qqvTUtE4cQkw==} unist-util-position-from-estree@2.0.0: - resolution: - { - integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==, - } + resolution: {integrity: sha512-KaFVRjoqLyF6YXCbVLNad/eS4+OfPQQn2yOd7zF/h5T/CSL2v8NpN6a5TPvtbXthAGw5nG+PuTtq+DdIZr+cRQ==} unist-util-position@5.0.0: - resolution: - { - integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==, - } + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} unist-util-remove-position@5.0.0: - resolution: - { - integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==, - } + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} unist-util-remove@4.0.0: - resolution: - { - integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==, - } + resolution: {integrity: sha512-b4gokeGId57UVRX/eVKej5gXqGlc9+trkORhFJpu9raqZkZhU0zm8Doi05+HaiBsMEIJowL+2WtQ5ItjsngPXg==} unist-util-stringify-position@4.0.0: - resolution: - { - integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==, - } + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} unist-util-visit-children@3.0.0: - resolution: - { - integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==, - } + resolution: {integrity: sha512-RgmdTfSBOg04sdPcpTSD1jzoNBjt9a80/ZCzp5cI9n1qPzLZWF9YdvWGN2zmTumP1HWhXKdUWexjy/Wy/lJ7tA==} unist-util-visit-parents@4.1.1: - resolution: - { - integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==, - } + resolution: {integrity: sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw==} unist-util-visit-parents@6.0.1: - resolution: - { - integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==, - } + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} unist-util-visit@3.1.0: - resolution: - { - integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==, - } + resolution: {integrity: sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA==} unist-util-visit@5.0.0: - resolution: - { - integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==, - } + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} universalify@0.2.0: - resolution: - { - integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==, - } - engines: { node: '>= 4.0.0' } + resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} + engines: {node: '>= 4.0.0'} universalify@2.0.1: - resolution: - { - integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==, - } - engines: { node: '>= 10.0.0' } + resolution: {integrity: sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==} + engines: {node: '>= 10.0.0'} unplugin@1.0.1: - resolution: - { - integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==, - } + resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} unplugin@1.16.1: - resolution: - { - integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-4/u/j4FrCKdi17jaxuJA0jClGxB1AvU2hw/IuayPc4ay1XGaJs/rbb4v5WKwAjNifjmXK9PIFyuPiaK8azyR9w==} + engines: {node: '>=14.0.0'} update-browserslist-db@1.1.3: - resolution: - { - integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==, - } + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' update-check@1.5.4: - resolution: - { - integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==, - } + resolution: {integrity: sha512-5YHsflzHP4t1G+8WGPlvKbJEbAJGCgw+Em+dGR1KmBUbr1J36SJBqlHLjR7oob7sco5hWHGQVcr9B2poIVDDTQ==} upper-case-first@1.1.2: - resolution: - { - integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==, - } + resolution: {integrity: sha512-wINKYvI3Db8dtjikdAqoBbZoP6Q+PZUyfMR7pmwHzjC2quzSkUq5DmPrTtPEqHaz8AGtmsB4TqwapMTM1QAQOQ==} upper-case@1.1.3: - resolution: - { - integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==, - } + resolution: {integrity: sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==} uri-js@4.4.1: - resolution: - { - integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==, - } + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} url-parse@1.5.10: - resolution: - { - integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==, - } + resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} url-template@2.0.8: - resolution: - { - integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==, - } + resolution: {integrity: sha512-XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==} use-callback-ref@1.3.3: - resolution: - { - integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} + engines: {node: '>=10'} peerDependencies: '@types/react': '*' react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc @@ -20901,39 +13795,27 @@ packages: optional: true use-debounce@10.0.5: - resolution: - { - integrity: sha512-Q76E3lnIV+4YT9AHcrHEHYmAd9LKwUAbPXDm7FlqVGDHiSOhX3RDjT8dm0AxbJup6WgOb1YEcKyCr11kBJR5KQ==, - } - engines: { node: '>= 16.0.0' } + resolution: {integrity: sha512-Q76E3lnIV+4YT9AHcrHEHYmAd9LKwUAbPXDm7FlqVGDHiSOhX3RDjT8dm0AxbJup6WgOb1YEcKyCr11kBJR5KQ==} + engines: {node: '>= 16.0.0'} peerDependencies: react: '*' use-deep-compare-effect@1.8.1: - resolution: - { - integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==, - } - engines: { node: '>=10', npm: '>=6' } + resolution: {integrity: sha512-kbeNVZ9Zkc0RFGpfMN3MNfaKNvcLNyxOAAd9O4CBZ+kCBXXscn9s/4I+8ytUER4RDpEYs5+O6Rs4PqiZ+rHr5Q==} + engines: {node: '>=10', npm: '>=6'} peerDependencies: react: '>=16.13' use-next-sse@0.2.3: - resolution: - { - integrity: sha512-THr8yqtMaG59nzUtF9r4i23SiBfMC0OyUTDkW5CPgX4xxaZLUlpME/205bj5j8i3/89yFLpI0Yk4mv4WuM6rxQ==, - } + resolution: {integrity: sha512-THr8yqtMaG59nzUtF9r4i23SiBfMC0OyUTDkW5CPgX4xxaZLUlpME/205bj5j8i3/89yFLpI0Yk4mv4WuM6rxQ==} peerDependencies: next: '>=13.5.9 >=14.2.25 >=15.2.3' react: '>=18.0.0' react-dom: '>=18.0.0' use-sidecar@1.1.3: - resolution: - { - integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} + engines: {node: '>=10'} peerDependencies: '@types/react': '-' react: '-' @@ -20942,128 +13824,74 @@ packages: optional: true use-sync-external-store@1.5.0: - resolution: - { - integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==, - } + resolution: {integrity: sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==} peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 util-deprecate@1.0.2: - resolution: - { - integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, - } + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} uuid@11.1.0: - resolution: - { - integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==, - } + resolution: {integrity: sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==} hasBin: true uuid@3.4.0: - resolution: - { - integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==, - } + resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true uuid@8.3.2: - resolution: - { - integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==, - } + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true uuid@9.0.0: - resolution: - { - integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==, - } + resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} hasBin: true uuid@9.0.1: - resolution: - { - integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==, - } + resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} hasBin: true v8-compile-cache-lib@3.0.1: - resolution: - { - integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==, - } + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} v8-compile-cache@2.4.0: - resolution: - { - integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==, - } + resolution: {integrity: sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==} validate-npm-package-license@3.0.4: - resolution: - { - integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==, - } + resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} validate-npm-package-name@5.0.1: - resolution: - { - integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==, - } - engines: { node: ^14.17.0 || ^16.13.0 || >=18.0.0 } + resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} + engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} vary@1.1.2: - resolution: - { - integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, - } - engines: { node: '>= 0.8' } + resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} + engines: {node: '>= 0.8'} vfile-location@5.0.3: - resolution: - { - integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==, - } + resolution: {integrity: sha512-5yXvWDEgqeiYiBe1lbxYF7UMAIm/IcopxMHrMQDq3nvKcjPKIhZklUKL+AE7J7uApI4kwe2snsK+eI6UTj9EHg==} vfile-message@4.0.3: - resolution: - { - integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==, - } + resolution: {integrity: sha512-QTHzsGd1EhbZs4AsQ20JX1rC3cOlt/IWJruk893DfLRr57lcnOeMaWG4K0JrRta4mIJZKth2Au3mM3u03/JWKw==} vfile@6.0.3: - resolution: - { - integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==, - } + resolution: {integrity: sha512-KzIbH/9tXat2u30jf+smMwFCsno4wHVdNmzFyL+T/L3UGqqk6JKfVqOFOZEpZSHADH1k40ab6NUIXZq422ov3Q==} vite-node@3.2.4: - resolution: - { - integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==, - } - engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } + resolution: {integrity: sha512-EbKSKh+bh1E1IFxeO0pg1n4dvoOTt0UDiXMd/qn++r98+jPO1xtJilvXldeuQ8giIB5IkpjCgMleHMNEsGH6pg==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true vite-plugin-storybook-nextjs@2.0.6: - resolution: - { - integrity: sha512-lx0UhPIc3bIygsJyP0Bczarj2sV+fqzAkrg88jmJkVST26VuQPcErnsXCSR9gB3ElQQvK4bN2E5ojJFtXwvSiA==, - } + resolution: {integrity: sha512-lx0UhPIc3bIygsJyP0Bczarj2sV+fqzAkrg88jmJkVST26VuQPcErnsXCSR9gB3ElQQvK4bN2E5ojJFtXwvSiA==} peerDependencies: next: ^14.1.0 || ^15.0.0 storybook: ^0.0.0-0 || ^9.0.0 || ^9.1.0-0 vite: ^5.0.0 || ^6.0.0 || ^7.0.0 vite-tsconfig-paths@5.1.4: - resolution: - { - integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==, - } + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: vite: '*' peerDependenciesMeta: @@ -21071,11 +13899,8 @@ packages: optional: true vite@6.3.5: - resolution: - { - integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==, - } - engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } + resolution: {integrity: sha512-cZn6NDFE7wdTpINgs++ZJ4N49W2vRp8LCKrn3Ob1kYNtOo21vfDoaV5GzBfLU4MovSAB8uNRm4jgzVQZ+mBzPQ==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@types/node': ^18.0.0 || ^20.0.0 || >=22.0.0 @@ -21114,11 +13939,8 @@ packages: optional: true vitest@3.2.4: - resolution: - { - integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==, - } - engines: { node: ^18.0.0 || ^20.0.0 || >=22.0.0 } + resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} + engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' @@ -21145,113 +13967,62 @@ packages: optional: true vscode-jsonrpc@8.2.0: - resolution: - { - integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==, - } - engines: { node: '>=14.0.0' } + resolution: {integrity: sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==} + engines: {node: '>=14.0.0'} vscode-languageserver-protocol@3.17.5: - resolution: - { - integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==, - } + resolution: {integrity: sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==} vscode-languageserver-textdocument@1.0.12: - resolution: - { - integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==, - } + resolution: {integrity: sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==} vscode-languageserver-types@3.17.5: - resolution: - { - integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==, - } + resolution: {integrity: sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==} vscode-languageserver@9.0.1: - resolution: - { - integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==, - } + resolution: {integrity: sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==} hasBin: true vscode-uri@3.0.8: - resolution: - { - integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==, - } + resolution: {integrity: sha512-AyFQ0EVmsOZOlAnxoFOGOq1SQDWAB7C6aqMGS23svWAllfOaxbuFvcT8D1i8z3Gyn8fraVeZNNmN6e9bxxXkKw==} w3c-keyname@2.2.8: - resolution: - { - integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==, - } + resolution: {integrity: sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==} w3c-xmlserializer@5.0.0: - resolution: - { - integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} + engines: {node: '>=18'} watchpack@2.4.4: - resolution: - { - integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-c5EGNOiyxxV5qmTtAB7rbiXxi1ooX1pQKMLX/MIabJjRA0SJBQOjKF+KSVfHkr9U1cADPon0mRiVe/riyaiDUA==} + engines: {node: '>=10.13.0'} wcwidth@1.0.1: - resolution: - { - integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==, - } + resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} web-namespaces@2.0.1: - resolution: - { - integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==, - } + resolution: {integrity: sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==} webidl-conversions@3.0.1: - resolution: - { - integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==, - } + resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} webidl-conversions@7.0.0: - resolution: - { - integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} + engines: {node: '>=12'} webpack-sources@3.3.3: - resolution: - { - integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-yd1RBzSGanHkitROoPFd6qsrxt+oFhg/129YzheDGqeustzX0vTZJZsSsQjVQC4yzBQ56K55XU8gaNCtIzOnTg==} + engines: {node: '>=10.13.0'} webpack-virtual-modules@0.5.0: - resolution: - { - integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==, - } + resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==} webpack-virtual-modules@0.6.2: - resolution: - { - integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==, - } + resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==} webpack@5.94.0: - resolution: - { - integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==, - } - engines: { node: '>=10.13.0' } + resolution: {integrity: sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==} + engines: {node: '>=10.13.0'} hasBin: true peerDependencies: webpack-cli: '*' @@ -21260,141 +14031,82 @@ packages: optional: true whatwg-encoding@3.1.1: - resolution: - { - integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} + engines: {node: '>=18'} + deprecated: Use @exodus/bytes instead for a more spec-conformant and faster implementation whatwg-mimetype@4.0.0: - resolution: - { - integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} + engines: {node: '>=18'} whatwg-url@14.2.0: - resolution: - { - integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} + engines: {node: '>=18'} whatwg-url@5.0.0: - resolution: - { - integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==, - } + resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} which-boxed-primitive@1.1.1: - resolution: - { - integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} which-builtin-type@1.2.1: - resolution: - { - integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} + engines: {node: '>= 0.4'} which-collection@1.0.2: - resolution: - { - integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} which-typed-array@1.1.19: - resolution: - { - integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==, - } - engines: { node: '>= 0.4' } + resolution: {integrity: sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==} + engines: {node: '>= 0.4'} which@2.0.2: - resolution: - { - integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==, - } - engines: { node: '>= 8' } + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} hasBin: true why-is-node-running@2.3.0: - resolution: - { - integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==} + engines: {node: '>=8'} hasBin: true wicked-good-xpath@1.3.0: - resolution: - { - integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==, - } + resolution: {integrity: sha512-Gd9+TUn5nXdwj/hFsPVx5cuHHiF5Bwuc30jZ4+ronF1qHK5O7HD0sgmXWSEgwKquT3ClLoKPVbO6qGwVwLzvAw==} widest-line@4.0.1: - resolution: - { - integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==} + engines: {node: '>=12'} wildcard@1.1.2: - resolution: - { - integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==, - } + resolution: {integrity: sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==} word-wrap@1.2.5: - resolution: - { - integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==, - } - engines: { node: '>=0.10.0' } + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} wordwrap@1.0.0: - resolution: - { - integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==, - } + resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==} wrap-ansi@6.2.0: - resolution: - { - integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==, - } - engines: { node: '>=8' } + resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==} + engines: {node: '>=8'} wrap-ansi@7.0.0: - resolution: - { - integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} + engines: {node: '>=10'} wrap-ansi@8.1.0: - resolution: - { - integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==} + engines: {node: '>=12'} wrappy@1.0.2: - resolution: - { - integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==, - } + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} ws@8.17.1: - resolution: - { - integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==} + engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -21405,11 +14117,8 @@ packages: optional: true ws@8.18.3: - resolution: - { - integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==, - } - engines: { node: '>=10.0.0' } + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} + engines: {node: '>=10.0.0'} peerDependencies: bufferutil: ^4.0.1 utf-8-validate: '>=5.0.2' @@ -21420,163 +14129,94 @@ packages: optional: true xml-name-validator@5.0.0: - resolution: - { - integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} + engines: {node: '>=18'} xmlchars@2.2.0: - resolution: - { - integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==, - } + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} xtend@4.0.2: - resolution: - { - integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==, - } - engines: { node: '>=0.4' } + resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} + engines: {node: '>=0.4'} y18n@5.0.8: - resolution: - { - integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} + engines: {node: '>=10'} yallist@3.1.1: - resolution: - { - integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==, - } + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} yallist@4.0.0: - resolution: - { - integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==, - } + resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} yallist@5.0.0: - resolution: - { - integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==} + engines: {node: '>=18'} yaml@1.10.2: - resolution: - { - integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==, - } - engines: { node: '>= 6' } + resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} + engines: {node: '>= 6'} yaml@2.3.1: - resolution: - { - integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==, - } - engines: { node: '>= 14' } + resolution: {integrity: sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==} + engines: {node: '>= 14'} yaml@2.8.1: - resolution: - { - integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==, - } - engines: { node: '>= 14.6' } + resolution: {integrity: sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==} + engines: {node: '>= 14.6'} hasBin: true yargs-parser@21.1.1: - resolution: - { - integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} + engines: {node: '>=12'} yargs@17.7.2: - resolution: - { - integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==, - } - engines: { node: '>=12' } + resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} + engines: {node: '>=12'} yjs@13.6.19: - resolution: - { - integrity: sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==, - } - engines: { node: '>=16.0.0', npm: '>=8.0.0' } + resolution: {integrity: sha512-GNKw4mEUn5yWU2QPHRx8jppxmCm9KzbBhB4qJLUJFiiYD0g/tDVgXQ7aPkyh01YO28kbs2J/BEbWBagjuWyejw==} + engines: {node: '>=16.0.0', npm: '>=8.0.0'} yn@3.1.1: - resolution: - { - integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==, - } - engines: { node: '>=6' } + resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} + engines: {node: '>=6'} yocto-queue@0.1.0: - resolution: - { - integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==, - } - engines: { node: '>=10' } + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} yocto-queue@1.2.1: - resolution: - { - integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==, - } - engines: { node: '>=12.20' } + resolution: {integrity: sha512-AyeEbWOu/TAXdxlV9wmGcR0+yh2j3vYPGOECcIj2S7MkrLyC7ne+oye2BKTItt0ii2PHk4cDy+95+LshzbXnGg==} + engines: {node: '>=12.20'} yoctocolors-cjs@2.1.2: - resolution: - { - integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==, - } - engines: { node: '>=18' } + resolution: {integrity: sha512-cYVsTjKl8b+FrnidjibDWskAv7UKOfcwaVZdp/it9n1s9fU3IkgDbhdIRKCW4JDsAlECJY0ytoVPT3sK6kideA==} + engines: {node: '>=18'} zip-stream@4.1.1: - resolution: - { - integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==, - } - engines: { node: '>= 10' } + resolution: {integrity: sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ==} + engines: {node: '>= 10'} zip-stream@5.0.2: - resolution: - { - integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==, - } - engines: { node: '>= 12.0.0' } + resolution: {integrity: sha512-LfOdrUvPB8ZoXtvOBz6DlNClfvi//b5d56mSWyJi7XbH/HfhOHfUhOqxhT/rUiR7yiktlunqRo+jY6y/cWC/5g==} + engines: {node: '>= 12.0.0'} zod-validation-error@5.0.0: - resolution: - { - integrity: sha512-hmk+pkyKq7Q71PiWVSDUc3VfpzpvcRHZ3QPw9yEMVvmtCekaMeOHnbr3WbxfrgEnQTv6haGP4cmv0Ojmihzsxw==, - } - engines: { node: '>=18.0.0' } + resolution: {integrity: sha512-hmk+pkyKq7Q71PiWVSDUc3VfpzpvcRHZ3QPw9yEMVvmtCekaMeOHnbr3WbxfrgEnQTv6haGP4cmv0Ojmihzsxw==} + engines: {node: '>=18.0.0'} peerDependencies: zod: ^3.25.0 || ^4.0.0 zod@3.25.76: - resolution: - { - integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==, - } + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==} zod@4.0.0-beta.20250424T163858: - resolution: - { - integrity: sha512-fKhW+lEJnfUGo0fvQjmam39zUytARR2UdCEh7/OXJSBbKScIhD343K74nW+UUHu/r6dkzN6Uc/GqwogFjzpCXg==, - } + resolution: {integrity: sha512-fKhW+lEJnfUGo0fvQjmam39zUytARR2UdCEh7/OXJSBbKScIhD343K74nW+UUHu/r6dkzN6Uc/GqwogFjzpCXg==} zustand@4.5.7: - resolution: - { - integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==, - } - engines: { node: '>=12.7.0' } + resolution: {integrity: sha512-CHOUy7mu3lbD6o6LJLfllpjkzhHXSBlX8B9+qPddUsIfeF5S/UZ5q0kmCsnRqT1UHFQZchNFDDzMbQsuesHWlw==} + engines: {node: '>=12.7.0'} peerDependencies: '@types/react': '>=16.8' immer: '>=9.0.6' @@ -21590,11 +14230,8 @@ packages: optional: true zustand@5.0.8: - resolution: - { - integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==, - } - engines: { node: '>=12.20.0' } + resolution: {integrity: sha512-gyPKpIaxY9XcO2vSMrLbiER7QMAMGOQZVRdJ6Zi782jkbzZygq5GI9nG8g+sMgitRtndwaBSl7uiqC49o1SSiw==} + engines: {node: '>=12.20.0'} peerDependencies: '@types/react': '>=18.0.0' immer: '>=9.0.6' @@ -21611,12 +14248,10 @@ packages: optional: true zwitch@2.0.4: - resolution: - { - integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==, - } + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} snapshots: + '@adobe/css-tools@4.4.4': {} '@alloc/quick-lru@5.2.0': {} @@ -21652,20 +14287,20 @@ snapshots: '@aws-crypto/crc32@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/crc32c@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/sha1-browser@5.2.0': dependencies: '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-locate-window': 3.804.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -21675,7 +14310,7 @@ snapshots: '@aws-crypto/sha256-js': 5.2.0 '@aws-crypto/supports-web-crypto': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 + '@aws-sdk/types': 3.973.8 '@aws-sdk/util-locate-window': 3.804.0 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 @@ -21683,7 +14318,7 @@ snapshots: '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 - '@aws-sdk/types': 3.862.0 + '@aws-sdk/types': 3.973.8 tslib: 2.8.1 '@aws-crypto/supports-web-crypto@5.2.0': @@ -21692,10 +14327,70 @@ snapshots: '@aws-crypto/util@5.2.0': dependencies: - '@aws-sdk/types': 3.862.0 + '@aws-sdk/types': 3.973.8 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 + '@aws-sdk/client-s3@3.1038.0': + dependencies: + '@aws-crypto/sha1-browser': 5.2.0 + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.6 + '@aws-sdk/credential-provider-node': 3.972.37 + '@aws-sdk/middleware-bucket-endpoint': 3.972.10 + '@aws-sdk/middleware-expect-continue': 3.972.10 + '@aws-sdk/middleware-flexible-checksums': 3.974.14 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-location-constraint': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-sdk-s3': 3.972.35 + '@aws-sdk/middleware-ssec': 3.972.10 + '@aws-sdk/middleware-user-agent': 3.972.36 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.23 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.22 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/eventstream-serde-browser': 4.2.14 + '@smithy/eventstream-serde-config-resolver': 4.3.14 + '@smithy/eventstream-serde-node': 4.2.14 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-blob-browser': 4.2.15 + '@smithy/hash-node': 4.2.14 + '@smithy/hash-stream-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/md5-js': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/client-s3@3.864.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 @@ -21865,6 +14560,28 @@ snapshots: fast-xml-parser: 5.2.5 tslib: 2.8.1 + '@aws-sdk/core@3.974.6': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws-sdk/xml-builder': 3.972.21 + '@smithy/core': 3.23.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@aws-sdk/crc64-nvme@3.972.7': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -21873,6 +14590,14 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-env@3.972.32': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -21886,6 +14611,19 @@ snapshots: '@smithy/util-stream': 4.2.4 tslib: 2.8.1 + '@aws-sdk/credential-provider-http@3.972.34': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/types': 3.973.8 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.1 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.25 + tslib: 2.8.1 + '@aws-sdk/credential-provider-ini@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -21904,6 +14642,38 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-ini@3.972.36': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/credential-provider-env': 3.972.32 + '@aws-sdk/credential-provider-http': 3.972.34 + '@aws-sdk/credential-provider-login': 3.972.36 + '@aws-sdk/credential-provider-process': 3.972.32 + '@aws-sdk/credential-provider-sso': 3.972.36 + '@aws-sdk/credential-provider-web-identity': 3.972.36 + '@aws-sdk/nested-clients': 3.997.4 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/credential-provider-login@3.972.36': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/nested-clients': 3.997.4 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-node@3.864.0': dependencies: '@aws-sdk/credential-provider-env': 3.864.0 @@ -21921,6 +14691,23 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-node@3.972.37': + dependencies: + '@aws-sdk/credential-provider-env': 3.972.32 + '@aws-sdk/credential-provider-http': 3.972.34 + '@aws-sdk/credential-provider-ini': 3.972.36 + '@aws-sdk/credential-provider-process': 3.972.32 + '@aws-sdk/credential-provider-sso': 3.972.36 + '@aws-sdk/credential-provider-web-identity': 3.972.36 + '@aws-sdk/types': 3.973.8 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-process@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -21930,6 +14717,15 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/credential-provider-process@3.972.32': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/credential-provider-sso@3.864.0': dependencies: '@aws-sdk/client-sso': 3.864.0 @@ -21943,6 +14739,19 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-sso@3.972.36': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/nested-clients': 3.997.4 + '@aws-sdk/token-providers': 3.1038.0 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/credential-provider-web-identity@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -21954,6 +14763,30 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/credential-provider-web-identity@3.972.36': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/nested-clients': 3.997.4 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + + '@aws-sdk/lib-storage@3.1038.0(@aws-sdk/client-s3@3.1038.0)': + dependencies: + '@aws-sdk/client-s3': 3.1038.0 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + buffer: 5.6.0 + events: 3.3.0 + stream-browserify: 3.0.0 + tslib: 2.8.1 + '@aws-sdk/lib-storage@3.864.0(@aws-sdk/client-s3@3.864.0)': dependencies: '@aws-sdk/client-s3': 3.864.0 @@ -21975,6 +14808,16 @@ snapshots: '@smithy/util-config-provider': 4.0.0 tslib: 2.8.1 + '@aws-sdk/middleware-bucket-endpoint@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/middleware-expect-continue@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -21982,6 +14825,13 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-expect-continue@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-flexible-checksums@3.864.0': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -21998,6 +14848,23 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@aws-sdk/middleware-flexible-checksums@3.974.14': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@aws-crypto/crc32c': 5.2.0 + '@aws-crypto/util': 5.2.0 + '@aws-sdk/core': 3.974.6 + '@aws-sdk/crc64-nvme': 3.972.7 + '@aws-sdk/types': 3.973.8 + '@smithy/is-array-buffer': 4.2.2 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -22005,18 +14872,37 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-host-header@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-location-constraint@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-location-constraint@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-logger@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-logger@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-recursion-detection@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -22024,6 +14910,14 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-recursion-detection@3.972.11': + dependencies: + '@aws-sdk/types': 3.973.8 + '@aws/lambda-invoke-store': 0.2.4 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-sdk-s3@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -22041,12 +14935,35 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@aws-sdk/middleware-sdk-s3@3.972.35': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-arn-parser': 3.972.3 + '@smithy/core': 3.23.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/middleware-ssec@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-ssec@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/middleware-user-agent@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -22057,6 +14974,17 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/middleware-user-agent@3.972.36': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@smithy/core': 3.23.17 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-retry': 4.3.6 + tslib: 2.8.1 + '@aws-sdk/nested-clients@3.864.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 @@ -22100,6 +15028,50 @@ snapshots: transitivePeerDependencies: - aws-crt + '@aws-sdk/nested-clients@3.997.4': + dependencies: + '@aws-crypto/sha256-browser': 5.2.0 + '@aws-crypto/sha256-js': 5.2.0 + '@aws-sdk/core': 3.974.6 + '@aws-sdk/middleware-host-header': 3.972.10 + '@aws-sdk/middleware-logger': 3.972.10 + '@aws-sdk/middleware-recursion-detection': 3.972.11 + '@aws-sdk/middleware-user-agent': 3.972.36 + '@aws-sdk/region-config-resolver': 3.972.13 + '@aws-sdk/signature-v4-multi-region': 3.996.23 + '@aws-sdk/types': 3.973.8 + '@aws-sdk/util-endpoints': 3.996.8 + '@aws-sdk/util-user-agent-browser': 3.972.10 + '@aws-sdk/util-user-agent-node': 3.973.22 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/region-config-resolver@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -22109,6 +15081,14 @@ snapshots: '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 + '@aws-sdk/region-config-resolver@3.972.13': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/config-resolver': 4.4.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/s3-request-presigner@3.864.0': dependencies: '@aws-sdk/signature-v4-multi-region': 3.864.0 @@ -22129,6 +15109,27 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/signature-v4-multi-region@3.996.23': + dependencies: + '@aws-sdk/middleware-sdk-s3': 3.972.35 + '@aws-sdk/types': 3.973.8 + '@smithy/protocol-http': 5.3.14 + '@smithy/signature-v4': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@aws-sdk/token-providers@3.1038.0': + dependencies: + '@aws-sdk/core': 3.974.6 + '@aws-sdk/nested-clients': 3.997.4 + '@aws-sdk/types': 3.973.8 + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + transitivePeerDependencies: + - aws-crt + '@aws-sdk/token-providers@3.864.0': dependencies: '@aws-sdk/core': 3.864.0 @@ -22146,10 +15147,19 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/types@3.973.8': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@aws-sdk/util-arn-parser@3.804.0': dependencies: tslib: 2.8.1 + '@aws-sdk/util-arn-parser@3.972.3': + dependencies: + tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -22158,6 +15168,14 @@ snapshots: '@smithy/util-endpoints': 3.0.7 tslib: 2.8.1 + '@aws-sdk/util-endpoints@3.996.8': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-endpoints': 3.4.2 + tslib: 2.8.1 + '@aws-sdk/util-format-url@3.862.0': dependencies: '@aws-sdk/types': 3.862.0 @@ -22176,6 +15194,13 @@ snapshots: bowser: 2.12.0 tslib: 2.8.1 + '@aws-sdk/util-user-agent-browser@3.972.10': + dependencies: + '@aws-sdk/types': 3.973.8 + '@smithy/types': 4.14.1 + bowser: 2.12.0 + tslib: 2.8.1 + '@aws-sdk/util-user-agent-node@3.864.0': dependencies: '@aws-sdk/middleware-user-agent': 3.864.0 @@ -22184,11 +15209,29 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/util-user-agent-node@3.973.22': + dependencies: + '@aws-sdk/middleware-user-agent': 3.972.36 + '@aws-sdk/types': 3.973.8 + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + tslib: 2.8.1 + '@aws-sdk/xml-builder@3.862.0': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@aws-sdk/xml-builder@3.972.21': + dependencies: + '@nodable/entities': 2.1.0 + '@smithy/types': 4.14.1 + fast-xml-parser: 5.7.2 + tslib: 2.8.1 + + '@aws/lambda-invoke-store@0.2.4': {} + '@babel/code-frame@7.27.1': dependencies: '@babel/helper-validator-identifier': 7.27.1 @@ -23620,6 +16663,16 @@ snapshots: '@faker-js/faker@9.9.0': {} + '@fastify/otel@0.18.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.212.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + minimatch: 10.2.5 + transitivePeerDependencies: + - supports-color + '@floating-ui/core@1.7.3': dependencies: '@floating-ui/utils': 0.2.10 @@ -24388,6 +17441,8 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) + '@nodable/entities@2.1.0': {} + '@node-rs/argon2-android-arm-eabi@1.7.0': optional: true @@ -24602,6 +17657,18 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/api-logs@0.207.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api-logs@0.212.0': + dependencies: + '@opentelemetry/api': 1.9.1 + + '@opentelemetry/api-logs@0.214.0': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs@0.46.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -24620,6 +17687,8 @@ snapshots: '@opentelemetry/api@1.9.0': {} + '@opentelemetry/api@1.9.1': {} + '@opentelemetry/auto-instrumentations-node@0.53.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24674,6 +17743,60 @@ snapshots: - encoding - supports-color + '@opentelemetry/auto-instrumentations-node@0.53.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-amqplib': 0.44.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-aws-lambda': 0.48.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-aws-sdk': 0.47.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-bunyan': 0.43.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-cassandra-driver': 0.43.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-connect': 0.41.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-cucumber': 0.11.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-dataloader': 0.14.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-dns': 0.41.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-express': 0.45.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-fastify': 0.42.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-fs': 0.17.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-generic-pool': 0.41.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-graphql': 0.45.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-grpc': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-hapi': 0.43.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-http': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-ioredis': 0.45.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-kafkajs': 0.5.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-knex': 0.42.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-koa': 0.45.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-lru-memoizer': 0.42.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-memcached': 0.41.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongodb': 0.49.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongoose': 0.44.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql': 0.43.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql2': 0.43.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-nestjs-core': 0.42.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-net': 0.41.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pg': 0.48.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pino': 0.44.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-redis': 0.44.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-redis-4': 0.44.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-restify': 0.43.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-router': 0.42.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-socket.io': 0.44.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-tedious': 0.16.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-undici': 0.8.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-winston': 0.42.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-alibaba-cloud': 0.29.7(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-aws': 1.12.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-azure': 0.3.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-container': 0.5.3(@opentelemetry/api@1.9.1) + '@opentelemetry/resource-detector-gcp': 0.30.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-node': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/context-async-hooks@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -24682,6 +17805,10 @@ snapshots: dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/context-async-hooks@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24696,16 +17823,36 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/core@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core@1.30.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/core@2.6.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.40.0 + + '@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/exporter-logs-otlp-grpc@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@grpc/grpc-js': 1.13.4 @@ -24715,6 +17862,15 @@ snapshots: '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-grpc@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-http@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24724,6 +17880,15 @@ snapshots: '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-http@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-proto@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24735,6 +17900,17 @@ snapshots: '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-logs-otlp-proto@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-metrics-otlp-grpc@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@grpc/grpc-js': 1.13.4 @@ -24786,6 +17962,16 @@ snapshots: '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-grpc@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -24804,6 +17990,15 @@ snapshots: '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-http@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-proto@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -24823,6 +18018,15 @@ snapshots: '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/exporter-trace-otlp-proto@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-zipkin@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -24839,6 +18043,14 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/exporter-zipkin@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/instrumentation-amqplib@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24848,6 +18060,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-amqplib@0.44.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-amqplib@0.50.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24857,6 +18078,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-amqplib@0.61.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-aws-lambda@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24866,6 +18096,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-aws-lambda@0.48.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/aws-lambda': 8.10.143 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-aws-sdk@0.47.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24876,6 +18115,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-aws-sdk@0.47.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagation-utils': 0.30.16(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-bunyan@0.43.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24885,6 +18134,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-bunyan@0.43.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@types/bunyan': 1.8.9 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-cassandra-driver@0.43.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24893,6 +18151,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-cassandra-driver@0.43.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-connect@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24903,6 +18169,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-connect@0.41.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/connect': 3.4.36 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-connect@0.47.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24913,6 +18189,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-connect@0.57.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@types/connect': 3.4.38 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-cucumber@0.11.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24921,6 +18207,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-cucumber@0.11.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-dataloader@0.14.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24928,6 +18222,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-dataloader@0.14.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-dataloader@0.21.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24935,6 +18236,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-dataloader@0.31.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-dns@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24942,6 +18250,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-dns@0.41.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-express@0.45.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24951,6 +18266,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-express@0.45.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-express@0.52.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24969,14 +18293,31 @@ snapshots: transitivePeerDependencies: - supports-color - '@opentelemetry/instrumentation-fs@0.17.0(@opentelemetry/api@1.9.0)': + '@opentelemetry/instrumentation-fastify@0.42.0(@opentelemetry/api@1.9.1)': dependencies: - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation-fs@0.17.0(@opentelemetry/api@1.9.0)': + dependencies: + '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.0) transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-fs@0.17.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-fs@0.23.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24985,6 +18326,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-fs@0.33.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-generic-pool@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24992,6 +18341,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-generic-pool@0.41.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-generic-pool@0.47.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -24999,6 +18355,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-generic-pool@0.57.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-graphql@0.45.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25006,6 +18369,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-graphql@0.45.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-graphql@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25013,6 +18383,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-graphql@0.62.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-grpc@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25021,6 +18398,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-grpc@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-hapi@0.43.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25030,6 +18415,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-hapi@0.43.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-hapi@0.50.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25039,6 +18433,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-hapi@0.60.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-http@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25049,6 +18452,16 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-http@0.214.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.6.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + forwarded-parse: 2.1.2 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-http@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25060,6 +18473,17 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-http@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + forwarded-parse: 2.1.2 + semver: 7.7.2 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-ioredis@0.45.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25069,6 +18493,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-ioredis@0.45.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-ioredis@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25078,6 +18511,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-ioredis@0.62.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.38.3 + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-kafkajs@0.12.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25086,6 +18528,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-kafkajs@0.23.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-kafkajs@0.5.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25094,6 +18544,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-kafkajs@0.5.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-knex@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25102,6 +18560,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-knex@0.42.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-knex@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25110,6 +18576,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-knex@0.58.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-koa@0.45.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25119,6 +18593,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-koa@0.45.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-koa@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25128,6 +18611,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-koa@0.62.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-lru-memoizer@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25135,6 +18627,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-lru-memoizer@0.42.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-lru-memoizer@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25142,6 +18641,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-lru-memoizer@0.58.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-memcached@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25151,6 +18657,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-memcached@0.41.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/memcached': 2.2.10 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mongodb@0.49.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25159,6 +18674,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mongodb@0.49.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mongodb@0.56.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25167,6 +18690,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mongodb@0.67.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mongoose@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25176,6 +18707,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mongoose@0.44.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mongoose@0.50.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25185,6 +18725,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mongoose@0.60.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mysql2@0.43.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25194,6 +18743,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mysql2@0.43.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mysql2@0.49.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25203,6 +18761,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mysql2@0.60.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mysql@0.43.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25212,6 +18779,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mysql@0.43.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/mysql': 2.15.26 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-mysql@0.49.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25221,6 +18797,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-mysql@0.60.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@types/mysql': 2.15.27 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-nestjs-core@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25229,6 +18814,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-nestjs-core@0.42.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-net@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25237,6 +18830,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-net@0.41.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-pg@0.48.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25249,6 +18850,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-pg@0.48.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/sql-common': 0.40.1(@opentelemetry/api@1.9.1) + '@types/pg': 8.6.1 + '@types/pg-pool': 2.0.6 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-pg@0.55.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25261,6 +18874,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-pg@0.66.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.1) + '@types/pg': 8.15.6 + '@types/pg-pool': 2.0.7 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-pino@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25270,6 +18895,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-pino@0.44.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-redis-4@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25279,6 +18913,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-redis-4@0.44.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-redis@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25288,6 +18931,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-redis@0.44.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.36.2 + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-redis@0.51.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25297,6 +18949,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-redis@0.62.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common': 0.38.3 + '@opentelemetry/semantic-conventions': 1.40.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-restify@0.43.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25306,6 +18967,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-restify@0.43.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-router@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25314,6 +18984,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-router@0.42.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-socket.io@0.44.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25322,6 +19000,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-socket.io@0.44.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-tedious@0.16.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25331,6 +19017,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-tedious@0.16.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-tedious@0.22.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25340,6 +19035,15 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-tedious@0.33.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@types/tedious': 4.0.14 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-undici@0.14.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25356,6 +19060,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-undici@0.8.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation-winston@0.42.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25364,6 +19076,14 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation-winston@0.42.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation@0.203.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25373,6 +19093,33 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation@0.207.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.207.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.212.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.212.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color + + '@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.214.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 8.0.1 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25396,6 +19143,18 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/instrumentation@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@types/shimmer': 1.2.0 + import-in-the-middle: 1.14.2 + require-in-the-middle: 7.5.2 + semver: 7.7.2 + shimmer: 1.2.1 + transitivePeerDependencies: + - supports-color + '@opentelemetry/instrumentation@0.57.2(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25419,6 +19178,12 @@ snapshots: '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-exporter-base@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-grpc-exporter-base@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@grpc/grpc-js': 1.13.4 @@ -25435,6 +19200,14 @@ snapshots: '@opentelemetry/otlp-exporter-base': 0.55.0(@opentelemetry/api@1.9.0) '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.0) + '@opentelemetry/otlp-grpc-exporter-base@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@grpc/grpc-js': 1.13.4 + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-exporter-base': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-transformer': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/otlp-proto-exporter-base@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25463,10 +19236,25 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) protobufjs: 7.5.4 + '@opentelemetry/otlp-transformer@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + protobufjs: 7.5.4 + '@opentelemetry/propagation-utils@0.30.16(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 + '@opentelemetry/propagation-utils@0.30.16(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/propagator-b3@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25477,6 +19265,11 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-b3@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagator-jaeger@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25487,10 +19280,17 @@ snapshots: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/propagator-jaeger@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/redis-common@0.36.2': {} '@opentelemetry/redis-common@0.38.0': {} + '@opentelemetry/redis-common@0.38.3': {} + '@opentelemetry/resource-detector-alibaba-cloud@0.29.7(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25498,6 +19298,13 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-alibaba-cloud@0.29.7(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-aws@1.12.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25505,6 +19312,13 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-aws@1.12.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-azure@0.3.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25512,6 +19326,13 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-azure@0.3.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-container@0.5.3(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25519,6 +19340,13 @@ snapshots: '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-container@0.5.3(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resource-detector-gcp@0.30.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25530,6 +19358,17 @@ snapshots: - encoding - supports-color + '@opentelemetry/resource-detector-gcp@0.30.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.36.0 + gcp-metadata: 6.1.1 + transitivePeerDependencies: + - encoding + - supports-color + '@opentelemetry/resources@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25542,18 +19381,36 @@ snapshots: '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/resources@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/resources@1.30.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.28.0 + '@opentelemetry/resources@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/resources@2.7.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/sdk-logs@0.46.0(@opentelemetry/api-logs@0.46.0)(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25568,6 +19425,13 @@ snapshots: '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-logs@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25581,6 +19445,12 @@ snapshots: '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.0) + '@opentelemetry/sdk-metrics@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-node@0.46.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25622,6 +19492,28 @@ snapshots: transitivePeerDependencies: - supports-color + '@opentelemetry/sdk-node@0.55.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/api-logs': 0.55.0 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-grpc': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-http': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-logs-otlp-proto': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-grpc': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-http': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-trace-otlp-proto': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/exporter-zipkin': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-logs': 0.55.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-metrics': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-node': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + transitivePeerDependencies: + - supports-color + '@opentelemetry/sdk-trace-base@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25636,6 +19528,13 @@ snapshots: '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/sdk-trace-base@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.27.0 + '@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -25643,6 +19542,13 @@ snapshots: '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@opentelemetry/semantic-conventions': 1.36.0 + '@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/resources': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@opentelemetry/sdk-trace-node@1.19.0(@opentelemetry/api@1.7.0)': dependencies: '@opentelemetry/api': 1.7.0 @@ -25663,6 +19569,16 @@ snapshots: '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.0) semver: 7.7.2 + '@opentelemetry/sdk-trace-node@1.28.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/context-async-hooks': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/core': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagator-b3': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/propagator-jaeger': 1.28.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 1.28.0(@opentelemetry/api@1.9.1) + semver: 7.7.2 + '@opentelemetry/semantic-conventions@1.19.0': {} '@opentelemetry/semantic-conventions@1.27.0': {} @@ -25671,16 +19587,28 @@ snapshots: '@opentelemetry/semantic-conventions@1.36.0': {} + '@opentelemetry/semantic-conventions@1.40.0': {} + '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sql-common@0.40.1(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 1.30.1(@opentelemetry/api@1.9.1) + '@opentelemetry/sql-common@0.41.0(@opentelemetry/api@1.9.0)': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/core': 2.0.1(@opentelemetry/api@1.9.0) + '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@oslojs/asn1@1.0.0': dependencies: '@oslojs/binary': 1.0.0 @@ -25784,8 +19712,7 @@ snapshots: '@prisma/debug@5.22.0': {} - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - {} + '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} '@prisma/engines@5.0.0': {} @@ -25864,6 +19791,13 @@ snapshots: transitivePeerDependencies: - supports-color + '@prisma/instrumentation@7.6.0(@opentelemetry/api@1.9.1)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/instrumentation': 0.207.0(@opentelemetry/api@1.9.1) + transitivePeerDependencies: + - supports-color + '@prisma/internals@5.0.0': dependencies: '@antfu/ni': 0.21.4 @@ -25925,11 +19859,9 @@ snapshots: arg: 5.0.2 prompts: 2.4.2 - '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': - {} + '@prisma/prisma-schema-wasm@4.17.0-26.6b0aef69b7cdfc787f822ecd7cdc76d5f1991584': {} - '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - {} + '@prisma/prisma-schema-wasm@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} '@prisma/schema-files-loader@5.22.0': dependencies: @@ -27100,6 +21032,8 @@ snapshots: '@sentry/core@10.5.0': {} + '@sentry/core@10.50.0': {} + '@sentry/nextjs@10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9))': dependencies: '@opentelemetry/api': 1.9.0 @@ -27139,6 +21073,18 @@ snapshots: '@sentry/opentelemetry': 10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) import-in-the-middle: 1.14.2 + '@sentry/node-core@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + dependencies: + '@sentry/core': 10.50.0 + '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + import-in-the-middle: 3.0.1 + optionalDependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@sentry/node@10.5.0': dependencies: '@opentelemetry/api': 1.9.0 @@ -27179,6 +21125,43 @@ snapshots: transitivePeerDependencies: - supports-color + '@sentry/node@10.50.0': + dependencies: + '@fastify/otel': 0.18.0(@opentelemetry/api@1.9.1) + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-amqplib': 0.61.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-connect': 0.57.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-dataloader': 0.31.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-fs': 0.33.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-generic-pool': 0.57.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-graphql': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-hapi': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-http': 0.214.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-ioredis': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-kafkajs': 0.23.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-knex': 0.58.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-koa': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-lru-memoizer': 0.58.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongodb': 0.67.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mongoose': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-mysql2': 0.60.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-pg': 0.66.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-redis': 0.62.0(@opentelemetry/api@1.9.1) + '@opentelemetry/instrumentation-tedious': 0.33.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@prisma/instrumentation': 7.6.0(@opentelemetry/api@1.9.1) + '@sentry/core': 10.50.0 + '@sentry/node-core': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/instrumentation@0.214.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + '@sentry/opentelemetry': 10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0) + import-in-the-middle: 3.0.1 + transitivePeerDependencies: + - '@opentelemetry/exporter-trace-otlp-http' + - supports-color + '@sentry/opentelemetry@10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0)': dependencies: '@opentelemetry/api': 1.9.0 @@ -27188,6 +21171,14 @@ snapshots: '@opentelemetry/semantic-conventions': 1.36.0 '@sentry/core': 10.5.0 + '@sentry/opentelemetry@10.50.0(@opentelemetry/api@1.9.1)(@opentelemetry/core@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.7.0(@opentelemetry/api@1.9.1))(@opentelemetry/semantic-conventions@1.40.0)': + dependencies: + '@opentelemetry/api': 1.9.1 + '@opentelemetry/core': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/sdk-trace-base': 2.7.0(@opentelemetry/api@1.9.1) + '@opentelemetry/semantic-conventions': 1.40.0 + '@sentry/core': 10.50.0 + '@sentry/react@10.5.0(react@19.2.3)': dependencies: '@sentry/browser': 10.5.0 @@ -27265,10 +21256,19 @@ snapshots: '@smithy/util-base64': 4.0.0 tslib: 2.8.1 + '@smithy/chunked-blob-reader-native@4.2.3': + dependencies: + '@smithy/util-base64': 4.3.2 + tslib: 2.8.1 + '@smithy/chunked-blob-reader@5.0.0': dependencies: tslib: 2.8.1 + '@smithy/chunked-blob-reader@5.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/config-resolver@4.1.5': dependencies: '@smithy/node-config-provider': 4.1.4 @@ -27277,6 +21277,28 @@ snapshots: '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 + '@smithy/config-resolver@4.4.17': + dependencies: + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-config-provider': 4.2.2 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + tslib: 2.8.1 + + '@smithy/core@3.23.17': + dependencies: + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-stream': 4.5.25 + '@smithy/util-utf8': 4.2.2 + '@smithy/uuid': 1.1.2 + tslib: 2.8.1 + '@smithy/core@3.8.0': dependencies: '@smithy/middleware-serde': 4.0.9 @@ -27299,6 +21321,14 @@ snapshots: '@smithy/url-parser': 4.0.5 tslib: 2.8.1 + '@smithy/credential-provider-imds@4.2.14': + dependencies: + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + tslib: 2.8.1 + '@smithy/eventstream-codec@4.0.5': dependencies: '@aws-crypto/crc32': 5.2.0 @@ -27306,29 +21336,59 @@ snapshots: '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 + '@smithy/eventstream-codec@4.2.14': + dependencies: + '@aws-crypto/crc32': 5.2.0 + '@smithy/types': 4.14.1 + '@smithy/util-hex-encoding': 4.2.2 + tslib: 2.8.1 + '@smithy/eventstream-serde-browser@4.0.5': dependencies: '@smithy/eventstream-serde-universal': 4.0.5 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/eventstream-serde-browser@4.2.14': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/eventstream-serde-config-resolver@4.1.3': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/eventstream-serde-config-resolver@4.3.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/eventstream-serde-node@4.0.5': dependencies: '@smithy/eventstream-serde-universal': 4.0.5 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/eventstream-serde-node@4.2.14': + dependencies: + '@smithy/eventstream-serde-universal': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/eventstream-serde-universal@4.0.5': dependencies: '@smithy/eventstream-codec': 4.0.5 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/eventstream-serde-universal@4.2.14': + dependencies: + '@smithy/eventstream-codec': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/fetch-http-handler@5.1.1': dependencies: '@smithy/protocol-http': 5.1.3 @@ -27337,6 +21397,14 @@ snapshots: '@smithy/util-base64': 4.0.0 tslib: 2.8.1 + '@smithy/fetch-http-handler@5.3.17': + dependencies: + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + tslib: 2.8.1 + '@smithy/hash-blob-browser@4.0.5': dependencies: '@smithy/chunked-blob-reader': 5.0.0 @@ -27344,6 +21412,13 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/hash-blob-browser@4.2.15': + dependencies: + '@smithy/chunked-blob-reader': 5.2.2 + '@smithy/chunked-blob-reader-native': 4.2.3 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/hash-node@4.0.5': dependencies: '@smithy/types': 4.3.2 @@ -27351,17 +21426,35 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/hash-node@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/hash-stream-node@4.0.5': dependencies: '@smithy/types': 4.3.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/hash-stream-node@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/invalid-dependency@4.0.5': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/invalid-dependency@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 @@ -27370,18 +21463,34 @@ snapshots: dependencies: tslib: 2.8.1 + '@smithy/is-array-buffer@4.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/md5-js@4.0.5': dependencies: '@smithy/types': 4.3.2 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/md5-js@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/middleware-content-length@4.0.5': dependencies: '@smithy/protocol-http': 5.1.3 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/middleware-content-length@4.2.14': + dependencies: + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/middleware-endpoint@4.1.18': dependencies: '@smithy/core': 3.8.0 @@ -27393,6 +21502,17 @@ snapshots: '@smithy/util-middleware': 4.0.5 tslib: 2.8.1 + '@smithy/middleware-endpoint@4.4.32': + dependencies: + '@smithy/core': 3.23.17 + '@smithy/middleware-serde': 4.2.20 + '@smithy/node-config-provider': 4.3.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-middleware': 4.2.14 + tslib: 2.8.1 + '@smithy/middleware-retry@4.1.19': dependencies: '@smithy/node-config-provider': 4.1.4 @@ -27406,17 +21526,42 @@ snapshots: tslib: 2.8.1 uuid: 9.0.1 + '@smithy/middleware-retry@4.5.7': + dependencies: + '@smithy/core': 3.23.17 + '@smithy/node-config-provider': 4.3.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/service-error-classification': 4.3.1 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/uuid': 1.1.2 + tslib: 2.8.1 + '@smithy/middleware-serde@4.0.9': dependencies: '@smithy/protocol-http': 5.1.3 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/middleware-serde@4.2.20': + dependencies: + '@smithy/core': 3.23.17 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/middleware-stack@4.0.5': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/middleware-stack@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/node-config-provider@4.1.4': dependencies: '@smithy/property-provider': 4.0.5 @@ -27424,6 +21569,13 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/node-config-provider@4.3.14': + dependencies: + '@smithy/property-provider': 4.2.14 + '@smithy/shared-ini-file-loader': 4.4.9 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/node-http-handler@4.1.1': dependencies: '@smithy/abort-controller': 4.0.5 @@ -27432,36 +21584,73 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/node-http-handler@4.6.1': + dependencies: + '@smithy/protocol-http': 5.3.14 + '@smithy/querystring-builder': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/property-provider@4.0.5': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/property-provider@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/protocol-http@5.1.3': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/protocol-http@5.3.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/querystring-builder@4.0.5': dependencies: '@smithy/types': 4.3.2 '@smithy/util-uri-escape': 4.0.0 tslib: 2.8.1 + '@smithy/querystring-builder@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/util-uri-escape': 4.2.2 + tslib: 2.8.1 + '@smithy/querystring-parser@4.0.5': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/querystring-parser@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/service-error-classification@4.0.7': dependencies: '@smithy/types': 4.3.2 + '@smithy/service-error-classification@4.3.1': + dependencies: + '@smithy/types': 4.14.1 + '@smithy/shared-ini-file-loader@4.0.5': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/shared-ini-file-loader@4.4.9': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/signature-v4@5.1.3': dependencies: '@smithy/is-array-buffer': 4.0.0 @@ -27473,6 +21662,27 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/signature-v4@5.3.14': + dependencies: + '@smithy/is-array-buffer': 4.2.2 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-uri-escape': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + + '@smithy/smithy-client@4.12.13': + dependencies: + '@smithy/core': 3.23.17 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-stack': 4.2.14 + '@smithy/protocol-http': 5.3.14 + '@smithy/types': 4.14.1 + '@smithy/util-stream': 4.5.25 + tslib: 2.8.1 + '@smithy/smithy-client@4.4.10': dependencies: '@smithy/core': 3.8.0 @@ -27483,6 +21693,10 @@ snapshots: '@smithy/util-stream': 4.2.4 tslib: 2.8.1 + '@smithy/types@4.14.1': + dependencies: + tslib: 2.8.1 + '@smithy/types@4.3.2': dependencies: tslib: 2.8.1 @@ -27493,20 +21707,40 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/url-parser@4.2.14': + dependencies: + '@smithy/querystring-parser': 4.2.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-base64@4.0.0': dependencies: '@smithy/util-buffer-from': 4.0.0 '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/util-base64@4.3.2': + dependencies: + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/util-body-length-browser@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-body-length-browser@4.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/util-body-length-node@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-body-length-node@4.2.3': + dependencies: + tslib: 2.8.1 + '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 @@ -27517,10 +21751,19 @@ snapshots: '@smithy/is-array-buffer': 4.0.0 tslib: 2.8.1 + '@smithy/util-buffer-from@4.2.2': + dependencies: + '@smithy/is-array-buffer': 4.2.2 + tslib: 2.8.1 + '@smithy/util-config-provider@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-config-provider@4.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.0.26': dependencies: '@smithy/property-provider': 4.0.5 @@ -27529,6 +21772,13 @@ snapshots: bowser: 2.12.0 tslib: 2.8.1 + '@smithy/util-defaults-mode-browser@4.3.49': + dependencies: + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.0.26': dependencies: '@smithy/config-resolver': 4.1.5 @@ -27539,27 +21789,58 @@ snapshots: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/util-defaults-mode-node@4.2.54': + dependencies: + '@smithy/config-resolver': 4.4.17 + '@smithy/credential-provider-imds': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/property-provider': 4.2.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-endpoints@3.0.7': dependencies: '@smithy/node-config-provider': 4.1.4 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/util-endpoints@3.4.2': + dependencies: + '@smithy/node-config-provider': 4.3.14 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-hex-encoding@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-hex-encoding@4.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/util-middleware@4.0.5': dependencies: '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/util-middleware@4.2.14': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-retry@4.0.7': dependencies: '@smithy/service-error-classification': 4.0.7 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/util-retry@4.3.6': + dependencies: + '@smithy/service-error-classification': 4.3.1 + '@smithy/types': 4.14.1 + tslib: 2.8.1 + '@smithy/util-stream@4.2.4': dependencies: '@smithy/fetch-http-handler': 5.1.1 @@ -27571,10 +21852,25 @@ snapshots: '@smithy/util-utf8': 4.0.0 tslib: 2.8.1 + '@smithy/util-stream@4.5.25': + dependencies: + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/node-http-handler': 4.6.1 + '@smithy/types': 4.14.1 + '@smithy/util-base64': 4.3.2 + '@smithy/util-buffer-from': 4.2.2 + '@smithy/util-hex-encoding': 4.2.2 + '@smithy/util-utf8': 4.2.2 + tslib: 2.8.1 + '@smithy/util-uri-escape@4.0.0': dependencies: tslib: 2.8.1 + '@smithy/util-uri-escape@4.2.2': + dependencies: + tslib: 2.8.1 + '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 @@ -27585,12 +21881,26 @@ snapshots: '@smithy/util-buffer-from': 4.0.0 tslib: 2.8.1 + '@smithy/util-utf8@4.2.2': + dependencies: + '@smithy/util-buffer-from': 4.2.2 + tslib: 2.8.1 + '@smithy/util-waiter@4.0.7': dependencies: '@smithy/abort-controller': 4.0.5 '@smithy/types': 4.3.2 tslib: 2.8.1 + '@smithy/util-waiter@4.3.0': + dependencies: + '@smithy/types': 4.14.1 + tslib: 2.8.1 + + '@smithy/uuid@1.1.2': + dependencies: + tslib: 2.8.1 + '@socket.io/component-emitter@3.1.2': {} '@storybook/addon-docs@9.1.2(@types/react@19.1.10)(storybook@9.1.2(@testing-library/dom@10.4.1)(msw@2.10.5(@types/node@20.19.11)(typescript@5.9.2))(prettier@3.6.2)(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)))': @@ -28463,6 +22773,10 @@ snapshots: dependencies: '@types/pg': 8.15.5 + '@types/pg-pool@2.0.7': + dependencies: + '@types/pg': 8.15.6 + '@types/pg@8.15.4': dependencies: '@types/node': 22.17.2 @@ -28475,6 +22789,12 @@ snapshots: pg-protocol: 1.10.3 pg-types: 2.2.0 + '@types/pg@8.15.6': + dependencies: + '@types/node': 22.17.2 + pg-protocol: 1.10.3 + pg-types: 2.2.0 + '@types/pg@8.6.1': dependencies: '@types/node': 22.17.2 @@ -28542,67 +22862,36 @@ snapshots: '@types/uuid@9.0.8': {} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260119.1': - optional: true - - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260209.1': - optional: true - - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260119.1': - optional: true - - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260209.1': - optional: true - - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260119.1': - optional: true - - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260209.1': - optional: true - - '@typescript/native-preview-linux-arm@7.0.0-dev.20260119.1': - optional: true - - '@typescript/native-preview-linux-arm@7.0.0-dev.20260209.1': + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20260119.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20260209.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260119.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260209.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20260119.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20260209.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20260428.1': optional: true - '@typescript/native-preview@7.0.0-dev.20260119.1': - optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260119.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260119.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260119.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260119.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260119.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260119.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260119.1 - - '@typescript/native-preview@7.0.0-dev.20260209.1': + '@typescript/native-preview@7.0.0-dev.20260428.1': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260209.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260209.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260209.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260209.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260209.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260209.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260209.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260428.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260428.1 '@typescript/vfs@1.6.1(typescript@5.9.2)': dependencies: @@ -29348,6 +23637,8 @@ snapshots: balanced-match@1.0.2: {} + balanced-match@4.0.4: {} + bare-events@2.6.1: optional: true @@ -29400,6 +23691,10 @@ snapshots: dependencies: balanced-match: 1.0.2 + brace-expansion@5.0.5: + dependencies: + balanced-match: 4.0.4 + braces@3.0.3: dependencies: fill-range: 7.1.1 @@ -29597,6 +23892,8 @@ snapshots: cjs-module-lexer@1.4.3: {} + cjs-module-lexer@2.2.0: {} + class-variance-authority@0.7.1: dependencies: clsx: 2.1.1 @@ -30671,10 +24968,21 @@ snapshots: fast-write-atomic@0.2.1: {} + fast-xml-builder@1.1.5: + dependencies: + path-expression-matcher: 1.5.0 + fast-xml-parser@5.2.5: dependencies: strnum: 2.1.1 + fast-xml-parser@5.7.2: + dependencies: + '@nodable/entities': 2.1.0 + fast-xml-builder: 1.1.5 + path-expression-matcher: 1.5.0 + strnum: 2.2.3 + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -31436,6 +25744,13 @@ snapshots: cjs-module-lexer: 1.4.3 module-details-from-path: 1.0.4 + import-in-the-middle@3.0.1: + dependencies: + acorn: 8.15.0 + acorn-import-attributes: 1.9.5(acorn@8.15.0) + cjs-module-lexer: 2.2.0 + module-details-from-path: 1.0.4 + indent-string@4.0.0: {} inflight@1.0.6: @@ -32891,6 +27206,10 @@ snapshots: dependencies: '@isaacs/brace-expansion': 5.0.0 + minimatch@10.2.5: + dependencies: + brace-expansion: 5.0.5 + minimatch@3.1.2: dependencies: brace-expansion: 1.1.12 @@ -33034,7 +27353,7 @@ snapshots: react: 19.2.3 react-dom: 19.2.3(react@19.2.3) - next@15.5.9(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + next@15.5.9(@babel/core@7.24.5)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@next/env': 15.5.9 '@swc/helpers': 0.5.15 @@ -33052,7 +27371,7 @@ snapshots: '@next/swc-linux-x64-musl': 15.5.7 '@next/swc-win32-arm64-msvc': 15.5.7 '@next/swc-win32-x64-msvc': 15.5.7 - '@opentelemetry/api': 1.9.0 + '@opentelemetry/api': 1.9.1 '@playwright/test': 1.53.0 sharp: 0.34.3 transitivePeerDependencies: @@ -33084,13 +27403,38 @@ snapshots: - '@babel/core' - babel-plugin-macros - nextra-theme-docs@4.3.0(@types/react@19.1.10)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)): + next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + dependencies: + '@next/env': 15.5.9 + '@swc/helpers': 0.5.15 + caniuse-lite: 1.0.30001735 + postcss: 8.4.31 + react: 19.2.3 + react-dom: 19.2.3(react@19.2.3) + styled-jsx: 5.1.6(@babel/core@7.28.3)(react@19.2.3) + optionalDependencies: + '@next/swc-darwin-arm64': 15.5.7 + '@next/swc-darwin-x64': 15.5.7 + '@next/swc-linux-arm64-gnu': 15.5.7 + '@next/swc-linux-arm64-musl': 15.5.7 + '@next/swc-linux-x64-gnu': 15.5.7 + '@next/swc-linux-x64-musl': 15.5.7 + '@next/swc-win32-arm64-msvc': 15.5.7 + '@next/swc-win32-x64-msvc': 15.5.7 + '@opentelemetry/api': 1.9.1 + '@playwright/test': 1.53.0 + sharp: 0.34.3 + transitivePeerDependencies: + - '@babel/core' + - babel-plugin-macros + + nextra-theme-docs@4.3.0(@types/react@19.1.10)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(nextra@4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(use-sync-external-store@1.5.0(react@19.2.3)): dependencies: '@headlessui/react': 2.2.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) clsx: 2.1.1 - next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) next-themes: 0.4.6(react-dom@19.2.3(react@19.2.3))(react@19.2.3) - nextra: 4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) + nextra: 4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2) react: 19.2.3 react-compiler-runtime: 19.1.0-rc.2(react@19.2.3) react-dom: 19.2.3(react@19.2.3) @@ -33102,7 +27446,7 @@ snapshots: - immer - use-sync-external-store - nextra@4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2): + nextra@4.3.0(acorn@8.15.0)(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.2): dependencies: '@formatjs/intl-localematcher': 0.6.1 '@headlessui/react': 2.2.7(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -33123,7 +27467,7 @@ snapshots: mdast-util-gfm: 3.1.0 mdast-util-to-hast: 13.2.0 negotiator: 1.0.0 - next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) react: 19.2.3 react-compiler-runtime: 19.1.0-rc.2(react@19.2.3) react-dom: 19.2.3(react@19.2.3) @@ -33243,6 +27587,13 @@ snapshots: optionalDependencies: next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + nuqs@2.4.3(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3): + dependencies: + mitt: 3.0.1 + react: 19.2.3 + optionalDependencies: + next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + nwsapi@2.2.21: {} object-assign@4.1.1: {} @@ -33527,6 +27878,8 @@ snapshots: path-exists@5.0.0: {} + path-expression-matcher@1.5.0: {} + path-is-absolute@1.0.1: {} path-is-inside@1.0.2: {} @@ -34079,7 +28432,7 @@ snapshots: react: 19.2.3 scheduler: 0.27.0 - react-email@3.0.4(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): + react-email@3.0.4(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3): dependencies: '@babel/core': 7.24.5 '@babel/parser': 7.24.5 @@ -34091,7 +28444,7 @@ snapshots: glob: 10.5.0 log-symbols: 4.1.0 mime-types: 2.1.35 - next: 15.5.9(@babel/core@7.24.5)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) + next: 15.5.9(@babel/core@7.24.5)(@opentelemetry/api@1.9.1)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) normalize-path: 3.0.0 ora: 5.4.1 socket.io: 4.8.0 @@ -34569,6 +28922,13 @@ snapshots: transitivePeerDependencies: - supports-color + require-in-the-middle@8.0.1: + dependencies: + debug: 4.4.1 + module-details-from-path: 1.0.4 + transitivePeerDependencies: + - supports-color + requires-port@1.0.0: {} resolve-from@4.0.0: {} @@ -35194,6 +29554,8 @@ snapshots: strnum@2.1.1: {} + strnum@2.2.3: {} + style-mod@4.1.2: {} style-to-js@1.1.17: diff --git a/self-host/.env.example b/self-host/.env.example index 3cbde23db2..0b3809678f 100644 --- a/self-host/.env.example +++ b/self-host/.env.example @@ -22,6 +22,14 @@ S3_ACCESS_KEY= # change this! example: asset-user S3_SECRET_KEY= # change this! S3_REGION=us-east-1 # leave this unchanged, unless you are hosting files on a different region on actual AWS +# private backup storage config with separate credentials +S3_BACKUP_BUCKET=backups +S3_BACKUP_ACCESS_KEY= # change this! example: backup-user +S3_BACKUP_SECRET_KEY= # change this! +S3_BACKUP_REGION=us-east-1 +S3_BACKUP_ENDPOINT="http://localhost:9000" +S3_BACKUP_KEY_PREFIX=pg-backups + # this is the default value but you ideally should set this up more nicely using our caddy service # this endpoint is used for signed uploads and server-side s3 calls S3_ENDPOINT="http://localhost:9000" diff --git a/self-host/docker-compose.yml b/self-host/docker-compose.yml index 9295677030..6a41d152b8 100644 --- a/self-host/docker-compose.yml +++ b/self-host/docker-compose.yml @@ -17,6 +17,9 @@ services: env_file: .env environment: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} + S3_BACKUP_REGION: ${S3_BACKUP_REGION:-us-east-1} + S3_BACKUP_ENDPOINT: ${S3_BACKUP_ENDPOINT:-http://minio:9000} + S3_BACKUP_KEY_PREFIX: ${S3_BACKUP_KEY_PREFIX:-pg-backups} ports: - "3000:3000" networks: @@ -35,6 +38,9 @@ services: DATABASE_URL: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB} # change this if you change the platform port PUBSTAR_URL: http://platform:3000 + S3_BACKUP_REGION: ${S3_BACKUP_REGION:-us-east-1} + S3_BACKUP_ENDPOINT: ${S3_BACKUP_ENDPOINT:-http://minio:9000} + S3_BACKUP_KEY_PREFIX: ${S3_BACKUP_KEY_PREFIX:-pg-backups} networks: - app-network diff --git a/self-host/minio-init.sh b/self-host/minio-init.sh index cb458681c7..075ad0c6a1 100644 --- a/self-host/minio-init.sh +++ b/self-host/minio-init.sh @@ -2,4 +2,11 @@ /usr/bin/mc mb --ignore-existing myminio/"${S3_BUCKET_NAME}"; /usr/bin/mc anonymous set download myminio/"${S3_BUCKET_NAME}"; /usr/bin/mc admin user add myminio "${S3_ACCESS_KEY}" "${S3_SECRET_KEY}"; -/usr/bin/mc admin policy attach myminio readwrite --user "${S3_ACCESS_KEY}"; \ No newline at end of file +/usr/bin/mc admin policy attach myminio readwrite --user "${S3_ACCESS_KEY}"; + +if [ -n "${S3_BACKUP_BUCKET}" ] && [ -n "${S3_BACKUP_ACCESS_KEY}" ] && [ -n "${S3_BACKUP_SECRET_KEY}" ]; then + /usr/bin/mc mb --ignore-existing myminio/"${S3_BACKUP_BUCKET}"; + /usr/bin/mc anonymous set none myminio/"${S3_BACKUP_BUCKET}"; + /usr/bin/mc admin user add myminio "${S3_BACKUP_ACCESS_KEY}" "${S3_BACKUP_SECRET_KEY}"; + /usr/bin/mc admin policy attach myminio readwrite --user "${S3_BACKUP_ACCESS_KEY}"; +fi \ No newline at end of file From 0e7d32627d0b0e0893789523e71fbb9b5f004192 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 16:41:46 +0200 Subject: [PATCH 142/153] fix: proper backups --- core/app/(user)/superadmin/BackupsPanel.tsx | 106 ++++-- .../(user)/superadmin/SuperadminDashboard.tsx | 1 + core/app/(user)/superadmin/backup-actions.ts | 114 +++---- core/lib/server/jobs.ts | 28 +- .../migration.sql | 2 + core/prisma/schema/schema.prisma | 13 +- jobs/package.json | 3 + jobs/src/database.ts | 25 ++ jobs/src/index.ts | 9 +- jobs/src/jobs/createBackup.ts | 301 +++++++++++------- packages/db/src/public/BackupConfig.ts | 5 + pnpm-lock.yaml | 280 ++++++++-------- 12 files changed, 506 insertions(+), 381 deletions(-) create mode 100644 core/prisma/migrations/20260430140000_add_backup_notification_email/migration.sql create mode 100644 jobs/src/database.ts diff --git a/core/app/(user)/superadmin/BackupsPanel.tsx b/core/app/(user)/superadmin/BackupsPanel.tsx index 27a7d38298..75b4bb7e3f 100644 --- a/core/app/(user)/superadmin/BackupsPanel.tsx +++ b/core/app/(user)/superadmin/BackupsPanel.tsx @@ -5,22 +5,27 @@ import type { BackupRecordsId, BackupStatus } from "db/public" import { useMemo, useState, useTransition } from "react" import { useRouter } from "next/navigation" +import { useForm } from "react-hook-form" import { Badge } from "ui/badge" import { Button } from "ui/button" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "ui/card" import { RefreshCw, XCircle } from "ui/icon" import { Input } from "ui/input" +import { FormSubmitButton } from "ui/submit-button" import { Switch } from "ui/switch" +import { toast } from "ui/use-toast" import { cn } from "utils" import { DataTable } from "~/app/components/DataTable/v2/DataTable" +import { didSucceed, useServerAction } from "~/lib/serverActions" import { deleteBackup, triggerBackup, updateBackupConfig } from "./backup-actions" type BackupConfig = { enabled: boolean intervalHours: number retentionDays: number + notificationEmail: string | null } export type BackupRow = { @@ -82,10 +87,11 @@ export const BackupsPanel = ({ config: BackupConfig }) => { const router = useRouter() + const triggerBackupAction = useServerAction(triggerBackup) const [isPending, startTransition] = useTransition() const [enabled, setEnabled] = useState(config.enabled) - const [intervalHours, setIntervalHours] = useState(String(config.intervalHours)) - const [retentionDays, setRetentionDays] = useState(String(config.retentionDays)) + const [_intervalHours, _setIntervalHours] = useState(String(config.intervalHours)) + const [_retentionDays, _setRetentionDays] = useState(String(config.retentionDays)) const columns = useMemo( () => @@ -143,28 +149,50 @@ export const BackupsPanel = ({ ] as const satisfies ColumnDef[], [isPending, router] ) + const backupConfigAction = useServerAction(updateBackupConfig) - const handleSave = () => { - startTransition(async () => { - await updateBackupConfig({ - enabled, - intervalHours: Number(intervalHours) || 24, - retentionDays: Number(retentionDays) || 14, - }) - - router.refresh() + const handleSave = async (data: { + intervalHours: number + retentionDays: number + notificationEmail: string + }) => { + const result = await backupConfigAction({ + enabled, + intervalHours: data.intervalHours, + retentionDays: data.retentionDays, + notificationEmail: data.notificationEmail.trim() || null, }) + + if (didSucceed(result)) { + toast.success("Backup configuration saved successfully") + } + + router.refresh() } - const handleCreateNow = () => { - startTransition(async () => { - await triggerBackup() - router.refresh() - }) + const handleCreateNow = async () => { + const result = await triggerBackupAction() + if (didSucceed(result)) { + toast.success("Backup created successfully") + } + + router.refresh() } const hasFailedBackup = backups.some((backup) => backup.status === "failed") + const backupIntervalForm = useForm<{ + intervalHours: number + retentionDays: number + notificationEmail: string + }>({ + defaultValues: { + intervalHours: config.intervalHours, + retentionDays: config.retentionDays, + notificationEmail: config.notificationEmail ?? "", + }, + }) + return (
@@ -190,27 +218,45 @@ export const BackupsPanel = ({ Enable scheduled backups
-
-
-

Interval (hours)

- setIntervalHours(event.target.value)} - /> +
+
+
+

Interval (hours)

+ +
+ +
+

Retention (days)

+ +
-

Retention (days)

+

Notification email

setRetentionDays(event.target.value)} + {...backupIntervalForm.register("notificationEmail")} + type="email" + placeholder="admin@example.com" /> +

+ Receives an email when a backup fails. Leave empty to disable. +

-
- + + diff --git a/core/app/(user)/superadmin/SuperadminDashboard.tsx b/core/app/(user)/superadmin/SuperadminDashboard.tsx index b4813ff3ca..cd53352170 100644 --- a/core/app/(user)/superadmin/SuperadminDashboard.tsx +++ b/core/app/(user)/superadmin/SuperadminDashboard.tsx @@ -28,6 +28,7 @@ export const SuperadminDashboard = ({ enabled: boolean intervalHours: number retentionDays: number + notificationEmail: string | null } }) => { const [activeTab, setActiveTab] = useQueryState("tab", parseAsString.withDefault("communities")) diff --git a/core/app/(user)/superadmin/backup-actions.ts b/core/app/(user)/superadmin/backup-actions.ts index 9fdd3b87c0..f60bae5b08 100644 --- a/core/app/(user)/superadmin/backup-actions.ts +++ b/core/app/(user)/superadmin/backup-actions.ts @@ -2,15 +2,15 @@ import { revalidatePath } from "next/cache" import { DeleteObjectCommand, S3Client } from "@aws-sdk/client-s3" -import { sql } from "kysely" + +import { type BackupConfigId, type BackupRecordsId, BackupStatus } from "db/public" import { db } from "~/kysely/database" import { getLoginData } from "~/lib/authentication/loginData" import { env } from "~/lib/env/env" import { defineServerAction } from "~/lib/server/defineServerAction" import { getJobsClient } from "~/lib/server/jobs" - -const BACKUP_SCHEDULER_JOB_KEY = "database-backup-scheduler" +import { maybeWithTrx } from "~/lib/server/maybeWithTrx" const getErrorMessage = (error: unknown, fallback: string) => { if (error instanceof Error) { @@ -59,13 +59,15 @@ export const triggerBackup = defineServerAction(async function triggerBackup() { return { title: "Unauthorized", error: "Must be a superadmin" } } - const insertedBackup = await sql<{ - id: string - }>`insert into backup_records (filename, "s3Key", status) - values (${`queued-${Date.now()}.dump`}, ${"queued"}, 'pending'::"BackupStatus") - returning id` - .execute(db) - .then((result) => result.rows[0]) + const insertedBackup = await db + .insertInto("backup_records") + .values({ + filename: `queued-${Date.now()}.dump`, + s3Key: "queued", + status: BackupStatus.pending, + }) + .returning("id") + .executeTakeFirst() if (!insertedBackup) { return { title: "Backup failed", error: "Failed to create backup record" } @@ -96,27 +98,32 @@ export const deleteBackup = defineServerAction(async function deleteBackup({ return { title: "Unauthorized", error: "Must be a superadmin" } } - const backupRecord = await sql<{ id: string; s3Key: string }>` - select id, "s3Key" from backup_records where id = ${backupId}::uuid - ` - .execute(db) - .then((result) => result.rows[0]) + await maybeWithTrx(db, async (trx) => { + const backupRecord = await trx + .selectFrom("backup_records") + .selectAll() + .where("id", "=", backupId as BackupRecordsId) + .executeTakeFirst() - if (!backupRecord) { - return { title: "Not found", error: "Backup record not found" } - } - - await sql`delete from backup_records where id = ${backupId}::uuid`.execute(db) + if (!backupRecord) { + return { title: "Not found", error: "Backup record not found" } + } - const s3Client = getBackupS3Client() - if (s3Client && env.S3_BACKUP_BUCKET && backupRecord.s3Key !== "queued") { - await s3Client.send( - new DeleteObjectCommand({ - Bucket: env.S3_BACKUP_BUCKET, - Key: backupRecord.s3Key, - }) - ) - } + await trx + .deleteFrom("backup_records") + .where("id", "=", backupId as BackupRecordsId) + .execute() + + const s3Client = getBackupS3Client() + if (s3Client && env.S3_BACKUP_BUCKET && backupRecord.s3Key !== "queued") { + await s3Client.send( + new DeleteObjectCommand({ + Bucket: env.S3_BACKUP_BUCKET, + Key: backupRecord.s3Key, + }) + ) + } + }) revalidatePath("/superadmin") }) @@ -125,47 +132,31 @@ export const updateBackupConfig = defineServerAction(async function updateBackup enabled, intervalHours, retentionDays, + notificationEmail, }: { enabled: boolean intervalHours: number retentionDays: number + notificationEmail: string | null }) { const user = await ensureSuperAdmin() if (!user) { return { title: "Unauthorized", error: "Must be a superadmin" } } - await sql` - with updated as ( - update backup_config - set enabled = ${enabled}, - "intervalHours" = ${intervalHours}, - "retentionDays" = ${retentionDays} - returning id - ) - insert into backup_config (enabled, "intervalHours", "retentionDays") - select ${enabled}, ${intervalHours}, ${retentionDays} - where not exists (select 1 from updated) - `.execute(db) - - const jobsClient = await getJobsClient() - - if (enabled) { - const scheduleResult = await jobsClient.scheduleBackup({ - runAt: new Date(Date.now() + intervalHours * 60 * 60 * 1000), - jobKey: BACKUP_SCHEDULER_JOB_KEY, - }) - - if ("error" in scheduleResult) { - return { - title: "Schedule failed", - error: getErrorMessage(scheduleResult.error, "Failed to update backup schedule"), - } - } - } - - if (!enabled) { - await jobsClient.unscheduleJob(BACKUP_SCHEDULER_JOB_KEY) + const existingConfig = await db.selectFrom("backup_config").select("id").executeTakeFirst() + + if (existingConfig) { + await db + .updateTable("backup_config") + .set({ enabled, intervalHours, retentionDays, notificationEmail }) + .where("id", "=", existingConfig.id) + .execute() + } else { + await db + .insertInto("backup_config") + .values({ enabled, intervalHours, retentionDays, notificationEmail }) + .execute() } revalidatePath("/superadmin") @@ -188,10 +179,11 @@ export const getBackupConfig = async () => { } return { - id: "00000000-0000-0000-0000-000000000000", + id: "00000000-0000-0000-0000-000000000000" as BackupConfigId, enabled: false, intervalHours: 24, retentionDays: 14, + notificationEmail: null as string | null, createdAt: new Date(), updatedAt: new Date(), } diff --git a/core/lib/server/jobs.ts b/core/lib/server/jobs.ts index 002d051e7e..a215854415 100644 --- a/core/lib/server/jobs.ts +++ b/core/lib/server/jobs.ts @@ -31,11 +31,7 @@ export const getScheduledAutomationJobKey = ({ export type JobsClient = { unscheduleJob(jobKey: string): Promise - scheduleBackup(options?: { - backupId?: string - runAt?: Date - jobKey?: string - }): Promise + scheduleBackup(options?: { backupId?: string }): Promise scheduleDelayedAutomation(options: { automationId: AutomationsId stageId: StagesId @@ -73,30 +69,15 @@ export const makeJobsClient = async (): Promise => { }, async scheduleBackup(options) { const backupId = options?.backupId - const runAt = options?.runAt - const jobKey = options?.jobKey try { - const job = await workerUtils.addJob( - "createBackup", - { - ...(backupId ? { backupId } : {}), - }, - { - ...(runAt ? { runAt } : {}), - ...(jobKey - ? { - jobKey, - jobKeyMode: "replace", - } - : {}), - } - ) + const job = await workerUtils.addJob("createBackup", { + ...(backupId ? { backupId } : {}), + }) logger.info({ msg: "Successfully scheduled backup job", backupId, - runAt, jobId: job.id, }) @@ -105,7 +86,6 @@ export const makeJobsClient = async (): Promise => { logger.error({ msg: "Error scheduling backup job", backupId, - runAt, err: err instanceof Error ? err.message : String(err), }) diff --git a/core/prisma/migrations/20260430140000_add_backup_notification_email/migration.sql b/core/prisma/migrations/20260430140000_add_backup_notification_email/migration.sql new file mode 100644 index 0000000000..ac1792b509 --- /dev/null +++ b/core/prisma/migrations/20260430140000_add_backup_notification_email/migration.sql @@ -0,0 +1,2 @@ +-- AlterTable +ALTER TABLE "backup_config" ADD COLUMN "notificationEmail" text; diff --git a/core/prisma/schema/schema.prisma b/core/prisma/schema/schema.prisma index 76e3fa4cb9..9ac1707dff 100644 --- a/core/prisma/schema/schema.prisma +++ b/core/prisma/schema/schema.prisma @@ -791,12 +791,13 @@ model BackupRecord { } model BackupConfig { - id String @id @default(dbgenerated("gen_random_uuid()")) - enabled Boolean @default(false) - intervalHours Int @default(24) - retentionDays Int @default(14) - createdAt DateTime @default(now()) - updatedAt DateTime @default(now()) @updatedAt + id String @id @default(dbgenerated("gen_random_uuid()")) + enabled Boolean @default(false) + intervalHours Int @default(24) + retentionDays Int @default(14) + notificationEmail String? + createdAt DateTime @default(now()) + updatedAt DateTime @default(now()) @updatedAt @@map(name: "backup_config") } diff --git a/jobs/package.json b/jobs/package.json index c8133c142e..37b8b19f95 100644 --- a/jobs/package.json +++ b/jobs/package.json @@ -20,7 +20,9 @@ "contracts": "workspace:*", "db": "workspace:*", "graphile-worker": "^0.16.6", + "kysely": "^0.27.6", "logger": "workspace:*", + "nodemailer": "^6.10.1", "pg": "^8.16.3", "react": "catalog:react19", "tsx": "catalog:", @@ -28,6 +30,7 @@ }, "devDependencies": { "@types/node": "catalog:", + "@types/nodemailer": "^6.4.18", "@types/pg": "^8.15.5", "@typescript/native-preview": "catalog:", "dotenv-cli": "^7.4.4", diff --git a/jobs/src/database.ts b/jobs/src/database.ts new file mode 100644 index 0000000000..583b894fc9 --- /dev/null +++ b/jobs/src/database.ts @@ -0,0 +1,25 @@ +import type { BackupConfigTable, BackupRecordsTable } from "db/public" + +import { Kysely, PostgresDialect } from "kysely" +import pg from "pg" + +const int8TypeId = 20 +pg.types.setTypeParser(int8TypeId, (val) => parseInt(val, 10)) + +export interface BackupDatabase { + backup_config: BackupConfigTable + backup_records: BackupRecordsTable +} + +export const createBackupDatabase = (connectionString: string) => { + const pool = new pg.Pool({ + connectionString, + max: 2, + }) + + const db = new Kysely({ + dialect: new PostgresDialect({ pool }), + }) + + return { db, pool } +} diff --git a/jobs/src/index.ts b/jobs/src/index.ts index 28ac6cc14d..1e58a61178 100644 --- a/jobs/src/index.ts +++ b/jobs/src/index.ts @@ -9,7 +9,6 @@ import { clients } from "./clients" import { createBackup } from "./jobs/createBackup" import { emitEvent } from "./jobs/emitEvent" -// must match the lock id used by the platform's migrate.ts const ADVISORY_LOCK_ID = 72_398_241 const makeTaskList = (client: typeof clients): TaskList => ({ @@ -26,8 +25,6 @@ async function waitForMigrations(connectionString: string, maxAttempts = 60, int const client = await pool.connect() try { - // try to acquire the same lock the migrator holds. if we get it, - // migrations are done. release immediately. await client.query(`SELECT pg_advisory_lock(${ADVISORY_LOCK_ID})`) await client.query(`SELECT pg_advisory_unlock(${ADVISORY_LOCK_ID})`) logger.info("migration lock is free, proceeding with worker startup") @@ -58,6 +55,11 @@ const main = async () => { logger.info("Starting graphile worker...") + // fires createBackup every hour on the hour. the job itself reads + // backup_config to decide whether enough time has elapsed since the + // last successful backup before actually running. + const backupCrontab = `* * * * * createBackup ?id=scheduled-backup&fill=2h` + try { const runner = await run({ connectionString, @@ -65,6 +67,7 @@ const main = async () => { noHandleSignals: false, pollInterval: 1000, taskList: makeTaskList(clients), + crontab: backupCrontab, }) logger.info({ msg: `Successfully started graphile worker`, runner }) diff --git a/jobs/src/jobs/createBackup.ts b/jobs/src/jobs/createBackup.ts index d9a3372528..8ffb59df4b 100644 --- a/jobs/src/jobs/createBackup.ts +++ b/jobs/src/jobs/createBackup.ts @@ -1,4 +1,5 @@ import type { JobHelpers } from "graphile-worker" +import type { BackupDatabase } from "../database" import { execFile } from "node:child_process" import { createReadStream } from "node:fs" @@ -9,10 +10,13 @@ import { promisify } from "node:util" import { DeleteObjectsCommand, type ObjectIdentifier, S3Client } from "@aws-sdk/client-s3" import { Upload } from "@aws-sdk/lib-storage" import * as Sentry from "@sentry/node" -import pg from "pg" +import nodemailer from "nodemailer" +import { type BackupRecordsId, BackupStatus } from "db/public" import { logger } from "logger" +import { createBackupDatabase } from "../database" + const execFileAsync = promisify(execFile) const DEFAULT_BACKUP_PREFIX = "pg-backups" @@ -32,12 +36,6 @@ type BackupS3Config = { keyPrefix: string } -type BackupConfigRow = { - enabled: boolean - intervalHours: number - retentionDays: number -} - const ensureSentryInitialized = () => { const dsn = process.env.SENTRY_DSN if (!dsn) { @@ -71,57 +69,54 @@ const getBackupS3Config = (): BackupS3Config => { } } -const getBackupConfig = async (pool: pg.Pool): Promise => { - const result = await pool.query( - `select enabled, "intervalHours", "retentionDays" - from backup_config - order by "updatedAt" desc - limit 1` - ) +const getBackupConfig = async (db: import("kysely").Kysely) => { + const config = await db + .selectFrom("backup_config") + .selectAll() + .orderBy("updatedAt", "desc") + .limit(1) + .executeTakeFirst() - if (!result.rows[0]) { - return { - enabled: false, - intervalHours: DEFAULT_BACKUP_INTERVAL_HOURS, - retentionDays: DEFAULT_BACKUP_RETENTION_DAYS, - } + if (config) { + return config } - return result.rows[0] + return { + enabled: false, + intervalHours: DEFAULT_BACKUP_INTERVAL_HOURS, + retentionDays: DEFAULT_BACKUP_RETENTION_DAYS, + notificationEmail: null as string | null, + } } -const updateBackupRecord = async ( - pool: pg.Pool, - backupId: string, - { - status, - error, - sizeBytes, - startedAt, - completedAt, - }: { - status: "pending" | "in_progress" | "completed" | "failed" - error?: string | null - sizeBytes?: string - startedAt?: Date - completedAt?: Date +const shouldRunScheduledBackup = async (db: import("kysely").Kysely) => { + const config = await getBackupConfig(db) + + if (!config.enabled) { + return { shouldRun: false, reason: "backup is disabled", config } as const } -) => { - await pool.query( - `update backup_records - set - status = $2::"BackupStatus", - error = coalesce($3::text, error), - "sizeBytes" = coalesce($4::bigint, "sizeBytes"), - "startedAt" = coalesce($5::timestamptz, "startedAt"), - "completedAt" = coalesce($6::timestamptz, "completedAt") - where id = $1`, - [backupId, status, error ?? null, sizeBytes ?? null, startedAt ?? null, completedAt ?? null] - ) + + const lastCompleted = await db + .selectFrom("backup_records") + .select("completedAt") + .where("status", "=", BackupStatus.completed) + .orderBy("completedAt", "desc") + .limit(1) + .executeTakeFirst() + + if (!lastCompleted?.completedAt) { + return { shouldRun: true, config } as const + } + + const intervalMs = config.intervalHours * 60 * 60 * 1000 + const elapsed = Date.now() - new Date(lastCompleted.completedAt).getTime() + + const shouldRun = elapsed >= intervalMs + return { shouldRun, config, reason: shouldRun ? "backup is due" : "backup is not due" } as const } const upsertBackupRecordForRun = async ( - pool: pg.Pool, + db: import("kysely").Kysely, { backupId, filename, @@ -133,81 +128,87 @@ const upsertBackupRecordForRun = async ( } ) => { if (!backupId) { - const insertResult = await pool.query<{ id: string }>( - `insert into backup_records (filename, "s3Key", status) - values ($1, $2, 'pending'::"BackupStatus") - returning id`, - [filename, s3Key] - ) + const inserted = await db + .insertInto("backup_records") + .values({ filename, s3Key, status: BackupStatus.pending }) + .returning("id") + .executeTakeFirstOrThrow() - return insertResult.rows[0].id + return inserted.id } - await pool.query( - `update backup_records - set filename = $2, - "s3Key" = $3 - where id = $1`, - [backupId, filename, s3Key] - ) + await db + .updateTable("backup_records") + .set({ filename, s3Key }) + .where("id", "=", backupId as BackupRecordsId) + .execute() return backupId } +const updateBackupRecord = async ( + db: import("kysely").Kysely, + backupId: string, + update: { + status: BackupStatus + error?: string | null + sizeBytes?: string | null + startedAt?: Date | null + completedAt?: Date | null + } +) => { + await db + .updateTable("backup_records") + .set({ + status: update.status, + ...(update.error !== undefined ? { error: update.error } : {}), + ...(update.sizeBytes !== undefined ? { sizeBytes: update.sizeBytes } : {}), + ...(update.startedAt !== undefined ? { startedAt: update.startedAt } : {}), + ...(update.completedAt !== undefined ? { completedAt: update.completedAt } : {}), + }) + .where("id", "=", backupId as BackupRecordsId) + .execute() +} + const cleanupExpiredBackups = async ( - pool: pg.Pool, + db: import("kysely").Kysely, s3Client: S3Client, backupS3Config: BackupS3Config, retentionDays: number ) => { - const expiredBackups = await pool.query<{ id: string; s3Key: string }>( - `select id, "s3Key" - from backup_records - where status = 'completed'::"BackupStatus" - and "completedAt" is not null - and "completedAt" < now() - ($1::integer * interval '1 day')`, - [retentionDays] - ) + const cutoff = new Date(Date.now() - retentionDays * 24 * 60 * 60 * 1000) - if (expiredBackups.rows.length === 0) { + const expiredBackups = await db + .selectFrom("backup_records") + .select(["id", "s3Key"]) + .where("status", "=", BackupStatus.completed) + .where("completedAt", "is not", null) + .where("completedAt", "<", cutoff) + .execute() + + if (expiredBackups.length === 0) { return } - const objects = expiredBackups.rows.map((backup) => ({ + const objects = expiredBackups.map((backup) => ({ Key: backup.s3Key, })) satisfies ObjectIdentifier[] await s3Client.send( new DeleteObjectsCommand({ Bucket: backupS3Config.bucket, - Delete: { - Objects: objects, - Quiet: true, - }, + Delete: { Objects: objects, Quiet: true }, }) ) - await pool.query(`delete from backup_records where id = any($1)`, [ - expiredBackups.rows.map((backup) => backup.id), - ]) -} - -const scheduleNextBackup = async (helpers: JobHelpers, backupConfig: BackupConfigRow) => { - if (!backupConfig.enabled) { - return - } - - const runAt = new Date(Date.now() + backupConfig.intervalHours * 60 * 60 * 1000) - - await helpers.addJob( - "createBackup", - {}, - { - runAt, - jobKey: "database-backup-scheduler", - jobKeyMode: "replace", - } - ) + await db + .deleteFrom("backup_records") + .where( + "id", + "in", + expiredBackups.map((b) => b.id) + ) + .execute() } const getBackupFileData = (databaseUrl: string, keyPrefix: string) => { @@ -218,19 +219,79 @@ const getBackupFileData = (databaseUrl: string, keyPrefix: string) => { const normalizedPrefix = keyPrefix.replace(/\/+$/, "") const s3Key = `${normalizedPrefix}/${filename}` - return { - filename, - localPath, - s3Key, + return { filename, localPath, s3Key } +} + +const sendFailureNotification = async ( + notificationEmail: string, + errorMessage: string, + filename: string +) => { + const smtpHost = process.env.SMTP_HOST + const smtpPort = process.env.SMTP_PORT + const smtpUser = process.env.SMTP_USERNAME + const smtpPass = process.env.SMTP_PASSWORD + const smtpFrom = process.env.SMTP_FROM + + const isMissingSmtpConfig = !smtpHost || !smtpPort || !smtpUser || !smtpPass || !smtpFrom + if (isMissingSmtpConfig) { + logger.warn({ + msg: "cannot send backup failure notification, missing SMTP configuration", + }) + return + } + + try { + const transporter = nodemailer.createTransport({ + host: smtpHost, + port: parseInt(smtpPort, 10), + auth: { user: smtpUser, pass: smtpPass }, + }) + + await transporter.sendMail({ + from: smtpFrom, + to: notificationEmail, + subject: `Database backup failed: ${filename}`, + text: [ + `A scheduled database backup has failed.`, + ``, + `Filename: ${filename}`, + `Error: ${errorMessage}`, + `Time: ${new Date().toISOString()}`, + ``, + `Check the superadmin dashboard for more details.`, + ].join("\n"), + }) + + logger.info({ msg: "sent backup failure notification email", to: notificationEmail }) + } catch (err) { + logger.warn({ + msg: "error sending backup failure notification email", + error: err instanceof Error ? err.message : String(err), + }) } } -export const createBackup = async (payload: CreateBackupPayload, helpers: JobHelpers) => { +export const createBackup = async (payload: CreateBackupPayload, _helpers: JobHelpers) => { const databaseUrl = process.env.DATABASE_URL if (!databaseUrl) { throw new Error("Missing DATABASE_URL") } + const { db, pool } = createBackupDatabase(databaseUrl) + + // for cron-triggered runs (no backupId), check whether we actually need to run + const isScheduledRun = !payload.backupId + if (isScheduledRun) { + const { shouldRun, reason } = await shouldRunScheduledBackup(db) + + if (!shouldRun) { + logger.info({ msg: "skipping scheduled backup", reason }) + await pool.end() + return + } + } + const backupS3Config = getBackupS3Config() const sentryEnabled = ensureSentryInitialized() const s3Client = new S3Client({ @@ -242,23 +303,15 @@ export const createBackup = async (payload: CreateBackupPayload, helpers: JobHel }, forcePathStyle: true, }) - const pool = new pg.Pool({ - connectionString: databaseUrl, - max: 2, - }) const startedAt = new Date() const { backupId } = payload const { filename, localPath, s3Key } = getBackupFileData(databaseUrl, backupS3Config.keyPrefix) - const recordId = await upsertBackupRecordForRun(pool, { - backupId, - filename, - s3Key, - }) + const recordId = await upsertBackupRecordForRun(db, { backupId, filename, s3Key }) try { - await updateBackupRecord(pool, recordId, { - status: "in_progress", + await updateBackupRecord(db, recordId, { + status: BackupStatus.in_progress, startedAt, }) @@ -288,15 +341,14 @@ export const createBackup = async (payload: CreateBackupPayload, helpers: JobHel await upload.done() - await updateBackupRecord(pool, recordId, { - status: "completed", + await updateBackupRecord(db, recordId, { + status: BackupStatus.completed, sizeBytes: String(fileStats.size), completedAt: new Date(), }) - const backupConfig = await getBackupConfig(pool) - await cleanupExpiredBackups(pool, s3Client, backupS3Config, backupConfig.retentionDays) - await scheduleNextBackup(helpers, backupConfig) + const backupConfig = await getBackupConfig(db) + await cleanupExpiredBackups(db, s3Client, backupS3Config, backupConfig.retentionDays) logger.info({ msg: "database backup completed", @@ -308,8 +360,8 @@ export const createBackup = async (payload: CreateBackupPayload, helpers: JobHel } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error) - await updateBackupRecord(pool, recordId, { - status: "failed", + await updateBackupRecord(db, recordId, { + status: BackupStatus.failed, error: errorMessage, completedAt: new Date(), }) @@ -320,6 +372,11 @@ export const createBackup = async (payload: CreateBackupPayload, helpers: JobHel error: errorMessage, }) + const backupConfig = await getBackupConfig(db) + if (backupConfig.notificationEmail) { + await sendFailureNotification(backupConfig.notificationEmail, errorMessage, filename) + } + if (sentryEnabled && error instanceof Error) { Sentry.captureException(error) await Sentry.flush(5000) diff --git a/packages/db/src/public/BackupConfig.ts b/packages/db/src/public/BackupConfig.ts index 3ad1bd58c7..3657f81027 100644 --- a/packages/db/src/public/BackupConfig.ts +++ b/packages/db/src/public/BackupConfig.ts @@ -18,6 +18,8 @@ export interface BackupConfigTable { retentionDays: ColumnType + notificationEmail: ColumnType + createdAt: ColumnType updatedAt: ColumnType @@ -36,6 +38,7 @@ export const backupConfigSchema = z.object({ enabled: z.boolean(), intervalHours: z.number(), retentionDays: z.number(), + notificationEmail: z.string().nullable(), createdAt: z.date(), updatedAt: z.date(), }) @@ -45,6 +48,7 @@ export const backupConfigInitializerSchema = z.object({ enabled: z.boolean().optional(), intervalHours: z.number().optional(), retentionDays: z.number().optional(), + notificationEmail: z.string().optional().nullable(), createdAt: z.date().optional(), updatedAt: z.date().optional(), }) @@ -54,6 +58,7 @@ export const backupConfigMutatorSchema = z.object({ enabled: z.boolean().optional(), intervalHours: z.number().optional(), retentionDays: z.number().optional(), + notificationEmail: z.string().optional().nullable(), createdAt: z.date().optional(), updatedAt: z.date().optional(), }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 41adaae325..e8a431cbad 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,7 +56,7 @@ catalogs: version: 20.19.11 '@typescript/native-preview': specifier: latest - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 '@vitejs/plugin-react': specifier: ^4.5.0 version: 4.7.0 @@ -288,7 +288,7 @@ importers: version: 1.2.0(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@sentry/nextjs': specifier: 'catalog:' - version: 10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)) + version: 10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))) '@sinclair/typebox': specifier: 'catalog:' version: 0.34.30 @@ -646,7 +646,7 @@ importers: version: 9.0.8 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 '@vitejs/plugin-react': specifier: 'catalog:' version: 4.7.0(vite@6.3.5(@types/node@20.19.11)(jiti@2.6.1)(lightningcss@1.30.2)(terser@5.43.1)(tsx@4.20.5)(yaml@2.8.1)) @@ -761,7 +761,7 @@ importers: version: 19.1.7(@types/react@19.1.10) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 autoprefixer: specifier: 'catalog:' version: 10.4.21(postcss@8.5.6) @@ -813,9 +813,15 @@ importers: graphile-worker: specifier: ^0.16.6 version: 0.16.6(typescript@5.9.2) + kysely: + specifier: ^0.27.6 + version: 0.27.6 logger: specifier: workspace:* version: link:../packages/logger + nodemailer: + specifier: ^6.10.1 + version: 6.10.1 pg: specifier: ^8.16.3 version: 8.16.3 @@ -832,12 +838,15 @@ importers: '@types/node': specifier: 'catalog:' version: 20.19.11 + '@types/nodemailer': + specifier: ^6.4.18 + version: 6.4.18 '@types/pg': specifier: ^8.15.5 version: 8.15.5 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 dotenv-cli: specifier: ^7.4.4 version: 7.4.4 @@ -880,7 +889,7 @@ importers: version: 19.1.7(@types/react@19.1.10) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 tsconfig: specifier: workspace:* version: link:../config/tsconfig @@ -1136,7 +1145,7 @@ importers: version: 9.0.8 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 '@uiw/react-json-view': specifier: 2.0.0-alpha.27 version: 2.0.0-alpha.27(@babel/runtime@7.28.3)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) @@ -1185,7 +1194,7 @@ importers: version: 3.51.0(@types/node@20.19.11)(zod@3.25.76) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1219,7 +1228,7 @@ importers: version: 8.15.5 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 dotenv-cli: specifier: ^7.4.4 version: 7.4.4 @@ -1255,7 +1264,7 @@ importers: version: 0.0.31(react-dom@19.2.3(react@19.2.3))(react@19.2.3) '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 browserslist: specifier: ^4.25.3 version: 4.25.3 @@ -1299,7 +1308,7 @@ importers: version: 2.2.0 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1321,7 +1330,7 @@ importers: version: 20.19.11 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -1346,7 +1355,7 @@ importers: devDependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 react: specifier: catalog:react19 version: 19.2.3 @@ -1572,7 +1581,7 @@ importers: version: 19.1.10 '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 react: specifier: catalog:react19 version: 19.2.3 @@ -1597,7 +1606,7 @@ importers: devDependencies: '@typescript/native-preview': specifier: 'catalog:' - version: 7.0.0-dev.20260428.1 + version: 7.0.0-dev.20260430.1 tsconfig: specifier: workspace:* version: link:../../config/tsconfig @@ -7895,50 +7904,50 @@ packages: '@types/uuid@9.0.8': resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-Lll6WmXfgTEj1G3QBIoHlabQwUtJiyhlRgSLksa06QFL5BoA7V+Lu1waa9PtPNZbGsXLDMHodtk/bRQABKuPiw==} + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-1Rk5JoMlmlF4GzeNxQmpaZSSPFa056DCrGLjhXwVIqRf8+pGNKKxyD2ugGSyOeLShqYb1XUoE9LhsAhdh1xgSA==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [darwin] - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-WbsBNSHlo+4sGrTxDWdmI7r8x48tCtSCuKdmK62FvVOq58UWAs6sL13Z4Rev4ohLcGHdXC5E/8AIdpLPqDYQpw==} + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-wjXJtELfI0QIYxGCqqKMR3DonPUlMP4aWOYRPiN5ylDtdV+OqCC16zvH7C+No7xvlf8dDxlV1ZTyuRCWL6CQmw==} engines: {node: '>=16.20.0'} cpu: [x64] os: [darwin] - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-cgcBX/ZBMdepkamLT8g8jQdHe7DZS/s6zTZRof6mvcrnJHlMeUnKoC9UO8/c22IrUMV3n0XPh7R8FYjUP0ll+Q==} + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-PeCFDB1glivpkqqKsQJ1RrM4f5B1yXzXFF+eKwgEZ+evcQ3N+BgeR7BpuRhOpHU9ixJchKjU1bXgcHOAaM+Rkw==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [linux] - '@typescript/native-preview-linux-arm@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-/d/NnZFvEJU67L5mHh+cO3gsfwNCvJ9HGtxGq1KGz1VwTabOIcwLdpTpfsAR39WXzzfh9GJHL28n6GSGZInPow==} + '@typescript/native-preview-linux-arm@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-3eqYkqy1XpbIJC1XkGbkwAvTtSCw6dSjYzJaw9bvow4fS1totTFZP/2K9ecXQ3gIZaPS4Ome/SpkZHl1cy9eZA==} engines: {node: '>=16.20.0'} cpu: [arm] os: [linux] - '@typescript/native-preview-linux-x64@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-4gJCE7wzenx1BH2Vtx2uKWUo8rFxnhGkxNEH1zxbYy/6ASwo+PnOPYmKHAzNE1C3yB5lzw71/vR5p5zyO57Y4A==} + '@typescript/native-preview-linux-x64@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-Eg7nbRV57ayq0Pjuott/36UbQlVlpz2YRVLM5h8RyXx6SwvgrdYxNv/1zULLB0UlWdyKkK3bXILmR8YmNvbl+g==} engines: {node: '>=16.20.0'} cpu: [x64] os: [linux] - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-yn6Rzbn62L4QTWrp0QgG8al6l/VG7PCPRdbE0vuGDSlKhInlC+Flo4QSc1qA8KHTbpHgl+nEsq9DymiitI4G4g==} + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-0LAjufJKUZnHmp0bxlndjphDQlIeUXA0czZCrKENtKySeGMXrM9PAFtSx94ldWVXDTZ9ZP1r+FxbIvP9pRORzA==} engines: {node: '>=16.20.0'} cpu: [arm64] os: [win32] - '@typescript/native-preview-win32-x64@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-T9z13mcMowXmwGjprA2FIR2EEdYZxgqH8+qk7dFZVBlo5vfk41AN/qJfAdN7IsAhEb640MJ8cMN/aiczweZKmA==} + '@typescript/native-preview-win32-x64@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-FvLWX7d3b/IhL0656tnjep7dOMnI7CPrg+5oI1MKIY74qgvR+8VRo6aGj0IRCwtAJeklpxBpljEcIGuS5Yc/pQ==} engines: {node: '>=16.20.0'} cpu: [x64] os: [win32] - '@typescript/native-preview@7.0.0-dev.20260428.1': - resolution: {integrity: sha512-JiM4PYWDGs57TT0mV2KArmaW7BnTkk3XRid79NdG17tfvDbRyg4hBCpKI7vARiQPtxjKrHlxyzxOGDpv5W5T7Q==} + '@typescript/native-preview@7.0.0-dev.20260430.1': + resolution: {integrity: sha512-HHk3tPpzPKqHY4AHMxGK6i960Dd1kIvnSnT3mzD1hNO/sUVG2YdWvWBIActGkRnKS94AZBpekOr1bQP7O2OwIg==} engines: {node: '>=16.20.0'} hasBin: true @@ -10701,7 +10710,6 @@ packages: resolution: {integrity: sha512-t0etAxTUk1w5MYdNOkZBZ8rvYYN5iL+2dHCCx/DpkFm/bW28M6y5nUS83D4XdZiHy35Fpaw6LBb+F88fHZnVCw==} engines: {node: '>=8.17.0'} hasBin: true - bundledDependencies: [] jsonfile@6.2.0: resolution: {integrity: sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==} @@ -13837,19 +13845,22 @@ packages: uuid@3.4.0: resolution: {integrity: sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==} - deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@9.0.0: resolution: {integrity: sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true uuid@9.0.1: resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==} + deprecated: uuid@10 and below is no longer supported. For ESM codebases, update to uuid@latest. For CommonJS codebases, use uuid@11 (but be aware this version will likely be deprecated in 2028). hasBin: true v8-compile-cache-lib@3.0.1: @@ -14469,32 +14480,32 @@ snapshots: '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 '@aws-sdk/util-user-agent-node': 3.864.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 - '@smithy/util-waiter': 4.0.7 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/util-utf8': 4.2.2 + '@smithy/util-waiter': 4.3.0 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14513,31 +14524,31 @@ snapshots: '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 '@aws-sdk/util-user-agent-node': 3.864.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -14999,31 +15010,31 @@ snapshots: '@aws-sdk/util-endpoints': 3.862.0 '@aws-sdk/util-user-agent-browser': 3.862.0 '@aws-sdk/util-user-agent-node': 3.864.0 - '@smithy/config-resolver': 4.1.5 - '@smithy/core': 3.8.0 - '@smithy/fetch-http-handler': 5.1.1 - '@smithy/hash-node': 4.0.5 - '@smithy/invalid-dependency': 4.0.5 - '@smithy/middleware-content-length': 4.0.5 - '@smithy/middleware-endpoint': 4.1.18 - '@smithy/middleware-retry': 4.1.19 - '@smithy/middleware-serde': 4.0.9 - '@smithy/middleware-stack': 4.0.5 - '@smithy/node-config-provider': 4.1.4 - '@smithy/node-http-handler': 4.1.1 - '@smithy/protocol-http': 5.1.3 - '@smithy/smithy-client': 4.4.10 - '@smithy/types': 4.3.2 - '@smithy/url-parser': 4.0.5 - '@smithy/util-base64': 4.0.0 - '@smithy/util-body-length-browser': 4.0.0 - '@smithy/util-body-length-node': 4.0.0 - '@smithy/util-defaults-mode-browser': 4.0.26 - '@smithy/util-defaults-mode-node': 4.0.26 - '@smithy/util-endpoints': 3.0.7 - '@smithy/util-middleware': 4.0.5 - '@smithy/util-retry': 4.0.7 - '@smithy/util-utf8': 4.0.0 + '@smithy/config-resolver': 4.4.17 + '@smithy/core': 3.23.17 + '@smithy/fetch-http-handler': 5.3.17 + '@smithy/hash-node': 4.2.14 + '@smithy/invalid-dependency': 4.2.14 + '@smithy/middleware-content-length': 4.2.14 + '@smithy/middleware-endpoint': 4.4.32 + '@smithy/middleware-retry': 4.5.7 + '@smithy/middleware-serde': 4.2.20 + '@smithy/middleware-stack': 4.2.14 + '@smithy/node-config-provider': 4.3.14 + '@smithy/node-http-handler': 4.6.1 + '@smithy/protocol-http': 5.3.14 + '@smithy/smithy-client': 4.12.13 + '@smithy/types': 4.14.1 + '@smithy/url-parser': 4.2.14 + '@smithy/util-base64': 4.3.2 + '@smithy/util-body-length-browser': 4.2.2 + '@smithy/util-body-length-node': 4.2.3 + '@smithy/util-defaults-mode-browser': 4.3.49 + '@smithy/util-defaults-mode-node': 4.2.54 + '@smithy/util-endpoints': 3.4.2 + '@smithy/util-middleware': 4.2.14 + '@smithy/util-retry': 4.3.6 + '@smithy/util-utf8': 4.2.2 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -15137,7 +15148,7 @@ snapshots: '@aws-sdk/types': 3.862.0 '@smithy/property-provider': 4.0.5 '@smithy/shared-ini-file-loader': 4.0.5 - '@smithy/types': 4.3.2 + '@smithy/types': 4.14.1 tslib: 2.8.1 transitivePeerDependencies: - aws-crt @@ -21034,7 +21045,7 @@ snapshots: '@sentry/core@10.50.0': {} - '@sentry/nextjs@10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9))': + '@sentry/nextjs@10.5.0(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(next@15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3))(react@19.2.3)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17)))': dependencies: '@opentelemetry/api': 1.9.0 '@opentelemetry/semantic-conventions': 1.36.0 @@ -21045,7 +21056,7 @@ snapshots: '@sentry/opentelemetry': 10.5.0(@opentelemetry/api@1.9.0)(@opentelemetry/context-async-hooks@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/core@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/sdk-trace-base@2.0.1(@opentelemetry/api@1.9.0))(@opentelemetry/semantic-conventions@1.36.0) '@sentry/react': 10.5.0(react@19.2.3) '@sentry/vercel-edge': 10.5.0 - '@sentry/webpack-plugin': 4.1.1(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)) + '@sentry/webpack-plugin': 4.1.1(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))) chalk: 3.0.0 next: 15.5.9(@babel/core@7.28.3)(@opentelemetry/api@1.9.0)(@playwright/test@1.53.0)(react-dom@19.2.3(react@19.2.3))(react@19.2.3) resolve: 1.22.8 @@ -21192,12 +21203,12 @@ snapshots: '@opentelemetry/resources': 2.0.1(@opentelemetry/api@1.9.0) '@sentry/core': 10.5.0 - '@sentry/webpack-plugin@4.1.1(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9))': + '@sentry/webpack-plugin@4.1.1(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17)))': dependencies: '@sentry/bundler-plugin-core': 4.1.1 unplugin: 1.0.1 uuid: 9.0.1 - webpack: 5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9) + webpack: 5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17)) transitivePeerDependencies: - encoding - supports-color @@ -21332,7 +21343,7 @@ snapshots: '@smithy/eventstream-codec@4.0.5': dependencies: '@aws-crypto/crc32': 5.2.0 - '@smithy/types': 4.3.2 + '@smithy/types': 4.14.1 '@smithy/util-hex-encoding': 4.0.0 tslib: 2.8.1 @@ -22862,36 +22873,36 @@ snapshots: '@types/uuid@9.0.8': {} - '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260428.1': + '@typescript/native-preview-darwin-arm64@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview-darwin-x64@7.0.0-dev.20260428.1': + '@typescript/native-preview-darwin-x64@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview-linux-arm64@7.0.0-dev.20260428.1': + '@typescript/native-preview-linux-arm64@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview-linux-arm@7.0.0-dev.20260428.1': + '@typescript/native-preview-linux-arm@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview-linux-x64@7.0.0-dev.20260428.1': + '@typescript/native-preview-linux-x64@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview-win32-arm64@7.0.0-dev.20260428.1': + '@typescript/native-preview-win32-arm64@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview-win32-x64@7.0.0-dev.20260428.1': + '@typescript/native-preview-win32-x64@7.0.0-dev.20260430.1': optional: true - '@typescript/native-preview@7.0.0-dev.20260428.1': + '@typescript/native-preview@7.0.0-dev.20260430.1': optionalDependencies: - '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260428.1 - '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260428.1 - '@typescript/native-preview-linux-arm': 7.0.0-dev.20260428.1 - '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260428.1 - '@typescript/native-preview-linux-x64': 7.0.0-dev.20260428.1 - '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260428.1 - '@typescript/native-preview-win32-x64': 7.0.0-dev.20260428.1 + '@typescript/native-preview-darwin-arm64': 7.0.0-dev.20260430.1 + '@typescript/native-preview-darwin-x64': 7.0.0-dev.20260430.1 + '@typescript/native-preview-linux-arm': 7.0.0-dev.20260430.1 + '@typescript/native-preview-linux-arm64': 7.0.0-dev.20260430.1 + '@typescript/native-preview-linux-x64': 7.0.0-dev.20260430.1 + '@typescript/native-preview-win32-arm64': 7.0.0-dev.20260430.1 + '@typescript/native-preview-win32-x64': 7.0.0-dev.20260430.1 '@typescript/vfs@1.6.1(typescript@5.9.2)': dependencies: @@ -29685,17 +29696,16 @@ snapshots: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 - terser-webpack-plugin@5.3.14(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)): + terser-webpack-plugin@5.3.14(@swc/core@1.7.24(@swc/helpers@0.5.17))(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))): dependencies: '@jridgewell/trace-mapping': 0.3.30 jest-worker: 27.5.1 schema-utils: 4.3.2 serialize-javascript: 6.0.2 terser: 5.43.1 - webpack: 5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9) + webpack: 5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17)) optionalDependencies: '@swc/core': 1.7.24(@swc/helpers@0.5.17) - esbuild: 0.25.9 terser@5.43.1: dependencies: @@ -30465,7 +30475,7 @@ snapshots: webpack-virtual-modules@0.6.2: {} - webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9): + webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17)): dependencies: '@types/estree': 1.0.8 '@webassemblyjs/ast': 1.14.1 @@ -30487,7 +30497,7 @@ snapshots: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.2 - terser-webpack-plugin: 5.3.14(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))(esbuild@0.25.9)) + terser-webpack-plugin: 5.3.14(@swc/core@1.7.24(@swc/helpers@0.5.17))(webpack@5.94.0(@swc/core@1.7.24(@swc/helpers@0.5.17))) watchpack: 2.4.4 webpack-sources: 3.3.3 transitivePeerDependencies: From d9abc70aa9c9bf242977a9b7349da5f540445588 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 16:51:10 +0200 Subject: [PATCH 143/153] fix: dockerfile --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9be2043589..b624c98a39 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,8 +4,8 @@ # If you need more help, visit the Dockerfile reference guide at # https://docs.docker.com/go/dockerfile-reference/ -ARG NODE_VERSION=22.13.1 -ARG ALPINE_VERSION=3.20 +ARG NODE_VERSION=24.15.0 +ARG ALPINE_VERSION=3.22 ARG PACKAGE ARG PORT=3000 @@ -23,7 +23,7 @@ ARG PNPM_VERSION # Instll dependencies we need at the end -RUN apk add ca-certificates curl postgresql@17 +RUN apk add ca-certificates curl postgresql17 # Setup RDS CA Certificates RUN curl -L \ From 0b5eb1a35652d4f364f2619b782030730574f9b3 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 17:01:51 +0200 Subject: [PATCH 144/153] fix(skip-build): add pubstar_url --- .env.docker-compose.dev | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.docker-compose.dev b/.env.docker-compose.dev index 1d81650933..6891bc4159 100644 --- a/.env.docker-compose.dev +++ b/.env.docker-compose.dev @@ -54,4 +54,5 @@ GCLOUD_KEY_FILE=xxx INBUCKET_URL=http://localhost:54324 OTEL_SERVICE_NAME=core.core PUBSTAR_HOSTNAME=http://localhost:3000 +PUBSTAR_URL=http://localhost:3000 API_KEY=xxx From f36fa36dddc45260bd3d1f587b8a2fadf12046ee Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 17:13:04 +0200 Subject: [PATCH 145/153] fix: each hour --- jobs/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jobs/src/index.ts b/jobs/src/index.ts index 1e58a61178..7806a021e8 100644 --- a/jobs/src/index.ts +++ b/jobs/src/index.ts @@ -58,7 +58,7 @@ const main = async () => { // fires createBackup every hour on the hour. the job itself reads // backup_config to decide whether enough time has elapsed since the // last successful backup before actually running. - const backupCrontab = `* * * * * createBackup ?id=scheduled-backup&fill=2h` + const backupCrontab = `0 * * * * createBackup ?id=scheduled-backup&fill=2h` try { const runner = await run({ From 24d4b4d49cbce3a6a520db5d7e6ecc7ac3bc49e5 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 17:21:54 +0200 Subject: [PATCH 146/153] feat: reset previews etc --- .github/workflows/reset-preview-envs.yml | 88 ++++++++++++++++++++++++ infra/stack.preview.yml | 5 +- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/reset-preview-envs.yml diff --git a/.github/workflows/reset-preview-envs.yml b/.github/workflows/reset-preview-envs.yml new file mode 100644 index 0000000000..a3d8348cb4 --- /dev/null +++ b/.github/workflows/reset-preview-envs.yml @@ -0,0 +1,88 @@ +# this workflow redeploys the sandbox and preview environments every 6 hours +# to ensure that the environments are always in a clean state +name: Reset preview environments + +on: + schedule: + # every 6 hours + - cron: '0 */6 * * *' + workflow_dispatch: + +permissions: + id-token: write + contents: read + packages: write + pull-requests: write + +concurrency: + group: reset-preview-envs + cancel-in-progress: false + +jobs: + reset-sandbox: + uses: ./.github/workflows/deploy-stack.yml + with: + action: deploy + image_tag: latest + stack_name: sandbox + hostname: sandbox.pubstar.org + env_file: .env.sandbox.enc + stack_file: stack.preview.yml + uses_gateway: true + ssh_host_secret: SSH_HOST_PREVIEW + secrets: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} + + find-active-previews: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.find.outputs.matrix }} + has_previews: ${{ steps.find.outputs.has_previews }} + steps: + - uses: actions/checkout@v6 + + - name: Find open PRs with preview label + id: find + env: + GH_TOKEN: ${{ github.token }} + run: | + previews=$(gh pr list --label preview --state open --json number,headRefOid --jq '[.[] | {number: .number, sha: .headRefOid}]') + count=$(echo "$previews" | jq length) + + echo "found $count active preview(s)" + + if [ "$count" -eq 0 ]; then + echo "has_previews=false" >> "$GITHUB_OUTPUT" + echo "matrix={\"include\":[]}" >> "$GITHUB_OUTPUT" + else + echo "has_previews=true" >> "$GITHUB_OUTPUT" + matrix=$(echo "$previews" | jq -c '{include: [.[] | {pr_number: .number, sha: .headRefOid}]}') + echo "matrix=$matrix" >> "$GITHUB_OUTPUT" + fi + + reset-previews: + needs: find-active-previews + if: needs.find-active-previews.outputs.has_previews == 'true' + strategy: + matrix: ${{ fromJson(needs.find-active-previews.outputs.matrix) }} + fail-fast: false + uses: ./.github/workflows/deploy-stack.yml + with: + action: deploy + image_tag: ${{ matrix.sha }} + stack_name: preview-pr-${{ matrix.pr_number }} + hostname: pr-${{ matrix.pr_number }}.pubstar.org + env_file: .env.preview.enc + stack_file: stack.preview.yml + uses_gateway: true + ssh_host_secret: SSH_HOST_PREVIEW + secrets: + SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }} + SSH_USER: ${{ secrets.SSH_USER }} + SSH_HOST: ${{ secrets.SSH_HOST_PREVIEW }} + GHCR_USER: ${{ secrets.GHCR_USER }} + GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index a2e3158621..0585ce4ff0 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -136,7 +136,10 @@ services: /usr/bin/mc anonymous set none myminio/"$${S3_BACKUP_BUCKET}"; /usr/bin/mc admin user add myminio "$${S3_BACKUP_ACCESS_KEY}" "$${S3_BACKUP_SECRET_KEY}"; /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_BACKUP_ACCESS_KEY}"; - fi;' + fi; + echo "clearing assets and backup buckets for clean preview state..."; + /usr/bin/mc rm --recursive --force myminio/"$${S3_BUCKET_NAME}"/ || true;' + /usr/bin/mc rm --recursive --force myminio/"$${S3_BACKUP_BUCKET}"/ || true;' networks: [appnet] deploy: mode: replicated-job From e8994b9f0918167cc1f46c3bfce352552418d7fd Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 17:31:55 +0200 Subject: [PATCH 147/153] fix(skip-build): only one closing ' --- infra/stack.preview.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index 0585ce4ff0..eb9754ea54 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -138,7 +138,7 @@ services: /usr/bin/mc admin policy attach myminio readwrite --user "$${S3_BACKUP_ACCESS_KEY}"; fi; echo "clearing assets and backup buckets for clean preview state..."; - /usr/bin/mc rm --recursive --force myminio/"$${S3_BUCKET_NAME}"/ || true;' + /usr/bin/mc rm --recursive --force myminio/"$${S3_BUCKET_NAME}"/ || true; /usr/bin/mc rm --recursive --force myminio/"$${S3_BACKUP_BUCKET}"/ || true;' networks: [appnet] deploy: From 037ac1fdaf1939d9f5425b0696b7d10bd1683df2 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 17:50:55 +0200 Subject: [PATCH 148/153] fix: .env --- infra/.env.enc | 104 +++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 50 deletions(-) diff --git a/infra/.env.enc b/infra/.env.enc index 7cd806279d..82e60d4695 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,60 +1,64 @@ -#ENC[AES256_GCM,data:m6GKHVWgAXtTTDUa7RV9KFuhV+9Gmy61S7cL8oj37zDW,iv:j9W1duEFKGUaWuysoonC0vtxTK9lvqa5Jan2CiGWyQk=,tag:2bwS5dMD+v+/e6VXDkS48g==,type:comment] -#ENC[AES256_GCM,data:rVGmt/4VOWpqHguOh3/u3R086goUfF2EDW8JJsyA74sdBf9WyfbK0LPR7v3+RWWEjtwAMpBXSxCFvAY=,iv:wBVdYVBEGoav/4Fh1Q1iEO8CIx2LImA3tsutWPM9c54=,tag:5dhUlycDIJFEq8klOYP9sA==,type:comment] -#ENC[AES256_GCM,data:NDetqei/OTBQtwZ4Ceo0cLl7N5YcsFrityCpH9+N8c/Ay2yunCHFLi0xJwqr2gYZkLHGcLDsrlNcM7p37WdJlzSk8g==,iv:EVixl72asMr9Nm5h2hIF6SE+U0VQXx72oedHn7NnzNw=,tag:oJK6V/+Bc3pP9IcF2tZCLQ==,type:comment] -#ENC[AES256_GCM,data:fqWfZ9avms/8hHor51G5oc6q7yDqtLRHZ/Ofi9O81ivQ3s+2NvsQrtSurdXN/O970J4=,iv:nCt180egUeis0JBMqgTk5uPuCE9sN7froqedEL1VPG0=,tag:7KWWYPl0/RfYbLg6ssl/Aw==,type:comment] -PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:cS6aGpxsUwLRnZ21qYgW,iv:5q3WzJ4h0gqw2UXxIr2RWUTqX2ecFzu4v6qdLkE/F6c=,tag:j1CQMai5RkyU5XxuqY0enw==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:8JCgG0qus6yTqb8+Ur0Pdz2+pFVLxe8=,iv:97Wx2Ka0xIUeWL/4S+fTkAKD2C4p8b0W7nKjxNTJk4A=,tag:p9OpL6JV28pWRmcetIRJvw==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:O5Tc4zpWQ5o=,iv:q37V0E43lNr6s+Nz0ANqXuK6xwqtxk44Jk2Zgg7z3F0=,tag://nFk8Wzpr17Z6tM4uG2cg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:k/IhX54YdnRzjt1zyt8a6EGbRdReevtaPwNqb3gI5EsRLQFBpk3AGieE3uAu78VuzPOBhTww1fs/Lz4w6SYmrQ==,iv:eO9HdCmgaRoVtqy3N17NKOMpKlyROs40IMN2viAXKgE=,tag:zctEQ9899P3CTvBGucKAhA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:Z3aHw02z3A==,iv:BYMG39BVzY/f1uw3EbOb736eZL8yi4dEHJlpjx/F8eg=,tag:AF7KdTHFO4CfY/J5ZZwmoQ==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:e5IJHqxtiqGUA29dJymJZ52ukAXBvgXUBMBQvI104Gm1hGHCvUom7yBr+kMlH9NiroDubBFDIVLQU0fpDJ2VME23Isp6IsqnXVCg3hkYn6y6lbtiuFEyU8+jwcHSvxXRPffwM1Gy,iv:zG+CfngFybq+qarDgNWcBkCvXvb7rCRkUU+Um6igJvI=,tag:eOICILZn4RwBZU99ArVN6A==,type:str] -PGHOST=ENC[AES256_GCM,data:A9g=,iv:V4TYr3R8bgXsRKQMEuKnMQe9zN1NS7voqpAz1tazFQA=,tag:jgQTyy+rQYKD7Wq8pbm9AA==,type:str] -PGPORT=ENC[AES256_GCM,data:fuZsvQ==,iv:vL9E+7uWRztZCRXvrKLvBQY016VnemF0YK6MZ6saaEo=,tag:4J8RI5EaivtAsyscNaI4sA==,type:str] -PGUSER=ENC[AES256_GCM,data:JgyR6hs1qGc=,iv:gVvot618hguXdpNdkpwYOybqsZyQ1ScIfs/UhKpJ+yo=,tag:wqaS/MEeXfKH+WpYQXKO3w==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:hj6+bVOIRjlJ1Nkm6GqsUKcHgeBKUjJ8s3Q1cKDUIR9cX80yLk1cc/NjES3cml/3lwKq/OqFbIQmO08W4qbC8g==,iv:RZodNTjOK1zqHLxbeqSE6usS9DKFTmAKGamUMkwSZKM=,tag:rxVWnTjy/X+30hdu/VSxig==,type:str] -PGDATABASE=ENC[AES256_GCM,data:QWVivk8FnQ==,iv:S4ComLfqx9JTb7iEVo5zUGdFGUs2W8su6eJ6l+McMlI=,tag:ib08gpCpTA78p4pJFSQarA==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:YoL/eeM=,iv:CjdFAvTqe9VojpW8d3IbzehnUAQpF0JndwFtSfTrVY8=,tag:YsxbR8d4KY4UgIAkQKY/3g==,type:str] -#ENC[AES256_GCM,data:m6rF6JzjiIVnhuZq34/B06wCiIW4KHUxsNrNav7t,iv:A82EmjrH/bQYLqm7xna8tpIP1mBXaF+BOYPN/NtcG5M=,tag:UxQASIMQuFwCbucyVgiOxQ==,type:comment] -#ENC[AES256_GCM,data:wFhVkyM1GZkR3RqbNKqWo/lk4sY+8YLSAqUCD3BWtrSRdg==,iv:6cq7YcxrOT6OcvpUWPacQKGEQ/0g5DN1UO3ihsc5L4w=,tag:IEJTHHE/p+taAqeO/ltkrw==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:xRYuWDf+slsK34p4s2hR/oHo,iv:ZZgfcDTU7+TKsxkswQ9Bzq3Wi7U7tPPIyTyNXthbD3M=,tag:2FkRIutNR1YjRFJfO+7ZAA==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:0N4cmjNRU+LLB1w43MGCeMou7fg=,iv:E3Zl5VtrDfG+oWyOMgfd9nyhhkWbDAiXZvyC9z268MA=,tag:1trbvuQHFqDOzWu52XORAg==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:zKi7PdZU0FEaPKcdLrDN9xZPsbW4WzVN0esuG5qRFXpf7jBfnVOBrg==,iv:+rfJGP/V+Ata1AZqwjf6HqPBCtPnsZMgqc+Pz5/twGY=,tag:+pJ8jMi/pT1S7PS4Qlg5Zw==,type:str] -S3_REGION=ENC[AES256_GCM,data:DIPslxZ2y1sf,iv:k/RaXHvB8htSp0hnBpE6kzEKREKM1xl3BvmhbWlOqiY=,tag:8tdOr4152+S5Cj1dwVDUpQ==,type:str] -#ENC[AES256_GCM,data:9sTu23l+S7NzJE4ez+whP9vx4YSfQIJXh/yozerT,iv:MaJ07B7zPugqgzXqnCQQW6EbMag2kuxFSlBza15pN9c=,tag:vl8d9PR5DG/rxSUbdMY8Fg==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:JHF7AmgdmZXd,iv:KIbqrtSLrgGwUcFASHOUay+HmKxX4OUD+GoAStS/XnY=,tag:3FkNYOAEaGc4FnZaiSle9A==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:eQIEDF8EAonxjEXx/gDs8WSfRRdG+QPi,iv:KfM4l9f5fu0xFAMtmEQu3UHpyGBQkPSUCMVTpCYhKRU=,tag:bfwQcfEdUsZqNe9YrwJJ+Q==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:G4DV/Bgkm7Gr1pxEqrOYzB+O5Sbb6uChjdnea1OXO8VVwg==,iv:EDh1UeneOlrSBjVTelEqDLbific7enuuhxErl0SypcA=,tag:sZHGVE+TId3afNDPJN6PCQ==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:3/2f,iv:DX8OWAeKhEwKBnGd4tHSabALrC84R9s+eMkBXyhORKs=,tag:G+JKU05PmtxOL10lKPIGew==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:PkitCsM3mULoFqhwq1PzbM68hCsnEg2xiz6F1LGFcJqnvUXm8V86zM5DHs8=,iv:opSnZH55QQsBt8H68MpK4OIEYOMSAaGGcb3bBksLjSg=,tag:gEOsDWWpJhV8zTsEQM4BGA==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:Ahh6SK8FHDzpohFhYwGay0KlvOw=,iv:GtRi8UOs2B6+7I30isi7L3pdDQzXWSFcYOrKhkrhYjA=,tag:SdnEDKoAmZwVQY3oO+ycoA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:KW/0oGQUJ6JoMcIHpS1p,iv:55uEDn4XNGh27eULkNAFwB3+qtJV0WFH7GCMT53FetQ=,tag:H4RZlojiPBDBMKm/6IhD8A==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:U30C3ngleJa1T3TE,iv:4bl4pf6eG5afnMC0tRhFFGrl6xByIAbQg2gLtEdIFRY=,tag:OCd+oWnIytJdHq0/6CSRsg==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:iYjjbY60Tru0JWT6hEk/3wqUKTWH+ewvHppVfbGwyyjCfnHEIyIjncTTNzBTUXMo3KQc6SpA4DHPDq15pZ8Rx2u/I7Abz62OKwhLj8RmyoKrxWGu82TitOqB9OsgrjjU/c88QIuxB9y+3sHZG6eg8CAvjXoPXRpIXqwJsEdrq4g8BXYLL7ywcB3zmA8f3q6Y492wu452C9K727uLvXIDtJmH3cEjPICZt0SCT1OMeNwoSD8Wk3zp8MPvrpEyK3yO0AE0r6+2ULQZNnC0h/xDoK3UC3m3BiOFz4eSCNWT0L1AHBT4WoX/nD1tOnTqsgeF2AIR6T4WBAhGEeQcofysV14VHQW6bv29qZjhM8FGnH5nDfKaHNYR7FrF1lCUWeHAMfwAR2EP1I/dt/+rp8bAl1AZBcdbg77UXYHH47a37SpFb6fMIuKYYJAphCl6awfs347OUv2D2odez8GeuqY6tj9192HDF5uW6wgQ4WYQyr/2TLQ/pOghxeij4NkNcEFOStgwF/EMTgrFBn77vDJjA56702LtE8BqDiIcFwiQI+WsznaHBIIkbLqDyNT2AJB7j6zrZQSMC1F65zEwkkizSlnVuBnZy3yAJOgLMkUI6zOw1mf8VCKWaueMr8DiKMxUforX0oCePTQ781noMTaJStkXL8azzAWbuEfHpdYBk46Dg8k0Y7O7O4hqAPEBH8QoPzOI7R8FhWpVXYRfTFV4gTJKCXn5LkyiIy+pbU7q6gUoGrCIbAvcoGWnY8zCh8N/mPIYw+hBuaKlHimsfnJSaPZyMWFTt5nw5AXdt+/uFk4HnU1eWxcYvE74IcGZhoeondHB+k7bf3irzKra5oxDNz63ZaxSB1LdBYDptu36q95uRdErcKUHMde1eUxWz90ZkzrAGlOSzEn0b6EaDoCIWaqKjbbXBAdeSR2hZAx3I1ULZi0po5nuPk+BseUSs7LlWftW3RuVdd15rFiEkxPdPm0JYY8QHCVoB3lHckuyCI4b50+GtoQL0XO5tELyiKX4WKhUMZa2d4QlxVx77LHLY5S6GQ02hTOn8yxwp8UTGx9wSYlpWgq1FkUmRUKMZuQLNl9fzOXBpMDczKcDdZHomwGPdwTobgPoZgbxA/2lEl1i8LYt1J90BDiPoT21p2AHHqxgq4FdoNgImhkr7GNyBuKZQ4GasPGgJUnAApVs2s9lUhXod8pcqmmoouBKZO0oFs+cynsEOBdmDJeAIBOEZ45mrk1a1aCVg2z180FXJNtpgyUa5aNbxwWCTbgLdbXl12hzaQGphR6FjCHf4Boq+LFChOzcVZsLaLr5yZl+DGuiuakC/X0gG7vE8DmqItOJ+a4zzmNBxUp5oy46fZAh1nNShng7FwM9Ig6qxjDXaJWv3Un5hbiFCB+VCRItZSNKeB4+Z8Z7TQpGAgPDmisk+Ai3l8pkKIfDcH1cojghJlPzpMPdEkF3mbtqEXfCnqGuiyqTlQswDTZTkfHpSHRCMdCI4YGUvXu17uwyRzHSx3kr+QNPz3nd+A4rDH4E5T0ENBV1yoA+PqEt9vzDlvM82KYPHbY8hSBgE4h3ZV7v4EJe5oX/zbviQaQfBnJ+cxfstFfZiQ1gDJKC3Gzmyy6wBOrjgfjIDb1Ghg0sDpzs+Slir/h4Rfq5gYmA/iLFXccRF0Poaz7K1Cr5Bgu7Ljgk/6v2skAtUtY4o0HaXfDdb+adTaT2QRAbA6rOlnzU/7YCrv6bYUcmatBiJNmNFfSOpMTfqNDu4knFGiidEqYPNANO5QNICfxHiEjv0GDkdc5H42IxknWLvysNLBEnKbt61MJe0V+upNefcYvlqdSiE47NXT7kKKA+CwAnpIrgCKK5+k3VEZVXZMin7aYqNhCicCqcW4x36Ht5j5U4MDwiHHmog8J/j/IXtdAqPDRltGjEzyQYxzHbnn1paUT5MXdUi+rwul8xh4j6pRtgezq9EyrP4SSCAdPaQrW2hh9RmdJKhdj0cEW8mRbYPokEpnVwa254IenkRMFW6xO+uL9dGdjZ0+ItMon5pjSG+qnojAEqGnmGdtonf3lPk2tWrBRR8prpI/d9LDXP0hI14RgiitYfMpKR08y2zx0ph/PWiaT4nPD1hlC9AGaldJYuNmx/n1bpxv6zrRlnzSQ0kJZn9dRatnaxeZa7lPpuKkdFYLuBVu7u+Vn3jxEkBCX2M1z3hfQIX+tUhjMwVD1+FK4h3SKjWTkke8S81IleGXSXUfNyGrSy6QaK5yuWSnrxzZ0Dfn8pbh/Ctp96wiE/48HpQJ3hHiGv9s2YamTqxs2noStvWLwjeh8eKNZiSySyWbCkqupSb4CLGp4wwxV3ba2DeVZHxgfaxlN+duQ/+XQBbjo8NjRhrx59S8SNAqtZQTyC0KgHlChyrPI1oKiI9zze65CqDnL+RSjb/BzG37LCB14DL1kIjYP6jjpdhGLf2pkm+wpzARktcsKaidJ5MlVDLk+7nutHA5uPOkqqKHz8R7BXgWu0r4ryeUOXBnHEDzVl/EL10u9XjkLvsXs3semUr4dS2i1Dkwhv44eg04vPiRnCm/Y2Pe76SAGBkJ8DPH2S1QZ4oySubxbDDWpS/GQF9rkwYCWewGvY1/7hDd17YMmVGzgQwKpAeKEHYpfNI28nKjTGGxcRG3Aq0o9MsrPkphMUHSMhYHHBiwWG39FI+qXi1QmalWAo7B4cadkrIcMiscYPv+zbuZJjf83EnsRrxqucfDlTKqfst35nPLBHKVZ1iGWZy28UUkZhrlvqzFWw3Gd6mwo8JqZpc6SN0Cs7vcoutoEJ3l6EDXD77JvvJji0Vlq3hcRT5PxCtYIBKH+DnUS7CWXRMM7USLXgSl6baQXTaHbIE40CO77Lw3HRQXdAHXcfGlITgCOGZ0mb4TpGpwXbCjeCxNj4rNyIevzxKRKbDOPYxdaN/klj5Y2b+7ikh2z/+/RhOmEcS4eldb5UymloKR6iTEvGJUMR+P3oFCFeAWH2DyuU7NL2hHa4kXLQtkM2R7eb3t23QD6BbAVuhWSP/VtUax8JZQJSvUksqz/hZWuGdOzXBUjN4wNP32rWKElRXrKyTrF1rRZ+GSRlqgk0VP32DJ4AE793JjSLwQLqomaV6Zo40M/l0+DCobfNI7BocyMPtYQdQLqkQbg2KamXy7YKuDHge5FbNI837snatSOuhzc6oVtorKnzZGgCjMYdPLsS+wdojNi/hrcKMOjW2/NavPpXw5ZjL70lifpVU1ze5ZYuk67L40S0zeW+ynIqDisQ3qnYLx08hVDxhkCgCFIE78p9tUP4zsuW/SPSx72iQUto3BB6yKXU/HTk0qMErVxmtDFptIK0IBNhrL1K9XWcJcTxRKBhIpSmxwQwiKGvfxM/bE1BtzwsZZRYTRtOOTu8Di0n9JOTACYsgFX12smSfDp9/NUK13D4CDvuYXSa4rwqd62iUCoxc5m5Zpadl/GyGxORZ1ZgpUkLOjZwZ0fL2eym1yFvwee2J54NAGM7zJEDARjVISFnRtq9ngfbzVo2GRtk5WedC3zKyudFrIFq5TfWoJuWMBOvMVY9/Sv0tmGCXUa+uJuhGVqAbEkpVG1HaUAlmtgDP1MUEjHl1w7nuiei5MV/gXZGQW9kLsuWlgc/WJR3FlGb2EWmQlbmMMhXLWm+korlO7GzU3mECnWZOeYcyC7VvHwS7xWVSWru9Asboi3jiymprza8Q1i7shleaOA9dSiPgEas61aeOM0q81hDFfDMQbWMx9XkU4ivUZ3ddV1FJZT6vxW0b9OlVSoK7FhCOO9G/dQGI1oYnLN63ISi5wIiYZ9IPmc6RftUQQEVcO8XHLNZ3ghL/cf2tbIMohjBCgHNj14CQis3v8UEhrNha0XLCVfE3vJaotTuHbHhu4+75+EUytUnrcCmGTP28WXrFXhxQKlakiVhCk8AlHEIlMBv2wRUCyxvaY0cobd3XIDqoC4EghJcRg7ZHBT/7W4poHiN+XCxm29nnyWRQ33T0+/x/ybjDQj9qQizn+RcJ4jTwFBmTWzv5yb/HNauoW+JxOyLilnNGSX6YDksqeUaqY8Y8TxIV7E6VVA7kyF1LrMhxY/cMG1jk5lDmoJK5Udn2MKxyNdIxbkJck4ipSOCnURvSt9zQxLCIhDuYx6dt8Q5cYArDUBBz1YInQ==,iv:trtfphq0FpIwslucwND+3e9nYhFi/KC9W52UMeZJWPM=,tag:h9QVabyPyjgZK71DnnQQew==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:OuwiHWwG/g==,iv:r/YIO4t9myiTqmS0L8n87IsT/Cf2ffRlNnVD5OO1Pkk=,tag:LPxGiPFWM5j+jJpLGrNXgQ==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:yUnVuq2MxyQe1RdC0El+tA+bmSVGR085Iz2LX2DSY+xLLKuId98Ohb2umgq78xGM8gfDA0ZZI5y8iUFlIoHDtQ==,iv:m6Hfa1ftRzGXFHBXK5AXSqLBvYhlbYtBss7mgXKiVYg=,tag:H70PE5nULau/34+0ZJ/oeg==,type:str] -API_KEY=ENC[AES256_GCM,data:rJvW8WrGFVdjxR4Wf/3/TVrdQqroQHNoLm68R/z8hiY=,iv:PXXUWB1nufNXc/9O8Nk/xdPFh8tPHxSUd+FtqN+R1Pc=,tag:bwL4e7wisxC075KgKuPrMg==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:6hywD3DfhAekELNZTWkGQSuCZQ+sBDOh,iv:/i8AZgI/yzqZC14m/6xL7Gmns47J7YCCn+JgtdVpFZM=,tag:anHLEvCD/RNEWxpdg1vF8A==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:hJiFI54yQVaIvmg=,iv:9D25L4baxoBD3WKpFKKBl5DJ6bSw3NETi6gqHVK0t6o=,tag:/DVLjoODsW4eeWE8Jm2ByQ==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:xLEnQaWrD+yHq8ROYgNI,iv:JlIxBUHqwmZ3qbr0D5fE+nVbOLutzPS1YuUh9l+En/Q=,tag:zjcBFuBobIQxjvp8nkKpyQ==,type:str] -S3_BACKUP_ASSET_KEY=ENC[AES256_GCM,data:KppDfWdPl9oEMgmTCzGZazbyOuI=,iv:/zCO4CSwthSXtQR7mahmZnWpNK/JE2lkvCQ/NaVKFfQ=,tag:ygDz5Yu22VeO7/hrR8/FCg==,type:str] -S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:sl2CAbQI/qUlJ6Vr2+jEcfG5hftQWsmrdwdGeX8PARjbe6PVmMYvFQ==,iv:6Ppmiibu1uodqSMnNvG3TXH5vMjmsDXKEm4aeuNAnZs=,tag:v9yyLHoYD+Ng3zfoyFgIPA==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA0Z25JWVlFNHQvWFNwWVJm\nZitNeWdkMitkV2JuKzJFVFNsWHZtV3FhZUVJCmZhNHVCcjVXNGVOcVJoNUJweXNo\nNis2WlB5dUxSNHFHTUp3N1ZQcVBCZlEKLS0tIEpHZUkrbjcrUjJmSTc2N29ybDBW\nODRlRjF1S1E5MVBKeldJaVVzNGpvVTgKNiU3KXpp+j3YYFHUTr2439fk8UM8bz4J\nnr3RA4xJ3/kb9CoTI8jRrye0N53VlFpiwO+BWUtzuN0yn5hLEFmqpQ==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:Xc2zV6AKRI7w2DdhpMvmt/mu1EWdEvWhOFshiT65r2g0,iv:aoFWIHaTx9HhjUuRpdVS5A578dHHk94x6rgRyconJI4=,tag:ziesmuXD8egwXPuJgpi/Mg==,type:comment] +#ENC[AES256_GCM,data:UpGThOaUiihyyRVPav2wbKCyHxnq/rCpW8GfJbd3SkoFaQPUNRExa+AW7Zn+SO6VcO90mUZ0QPrko+g=,iv:ZYQd1ZkryeBEMYyddMmaQUgBC7c4Ie1LytCIa/5jXB0=,tag:+nk9cHr6Z8UCUsrl26bB5Q==,type:comment] +#ENC[AES256_GCM,data:7oebT5+pjOBc9FJrEPysDzxvh2pUvBPHBbfDj9kZjc5OHXR0B2Svu/HeGZo2E/K72EXS7RtQcdaz/UWiHTLuAthyNg==,iv:Khdjj3fx2og9Xbado6R4Y6QF6mCO/yzJprNfROvxYsE=,tag:xVHo7PHpT09nCmm/Ptf4iA==,type:comment] +#ENC[AES256_GCM,data:9azNXo60Kpxzz3epg8iA/QFovtTuML039XCihCkQfD/u8oGJi1M/N0ZnizNYIydo+qo=,iv:nGfBWpN5bOCsBHU38cRdvJdCzm0MGY8+3qKpeqoVcVs=,tag:AAk6QaOFfIOBlfIqqABi3g==,type:comment] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:YJWwnBcfrTG0jcyf1Ugk,iv:QMpLJfWVbgZ59R6oKaX+4HaXVMNtELkAlWVJLG+Nbqo=,tag:eeIKEIuoA5HKuuWJ+WDBog==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:aurIo7761AG+0CRdpS58dg3PV6re+2I=,iv:I/yftfQZ75O8ifPkk08CiAKnVHe3A3gEN6RU3VJzdtU=,tag:QSQ/lcm58YER8tXH8/cR3A==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:PtVMYliUEjs=,iv:LnnNvh0SCSXro8dxS2Y7dDFWMBirVp/NTMsF2lpQokA=,tag:wkC1iPB5Zn3LlfcQfOQjZg==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:HgiguU5qkvBA0psICbbVjyLHuEZpzb7lvIpXaMe06AOXwP/5nXsSRrKyKqIi1t2/82WO7u1Ll4WLRjZzXhNL9g==,iv:YJUVvUVTebK9bVSag0LOvjbLtzsHoHvvwMRGjBYq0Js=,tag:vkWnwVXykA8d5aU7mhAJRA==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:YDVkA439qA==,iv:8XMK4pTySRv8pDf9bTJ+NZM4g7NUQDLj1dAZ+ATNGCM=,tag:ifB4QaYOIOSMDDmDWbnOnA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:mSpJ53vWCqMh0qVfPiQ/4akUFwD6Tfea2Yl92dI0Ur4EBjm5bqtIOEfRvF81b2aTC6i/nkkMMu165I+UoQSK94UsrAz3C721rjOwKNqQcp4KAVV5B2UFFMM4WT1lJzBNWpN0NalS,iv:Nxv8ly2t2A9MS5YUNFYW7UcKlFQRtxWN0xZalc9/R1Y=,tag:Sz+YTo/eJ9Vh0uFHsjFtlw==,type:str] +PGHOST=ENC[AES256_GCM,data:iA0=,iv:+KVfdCYIg9HHm9GgwC/ytik95nuVHODp3fgNkI6uekw=,tag:NbUP749lBW049XKVdTjRMg==,type:str] +PGPORT=ENC[AES256_GCM,data:xfWSPQ==,iv:6BKemLpxgVDD01oZe+yGv6LKDWvRE59Qd2duTEA7O6M=,tag:qpiDT3KHCHkIopIB10KU7g==,type:str] +PGUSER=ENC[AES256_GCM,data:Qk0mX941NeY=,iv:b+Skqx5ReRk+tXaQ8GYUQFgdkWAHpMhy4z4kDdSaUz0=,tag:DRluXlZBv5S8ziSY4T8HRQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:VG7oVQdq8FH8YLf8Oy0SdGlN2JIu0OmqddKGGMpbp1s7MCZibXr/Q2Bnfi75oIX9Pzr3S1Np3rlY1g+uEYJ6VQ==,iv:K1X+Hi50uO99/hzih20YJAWsMAMD+aTHKOC1DZYbAZw=,tag:jSiris4nLJq6siz/to6PNQ==,type:str] +PGDATABASE=ENC[AES256_GCM,data:cC2/6SuN3Q==,iv:r/+699MIs5uo/Mz9pJUy8agQmG6qXbAQ4QBWHXWeUXY=,tag:hbBktcOaceFrdZggYM7y3g==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:QlfEcqs=,iv:0cVBxh4brtPlHUXafHGa3SENzoinV12VNOvQDy2p3Z0=,tag:rcoSJZol2vC7uNZQ+AHtOw==,type:str] +#ENC[AES256_GCM,data:2RBcaUPxbs00Bu2+PxMGq6AQJ9SwthlBpFyvpvkD,iv:rrHyr0QVTTY0kqW3eMGU7sm33+YXc2li3Kc2MNILuwY=,tag:jdDbVE+v10pAan96DoUfuQ==,type:comment] +#ENC[AES256_GCM,data:CcNeN5ere7CzgGHa0Q5ofjQNe6LDJ9aiTcm1Rwoc5gqQVw==,iv:c8TFTSIwOM1kCwfZ/+rls4FovGGp/4Xx9PPIojnPzwg=,tag:SdjmUKVoFp+nBu790Z+3Gg==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:JRcbVpLiXFWuIo5FBli7aQtE,iv:Swljj7g4NocEvGjJwnVuLTVfUzsFDkDap/X3qObfsgg=,tag:E/VOuHp3/CWbH/01GBjzGg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:kIqqOu52ueUBPmXymmOymz/h8zA=,iv:6EFwAxwPXn69e3gnS3uk0QdtOHlhZ6/N3pNQuRatBiE=,tag:zSH4St0sx38/kO7B1V9B9g==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:yE+Y5dBArMLB1u9NCIbGfdvFoJ9xKCH8+Zz62tBqeV8xEZnvQYvSjg==,iv:AAASJKHy/9wlvjKHV4gXzWDiJXLRlEJ30VfoFLdBlwk=,tag:P6yhNlUWe21pkd+eeW0r5A==,type:str] +S3_REGION=ENC[AES256_GCM,data:oXePb6T+XvJP,iv:J4eIHcLQiaeU8WTlx1C3QVSZ7+mujgLYrIu95Ln7fJI=,tag:/RYQyuX1/xBhs4qyn3rZqw==,type:str] +#ENC[AES256_GCM,data:lf+6hr+M8WFT0dqbWbcoFu36df6QiG3q87kazbdq,iv:4aye8D4s328wWXH+m4DxWqHgO9R9jv7RGeTpqVZb2d0=,tag:EFrTuY+2/RR2LnsMgML/0g==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:+65yDhh7Rhkw,iv:nQ+CXYiqtEGw/MO5/yOsAM489L8fE8jYJ6cLlYXIJW4=,tag:Fw3Eb/cWA+RplTX+q7xtAA==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:2wWRKDx+E+FMPaOw6SSjypMt/qlW0TpQ,iv:lw+51nYwaCyme5W/Yk1gnL2FSYt89g4Qwi/jrAzrewM=,tag:TknKJLuWwUrROu2H1J1tEA==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:r1zKZf/DzcIbG0O6fZc3GS7k3uveVHVM4FBi+a+gKhF2cA==,iv:D0RNTd+rw/OyEQ455axDZ9X9IIeYnu1bz/GNiPKxUv0=,tag:C1xa7iBNo91VyBEpA+MvMg==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:O6WE,iv:4Wfbe4fUCCE/aR1Qouf9qS58tljwIn+ynsKSGiBK2pw=,tag:KglU70UlAiDXcGSmNpsNHw==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:ISK16CLTZ1/mgjTLmrdX20zmdHj14l48l8VxEMIvWf6dOJ7XClYp4hQ05E4=,iv:f4rxVX40tQZLv2hlrZjWzqMKSzho9lYPjkMRDJoRJg4=,tag:YAqN7xTTjLWNq/nv4rOs/Q==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:uo/wrooJ4bhY7sd1kUPyBtPGAaM=,iv:dRV9m98kHlMlDVw15HBtdpgS2jP2rwTdBBQRpGBuIdw=,tag:OOIuGtBfco1iZoCymBrLEA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:TvFfv6+y3QEHkXwwes//,iv:JFkTRENcgWCcuZZiESQXLkfIwYAGAc3oED95UTKiKM8=,tag:Z9BZN24Q/GMDOf/AsYTmeg==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:DOiqTExcmh6KmvKT,iv:Of1nl8R3EmFyfKMlPtQZhEM6DZ1cTKrNfg0fJylzg9M=,tag:l1I3z+srApv/5kgsttG3lw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:sa1WfT8yIR08nlI5HVI0ZTIH3seREjgb6xUl1re4SN1d+9gALTLpUlZ9JRte4wHO17sMKlZb5UShMqFfaIegME8pB2w5ZXW4GDblB8CycbeU5mTdRav3zrwqSDqQLOEHt5kXjRbaqFhmeqA1zUofzWtStMwJBtUmPF1zwylPNy7pZEtGfW4N9AXS7jeab5oNzfUIWojR1bOthcVP8L4bcB1yYkKnoLg0Mb/0a40vkiNLdbbGNVBF4azPu7VOKrZUHp2UpUrRIQinHBM2eKP5lOHd6YprWLGRBMSY+8b82o6vn9omJevVJN3QEIUc3m678+cU4K5k1NlCav17mPQQt+aXn9dy1zRcCH34HVOE/wymNhP0IvU0bj6e+6WUjXoZR0mX3ms4Ps54mYkfhRlulXX12XeO0akP/MAxlB0AfppxjHDj9wmCZlvb8+hnHTDLpEsXsji0c1ho9U6Cgsi6AWyYvemY0aJ2Cr8kLgu/a/GJRNhVx3momtbil3H/RmHkHBY/UaqeLjdjbh3ETrGoo6xQX0wvObTgilyaRAOocCEaj4PcBYItqSXPd5yEu+GNX8PfzlnHHt+zxxbOx9DEitnAStF/a6W7snt5trd8ZXDkMqOL17RaaAGrWVL/SSapjl6irkC9IxaWA7qULYDcOw99fOYP0lHWgy6mBn/AF+GMriazUoQ/ZdbL3UvRhHZ4uYTXYAphvm2qrDx9QL1W7X3RT+FgRvdNlG7q2MoMqk7jFavSqbXh5ye74O3UU9cq5xxawq8kWGR0Gk4SfVDyVXezWY6KuSHQuPzwuzHVK4hQ9ncx80KdIgvSAPsIUAyhhx4fSGXhrDIoUBHxoAlWQGdw6t3KA6D/EoWyWE+QqN2w3vJ8/XRQf7fbDyv/lH4qUvtoK+nvTOUAmswaxN/zFa356swPV7yOxXMZW5UhPs1lajeOf2EYw1nb2gAhWkGCXMAhUTfjpd+wJ9dBTmzXhYEsR22CDjQiAOtzpbEx5BMbtSw0LQw62XsiXkvN7WN7PsTvxtWq7no1uMSrIMgfctiTi+9Z54WqCZxnqDenzaRN0AiuMr+VN5rsBh49J/Z6m5qdf4ktf0zzVP9UH73t6nzFtO8eFIGHj7Ac+MZMuqSGvw9bUmbJpTclVw3r9ZmwS5dWDg6bhKafq8j9ikrsMQe+GotvSmr/AcVPGqAZpOjRLMnPOtgsG3v2l8/gJb0n3rYp1j5BtIAYhCOX7OhZFaQRPeqD6dXp9D/3u6dQ6a+XNqpvlWz7hFB+LtCLIrExrso/ar79es2B3E2RXNzVN5ZG8pti9rnScfkLBUBtvRs+46GIdGuCGrtgMM/k4m82itbfAHV5bYC9XI2qheeF7IWC01dcNPepZTPxCDGNyZbNDFLt/DYvQhJbm1f2rWklj9pGIlFe5rlIrDRP1QlmoE7h5V27S9kXumvzgtu/UsE2NpKD5urv7YYBgLc2rc93IMizG6Lmp/ouFR3uQ5GBUJ9yjkckfnIKGh2n+I3tpa8Q9JwZRQ4IGRLTdFnk7jO2vyTR1JUDspp5ruMM5a9zGePhr+gpimwzzKxESnCeOdewdaEYHNnInDU9mEIis5cLJap6kVW5QCaUXql3HzkXgg2OG2/LbQGAtMcjZ+jlTFZoCSug315hB+r4MsZGt07CpzEylP5LHMpdJHXDQIB1kbT2syCmIdKf1aI61RAUSUIMFIiOyg2Mf+lO+/OLSrP/iUmPwX3VxMeWerFqHCnELXArjepIRcPO0z8MLROXj4AaShizY4PHCP6V7HJjCNjOXuHI2p3fUuE5iFArfLVHLPix4+Ej6DdB1zEWyHkKaWVyicMxDsrXQ3c2F2GTD/14LVjRmqh0flGhVa+2s3UBzddpsbvvIo6XUtJEdX0A6U+Az7oyK3UY29Q0CgqNYtCElxIIkNlMLTMV1cARX8rQW6HjEp1uEKY5qlAKEfSlYRcg4wAxK3h5K8AyF1Ect/iEOK+HCZYCWtHdzJ3FLV4WFHkG/OjI+mMze9xAIocQRTi2sy6q+MSb7LoUfbukKKwitERcujQywSGjrOBggJD5YoneeIGTCEMASZtOHw3xUgHgwEv82BCXQCBJyaYtu+yaoLGkr+pvE0OE9cHN5O071EDO2QceaWY01y23NQGUu57TixBwjvQd5oqz5yzoerYzd5MO2P+Egb7WBf06RpIW5EjOprQSJTCxw7chy9mX0yOepXiws8mxquOutcp/SSd0tldBwOUdckzOBgKJvoOboA+7pufA4NgelQeSca0CgWK0R3QCmcdrpqux+NmJBevGPc59l5JXBWOunL2xd1PkIfYSL+jm6dsBN3J2XGoSUesqd1rpegE7tREIWaak8SaVpCRUMgtmoIfuR8i2C0Yaqb2WpRv+7D0e6qyRg51rxK/JlUYB7wgAJSsVS2GFEnbgWLu5ZJNKAIzNt4tpkuGfLn8+a37xXlxOyxHZ/8EC/0KChoZSZrFX3ziipU8oScWAXo757edJT6BRLBJntqdOSmVmqVCrCGVYcNDTvKjS6wMVKuNln9dklCYPLRFgYiCRvH2OXaNqBRSFOGLe9V34uFeKcEuE6/RfaQuC72yJ8jn43ePWpF/ZGMyr21MG1K6LP1qdcRQsERQ8o4Km9W9L+d3J8WgwHUKl/3R2DLa5zyuFAeNL3rqdOhS1xKmMEVhdC+2aVdDyZQX8s4Ih7XtO9IibZHGW3MJPD/c2RQTb9blBDZjVO6LMVejsxXIhPua0WayzBmIVIbZqAIiP16Jcf0QsRFKPUVf8b7JEpc6cbE5IRr0o3HXZFTctH954JZTOeT+2fxgM0IRTqOei+6WbvxrNMg8gEMFRe+IWx7KqYZZb/310SzOOabo3iqbCPhVd3kQscWzE/T1NreImnmTGbadMkJaw1okCQ+uEfgecCsdlwd6C2qpYaxNIqI11H41VsYqjelKIdGOnKwZasBNgjuq+ylqX6VGL92CyGrouDXxB42Iq8QbdOdNgpY/zHzrUqGQzaQhSM4WUdSEQl/6S1Pj290uMKfIs9eCnb/JLYA6x6N6sBFgSeEV6/5kVipu7SDEYcplMOPp1mJJ400p8jdvLYsf60/t2BI7L/t3o1X3OrmpBflzsp73sX6VqAH2zdUjbcEHcOFioi3Zat5J5fen0WB/adqd64r14E4vEFJkmUtAoPuFbk9MRyZuMuoS1moWOctWBcOgI4TGvuGwKP2miuQZh/woLGn55kLAnRxvPsUvyJUWhwHx6UYnNSPd8+gDpGZgeiYRi1QKSb3vn8Vt07cB7uNcsKauBi2qnp2f6imDS0it85k7cojfVELL6b1PKsp94x9XH9ZERhfNS1q1yXtUBEX8uaGkUaxuUNDMRAEe+WcDJ4tJm4gQbvnLDdRnTzEj3aqOmm/TR8J9dZw3Or+BRcyqCHop9YLluCOMzQ62WqudUgJOfoDVhpM2DRsr2PY7T43zvLjwHeIMf/BnM3p4IRrGkiK8ebmYtQKt5jRZQ8MGp7ItF9bBnuaCwu+DnAjtxweefzj5B7muVUGUPAnF2Fx/Bzyhl0BgtCU2DXbFzE66Ne6YISUK40jkGDTBz8baRgFd62ASP2WBoTO+8oY2HYA7OTfslO5k4Vo31tbtfNfTk8iIlgnFpHsrVY1LbVRJFyCyFuK8vVJnCkhr9z6lPyoe5546nvF0uhdOUtPe3eEFn3X6DpoKgSujrmMQ02pThYzPrWsUCGxqgHhC8UkUQhaW7fsKgdfzGlt7Qy39O5bQMS6OnaL7Risj7kokB9In/GQcKXJEcYMnnwuogqhX0sRbESF1zS3ZViclvy+R1KvvtlVuMziDLqJ3mhyiSAX8Y8LnyK/1tghJ3cZD7+TjzDtCnLfZwYSDqq/uyLIONxlvv7+V30i4BxcA0QPIZw0Eiw+TFy5dtWuEr3c8DtC/yWfx+38zRgq06yqi7bDntzv9CJBKKYdbzYp229Ym0yYbf2CwnY7B294vwtwes5Mv59uK2iu0YyVHu9v0zaxxJDsZekaUeAJ/tJFqn2XcUk38N6hdZCacbOhOI1gMg1GypbDiScb8zRtISEGoWnSyPhtnoXJ7iw5vL0a94VPytfWvCvT+JDeJlrGfEuiPKz1r6NqckZ8dRxDV0rn+S+SljVPstQuE+RThB+4rppF3fkQ==,iv:ynnGaiLXwG8jHxo4aGFrNQT0PSbAhTDVfID8EJuX+70=,tag:7mfBNyDyGvaYRxWS/0GEhw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:k9IZj4Q0nw==,iv:PsK1fhD0ZBxTbeFQheL+GzxfzbScDFPKbR6tf4H5eEk=,tag:3CvroeWOAyPk+XO7gj9onw==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:2+HZirSIyQxuL2p3Efq9eTPgingSWapzYAiQQXaAvWEnL+5eBGsD+/YbBivVF9J1yptcoAxJ+8X9bYamhvw1Cg==,iv:lmCxhEeW1C0bH7raZiz/NPdi/WGlb0+oPPmUpy7NMuM=,tag:3sNPv/olzjgXxpUGrCeVVQ==,type:str] +API_KEY=ENC[AES256_GCM,data:jpC3ddINaewfWzhjdITfOr3ri5gxsbCXtl1nDwUX+wE=,iv:gqQPomNF66FSxboWI1pqEvB2RYCTt8zt9Efedeg8IDg=,tag:p/wp4LMMoQP7AphBGMliRg==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:u/CAmz8amC80Yrjipf7bL0drBXpplx1Y,iv:Nc5dC+vgLCkjqx8whTDNpN9BxiZ24Q3Ocr2tSTUMKP8=,tag:R97Rwd6nLL0bBMVYyBtA4g==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:fO+58Pip7MN/nGg=,iv:riuTQj4bwyc+zM1hMKZ+HYrl6M2jOEo6u/BgOlV5DL0=,tag:34/ymerDHx/dLqBuHXOZgA==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:2vikVlqZRkMVmDbHBTKM,iv:in/V1ygF1UdZnGRL+hb3yDiWEDhLHwCdR9FHfbbt4c0=,tag:0l5mej8wJhju0VxXTW7+zg==,type:str] +S3_BACKUP_ASSET_KEY=ENC[AES256_GCM,data:lGpk81jY1OaTVqtF6tf1HmdaXnc=,iv:0sf9n63DX4ddJi4rUsZr60ZTZp28kVs63k2Ql0JoYbI=,tag:Z1wACj96xx7l3arn4uQ6jA==,type:str] +S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:s0IjGkgq4AnlqJIJmivge2CuFrHey2oP4O8GOL677stAXSthiCiRxg==,iv:Iq7hGRZJRjqk4qlQXISMh1FonJG6cWb70Imbo8hKofA=,tag:+RwBEQ4IeyxCGzb/cKhhpQ==,type:str] +S3_BACKUP_BUCKET=ENC[AES256_GCM,data:l0J85V3MHfIyuqU2eJ1mpEuknAo=,iv:+HoEcrPnZFg+kVWO/C8awWdsnR18N4QbkTXr2Dnvjto=,tag:3RAslEWlXE0LqhbfHFdneQ==,type:str] +S3_BACKUP_REGION=ENC[AES256_GCM,data:OmvIFnPNCFHaXA==,iv:InDy2rxuLh3H2D+8rYXOerIZjhyzHGTSUCsATWY7/Ok=,tag:p9TuAu0AVshoOGl8w5Za5w==,type:str] +S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:A64o+VBP5przgPKbmg3sbIjiajxG8Xuz3H3P,iv:QYQi7mIOlGwtPeek6jw04ThSJB9LJfi0agduNvLCOeg=,tag:QK/p9NwQGjws/c5/VHjAhQ==,type:str] +S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:ZmNdzi83A3iL/g==,iv:pEVMCgrHh8TijMI5co/ho5h8kdj3fSRxwss8rtMhTwc=,tag:fKDQenTRrhsycrMFVsvs6A==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6cTd3VU1VeXNadE1pcWNh\ndnduRzhzd0Q3WDFsME02eUNFR2hxcTlIdlFBCnR2eUJjbmtKTnpVVC9PcDNBMlRE\nZndWdC80YTJNekRXYnFqVjN1WVRleEkKLS0tIERsTVpFeFFFODJrcGNJYkY2dk52\nelZqTnpjOS83SEFMa3pWdG9OSzQwS0UKAPQEWPjZDrPOUmTh00dOglKv5fCllt00\nVPkdbZqqj9PKPejasKI+eNuxmuPOE23zdmhPMa8B0CHi6xn3df6oMA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5MXVYZkRNenJTTk9FYXdq\nOFFrb1gzNzRxZnRMNGkzZWxIOERwRWMzbkFvCnllcjY0ZVgvYXA5RkMybWVXaGQv\nM3NKUThxQlRrdENDdXFrMTBMMWpBZDgKLS0tIGxkUjJpWjBVcittZVY1NFZvbFV3\nNVZtdUhralJGV2RyeENzaWxJSHNjT00KLB8kwWpytBPLrURLc3fZTpZPKF3hMB3C\n5QcScH1RxJxiu6/4Epcf6ZB8T2RjDZhGPztLOJ/xeM8MDG8XTbmUiw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDclYyam1URFo5Zis2aHdt\nZkdOMWVqZ0dDdzBLS05JOVRXdkt1eE5vU3p3Ckw0QkNMRFh3ak12Z3JGSmVKL1Rq\nNEJreGF4YVorWTVvcU1ZZEFvQVNseHcKLS0tIFVLUTlVK3NFU1pTa3BheG1EaUpD\nS0ZXVDV2SkR2dzNsMnA0NWxXc0tYNGMKtVCyNA3zbGzlAO8yhylsgz4Ew1OfPn48\nt26+OHBr9CH9aFEogQD6vy90Nwy1q1wWGDm9w/dxHXS0TfgCIhQUNA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPZ280ai9YcmZ0bGl3eDhY\neVVwRWI2YWV2bHhXbWlEYi9BRGRKL2dyYmxRCmMwSjh0dXkrdzlXLzE5QjczTFM3\nR2h3aTU4UXB2QXJvS3FMSFBIN2diNWMKLS0tIGZXcUFnbytTZURydm9jRmF2UHRx\nTVlVcjZ4b0JSeVZNVkZrTDFOQk15bzAKI66CxhJy2RLldlggmsg8AocTMszBzPQC\nMNWduVchovMgnfcjDGw8q7Wr1/jJQmgl5DxjQfMXmm3946JAan0NQw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQVVQvUDJmOG90ZUNXdW8w\nWnZkVzBCTkRBeWZQZlloUDdPMUxSam1Sa3l3CjNMWGZSZmpaVG9vMzNrRnFjbk1z\ncDlybThvSGFFTksyNjdhbmxMUXNUeFkKLS0tIGFUYi80eTNCeXU4bFdudWFKYWgr\nRUc5R3UyWVF3SEwvZVZBck1JU3dDdkUK7X+U5PUrUZXmowHDZt7RN5kqTVyKszY+\nCogYrQG8KgFVglL/WGRzQsjTK/6LDFe5QSgHBV4ORuENdwzOOKf1xw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKbWw1Q0JwYnZkNW9MME0x\nbGZWNmRYbHhrSFU4UjhEMHl1NFA4eis5Qnc4ClZoaDNQZnNrOXlzTkhQaU9ZSjVt\nV0hoLzZOTXRLZENwNG5ZMURLS1NlVU0KLS0tIEljSkduSzhpL3k1T0llaWwyM1Bv\nSmI5T2ZEYnFTN25DYmkvQXVyWitIRUkKGOnwKxYr3MU35vqL7PUb/258gG8Qo2o6\nNg2xu/QVTd1zczLPVAUwijsP9wnYnHUAPquq1jrH1vn3UGXXvRXbjw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOUHR3THIrMVNYaXdzRzRa\nOGQ4WHQ1RSs4RHlmL2N4L2pqb3N2S2pXTEFrCkl2a1NnbXB0Y0k2dS90QlVJd0pl\nNzdQT0RuMTNpMmptYnVpa01qd2xNaEEKLS0tIDZzSTNXb2d5UWF0Ujc4RnFlM20v\nQzZxQTdmVEc0VFQ4VnBldkRJRFp5Rm8KI7bsKh3W/jCvOf4zCFc7PDeZ8OM/POhQ\nZTWLxqFra/q6RuGJ2Hi3Hvf1Tjez9COIMHs82YZSeQpSd9GE/SPEHw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxN0trcHViQnFLb2xjWkNZ\nbThwb3B0MlBXcGhrOHRpUk9SclNxT3lZMHprCm1mYVpzYmlsY2ZXdmtJb0JPVjU5\ncWFEUnhnOFowcEFFcmlqOXJsT0x3a2cKLS0tIHMxb3NTRVhzcVBLZHc5bDNhQ1BX\nM3JmVlMzWittWXRLL1owUlRrUmVPM2sK8rUCIh5nePK3s8PR0I317ms6jTAqskG2\n4bjVjnaQnarN55DBW9WMeqzDoX6d4c8rVsrLePy6BForL7jcdbMGVA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxajZNc0RmeHJxQnpVUTZS\ndHltRnRKNFUwNllaSCtuQ3VsTWhsMThHVEEwCmFkSk1IS0Uwc0hDU09XREhuays5\nRmJFYmt2TFVOMm5mdDdoVXV2eWFVekkKLS0tIE1kMzVLd3hhMnlNdGMyM2YzN2JT\nYlIzWlQwbzhET2p2Nk10ckRDQkorTDAKUFdQzFw8C1EhQrPHsPidyqtH2n18pmrk\noxr4ZuXG0xdKrlb/g9oK9sruemGb7t9ZHaMgdrKVbE/tJfFGH2l/Vw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzcEtJT2ltNWJQOFFIUHZP\nYXpOdVo1RXN5UElFYmJxemVTdW1SZmt4cVg0CkJQUXFnT3hWMm9VVDdpZEhXZ1ov\nU2FEQ2VIK2h3WWZETGNKUTVRWlpOaDAKLS0tIGZBZzNwNjcrR1dSR2FvdWdObTVn\nZlNCMktPbW9iejV3QXFVL2JNemVqcncKj8vBoqMNj3Ekqz4SEhdQrhw12WzsTt/D\nRTIXFElXmrUiqFfhDJ4FiWUn1jUO0Rfx5LFSOhp2Z+pCZLO3HvgB3Q==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NFUxZGN3SXliN0d6Y1Ft\nbjN0cTI4ZXhsMGpsR041YlBzNXBHcjNUcUNvCmJ0dzM5SkRMeU1VRkVFdjRGb0Zv\ncjd3REZ1RHhQMStpVTJSYWRtdWU3bG8KLS0tIFlhQVNzR1RGRG5FL2JGeVhIZW1q\nMG1UUk04QzNZM0ErZjFvWDI0SFQvL1UK0lOUNqAzXz0R/E6NAX9ClwLOitR/98B9\nPeMN2pRJ+bGQBZDCtRaoOtSeMDXpfnffPdVAc3GjmR75J2MwrbXwYw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqWHhQL3RraDhUNlY2ZDlq\nMUtnMEMxWXlwYUpLOG05M1U0YTFOQXhEY21vCkJxdjBPZ2tIa1g0Q20xcXNLaHFz\nblZiWFpGWTJxRmgwb2N0bnBWbElRSnMKLS0tIEJSK3FWT2k5cG5uU0JnRTR3RUJk\ndHlvMTVGMzJjNTlhbzJnTkFKWnl1V00KpbGsRa5325JBso1rPqk1y+kvjSnr9V+I\na7ZEJ0QlQD3jeVWs+K5V6mSk/xR/rTarqVxhA8KTg3ElHDrl6DpjAg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVT1JlZFlQSVZWaDBkS2Fl\nUmVyTzBlMkpHVUJKdTlFSVptaUUxME1Ic0gwCitxdEdHUUVzOUNyekl5RkRieHFR\nbkNqN2gySEtmZ25HQ2Z1ekJ2czdVcWcKLS0tIGVzbVo0clBaMkZ4dEtnV0IvZk5m\ndUIvZGt0VEdLS1k2OWVyekFxai9tS2cKltwrAwwh1MD0FwfUfpIQ7WnyLOUQ/sqr\n2poxpLFd/rdCxxvzVlQxMSdCK/aSAA/GklOrTA6SLa5eC2i4iP7w0w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKVXlrenNoNTZCeGVxV0VY\nK3Y2OEsybUFiNUEycGJxcHN4U21zQ0Y3UUI0Cm1BUSt3bFRORDEzdVNzMENpSEpk\nQUw2UG83Tng0eVMrSFJISEpHS0JWTU0KLS0tIGNJTWw1Qnh5ajZFMXMwYWxBZm1a\nK2x3bnVkekNuMmZVQm1VL2FLN2wwSDAKfDLU7pYsGc4PQJ2O2k2SGDySHDsLN6a9\ntZeq+jcQei64qyocaf4xPAEm+adaUhkU3VabJJvi+XBSfIgN4buOxg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSZUx0QUxQUG9Md3oxZUhv\ndDB0YmdqT0FobE9zR3VCOVVqVkh2eHhhUDA4Cm84QmxiSkNiWXVzcCtuSkFlWVJk\nbWUvTWpUc3lvR0V0Y0F0MHNiRHV2emMKLS0tIHRLV1JoendjcHNsKzB3N244MzBt\nUFVKMDg4SHdSNStLYm5xaGVldVR6c3MKyRn5n4kvn0SJwD5y1/6W/y7xqmjwguCR\npAgitQg3VvsIThplFso/czOGcreG7xIKcozT57odhhxa6yo1cdiziA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-29T14:25:22Z -sops_mac=ENC[AES256_GCM,data:mS4SFQ/V88UkTKavzo42EBUru5aMwBrKgaLt+jSmBm64pcMGsIjI7x3V42p/ErOVNX97M1Stqh1SSCBOyYvgdv45PrOcyWHbZ9l0ollRLo9O6nckgw+eYLwypsFBHhKSbfRpqxu5hO38EsaNZsMTEgsIu9f0k7+AavI/YDXuqjY=,iv:dKhwRUfbyIJK9m7YJM+ByPKG/gsGNHcOn1JHxPGxIeM=,tag:u8BCUS15KBmer808++oGlg==,type:str] +sops_lastmodified=2026-04-30T15:50:33Z +sops_mac=ENC[AES256_GCM,data:OGESrB7a0FqU1rpVFAhwcAkbpTgO9VgDuqPsSKJIL5O1fjOa82EjcG1J/juvVGqH9SmMFPigSpU5ltJ4mavXIXkamCTRBn9XBYEP8meIwzXY87AIaiZYEJmDfvssQCQ9XZl5bpqUe8zVxdgom0eWm5pXpXIxtld1f7XUd+S4zzk=,iv:4SfQnGL55D4hbww89muS/bQRcvUJiqTCiHa4RozLZ/I=,tag:cDtk893JQiS41SY/+Wl2vA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From 9258aae28b77b90a9437dcd3ef5b7cf4c4c2faca Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 18:03:11 +0200 Subject: [PATCH 149/153] fix: backup env fr --- infra/.env.enc | 108 ++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/infra/.env.enc b/infra/.env.enc index 82e60d4695..4f0ebe966b 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,64 +1,64 @@ -#ENC[AES256_GCM,data:Xc2zV6AKRI7w2DdhpMvmt/mu1EWdEvWhOFshiT65r2g0,iv:aoFWIHaTx9HhjUuRpdVS5A578dHHk94x6rgRyconJI4=,tag:ziesmuXD8egwXPuJgpi/Mg==,type:comment] -#ENC[AES256_GCM,data:UpGThOaUiihyyRVPav2wbKCyHxnq/rCpW8GfJbd3SkoFaQPUNRExa+AW7Zn+SO6VcO90mUZ0QPrko+g=,iv:ZYQd1ZkryeBEMYyddMmaQUgBC7c4Ie1LytCIa/5jXB0=,tag:+nk9cHr6Z8UCUsrl26bB5Q==,type:comment] -#ENC[AES256_GCM,data:7oebT5+pjOBc9FJrEPysDzxvh2pUvBPHBbfDj9kZjc5OHXR0B2Svu/HeGZo2E/K72EXS7RtQcdaz/UWiHTLuAthyNg==,iv:Khdjj3fx2og9Xbado6R4Y6QF6mCO/yzJprNfROvxYsE=,tag:xVHo7PHpT09nCmm/Ptf4iA==,type:comment] -#ENC[AES256_GCM,data:9azNXo60Kpxzz3epg8iA/QFovtTuML039XCihCkQfD/u8oGJi1M/N0ZnizNYIydo+qo=,iv:nGfBWpN5bOCsBHU38cRdvJdCzm0MGY8+3qKpeqoVcVs=,tag:AAk6QaOFfIOBlfIqqABi3g==,type:comment] -PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:YJWwnBcfrTG0jcyf1Ugk,iv:QMpLJfWVbgZ59R6oKaX+4HaXVMNtELkAlWVJLG+Nbqo=,tag:eeIKEIuoA5HKuuWJ+WDBog==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:aurIo7761AG+0CRdpS58dg3PV6re+2I=,iv:I/yftfQZ75O8ifPkk08CiAKnVHe3A3gEN6RU3VJzdtU=,tag:QSQ/lcm58YER8tXH8/cR3A==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:PtVMYliUEjs=,iv:LnnNvh0SCSXro8dxS2Y7dDFWMBirVp/NTMsF2lpQokA=,tag:wkC1iPB5Zn3LlfcQfOQjZg==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:HgiguU5qkvBA0psICbbVjyLHuEZpzb7lvIpXaMe06AOXwP/5nXsSRrKyKqIi1t2/82WO7u1Ll4WLRjZzXhNL9g==,iv:YJUVvUVTebK9bVSag0LOvjbLtzsHoHvvwMRGjBYq0Js=,tag:vkWnwVXykA8d5aU7mhAJRA==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:YDVkA439qA==,iv:8XMK4pTySRv8pDf9bTJ+NZM4g7NUQDLj1dAZ+ATNGCM=,tag:ifB4QaYOIOSMDDmDWbnOnA==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:mSpJ53vWCqMh0qVfPiQ/4akUFwD6Tfea2Yl92dI0Ur4EBjm5bqtIOEfRvF81b2aTC6i/nkkMMu165I+UoQSK94UsrAz3C721rjOwKNqQcp4KAVV5B2UFFMM4WT1lJzBNWpN0NalS,iv:Nxv8ly2t2A9MS5YUNFYW7UcKlFQRtxWN0xZalc9/R1Y=,tag:Sz+YTo/eJ9Vh0uFHsjFtlw==,type:str] -PGHOST=ENC[AES256_GCM,data:iA0=,iv:+KVfdCYIg9HHm9GgwC/ytik95nuVHODp3fgNkI6uekw=,tag:NbUP749lBW049XKVdTjRMg==,type:str] -PGPORT=ENC[AES256_GCM,data:xfWSPQ==,iv:6BKemLpxgVDD01oZe+yGv6LKDWvRE59Qd2duTEA7O6M=,tag:qpiDT3KHCHkIopIB10KU7g==,type:str] -PGUSER=ENC[AES256_GCM,data:Qk0mX941NeY=,iv:b+Skqx5ReRk+tXaQ8GYUQFgdkWAHpMhy4z4kDdSaUz0=,tag:DRluXlZBv5S8ziSY4T8HRQ==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:VG7oVQdq8FH8YLf8Oy0SdGlN2JIu0OmqddKGGMpbp1s7MCZibXr/Q2Bnfi75oIX9Pzr3S1Np3rlY1g+uEYJ6VQ==,iv:K1X+Hi50uO99/hzih20YJAWsMAMD+aTHKOC1DZYbAZw=,tag:jSiris4nLJq6siz/to6PNQ==,type:str] -PGDATABASE=ENC[AES256_GCM,data:cC2/6SuN3Q==,iv:r/+699MIs5uo/Mz9pJUy8agQmG6qXbAQ4QBWHXWeUXY=,tag:hbBktcOaceFrdZggYM7y3g==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:QlfEcqs=,iv:0cVBxh4brtPlHUXafHGa3SENzoinV12VNOvQDy2p3Z0=,tag:rcoSJZol2vC7uNZQ+AHtOw==,type:str] -#ENC[AES256_GCM,data:2RBcaUPxbs00Bu2+PxMGq6AQJ9SwthlBpFyvpvkD,iv:rrHyr0QVTTY0kqW3eMGU7sm33+YXc2li3Kc2MNILuwY=,tag:jdDbVE+v10pAan96DoUfuQ==,type:comment] -#ENC[AES256_GCM,data:CcNeN5ere7CzgGHa0Q5ofjQNe6LDJ9aiTcm1Rwoc5gqQVw==,iv:c8TFTSIwOM1kCwfZ/+rls4FovGGp/4Xx9PPIojnPzwg=,tag:SdjmUKVoFp+nBu790Z+3Gg==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:JRcbVpLiXFWuIo5FBli7aQtE,iv:Swljj7g4NocEvGjJwnVuLTVfUzsFDkDap/X3qObfsgg=,tag:E/VOuHp3/CWbH/01GBjzGg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:kIqqOu52ueUBPmXymmOymz/h8zA=,iv:6EFwAxwPXn69e3gnS3uk0QdtOHlhZ6/N3pNQuRatBiE=,tag:zSH4St0sx38/kO7B1V9B9g==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:yE+Y5dBArMLB1u9NCIbGfdvFoJ9xKCH8+Zz62tBqeV8xEZnvQYvSjg==,iv:AAASJKHy/9wlvjKHV4gXzWDiJXLRlEJ30VfoFLdBlwk=,tag:P6yhNlUWe21pkd+eeW0r5A==,type:str] -S3_REGION=ENC[AES256_GCM,data:oXePb6T+XvJP,iv:J4eIHcLQiaeU8WTlx1C3QVSZ7+mujgLYrIu95Ln7fJI=,tag:/RYQyuX1/xBhs4qyn3rZqw==,type:str] -#ENC[AES256_GCM,data:lf+6hr+M8WFT0dqbWbcoFu36df6QiG3q87kazbdq,iv:4aye8D4s328wWXH+m4DxWqHgO9R9jv7RGeTpqVZb2d0=,tag:EFrTuY+2/RR2LnsMgML/0g==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:+65yDhh7Rhkw,iv:nQ+CXYiqtEGw/MO5/yOsAM489L8fE8jYJ6cLlYXIJW4=,tag:Fw3Eb/cWA+RplTX+q7xtAA==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:2wWRKDx+E+FMPaOw6SSjypMt/qlW0TpQ,iv:lw+51nYwaCyme5W/Yk1gnL2FSYt89g4Qwi/jrAzrewM=,tag:TknKJLuWwUrROu2H1J1tEA==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:r1zKZf/DzcIbG0O6fZc3GS7k3uveVHVM4FBi+a+gKhF2cA==,iv:D0RNTd+rw/OyEQ455axDZ9X9IIeYnu1bz/GNiPKxUv0=,tag:C1xa7iBNo91VyBEpA+MvMg==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:O6WE,iv:4Wfbe4fUCCE/aR1Qouf9qS58tljwIn+ynsKSGiBK2pw=,tag:KglU70UlAiDXcGSmNpsNHw==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:ISK16CLTZ1/mgjTLmrdX20zmdHj14l48l8VxEMIvWf6dOJ7XClYp4hQ05E4=,iv:f4rxVX40tQZLv2hlrZjWzqMKSzho9lYPjkMRDJoRJg4=,tag:YAqN7xTTjLWNq/nv4rOs/Q==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:uo/wrooJ4bhY7sd1kUPyBtPGAaM=,iv:dRV9m98kHlMlDVw15HBtdpgS2jP2rwTdBBQRpGBuIdw=,tag:OOIuGtBfco1iZoCymBrLEA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:TvFfv6+y3QEHkXwwes//,iv:JFkTRENcgWCcuZZiESQXLkfIwYAGAc3oED95UTKiKM8=,tag:Z9BZN24Q/GMDOf/AsYTmeg==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:DOiqTExcmh6KmvKT,iv:Of1nl8R3EmFyfKMlPtQZhEM6DZ1cTKrNfg0fJylzg9M=,tag:l1I3z+srApv/5kgsttG3lw==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:sa1WfT8yIR08nlI5HVI0ZTIH3seREjgb6xUl1re4SN1d+9gALTLpUlZ9JRte4wHO17sMKlZb5UShMqFfaIegME8pB2w5ZXW4GDblB8CycbeU5mTdRav3zrwqSDqQLOEHt5kXjRbaqFhmeqA1zUofzWtStMwJBtUmPF1zwylPNy7pZEtGfW4N9AXS7jeab5oNzfUIWojR1bOthcVP8L4bcB1yYkKnoLg0Mb/0a40vkiNLdbbGNVBF4azPu7VOKrZUHp2UpUrRIQinHBM2eKP5lOHd6YprWLGRBMSY+8b82o6vn9omJevVJN3QEIUc3m678+cU4K5k1NlCav17mPQQt+aXn9dy1zRcCH34HVOE/wymNhP0IvU0bj6e+6WUjXoZR0mX3ms4Ps54mYkfhRlulXX12XeO0akP/MAxlB0AfppxjHDj9wmCZlvb8+hnHTDLpEsXsji0c1ho9U6Cgsi6AWyYvemY0aJ2Cr8kLgu/a/GJRNhVx3momtbil3H/RmHkHBY/UaqeLjdjbh3ETrGoo6xQX0wvObTgilyaRAOocCEaj4PcBYItqSXPd5yEu+GNX8PfzlnHHt+zxxbOx9DEitnAStF/a6W7snt5trd8ZXDkMqOL17RaaAGrWVL/SSapjl6irkC9IxaWA7qULYDcOw99fOYP0lHWgy6mBn/AF+GMriazUoQ/ZdbL3UvRhHZ4uYTXYAphvm2qrDx9QL1W7X3RT+FgRvdNlG7q2MoMqk7jFavSqbXh5ye74O3UU9cq5xxawq8kWGR0Gk4SfVDyVXezWY6KuSHQuPzwuzHVK4hQ9ncx80KdIgvSAPsIUAyhhx4fSGXhrDIoUBHxoAlWQGdw6t3KA6D/EoWyWE+QqN2w3vJ8/XRQf7fbDyv/lH4qUvtoK+nvTOUAmswaxN/zFa356swPV7yOxXMZW5UhPs1lajeOf2EYw1nb2gAhWkGCXMAhUTfjpd+wJ9dBTmzXhYEsR22CDjQiAOtzpbEx5BMbtSw0LQw62XsiXkvN7WN7PsTvxtWq7no1uMSrIMgfctiTi+9Z54WqCZxnqDenzaRN0AiuMr+VN5rsBh49J/Z6m5qdf4ktf0zzVP9UH73t6nzFtO8eFIGHj7Ac+MZMuqSGvw9bUmbJpTclVw3r9ZmwS5dWDg6bhKafq8j9ikrsMQe+GotvSmr/AcVPGqAZpOjRLMnPOtgsG3v2l8/gJb0n3rYp1j5BtIAYhCOX7OhZFaQRPeqD6dXp9D/3u6dQ6a+XNqpvlWz7hFB+LtCLIrExrso/ar79es2B3E2RXNzVN5ZG8pti9rnScfkLBUBtvRs+46GIdGuCGrtgMM/k4m82itbfAHV5bYC9XI2qheeF7IWC01dcNPepZTPxCDGNyZbNDFLt/DYvQhJbm1f2rWklj9pGIlFe5rlIrDRP1QlmoE7h5V27S9kXumvzgtu/UsE2NpKD5urv7YYBgLc2rc93IMizG6Lmp/ouFR3uQ5GBUJ9yjkckfnIKGh2n+I3tpa8Q9JwZRQ4IGRLTdFnk7jO2vyTR1JUDspp5ruMM5a9zGePhr+gpimwzzKxESnCeOdewdaEYHNnInDU9mEIis5cLJap6kVW5QCaUXql3HzkXgg2OG2/LbQGAtMcjZ+jlTFZoCSug315hB+r4MsZGt07CpzEylP5LHMpdJHXDQIB1kbT2syCmIdKf1aI61RAUSUIMFIiOyg2Mf+lO+/OLSrP/iUmPwX3VxMeWerFqHCnELXArjepIRcPO0z8MLROXj4AaShizY4PHCP6V7HJjCNjOXuHI2p3fUuE5iFArfLVHLPix4+Ej6DdB1zEWyHkKaWVyicMxDsrXQ3c2F2GTD/14LVjRmqh0flGhVa+2s3UBzddpsbvvIo6XUtJEdX0A6U+Az7oyK3UY29Q0CgqNYtCElxIIkNlMLTMV1cARX8rQW6HjEp1uEKY5qlAKEfSlYRcg4wAxK3h5K8AyF1Ect/iEOK+HCZYCWtHdzJ3FLV4WFHkG/OjI+mMze9xAIocQRTi2sy6q+MSb7LoUfbukKKwitERcujQywSGjrOBggJD5YoneeIGTCEMASZtOHw3xUgHgwEv82BCXQCBJyaYtu+yaoLGkr+pvE0OE9cHN5O071EDO2QceaWY01y23NQGUu57TixBwjvQd5oqz5yzoerYzd5MO2P+Egb7WBf06RpIW5EjOprQSJTCxw7chy9mX0yOepXiws8mxquOutcp/SSd0tldBwOUdckzOBgKJvoOboA+7pufA4NgelQeSca0CgWK0R3QCmcdrpqux+NmJBevGPc59l5JXBWOunL2xd1PkIfYSL+jm6dsBN3J2XGoSUesqd1rpegE7tREIWaak8SaVpCRUMgtmoIfuR8i2C0Yaqb2WpRv+7D0e6qyRg51rxK/JlUYB7wgAJSsVS2GFEnbgWLu5ZJNKAIzNt4tpkuGfLn8+a37xXlxOyxHZ/8EC/0KChoZSZrFX3ziipU8oScWAXo757edJT6BRLBJntqdOSmVmqVCrCGVYcNDTvKjS6wMVKuNln9dklCYPLRFgYiCRvH2OXaNqBRSFOGLe9V34uFeKcEuE6/RfaQuC72yJ8jn43ePWpF/ZGMyr21MG1K6LP1qdcRQsERQ8o4Km9W9L+d3J8WgwHUKl/3R2DLa5zyuFAeNL3rqdOhS1xKmMEVhdC+2aVdDyZQX8s4Ih7XtO9IibZHGW3MJPD/c2RQTb9blBDZjVO6LMVejsxXIhPua0WayzBmIVIbZqAIiP16Jcf0QsRFKPUVf8b7JEpc6cbE5IRr0o3HXZFTctH954JZTOeT+2fxgM0IRTqOei+6WbvxrNMg8gEMFRe+IWx7KqYZZb/310SzOOabo3iqbCPhVd3kQscWzE/T1NreImnmTGbadMkJaw1okCQ+uEfgecCsdlwd6C2qpYaxNIqI11H41VsYqjelKIdGOnKwZasBNgjuq+ylqX6VGL92CyGrouDXxB42Iq8QbdOdNgpY/zHzrUqGQzaQhSM4WUdSEQl/6S1Pj290uMKfIs9eCnb/JLYA6x6N6sBFgSeEV6/5kVipu7SDEYcplMOPp1mJJ400p8jdvLYsf60/t2BI7L/t3o1X3OrmpBflzsp73sX6VqAH2zdUjbcEHcOFioi3Zat5J5fen0WB/adqd64r14E4vEFJkmUtAoPuFbk9MRyZuMuoS1moWOctWBcOgI4TGvuGwKP2miuQZh/woLGn55kLAnRxvPsUvyJUWhwHx6UYnNSPd8+gDpGZgeiYRi1QKSb3vn8Vt07cB7uNcsKauBi2qnp2f6imDS0it85k7cojfVELL6b1PKsp94x9XH9ZERhfNS1q1yXtUBEX8uaGkUaxuUNDMRAEe+WcDJ4tJm4gQbvnLDdRnTzEj3aqOmm/TR8J9dZw3Or+BRcyqCHop9YLluCOMzQ62WqudUgJOfoDVhpM2DRsr2PY7T43zvLjwHeIMf/BnM3p4IRrGkiK8ebmYtQKt5jRZQ8MGp7ItF9bBnuaCwu+DnAjtxweefzj5B7muVUGUPAnF2Fx/Bzyhl0BgtCU2DXbFzE66Ne6YISUK40jkGDTBz8baRgFd62ASP2WBoTO+8oY2HYA7OTfslO5k4Vo31tbtfNfTk8iIlgnFpHsrVY1LbVRJFyCyFuK8vVJnCkhr9z6lPyoe5546nvF0uhdOUtPe3eEFn3X6DpoKgSujrmMQ02pThYzPrWsUCGxqgHhC8UkUQhaW7fsKgdfzGlt7Qy39O5bQMS6OnaL7Risj7kokB9In/GQcKXJEcYMnnwuogqhX0sRbESF1zS3ZViclvy+R1KvvtlVuMziDLqJ3mhyiSAX8Y8LnyK/1tghJ3cZD7+TjzDtCnLfZwYSDqq/uyLIONxlvv7+V30i4BxcA0QPIZw0Eiw+TFy5dtWuEr3c8DtC/yWfx+38zRgq06yqi7bDntzv9CJBKKYdbzYp229Ym0yYbf2CwnY7B294vwtwes5Mv59uK2iu0YyVHu9v0zaxxJDsZekaUeAJ/tJFqn2XcUk38N6hdZCacbOhOI1gMg1GypbDiScb8zRtISEGoWnSyPhtnoXJ7iw5vL0a94VPytfWvCvT+JDeJlrGfEuiPKz1r6NqckZ8dRxDV0rn+S+SljVPstQuE+RThB+4rppF3fkQ==,iv:ynnGaiLXwG8jHxo4aGFrNQT0PSbAhTDVfID8EJuX+70=,tag:7mfBNyDyGvaYRxWS/0GEhw==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:k9IZj4Q0nw==,iv:PsK1fhD0ZBxTbeFQheL+GzxfzbScDFPKbR6tf4H5eEk=,tag:3CvroeWOAyPk+XO7gj9onw==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:2+HZirSIyQxuL2p3Efq9eTPgingSWapzYAiQQXaAvWEnL+5eBGsD+/YbBivVF9J1yptcoAxJ+8X9bYamhvw1Cg==,iv:lmCxhEeW1C0bH7raZiz/NPdi/WGlb0+oPPmUpy7NMuM=,tag:3sNPv/olzjgXxpUGrCeVVQ==,type:str] -API_KEY=ENC[AES256_GCM,data:jpC3ddINaewfWzhjdITfOr3ri5gxsbCXtl1nDwUX+wE=,iv:gqQPomNF66FSxboWI1pqEvB2RYCTt8zt9Efedeg8IDg=,tag:p/wp4LMMoQP7AphBGMliRg==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:u/CAmz8amC80Yrjipf7bL0drBXpplx1Y,iv:Nc5dC+vgLCkjqx8whTDNpN9BxiZ24Q3Ocr2tSTUMKP8=,tag:R97Rwd6nLL0bBMVYyBtA4g==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:fO+58Pip7MN/nGg=,iv:riuTQj4bwyc+zM1hMKZ+HYrl6M2jOEo6u/BgOlV5DL0=,tag:34/ymerDHx/dLqBuHXOZgA==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:2vikVlqZRkMVmDbHBTKM,iv:in/V1ygF1UdZnGRL+hb3yDiWEDhLHwCdR9FHfbbt4c0=,tag:0l5mej8wJhju0VxXTW7+zg==,type:str] -S3_BACKUP_ASSET_KEY=ENC[AES256_GCM,data:lGpk81jY1OaTVqtF6tf1HmdaXnc=,iv:0sf9n63DX4ddJi4rUsZr60ZTZp28kVs63k2Ql0JoYbI=,tag:Z1wACj96xx7l3arn4uQ6jA==,type:str] -S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:s0IjGkgq4AnlqJIJmivge2CuFrHey2oP4O8GOL677stAXSthiCiRxg==,iv:Iq7hGRZJRjqk4qlQXISMh1FonJG6cWb70Imbo8hKofA=,tag:+RwBEQ4IeyxCGzb/cKhhpQ==,type:str] -S3_BACKUP_BUCKET=ENC[AES256_GCM,data:l0J85V3MHfIyuqU2eJ1mpEuknAo=,iv:+HoEcrPnZFg+kVWO/C8awWdsnR18N4QbkTXr2Dnvjto=,tag:3RAslEWlXE0LqhbfHFdneQ==,type:str] -S3_BACKUP_REGION=ENC[AES256_GCM,data:OmvIFnPNCFHaXA==,iv:InDy2rxuLh3H2D+8rYXOerIZjhyzHGTSUCsATWY7/Ok=,tag:p9TuAu0AVshoOGl8w5Za5w==,type:str] -S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:A64o+VBP5przgPKbmg3sbIjiajxG8Xuz3H3P,iv:QYQi7mIOlGwtPeek6jw04ThSJB9LJfi0agduNvLCOeg=,tag:QK/p9NwQGjws/c5/VHjAhQ==,type:str] -S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:ZmNdzi83A3iL/g==,iv:pEVMCgrHh8TijMI5co/ho5h8kdj3fSRxwss8rtMhTwc=,tag:fKDQenTRrhsycrMFVsvs6A==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6cTd3VU1VeXNadE1pcWNh\ndnduRzhzd0Q3WDFsME02eUNFR2hxcTlIdlFBCnR2eUJjbmtKTnpVVC9PcDNBMlRE\nZndWdC80YTJNekRXYnFqVjN1WVRleEkKLS0tIERsTVpFeFFFODJrcGNJYkY2dk52\nelZqTnpjOS83SEFMa3pWdG9OSzQwS0UKAPQEWPjZDrPOUmTh00dOglKv5fCllt00\nVPkdbZqqj9PKPejasKI+eNuxmuPOE23zdmhPMa8B0CHi6xn3df6oMA==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:KgXQvetrwB8JDI6YcwdP+B2I1k8jrzMNCozVIEfB+z01,iv:GyDr7UgZSQDrrytRKrMM4Fwq5dnPM21YFUj8JHEXXjE=,tag:vDYfLCKeqhw5pgZ/ZwwPAQ==,type:comment] +#ENC[AES256_GCM,data:HCODXDBqOZUSMpF8mAQxdwjsTCCZPGXMVmbA4bvy/T6M8YuZiqg4wTETKmtTsT8e536rlk3m8KkMH/I=,iv:4ZISIYBQQgq+gdnua591danAVF1O2yBqNYcmyjcFyz8=,tag:XgSInjBBua5nzud706u6cA==,type:comment] +#ENC[AES256_GCM,data:C9PmHgvfRzeT693wQ2Ox8r+dxPPlQsI+c2Q7cU31NMJ/ELLWk1NphaN1MKQF9oysQ4qr2MmUC7YOb40AT/CLWPuRxA==,iv:Rs6lrDBjcSw8jApkdIJooCzzIwt0Ozj/lDaZuy9W5+s=,tag:r8QrC6KAXdsS+ZCWlTfwIQ==,type:comment] +#ENC[AES256_GCM,data:t7UYF8wL25++lILro3ZGpN1FX2fZ1lX9WDc0ffJDh9HxJVuLaHf+vMHhNyVNv5c/zbQ=,iv:JO/MixM7n8TdxgjTZvFFNkl1hs/k/fXChGIr1ppitTU=,tag:3/ZEgTNrkfhfFfRd1BETRg==,type:comment] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:92T8zNd2Z7WN0JUUYIGs,iv:oxwEETOUxM/IuBkBWWIU+VWRgr0e4GB/hTNzeEmG+es=,tag:LJwUAjR1G7QI8LNuFt8I4A==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:1hrHx3263EB00zNsM8sRZESzcQ/A594=,iv:fNFAoiCoyg0YFqRhu1xIP9kEzRtGd5MMeM/pFVOogss=,tag:tWeRZqKf1W6bJdsgAhXdiw==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:q0O11gJH15c=,iv:QN64bSfV7V8f+kZOKkukQk4YIquSrAN3Y/BWnlG5hYU=,tag:cggcJ7RvvPchHkImXjgc+w==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:IlowvKAP6ORq7afumbhyLfzTu1PqCfwqy6Hl0qgwz/wS0urxgbZ5bP/kI1aqyxI+GkRSDSts0178h09iS7mLCQ==,iv:s9vtLvtcKzpRxFGQiGf2hhe+F+qLtZTwJBuu4ldRiIU=,tag:RtMrWQ94CB5M2xFBiBbBFQ==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:/cFYp/x3bg==,iv:xAdy53ltpJnd6dNqBsSCHqinPHTc4kxHg6xGjBpSl50=,tag:B0InoRO0TuHi5Kg81Pqrng==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:PfnrgdlssvyhhK/uXbC+/RK1Op6Zh04352enIjzaMDo8JmhidEwKP5X1Tpkv9dnkc8VnFKgVlDvOs9Owxn1Z35vQLyUEnWcp/iaT+VtUvkeU32L2ng8bMe/HcJJGYNfMOKuftxbA,iv:PLjI0a+jX6JzLmAaL0IIVGWc9Fla12bBFAdV++xnNMk=,tag:YZRq7kcEaMqbD9/5z0slyw==,type:str] +PGHOST=ENC[AES256_GCM,data:FtA=,iv:BJCGgSNzrdBN8gvbIjo8J27HFkj1bEa6QsbBAjviT88=,tag:0h2P6piKAMJAQMssEwcGlA==,type:str] +PGPORT=ENC[AES256_GCM,data:RUO1yg==,iv:OKIY9UR/rGExtLS2IWbRjWiough/Fii0KTmMpWApLIY=,tag:8+geCHa4VVdOSUH9n2RLsg==,type:str] +PGUSER=ENC[AES256_GCM,data:dAexqgwPVgg=,iv:ny2uwQQlzrH+cvgFd+JYGHpneQNgzrWhOV5cHoK6EZQ=,tag:S7jCkVn4q6PQoP8Yvaq+FA==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:/kHIJ5MFdJsOt0Ys0j59gg2nvMY7iJeCkAIiHZVUG3l3h598Y6b22iahbDWpnKj9Px9+6aba/sirPgWBjvit6Q==,iv:Som3169XAm1mndicOCsY8OgMW+mist+vnd8X/74gavY=,tag:trUyAupaB9yFyyGxFMFHQg==,type:str] +PGDATABASE=ENC[AES256_GCM,data:+qtB7QlZlg==,iv:Oown4Yd1eCAt8gyfLeUqRkT6WkP89o+zMW4AumL3Gv8=,tag:U9H97qVo2/mzLGODw36KVw==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:tZILv2k=,iv:7kHlK6Oy4YmFAYxQ5KFZpvcgk5ahs/E7l6n+PBN7ovk=,tag:isG35iNEPpc02chmT65cuw==,type:str] +#ENC[AES256_GCM,data:JwKe8nWrQkc0But33gZs2K5Gq090IYFsZwa/zxLd,iv:goPG7LXeszWyZ6ODTwSf5mJU+T81HiyScjVh6vheTgA=,tag:aVwlQOtdPhGeVwwaOwi6fA==,type:comment] +#ENC[AES256_GCM,data:G2q6QERAdgh8BVJ//ah4WIv4u7z3On0PFfA5MzhRl6OqVA==,iv:s8+eskGOj/jCv99APgOQf0zZ/InmyWuT6beESpVxSHA=,tag:iyGinY9pCQhtemm1ZvsYuQ==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:MXRpFDC+DXAm5Ks6j+2i2z9k,iv:vbEMI5qHp4stmKFjBPlCsRwvli8f+dmv1ckWcyJfdF0=,tag:EpHAxXQYghBuFkxpqAbcDg==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:wB5vSbwQACGXEJWep3J5JRadtaA=,iv:aK1ImfuXNZbCTA6qmfdomw52eEHppUP205uQSu6yULo=,tag:4ERn1LbUEEwq9CxGd0spIw==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:b2xsFIlE5OQ3BFcHRQ9oDkt5dzMWewJ0JBoC/7gIRPN/Y58PWILteg==,iv:cHEHCQOlqA62zCcanTFriCiLkjsPlPQEsL1nNM8B7S4=,tag:+Xc3TUXTuamfyUnkSjI1Rw==,type:str] +S3_REGION=ENC[AES256_GCM,data:vVACNmc8OKgf,iv:16y078kiMDsmNH+fICeq4qJi8l1hk4qAk2rUcrbFiLw=,tag:euTqKGnIMKPeKs0TLQwJTQ==,type:str] +#ENC[AES256_GCM,data:fwhorhGdgY/n3XtjWKkWXvqAF9oj0Gcw16rQkFg1,iv:l7R8aUdTnMjG3+PYrt0lt2A6esE7rm3K4FLQbYI7Ee8=,tag:IPCzKaj5SXK3p14CfyaIsA==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:R+dUfYiMAB0M,iv:S6b11njNzFUr+v5FJJfc/u+iSulH+CqzqaHJjWZfb40=,tag:TEOV7EEwnnr2NzAj1ETfYA==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:ziJrvSisZM13NBdGe0cBpQD4KkDvTVoD,iv:bSwj1NrQB9RIMDtpIVbWwDQJiOiOx8IixSJAWQ4/jUg=,tag:CGRzr7qRFLqynelNqlFNGQ==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:N2EwzEYPbfCGmXxB6tpBXmwP0RX2U2lRUAHcSZkI+T96AA==,iv:OX02nEEi1lflMv67hSIq0FGNccjzk78N5ZOSZ3WPPOk=,tag:E+a206tjdbiFzqP+9EDEMQ==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:8QQa,iv:Z9I1yo1AAnGO2U8akELMsdcWWINC2vwPkY4Lf17Jmfc=,tag:e5VKePDG87Qjtt+F6t69MA==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:3kf3aQDl282yYm8OfGz/n+8fpOuHErgjvixbzQZzSo6uz7Z9QXTDBPNCQ/I=,iv:gHbYW7i0yjc0euNTItQuTRE//MnFz27ojq7a+L+CQyA=,tag:vabCt6KEcpPNzVSpde2dsA==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:1EpDZrvR7q/VsY8Ia7OpzOO8Bmc=,iv:MF+yOXmJXOugPiE1TCxUXMBq1nVJBRKkEqa2DPewT1A=,tag:AIBkGvyGc7uYqJw9smC0rA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:R92CdFKIikCF/WDFfe5r,iv:H9ABrHq+y01nZGOX1gzc5k6ZHVSMYrO8pXrAsPvbohM=,tag:rXCR7EBiy9VBfnbnrRFN7g==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:LXah4weQGTwrn0Ou,iv:MRoNseWMUaSwFq4LZHxve9/lL2CxIiSADcgE+8pTPHY=,tag:wZWgztBnTd5/LDWy76VH0g==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:0IlYJEQJ0yaisi59ZkZ8ySXKgqY8Xz0T6RRFeQUy++qjIWfm39nQs23efOObPOkdzyz2Uiud7onCZ75p46RosGw0gpcvdEBXBNiK/EHePKM8By7ekCnD/wk6g3MJ22traeF6GhNSLzjjuGI9ZgttbKApc6nelfI9u/tsBCXgvsWI/dzNq9DjxGCRhflY/lczqUtVDWRRHl0WUoSmz61fQceeFoiYc4E77bgeuMFbcOJB8HyEdwNpuZVSf3QVSVZ6ISIt4rqQpFSON9zuXtzpLR6FhrJk3pjB+kOyBqC3GN+mK9dFqLxZuYK57IyM1SouoGV3vmcq7YrvCeFKyUty13EQyYNjpQz/kF0wS3WArESJxJIl/36rKWvNEnFYgIiAsvLrbYjhARJYm9YZ+V4yb3UvdO5/WOe6o5r98sCjivwXN49R818Ge5Es93l/P5pjM+ElmLp9MmLwSldYMfpkXpvHOje1m/tBWccDLpbuz2hcEiVRH7hnZM99IwLho8U/u9uv6aGdcARrtiKQaqP7acNcSaXw1X3IBOkj+X7NhUGEF109Kauf3/KTamy61chSXg+19UWBr3S/8Zklkakq9j74Axr9fHQPFKTQBifqOd97AjTeg4dwm17/3oM+9KYJu9PzVqMZvDeiGml8Cu4i7QFeYkXbht0DW1JQpHXFVlYmZriTxBEWXX2Ju3L8NpeTZz97AvREFo72aGnOcyDuhyxSM3fz73pdTQt9jDYb+eDp+cnWAVXfJkmO1NqY6J3xAhqkJ4YuVU/nYeWZ5tlqe5ZmXQSC2mxgyLxBl0mIITrwz49nm7AYwf8XJTBfVT+6go4qY+Bf1pcSJw5I0UDDfq3nHW0t7AgQhGGRYlvub9uLpsWszyghtWWsCv2dB5krU6EfdoyN30m24vKQID4I0wcM7CdMcdG5DpIJMwsSXhizec79I7ZNH4VAXzzF3gaEBWxgfMpiypT5ymGnWHnygPVJjlEXExvOYhtlLajgCZzRKY7cWfQ75ZhBs5DRCm+4I2JUGk3IbK5bNUw9cyMMHqZHfRDTN19TflM2nCJTY8pgrzeOZTdNZezDmfbHxjJgYrptF7QlmHwBW7BTaUcPB/Gh6unBco8npnPV7yP1ocVRPAuZ8EbQuZ/sW9wPbUpvRfn86cJmrt24JoxS6aXZersqnMiyPo8XFcrJoWhtHx+UHzsKOKkSw2t7RjhOAjhUEdINpNsZfWk7vxMNz9GJUCSuiN/czu+G4IgrkCvq6Z0ailS9meyHgsYN6nBh+L3k0Q2rYYp84fx4fWcFRaPnuF7U3beJVaDTkhJvvg9pjk65gFYK1YiAhlooQ+AUZWUa92loMb5/5A/C3MDdtAyGtPwBpSIGDK9a51OicpFVpOyV+M3x3Fg91EcwMSDUUtZxBsoXGZBcmVLMxHVZ7DA1LtlcDzC2bnFgd4qs53EzYVmWBSYWBS/BKGHI8pU5qFR62T47xrxpPTr+wRdMu5HJmZPXOTCJAi1rDPqHrt4Fae2+DTzrlCSlZKXy5EQUYBXHluPSqeBP6duLgXNCBbf+rhZMoPNb8xe3DkWC+KdlS/RD7RwLzbhRHaLuMjRToUXO+JGIv8fjhmerjwWJs6NZVs1FLeWDudSr1dtj0kRlvzragRmlTXXhuKcn0lK53/q27FArNVzEUyju8e+KBhKfIqYeFTDXbngxmp1h8nxXXggXNVRy8Hakmp3cJp/gEw7H5HCVeZ18/wt/eotE4f/KqDr9dHQafUO4UoXrTauJj7txMy4FW2aB5XSK4fiDnVWLQT5NWV3W9twPdpE1ATEAzAJtH1j8/8s2ju2UrkBdgh2JdwPMnMya500BNZrE6Q5SsKCoSLEEeyJCri78g/G9rqI8FAbHGfCtnLVKoGiZZ0oc56XHP8MyfJqXA3tWW1ekKiBFqXGRCjMUts5qeAoBuL/GOhDEa6pkCbe5PiaOc6ZOGl1Il4aqOSEnsbDfZwSjsgUwQtbhaoBDqaajz2OlD962KHkJa3FMoWrdex6aW1yZApS4xVP/pv5GTItdok8nqM/8VDJmpkr95tnPp3ZjthUYVZiYP6UFwmLU090fGNaGxsrYuoxVa/FkLyES227w7wpQuPZKXEp9fsUTUjRHREUI+1HMfrt1nBJ8qVkiSYyhb/7NG+bDDczXvs3N1+qCeMbyvmmIuE8/zbIoEIAfMWAEk0ISBlC35xDPCJH0MwvGre8uGWeDnVwVxOB5YGjcIwwwAa90QgzREENte+je7B5YzuWEgZ3/bsUGwOM7tKh5wCGyKAyJafzmZHcvDIgmVZqBG0pZ8TaFWmSV9NPkQZbuRKlMHJPiaC7OeXyU7tZ3WyOmIntkAAeM/XQlXBcj7MOm8++L0U4NAovugzwpxrqHFP9nGHGeGRuPuUsaxPVUcdFDscpCu9P+y7ygDM6i85FlmG23k9DEjlsFj2E5yf1l8s9t3KsemGa9UhHwKTj1Sf8NHYNkM8zcecMWw+CWbG8dfzzSPKQ9lgmS0VP45ky86iGoGqg/7mBYqKu/ga+RMtP/w6+V9HOQ/vhRvTCn4FGr7jpB8U8lYvfQS/5Dbdq/RYUaQWKIe0PDQ4J2jjn4RQXnpRwgHfRqiSacJb8IG7hXDL7vjV+QuBI3qjnvtzHAlT+QKfzUo/JzwisHCnX1aTR6r4NTLpvQIXpXLoVemEiymyICtaGjyaMRmHy3vN21sNwtkAatcERi2E2NvMRLdG2sZHIorre4dnGI7vVk6uHJE8/sZeDhwx/MWdFpxIKECLH1z9xB/AmrJFBLA04yvNTy5iTHFJwGd4b0WSJcnlTWDkBcsnUE8+0VbhJJBUZIFOURej/iujEHDdvnY6QCikvtfqmrRDz3n0p1d7jQQ1gu7Il6LKMJZyF/2MB7SuToOdE9gNRgB6Nfi3xVkDhGBmD2FOmdGP3AtT1lb6JTx9905pd1fbWLl5bgEHRhNwQHufbOmfkJrpUBZgbgTDoBpCykOEd35ekUNOui7/jM45gKMFm+B5BGmJOBO3RHA0AZLmU2ULfInL9QzhDkszeSps4wJl/wJwdjCSCKnmDutIKZtMtxLuzY+PAsRoxk6v5RsVY7p6k0ae2324oYWqH4C3aJVOzCx5Oovk8LtSvU9pYhVDOO5SC6rdk+ciphn7oPfr5P0oHdoKNVoQ9elkzd5XO6RGJ10uVizuAzIPMYSu2S/GBOIGnsFQvHM2wnQO0+pxP4h/lYrVZoaDdTzHZdP4i+KV11ihNiEqkXFJbFhzZGYncIEYzx8MQMx3pOR9ThSh+1774rAEhM/SDo5P8CukDgmWxWTXWvl3PD1CbQLUkjbYumC41Js1MLh1W3Y0AYUKNkQ1WBCVgOWwrdCb61b3Imn3G3IpFUxOmRiFAVEWauh5x3HOzOPMwCCGqgT/0S3LdmMUhSECQXXmquwlo3PxXjbK9KgD0cVDKwTM7IicALjSLpgWj0T5REVWiyRTh+fLbJ4r2R7EYkG70SgCAZHp2oScBSp8cUh1K7FBFumduc65dkd96mF2RIkkXcyNwp1vMUYx2/TsZb1zQAIbWkQYAUypWNOubM5EnwoGYRlNeRJ5sm53yUM3SuzIrqOVWtxYGcA+yyXQ6gFbkq8vSDkV45cdLA7nCkQy6GmBhQOW1SEGZLqI4gVNpL+3C7Ohmq9OiGuYONSka1bEV9KCDbTRy6a5jUDUk9CQ6T3ksqvGu3FBJbhVm9ckNeI7X0Sd+4HsYjjGs73gu1U+QJa89/2dTFOz99KLtZ8VwYhIicP9j5D60KNvssolJOWlBZRBIME9GxaMmovKXZ2ov6TI9fqN2fyH87ZXM9csUD6FZVOvNxlPXvvcrecpVYG56E/h22JZXjzp4NGOVctosXAJI9mkpzQaROfWDLLoE50wdxOAPEGKX17whCmB3S35gAFJInen5OrUKcLHuqeyFxWwKSr8fVro5AcQpKRQlZ3SOnU084AGuUgmFb08Ce9fvX6PtY+B0chothZ89Mk01uuzHglYYO8uNXk+U5n4Tga4BqiLUiDamjVsu6C1NPZEM6ZXCFnhPkmDIAM0jdweOJYyrRMUCAosE2E4ciGDJOWH9dMwzxSQiBWBjt81pAOXv5/j5DgeaQ5CODlgOO60TvVW6i7oa7834DpqUAau/wkgG1ryZmxg==,iv:/KBIEUuEEayl6jFn2+YEIw/3nKudiPmYyDfGntMldd4=,tag:sLfx3b+6cckDwPStDeSMSg==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:qZ6Se+6ZJA==,iv:DmxQu9fgNd+XWFUF+Om70m7v1Fhws8wilBorRH7vmXQ=,tag:wVdJjZecRPeyTCy3jsflsw==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:hz8CjPUyPu3v9qg/jdAHAwd6XDhBVPeKXt7OQiWd8lGvgev8kno6PrfryN01qd+k3UrMAqkPMG5tVZ7zBCWwgg==,iv:yOlaSg4hBaTipsZCvhWSeDAHp6BBcpXE5WHBeNByrL8=,tag:nGl8lXVouC6OWlpgu/bJzQ==,type:str] +API_KEY=ENC[AES256_GCM,data:DBKFyZmg0UlLrnEnDSMGLr6jDZwZqIgGzCDx1q4BIcE=,iv:1MNOL6A9LMfULxbuqOl+lddGyw/HG6tFGhEhTnaWjI4=,tag:eHJjxtTNrRTpvxuOIfl7dg==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:hqWdorbhGnsC2NtM8mLfH8DG96ZMRm3J,iv:rXCoGU581D0QNEyW9BbibguIFfrPDqwkBmtLa0+gKMk=,tag:fmahrsC3p32J8AiqkZq/Qw==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:qrBZA0/wqmX+6WY=,iv:BhzLmSC5DjiSKb1EDax2nrwIPXudN8y1ya9RTswD5BQ=,tag:bTFS6gSTQ9jszv4B1dInPw==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:K9JDuXxR1R8j700+VF8q,iv:XrPNmud0A1tX7KwZGvWVXHG8aGsiIIk/EoZD9jcg5Tg=,tag:soPxBLOhUl1ubcmQeQho+A==,type:str] +S3_BACKUP_ASSET_KEY=ENC[AES256_GCM,data:eQazo5IwDCIa18qHroKUO+cUPCE=,iv:EUYZMRKoRi2aGjGaEVgw4TV+8NFe+nuT3+q7aC3fp5o=,tag:Cn+1EqpAYFV/wqT0O6Wqow==,type:str] +S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:b+R4cigUfwcU2NrGOJgqWH++A5sNRwGi5qNStjJaGEaiqIIu01Ic1w==,iv:obm0Op3RGQ/2u5fW/XiqvEWDnMB35retAzcI7jF0vik=,tag:FrxGvqzK2K7Zo6kXR8aFvQ==,type:str] +S3_BACKUP_BUCKET=ENC[AES256_GCM,data:UcjnEeMCYjrAMENW7WwC0NMy1ZI=,iv:rAQ56kF7yKmefhhi1Ggfo3sNktTOGEGnUKGglU/ezmo=,tag:zWX944te9HNBvpQ4rCuqaw==,type:str] +S3_BACKUP_REGION=ENC[AES256_GCM,data:t0PE7bz3Yn0qwA==,iv:Cp2hDUuX+2h2i/atoMutpwPCFZ2ayNHxK3s1iVmRJgo=,tag:ae9WLaaC2izFlA6LBCoCTQ==,type:str] +S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:rfllZYyV/0G3JH6RYF56IgiRgDkKobK+mh/xMJ+cgxGPVm0=,iv:dDuvQwH+LnuTPHe1Gq4A1vIQmcZiEerq5wVRd1DUdZU=,tag:i2242/3Jzc5LXpq9kbnn+w==,type:str] +S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:99rHVuymUeY8Ug==,iv:KsVq5HncstErpjw1TfF7mlzjSyHzIavQmcfO2Aql0+E=,tag:bSMtjGRCmRXmJqeEq7BybQ==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5enozNmhYaUhycVpCc2FY\nZG1JVVI3VXNNdkVOdEtpZ2F1OTdFSnNTSVNRCmQ5UjZwSEdBYVF5bjRPbisyOGpD\nWVByY3lrMDFWWGtham42UEFDc0hxTUkKLS0tIEcyNkF2em4rejFkb2Z2dEhvQjY3\nalVTd2tHTUdIYXJWMHRvVmxsSlR1TUkKI7R4nWyXosXJktdHOm51bpV0d6l/bwPX\nJidFAuLSe4bEuBGBc0mIBsWrhwBjkW08jTPSpizY2XYNTxlhjI6B8A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDclYyam1URFo5Zis2aHdt\nZkdOMWVqZ0dDdzBLS05JOVRXdkt1eE5vU3p3Ckw0QkNMRFh3ak12Z3JGSmVKL1Rq\nNEJreGF4YVorWTVvcU1ZZEFvQVNseHcKLS0tIFVLUTlVK3NFU1pTa3BheG1EaUpD\nS0ZXVDV2SkR2dzNsMnA0NWxXc0tYNGMKtVCyNA3zbGzlAO8yhylsgz4Ew1OfPn48\nt26+OHBr9CH9aFEogQD6vy90Nwy1q1wWGDm9w/dxHXS0TfgCIhQUNA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNRWQ1YmxyRVpaQlBRUk9U\nUVlDSytabjVzWDE0TGZXQVRIdHBLTFUxaGhvCnhQaVNMcWVZVXBzcDI0VHdXWDlW\ndll2ekprNnVHQjlGNHQ4b0pBVlU4azQKLS0tIEJ3QVJ4S2RJZ2djQVZLMlpXbi9I\nOXBwNnFzbDhVM1ptUnNUWHZzWG92MncK9KfH4nF0jmb7lLKN9gVUdLormmmiAqcx\niqhW4XAWQgFPJYFHJmjDaNg0jnsmhJ7OemYzg16J3ELXnQH8OHVf5w==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQVVQvUDJmOG90ZUNXdW8w\nWnZkVzBCTkRBeWZQZlloUDdPMUxSam1Sa3l3CjNMWGZSZmpaVG9vMzNrRnFjbk1z\ncDlybThvSGFFTksyNjdhbmxMUXNUeFkKLS0tIGFUYi80eTNCeXU4bFdudWFKYWgr\nRUc5R3UyWVF3SEwvZVZBck1JU3dDdkUK7X+U5PUrUZXmowHDZt7RN5kqTVyKszY+\nCogYrQG8KgFVglL/WGRzQsjTK/6LDFe5QSgHBV4ORuENdwzOOKf1xw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4TUZOVzVLOGpjV2pjb29C\neEJhRzhGZnBFN3RSZWFYSWMzWWVyRnJCd21jClJnZVo0aTF5emxaOENvRUVkWTFl\nL3FZRk14bjArazdBK0NtbVd1VXFyR2sKLS0tIE5LVWhnalNHQmNMaktZSlhtajdY\ncGdWN1lnUE5FL1NCRXlsU2wxSUdPeDAKV64/p7WveNvn3zI6d+9JtJKdpoE2XtLA\nDBUr/jlTpVLtDYgdbxmAiWP/HitcYdQCk5kLNgdwH8MKwZ15u5R26A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOUHR3THIrMVNYaXdzRzRa\nOGQ4WHQ1RSs4RHlmL2N4L2pqb3N2S2pXTEFrCkl2a1NnbXB0Y0k2dS90QlVJd0pl\nNzdQT0RuMTNpMmptYnVpa01qd2xNaEEKLS0tIDZzSTNXb2d5UWF0Ujc4RnFlM20v\nQzZxQTdmVEc0VFQ4VnBldkRJRFp5Rm8KI7bsKh3W/jCvOf4zCFc7PDeZ8OM/POhQ\nZTWLxqFra/q6RuGJ2Hi3Hvf1Tjez9COIMHs82YZSeQpSd9GE/SPEHw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2a3JrTytVSVdxSk5WTVoz\nVlJId3hSZG9Yd3ErM2ZZbGdCdEFkSDBWakE0CjlEUXcrMngwb0JDbm0vWDRIZmVO\nYm5FY0QzRlFRb2Rjdnorc21VZ2ZWaFUKLS0tIEhaVWw4TEoxdURBOTdnWExLd1ZK\nWTlPSkNLM08rVlVlK1gvT0FqYXJTdk0Ktgf6cS1i0Kmn6uGG2E60PuiT2KkI0OdN\nn2QffHmbWDru/mV8Wwd32FA5hbLzQmRc1m6y0RU+CO7hSD+3ud9R4A==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxajZNc0RmeHJxQnpVUTZS\ndHltRnRKNFUwNllaSCtuQ3VsTWhsMThHVEEwCmFkSk1IS0Uwc0hDU09XREhuays5\nRmJFYmt2TFVOMm5mdDdoVXV2eWFVekkKLS0tIE1kMzVLd3hhMnlNdGMyM2YzN2JT\nYlIzWlQwbzhET2p2Nk10ckRDQkorTDAKUFdQzFw8C1EhQrPHsPidyqtH2n18pmrk\noxr4ZuXG0xdKrlb/g9oK9sruemGb7t9ZHaMgdrKVbE/tJfFGH2l/Vw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPaFV3Q1kycDhUMFB1ZVVR\nZWJZZEZVN3d3NEg5OThlZ1NMd0VZclpUTTFrCkpKNURURTVLOU9NODNLNlY2eHNW\nSnBaYjJxWjBjWVFlQWgxUTlOcWRCMGsKLS0tIENkRFRUWkFtTUpqbE9ERE9iT1NS\nWWM5WEpscWpBS3lBUnZMejFxVkNONFkKAZcFm28o1lZBZce+GWbobowilHKCiVK0\nLryrTZOcJjw9L83m3YYFBQioZts3LmCGp62EpdJYgXNsSsxcn0a0Ow==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3NFUxZGN3SXliN0d6Y1Ft\nbjN0cTI4ZXhsMGpsR041YlBzNXBHcjNUcUNvCmJ0dzM5SkRMeU1VRkVFdjRGb0Zv\ncjd3REZ1RHhQMStpVTJSYWRtdWU3bG8KLS0tIFlhQVNzR1RGRG5FL2JGeVhIZW1q\nMG1UUk04QzNZM0ErZjFvWDI0SFQvL1UK0lOUNqAzXz0R/E6NAX9ClwLOitR/98B9\nPeMN2pRJ+bGQBZDCtRaoOtSeMDXpfnffPdVAc3GjmR75J2MwrbXwYw==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMNWphY0lSbllhK3FQY0h4\nY0taMjlvR0wvZEN6NVlob2pWQTFCV0RxOEU0CkZpa0tUVUt0R29Kc3VHTUVCUnB3\nMG82RVlyY2hLUlhuT1BGMzZGekhvZGsKLS0tIHlpTm1LTFZrV0p1Z2FrTndvbDMv\nQTFEVnhQQW83WEVmYUFpR0hvdzlzVHcKNyUqQeHWMhmmjiNheLKWlvms7abOHTrE\nq/FOOjWXr6z8gWL3UUmr5DUHSQbSOAXkxf3b4eqaFJrqMfnupmjyPg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVT1JlZFlQSVZWaDBkS2Fl\nUmVyTzBlMkpHVUJKdTlFSVptaUUxME1Ic0gwCitxdEdHUUVzOUNyekl5RkRieHFR\nbkNqN2gySEtmZ25HQ2Z1ekJ2czdVcWcKLS0tIGVzbVo0clBaMkZ4dEtnV0IvZk5m\ndUIvZGt0VEdLS1k2OWVyekFxai9tS2cKltwrAwwh1MD0FwfUfpIQ7WnyLOUQ/sqr\n2poxpLFd/rdCxxvzVlQxMSdCK/aSAA/GklOrTA6SLa5eC2i4iP7w0w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZmlUbXRENVluMWJNTGxZ\nYThVVXZleEJFOHp3ODhkTjBkMS9NUktaQlJRCldMZHhzdXZ2ajVBVk1kZFJFUW5U\nam5XNzBNSXZWdzRndmQybFdrNm4yaXMKLS0tIEdmWXRhSTY5QXFZQkwraGQ0OXVk\nRmZZMDhqdVpVVzNRNEhCVVBvdktMRDAKznV5KQ/crbrNTYaoHFdSV0UBU/Jikci2\nkTG2+yQDSAfqgWyNFAE6VNgYX0wjEsNcWo3p1N1X3eEDJILnr3xK2g==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSZUx0QUxQUG9Md3oxZUhv\ndDB0YmdqT0FobE9zR3VCOVVqVkh2eHhhUDA4Cm84QmxiSkNiWXVzcCtuSkFlWVJk\nbWUvTWpUc3lvR0V0Y0F0MHNiRHV2emMKLS0tIHRLV1JoendjcHNsKzB3N244MzBt\nUFVKMDg4SHdSNStLYm5xaGVldVR6c3MKyRn5n4kvn0SJwD5y1/6W/y7xqmjwguCR\npAgitQg3VvsIThplFso/czOGcreG7xIKcozT57odhhxa6yo1cdiziA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBMllib04xT0VXcFRaa3Bz\nZzE0YWN1QWt0bnQxUExjOHJucERub0ZiSkVFCkJoaEtxRWZPYmxnVHJSYjNIMUky\nTUpPTlhDWFVhY0ZqY21RN29pRXlIZmsKLS0tIDdsN25XNEdHNkVNTU95MEdoc2tM\nb1F6b3B2RzhCT3dubk1vMVo3RmJtUjAK4ZgiqaqfhDkGbviKEc3W3phYjdzM+GC9\nQwYfJr5o/RW9h8XvJWog16UnGxGcheo4DtA/HhH7yl9eXkS/N/XzJA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-30T15:50:33Z -sops_mac=ENC[AES256_GCM,data:OGESrB7a0FqU1rpVFAhwcAkbpTgO9VgDuqPsSKJIL5O1fjOa82EjcG1J/juvVGqH9SmMFPigSpU5ltJ4mavXIXkamCTRBn9XBYEP8meIwzXY87AIaiZYEJmDfvssQCQ9XZl5bpqUe8zVxdgom0eWm5pXpXIxtld1f7XUd+S4zzk=,iv:4SfQnGL55D4hbww89muS/bQRcvUJiqTCiHa4RozLZ/I=,tag:cDtk893JQiS41SY/+Wl2vA==,type:str] +sops_lastmodified=2026-04-30T16:03:04Z +sops_mac=ENC[AES256_GCM,data:cnsSe1oYzMh9ivyYYZ0nKkbk2OPPXO6RwvzAJake9i6aTFv/939z7x2XfaVC+i7hyfH2HuAcFK8RakyiCXlrlQYcVtG/gQXRwjshl3AaJe8sn1S1kZJ4M2Yr8tKP8P3H2bnA4ZeAyX+ah87LWh0rMwd522UUQwFxS2Gb9vXjYVo=,iv:V+MWoyzIudWgmqwl0cdVisCwUKJKQEhhPdkOuZaP4zI=,tag:dxL37RTOjqgYIwF+USMKOA==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From f3a840ccfb9ad36faef2d9961d274ac3d8867163 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 18:35:43 +0200 Subject: [PATCH 150/153] fix: pass correct preview host --- infra/stack.preview.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infra/stack.preview.yml b/infra/stack.preview.yml index eb9754ea54..6d6d3b518a 100644 --- a/infra/stack.preview.yml +++ b/infra/stack.preview.yml @@ -13,9 +13,9 @@ services: PUBSTAR_HOSTNAME: ${DEPLOY_HOST} SITE_BUILDER_ENDPOINT: http://site-builder:4000 S3_ENDPOINT: https://${ASSETS_HOST} + S3_BACKUP_ENDPOINT: https://${ASSETS_HOST} S3_PUBLIC_ENDPOINT: https://${ASSETS_HOST} S3_BACKUP_REGION: us-east-1 - S3_BACKUP_ENDPOINT: http://minio:9000 S3_BACKUP_KEY_PREFIX: pg-backups FLAGS: 'uploads:on,invites:on,disabled-actions:http,http-allowed-domains:localhost+127.0.0.1+.pubstar.org,show-test-only-tools:on' DB_RESET: 'true' @@ -51,7 +51,7 @@ services: DEPLOY_VERSION: ${IMAGE_TAG} PUBSTAR_URL: http://platform:3000 S3_BACKUP_REGION: us-east-1 - S3_BACKUP_ENDPOINT: http://minio:9000 + S3_BACKUP_ENDPOINT: https://${ASSETS_HOST} S3_BACKUP_KEY_PREFIX: pg-backups networks: [appnet] deploy: From b6b568efc82ed1f4c1ac4f7282c5bc4df4c164fc Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Thu, 30 Apr 2026 21:56:18 +0200 Subject: [PATCH 151/153] fix: correct name omg --- infra/.env.enc | 108 ++++++++++++++++++++++++------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/infra/.env.enc b/infra/.env.enc index 4f0ebe966b..2dcedf9c82 100644 --- a/infra/.env.enc +++ b/infra/.env.enc @@ -1,64 +1,64 @@ -#ENC[AES256_GCM,data:KgXQvetrwB8JDI6YcwdP+B2I1k8jrzMNCozVIEfB+z01,iv:GyDr7UgZSQDrrytRKrMM4Fwq5dnPM21YFUj8JHEXXjE=,tag:vDYfLCKeqhw5pgZ/ZwwPAQ==,type:comment] -#ENC[AES256_GCM,data:HCODXDBqOZUSMpF8mAQxdwjsTCCZPGXMVmbA4bvy/T6M8YuZiqg4wTETKmtTsT8e536rlk3m8KkMH/I=,iv:4ZISIYBQQgq+gdnua591danAVF1O2yBqNYcmyjcFyz8=,tag:XgSInjBBua5nzud706u6cA==,type:comment] -#ENC[AES256_GCM,data:C9PmHgvfRzeT693wQ2Ox8r+dxPPlQsI+c2Q7cU31NMJ/ELLWk1NphaN1MKQF9oysQ4qr2MmUC7YOb40AT/CLWPuRxA==,iv:Rs6lrDBjcSw8jApkdIJooCzzIwt0Ozj/lDaZuy9W5+s=,tag:r8QrC6KAXdsS+ZCWlTfwIQ==,type:comment] -#ENC[AES256_GCM,data:t7UYF8wL25++lILro3ZGpN1FX2fZ1lX9WDc0ffJDh9HxJVuLaHf+vMHhNyVNv5c/zbQ=,iv:JO/MixM7n8TdxgjTZvFFNkl1hs/k/fXChGIr1ppitTU=,tag:3/ZEgTNrkfhfFfRd1BETRg==,type:comment] -PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:92T8zNd2Z7WN0JUUYIGs,iv:oxwEETOUxM/IuBkBWWIU+VWRgr0e4GB/hTNzeEmG+es=,tag:LJwUAjR1G7QI8LNuFt8I4A==,type:str] -PUBSTAR_URL=ENC[AES256_GCM,data:1hrHx3263EB00zNsM8sRZESzcQ/A594=,iv:fNFAoiCoyg0YFqRhu1xIP9kEzRtGd5MMeM/pFVOogss=,tag:tWeRZqKf1W6bJdsgAhXdiw==,type:str] -POSTGRES_USER=ENC[AES256_GCM,data:q0O11gJH15c=,iv:QN64bSfV7V8f+kZOKkukQk4YIquSrAN3Y/BWnlG5hYU=,tag:cggcJ7RvvPchHkImXjgc+w==,type:str] -POSTGRES_PASSWORD=ENC[AES256_GCM,data:IlowvKAP6ORq7afumbhyLfzTu1PqCfwqy6Hl0qgwz/wS0urxgbZ5bP/kI1aqyxI+GkRSDSts0178h09iS7mLCQ==,iv:s9vtLvtcKzpRxFGQiGf2hhe+F+qLtZTwJBuu4ldRiIU=,tag:RtMrWQ94CB5M2xFBiBbBFQ==,type:str] -POSTGRES_DB=ENC[AES256_GCM,data:/cFYp/x3bg==,iv:xAdy53ltpJnd6dNqBsSCHqinPHTc4kxHg6xGjBpSl50=,tag:B0InoRO0TuHi5Kg81Pqrng==,type:str] -DATABASE_URL=ENC[AES256_GCM,data:PfnrgdlssvyhhK/uXbC+/RK1Op6Zh04352enIjzaMDo8JmhidEwKP5X1Tpkv9dnkc8VnFKgVlDvOs9Owxn1Z35vQLyUEnWcp/iaT+VtUvkeU32L2ng8bMe/HcJJGYNfMOKuftxbA,iv:PLjI0a+jX6JzLmAaL0IIVGWc9Fla12bBFAdV++xnNMk=,tag:YZRq7kcEaMqbD9/5z0slyw==,type:str] -PGHOST=ENC[AES256_GCM,data:FtA=,iv:BJCGgSNzrdBN8gvbIjo8J27HFkj1bEa6QsbBAjviT88=,tag:0h2P6piKAMJAQMssEwcGlA==,type:str] -PGPORT=ENC[AES256_GCM,data:RUO1yg==,iv:OKIY9UR/rGExtLS2IWbRjWiough/Fii0KTmMpWApLIY=,tag:8+geCHa4VVdOSUH9n2RLsg==,type:str] -PGUSER=ENC[AES256_GCM,data:dAexqgwPVgg=,iv:ny2uwQQlzrH+cvgFd+JYGHpneQNgzrWhOV5cHoK6EZQ=,tag:S7jCkVn4q6PQoP8Yvaq+FA==,type:str] -PGPASSWORD=ENC[AES256_GCM,data:/kHIJ5MFdJsOt0Ys0j59gg2nvMY7iJeCkAIiHZVUG3l3h598Y6b22iahbDWpnKj9Px9+6aba/sirPgWBjvit6Q==,iv:Som3169XAm1mndicOCsY8OgMW+mist+vnd8X/74gavY=,tag:trUyAupaB9yFyyGxFMFHQg==,type:str] -PGDATABASE=ENC[AES256_GCM,data:+qtB7QlZlg==,iv:Oown4Yd1eCAt8gyfLeUqRkT6WkP89o+zMW4AumL3Gv8=,tag:U9H97qVo2/mzLGODw36KVw==,type:str] -VALKEY_HOST=ENC[AES256_GCM,data:tZILv2k=,iv:7kHlK6Oy4YmFAYxQ5KFZpvcgk5ahs/E7l6n+PBN7ovk=,tag:isG35iNEPpc02chmT65cuw==,type:str] -#ENC[AES256_GCM,data:JwKe8nWrQkc0But33gZs2K5Gq090IYFsZwa/zxLd,iv:goPG7LXeszWyZ6ODTwSf5mJU+T81HiyScjVh6vheTgA=,tag:aVwlQOtdPhGeVwwaOwi6fA==,type:comment] -#ENC[AES256_GCM,data:G2q6QERAdgh8BVJ//ah4WIv4u7z3On0PFfA5MzhRl6OqVA==,iv:s8+eskGOj/jCv99APgOQf0zZ/InmyWuT6beESpVxSHA=,tag:iyGinY9pCQhtemm1ZvsYuQ==,type:comment] -S3_BUCKET_NAME=ENC[AES256_GCM,data:MXRpFDC+DXAm5Ks6j+2i2z9k,iv:vbEMI5qHp4stmKFjBPlCsRwvli8f+dmv1ckWcyJfdF0=,tag:EpHAxXQYghBuFkxpqAbcDg==,type:str] -S3_ACCESS_KEY=ENC[AES256_GCM,data:wB5vSbwQACGXEJWep3J5JRadtaA=,iv:aK1ImfuXNZbCTA6qmfdomw52eEHppUP205uQSu6yULo=,tag:4ERn1LbUEEwq9CxGd0spIw==,type:str] -S3_SECRET_KEY=ENC[AES256_GCM,data:b2xsFIlE5OQ3BFcHRQ9oDkt5dzMWewJ0JBoC/7gIRPN/Y58PWILteg==,iv:cHEHCQOlqA62zCcanTFriCiLkjsPlPQEsL1nNM8B7S4=,tag:+Xc3TUXTuamfyUnkSjI1Rw==,type:str] -S3_REGION=ENC[AES256_GCM,data:vVACNmc8OKgf,iv:16y078kiMDsmNH+fICeq4qJi8l1hk4qAk2rUcrbFiLw=,tag:euTqKGnIMKPeKs0TLQwJTQ==,type:str] -#ENC[AES256_GCM,data:fwhorhGdgY/n3XtjWKkWXvqAF9oj0Gcw16rQkFg1,iv:l7R8aUdTnMjG3+PYrt0lt2A6esE7rm3K4FLQbYI7Ee8=,tag:IPCzKaj5SXK3p14CfyaIsA==,type:comment] -S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:R+dUfYiMAB0M,iv:S6b11njNzFUr+v5FJJfc/u+iSulH+CqzqaHJjWZfb40=,tag:TEOV7EEwnnr2NzAj1ETfYA==,type:str] -SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:ziJrvSisZM13NBdGe0cBpQD4KkDvTVoD,iv:bSwj1NrQB9RIMDtpIVbWwDQJiOiOx8IixSJAWQ4/jUg=,tag:CGRzr7qRFLqynelNqlFNGQ==,type:str] -SMTP_HOST=ENC[AES256_GCM,data:N2EwzEYPbfCGmXxB6tpBXmwP0RX2U2lRUAHcSZkI+T96AA==,iv:OX02nEEi1lflMv67hSIq0FGNccjzk78N5ZOSZ3WPPOk=,tag:E+a206tjdbiFzqP+9EDEMQ==,type:str] -SMTP_PORT=ENC[AES256_GCM,data:8QQa,iv:Z9I1yo1AAnGO2U8akELMsdcWWINC2vwPkY4Lf17Jmfc=,tag:e5VKePDG87Qjtt+F6t69MA==,type:str] -SMTP_PASSWORD=ENC[AES256_GCM,data:3kf3aQDl282yYm8OfGz/n+8fpOuHErgjvixbzQZzSo6uz7Z9QXTDBPNCQ/I=,iv:gHbYW7i0yjc0euNTItQuTRE//MnFz27ojq7a+L+CQyA=,tag:vabCt6KEcpPNzVSpde2dsA==,type:str] -SMTP_USERNAME=ENC[AES256_GCM,data:1EpDZrvR7q/VsY8Ia7OpzOO8Bmc=,iv:MF+yOXmJXOugPiE1TCxUXMBq1nVJBRKkEqa2DPewT1A=,tag:AIBkGvyGc7uYqJw9smC0rA==,type:str] -SMTP_FROM=ENC[AES256_GCM,data:R92CdFKIikCF/WDFfe5r,iv:H9ABrHq+y01nZGOX1gzc5k6ZHVSMYrO8pXrAsPvbohM=,tag:rXCR7EBiy9VBfnbnrRFN7g==,type:str] -SMTP_FROM_NAME=ENC[AES256_GCM,data:LXah4weQGTwrn0Ou,iv:MRoNseWMUaSwFq4LZHxve9/lL2CxIiSADcgE+8pTPHY=,tag:wZWgztBnTd5/LDWy76VH0g==,type:str] -GCLOUD_KEY_FILE=ENC[AES256_GCM,data:0IlYJEQJ0yaisi59ZkZ8ySXKgqY8Xz0T6RRFeQUy++qjIWfm39nQs23efOObPOkdzyz2Uiud7onCZ75p46RosGw0gpcvdEBXBNiK/EHePKM8By7ekCnD/wk6g3MJ22traeF6GhNSLzjjuGI9ZgttbKApc6nelfI9u/tsBCXgvsWI/dzNq9DjxGCRhflY/lczqUtVDWRRHl0WUoSmz61fQceeFoiYc4E77bgeuMFbcOJB8HyEdwNpuZVSf3QVSVZ6ISIt4rqQpFSON9zuXtzpLR6FhrJk3pjB+kOyBqC3GN+mK9dFqLxZuYK57IyM1SouoGV3vmcq7YrvCeFKyUty13EQyYNjpQz/kF0wS3WArESJxJIl/36rKWvNEnFYgIiAsvLrbYjhARJYm9YZ+V4yb3UvdO5/WOe6o5r98sCjivwXN49R818Ge5Es93l/P5pjM+ElmLp9MmLwSldYMfpkXpvHOje1m/tBWccDLpbuz2hcEiVRH7hnZM99IwLho8U/u9uv6aGdcARrtiKQaqP7acNcSaXw1X3IBOkj+X7NhUGEF109Kauf3/KTamy61chSXg+19UWBr3S/8Zklkakq9j74Axr9fHQPFKTQBifqOd97AjTeg4dwm17/3oM+9KYJu9PzVqMZvDeiGml8Cu4i7QFeYkXbht0DW1JQpHXFVlYmZriTxBEWXX2Ju3L8NpeTZz97AvREFo72aGnOcyDuhyxSM3fz73pdTQt9jDYb+eDp+cnWAVXfJkmO1NqY6J3xAhqkJ4YuVU/nYeWZ5tlqe5ZmXQSC2mxgyLxBl0mIITrwz49nm7AYwf8XJTBfVT+6go4qY+Bf1pcSJw5I0UDDfq3nHW0t7AgQhGGRYlvub9uLpsWszyghtWWsCv2dB5krU6EfdoyN30m24vKQID4I0wcM7CdMcdG5DpIJMwsSXhizec79I7ZNH4VAXzzF3gaEBWxgfMpiypT5ymGnWHnygPVJjlEXExvOYhtlLajgCZzRKY7cWfQ75ZhBs5DRCm+4I2JUGk3IbK5bNUw9cyMMHqZHfRDTN19TflM2nCJTY8pgrzeOZTdNZezDmfbHxjJgYrptF7QlmHwBW7BTaUcPB/Gh6unBco8npnPV7yP1ocVRPAuZ8EbQuZ/sW9wPbUpvRfn86cJmrt24JoxS6aXZersqnMiyPo8XFcrJoWhtHx+UHzsKOKkSw2t7RjhOAjhUEdINpNsZfWk7vxMNz9GJUCSuiN/czu+G4IgrkCvq6Z0ailS9meyHgsYN6nBh+L3k0Q2rYYp84fx4fWcFRaPnuF7U3beJVaDTkhJvvg9pjk65gFYK1YiAhlooQ+AUZWUa92loMb5/5A/C3MDdtAyGtPwBpSIGDK9a51OicpFVpOyV+M3x3Fg91EcwMSDUUtZxBsoXGZBcmVLMxHVZ7DA1LtlcDzC2bnFgd4qs53EzYVmWBSYWBS/BKGHI8pU5qFR62T47xrxpPTr+wRdMu5HJmZPXOTCJAi1rDPqHrt4Fae2+DTzrlCSlZKXy5EQUYBXHluPSqeBP6duLgXNCBbf+rhZMoPNb8xe3DkWC+KdlS/RD7RwLzbhRHaLuMjRToUXO+JGIv8fjhmerjwWJs6NZVs1FLeWDudSr1dtj0kRlvzragRmlTXXhuKcn0lK53/q27FArNVzEUyju8e+KBhKfIqYeFTDXbngxmp1h8nxXXggXNVRy8Hakmp3cJp/gEw7H5HCVeZ18/wt/eotE4f/KqDr9dHQafUO4UoXrTauJj7txMy4FW2aB5XSK4fiDnVWLQT5NWV3W9twPdpE1ATEAzAJtH1j8/8s2ju2UrkBdgh2JdwPMnMya500BNZrE6Q5SsKCoSLEEeyJCri78g/G9rqI8FAbHGfCtnLVKoGiZZ0oc56XHP8MyfJqXA3tWW1ekKiBFqXGRCjMUts5qeAoBuL/GOhDEa6pkCbe5PiaOc6ZOGl1Il4aqOSEnsbDfZwSjsgUwQtbhaoBDqaajz2OlD962KHkJa3FMoWrdex6aW1yZApS4xVP/pv5GTItdok8nqM/8VDJmpkr95tnPp3ZjthUYVZiYP6UFwmLU090fGNaGxsrYuoxVa/FkLyES227w7wpQuPZKXEp9fsUTUjRHREUI+1HMfrt1nBJ8qVkiSYyhb/7NG+bDDczXvs3N1+qCeMbyvmmIuE8/zbIoEIAfMWAEk0ISBlC35xDPCJH0MwvGre8uGWeDnVwVxOB5YGjcIwwwAa90QgzREENte+je7B5YzuWEgZ3/bsUGwOM7tKh5wCGyKAyJafzmZHcvDIgmVZqBG0pZ8TaFWmSV9NPkQZbuRKlMHJPiaC7OeXyU7tZ3WyOmIntkAAeM/XQlXBcj7MOm8++L0U4NAovugzwpxrqHFP9nGHGeGRuPuUsaxPVUcdFDscpCu9P+y7ygDM6i85FlmG23k9DEjlsFj2E5yf1l8s9t3KsemGa9UhHwKTj1Sf8NHYNkM8zcecMWw+CWbG8dfzzSPKQ9lgmS0VP45ky86iGoGqg/7mBYqKu/ga+RMtP/w6+V9HOQ/vhRvTCn4FGr7jpB8U8lYvfQS/5Dbdq/RYUaQWKIe0PDQ4J2jjn4RQXnpRwgHfRqiSacJb8IG7hXDL7vjV+QuBI3qjnvtzHAlT+QKfzUo/JzwisHCnX1aTR6r4NTLpvQIXpXLoVemEiymyICtaGjyaMRmHy3vN21sNwtkAatcERi2E2NvMRLdG2sZHIorre4dnGI7vVk6uHJE8/sZeDhwx/MWdFpxIKECLH1z9xB/AmrJFBLA04yvNTy5iTHFJwGd4b0WSJcnlTWDkBcsnUE8+0VbhJJBUZIFOURej/iujEHDdvnY6QCikvtfqmrRDz3n0p1d7jQQ1gu7Il6LKMJZyF/2MB7SuToOdE9gNRgB6Nfi3xVkDhGBmD2FOmdGP3AtT1lb6JTx9905pd1fbWLl5bgEHRhNwQHufbOmfkJrpUBZgbgTDoBpCykOEd35ekUNOui7/jM45gKMFm+B5BGmJOBO3RHA0AZLmU2ULfInL9QzhDkszeSps4wJl/wJwdjCSCKnmDutIKZtMtxLuzY+PAsRoxk6v5RsVY7p6k0ae2324oYWqH4C3aJVOzCx5Oovk8LtSvU9pYhVDOO5SC6rdk+ciphn7oPfr5P0oHdoKNVoQ9elkzd5XO6RGJ10uVizuAzIPMYSu2S/GBOIGnsFQvHM2wnQO0+pxP4h/lYrVZoaDdTzHZdP4i+KV11ihNiEqkXFJbFhzZGYncIEYzx8MQMx3pOR9ThSh+1774rAEhM/SDo5P8CukDgmWxWTXWvl3PD1CbQLUkjbYumC41Js1MLh1W3Y0AYUKNkQ1WBCVgOWwrdCb61b3Imn3G3IpFUxOmRiFAVEWauh5x3HOzOPMwCCGqgT/0S3LdmMUhSECQXXmquwlo3PxXjbK9KgD0cVDKwTM7IicALjSLpgWj0T5REVWiyRTh+fLbJ4r2R7EYkG70SgCAZHp2oScBSp8cUh1K7FBFumduc65dkd96mF2RIkkXcyNwp1vMUYx2/TsZb1zQAIbWkQYAUypWNOubM5EnwoGYRlNeRJ5sm53yUM3SuzIrqOVWtxYGcA+yyXQ6gFbkq8vSDkV45cdLA7nCkQy6GmBhQOW1SEGZLqI4gVNpL+3C7Ohmq9OiGuYONSka1bEV9KCDbTRy6a5jUDUk9CQ6T3ksqvGu3FBJbhVm9ckNeI7X0Sd+4HsYjjGs73gu1U+QJa89/2dTFOz99KLtZ8VwYhIicP9j5D60KNvssolJOWlBZRBIME9GxaMmovKXZ2ov6TI9fqN2fyH87ZXM9csUD6FZVOvNxlPXvvcrecpVYG56E/h22JZXjzp4NGOVctosXAJI9mkpzQaROfWDLLoE50wdxOAPEGKX17whCmB3S35gAFJInen5OrUKcLHuqeyFxWwKSr8fVro5AcQpKRQlZ3SOnU084AGuUgmFb08Ce9fvX6PtY+B0chothZ89Mk01uuzHglYYO8uNXk+U5n4Tga4BqiLUiDamjVsu6C1NPZEM6ZXCFnhPkmDIAM0jdweOJYyrRMUCAosE2E4ciGDJOWH9dMwzxSQiBWBjt81pAOXv5/j5DgeaQ5CODlgOO60TvVW6i7oa7834DpqUAau/wkgG1ryZmxg==,iv:/KBIEUuEEayl6jFn2+YEIw/3nKudiPmYyDfGntMldd4=,tag:sLfx3b+6cckDwPStDeSMSg==,type:str] -OTEL_SERVICE_NAME=ENC[AES256_GCM,data:qZ6Se+6ZJA==,iv:DmxQu9fgNd+XWFUF+Om70m7v1Fhws8wilBorRH7vmXQ=,tag:wVdJjZecRPeyTCy3jsflsw==,type:str] -HONEYCOMB_API_KEY=ENC[AES256_GCM,data:hz8CjPUyPu3v9qg/jdAHAwd6XDhBVPeKXt7OQiWd8lGvgev8kno6PrfryN01qd+k3UrMAqkPMG5tVZ7zBCWwgg==,iv:yOlaSg4hBaTipsZCvhWSeDAHp6BBcpXE5WHBeNByrL8=,tag:nGl8lXVouC6OWlpgu/bJzQ==,type:str] -API_KEY=ENC[AES256_GCM,data:DBKFyZmg0UlLrnEnDSMGLr6jDZwZqIgGzCDx1q4BIcE=,iv:1MNOL6A9LMfULxbuqOl+lddGyw/HG6tFGhEhTnaWjI4=,tag:eHJjxtTNrRTpvxuOIfl7dg==,type:str] -DATACITE_API_URL=ENC[AES256_GCM,data:hqWdorbhGnsC2NtM8mLfH8DG96ZMRm3J,iv:rXCoGU581D0QNEyW9BbibguIFfrPDqwkBmtLa0+gKMk=,tag:fmahrsC3p32J8AiqkZq/Qw==,type:str] -DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:qrBZA0/wqmX+6WY=,iv:BhzLmSC5DjiSKb1EDax2nrwIPXudN8y1ya9RTswD5BQ=,tag:bTFS6gSTQ9jszv4B1dInPw==,type:str] -DATACITE_PASSWORD=ENC[AES256_GCM,data:K9JDuXxR1R8j700+VF8q,iv:XrPNmud0A1tX7KwZGvWVXHG8aGsiIIk/EoZD9jcg5Tg=,tag:soPxBLOhUl1ubcmQeQho+A==,type:str] -S3_BACKUP_ASSET_KEY=ENC[AES256_GCM,data:eQazo5IwDCIa18qHroKUO+cUPCE=,iv:EUYZMRKoRi2aGjGaEVgw4TV+8NFe+nuT3+q7aC3fp5o=,tag:Cn+1EqpAYFV/wqT0O6Wqow==,type:str] -S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:b+R4cigUfwcU2NrGOJgqWH++A5sNRwGi5qNStjJaGEaiqIIu01Ic1w==,iv:obm0Op3RGQ/2u5fW/XiqvEWDnMB35retAzcI7jF0vik=,tag:FrxGvqzK2K7Zo6kXR8aFvQ==,type:str] -S3_BACKUP_BUCKET=ENC[AES256_GCM,data:UcjnEeMCYjrAMENW7WwC0NMy1ZI=,iv:rAQ56kF7yKmefhhi1Ggfo3sNktTOGEGnUKGglU/ezmo=,tag:zWX944te9HNBvpQ4rCuqaw==,type:str] -S3_BACKUP_REGION=ENC[AES256_GCM,data:t0PE7bz3Yn0qwA==,iv:Cp2hDUuX+2h2i/atoMutpwPCFZ2ayNHxK3s1iVmRJgo=,tag:ae9WLaaC2izFlA6LBCoCTQ==,type:str] -S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:rfllZYyV/0G3JH6RYF56IgiRgDkKobK+mh/xMJ+cgxGPVm0=,iv:dDuvQwH+LnuTPHe1Gq4A1vIQmcZiEerq5wVRd1DUdZU=,tag:i2242/3Jzc5LXpq9kbnn+w==,type:str] -S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:99rHVuymUeY8Ug==,iv:KsVq5HncstErpjw1TfF7mlzjSyHzIavQmcfO2Aql0+E=,tag:bSMtjGRCmRXmJqeEq7BybQ==,type:str] -sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB5enozNmhYaUhycVpCc2FY\nZG1JVVI3VXNNdkVOdEtpZ2F1OTdFSnNTSVNRCmQ5UjZwSEdBYVF5bjRPbisyOGpD\nWVByY3lrMDFWWGtham42UEFDc0hxTUkKLS0tIEcyNkF2em4rejFkb2Z2dEhvQjY3\nalVTd2tHTUdIYXJWMHRvVmxsSlR1TUkKI7R4nWyXosXJktdHOm51bpV0d6l/bwPX\nJidFAuLSe4bEuBGBc0mIBsWrhwBjkW08jTPSpizY2XYNTxlhjI6B8A==\n-----END AGE ENCRYPTED FILE-----\n +#ENC[AES256_GCM,data:/x9mh2h3/W7lQmxpEh02jhxheIKLiA5aGAJ1Bill/7Yr,iv:RXPgkOsUnyxRgrOB6O/2ujGqe/cy4vORHBc52pT0Ml0=,tag:Lvtr82v9uTgATddyWhh5DA==,type:comment] +#ENC[AES256_GCM,data:uPl+lleVHirSTof4XJOYKtkRYvZnwlHyUrV1xox7RX0EKmVkBHVh7El03DD/HqgDR4v+ZxNyCb9IAII=,iv:wznD+/ufycu9rMpQmW/+9V6WFaS1hax3cPuHICQXeh4=,tag:Sy8smZ+0iH/P+AfrKB3cIg==,type:comment] +#ENC[AES256_GCM,data:eMYdfBica9VOMVMnDbcFyrCFtbTUjcxC0ISNnWkF+mbrS6ry/Tv1iqCyEQFoKUr9NdzeyKuBqJbkOdttjXYrIQUr6Q==,iv:nAhGWgbd5ZOaoA/1KwarFG9ZMURA1BHeaIRAmtHBbrk=,tag:2Np2ZK+Rvr3gtkkPlwsCeQ==,type:comment] +#ENC[AES256_GCM,data:xR0W8UoU6FQA67V3XKNeP3kAqjioIrMR3YmrdCCYu0Bcpfk3rwrneE2uK8VzYAVvNmw=,iv:6I/4YJ+voUkBwoeUC/oXM+IjXv7OrJDoB+Q9sP4tQYU=,tag:hUz+dwQnNLBou9E/CGG1Xw==,type:comment] +PUBSTAR_HOSTNAME=ENC[AES256_GCM,data:uXR0UForv46Ldpbd0UIE,iv:HzJQXvhY8lABFLHcWPQXLZyX6ihbjEkPwd00w76YrcM=,tag:hQC8fN3ck35nMoNgSh5LEQ==,type:str] +PUBSTAR_URL=ENC[AES256_GCM,data:sjkhrE8/0LlLuHkDbA+DfeuoS/Y711o=,iv:w1EMLoG/3H5bZx+H0k7q1SeGtfQ/hge6PAVqwQv4hdw=,tag:XnyHd7NM3E3qMMnA/Soq+w==,type:str] +POSTGRES_USER=ENC[AES256_GCM,data:ceSoClohrqU=,iv:zt6lTBXJwK8ZjC9qBGwjC2KrC3e8Y7350ilzscOkRFc=,tag:HFeUxlII/uZW7TQg9gAjpQ==,type:str] +POSTGRES_PASSWORD=ENC[AES256_GCM,data:TNRk9Cbj0BNV/7sSoEMFZMi2+7WNciCesRnkMeAP9AGfm5qOO9Igsb4TNMh20nFCqYhnDyoC7y18ao2XzZtCbA==,iv:5HYCVOrS0c8iH8NVX2EPe+8f6hrusoxdzfy1XOc9MeA=,tag:dP1dTV36DJLS+eZUpLWoHw==,type:str] +POSTGRES_DB=ENC[AES256_GCM,data:cmmimJJ+DQ==,iv:bNS69OYxWVv+mzJWONUKu5Grx25W3nqiRo3BSrOBnak=,tag:FH/A36WyAZmLkDE3mDKGGA==,type:str] +DATABASE_URL=ENC[AES256_GCM,data:iVZxRKryPjzS6HxHnh47A9dYptnlD6hfu/utW4WvZRxKmaJ5rGt/WCDcQTmaJuZygkQnYNTsUExBbMVwamGfCQLzdA9dfX6ejd9ctRs+917rS9y3gi7huVyx+4qWmdcwlroufLFy,iv:4/wFLb3gtS5PaTCXqz/l1uehCFWKJqDvho2ac4fxBa4=,tag:slN5qRDBlkel9KDcHN4y5Q==,type:str] +PGHOST=ENC[AES256_GCM,data:ilA=,iv:iE1GRKmxbToTlPlizcZUDPFE7+tznI/ns3TxDe38bsw=,tag:F8Iq9AbWOLtUdnVtNQgVMg==,type:str] +PGPORT=ENC[AES256_GCM,data:1s8LNw==,iv:+9xn9QLZ+C9l/lEm6cfWtej1UHumXB+DsSCT0LopbqY=,tag:rb3r+f90n75NbId5e9CWqQ==,type:str] +PGUSER=ENC[AES256_GCM,data:u3H2gZqmJEg=,iv:Qqllqbu4tdt77HbPDjMvDeR1df3OwIJYSCIsEIPBFdQ=,tag:1BjzA8P87fmbrYHXrcbbtQ==,type:str] +PGPASSWORD=ENC[AES256_GCM,data:k/w24sL1KDk6N82MMF+ZTukLbGbzGqiX6oTVbtrmwPbf2czNdNob1WPXSHm2tumOrx5qupCBU324+F95AT58fg==,iv:zN/WtYQ8UpxH0CCUX2TYDv+EUti834itU9XIRmZ5Jvg=,tag:5hqQ3G4AHAs7Exb4S7HdAg==,type:str] +PGDATABASE=ENC[AES256_GCM,data:hntknEwCeA==,iv:fqSsHDyVlwV1ondZQz51z/9IBtGR7nDPsfxBPppVeFA=,tag:gDTNqlssqP2rTW6IUbd7Cw==,type:str] +VALKEY_HOST=ENC[AES256_GCM,data:+ZOnknw=,iv:vr83FoDBXnXMvDa7rETUoT5NUbUMdaZFuiyy9AmKP3o=,tag:hYi17eyNVWVea2j0vHivbQ==,type:str] +#ENC[AES256_GCM,data:ZyzlLV31lUzfkCXlECPjlWBsnJA1E2jCxuOsJNgp,iv:CTtAVwYoe5ZNhcdw0gbJP+u6LntDzlHw6WHkIjRgomk=,tag:YLSptWEv5QsxNs6+HC8Kyg==,type:comment] +#ENC[AES256_GCM,data:dJkLZELxxAK6CmAo5RELqn9L9uDmiDOL4EytZrkTYeBbjA==,iv:49Zr365GhKQ2gLA8K2OYGVthKfAHe0aVhaKW08uFMDw=,tag:pPNcbMQ74OQCeGI6XjBKpQ==,type:comment] +S3_BUCKET_NAME=ENC[AES256_GCM,data:/0N4Kwa9PGEV8ETB0f1aM6/8,iv:dWm+MGMLn8F1Rpp+Uk+m0xjPsOtszghOBZNr89p9DQE=,tag:aC7xIVdqmKQTU+vCmYKDjA==,type:str] +S3_ACCESS_KEY=ENC[AES256_GCM,data:k5ig2CksW0vewzFX6/OhyW7xEeY=,iv:j4P5JtXx4X5byPKbJo5nnrU14yjyjwhzzwHPZj7xzbQ=,tag:KeB2g0XRQEATbxsW04W2Wg==,type:str] +S3_SECRET_KEY=ENC[AES256_GCM,data:sbA49TRHn5EglwKNnqUJJgQq834t7x7PJgUVoRabkImBhHEfrdr3Jw==,iv:0dCY5l8ximmL2nqyqyTmU/b03AE7jH3t1zv+vw7Hq+A=,tag:5VCdjiI06ZeshJqwrdzw9w==,type:str] +S3_REGION=ENC[AES256_GCM,data:86m8krMCui1h,iv:h0RsKw17tUnN09FwiRIwsbTxU4Ltv0tKqlVqjzKwpUI=,tag:HeraHLJRW6RFjywg3qDPDA==,type:str] +#ENC[AES256_GCM,data:UCoLzGwidkbc/Lf5VWtu6aqvTMJgkjsoy0ICsc06,iv:9zJbJc+5aBAaHsNKe6iacV9cxk9pl8CypJd1t6GN/NE=,tag:N76V1dolqhaJIMZCLt99Iw==,type:comment] +S3_PUBLIC_URL_STYLE=ENC[AES256_GCM,data:E7IR56MCtDWC,iv:/0rpNjx50uCBaO0JJ/JajyXoJw8J8nmnVPkhu183+uo=,tag:A7lAG45n4rrpBNECxylRkw==,type:str] +SITE_BUILDER_ENDPOINT=ENC[AES256_GCM,data:vPjCv4vscvlE2zrpOFEi+7kytev1foeY,iv:gUAImqqFo5r8CZPMJIWQD75ku4ijsgQKam0TYU6AiP0=,tag:OAOZUnmvUpq97T8WurjB+w==,type:str] +SMTP_HOST=ENC[AES256_GCM,data:lnedLxpMlVV4ej0XUIU34j7sHGIeJFkdKO/7cQ85WlfyYw==,iv:2bYYWIKqGRcRqqOzPLBc5Oe4X14LpyUyQW71/rH69fQ=,tag:O5xo8am35fuH5ayKvMpMsw==,type:str] +SMTP_PORT=ENC[AES256_GCM,data:L+6I,iv:WRbrslK6rA6R+15/CQFVzEMj69ZCulP+XVo4fJXdGgE=,tag:1vt+eWAOMupZjFXisA8Byg==,type:str] +SMTP_PASSWORD=ENC[AES256_GCM,data:JwvQxAlxYd+0uMFxd5sxveZoW/O8ErmvrGeptx4ru+ftYS4XO28gcjALDr0=,iv:8GdZRrSLyWx/+aDEwTGuTJ4UWyJ3g3Gv6Dh8HaEVep4=,tag:3TXr2EMy2WMNo0hkW3ZTpA==,type:str] +SMTP_USERNAME=ENC[AES256_GCM,data:66fTH6xmu6MKh3Ca+IJW8Sj7fcw=,iv:UGSxjnaN72c5JHNM7WCyb8b+7UGVtLsQkgmr3RjF9OQ=,tag:3pU5dQfKLJ7tPuAZr0vjjA==,type:str] +SMTP_FROM=ENC[AES256_GCM,data:m8sXZ3aIwjLKyNuU6gCl,iv:WKj3uK4BGuAJ2r+Vx2PJmXRbfWuvvpX64yHiVxd2xAs=,tag:k6lGSvKEBXQjdrWggC+o8g==,type:str] +SMTP_FROM_NAME=ENC[AES256_GCM,data:JF/d3sAsC0havTnB,iv:3Nytq+08LBRI94RzgGlizqBEBgxw6BJ38UdEc14SOdM=,tag:96d1gAzQQTyVgVi0rnQKSw==,type:str] +GCLOUD_KEY_FILE=ENC[AES256_GCM,data:JCx1hyG9bi8iYU2luHcvcmmiGcOu71PNmz12A2LTTV8rDnhDWbOkioNmTxBFjTfAlTVsThwQIQBJ1k7UXpIicQocLQUgdlUKCpvN6TQ6RSfR97jsrr2mqBKYQqdyyrdmcY+2BNxiZaPXNwjVNTx9FisaP0/khhYrNOgxYnIKPU61dtwMyOhuiCNrGfiJmD/zLmh4WvQKUl5j7VzVv2QRfZ2bpAqVvjDO5gd3E2DMjGhSVjBNBmLut8J7Cq5g+q7WF/74Fg7rQ6XtponV0W/qWxEAT4te664t6iHxJ3bVSkrp6jyo5HSdgQ9eGgRtJqP/YrVu0PItf1lIqyEY322xWlLbKVo8e70gU+VjFAJb/fII3uKXfZyzbFf2e2/yqc7F5IPuOOznq+aGb6vSaRP8rD1+WQyrI3GFIub9HgKMC6zznhTgcekNhlDsVzLhltt+psULZxfbtByMwIzUCZsMDVkKeyARkSDMKMrX49NQWWbO8qbRLdsq5oHWam4+rCtHdv2QUdXOHiv0KZEWK03J9wadM0LZFkWmLAA6gE3UdhCZAvWJ+eKXYL7dysscNKqRJNU8KA6rkhd+IgujBCWtFx4dYuwyteHYml/DxzAf1GMwr2ABJIWNIzPqD2HtS1srXl5aJLnBcWscEmhL50G177meaRfb5QWdf3BoVGfnFpXj3BpDs/QH2UILJiLAt3K+QtKXcyY3ZJ6B3jNzUzysjsa/fyII4vGzTWOsJsqeeM1Ewe//0XMzghtgdW5p866kd9L/T2sPAEW0ZASLhmkL0suna/M4d3retsxluvBHxQ1E5XQ6GI4eTI6qpNwZQiuMrFyllP00SrCvq5Nr85iMlkRIOrGzG5P1VC9ASDaVi3HZR0m+MEeiY9vANMR9sXn6qbJ9+vFG7sXgY5uZ3nmSngYT7Tj76xaYTPtHY104i7XrJERyMI0owfQaVrXyrdL1oNgKzFb0lMyVtWfASbnhaIZlOiRLyJT2XS8npHO4tLV8YioW7ExKukdZu5J/8fJN6bEI7DsqryrdxHPsXnqpQIu2dYiylM/UAoEHGolZ45rqs8JYpUtPB73CrMThkuuwzVpCKGy11lHpBQHZiLrYOtRG5bm+ky+1rGlt4gP2EZAlogluK/Q/k0ZRURUKvA7WtGXrmfevswUqDIBLta7gw+D4vjXTfQmg3SCiE5TzWE9mhy5tW3u5Q6uym5+k6Ru7/qYBZd15yCX4Lgo1FbtO46Mn87tVfqhXDQdSGWhlrpOuyNbq7ANaEaXJxILRvtAsw1L9VNnIJhZLZcD2F3IkbnOqIB2wzhoeBdQNWtyQydvCybC2pt8yJCQonN0piMUct/jReeMmeG9mXQayMO0GgZXhPcpzxovWC6qhdCIkSD1WvoFyPVPSuWpYxtrsoOKpcPvTDwTHhFemngMvX9+8FJv2t6O0jUx3eJJkXbrx00l88e/HluWhZ/QG/GEqn2zxnIvXxGTWR7LNZLtea9Pbl35DFYIQFJCmLzyHpwzQ4MV/abcjFFgAGx9gOrx6od3CGzE27L1RB+rePncPXvGKhCUE059JoGT2EguCRc6OgK/3fuLS2UAexQhSxYj08oNk29fJTpatzdf8M5o7sGmEeKc3CVFc6lzvApPg3/7iJrchrEdXUrq4ibKuCPj/Xed+nzK7fyc6nPBSBI+i/dJ3sXuDXkJ9P0geXtn2MC3f0zw6Hr1sfPvA56WrZuGkCJi3Z8sG39kOwI15w32srQbxAlUl81X+iJdeMjXZP5+leZsDpcmsdnUvODuVaQakV+dYyTlWoSMiIxKZXMhdMsHvDwYSeqo6qaI6Y6M0jWlq5LTAcySBXiXtKSPm5n+HN1Ag8BBkLEeI70d0cZuOXxinWyWjFx1BaAX+JkzVIT3ppYU7AhKNaxJmOSk+2xSU7vb4Y12IKHl60oaJzej/nvQWGcKw2FHacvRhGICFDffOnuHiuKktE/5+Of2yz06KLnItvG5H/TYe+StkBgdWHQI4nPZd3euRy1Q1vjWWOHuFpkDNfn/eJ4nSxhHt+XFTt9hu3tuBGgDfdLHU1WneDTEAx1C5qYDK6og/OYtMM3dRMZa+YWu25tDFN7t6l+jwZUJcvO8AlI+O5P/AETBc1X8Y4k7f01HLUC7hLBR2ERhU/nXuwo7SGs29BjQhVLqJs8IzMhmnkqEF44hcCJ8TqPRQbt+l6Yi5zX/exbngS3AV/v/oQFLjnhkrev8666TTwLhBBqKBKCj1jGts07KER593gYvKYCgleFzAMPI8MzfcSRaXvIdOZw1+4bYHCylmVGMLgbdtqZGzt2d2Ayv6+IrYtI27W47AcAfgUOri/hdAa950ZsWuX6h3P6rA3GRgVFv/FtzEsf66yUsUi6jTiClOei4aqQ75t5Fa5VdNk03/FwCMwx1VugJMtSHEpMFu6eDGQv4ZoHIsnLYGA9EeciDRxk0v3V7goAnjkR8nyZKDL/f3OUSoz93LUqAmTEJajKsG7vMf6eLUSrWg9aEnDs+c89gvX3oRb6rDzIxrgs4XSvNfjGG23GSY53jnEDoDGeHBdH1bd1qE5VXcWYhSYBmySwTJUbDHLFFM5R6om+MpJNgjC/BLZkCiAavdxczODIMPKU2mONknZ9J6gHXRpBRVkHCuAqv6Ixhggz6vfsL6Wfd+83v0fKKTAAB9uegEKmQ5L/ZgPP+2nQoCWUPSzqmK2M9/uuyppvlp+GXcpgbyKQNvM7j8m+E9XmgeXUomZyieBTK0R08WmOWroCCB5JejY0tMYAwdfbBV7C2LRJdaHaEFI+YnLVgHP8bQFqbMPhafnJJWNmOjjp/bWza3pnNSC0BDulLOQYGiGSlqX2Dc/0q6JRR+rNqKTnLGKHudRCAV9OxuGNHJGaViXH6c1LWMW5EyYhXskbhfpt34hJuBoeCyAaLCaW0/Q8zz7vA4tGyHSvfjFpKerw38v3JchIkhcvgaTpn1JqI7N8l3cun8bshsGGkBYC1cFBopa/YJ+WOUpl1cPtzk7j/qgDvP/fXQSuMc/UIlErPHP7vriE6YdbYsvCNzTIUNx4+L+rWVKbAiK5JSqrY5tvfPYF8IAAxmUUzb7Li5dWB7XQzAtXJp+nYhGXbqKgtmdEaR5hi/JV8rzzosjSgy6mzLrm+Q7AtZIcY4OzuO6liiawGtYvym5Ft+L7PORGTMPF4k6AGxmNt4NSMnqBCEc29bMT82dV4+xnbYGnad59Zt7tPRUtwT63xWXN48Wfmsp9+7BaqJ6R+SyFGbUFwzh7Kr9LbOg0fZkJr84hFHmaWGdqT4WV+QzznniZnHWWMHL14ZTrEeGpE3IC+iD9/zo8OwgxLc8059ieczS+XQEGWmc6dBPcUHvslXjQ6quQSb9qey8UcPlWYdUiW3CMwS5IOfxFwZGbgavuoLNn/X984gAUcueTYUYNEpWsfzcNmCUcQxbQhfl1f1jBzdfu9gE3C3NiwxNd2Yq1dymaynMyXmQEkbq1qaEeo7eJy7trHQ+QGKbhhrWbop0GUrklYjAyCiwR5c/JDDjvAP/PTvBrRAAYkDA3OOG5q49ZHQi2EwyckTOEhH1yCQ3AHHYq/FekekdIqniZRukpU+wiQXAtW96oIHU6uwivpdUa4gIXLxpcXwAOFUK0zofpGW3jhozNsXgPd3QOE2tX0/0eFTdj6hZoCZpndLuQ0AGJyjjxdljQwfKvn2jlke2Sks0brwcrjUv9gB6I4Z/mwUKbgOYbLWjkz36t3HtUYpPXvo8s3scq3AUbn7Npg7fwFkirrYe9Myb2G6tr8kIk8c38ETxhFCze5bGb9nclYlPxWkcIksSNi50vHbf30ppp7GqJMjDW/xBCRG042hYSUN4OEENJwZj44lzBgLcpyuu1u3dHfbQTg97+2i88VFxyTB3Zb+o8nERBqYUHMgU7Yo2RACOt1SUgsi0VtjrQuagI+Tdru3yJ3up4e0QJ8ouG5CFjSOrKNzZDDq2FhMvpWjIuzT8pzMHVQwRvW3wtQG/IHIcW+YByXOjAgCKu+32982K4rGpTnUFom/qot5XQ+ouQt9dgey1RvA0g7JB54eeOkeVgoR4AyrrGfngpCs2Sz+5MhYLGNa/pojNA4LVaNpQmzlrHVpLT4ia/xRK9si5XHA6GBdmVtPQUS9JjBboe92JQ==,iv:pn6NwOiNvkwFuiYbJ0Y4NrMWh2lThK2miAVSAKAzuYg=,tag:OXpeHPCZViYb8B+2ecN5qw==,type:str] +OTEL_SERVICE_NAME=ENC[AES256_GCM,data:OqPFBv4KcA==,iv:G+mR7HX5zNkoTXSlOujueDlMF+gke1q8R5PcpCMrNUY=,tag:eZxXMyCNT/CCFXXFUnLbwA==,type:str] +HONEYCOMB_API_KEY=ENC[AES256_GCM,data:fvNKONRMGnTcvAFjSKPkfsQ1ZAzYb3nYOagf6+GEV6PPVb6/4RwqjvO2Ekliq5dohJth2l9V4cfXvfUJVr5xnQ==,iv:bEeRXZgCRvcyKNWsaoLZB9e/k8+wb8n/13GwaIpsKkQ=,tag:IdektxuEzr0n5LDL11l8UA==,type:str] +API_KEY=ENC[AES256_GCM,data:9tl0a7AgM/r38AmdfDUeaEko31S0kV14nt4PxLQqLgs=,iv:k/J47QAZ397DjyKW9gUDjgypmxzGXMB/wU97ywkEvks=,tag:oylYJFlhRzOIZcFqSgakyw==,type:str] +DATACITE_API_URL=ENC[AES256_GCM,data:U3kKulrGCKO6wrjIHqtnlUoO8aoUoSZL,iv:9gmJZg9c1zzVE7f8eXszbDhq5ffXE5f1UArjk/T9RSA=,tag:bLXtguJc6I8Lrg21VK7khA==,type:str] +DATACITE_REPOSITORY_ID=ENC[AES256_GCM,data:t0ul1CQ8wVHu+rY=,iv:75VF0CtrI5GHeqpor6mSWlHgnq+puz4dcqyGLq3tV54=,tag:l7yDBvpsz7qjtIp/+o5Fww==,type:str] +DATACITE_PASSWORD=ENC[AES256_GCM,data:xj/uZAVEWzykbY0qHXqs,iv:Uf0Ilo0RggxXAyTCpyKNap6ItZlQWiwoqQ+PqiznRkQ=,tag:4+OAdk86MYa//RFp2dJnFw==,type:str] +S3_BACKUP_ACCESS_KEY=ENC[AES256_GCM,data:pKKeRqhluX6OmieoYp0naSVIDtc=,iv:E63XJWCk8BJVcG1wBLwOD94WZSA01cJ9a7yTqQ4JRzQ=,tag:ZeEfbTNHxY3DYdeFqOQ+Xg==,type:str] +S3_BACKUP_SECRET_KEY=ENC[AES256_GCM,data:jWkBuUuYPibDzlVk5JeVbpXlV9kCe3IPnxNIZha7RHo34MPkQJI//g==,iv:ULZOabRRRh8J9TgxQn1ROHisWSqB4yE+5cWFnuCo110=,tag:GQudDBFT27GX9HOX+D/ypg==,type:str] +S3_BACKUP_BUCKET=ENC[AES256_GCM,data:+tMZN/aEVGdjaSNKMSb+EiNwMmU=,iv:KbW+t/wtWic33FbgwxQj9wbIoQ0da9lqkw+q+m3NQjE=,tag:T07bU+ldA61JgyUho0cwjQ==,type:str] +S3_BACKUP_REGION=ENC[AES256_GCM,data:93FSzI9fwJXfJg==,iv:b65GI0iS41kUdHA3AAegjmIwuoXnsvzsIx5hhEx1Qc8=,tag:5cCojoNSoLZJk+KGHMBiIg==,type:str] +S3_BACKUP_ENDPOINT=ENC[AES256_GCM,data:q0Xy3LeUs1CDKQNdrGEMiJ9Sf9pNiM+eA+CybYPuBde+En0=,iv:61/hic1jB4b5Mn2Yhv7NlfzjyFcGlpD2dYd06MI6GmU=,tag:2wN70cVd6m6S4UcJED9wXw==,type:str] +S3_BACKUP_KEY_PREFIX=ENC[AES256_GCM,data:4xFx+7gK/MrmZA==,iv:DtoI3q/tXx06Eo4kPfaJNn9dF2Ln+oBK30TPdJ2JuUE=,tag:uwCZBIzfb6BYhbDbh2QPoA==,type:str] +sops_age__list_0__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZeWxGbDNXQWplZGhIUXE0\ncW4xcW5lUExkcmFRNUpIZkVxTk1nQWxtczBZCjhpZlZqSTdhNGt3ZmNIcmhRRXRi\nbFRyZGZERFNpajNwVVh6Mnc4bStMSFkKLS0tIExpM1BIUzQ4c2NYQm1VR2NLeEtJ\nOEl6MkxXd3VGc2VaTjZNRU9OenJSSVUKeVep1soqdUYMyW2+PB37MWhMn7MiyEl+\nedntudOs2Elz6Ix65nTiKvj4S4uaRC6O2xRyEsxkWLwogXAHv9FAVA==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_0__map_recipient=age1wravpjmed26772xfjhawmnsnc4933htapg6y5xseqml0jdv8z9hqemzhcr -sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNRWQ1YmxyRVpaQlBRUk9U\nUVlDSytabjVzWDE0TGZXQVRIdHBLTFUxaGhvCnhQaVNMcWVZVXBzcDI0VHdXWDlW\ndll2ekprNnVHQjlGNHQ4b0pBVlU4azQKLS0tIEJ3QVJ4S2RJZ2djQVZLMlpXbi9I\nOXBwNnFzbDhVM1ptUnNUWHZzWG92MncK9KfH4nF0jmb7lLKN9gVUdLormmmiAqcx\niqhW4XAWQgFPJYFHJmjDaNg0jnsmhJ7OemYzg16J3ELXnQH8OHVf5w==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_1__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2RE5PRGgzZThCeXZucFpr\ndXp6TmE1NzdWNmJQcDlFS3dEdzVrUFVyN0N3CjNtSEVWM0VWbE1OMnVTVUNtUUoy\ncG0wOFNlTklhek0zVmhydTg3bTJucHMKLS0tIEVnYjJXR2laQWtPUkhKV1hkd2tR\ncXpHamhxRHdDd0t4allUMjhySDhkZWsKXet5TcqZ8ZGhv14EPHU2JHEIFFBF7L5p\nmz3pbs8BIe0rdXewjyjmq7tdFFdyWxvxWl6bRVU0pkCKwl7R2GZWJQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_1__map_recipient=age1vhftscteyrwphx0jpp0yl60xxrjs77jq05mkzv88js7ckc926vcqepp2cj -sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4TUZOVzVLOGpjV2pjb29C\neEJhRzhGZnBFN3RSZWFYSWMzWWVyRnJCd21jClJnZVo0aTF5emxaOENvRUVkWTFl\nL3FZRk14bjArazdBK0NtbVd1VXFyR2sKLS0tIE5LVWhnalNHQmNMaktZSlhtajdY\ncGdWN1lnUE5FL1NCRXlsU2wxSUdPeDAKV64/p7WveNvn3zI6d+9JtJKdpoE2XtLA\nDBUr/jlTpVLtDYgdbxmAiWP/HitcYdQCk5kLNgdwH8MKwZ15u5R26A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_2__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwU0ZZSkhYQSt3YzAxOHk1\nc2xPODN6WEZlcTh4LzQzbFVtR3BZbUNnRDEwCk85Mm41WEVaUkdTZHdiWUM1RzZw\nQnFNVHdUNnkxOVJ3UEVRc0FNL0lXV3MKLS0tIFh6SEVua3k0TWFGMnM5ZFdGaTdw\nYmd5OEdvdFVDR2VldjBlYzRNNHY1REUKQIE3+zDgBRZtZhSyTaRuNTdvFZUxrb7D\nbU6ZVIaA7gSDH+CNDybkU3Pam6BHunNYuM3CdpfuMxDxWtDS5xtMHw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_2__map_recipient=age1slx6e48k7fre0ddyu7dtm2wwcqaywn5ke2mkngym3rpazxwvvuyq9qjknk -sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2a3JrTytVSVdxSk5WTVoz\nVlJId3hSZG9Yd3ErM2ZZbGdCdEFkSDBWakE0CjlEUXcrMngwb0JDbm0vWDRIZmVO\nYm5FY0QzRlFRb2Rjdnorc21VZ2ZWaFUKLS0tIEhaVWw4TEoxdURBOTdnWExLd1ZK\nWTlPSkNLM08rVlVlK1gvT0FqYXJTdk0Ktgf6cS1i0Kmn6uGG2E60PuiT2KkI0OdN\nn2QffHmbWDru/mV8Wwd32FA5hbLzQmRc1m6y0RU+CO7hSD+3ud9R4A==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_3__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSArem03ZXVNVk8vSTM1QzFl\nWmFRcHc5dituTkhuR3JJWmRUV0lNa29ZNWpjCnlpMHVQY1IxcUx4RWZPdjBoSzBw\nckNhMEFSZk5hd0xQNXZWNnNYcUFIRWcKLS0tIGpwZGhBWk5tcVhTVC9vNWJLSko4\nSEpPZ1ByZmFDUER5N0hPa1pUK1pqNlkKjEBDR/6zg0muHZdD6zDxut9T3UN9SzVB\nSXChIYlJY7I6xVvPvbCRrwC1r3wPSZcz11B+BLK3QaWTHCFfJjQHTg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_3__map_recipient=age1vfhyk6wmt993dezz5wjf6n3ynkd6xptv2dr0qdl6kmttev9lh5dsfjfs3h -sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPaFV3Q1kycDhUMFB1ZVVR\nZWJZZEZVN3d3NEg5OThlZ1NMd0VZclpUTTFrCkpKNURURTVLOU9NODNLNlY2eHNW\nSnBaYjJxWjBjWVFlQWgxUTlOcWRCMGsKLS0tIENkRFRUWkFtTUpqbE9ERE9iT1NS\nWWM5WEpscWpBS3lBUnZMejFxVkNONFkKAZcFm28o1lZBZce+GWbobowilHKCiVK0\nLryrTZOcJjw9L83m3YYFBQioZts3LmCGp62EpdJYgXNsSsxcn0a0Ow==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_4__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRT0pRUFdhc0hKeHh3enZ4\nNVRCWDNVVHFLVGE5QU1LV2xTT3FpczRGdXpnCkhjOHN0OWcvRldVWEFzOGlXNWpk\nQi9MaDROWVE4c2tBMUpZVThZbVZYKzgKLS0tIGo3Mm8rUXdVd3VVU0hZclR6dHlB\nUGIzeWZuSzA4cjlndXcrelNuZndLOWcKcjUKPLhCggDRc8Hb/tTmNAgOn1gnhnYI\n2Uhv6pMRUykseKvlcXnuBdC2QIOyTe9w/pV2qU93YQVgbFVQD1pMTQ==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_4__map_recipient=age1jwuvzyghfer7rx3qtqa4vs0gxyff0sg6pqgmqvp5zlhnpmvrkdlsdha4kx -sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMNWphY0lSbllhK3FQY0h4\nY0taMjlvR0wvZEN6NVlob2pWQTFCV0RxOEU0CkZpa0tUVUt0R29Kc3VHTUVCUnB3\nMG82RVlyY2hLUlhuT1BGMzZGekhvZGsKLS0tIHlpTm1LTFZrV0p1Z2FrTndvbDMv\nQTFEVnhQQW83WEVmYUFpR0hvdzlzVHcKNyUqQeHWMhmmjiNheLKWlvms7abOHTrE\nq/FOOjWXr6z8gWL3UUmr5DUHSQbSOAXkxf3b4eqaFJrqMfnupmjyPg==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_5__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGRS9YOUtVRk94azZTTW1R\ndkpNa3QyODNWYXZVcHhFVXczNlVydTl5VVFZCjFsdGhkcVk0UGhCUjVuMmQ0dWFL\nYkNKWXNlWnViQ08rZmEzUjErcnIvM3cKLS0tIFNaSjFaWDAxTDdkcXE4YVJzWVZB\nVnIwSjZSYk5SY3pkdW9OUjZZUUtYQ1UKUEb/Ln/pVq7btFL+mrJqGnYsv1Qvx/HY\neXDSLWZ6Rz2DKLZ8n0hSpKm9nHQv66LTBhQd91AZCRtVcO53k6SXeg==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_5__map_recipient=age1pgxk292zq30wafwg03gge7hu5dlu3h7yfldp2y8kqekfaljjky7s752uwy -sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDZmlUbXRENVluMWJNTGxZ\nYThVVXZleEJFOHp3ODhkTjBkMS9NUktaQlJRCldMZHhzdXZ2ajVBVk1kZFJFUW5U\nam5XNzBNSXZWdzRndmQybFdrNm4yaXMKLS0tIEdmWXRhSTY5QXFZQkwraGQ0OXVk\nRmZZMDhqdVpVVzNRNEhCVVBvdktMRDAKznV5KQ/crbrNTYaoHFdSV0UBU/Jikci2\nkTG2+yQDSAfqgWyNFAE6VNgYX0wjEsNcWo3p1N1X3eEDJILnr3xK2g==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_6__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBxeVVWQlViVUxIVXpmUUJX\nMmVFTXV5ZmJ0TzA1WU5IYnJicjRBUUZoWWpNCmRXUVA2YzNaY0dXY1FKNEs0aVRO\nNmtqL3lyT2hwdHg0WXpRQ0IvNC9VOU0KLS0tIGFiOFdOd3VrZ1hLcURZU1VzR0Z0\nbDNzd3BnOU4zeS8zK05PRzZ3aHZRNncKKU1NP0eYmZSt0Th5nJNDzzdtqaXv4ivQ\nElClGOYPmC+nbOUfvMpULP7ShqgfhUPSzTUalc1it5LdcM6zP6wbhw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_6__map_recipient=age15fsv503cl9ajfg9fphw45sfq0ytlptnr8wtlt48asytz4ev6rfks2pwt5s -sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBMllib04xT0VXcFRaa3Bz\nZzE0YWN1QWt0bnQxUExjOHJucERub0ZiSkVFCkJoaEtxRWZPYmxnVHJSYjNIMUky\nTUpPTlhDWFVhY0ZqY21RN29pRXlIZmsKLS0tIDdsN25XNEdHNkVNTU95MEdoc2tM\nb1F6b3B2RzhCT3dubk1vMVo3RmJtUjAK4ZgiqaqfhDkGbviKEc3W3phYjdzM+GC9\nQwYfJr5o/RW9h8XvJWog16UnGxGcheo4DtA/HhH7yl9eXkS/N/XzJA==\n-----END AGE ENCRYPTED FILE-----\n +sops_age__list_7__map_enc=-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBRGEvWngxeFZtSk1PdTc1\nZmpzQjJ1N1U0K1BwQ1hVUUR3aXNQSlI4bzBnCjQ0azBmMjQ0ZWpSMEE5cFZBY0Fx\nenQxQ2NyS0Q0U0ZLOERmQVd6MVpvem8KLS0tIE5Kd2ROVEpRN0hha3N5UXUwRS9T\nVUFhNkVJemorQ2J1Y1JNWklmR2Q1cVkK4yKCakmlhXtVxKYqjlyiMJoWYRr1woBH\nw9l2Bo67Gi50o3fm5E3HnfsXY29RBo4avifZmwoBSMa0GCKyPvzviw==\n-----END AGE ENCRYPTED FILE-----\n sops_age__list_7__map_recipient=age14dssfufn8n0n7lcvyxxp4rq7zuf5pv0ek4zl9h7atsy85ceynfvqa0qz59 -sops_lastmodified=2026-04-30T16:03:04Z -sops_mac=ENC[AES256_GCM,data:cnsSe1oYzMh9ivyYYZ0nKkbk2OPPXO6RwvzAJake9i6aTFv/939z7x2XfaVC+i7hyfH2HuAcFK8RakyiCXlrlQYcVtG/gQXRwjshl3AaJe8sn1S1kZJ4M2Yr8tKP8P3H2bnA4ZeAyX+ah87LWh0rMwd522UUQwFxS2Gb9vXjYVo=,iv:V+MWoyzIudWgmqwl0cdVisCwUKJKQEhhPdkOuZaP4zI=,tag:dxL37RTOjqgYIwF+USMKOA==,type:str] +sops_lastmodified=2026-04-30T19:55:53Z +sops_mac=ENC[AES256_GCM,data:2h0PhMongv6jOZU2QrIuz+MYwGFGVo4+OgzzOgfkBvo4EJj9CCuXe3E4kfIfHOiRGoga7WambuMCGrW+KRITEf0tUmya7ssCSQwzdkc5ryYE2RfGabILIzmXtH7TkylcftoJu3lrtZIaE/GloRbhzPLniriYVO7uQFEiY6GyKaA=,iv:eA04R328pNJQA22thQ1an7eLLv72edaq8Sbgz4NYNzA=,tag:UMQdPic51Z+763apbFQSXw==,type:str] sops_unencrypted_suffix=_unencrypted sops_version=3.12.1 From cb77811fd56062d675f4225c9d8b6c3d5fa87182 Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 13 May 2026 13:28:01 +0200 Subject: [PATCH 152/153] fix: disposable --- jobs/src/index.ts | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/jobs/src/index.ts b/jobs/src/index.ts index 7806a021e8..f7d0d7195a 100644 --- a/jobs/src/index.ts +++ b/jobs/src/index.ts @@ -18,30 +18,28 @@ const makeTaskList = (client: typeof clients): TaskList => ({ async function waitForMigrations(connectionString: string, maxAttempts = 60, intervalMs = 3000) { const pool = new pg.Pool({ connectionString, max: 1 }) + const stack = new AsyncDisposableStack() + stack.defer(async () => pool.end()) + + for (let attempt = 1; attempt <= maxAttempts; attempt++) { + try { + const client = await pool.connect() - try { - for (let attempt = 1; attempt <= maxAttempts; attempt++) { try { - const client = await pool.connect() - - try { - await client.query(`SELECT pg_advisory_lock(${ADVISORY_LOCK_ID})`) - await client.query(`SELECT pg_advisory_unlock(${ADVISORY_LOCK_ID})`) - logger.info("migration lock is free, proceeding with worker startup") - return - } finally { - client.release() - } - } catch { - logger.info(`waiting for migrations to complete (${attempt}/${maxAttempts})...`) - await new Promise((r) => setTimeout(r, intervalMs)) + await client.query(`SELECT pg_advisory_lock(${ADVISORY_LOCK_ID})`) + await client.query(`SELECT pg_advisory_unlock(${ADVISORY_LOCK_ID})`) + logger.info("migration lock is free, proceeding with worker startup") + return + } finally { + client.release() } + } catch { + logger.info(`waiting for migrations to complete (${attempt}/${maxAttempts})...`) + await new Promise((r) => setTimeout(r, intervalMs)) } - - logger.warn("timed out waiting for migration lock, starting anyway") - } finally { - await pool.end() } + + logger.warn("timed out waiting for migration lock, starting anyway") } const main = async () => { From 87dd04cc576b700811779a6a675a9a5fdcbc1cbf Mon Sep 17 00:00:00 2001 From: "Thomas F. K. Jorna" Date: Wed, 13 May 2026 13:28:06 +0200 Subject: [PATCH 153/153] fix: merge --- .gitignore | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.gitignore b/.gitignore index 17910f98c9..067acc7fd7 100644 --- a/.gitignore +++ b/.gitignore @@ -72,7 +72,6 @@ storybook-static ./playwright .local_data -<<<<<<< HEAD # infra decrypted env files (encrypted versions are tracked) infra/.env @@ -80,9 +79,6 @@ infra/.env.staging !.env*.enc !.env.example -||||||| 7d07affaa -======= # mock-notify store .notifications.json ->>>>>>> main