diff --git a/.docker-hub/docker-compose.yml b/.docker-hub/docker-compose.yml new file mode 100644 index 0000000000..a907ae2e8f --- /dev/null +++ b/.docker-hub/docker-compose.yml @@ -0,0 +1,28 @@ +services: + frontend-image: + image: ${REGISTRY:-docker.io}/${REPO_OWNER:-ecamp}/ecamp3-frontend:${VERSION:-latest} + build: + context: ../ + dockerfile: .docker-hub/frontend/Dockerfile + # they have to be registered in GitHub under exactly this name in secrets or vars + args: + SENTRY_AUTH_TOKEN: ${SENTRY_AUTH_TOKEN:-} + SENTRY_ORG: ${SENTRY_ORG:-} + SENTRY_FRONTEND_PROJECT: ${SENTRY_FRONTEND_PROJECT:-} + SENTRY_RELEASE_NAME: ${RELEASE_NAME:-} + print-image: + image: ${REGISTRY:-docker.io}/${REPO_OWNER:-ecamp}/ecamp3-print:${VERSION:-latest} + build: + context: ../ + dockerfile: .docker-hub/print/Dockerfile + # they have to be registered in GitHub under exactly this name in secrets or vars + args: + SENTRY_AUTH_TOKEN: ${SENTRY_AUTH_TOKEN:-} + SENTRY_ORG: ${SENTRY_ORG:-} + SENTRY_PRINT_PROJECT: ${SENTRY_PRINT_PROJECT:-} + SENTRY_RELEASE_NAME: ${RELEASE_NAME:-} + varnish-image: + image: ${REGISTRY:-docker.io}/${REPO_OWNER:-ecamp}/ecamp3-varnish:${VERSION:-latest} + build: + context: varnish + dockerfile: Dockerfile diff --git a/.docker-hub/print/Dockerfile b/.docker-hub/print/Dockerfile index d4267b2900..fba848d409 100644 --- a/.docker-hub/print/Dockerfile +++ b/.docker-hub/print/Dockerfile @@ -1,5 +1,5 @@ # build stage -FROM node:24.7.0 AS build-stage +FROM node:24.8.0 AS build-stage ARG SENTRY_AUTH_TOKEN ARG SENTRY_ORG ARG SENTRY_PRINT_PROJECT @@ -22,7 +22,7 @@ COPY print . RUN npm run build # production stage -FROM node:24.7.0 AS production-stage +FROM node:24.8.0 AS production-stage WORKDIR /app COPY --from=build-stage /app/.output ./.output diff --git a/.docker-hub/varnish/Dockerfile b/.docker-hub/varnish/Dockerfile index 0c17b9cb58..5da09f0aa3 100644 --- a/.docker-hub/varnish/Dockerfile +++ b/.docker-hub/varnish/Dockerfile @@ -1,4 +1,4 @@ -ARG VERSION=7.7.3 +ARG VERSION=8.0.0 FROM varnish:${VERSION} diff --git a/.github/actions/setup-helmfile/action.yaml b/.github/actions/setup-helmfile/action.yaml new file mode 100644 index 0000000000..b988198198 --- /dev/null +++ b/.github/actions/setup-helmfile/action.yaml @@ -0,0 +1,13 @@ +name: 'Setup helmfile' +description: 'Sets up helmfile in /usr/local/bin/helmfile' +runs: + using: "composite" + steps: + - name: install helmfile + run: | + curl -L https://github.com/helmfile/helmfile/releases/download/v1.1.3/helmfile_1.1.3_linux_amd64.tar.gz -o helmfile.tar.gz + tar -xvf /tmp/helmfile.tar.gz + mv helmfile /usr/local/bin + chmod +x /usr/local/bin/helmfile + working-directory: /tmp + shell: bash diff --git a/.github/workflows/continuous-integration-optional.yml b/.github/workflows/continuous-integration-optional.yml index bcedc1a3a5..2d5ae1a924 100644 --- a/.github/workflows/continuous-integration-optional.yml +++ b/.github/workflows/continuous-integration-optional.yml @@ -45,7 +45,7 @@ jobs: run: 'echo "dir=$(composer config cache-files-dir)" | tr -d "\n" >> $GITHUB_OUTPUT' working-directory: api - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -75,7 +75,7 @@ jobs: run: 'echo "dir=$(composer config cache-files-dir)" | tr -d "\n" >> $GITHUB_OUTPUT' working-directory: api - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -123,7 +123,7 @@ jobs: run: 'echo "dir=$(composer config cache-files-dir)" | tr -d "\n" >> $GITHUB_OUTPUT' working-directory: api - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -136,5 +136,5 @@ jobs: - run: php bin/console doctrine:migrations:migrate --no-interaction -e test working-directory: api - - run: php bin/console doctrine:schema:validate --skip-sync -e test && php bin/console doctrine:migrations:up-to-date -e test && ! php bin/console doctrine:migrations:diff -e test --namespace DoctrineMigrations + - run: php bin/console doctrine:schema:validate -v -e test working-directory: api diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index df71574d7a..8315e093fb 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -100,7 +100,7 @@ jobs: run: 'echo "dir=$(composer config cache-files-dir)" | tr -d "\n" >> $GITHUB_OUTPUT' working-directory: api - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -124,9 +124,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -153,9 +153,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -182,9 +182,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -214,9 +214,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -274,7 +274,7 @@ jobs: run: 'echo "dir=$(composer config cache-files-dir)" | tr -d "\n" >> $GITHUB_OUTPUT' working-directory: api - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} @@ -353,9 +353,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -396,9 +396,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -435,9 +435,9 @@ jobs: - uses: actions/setup-node@v4 with: - node-version: '24.7.0' + node-version: '24.8.0' - - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: ~/.npm key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} @@ -511,7 +511,7 @@ jobs: if: always() steps: - name: Fail if not all jobs were successful - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | const needs = `${{ toJSON(needs) }}`; diff --git a/.github/workflows/deploy-ecamp3-logging.yml b/.github/workflows/deploy-ecamp3-logging.yml index 2ed8bf7063..2fce94e62a 100644 --- a/.github/workflows/deploy-ecamp3-logging.yml +++ b/.github/workflows/deploy-ecamp3-logging.yml @@ -4,9 +4,17 @@ on: workflow_dispatch: inputs: environment: - description: 'Choose environment' + description: "Choose environment" type: environment required: true + action: + description: "Choose action" + type: choice + required: true + default: diff + options: + - diff + - deploy jobs: deploy-ecamp3-logging: @@ -15,7 +23,7 @@ jobs: environment: ${{ github.event.inputs.environment }} steps: - name: Validate environment - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | if (!"${{ github.event.inputs.environment }}".startsWith("ecamp3-logging")) { @@ -25,39 +33,43 @@ jobs: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 - - name: Dump secrets to .env + - name: Dump secrets to /tmp/secrets.yaml run: | - echo '${{ toJSON(secrets) }}' | jq -r 'keys[] as $k | select(.[$k] |contains("\n") | not) | "\($k)=\"\(.[$k])\""' >> .env - working-directory: .ops/ecamp3-logging + cat << 'EOF' | tee -a /tmp/secrets.yaml + ${{ toJSON(secrets) }} + EOF + jq '.' /tmp/secrets.yaml - - name: Dump variables to .env + - name: Dump variables to /tmp/env.yaml run: | - echo '${{ toJSON(vars) }}' | jq -r 'keys[] as $k | select(.[$k] |contains("\n") | not) | "\($k)=\"\(.[$k])\""' >> .env - working-directory: .ops/ecamp3-logging + cat << 'EOF' | tee -a /tmp/env.yaml + ${{ toJSON(vars) }} + EOF + jq '.' /tmp/env.yaml - - name: Show .env for debugging - run: echo "$(cat .env | sort)" + - name: Merge secrets and variables + run: | + jq -s '.[0] + .[1]' /tmp/secrets.yaml /tmp/env.yaml > env.yaml + jq '.' env.yaml working-directory: .ops/ecamp3-logging - name: Setup helm run: | mkdir ~/.kube && echo '${{ secrets.KUBECONFIG }}' > ~/.kube/config && chmod go-r ~/.kube/config - - name: Add helm repositories - run: | - helm repo add fluent https://fluent.github.io/helm-charts - helm repo update + - uses: ./.github/actions/setup-helmfile - name: Diff deployment run: | ./deploy.sh diff || true working-directory: .ops/ecamp3-logging - - name: Show values.out.yaml - run: cat values.out.yaml + - name: Show values.yaml + run: cat values.yaml working-directory: .ops/ecamp3-logging - name: Deploy + if: ${{ github.event.inputs.action == 'deploy' }} run: | ./deploy.sh deploy working-directory: .ops/ecamp3-logging diff --git a/.github/workflows/deploy-ops-dashboard.yml b/.github/workflows/deploy-ops-dashboard.yml index 7132b9cb2d..da7afa9d98 100644 --- a/.github/workflows/deploy-ops-dashboard.yml +++ b/.github/workflows/deploy-ops-dashboard.yml @@ -16,7 +16,7 @@ jobs: environment: ${{ github.event.inputs.environment }} steps: - name: Validate environment - uses: actions/github-script@v7 + uses: actions/github-script@v8 with: script: | if (!"${{ github.event.inputs.environment }}".startsWith("ops-dashboard")) { diff --git a/.github/workflows/e2e-tests.yml b/.github/workflows/e2e-tests.yml index 65d40525b4..14adbf3ee7 100644 --- a/.github/workflows/e2e-tests.yml +++ b/.github/workflows/e2e-tests.yml @@ -28,7 +28,7 @@ jobs: steps: - name: Create large array - uses: actions/github-script@v7 + uses: actions/github-script@v8 id: array with: script: | diff --git a/.github/workflows/fast-forward.yml b/.github/workflows/fast-forward.yml index 68278cf392..39686a9ff6 100644 --- a/.github/workflows/fast-forward.yml +++ b/.github/workflows/fast-forward.yml @@ -29,7 +29,7 @@ jobs: if: steps.has_permission.outputs.require-result != 'true' run: exit 1 - - uses: actions/github-script@v7 + - uses: actions/github-script@v8 id: current_pr with: github-token: ${{ secrets.FAST_FORWARD_TOKEN }} diff --git a/.github/workflows/reusable-build-and-push.yml b/.github/workflows/reusable-build-and-push.yml index bcb4d9fac7..7e33ecd7dd 100644 --- a/.github/workflows/reusable-build-and-push.yml +++ b/.github/workflows/reusable-build-and-push.yml @@ -1,6 +1,7 @@ -name: '[reusable only] Build images and push to registry' +name: "[reusable only] Build images and push to registry" on: + workflow_dispatch: workflow_call: inputs: tag: @@ -17,14 +18,140 @@ on: required: true SENTRY_AUTH_TOKEN: +env: + DOCKER_BUILDKIT: 1 + COMPOSE_DOCKER_CLI_BUILD: 1 + jobs: + build-info: + runs-on: ubuntu-latest + outputs: + repo-owner: ${{ steps.repo-owner.outputs.result }} + tags: ${{ steps.image-tags.outputs.image-tags }} + build-config: ${{ steps.build-info.outputs.result }} + steps: + #github forces lower case for the image name + - name: Get lowercase repo owner name + uses: actions/github-script@v8 + id: repo-owner + with: + result-encoding: string + script: | + return context.repo.owner.toLowerCase() + + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 + with: + ref: ${{ inputs.sha }} + + - name: Set nightly tag if commit was on main + id: add-nightly-tag + if: startsWith(github.ref, 'refs/heads/devel') + run: | + echo "nightly-tag=nightly" | tr -d "\n" >> $GITHUB_OUTPUT + + - name: Set latest tag if its a tag + id: add-latest-tag + if: startsWith(github.ref, 'refs/tags/') + run: | + echo "latest-tag=latest" | tr -d "\n" >> $GITHUB_OUTPUT + + - uses: actions/github-script@v8 + id: get-tag + if: startsWith(github.ref, 'refs/tags/') + with: + result-encoding: string + script: | + return context.payload.ref.replace('refs/tags/', '') + + - name: concat tags to list + id: image-tags + run: | + TAGS=$(cat <<-END + [ + "${{ inputs.sha || github.sha }}", + "${{ steps.add-nightly-tag.outputs.nightly-tag }}", + "${{ steps.add-latest-tag.outputs.latest-tag }}", + "${{ steps.get-tag.outputs.result }}" + ] + END + ) + TAGS=$(echo $TAGS | jq -c 'map(select(length > 0))') + echo "image-tags=$TAGS" | tr -d "\n" >> $GITHUB_OUTPUT + + - name: Get build info + id: build-info + run: | + set -x + sudo snap install yq + + export REPO_NAME=$(basename $(pwd)) + echo "services:" > /tmp/docker-compose.yml + for i in $(find . -name docker-compose.yml); do + docker compose -f $i config | yq '.services | select(.[].build != null and .[].image != null)' | sed 's/^/ /' >> /tmp/docker-compose.yml + done + + cat /tmp/docker-compose.yml + + yq_pipe='.services' + yq_pipe=$yq_pipe'| to_entries[]' + yq_pipe=$yq_pipe'| select(.value.build != null and .value.image != null)' + yq_pipe=$yq_pipe'| .value.build.image=.value.image' + yq_pipe=$yq_pipe'| .value.build.service=.key' + yq_pipe=$yq_pipe'| .value.build' + yq_pipe=$yq_pipe'| .dockerfile=.context + "/" + .dockerfile' + yq_pipe=$yq_pipe'| [.]' + cat /tmp/docker-compose.yml | yq "$yq_pipe" + BUILD_INFO=$(cat /tmp/docker-compose.yml | yq "$yq_pipe" -o=json) + BUILD_INFO=$(echo $BUILD_INFO | jq -c -s add | sed "s|:local||g") + echo $BUILD_INFO + echo "result=$BUILD_INFO" | tr -d "\n" >> $GITHUB_OUTPUT + env: + REPO_OWNER: ${{ vars.DOCKER_HUB_USERNAME || steps.repo-owner.outputs.result }} + VERSION: local + build-and-push: - name: Build images and push runs-on: ubuntu-latest + name: "Build and push image ${{ matrix.build-config.service }}" + needs: + - build-info + strategy: + fail-fast: false + matrix: + build-config: ${{ fromJSON(needs.build-info.outputs.build-config) }} + env: + tags: ${{ needs.build-info.outputs.tags }} + repo-owner: ${{ needs.build-info.outputs.repo-owner }} steps: - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 with: ref: ${{ inputs.sha }} + fetch-depth: 100 + + - run: | + echo "inputs:" + cat <<-HEREDOC + ${{ toJSON(inputs) }} + HEREDOC + + echo "build config:" + cat <<-HEREDOC + ${{ toJSON(matrix.build-config) }} + HEREDOC + + echo "build tags:" + cat <<-HEREDOC + ${{ env.tags }} + HEREDOC + + echo "build repo owner:" + cat <<-HEREDOC + ${{ env.repo-owner }} + HEREDOC + + if [ ! echo "${{ matrix.build-config.image }}" | grep -Eq '^[a-zA-Z0-9._/-]+$' ]; then + echo "Error: Invalid Docker image name '${{ matrix.build-config.image }}'." + exit 1 + fi - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -32,76 +159,108 @@ jobs: - name: Login to DockerHub uses: docker/login-action@v3 with: - username: ${{ vars.DOCKER_HUB_USERNAME }} + username: ${{ vars.DOCKER_HUB_USERNAME || env.repo-owner }} password: ${{ secrets.DOCKER_HUB_PASSWORD }} - - name: Build and push frontend docker image - uses: docker/build-push-action@v6 - with: - push: true - file: .docker-hub/frontend/Dockerfile - tags: | - ${{ ((inputs.tag != '') && format('{0}/ecamp3-frontend:{1}', vars.DOCKER_HUB_USERNAME, inputs.tag) || '') }} - ${{ vars.DOCKER_HUB_USERNAME }}/ecamp3-frontend:${{ inputs.sha }} - context: . - build-args: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG=${{ vars.SENTRY_ORG }} - SENTRY_FRONTEND_PROJECT=${{ vars.SENTRY_FRONTEND_PROJECT }} - SENTRY_RELEASE_NAME=${{ inputs.sha }} - cache-from: type=gha,scope=frontend - cache-to: type=gha,scope=frontend,mode=max - - - name: Build and push api docker image - uses: docker/build-push-action@v6 + - name: find latest commit for image tag + id: get-latest-commit + run: | + set -x + context=$( echo '${{ toJSON(matrix.build-config) }}' | jq -r '.context' | sed "s|$PWD|.|g") + echo "context: $context" + dockerfile=$( echo '${{ toJSON(matrix.build-config) }}' | jq -r '.dockerfile' | sed "s|$PWD|.|g") + echo "dockerfile: $dockerfile" + git log --stat -n 1 $context $dockerfile + latest_commit=$(git log --pretty=format:"%H" -n 1 $context $dockerfile) + echo "latest_commit: $latest_commit" + echo "result=$latest_commit" | tr -d "\n" >> $GITHUB_OUTPUT + + - name: check if image already exists + id: check-image + run: | + set +e + docker pull ${{ matrix.build-config.image }}:${{ steps.get-latest-commit.outputs.result }} + image_exists=$? + set -e + if ([ $image_exists -eq 0 ]); then + echo "image already exists" + echo "result=true" | tr -d "\n" >> $GITHUB_OUTPUT + else + echo "image does not exist" + echo "result=false" | tr -d "\n" >> $GITHUB_OUTPUT + fi + + - name: Add latest commit to image tag if image does not exist + id: add-latest-commit-to-tags-if-image-does-not-exist + uses: actions/github-script@v8 with: - push: true - file: api/Dockerfile - tags: | - ${{ ((inputs.tag != '') && format('{0}/ecamp3-api:{1}', vars.DOCKER_HUB_USERNAME, inputs.tag) || '') }} - ${{ vars.DOCKER_HUB_USERNAME }}/ecamp3-api:${{ inputs.sha }} - context: './api' - target: frankenphp_prod - cache-from: type=gha,scope=api - cache-to: type=gha,scope=api,mode=max - - - name: Build and push print docker image - uses: docker/build-push-action@v6 + script: | + if (!${{ steps.check-image.outputs.result }}) { + return [...JSON.parse('${{ env.tags }}'), '${{ steps.get-latest-commit.outputs.result }}'] + } + return JSON.parse('${{ env.tags }}') + + - uses: actions/github-script@v8 + id: expand-tags with: - push: true - file: .docker-hub/print/Dockerfile - tags: | - ${{ ((inputs.tag != '') && format('{0}/ecamp3-print:{1}', vars.DOCKER_HUB_USERNAME, inputs.tag) || '') }} - ${{ vars.DOCKER_HUB_USERNAME }}/ecamp3-print:${{ inputs.sha }} - context: . - build-args: | - SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG=${{ vars.SENTRY_ORG }} - SENTRY_PRINT_PROJECT=${{ vars.SENTRY_PRINT_PROJECT }} - SENTRY_RELEASE_NAME=${{ inputs.sha }} - cache-from: type=gha,scope=print - cache-to: type=gha,scope=print,mode=max - - - name: Build and push varnish docker image - uses: docker/build-push-action@v6 + script: | + return JSON.parse('${{ steps.add-latest-commit-to-tags-if-image-does-not-exist.outputs.result }}').map(tag => `${{ matrix.build-config.image }}:${ tag }`) + + - name: populate build args from secrets/vars + if: steps.check-image.outputs.result == 'false' + id: populate-build-args + uses: actions/github-script@v8 with: - push: true - file: .docker-hub/varnish/Dockerfile - tags: | - ${{ ((inputs.tag != '') && format('{0}/ecamp3-varnish:{1}', vars.DOCKER_HUB_USERNAME, inputs.tag) || '') }} - ${{ vars.DOCKER_HUB_USERNAME }}/ecamp3-varnish:${{ inputs.sha }} - context: . - cache-from: type=gha,scope=varnish - cache-to: type=gha,scope=varnish,mode=max - - - name: Build and push db-backup-restore docker image + script: | + const buildArgValues = { + "SENTRY_AUTH_TOKEN" : "${{ secrets.SENTRY_AUTH_TOKEN }}", + "SENTRY_FRONTEND_PROJECT" : "${{ vars.SENTRY_FRONTEND_PROJECT }}", + "SENTRY_ORG" : "${{ vars.SENTRY_ORG }}", + "SENTRY_PRINT_PROJECT" : "${{ vars.SENTRY_PRINT_PROJECT }}", + "SENTRY_RELEASE_NAME" : "${{ inputs.sha }}", + } + const args = JSON.parse(`${{ toJSON(matrix.build-config.args) }}`) + let result = "" + for (const arg in args) { + if (buildArgValues[arg]) { + args[arg] = buildArgValues[arg] + } + } + return args + + - name: transform build args + if: steps.check-image.outputs.result == 'false' + id: transform-build-args + run: | + set -x + echo 'result<> $GITHUB_OUTPUT + echo '${{ steps.populate-build-args.outputs.result }}' | yq -p json >> $GITHUB_OUTPUT + echo 'EOF' >> $GITHUB_OUTPUT + cat $GITHUB_OUTPUT + + - name: debug transform build args output + if: steps.check-image.outputs.result == 'false' + run: | + echo "result: ${{ steps.transform-build-args.outputs.result }}" + echo "result: ${{ toJSON(steps.transform-build-args.outputs) }}" + + - name: Build and push image uses: docker/build-push-action@v6 + if: steps.check-image.outputs.result == 'false' with: push: true - file: .helm/ecamp3/files/db-backup-restore-image/Dockerfile - tags: | - ${{ ((inputs.tag != '') && format('{0}/ecamp3-db-backup-restore:{1}', vars.DOCKER_HUB_USERNAME, inputs.tag) || '') }} - ${{ vars.DOCKER_HUB_USERNAME }}/ecamp3-db-backup-restore:${{ inputs.sha }} - context: . - cache-from: type=gha,scope=db-backup-restore - cache-to: type=gha,scope=db-backup-restore,mode=max + file: ${{ matrix.build-config.dockerfile }} + tags: ${{ join(fromJSON(steps.expand-tags.outputs.result)) }} + context: ${{ matrix.build-config.context }} + build-args: | + ${{ steps.transform-build-args.outputs.result }} + cache-from: type=gha,scope=${{ matrix.build-config.image }} + cache-to: type=gha,scope=${{ matrix.build-config.image }},mode=max + + - name: Retag and push images + if: steps.check-image.outputs.result == 'true' + run: | + for tag in $(echo '${{ env.tags }}' | jq -r '.[]'); do + docker tag ${{ matrix.build-config.image }}:${{ steps.get-latest-commit.outputs.result }} ${{ matrix.build-config.image }}:${tag} + docker push ${{ matrix.build-config.image }}:${tag} + done diff --git a/.github/workflows/reusable-e2e-tests-build.yml b/.github/workflows/reusable-e2e-tests-build.yml index 5500b8a011..a7d34f98e2 100644 --- a/.github/workflows/reusable-e2e-tests-build.yml +++ b/.github/workflows/reusable-e2e-tests-build.yml @@ -25,7 +25,7 @@ jobs: load: true target: frankenphp_prod builder: ${{ steps.buildx.outputs.name }} - tags: ecamp/ecamp3-dev-api + tags: docker.io/ecamp/ecamp3-api:latest cache-from: type=gha,scope=api cache-to: type=gha,scope=api,mode=max outputs: type=docker,dest=/tmp/ecamp3-dev-api.tar diff --git a/.github/workflows/reusable-e2e-tests-run.yml b/.github/workflows/reusable-e2e-tests-run.yml index edfc7e7e34..10e387a6a6 100644 --- a/.github/workflows/reusable-e2e-tests-run.yml +++ b/.github/workflows/reusable-e2e-tests-run.yml @@ -42,7 +42,7 @@ jobs: docker image ls -a --digests - name: Restore cache volumes (npm, composer) - uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4 + uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4 with: path: .cache key: docker-compose-${{ hashFiles('frontend/package-lock.json', 'print/package-lock.json', 'api/composer.lock') }}-${{ matrix.browser }} diff --git a/.helm/ecamp3/files/db-backup-restore-image/Dockerfile b/.helm/ecamp3/files/db-backup-restore-image/Dockerfile index 93eea1b96c..ba98a29e8c 100644 --- a/.helm/ecamp3/files/db-backup-restore-image/Dockerfile +++ b/.helm/ecamp3/files/db-backup-restore-image/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:12.11-slim +FROM debian:12.12-slim ENV DEBIAN_FRONTEND="noninteractive" RUN apt-get update && \ diff --git a/.helm/ecamp3/templates/api_configmap.yaml b/.helm/ecamp3/templates/api_configmap.yaml index 589c51d203..055aa233d9 100644 --- a/.helm/ecamp3/templates/api_configmap.yaml +++ b/.helm/ecamp3/templates/api_configmap.yaml @@ -7,6 +7,9 @@ metadata: {{- include "app.commonLabels" . | nindent 4 }} data: ADDITIONAL_TRUSTED_HOSTS: {{ .Values.domain | quote }} + {{- if not (.Values.api.authenticationTokenTtl | empty) }} + AUTHENTICATION_TOKEN_TTL: {{ .Values.api.authenticationTokenTtl | quote }} + {{- end }} COOKIE_PREFIX: {{ include "api.cookiePrefix" . | quote }} APP_ENV: {{ .Values.api.appEnv | quote }} APP_DEBUG: {{ .Values.api.appDebug | quote }} diff --git a/.helm/ecamp3/values.yaml b/.helm/ecamp3/values.yaml index 58a0342d8f..e36f706d05 100644 --- a/.helm/ecamp3/values.yaml +++ b/.helm/ecamp3/values.yaml @@ -18,6 +18,7 @@ featureToggle: checklist: false # enables checklist feature in frontend api: + authenticationTokenTtl: subpath: "/api" image: repository: "docker.io/ecamp/ecamp3-api" diff --git a/.nvmrc b/.nvmrc index 9df30bb2c3..25649a2b6e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -24.7.0 +24.9.0 diff --git a/.ops/aws-setup/docker-compose.yml b/.ops/aws-setup/docker-compose.yml index 4b4c224b01..88431cd852 100644 --- a/.ops/aws-setup/docker-compose.yml +++ b/.ops/aws-setup/docker-compose.yml @@ -1,6 +1,6 @@ services: aws-setup: - image: pulumi/pulumi-nodejs:3.192.0 + image: pulumi/pulumi-nodejs:3.197.0 container_name: 'ecamp3-aws-setup' volumes: - ../../.prettierrc:/.prettierrc:delegated @@ -13,7 +13,7 @@ services: - AWS_DEFAULT_REGION=eu-west-3 aws-cli: - image: amazon/aws-cli:2.28.21 + image: amazon/aws-cli:2.31.2 container_name: 'ecamp3-aws-cli' volumes: - ./.aws:/root/.aws:delegated diff --git a/.ops/aws-setup/package-lock.json b/.ops/aws-setup/package-lock.json index a6fc45d1c4..c802880ea8 100644 --- a/.ops/aws-setup/package-lock.json +++ b/.ops/aws-setup/package-lock.json @@ -6,39 +6,24 @@ "": { "name": "ecamp-core", "dependencies": { - "@pulumi/aws": "7.6.0", + "@pulumi/aws": "7.7.0", "@pulumi/awsx": "3.0.0", - "@pulumi/pulumi": "3.192.0" + "@pulumi/pulumi": "3.197.0" }, "devDependencies": { - "@babel/eslint-parser": "7.28.0", - "@eslint/compat": "1.3.2", - "@eslint/js": "9.34.0", - "@types/node": "22.18.0", - "eslint": "9.34.0", + "@babel/eslint-parser": "7.28.4", + "@eslint/compat": "1.4.0", + "@eslint/js": "9.36.0", + "@types/node": "22.18.6", + "eslint": "9.36.0", "eslint-config-prettier": "10.1.8", - "eslint-plugin-n": "17.21.3", + "eslint-plugin-n": "17.23.1", "eslint-plugin-prettier": "5.5.4", "eslint-plugin-promise": "7.2.1", - "globals": "16.3.0", + "globals": "16.4.0", "prettier": "3.6.2" } }, - "node_modules/@ampproject/remapping": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", - "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==", - "dev": true, - "license": "Apache-2.0", - "peer": true, - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.5", - "@jridgewell/trace-mapping": "^0.3.24" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/@aws-crypto/sha256-browser": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-5.2.0.tgz", @@ -165,101 +150,100 @@ } }, "node_modules/@aws-sdk/client-ecs": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-ecs/-/client-ecs-3.876.0.tgz", - "integrity": "sha512-FCaf2eKG5E5n7omC4uxR5A/dYiPZVnruJ4w6znnqJh+dFCE/q4v8w10OuzlTSbYoR98TGTlhRkDQscYkxa3VPw==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-ecs/-/client-ecs-3.901.0.tgz", + "integrity": "sha512-D6Aa5XiIFye87bUxD0oGw/kfVS6Jz67fbqLiK8flFdEiNc1JBWkNy4rOhSVWOA79WbWmA9UV9yH9nQzs9o9GWQ==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.876.0", - "@aws-sdk/credential-provider-node": "3.876.0", - "@aws-sdk/middleware-host-header": "3.873.0", - "@aws-sdk/middleware-logger": "3.876.0", - "@aws-sdk/middleware-recursion-detection": "3.873.0", - "@aws-sdk/middleware-user-agent": "3.876.0", - "@aws-sdk/region-config-resolver": "3.873.0", - "@aws-sdk/types": "3.862.0", - "@aws-sdk/util-endpoints": "3.873.0", - "@aws-sdk/util-user-agent-browser": "3.873.0", - "@aws-sdk/util-user-agent-node": "3.876.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", - "@types/uuid": "^9.0.1", - "tslib": "^2.6.2", - "uuid": "^9.0.1" + "@aws-sdk/core": "3.901.0", + "@aws-sdk/credential-provider-node": "3.901.0", + "@aws-sdk/middleware-host-header": "3.901.0", + "@aws-sdk/middleware-logger": "3.901.0", + "@aws-sdk/middleware-recursion-detection": "3.901.0", + "@aws-sdk/middleware-user-agent": "3.901.0", + "@aws-sdk/region-config-resolver": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@aws-sdk/util-endpoints": "3.901.0", + "@aws-sdk/util-user-agent-browser": "3.901.0", + "@aws-sdk/util-user-agent-node": "3.901.0", + "@smithy/config-resolver": "^4.3.0", + "@smithy/core": "^3.14.0", + "@smithy/fetch-http-handler": "^5.3.0", + "@smithy/hash-node": "^4.2.0", + "@smithy/invalid-dependency": "^4.2.0", + "@smithy/middleware-content-length": "^4.2.0", + "@smithy/middleware-endpoint": "^4.3.0", + "@smithy/middleware-retry": "^4.4.0", + "@smithy/middleware-serde": "^4.2.0", + "@smithy/middleware-stack": "^4.2.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/node-http-handler": "^4.3.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", + "@smithy/url-parser": "^4.2.0", + "@smithy/util-base64": "^4.2.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.0", + "@smithy/util-defaults-mode-browser": "^4.2.0", + "@smithy/util-defaults-mode-node": "^4.2.0", + "@smithy/util-endpoints": "^3.2.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-retry": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", + "@smithy/util-waiter": "^4.2.0", + "@smithy/uuid": "^1.1.0", + "tslib": "^2.6.2" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.876.0.tgz", - "integrity": "sha512-Vf0PMF7HVpvllrfPODnBZmlz6kT/y2AvOt1RQG3+qD0VrHWzShc5nwgRZ+yyP3xkKVhZsQ3sJapfZTFnjqMOYA==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.901.0.tgz", + "integrity": "sha512-sGyDjjkJ7ppaE+bAKL/Q5IvVCxtoyBIzN+7+hWTS/mUxWJ9EOq9238IqmVIIK6sYNIzEf9yhobfMARasPYVTNg==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.876.0", - "@aws-sdk/middleware-host-header": "3.873.0", - "@aws-sdk/middleware-logger": "3.876.0", - "@aws-sdk/middleware-recursion-detection": "3.873.0", - "@aws-sdk/middleware-user-agent": "3.876.0", - "@aws-sdk/region-config-resolver": "3.873.0", - "@aws-sdk/types": "3.862.0", - "@aws-sdk/util-endpoints": "3.873.0", - "@aws-sdk/util-user-agent-browser": "3.873.0", - "@aws-sdk/util-user-agent-node": "3.876.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", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/middleware-host-header": "3.901.0", + "@aws-sdk/middleware-logger": "3.901.0", + "@aws-sdk/middleware-recursion-detection": "3.901.0", + "@aws-sdk/middleware-user-agent": "3.901.0", + "@aws-sdk/region-config-resolver": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@aws-sdk/util-endpoints": "3.901.0", + "@aws-sdk/util-user-agent-browser": "3.901.0", + "@aws-sdk/util-user-agent-node": "3.901.0", + "@smithy/config-resolver": "^4.3.0", + "@smithy/core": "^3.14.0", + "@smithy/fetch-http-handler": "^5.3.0", + "@smithy/hash-node": "^4.2.0", + "@smithy/invalid-dependency": "^4.2.0", + "@smithy/middleware-content-length": "^4.2.0", + "@smithy/middleware-endpoint": "^4.3.0", + "@smithy/middleware-retry": "^4.4.0", + "@smithy/middleware-serde": "^4.2.0", + "@smithy/middleware-stack": "^4.2.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/node-http-handler": "^4.3.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", + "@smithy/url-parser": "^4.2.0", + "@smithy/util-base64": "^4.2.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.0", + "@smithy/util-defaults-mode-browser": "^4.2.0", + "@smithy/util-defaults-mode-node": "^4.2.0", + "@smithy/util-endpoints": "^3.2.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-retry": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -267,25 +251,23 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.876.0.tgz", - "integrity": "sha512-sVFBFkdoPOPyY13NaXO1E/R9O5J6ixzHnnRbqrbXYM2QQgLNPTKIiRtmVEuVoFV9YULg+/aKm7caix8m468y9w==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.901.0.tgz", + "integrity": "sha512-brKAc3y64tdhyuEf+OPIUln86bRTqkLgb9xkd6kUdIeA5+qmp/N6amItQz+RN4k4O3kqkCPYnAd3LonTKluobw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@aws-sdk/xml-builder": "3.873.0", - "@smithy/core": "^3.8.0", - "@smithy/node-config-provider": "^4.1.4", - "@smithy/property-provider": "^4.0.5", - "@smithy/protocol-http": "^5.1.3", - "@smithy/signature-v4": "^5.1.3", - "@smithy/smithy-client": "^4.4.10", - "@smithy/types": "^4.3.2", - "@smithy/util-base64": "^4.0.0", - "@smithy/util-body-length-browser": "^4.0.0", - "@smithy/util-middleware": "^4.0.5", - "@smithy/util-utf8": "^4.0.0", - "fast-xml-parser": "5.2.5", + "@aws-sdk/types": "3.901.0", + "@aws-sdk/xml-builder": "3.901.0", + "@smithy/core": "^3.14.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/signature-v4": "^5.3.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", + "@smithy/util-base64": "^4.2.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -293,15 +275,15 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.876.0.tgz", - "integrity": "sha512-cof7lwp2AlrAfRs0pt4W2KMS2VMBvEmpcti1UOFfSJIqkn+cyJliMJ8LHg22GI+kUexjvxdAqSbf3M7OHvEW+w==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.901.0.tgz", + "integrity": "sha512-5hAdVl3tBuARh3zX5MLJ1P/d+Kr5kXtDU3xm1pxUEF4xt2XkEEpwiX5fbkNkz2rbh3BCt2gOHsAbh6b3M7n+DA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@smithy/property-provider": "^4.0.5", - "@smithy/types": "^4.3.2", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -309,20 +291,20 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.876.0.tgz", - "integrity": "sha512-wzmef2NBp2+X1l8D4Q8hx1G8oI3+WdvLdPev9VnVpRYZxYGRWVPl++wvCBsCn/ZL0mdWopPkhHA3kFexQhMzvg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.901.0.tgz", + "integrity": "sha512-Ggr7+0M6QZEsrqRkK7iyJLf4LkIAacAxHz9c4dm9hnDdU7vqrlJm6g73IxMJXWN1bIV7IxfpzB11DsRrB/oNjQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@smithy/fetch-http-handler": "^5.1.1", - "@smithy/node-http-handler": "^4.1.1", - "@smithy/property-provider": "^4.0.5", - "@smithy/protocol-http": "^5.1.3", - "@smithy/smithy-client": "^4.4.10", - "@smithy/types": "^4.3.2", - "@smithy/util-stream": "^4.2.4", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/fetch-http-handler": "^5.3.0", + "@smithy/node-http-handler": "^4.3.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", + "@smithy/util-stream": "^4.4.0", "tslib": "^2.6.2" }, "engines": { @@ -330,23 +312,23 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.876.0.tgz", - "integrity": "sha512-JHbW6fqnJsVjGHCyko7B0NVPT1nEAPxkM3CGjUcVGsHgJBkxOLVCMQqTRyHcDdeHR2qeojlLoOHRz97xIHQjYw==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.901.0.tgz", + "integrity": "sha512-zxadcDS0hNJgv8n4hFYJNOXyfjaNE1vvqIiF/JzZSQpSSYXzCd+WxXef5bQh+W3giDtRUmkvP5JLbamEFjZKyw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@aws-sdk/credential-provider-env": "3.876.0", - "@aws-sdk/credential-provider-http": "3.876.0", - "@aws-sdk/credential-provider-process": "3.876.0", - "@aws-sdk/credential-provider-sso": "3.876.0", - "@aws-sdk/credential-provider-web-identity": "3.876.0", - "@aws-sdk/nested-clients": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@smithy/credential-provider-imds": "^4.0.7", - "@smithy/property-provider": "^4.0.5", - "@smithy/shared-ini-file-loader": "^4.0.5", - "@smithy/types": "^4.3.2", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/credential-provider-env": "3.901.0", + "@aws-sdk/credential-provider-http": "3.901.0", + "@aws-sdk/credential-provider-process": "3.901.0", + "@aws-sdk/credential-provider-sso": "3.901.0", + "@aws-sdk/credential-provider-web-identity": "3.901.0", + "@aws-sdk/nested-clients": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/credential-provider-imds": "^4.2.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -354,22 +336,22 @@ } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.876.0.tgz", - "integrity": "sha512-eHbNt1+Hi43e8ANnwf6toapLSxfMiyGq459y3Uh6i7NBOiWWKEsOVcgOfUC3RCoqeikxovt1tFM2cEElWUIOhg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.901.0.tgz", + "integrity": "sha512-dPuFzMF7L1s/lQyT3wDxqLe82PyTH+5o1jdfseTEln64LJMl0ZMWaKX/C1UFNDxaTd35Cgt1bDbjjAWHMiKSFQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.876.0", - "@aws-sdk/credential-provider-http": "3.876.0", - "@aws-sdk/credential-provider-ini": "3.876.0", - "@aws-sdk/credential-provider-process": "3.876.0", - "@aws-sdk/credential-provider-sso": "3.876.0", - "@aws-sdk/credential-provider-web-identity": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@smithy/credential-provider-imds": "^4.0.7", - "@smithy/property-provider": "^4.0.5", - "@smithy/shared-ini-file-loader": "^4.0.5", - "@smithy/types": "^4.3.2", + "@aws-sdk/credential-provider-env": "3.901.0", + "@aws-sdk/credential-provider-http": "3.901.0", + "@aws-sdk/credential-provider-ini": "3.901.0", + "@aws-sdk/credential-provider-process": "3.901.0", + "@aws-sdk/credential-provider-sso": "3.901.0", + "@aws-sdk/credential-provider-web-identity": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/credential-provider-imds": "^4.2.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -377,16 +359,16 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.876.0.tgz", - "integrity": "sha512-SMX4OlHvspu3gF4hxe7WAnZFhxpiCye+WlBSVoWfW/i9XNhtrZS1JMr29MK34GlCTk9qO7FlRwds/Z5k7xPpHg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.901.0.tgz", + "integrity": "sha512-/IWgmgM3Cl1wTdJA5HqKMAojxLkYchh5kDuphApxKhupLu6Pu0JBOHU8A5GGeFvOycyaVwosod6zDduINZxe+A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@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", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -394,18 +376,18 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.876.0.tgz", - "integrity": "sha512-iP5dz9XqwePbgnh7Bdrq5e1319JpCRKLyomUfHH1XVeXkIHmwIJdmTj1Upeo1J8L/5cLHmhXAN6CTN11bLo8SA==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.901.0.tgz", + "integrity": "sha512-SjmqZQHmqFSET7+6xcZgtH7yEyh5q53LN87GqwYlJZ6KJ5oNw11acUNEhUOL1xTSJEvaWqwTIkS2zqrzLcM9bw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.876.0", - "@aws-sdk/core": "3.876.0", - "@aws-sdk/token-providers": "3.876.0", - "@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", + "@aws-sdk/client-sso": "3.901.0", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/token-providers": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -413,16 +395,17 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.876.0.tgz", - "integrity": "sha512-q/XSCP1uae5aB9veM8zcm6Gqu6A4ckX9ZbhHgCzURXVJDwp+nINW1hM9vppMjGw3ND9Ibx/adR+KfTI0TDMzqw==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.901.0.tgz", + "integrity": "sha512-NYjy/6NLxH9m01+pfpB4ql8QgAorJcu8tw69kzHwUd/ql6wUDTbC7HcXqtKlIwWjzjgj2BKL7j6SyFapgCuafA==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@aws-sdk/nested-clients": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@smithy/property-provider": "^4.0.5", - "@smithy/types": "^4.3.2", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/nested-clients": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -430,14 +413,14 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.873.0.tgz", - "integrity": "sha512-KZ/W1uruWtMOs7D5j3KquOxzCnV79KQW9MjJFZM/M0l6KI8J6V3718MXxFHsTjUE4fpdV6SeCNLV1lwGygsjJA==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.901.0.tgz", + "integrity": "sha512-yWX7GvRmqBtbNnUW7qbre3GvZmyYwU0WHefpZzDTYDoNgatuYq6LgUIQ+z5C04/kCRoFkAFrHag8a3BXqFzq5A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", + "@aws-sdk/types": "3.901.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -445,13 +428,13 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.876.0.tgz", - "integrity": "sha512-cpWJhOuMSyz9oV25Z/CMHCBTgafDCbv7fHR80nlRrPdPZ8ETNsahwRgltXP1QJJ8r3X/c1kwpOR7tc+RabVzNA==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.901.0.tgz", + "integrity": "sha512-UoHebjE7el/tfRo8/CQTj91oNUm+5Heus5/a4ECdmWaSCHCS/hXTsU3PTTHAY67oAQR8wBLFPfp3mMvXjB+L2A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@smithy/types": "^4.3.2", + "@aws-sdk/types": "3.901.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -459,14 +442,15 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.873.0.tgz", - "integrity": "sha512-OtgY8EXOzRdEWR//WfPkA/fXl0+WwE8hq0y9iw2caNyKPtca85dzrrZWnPqyBK/cpImosrpR1iKMYr41XshsCg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.901.0.tgz", + "integrity": "sha512-Wd2t8qa/4OL0v/oDpCHHYkgsXJr8/ttCxrvCKAt0H1zZe2LlRhY9gpDVKqdertfHrHDj786fOvEQA28G1L75Dg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", + "@aws-sdk/types": "3.901.0", + "@aws/lambda-invoke-store": "^0.0.1", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -474,17 +458,17 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.876.0.tgz", - "integrity": "sha512-FR+8INfnbNv32QDQ5szxkWX6mB/QgezfNyx8LnAh1ErISZMmEFBxXXir+ZOfuV8vsmal1a6cy9qmnMNDaNnaNQ==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.901.0.tgz", + "integrity": "sha512-Zby4F03fvD9xAgXGPywyk4bC1jCbnyubMEYChLYohD+x20ULQCf+AimF/Btn7YL+hBpzh1+RmqmvZcx+RgwgNQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@aws-sdk/util-endpoints": "3.873.0", - "@smithy/core": "^3.8.0", - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@aws-sdk/util-endpoints": "3.901.0", + "@smithy/core": "^3.14.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -492,48 +476,48 @@ } }, "node_modules/@aws-sdk/nested-clients": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.876.0.tgz", - "integrity": "sha512-R4TZrkM2gUElTsotk8mt3y7iLG8TNi1LL1wgVdEEWSLOYTaFyglGdoNBMtEeP7lmXilaTy00AbYF6BakJvSTHg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/nested-clients/-/nested-clients-3.901.0.tgz", + "integrity": "sha512-feAAAMsVwctk2Tms40ONybvpfJPLCmSdI+G+OTrNpizkGLNl6ik2Ng2RzxY6UqOfN8abqKP/DOUj1qYDRDG8ag==", "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.876.0", - "@aws-sdk/middleware-host-header": "3.873.0", - "@aws-sdk/middleware-logger": "3.876.0", - "@aws-sdk/middleware-recursion-detection": "3.873.0", - "@aws-sdk/middleware-user-agent": "3.876.0", - "@aws-sdk/region-config-resolver": "3.873.0", - "@aws-sdk/types": "3.862.0", - "@aws-sdk/util-endpoints": "3.873.0", - "@aws-sdk/util-user-agent-browser": "3.873.0", - "@aws-sdk/util-user-agent-node": "3.876.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", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/middleware-host-header": "3.901.0", + "@aws-sdk/middleware-logger": "3.901.0", + "@aws-sdk/middleware-recursion-detection": "3.901.0", + "@aws-sdk/middleware-user-agent": "3.901.0", + "@aws-sdk/region-config-resolver": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@aws-sdk/util-endpoints": "3.901.0", + "@aws-sdk/util-user-agent-browser": "3.901.0", + "@aws-sdk/util-user-agent-node": "3.901.0", + "@smithy/config-resolver": "^4.3.0", + "@smithy/core": "^3.14.0", + "@smithy/fetch-http-handler": "^5.3.0", + "@smithy/hash-node": "^4.2.0", + "@smithy/invalid-dependency": "^4.2.0", + "@smithy/middleware-content-length": "^4.2.0", + "@smithy/middleware-endpoint": "^4.3.0", + "@smithy/middleware-retry": "^4.4.0", + "@smithy/middleware-serde": "^4.2.0", + "@smithy/middleware-stack": "^4.2.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/node-http-handler": "^4.3.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", + "@smithy/url-parser": "^4.2.0", + "@smithy/util-base64": "^4.2.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-body-length-node": "^4.2.0", + "@smithy/util-defaults-mode-browser": "^4.2.0", + "@smithy/util-defaults-mode-node": "^4.2.0", + "@smithy/util-endpoints": "^3.2.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-retry": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -541,16 +525,16 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.873.0.tgz", - "integrity": "sha512-q9sPoef+BBG6PJnc4x60vK/bfVwvRWsPgcoQyIra057S/QGjq5VkjvNk6H8xedf6vnKlXNBwq9BaANBXnldUJg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.901.0.tgz", + "integrity": "sha512-7F0N888qVLHo4CSQOsnkZ4QAp8uHLKJ4v3u09Ly5k4AEStrSlFpckTPyUx6elwGL+fxGjNE2aakK8vEgzzCV0A==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@smithy/node-config-provider": "^4.1.4", - "@smithy/types": "^4.3.2", - "@smithy/util-config-provider": "^4.0.0", - "@smithy/util-middleware": "^4.0.5", + "@aws-sdk/types": "3.901.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/types": "^4.6.0", + "@smithy/util-config-provider": "^4.2.0", + "@smithy/util-middleware": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -558,17 +542,17 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.876.0.tgz", - "integrity": "sha512-iU08kaQbhXnY0CC2TBcr7y/2PqPwZP2CTWX/Rbq0NvhOyteikfh7ASC+bRfLUp0XMSHKvSb+w2dh8a0lvx4oHg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.901.0.tgz", + "integrity": "sha512-pJEr1Ggbc/uVTDqp9IbNu9hdr0eQf3yZix3s4Nnyvmg4xmJSGAlbPC9LrNr5u3CDZoc8Z9CuLrvbP4MwYquNpQ==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.876.0", - "@aws-sdk/nested-clients": "3.876.0", - "@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", + "@aws-sdk/core": "3.901.0", + "@aws-sdk/nested-clients": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -576,12 +560,12 @@ } }, "node_modules/@aws-sdk/types": { - "version": "3.862.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.862.0.tgz", - "integrity": "sha512-Bei+RL0cDxxV+lW2UezLbCYYNeJm6Nzee0TpW0FfyTRBhH9C1XQh4+x+IClriXvgBnRquTMMYsmJfvx8iyLKrg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.901.0.tgz", + "integrity": "sha512-FfEM25hLEs4LoXsLXQ/q6X6L4JmKkKkbVFpKD4mwfVHtRVQG6QxJiCPcrkcPISquiy6esbwK2eh64TWbiD60cg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -589,15 +573,15 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.873.0.tgz", - "integrity": "sha512-YByHrhjxYdjKRf/RQygRK1uh0As1FIi9+jXTcIEX/rBgN8mUByczr2u4QXBzw7ZdbdcOBMOkPnLRjNOWW1MkFg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.901.0.tgz", + "integrity": "sha512-5nZP3hGA8FHEtKvEQf4Aww5QZOkjLW1Z+NixSd+0XKfHvA39Ah5sZboScjLx0C9kti/K3OGW1RCx5K9Zc3bZqg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@smithy/types": "^4.3.2", - "@smithy/url-parser": "^4.0.5", - "@smithy/util-endpoints": "^3.0.7", + "@aws-sdk/types": "3.901.0", + "@smithy/types": "^4.6.0", + "@smithy/url-parser": "^4.2.0", + "@smithy/util-endpoints": "^3.2.0", "tslib": "^2.6.2" }, "engines": { @@ -605,9 +589,9 @@ } }, "node_modules/@aws-sdk/util-locate-window": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.873.0.tgz", - "integrity": "sha512-xcVhZF6svjM5Rj89T1WzkjQmrTF6dpR2UvIHPMTnSZoNe6CixejPZ6f0JJ2kAhO8H+dUHwNBlsUgOTIKiK/Syg==", + "version": "3.893.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.893.0.tgz", + "integrity": "sha512-T89pFfgat6c8nMmpI8eKjBcDcgJq36+m9oiXbcUzeU55MP9ZuGgBomGjGnHaEyF36jenW9gmg3NfZDm0AO2XPg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -617,27 +601,27 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.873.0.tgz", - "integrity": "sha512-AcRdbK6o19yehEcywI43blIBhOCSo6UgyWcuOJX5CFF8k39xm1ILCjQlRRjchLAxWrm0lU0Q7XV90RiMMFMZtA==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.901.0.tgz", + "integrity": "sha512-Ntb6V/WFI21Ed4PDgL/8NSfoZQQf9xzrwNgiwvnxgAl/KvAvRBgQtqj5gHsDX8Nj2YmJuVoHfH9BGjL9VQ4WNg==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.862.0", - "@smithy/types": "^4.3.2", + "@aws-sdk/types": "3.901.0", + "@smithy/types": "^4.6.0", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.876.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.876.0.tgz", - "integrity": "sha512-/ZIaeUt60JBdI0mNc7sZ8v3Tuzp8Pbe4gIAYnppGyF4KV8QA+Yu8tp2bGHfkKn150t1uvQ6P/4CwFfoGF34dzg==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.901.0.tgz", + "integrity": "sha512-l59KQP5TY7vPVUfEURc7P5BJKuNg1RSsAKBQW7LHLECXjLqDUbo2SMLrexLBEoArSt6E8QOrIN0C8z/0Xk0jYw==", "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.876.0", - "@aws-sdk/types": "3.862.0", - "@smithy/node-config-provider": "^4.1.4", - "@smithy/types": "^4.3.2", + "@aws-sdk/middleware-user-agent": "3.901.0", + "@aws-sdk/types": "3.901.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -653,25 +637,34 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.873.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.873.0.tgz", - "integrity": "sha512-kLO7k7cGJ6KaHiExSJWojZurF7SnGMDHXRuQunFnEoD0n1yB6Lqy/S/zHiQ7oJnBhPr9q0TW9qFkrsZb1Uc54w==", + "version": "3.901.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.901.0.tgz", + "integrity": "sha512-pxFCkuAP7Q94wMTNPAwi6hEtNrp/BdFf+HOrIEeFQsk4EoOmpKY3I6S+u6A9Wg295J80Kh74LqDWM22ux3z6Aw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", + "fast-xml-parser": "5.2.5", "tslib": "^2.6.2" }, "engines": { "node": ">=18.0.0" } }, + "node_modules/@aws/lambda-invoke-store": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@aws/lambda-invoke-store/-/lambda-invoke-store-0.0.1.tgz", + "integrity": "sha512-ORHRQ2tmvnBXc8t/X9Z8IcSbBA4xTLKuN873FopzklHMeqBst7YG0d+AX97inkvDX+NChYtSr+qGfcqGFaI8Zw==", + "license": "Apache-2.0", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@babel/code-frame": { "version": "7.27.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz", "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-validator-identifier": "^7.27.1", "js-tokens": "^4.0.0", @@ -682,34 +675,33 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.0.tgz", - "integrity": "sha512-60X7qkglvrap8mn1lh2ebxXdZYtUcpd7gsmy9kLaBJ4i/WdY8PqTSdxyA8qraikqKQK5C1KRBKXqznrVapyNaw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", + "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.3.tgz", - "integrity": "sha512-yDBHV9kQNcr2/sUr9jghVyz9C3Y5G2zUM2H2lo+9mKv4sFgbA8s8Z9t8D1jiTkGoO/NoIfKMyKWr4s6CN23ZwQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz", + "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-compilation-targets": "^7.27.2", "@babel/helper-module-transforms": "^7.28.3", - "@babel/helpers": "^7.28.3", - "@babel/parser": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/traverse": "^7.28.3", - "@babel/types": "^7.28.2", + "@babel/traverse": "^7.28.4", + "@babel/types": "^7.28.4", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -725,9 +717,9 @@ } }, "node_modules/@babel/eslint-parser": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.0.tgz", - "integrity": "sha512-N4ntErOlKvcbTt01rr5wj3y55xnIdx1ymrfIr8C2WnM1Y9glFgWaGDEULJIazOX3XM9NRzhfJ6zZnQ1sBNWU+w==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.28.4.tgz", + "integrity": "sha512-Aa+yDiH87980jR6zvRfFuCR1+dLb00vBydhTL+zI992Rz/wQhSvuxjmOOuJOgO3XmakO6RykRGD2S1mq1AtgHA==", "dev": true, "license": "MIT", "dependencies": { @@ -749,7 +741,6 @@ "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/parser": "^7.28.3", "@babel/types": "^7.28.2", @@ -767,7 +758,6 @@ "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/compat-data": "^7.27.2", "@babel/helper-validator-option": "^7.27.1", @@ -785,7 +775,6 @@ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -796,7 +785,6 @@ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/traverse": "^7.27.1", "@babel/types": "^7.27.1" @@ -811,7 +799,6 @@ "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-module-imports": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1", @@ -830,7 +817,6 @@ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -841,7 +827,6 @@ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -852,35 +837,32 @@ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.3.tgz", - "integrity": "sha512-PTNtvUQihsAsDHMOP5pfobP8C6CM4JWXmP8DrEIt46c3r2bf87Ua1zoqevsMo9g+tWDwgWrFP5EIxuBx5RudAw==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.3.tgz", - "integrity": "sha512-7+Ey1mAgYqFAx2h0RuoxcQT5+MlG3GTV0TQrgr7/ZliKsm/MNDxVVutlWaziMq7wJNAz8MTqz55XLpWvva6StA==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz", + "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { - "@babel/types": "^7.28.2" + "@babel/types": "^7.28.4" }, "bin": { "parser": "bin/babel-parser.js" @@ -895,7 +877,6 @@ "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/parser": "^7.27.2", @@ -906,19 +887,18 @@ } }, "node_modules/@babel/traverse": { - "version": "7.28.3", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.3.tgz", - "integrity": "sha512-7w4kZYHneL3A6NP2nxzHvT3HCZ7puDZZjFMqDpBPECub79sTtSO5CGXDkKrTQq8ksAwfD/XI2MRFX23njdDaIQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz", + "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.28.3", + "@babel/parser": "^7.28.4", "@babel/template": "^7.27.2", - "@babel/types": "^7.28.2", + "@babel/types": "^7.28.4", "debug": "^4.3.1" }, "engines": { @@ -926,12 +906,11 @@ } }, "node_modules/@babel/types": { - "version": "7.28.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.2.tgz", - "integrity": "sha512-ruv7Ae4J5dUYULmeXw1gmb7rYRz57OWCPM57pHojnLq/3Z1CK2lNSLTCVjxVk1F/TZHwOZZrOWi0ur95BbLxNQ==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz", + "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.27.1" @@ -941,9 +920,9 @@ } }, "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "dev": true, "license": "MIT", "dependencies": { @@ -983,11 +962,14 @@ } }, "node_modules/@eslint/compat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.3.2.tgz", - "integrity": "sha512-jRNwzTbd6p2Rw4sZ1CgWRS8YMtqG15YyZf7zvb6gY2rB2u6n+2Z+ELW0GtL0fQgyl0pr4Y/BzBfng/BdsereRA==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@eslint/compat/-/compat-1.4.0.tgz", + "integrity": "sha512-DEzm5dKeDBPm3r08Ixli/0cmxr8LkRdwxMRUIJBlSCpAwSrvFEJpVBzV+66JhDxiaqKxnRzCXhtiMiczF7Hglg==", "dev": true, "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.16.0" + }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -1050,9 +1032,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz", + "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1144,9 +1126,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.34.0.tgz", - "integrity": "sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw==", + "version": "9.36.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.36.0.tgz", + "integrity": "sha512-uhCbYtYynH30iZErszX78U+nR3pJU3RHGQ57NXy5QupD4SBVwDeU8TNBy+MjMngc1UyIW9noKqsRqfjQTBU2dw==", "dev": true, "license": "MIT", "engines": { @@ -1180,13 +1162,26 @@ "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, + "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@grpc/grpc-js": { - "version": "1.13.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.13.4.tgz", - "integrity": "sha512-GsFaMXCkMqkKIvwCQjCrwH+GHbPKBjhwo/8ZuUkWHqbI73Kky9I+pQltrlT0+MWpedCoosda53lgjYfyEPgxBg==", + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.0.tgz", + "integrity": "sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==", "license": "Apache-2.0", "dependencies": { - "@grpc/proto-loader": "^0.7.13", + "@grpc/proto-loader": "^0.8.0", "@js-sdsl/ordered-map": "^4.4.2" }, "engines": { @@ -1194,14 +1189,14 @@ } }, "node_modules/@grpc/proto-loader": { - "version": "0.7.15", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.7.15.tgz", - "integrity": "sha512-tMXdRCfYVixjuFK+Hk0Q1s38gV9zDiDJfWL3h1rv4Qc39oILCu1TRTDt7+fGUI8K4G1Fj125Hx/ru3azECWTyQ==", + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz", + "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==", "license": "Apache-2.0", "dependencies": { "lodash.camelcase": "^4.3.0", "long": "^5.0.0", - "protobufjs": "^7.2.5", + "protobufjs": "^7.5.3", "yargs": "^17.7.2" }, "bin": { @@ -1222,33 +1217,19 @@ } }, "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" + "@humanwhocodes/retry": "^0.4.0" }, "engines": { "node": ">=18.18.0" } }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, "node_modules/@humanwhocodes/module-importer": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", @@ -1306,19 +1287,28 @@ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", "@jridgewell/trace-mapping": "^0.3.24" } }, + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.0.0" } @@ -1328,16 +1318,14 @@ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.30", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.30.tgz", - "integrity": "sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==", + "version": "0.3.31", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" @@ -1694,6 +1682,7 @@ "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.9.0.tgz", "integrity": "sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==", "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=8.0.0" } @@ -2004,9 +1993,9 @@ "license": "BSD-3-Clause" }, "node_modules/@pulumi/aws": { - "version": "7.6.0", - "resolved": "https://registry.npmjs.org/@pulumi/aws/-/aws-7.6.0.tgz", - "integrity": "sha512-TE2/Q8XXucIyPhqU/Bv0w9tTpjDVThNI203TA4RbU7CfRWMvg6H5gBrJIQmuu7fIZYT8pXCbgpcxiH7Iap5wnA==", + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/@pulumi/aws/-/aws-7.7.0.tgz", + "integrity": "sha512-YcILX9dVHSWEReRKe9nLCKwH9QTZ2N8GgqQcFbF7aReKMa4wwWeohCkWCL9Y5hEo3ZVXLICxFS1vY8WVmdxEqQ==", "license": "Apache-2.0", "dependencies": { "@pulumi/pulumi": "^3.142.0", @@ -2030,9 +2019,9 @@ } }, "node_modules/@pulumi/docker": { - "version": "4.8.2", - "resolved": "https://registry.npmjs.org/@pulumi/docker/-/docker-4.8.2.tgz", - "integrity": "sha512-98PF3IlCR3t2+PKA/ExgO4x0vUiEhkScpNaClFJ8Qr1v5NEx167kJooVcduLvAG8ZaWPI/jwIyyH+TdMp6GOig==", + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/@pulumi/docker/-/docker-4.9.0.tgz", + "integrity": "sha512-Iw5WQClre7j32oQmo3ObmHKAab0y/7Pf0hmQvcGCiBgb7X20uW3XMKV8OAFjk7/5tdyYHd1LK6s6H882IT0Bvw==", "license": "Apache-2.0", "dependencies": { "@pulumi/pulumi": "^3.142.0", @@ -2059,9 +2048,9 @@ } }, "node_modules/@pulumi/pulumi": { - "version": "3.192.0", - "resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-3.192.0.tgz", - "integrity": "sha512-D6UdSBTP4SeNRdgoAMnpyCOECkM0e6KG9Sw3E7oBWmyK3swgNrFQ6Nygym/mNI8MbsAh+KOw6QtjC298lbwk8Q==", + "version": "3.197.0", + "resolved": "https://registry.npmjs.org/@pulumi/pulumi/-/pulumi-3.197.0.tgz", + "integrity": "sha512-Pfjg6sluGDw11crvmI8wbi5k4YDBTxZBM1aI7h5Gd2a4DUyVhrSMUE2fFd1XN05wQKEDisahsygBbBZO0lg2zw==", "license": "Apache-2.0", "dependencies": { "@grpc/grpc-js": "^1.10.1", @@ -2208,12 +2197,12 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.0.5.tgz", - "integrity": "sha512-jcrqdTQurIrBbUm4W2YdLVMQDoL0sA9DTxYd2s+R/y+2U9NLOP7Xf/YqfSg1FZhlZIYEnvk2mwbyvIfdLEPo8g==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-4.2.0.tgz", + "integrity": "sha512-PLUYa+SUKOEZtXFURBu/CNxlsxfaFGxSBPcStL13KpVeVWIfdezWyDqkz7iDLmwnxojXD0s5KzuB5HGHvt4Aeg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2221,15 +2210,15 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.1.5.tgz", - "integrity": "sha512-viuHMxBAqydkB0AfWwHIdwf/PRH2z5KHGUzqyRtS/Wv+n3IHI993Sk76VCA7dD/+GzgGOmlJDITfPcJC1nIVIw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-4.3.0.tgz", + "integrity": "sha512-9oH+n8AVNiLPK/iK/agOsoWfrKZ3FGP3502tkksd6SRsKMYiu7AFX0YXo6YBADdsAj7C+G/aLKdsafIJHxuCkQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.4", - "@smithy/types": "^4.3.2", - "@smithy/util-config-provider": "^4.0.0", - "@smithy/util-middleware": "^4.0.5", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/types": "^4.6.0", + "@smithy/util-config-provider": "^4.2.0", + "@smithy/util-middleware": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2237,37 +2226,36 @@ } }, "node_modules/@smithy/core": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.8.0.tgz", - "integrity": "sha512-EYqsIYJmkR1VhVE9pccnk353xhs+lB6btdutJEtsp7R055haMJp2yE16eSxw8fv+G0WUY6vqxyYOP8kOqawxYQ==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-3.14.0.tgz", + "integrity": "sha512-XJ4z5FxvY/t0Dibms/+gLJrI5niRoY0BCmE02fwmPcRYFPI4KI876xaE79YGWIKnEslMbuQPsIEsoU/DXa0DoA==", "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^4.0.9", - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", - "@smithy/util-base64": "^4.0.0", - "@smithy/util-body-length-browser": "^4.0.0", - "@smithy/util-middleware": "^4.0.5", - "@smithy/util-stream": "^4.2.4", - "@smithy/util-utf8": "^4.0.0", - "@types/uuid": "^9.0.1", - "tslib": "^2.6.2", - "uuid": "^9.0.1" + "@smithy/middleware-serde": "^4.2.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", + "@smithy/util-base64": "^4.2.0", + "@smithy/util-body-length-browser": "^4.2.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-stream": "^4.4.0", + "@smithy/util-utf8": "^4.2.0", + "@smithy/uuid": "^1.1.0", + "tslib": "^2.6.2" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@smithy/credential-provider-imds": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.0.7.tgz", - "integrity": "sha512-dDzrMXA8d8riFNiPvytxn0mNwR4B3h8lgrQ5UjAGu6T9z/kRg/Xncf4tEQHE/+t25sY8IH3CowcmWi+1U5B1Gw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-4.2.0.tgz", + "integrity": "sha512-SOhFVvFH4D5HJZytb0bLKxCrSnwcqPiNlrw+S4ZXjMnsC+o9JcUQzbZOEQcA8yv9wJFNhfsUiIUKiEnYL68Big==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.4", - "@smithy/property-provider": "^4.0.5", - "@smithy/types": "^4.3.2", - "@smithy/url-parser": "^4.0.5", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/types": "^4.6.0", + "@smithy/url-parser": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2275,15 +2263,15 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.1.1.tgz", - "integrity": "sha512-61WjM0PWmZJR+SnmzaKI7t7G0UkkNFboDpzIdzSoy7TByUzlxo18Qlh9s71qug4AY4hlH/CwXdubMtkcNEb/sQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-5.3.0.tgz", + "integrity": "sha512-BG3KSmsx9A//KyIfw+sqNmWFr1YBUr+TwpxFT7yPqAk0yyDh7oSNgzfNH7pS6OC099EGx2ltOULvumCFe8bcgw==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.1.3", - "@smithy/querystring-builder": "^4.0.5", - "@smithy/types": "^4.3.2", - "@smithy/util-base64": "^4.0.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/querystring-builder": "^4.2.0", + "@smithy/types": "^4.6.0", + "@smithy/util-base64": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2291,14 +2279,14 @@ } }, "node_modules/@smithy/hash-node": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.0.5.tgz", - "integrity": "sha512-cv1HHkKhpyRb6ahD8Vcfb2Hgz67vNIXEp2vnhzfxLFGRukLCNEA5QdsorbUEzXma1Rco0u3rx5VTqbM06GcZqQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-4.2.0.tgz", + "integrity": "sha512-ugv93gOhZGysTctZh9qdgng8B+xO0cj+zN0qAZ+Sgh7qTQGPOJbMdIuyP89KNfUyfAqFSNh5tMvC+h2uCpmTtA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", - "@smithy/util-buffer-from": "^4.0.0", - "@smithy/util-utf8": "^4.0.0", + "@smithy/types": "^4.6.0", + "@smithy/util-buffer-from": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2306,12 +2294,12 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.0.5.tgz", - "integrity": "sha512-IVnb78Qtf7EJpoEVo7qJ8BEXQwgC4n3igeJNNKEj/MLYtapnx8A67Zt/J3RXAj2xSO1910zk0LdFiygSemuLow==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-4.2.0.tgz", + "integrity": "sha512-ZmK5X5fUPAbtvRcUPtk28aqIClVhbfcmfoS4M7UQBTnDdrNxhsrxYVv0ZEl5NaPSyExsPWqL4GsPlRvtlwg+2A==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2319,9 +2307,9 @@ } }, "node_modules/@smithy/is-array-buffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.0.0.tgz", - "integrity": "sha512-saYhF8ZZNoJDTvJBEWgeBccCg+yvp1CX+ed12yORU3NilJScfc6gfch2oVb4QgxZrGUx3/ZJlb+c/dJbyupxlw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-4.2.0.tgz", + "integrity": "sha512-DZZZBvC7sjcYh4MazJSGiWMI2L7E0oCiRHREDzIxi/M2LY79/21iXt6aPLHge82wi5LsuRF5A06Ds3+0mlh6CQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2331,13 +2319,13 @@ } }, "node_modules/@smithy/middleware-content-length": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.0.5.tgz", - "integrity": "sha512-l1jlNZoYzoCC7p0zCtBDE5OBXZ95yMKlRlftooE5jPWQn4YBPLgsp+oeHp7iMHaTGoUdFqmHOPa8c9G3gBsRpQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-4.2.0.tgz", + "integrity": "sha512-6ZAnwrXFecrA4kIDOcz6aLBhU5ih2is2NdcZtobBDSdSHtE9a+MThB5uqyK4XXesdOCvOcbCm2IGB95birTSOQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2345,18 +2333,18 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.1.18.tgz", - "integrity": "sha512-ZhvqcVRPZxnZlokcPaTwb+r+h4yOIOCJmx0v2d1bpVlmP465g3qpVSf7wxcq5zZdu4jb0H4yIMxuPwDJSQc3MQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-4.3.0.tgz", + "integrity": "sha512-jFVjuQeV8TkxaRlcCNg0GFVgg98tscsmIrIwRFeC74TIUyLE3jmY9xgc1WXrPQYRjQNK3aRoaIk6fhFRGOIoGw==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.8.0", - "@smithy/middleware-serde": "^4.0.9", - "@smithy/node-config-provider": "^4.1.4", - "@smithy/shared-ini-file-loader": "^4.0.5", - "@smithy/types": "^4.3.2", - "@smithy/url-parser": "^4.0.5", - "@smithy/util-middleware": "^4.0.5", + "@smithy/core": "^3.14.0", + "@smithy/middleware-serde": "^4.2.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", + "@smithy/url-parser": "^4.2.0", + "@smithy/util-middleware": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2364,34 +2352,33 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "4.1.19", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.1.19.tgz", - "integrity": "sha512-X58zx/NVECjeuUB6A8HBu4bhx72EoUz+T5jTMIyeNKx2lf+Gs9TmWPNNkH+5QF0COjpInP/xSpJGJ7xEnAklQQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-4.4.0.tgz", + "integrity": "sha512-yaVBR0vQnOnzex45zZ8ZrPzUnX73eUC8kVFaAAbn04+6V7lPtxn56vZEBBAhgS/eqD6Zm86o6sJs6FuQVoX5qg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.4", - "@smithy/protocol-http": "^5.1.3", - "@smithy/service-error-classification": "^4.0.7", - "@smithy/smithy-client": "^4.4.10", - "@smithy/types": "^4.3.2", - "@smithy/util-middleware": "^4.0.5", - "@smithy/util-retry": "^4.0.7", - "@types/uuid": "^9.0.1", - "tslib": "^2.6.2", - "uuid": "^9.0.1" + "@smithy/node-config-provider": "^4.3.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/service-error-classification": "^4.2.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-retry": "^4.2.0", + "@smithy/uuid": "^1.1.0", + "tslib": "^2.6.2" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@smithy/middleware-serde": { - "version": "4.0.9", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.0.9.tgz", - "integrity": "sha512-uAFFR4dpeoJPGz8x9mhxp+RPjo5wW0QEEIPPPbLXiRRWeCATf/Km3gKIVR5vaP8bN1kgsPhcEeh+IZvUlBv6Xg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-4.2.0.tgz", + "integrity": "sha512-rpTQ7D65/EAbC6VydXlxjvbifTf4IH+sADKg6JmAvhkflJO2NvDeyU9qsWUNBelJiQFcXKejUHWRSdmpJmEmiw==", "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2399,12 +2386,12 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.0.5.tgz", - "integrity": "sha512-/yoHDXZPh3ocRVyeWQFvC44u8seu3eYzZRveCMfgMOBcNKnAmOvjbL9+Cp5XKSIi9iYA9PECUuW2teDAk8T+OQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-4.2.0.tgz", + "integrity": "sha512-G5CJ//eqRd9OARrQu9MK1H8fNm2sMtqFh6j8/rPozhEL+Dokpvi1Og+aCixTuwDAGZUkJPk6hJT5jchbk/WCyg==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2412,14 +2399,14 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.1.4.tgz", - "integrity": "sha512-+UDQV/k42jLEPPHSn39l0Bmc4sB1xtdI9Gd47fzo/0PbXzJ7ylgaOByVjF5EeQIumkepnrJyfx86dPa9p47Y+w==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-4.3.0.tgz", + "integrity": "sha512-5QgHNuWdT9j9GwMPPJCKxy2KDxZ3E5l4M3/5TatSZrqYVoEiqQrDfAq8I6KWZw7RZOHtVtCzEPdYz7rHZixwcA==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.0.5", - "@smithy/shared-ini-file-loader": "^4.0.5", - "@smithy/types": "^4.3.2", + "@smithy/property-provider": "^4.2.0", + "@smithy/shared-ini-file-loader": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2427,15 +2414,15 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.1.1.tgz", - "integrity": "sha512-RHnlHqFpoVdjSPPiYy/t40Zovf3BBHc2oemgD7VsVTFFZrU5erFFe0n52OANZZ/5sbshgD93sOh5r6I35Xmpaw==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-4.3.0.tgz", + "integrity": "sha512-RHZ/uWCmSNZ8cneoWEVsVwMZBKy/8123hEpm57vgGXA3Irf/Ja4v9TVshHK2ML5/IqzAZn0WhINHOP9xl+Qy6Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.0.5", - "@smithy/protocol-http": "^5.1.3", - "@smithy/querystring-builder": "^4.0.5", - "@smithy/types": "^4.3.2", + "@smithy/abort-controller": "^4.2.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/querystring-builder": "^4.2.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2443,12 +2430,12 @@ } }, "node_modules/@smithy/property-provider": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.0.5.tgz", - "integrity": "sha512-R/bswf59T/n9ZgfgUICAZoWYKBHcsVDurAGX88zsiUtOTA/xUAPyiT+qkNCPwFn43pZqN84M4MiUsbSGQmgFIQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-4.2.0.tgz", + "integrity": "sha512-rV6wFre0BU6n/tx2Ztn5LdvEdNZ2FasQbPQmDOPfV9QQyDmsCkOAB0osQjotRCQg+nSKFmINhyda0D3AnjSBJw==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2456,12 +2443,12 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.1.3.tgz", - "integrity": "sha512-fCJd2ZR7D22XhDY0l+92pUag/7je2BztPRQ01gU5bMChcyI0rlly7QFibnYHzcxDvccMjlpM/Q1ev8ceRIb48w==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-5.3.0.tgz", + "integrity": "sha512-6POSYlmDnsLKb7r1D3SVm7RaYW6H1vcNcTWGWrF7s9+2noNYvUsm7E4tz5ZQ9HXPmKn6Hb67pBDRIjrT4w/d7Q==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2469,13 +2456,13 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.0.5.tgz", - "integrity": "sha512-NJeSCU57piZ56c+/wY+AbAw6rxCCAOZLCIniRE7wqvndqxcKKDOXzwWjrY7wGKEISfhL9gBbAaWWgHsUGedk+A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-4.2.0.tgz", + "integrity": "sha512-Q4oFD0ZmI8yJkiPPeGUITZj++4HHYCW3pYBYfIobUCkYpI6mbkzmG1MAQQ3lJYYWj3iNqfzOenUZu+jqdPQ16A==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", - "@smithy/util-uri-escape": "^4.0.0", + "@smithy/types": "^4.6.0", + "@smithy/util-uri-escape": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2483,12 +2470,12 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.0.5.tgz", - "integrity": "sha512-6SV7md2CzNG/WUeTjVe6Dj8noH32r4MnUeFKZrnVYsQxpGSIcphAanQMayi8jJLZAWm6pdM9ZXvKCpWOsIGg0w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-4.2.0.tgz", + "integrity": "sha512-BjATSNNyvVbQxOOlKse0b0pSezTWGMvA87SvoFoFlkRsKXVsN3bEtjCxvsNXJXfnAzlWFPaT9DmhWy1vn0sNEA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2496,24 +2483,24 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.0.7.tgz", - "integrity": "sha512-XvRHOipqpwNhEjDf2L5gJowZEm5nsxC16pAZOeEcsygdjv9A2jdOh3YoDQvOXBGTsaJk6mNWtzWalOB9976Wlg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-4.2.0.tgz", + "integrity": "sha512-Ylv1ttUeKatpR0wEOMnHf1hXMktPUMObDClSWl2TpCVT4DwtJhCeighLzSLbgH3jr5pBNM0LDXT5yYxUvZ9WpA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2" + "@smithy/types": "^4.6.0" }, "engines": { "node": ">=18.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.0.5.tgz", - "integrity": "sha512-YVVwehRDuehgoXdEL4r1tAAzdaDgaC9EQvhK0lEbfnbrd0bd5+CTQumbdPryX3J2shT7ZqQE+jPW4lmNBAB8JQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-4.3.0.tgz", + "integrity": "sha512-VCUPPtNs+rKWlqqntX0CbVvWyjhmX30JCtzO+s5dlzzxrvSfRh5SY0yxnkirvc1c80vdKQttahL71a9EsdolSQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2521,18 +2508,18 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.1.3.tgz", - "integrity": "sha512-mARDSXSEgllNzMw6N+mC+r1AQlEBO3meEAkR/UlfAgnMzJUB3goRBWgip1EAMG99wh36MDqzo86SfIX5Y+VEaw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-5.3.0.tgz", + "integrity": "sha512-MKNyhXEs99xAZaFhm88h+3/V+tCRDQ+PrDzRqL0xdDpq4gjxcMmf5rBA3YXgqZqMZ/XwemZEurCBQMfxZOWq/g==", "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^4.0.0", - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", - "@smithy/util-hex-encoding": "^4.0.0", - "@smithy/util-middleware": "^4.0.5", - "@smithy/util-uri-escape": "^4.0.0", - "@smithy/util-utf8": "^4.0.0", + "@smithy/is-array-buffer": "^4.2.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", + "@smithy/util-hex-encoding": "^4.2.0", + "@smithy/util-middleware": "^4.2.0", + "@smithy/util-uri-escape": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2540,17 +2527,17 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "4.4.10", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.4.10.tgz", - "integrity": "sha512-iW6HjXqN0oPtRS0NK/zzZ4zZeGESIFcxj2FkWed3mcK8jdSdHzvnCKXSjvewESKAgGKAbJRA+OsaqKhkdYRbQQ==", + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-4.7.0.tgz", + "integrity": "sha512-3BDx/aCCPf+kkinYf5QQhdQ9UAGihgOVqI3QO5xQfSaIWvUE4KYLtiGRWsNe1SR7ijXC0QEPqofVp5Sb0zC8xQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^3.8.0", - "@smithy/middleware-endpoint": "^4.1.18", - "@smithy/middleware-stack": "^4.0.5", - "@smithy/protocol-http": "^5.1.3", - "@smithy/types": "^4.3.2", - "@smithy/util-stream": "^4.2.4", + "@smithy/core": "^3.14.0", + "@smithy/middleware-endpoint": "^4.3.0", + "@smithy/middleware-stack": "^4.2.0", + "@smithy/protocol-http": "^5.3.0", + "@smithy/types": "^4.6.0", + "@smithy/util-stream": "^4.4.0", "tslib": "^2.6.2" }, "engines": { @@ -2558,9 +2545,9 @@ } }, "node_modules/@smithy/types": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.3.2.tgz", - "integrity": "sha512-QO4zghLxiQ5W9UZmX2Lo0nta2PuE1sSrXUYDoaB6HMR762C0P7v/HEPHf6ZdglTVssJG1bsrSBxdc3quvDSihw==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-4.6.0.tgz", + "integrity": "sha512-4lI9C8NzRPOv66FaY1LL1O/0v0aLVrq/mXP/keUa9mJOApEeae43LsLd2kZRUJw91gxOQfLIrV3OvqPgWz1YsA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2570,13 +2557,13 @@ } }, "node_modules/@smithy/url-parser": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.0.5.tgz", - "integrity": "sha512-j+733Um7f1/DXjYhCbvNXABV53NyCRRA54C7bNEIxNPs0YjfRxeMKjjgm2jvTYrciZyCjsicHwQ6Q0ylo+NAUw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-4.2.0.tgz", + "integrity": "sha512-AlBmD6Idav2ugmoAL6UtR6ItS7jU5h5RNqLMZC7QrLCoITA9NzIN3nx9GWi8g4z1pfWh2r9r96SX/jHiNwPJ9A==", "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^4.0.5", - "@smithy/types": "^4.3.2", + "@smithy/querystring-parser": "^4.2.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2584,13 +2571,13 @@ } }, "node_modules/@smithy/util-base64": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.0.0.tgz", - "integrity": "sha512-CvHfCmO2mchox9kjrtzoHkWHxjHZzaFojLc8quxXY7WAAMAg43nuxwv95tATVgQFNDwd4M9S1qFzj40Ul41Kmg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-4.2.0.tgz", + "integrity": "sha512-+erInz8WDv5KPe7xCsJCp+1WCjSbah9gWcmUXc9NqmhyPx59tf7jqFz+za1tRG1Y5KM1Cy1rWCcGypylFp4mvA==", "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^4.0.0", - "@smithy/util-utf8": "^4.0.0", + "@smithy/util-buffer-from": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2598,9 +2585,9 @@ } }, "node_modules/@smithy/util-body-length-browser": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.0.0.tgz", - "integrity": "sha512-sNi3DL0/k64/LO3A256M+m3CDdG6V7WKWHdAiBBMUN8S3hK3aMPhwnPik2A/a2ONN+9doY9UxaLfgqsIRg69QA==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-4.2.0.tgz", + "integrity": "sha512-Fkoh/I76szMKJnBXWPdFkQJl2r9SjPt3cMzLdOB6eJ4Pnpas8hVoWPYemX/peO0yrrvldgCUVJqOAjUrOLjbxg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2610,9 +2597,9 @@ } }, "node_modules/@smithy/util-body-length-node": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.0.0.tgz", - "integrity": "sha512-q0iDP3VsZzqJyje8xJWEJCNIu3lktUGVoSy1KB0UWym2CL1siV3artm+u1DFYTLejpsrdGyCSWBdGNjJzfDPjg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-4.2.0.tgz", + "integrity": "sha512-U8q1WsSZFjXijlD7a4wsDQOvOwV+72iHSfq1q7VD+V75xP/pdtm0WIGuaFJ3gcADDOKj2MIBn4+zisi140HEnQ==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2622,12 +2609,12 @@ } }, "node_modules/@smithy/util-buffer-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.0.0.tgz", - "integrity": "sha512-9TOQ7781sZvddgO8nxueKi3+yGvkY35kotA0Y6BWRajAv8jjmigQ1sBwz0UX47pQMYXJPahSKEKYFgt+rXdcug==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-4.2.0.tgz", + "integrity": "sha512-kAY9hTKulTNevM2nlRtxAG2FQ3B2OR6QIrPY3zE5LqJy1oxzmgBGsHLWTcNhWXKchgA0WHW+mZkQrng/pgcCew==", "license": "Apache-2.0", "dependencies": { - "@smithy/is-array-buffer": "^4.0.0", + "@smithy/is-array-buffer": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2635,9 +2622,9 @@ } }, "node_modules/@smithy/util-config-provider": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.0.0.tgz", - "integrity": "sha512-L1RBVzLyfE8OXH+1hsJ8p+acNUSirQnWQ6/EgpchV88G6zGBTDPdXiiExei6Z1wR2RxYvxY/XLw6AMNCCt8H3w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-4.2.0.tgz", + "integrity": "sha512-YEjpl6XJ36FTKmD+kRJJWYvrHeUvm5ykaUS5xK+6oXffQPHeEM4/nXlZPe+Wu0lsgRUcNZiliYNh/y7q9c2y6Q==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2647,14 +2634,14 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "4.0.26", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.0.26.tgz", - "integrity": "sha512-xgl75aHIS/3rrGp7iTxQAOELYeyiwBu+eEgAk4xfKwJJ0L8VUjhO2shsDpeil54BOFsqmk5xfdesiewbUY5tKQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-4.2.0.tgz", + "integrity": "sha512-qzHp7ZDk1Ba4LDwQVCNp90xPGqSu7kmL7y5toBpccuhi3AH7dcVBIT/pUxYcInK4jOy6FikrcTGq5wxcka8UaQ==", "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^4.0.5", - "@smithy/smithy-client": "^4.4.10", - "@smithy/types": "^4.3.2", + "@smithy/property-provider": "^4.2.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -2663,17 +2650,17 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "4.0.26", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.0.26.tgz", - "integrity": "sha512-z81yyIkGiLLYVDetKTUeCZQ8x20EEzvQjrqJtb/mXnevLq2+w3XCEWTJ2pMp401b6BkEkHVfXb/cROBpVauLMQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-4.2.0.tgz", + "integrity": "sha512-FxUHS3WXgx3bTWR6yQHNHHkQHZm/XKIi/CchTnKvBulN6obWpcbzJ6lDToXn+Wp0QlVKd7uYAz2/CTw1j7m+Kg==", "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^4.1.5", - "@smithy/credential-provider-imds": "^4.0.7", - "@smithy/node-config-provider": "^4.1.4", - "@smithy/property-provider": "^4.0.5", - "@smithy/smithy-client": "^4.4.10", - "@smithy/types": "^4.3.2", + "@smithy/config-resolver": "^4.3.0", + "@smithy/credential-provider-imds": "^4.2.0", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/property-provider": "^4.2.0", + "@smithy/smithy-client": "^4.7.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2681,13 +2668,13 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.0.7.tgz", - "integrity": "sha512-klGBP+RpBp6V5JbrY2C/VKnHXn3d5V2YrifZbmMY8os7M6m8wdYFoO6w/fe5VkP+YVwrEktW3IWYaSQVNZJ8oQ==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-3.2.0.tgz", + "integrity": "sha512-TXeCn22D56vvWr/5xPqALc9oO+LN+QpFjrSM7peG/ckqEPoI3zaKZFp+bFwfmiHhn5MGWPaLCqDOJPPIixk9Wg==", "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^4.1.4", - "@smithy/types": "^4.3.2", + "@smithy/node-config-provider": "^4.3.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2695,9 +2682,9 @@ } }, "node_modules/@smithy/util-hex-encoding": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.0.0.tgz", - "integrity": "sha512-Yk5mLhHtfIgW2W2WQZWSg5kuMZCVbvhFmC7rV4IO2QqnZdbEFPmQnCcGMAX2z/8Qj3B9hYYNjZOhWym+RwhePw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-4.2.0.tgz", + "integrity": "sha512-CCQBwJIvXMLKxVbO88IukazJD9a4kQ9ZN7/UMGBjBcJYvatpWk+9g870El4cB8/EJxfe+k+y0GmR9CAzkF+Nbw==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2707,12 +2694,12 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.0.5.tgz", - "integrity": "sha512-N40PfqsZHRSsByGB81HhSo+uvMxEHT+9e255S53pfBw/wI6WKDI7Jw9oyu5tJTLwZzV5DsMha3ji8jk9dsHmQQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-4.2.0.tgz", + "integrity": "sha512-u9OOfDa43MjagtJZ8AapJcmimP+K2Z7szXn8xbty4aza+7P1wjFmy2ewjSbhEiYQoW1unTlOAIV165weYAaowA==", "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^4.3.2", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2720,13 +2707,13 @@ } }, "node_modules/@smithy/util-retry": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.0.7.tgz", - "integrity": "sha512-TTO6rt0ppK70alZpkjwy+3nQlTiqNfoXja+qwuAchIEAIoSZW8Qyd76dvBv3I5bCpE38APafG23Y/u270NspiQ==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-4.2.0.tgz", + "integrity": "sha512-BWSiuGbwRnEE2SFfaAZEX0TqaxtvtSYPM/J73PFVm+A29Fg1HTPiYFb8TmX1DXp4hgcdyJcNQmprfd5foeORsg==", "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^4.0.7", - "@smithy/types": "^4.3.2", + "@smithy/service-error-classification": "^4.2.0", + "@smithy/types": "^4.6.0", "tslib": "^2.6.2" }, "engines": { @@ -2734,18 +2721,18 @@ } }, "node_modules/@smithy/util-stream": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.2.4.tgz", - "integrity": "sha512-vSKnvNZX2BXzl0U2RgCLOwWaAP9x/ddd/XobPK02pCbzRm5s55M53uwb1rl/Ts7RXZvdJZerPkA+en2FDghLuQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-4.4.0.tgz", + "integrity": "sha512-vtO7ktbixEcrVzMRmpQDnw/Ehr9UWjBvSJ9fyAbadKkC4w5Cm/4lMO8cHz8Ysb8uflvQUNRcuux/oNHKPXkffg==", "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^5.1.1", - "@smithy/node-http-handler": "^4.1.1", - "@smithy/types": "^4.3.2", - "@smithy/util-base64": "^4.0.0", - "@smithy/util-buffer-from": "^4.0.0", - "@smithy/util-hex-encoding": "^4.0.0", - "@smithy/util-utf8": "^4.0.0", + "@smithy/fetch-http-handler": "^5.3.0", + "@smithy/node-http-handler": "^4.3.0", + "@smithy/types": "^4.6.0", + "@smithy/util-base64": "^4.2.0", + "@smithy/util-buffer-from": "^4.2.0", + "@smithy/util-hex-encoding": "^4.2.0", + "@smithy/util-utf8": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2753,9 +2740,9 @@ } }, "node_modules/@smithy/util-uri-escape": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.0.0.tgz", - "integrity": "sha512-77yfbCbQMtgtTylO9itEAdpPXSog3ZxMe09AEhm0dU0NLTalV70ghDZFR+Nfi1C60jnJoh/Re4090/DuZh2Omg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-4.2.0.tgz", + "integrity": "sha512-igZpCKV9+E/Mzrpq6YacdTQ0qTiLm85gD6N/IrmyDvQFA4UnU3d5g3m8tMT/6zG/vVkWSU+VxeUyGonL62DuxA==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.6.2" @@ -2765,12 +2752,12 @@ } }, "node_modules/@smithy/util-utf8": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.0.0.tgz", - "integrity": "sha512-b+zebfKCfRdgNJDknHCob3O7FpeYQN6ZG6YLExMcasDHsCXlsXCEuiPZeLnJLpwa5dvPetGlnGCiMHuLwGvFow==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-4.2.0.tgz", + "integrity": "sha512-zBPfuzoI8xyBtR2P6WQj63Rz8i3AmfAaJLuNG8dWsfvPe8lO4aCPYLn879mEgHndZH1zQ2oXmG8O1GGzzaoZiw==", "license": "Apache-2.0", "dependencies": { - "@smithy/util-buffer-from": "^4.0.0", + "@smithy/util-buffer-from": "^4.2.0", "tslib": "^2.6.2" }, "engines": { @@ -2778,13 +2765,25 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.0.7.tgz", - "integrity": "sha512-mYqtQXPmrwvUljaHyGxYUIIRI3qjBTEb/f5QFi3A6VlxhpmZd5mWXn9W+qUkf2pVE1Hv3SqxefiZOPGdxmO64A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-4.2.0.tgz", + "integrity": "sha512-0Z+nxUU4/4T+SL8BCNN4ztKdQjToNvUYmkF1kXO5T7Yz3Gafzh0HeIG6mrkN8Fz3gn9hSyxuAT+6h4vM+iQSBQ==", + "license": "Apache-2.0", + "dependencies": { + "@smithy/abort-controller": "^4.2.0", + "@smithy/types": "^4.6.0", + "tslib": "^2.6.2" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@smithy/uuid": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@smithy/uuid/-/uuid-1.1.0.tgz", + "integrity": "sha512-4aUIteuyxtBUhVdiQqcDhKFitwfd9hqoSDYY2KRXiWtgoWJ9Bmise+KfEPDiVHWeJepvF8xJO9/9+WDIciMFFw==", "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^4.0.5", - "@smithy/types": "^4.3.2", "tslib": "^2.6.2" }, "engines": { @@ -2826,9 +2825,9 @@ } }, "node_modules/@types/aws-lambda": { - "version": "8.10.152", - "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.152.tgz", - "integrity": "sha512-soT/c2gYBnT5ygwiHPmd9a1bftj462NWVk2tKCc1PYHSIacB2UwbTS2zYG4jzag1mRDuzg/OjtxQjQ2NKRB6Rw==", + "version": "8.10.153", + "resolved": "https://registry.npmjs.org/@types/aws-lambda/-/aws-lambda-8.10.153.tgz", + "integrity": "sha512-j5zuETAQtPKuU8ZeqtcLdqLxQeNffX1Dd1Sr3tP56rYZD21Ph49iIqWbiHHqwLXugsMPSsgX/bAZI29Patlbbw==", "license": "MIT" }, "node_modules/@types/cacheable-request": { @@ -2879,9 +2878,9 @@ } }, "node_modules/@types/node": { - "version": "22.18.0", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.0.tgz", - "integrity": "sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==", + "version": "22.18.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.18.6.tgz", + "integrity": "sha512-r8uszLPpeIWbNKtvWRt/DbVi5zbqZyj1PTmhRMqBMvDnaz1QpmSKujUtJLrqGZeoM8v72MfYggDceY4K1itzWQ==", "license": "MIT", "dependencies": { "undici-types": "~6.21.0" @@ -2897,9 +2896,9 @@ } }, "node_modules/@types/semver": { - "version": "7.7.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.0.tgz", - "integrity": "sha512-k107IF4+Xr7UHjwDc7Cfd6PRQfbdkiRabXGRjo07b4WyPahFBZCZ1sE+BNxYIJPPg73UkfOsVOLwqVc/6ETrIA==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.7.1.tgz", + "integrity": "sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==", "license": "MIT" }, "node_modules/@types/shimmer": { @@ -2914,12 +2913,6 @@ "integrity": "sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA==", "license": "MIT" }, - "node_modules/@types/uuid": { - "version": "9.0.8", - "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz", - "integrity": "sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==", - "license": "MIT" - }, "node_modules/abbrev": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz", @@ -2934,6 +2927,7 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", + "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -3000,9 +2994,9 @@ } }, "node_modules/ansi-regex": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.0.tgz", - "integrity": "sha512-TKY5pyBkHyADOPYlRT9Lx6F544mPl0vS5Ew7BJ45hA08Q+t3GjbueLliBWN3sMICk6+y7HdyxSzC4bWS8baBdg==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", "license": "MIT", "engines": { "node": ">=12" @@ -3041,6 +3035,16 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.10", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.10.tgz", + "integrity": "sha512-uLfgBi+7IBNay8ECBO2mVMGZAc1VgZWEChxm4lv+TobGdG82LnXMjuNGo/BSSZZL4UmkWhxEHP2f5ziLNwGWMA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/bin-links": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/bin-links/-/bin-links-4.0.4.tgz", @@ -3072,9 +3076,9 @@ } }, "node_modules/browserslist": { - "version": "4.25.3", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.25.3.tgz", - "integrity": "sha512-cDGv1kkDI4/0e5yON9yM5G/0A5u8sf5TnmdX5C9qHzI9PPu++sQ9zjm1k9NiOrf3riY4OkK0zSGqfvJyJsgCBQ==", + "version": "4.26.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz", + "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==", "dev": true, "funding": [ { @@ -3093,9 +3097,10 @@ "license": "MIT", "peer": true, "dependencies": { - "caniuse-lite": "^1.0.30001735", - "electron-to-chromium": "^1.5.204", - "node-releases": "^2.0.19", + "baseline-browser-mapping": "^2.8.9", + "caniuse-lite": "^1.0.30001746", + "electron-to-chromium": "^1.5.227", + "node-releases": "^2.0.21", "update-browserslist-db": "^1.1.3" }, "bin": { @@ -3193,9 +3198,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001737", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001737.tgz", - "integrity": "sha512-BiloLiXtQNrY5UyF0+1nSJLXUENuhka2pzy2Fx5pGxqavdrxSCW4U6Pn/PoG3Efspi2frRbHpBV2XsrPE6EDlw==", + "version": "1.0.30001746", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001746.tgz", + "integrity": "sha512-eA7Ys/DGw+pnkWWSE/id29f2IcPHVoE8wxtvE5JdvD2V28VTDPy1yEeo11Guz0sJ4ZeGRcm3uaTcAqK1LXaphA==", "dev": true, "funding": [ { @@ -3211,8 +3216,7 @@ "url": "https://github.com/sponsors/ai" } ], - "license": "CC-BY-4.0", - "peer": true + "license": "CC-BY-4.0" }, "node_modules/chalk": { "version": "4.1.2", @@ -3384,8 +3388,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/cross-spawn": { "version": "7.0.6", @@ -3435,9 +3438,9 @@ } }, "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", + "version": "4.4.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", + "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -3522,12 +3525,11 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.211", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.211.tgz", - "integrity": "sha512-IGBvimJkotaLzFnwIVgW9/UD/AOJ2tByUmeOrtqBfACSbAw5b1G0XpvdaieKyc7ULmbwXVx+4e4Be8pOPBrYkw==", + "version": "1.5.228", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.228.tgz", + "integrity": "sha512-nxkiyuqAn4MJ1QbobwqJILiDtu/jk14hEAWaMiJmNPh1Z+jqoFlBFZjdXwLWGeVSeu9hGLg6+2G9yJaW8rBIFA==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/emoji-regex": { "version": "9.2.2", @@ -3606,19 +3608,20 @@ } }, "node_modules/eslint": { - "version": "9.34.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.34.0.tgz", - "integrity": "sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg==", + "version": "9.36.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.36.0.tgz", + "integrity": "sha512-hB4FIzXovouYzwzECDcUkJ4OcfOEkXTv2zRY6B9bkwjx/cprAq0uvm1nl7zvQ0/TsUk0zQiN4uPfJpB9m+rPMQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.0", "@eslint/config-helpers": "^0.3.1", "@eslint/core": "^0.15.2", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.34.0", + "@eslint/js": "9.36.0", "@eslint/plugin-kit": "^0.3.5", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", @@ -3701,6 +3704,7 @@ "integrity": "sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w==", "dev": true, "license": "MIT", + "peer": true, "bin": { "eslint-config-prettier": "bin/cli.js" }, @@ -3734,9 +3738,9 @@ } }, "node_modules/eslint-plugin-n": { - "version": "17.21.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.21.3.tgz", - "integrity": "sha512-MtxYjDZhMQgsWRm/4xYLL0i2EhusWT7itDxlJ80l1NND2AL2Vi5Mvneqv/ikG9+zpran0VsVRXTEHrpLmUZRNw==", + "version": "17.23.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-n/-/eslint-plugin-n-17.23.1.tgz", + "integrity": "sha512-68PealUpYoHOBh332JLLD9Sj7OQUDkFpmcfqt8R9sySfFSeuGJjMTJQvCRRB96zO3A/PELRLkPrzsHmzEFQQ5A==", "dev": true, "license": "MIT", "dependencies": { @@ -3860,6 +3864,19 @@ "node": ">=10" } }, + "node_modules/eslint/node_modules/@eslint/core": { + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", + "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/eslint/node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -4232,7 +4249,6 @@ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=6.9.0" } @@ -4305,9 +4321,9 @@ } }, "node_modules/globals": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", - "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", + "version": "16.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-16.4.0.tgz", + "integrity": "sha512-ob/2LcVVaVGCYN+r14cnwnoDPUufjiYgSqRhiFD0Q1iI4Odora5RE8Iv1D24hAz5oMophRGkGz+yuvQmmUMnMw==", "dev": true, "license": "MIT", "engines": { @@ -4508,9 +4524,9 @@ } }, "node_modules/import-in-the-middle": { - "version": "1.14.2", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.14.2.tgz", - "integrity": "sha512-5tCuY9BV8ujfOpwtAGgsTx9CGUapcFMEEyByLv1B+v2+6DhAcw+Zr0nhQT7uwaZ7DiourxFEscghOR8e1aPLQw==", + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.14.4.tgz", + "integrity": "sha512-eWjxh735SJLFJJDs5X82JQ2405OdJeAHDBnaoFCfdr5GVc7AWc9xU7KbrF+3Xd5F2ccP1aQFKtY+65X6EfKZ7A==", "license": "Apache-2.0", "dependencies": { "acorn": "^8.14.0", @@ -4649,8 +4665,7 @@ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/js-yaml": { "version": "3.14.1", @@ -4671,7 +4686,6 @@ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", - "peer": true, "bin": { "jsesc": "bin/jsesc" }, @@ -4723,7 +4737,6 @@ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", "dev": true, "license": "MIT", - "peer": true, "bin": { "json5": "lib/cli.js" }, @@ -4825,7 +4838,6 @@ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", - "peer": true, "dependencies": { "yallist": "^3.0.2" } @@ -5149,12 +5161,11 @@ } }, "node_modules/node-releases": { - "version": "2.0.19", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", - "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", + "version": "2.0.21", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", + "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/nopt": { "version": "7.2.1", @@ -5565,14 +5576,14 @@ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/picomatch": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-3.0.1.tgz", "integrity": "sha512-I3EurrIQMlRc9IaAZnqRR044Phh2DXY+55o7uJ0V+hYZAcQYSuFWsc9q5PvyDHUSCe1Qxn/iBz+78s86zWnGag==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -5706,6 +5717,7 @@ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -6195,9 +6207,9 @@ } }, "node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "license": "MIT", "dependencies": { "ansi-regex": "^6.0.1" @@ -6464,9 +6476,9 @@ } }, "node_modules/typescript": { - "version": "5.9.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.2.tgz", - "integrity": "sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A==", + "version": "5.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", "peer": true, @@ -6538,7 +6550,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "escalade": "^3.2.0", "picocolors": "^1.1.1" @@ -6566,19 +6577,6 @@ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "license": "MIT" }, - "node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -6706,9 +6704,9 @@ } }, "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", "license": "MIT", "engines": { "node": ">=12" @@ -6762,8 +6760,7 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, - "license": "ISC", - "peer": true + "license": "ISC" }, "node_modules/yargs": { "version": "17.7.2", diff --git a/.ops/aws-setup/package.json b/.ops/aws-setup/package.json index a7d5ac4e8c..2eec5ccf6c 100644 --- a/.ops/aws-setup/package.json +++ b/.ops/aws-setup/package.json @@ -10,21 +10,21 @@ "lint:check:prettier": "prettier --check --ignore-path .prettierignore **/*.{json,md,mjs,ts}" }, "dependencies": { - "@pulumi/pulumi": "3.192.0", - "@pulumi/aws": "7.6.0", + "@pulumi/pulumi": "3.197.0", + "@pulumi/aws": "7.7.0", "@pulumi/awsx": "3.0.0" }, "devDependencies": { - "@babel/eslint-parser": "7.28.0", - "@eslint/compat": "1.3.2", - "@eslint/js": "9.34.0", - "@types/node": "22.18.0", - "eslint": "9.34.0", + "@babel/eslint-parser": "7.28.4", + "@eslint/compat": "1.4.0", + "@eslint/js": "9.36.0", + "@types/node": "22.18.6", + "eslint": "9.36.0", "eslint-config-prettier": "10.1.8", - "eslint-plugin-n": "17.21.3", + "eslint-plugin-n": "17.23.1", "eslint-plugin-prettier": "5.5.4", "eslint-plugin-promise": "7.2.1", - "globals": "16.3.0", + "globals": "16.4.0", "prettier": "3.6.2" } } diff --git a/.ops/ecamp3-logging/.gitignore b/.ops/ecamp3-logging/.gitignore index dbaac00ff6..ac78f5d6d3 100644 --- a/.ops/ecamp3-logging/.gitignore +++ b/.ops/ecamp3-logging/.gitignore @@ -1,3 +1,4 @@ .env +/env.yaml /charts -/values.out.yaml +/values.yaml diff --git a/.ops/ecamp3-logging/.helmignore b/.ops/ecamp3-logging/.helmignore index 0de788f259..6feffa99a7 100644 --- a/.ops/ecamp3-logging/.helmignore +++ b/.ops/ecamp3-logging/.helmignore @@ -1,3 +1,5 @@ .env /deploy.sh -/values.out.yaml +/values.yaml +/values.yaml.gotmpl +/env.yaml \ No newline at end of file diff --git a/.ops/ecamp3-logging/README.md b/.ops/ecamp3-logging/README.md index e020afd271..ce9171d329 100644 --- a/.ops/ecamp3-logging/README.md +++ b/.ops/ecamp3-logging/README.md @@ -5,12 +5,7 @@ ecamp3 is running. ## Prerequisites -You need to add the fluent helm repository: - -```shell -helm repo add fluent https://fluent.github.io/helm-charts -helm repo update -``` +You need the helmfile in addition to kubectl and helm. ## Provisioning of Kibana Configuration diff --git a/.ops/ecamp3-logging/deploy.sh b/.ops/ecamp3-logging/deploy.sh index bc6252f0b0..1e80bbf8f7 100755 --- a/.ops/ecamp3-logging/deploy.sh +++ b/.ops/ecamp3-logging/deploy.sh @@ -5,24 +5,14 @@ set -ea SCRIPT_DIR=$(realpath "$(dirname "$0")") cd $SCRIPT_DIR -ELASTIC_NODE_REQUESTS_MEMORY=1000Mi -ELASTIC_NODE_LIMITS_MEMORY=1000Mi -ELASTIC_NODE_MAX_INDEX_AGE=15 -RANDOM_STRING=$(uuidgen) - if [ -f $SCRIPT_DIR/.env ]; then . $SCRIPT_DIR/.env fi -if [ -z "${ELASTIC_NODE_STORAGE_SIZE}" ]; then - echo "Please define ELASTIC_NODE_STORAGE_SIZE. There is no good default value." - echo "It can also not be automatically enlarged, see: https://github.com/kubernetes/enhancements/pull/4651 and https://github.com/kubernetes/kubernetes/issues/68737" - exit 1 -fi - -envsubst < $SCRIPT_DIR/values.yaml > $SCRIPT_DIR/values.out.yaml +echo "ELASTIC_NODE_STORAGE_SIZE can not be automatically enlarged, see: https://github.com/kubernetes/enhancements/pull/4651 and https://github.com/kubernetes/kubernetes/issues/68737" -helm dep build +helmfile deps +helmfile write-values --environment default --output-file-template values.yaml if [ $1 = "deploy" ]; then # to debug: --dry-run --debug @@ -30,14 +20,14 @@ if [ $1 = "deploy" ]; then --namespace ecamp3-logging \ --create-namespace \ $SCRIPT_DIR \ - --values $SCRIPT_DIR/values.out.yaml + --values $SCRIPT_DIR/values.yaml exit 0 fi if [ $1 = "diff" ]; then helm template \ - --namespace ecamp3-logging --no-hooks --skip-tests ecamp3-logging \ + --namespace ecamp3-logging --no-hooks --skip-tests ecamp3-logging \ $SCRIPT_DIR \ - --values $SCRIPT_DIR/values.out.yaml | kubectl diff --namespace ecamp3-logging -f - + --values $SCRIPT_DIR/values.yaml | kubectl diff --namespace ecamp3-logging -f - exit 0 fi diff --git a/.ops/ecamp3-logging/files/elasticsearch/remove-old-indexes/docker-compose.yml b/.ops/ecamp3-logging/files/elasticsearch/remove-old-indexes/docker-compose.yml index 55ec6262b4..7b3b5da0a0 100644 --- a/.ops/ecamp3-logging/files/elasticsearch/remove-old-indexes/docker-compose.yml +++ b/.ops/ecamp3-logging/files/elasticsearch/remove-old-indexes/docker-compose.yml @@ -1,6 +1,6 @@ services: remove-old-indexes: - image: node:24.7.0 + image: node:24.8.0 volumes: - ./src:/src command: diff --git a/.ops/ecamp3-logging/helmfile.yaml b/.ops/ecamp3-logging/helmfile.yaml new file mode 100644 index 0000000000..6c15cef558 --- /dev/null +++ b/.ops/ecamp3-logging/helmfile.yaml @@ -0,0 +1,14 @@ +environments: + default: + values: + - ./env.yaml +--- +repositories: + - name: fluent + url: https://fluent.github.io/helm-charts + +releases: + - name: "" + chart: . + values: + - ./values.yaml.gotmpl diff --git a/.ops/ecamp3-logging/values.yaml b/.ops/ecamp3-logging/values.yaml.gotmpl similarity index 64% rename from .ops/ecamp3-logging/values.yaml rename to .ops/ecamp3-logging/values.yaml.gotmpl index 93d060eca1..4d66aa11eb 100644 --- a/.ops/ecamp3-logging/values.yaml +++ b/.ops/ecamp3-logging/values.yaml.gotmpl @@ -1,9 +1,9 @@ fluent-operator: containerRuntime: containerd operator: - annotations: - trigger-recreate: ${RANDOM_STRING} - container: + annotations: + trigger-recreate: {{ exec "uuidgen" (list) }} + container: tag: 3.3.0 fluentbit: enable: true @@ -26,7 +26,7 @@ fluent-operator: - ingress-nginx envVars: - name: TRIGGER_FLUENTD_RECREATE - value: ${RANDOM_STRING} + value: {{ exec "uuidgen" (list) }} enable: true fluentd: @@ -46,17 +46,17 @@ elasticsearch: elasticNode: resources: requests: - memory: ${ELASTIC_NODE_REQUESTS_MEMORY} + memory: {{ .Environment.Values | get "ELASTIC_NODE_REQUESTS_MEMORY" "1000Mi" }} limits: - memory: ${ELASTIC_NODE_LIMITS_MEMORY} + memory: {{ .Environment.Values | get "ELASTIC_NODE_LIMITS_MEMORY" "1000Mi"}} persistence: storageClassName: do-block-storage resources: requests: - storage: ${ELASTIC_NODE_STORAGE_SIZE} + storage: {{ .Environment.Values | get "ELASTIC_NODE_STORAGE_SIZE" nil | required "Please define ELASTIC_NODE_STORAGE_SIZE. There is no good default value." }} removeOldIndexes: - maxIndexAge: ${ELASTIC_NODE_MAX_INDEX_AGE} - image: node:24.7.0 + maxIndexAge: {{ .Environment.Values | get "ELASTIC_NODE_MAX_INDEX_AGE" "15" }} + image: node:24.8.0 kibana: name: kibana diff --git a/.ops/performance-test/docker-compose.yml b/.ops/performance-test/docker-compose.yml index f687dad47e..a6d6052408 100644 --- a/.ops/performance-test/docker-compose.yml +++ b/.ops/performance-test/docker-compose.yml @@ -1,6 +1,6 @@ services: performance-test: - image: grafana/k6:1.2.3 + image: grafana/k6:1.3.0 volumes: - .:/app user: ${USER_ID:-1000} diff --git a/.ops/performance-test/package-lock.json b/.ops/performance-test/package-lock.json index f15ce18bb4..74c130c7da 100644 --- a/.ops/performance-test/package-lock.json +++ b/.ops/performance-test/package-lock.json @@ -9,21 +9,21 @@ "version": "1.0.0", "license": "ISC", "devDependencies": { - "@types/k6": "1.2.0" + "@types/k6": "1.3.0" } }, "node_modules/@types/k6": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/k6/-/k6-1.2.0.tgz", - "integrity": "sha512-7F/vjekOUCzFi5AY+yYBOL38iEtN9EXufdKOAMFkJsdLryJ3/bB/W9jppED1FO5o7zeaPf8M46ardYPD8xgy/w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/k6/-/k6-1.3.0.tgz", + "integrity": "sha512-YmxKxib8oyJJXeQXHOPtEra7tFNkjy2z7Pim9uqm+rUDX6Myt54BoFsKhZMC+x26DQMrPOJMaMsmzZKfuhGfNg==", "dev": true } }, "dependencies": { "@types/k6": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@types/k6/-/k6-1.2.0.tgz", - "integrity": "sha512-7F/vjekOUCzFi5AY+yYBOL38iEtN9EXufdKOAMFkJsdLryJ3/bB/W9jppED1FO5o7zeaPf8M46ardYPD8xgy/w==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/k6/-/k6-1.3.0.tgz", + "integrity": "sha512-YmxKxib8oyJJXeQXHOPtEra7tFNkjy2z7Pim9uqm+rUDX6Myt54BoFsKhZMC+x26DQMrPOJMaMsmzZKfuhGfNg==", "dev": true } } diff --git a/.ops/performance-test/package.json b/.ops/performance-test/package.json index c19e32edee..25f5b99c6f 100644 --- a/.ops/performance-test/package.json +++ b/.ops/performance-test/package.json @@ -10,6 +10,6 @@ "author": "", "license": "ISC", "devDependencies": { - "@types/k6": "1.2.0" + "@types/k6": "1.3.0" } } diff --git a/api/.env b/api/.env index cf58c589b6..661319cbca 100644 --- a/api/.env +++ b/api/.env @@ -81,4 +81,6 @@ MAIL_FROM_NAME="eCamp v3" RECAPTCHA_SECRET="disabled" ###< google/recaptcha ### +# Tokens are valid for 12 hours.. +AUTHENTICATION_TOKEN_TTL=43200 TRANSLATE_ERRORS_TO_LOCALES="en,de,fr,it,rm" diff --git a/api/README.md b/api/README.md index 6ed7f45d08..93a8ffc92e 100644 --- a/api/README.md +++ b/api/README.md @@ -55,6 +55,6 @@ docker compose down && docker compose up ``` or ```shell -docker-compsoe stop php; docker compose rm php; docker compose up +docker compose stop api; docker compose rm api; docker compose up ``` if you don't want to restart the frontend. diff --git a/api/composer.json b/api/composer.json index 1b5e77970a..ade6932c7b 100644 --- a/api/composer.json +++ b/api/composer.json @@ -5,35 +5,39 @@ "php": ">=8.4.0", "ext-ctype": "*", "ext-iconv": "*", - "api-platform/doctrine-orm": "4.1.20", - "api-platform/http-cache": "4.1.20", - "api-platform/json-api": "4.1.20", - "api-platform/json-hal": "4.1.20", - "api-platform/metadata": "4.1.20", - "api-platform/openapi": "4.1.20", - "api-platform/serializer": "4.1.20", - "api-platform/state": "4.1.20", - "api-platform/symfony": "4.1.20", + "api-platform/doctrine-orm": "4.1.24", + "api-platform/doctrine-common": "4.2.0", + "api-platform/documentation": "4.2.0", + "api-platform/http-cache": "4.1.24", + "api-platform/json-api": "4.1.24", + "api-platform/json-hal": "4.1.24", + "api-platform/metadata": "4.1.24", + "api-platform/openapi": "4.1.24", + "api-platform/serializer": "4.1.24", + "api-platform/state": "4.1.24", + "api-platform/symfony": "4.1.23", + "api-platform/validator": "4.2.0", "composer/package-versions-deprecated": "1.11.99", "cweagans/composer-patches": "1.7.3", "doctrine/common": "3.5.0", - "doctrine/doctrine-bundle": "2.15.1", + "doctrine/doctrine-bundle": "2.16.2", "doctrine/doctrine-migrations-bundle": "3.4.2", "doctrine/orm": "3.5.2", "exercise/htmlpurifier-bundle": "5.1", "friendsofsymfony/http-cache": "3.1.1", "friendsofsymfony/http-cache-bundle": "3.2.0", + "gesdinet/jwt-refresh-token-bundle": "1.5.0", "google/recaptcha": "1.3.1", "guzzlehttp/guzzle": "7.10.0", - "knpuniversity/oauth2-client-bundle": "2.18.4", + "knpuniversity/oauth2-client-bundle": "2.19.0", "league/oauth2-google": "4.0.1", "lexik/jwt-authentication-bundle": "3.1.1", "nelmio/cors-bundle": "2.5.0", "phpdocumentor/reflection-docblock": "5.6.3", "phpmyadmin/sql-parser": "5.11.1", - "ramsey/uuid": "4.9.0", + "ramsey/uuid": "4.9.1", "rize/uri-template": "0.4.0", - "sentry/sentry-symfony": "5.3.1", + "sentry/sentry-symfony": "5.6.0", "stof/doctrine-extensions-bundle": "1.14.0", "swaggest/json-schema": "0.12.43", "symfony/asset": "7.3.0", @@ -60,16 +64,16 @@ "webonyx/graphql-php": "15.24.0" }, "require-dev": { - "api-platform/graphql": "4.1.20", - "brianium/paratest": "v7.11.0", - "friendsofphp/php-cs-fixer": "3.86.0", + "api-platform/graphql": "4.1.23", + "brianium/paratest": "v7.13.0", + "friendsofphp/php-cs-fixer": "3.88.0", "hautelook/alice-bundle": "2.15.1", - "justinrainbow/json-schema": "6.5.1", + "justinrainbow/json-schema": "6.5.2", "php-coveralls/php-coveralls": "2.8.0", "phpspec/prophecy-phpunit": "2.4.0", - "phpstan/phpstan": "2.1.22", - "phpunit/phpunit": "12.2.7", - "rector/rector": "2.1.4", + "phpstan/phpstan": "2.1.27", + "phpunit/phpunit": "12.3.14", + "rector/rector": "2.1.7", "psalm/phar": "6.13.1", "spatie/phpunit-snapshot-assertions": "5.2.2", "symfony/browser-kit": "7.3.2", diff --git a/api/composer.lock b/api/composer.lock index 84bd845110..d01648c114 100644 --- a/api/composer.lock +++ b/api/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "8bfb14d74a570d8906f8f7315c7b5332", + "content-hash": "cec697325071f09f25a49e04df4fb445", "packages": [ { "name": "api-platform/doctrine-common", - "version": "v4.1.22", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-common.git", - "reference": "e0ef3f5d1c4a9d023da519ea120a1d7732e0b1a7" + "reference": "8acbed7c2768f7c15a5b030018132e454f895e55" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/doctrine-common/zipball/e0ef3f5d1c4a9d023da519ea120a1d7732e0b1a7", - "reference": "e0ef3f5d1c4a9d023da519ea120a1d7732e0b1a7", + "url": "https://api.github.com/repos/api-platform/doctrine-common/zipball/8acbed7c2768f7c15a5b030018132e454f895e55", + "reference": "8acbed7c2768f7c15a5b030018132e454f895e55", "shasum": "" }, "require": { @@ -35,7 +35,8 @@ "doctrine/mongodb-odm": "^2.10", "doctrine/orm": "^2.17 || ^3.0", "phpspec/prophecy-phpunit": "^2.2", - "phpunit/phpunit": "11.5.x-dev" + "phpunit/phpunit": "11.5.x-dev", + "symfony/type-info": "^7.3" }, "suggest": { "api-platform/graphql": "For GraphQl mercure subscriptions.", @@ -57,7 +58,8 @@ "branch-alias": { "dev-3.4": "3.4.x-dev", "dev-4.1": "4.1.x-dev", - "dev-main": "4.2.x-dev" + "dev-4.2": "4.2.x-dev", + "dev-main": "4.3.x-dev" } }, "autoload": { @@ -90,22 +92,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-common/tree/v4.1.22" + "source": "https://github.com/api-platform/doctrine-common/tree/v4.2.0" }, - "time": "2025-08-18T13:30:43+00:00" + "time": "2025-08-27T12:34:14+00:00" }, { "name": "api-platform/doctrine-orm", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/doctrine-orm.git", - "reference": "61a199da6f6014dba2da43ea1a66b2c9dda27263" + "reference": "9989d0fd4badfe77fa71fed9ae734d146bc0495d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/61a199da6f6014dba2da43ea1a66b2c9dda27263", - "reference": "61a199da6f6014dba2da43ea1a66b2c9dda27263", + "url": "https://api.github.com/repos/api-platform/doctrine-orm/zipball/9989d0fd4badfe77fa71fed9ae734d146bc0495d", + "reference": "9989d0fd4badfe77fa71fed9ae734d146bc0495d", "shasum": "" }, "require": { @@ -175,22 +177,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/doctrine-orm/tree/v4.1.20" + "source": "https://github.com/api-platform/doctrine-orm/tree/v4.1.24" }, - "time": "2025-06-06T14:56:47+00:00" + "time": "2025-09-15T09:57:10+00:00" }, { "name": "api-platform/documentation", - "version": "v4.1.22", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/api-platform/documentation.git", - "reference": "1a0ac988d659008ef8667d05bc9978863026bab8" + "reference": "c5a54336d8c51271aa5d54e57147cdee7162ab3a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/documentation/zipball/1a0ac988d659008ef8667d05bc9978863026bab8", - "reference": "1a0ac988d659008ef8667d05bc9978863026bab8", + "url": "https://api.github.com/repos/api-platform/documentation/zipball/c5a54336d8c51271aa5d54e57147cdee7162ab3a", + "reference": "c5a54336d8c51271aa5d54e57147cdee7162ab3a", "shasum": "" }, "require": { @@ -212,7 +214,8 @@ "branch-alias": { "dev-3.4": "3.4.x-dev", "dev-4.1": "4.1.x-dev", - "dev-main": "4.2.x-dev" + "dev-4.2": "4.2.x-dev", + "dev-main": "4.3.x-dev" } }, "autoload": { @@ -237,22 +240,22 @@ ], "description": "API Platform documentation controller.", "support": { - "source": "https://github.com/api-platform/documentation/tree/v4.2.0-alpha.1" + "source": "https://github.com/api-platform/documentation/tree/v4.2.0" }, - "time": "2025-06-06T14:56:47+00:00" + "time": "2025-08-19T08:04:29+00:00" }, { "name": "api-platform/http-cache", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/http-cache.git", - "reference": "f65f092c90311a87ebb6dda87db3ca08b57c10d6" + "reference": "3a6b69e57280b30d8db5a25bf3f52edb7f9069fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/http-cache/zipball/f65f092c90311a87ebb6dda87db3ca08b57c10d6", - "reference": "f65f092c90311a87ebb6dda87db3ca08b57c10d6", + "url": "https://api.github.com/repos/api-platform/http-cache/zipball/3a6b69e57280b30d8db5a25bf3f52edb7f9069fc", + "reference": "3a6b69e57280b30d8db5a25bf3f52edb7f9069fc", "shasum": "" }, "require": { @@ -315,13 +318,13 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/http-cache/tree/v4.1.20" + "source": "https://github.com/api-platform/http-cache/tree/v4.1.24" }, - "time": "2025-06-06T14:56:47+00:00" + "time": "2025-09-16T07:16:14+00:00" }, { "name": "api-platform/hydra", - "version": "v4.1.22", + "version": "v4.1.25", "source": { "type": "git", "url": "https://github.com/api-platform/hydra.git", @@ -400,22 +403,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/hydra/tree/v4.1.22" + "source": "https://github.com/api-platform/hydra/tree/v4.1.25" }, "time": "2025-07-15T14:10:59+00:00" }, { "name": "api-platform/json-api", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/json-api.git", - "reference": "838589c0567f9b4451754d367a3dc5359798a3e9" + "reference": "21901d2421eec2bd43e3290ddeb9c9de257d5f34" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/json-api/zipball/838589c0567f9b4451754d367a3dc5359798a3e9", - "reference": "838589c0567f9b4451754d367a3dc5359798a3e9", + "url": "https://api.github.com/repos/api-platform/json-api/zipball/21901d2421eec2bd43e3290ddeb9c9de257d5f34", + "reference": "21901d2421eec2bd43e3290ddeb9c9de257d5f34", "shasum": "" }, "require": { @@ -479,31 +482,33 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/json-api/tree/v4.1.20" + "source": "https://github.com/api-platform/json-api/tree/v4.1.24" }, - "time": "2025-06-06T14:56:47+00:00" + "time": "2025-09-15T09:57:10+00:00" }, { "name": "api-platform/json-hal", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/json-hal.git", - "reference": "3a2b3436014ab4baeb4d1a269df2054a64b1744c" + "reference": "07f97ae8317df9161a718243a9d7515611614eb8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/json-hal/zipball/3a2b3436014ab4baeb4d1a269df2054a64b1744c", - "reference": "3a2b3436014ab4baeb4d1a269df2054a64b1744c", + "url": "https://api.github.com/repos/api-platform/json-hal/zipball/07f97ae8317df9161a718243a9d7515611614eb8", + "reference": "07f97ae8317df9161a718243a9d7515611614eb8", "shasum": "" }, "require": { + "api-platform/documentation": "^4.1.11", "api-platform/metadata": "^4.1.11", "api-platform/serializer": "^4.1.11", "api-platform/state": "^4.1.11", "php": ">=8.2" }, "require-dev": { + "api-platform/json-schema": "^4.1.11", "phpunit/phpunit": "11.5.x-dev" }, "type": "library", @@ -552,13 +557,14 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/json-hal/tree/v4.1.20" + "source": "https://github.com/api-platform/json-hal/tree/v4.1.24" }, - "time": "2025-06-06T14:56:47+00:00" + "abandoned": "api-platform/hal", + "time": "2025-09-15T09:57:10+00:00" }, { "name": "api-platform/json-schema", - "version": "v4.1.22", + "version": "v4.1.25", "source": { "type": "git", "url": "https://github.com/api-platform/json-schema.git", @@ -631,22 +637,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/json-schema/tree/v4.1.22" + "source": "https://github.com/api-platform/json-schema/tree/v4.1.25" }, "time": "2025-06-29T12:24:14+00:00" }, { "name": "api-platform/jsonld", - "version": "v4.1.22", + "version": "v4.2.1", "source": { "type": "git", "url": "https://github.com/api-platform/jsonld.git", - "reference": "e122bf1f04f895e80e6469e0f09d1f06f7508ca6" + "reference": "774b460273177983c52540a479ea9e9f940d7a1b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/jsonld/zipball/e122bf1f04f895e80e6469e0f09d1f06f7508ca6", - "reference": "e122bf1f04f895e80e6469e0f09d1f06f7508ca6", + "url": "https://api.github.com/repos/api-platform/jsonld/zipball/774b460273177983c52540a479ea9e9f940d7a1b", + "reference": "774b460273177983c52540a479ea9e9f940d7a1b", "shasum": "" }, "require": { @@ -656,7 +662,8 @@ "php": ">=8.2" }, "require-dev": { - "phpunit/phpunit": "11.5.x-dev" + "phpunit/phpunit": "11.5.x-dev", + "symfony/type-info": "^7.3" }, "type": "library", "extra": { @@ -670,7 +677,8 @@ "branch-alias": { "dev-3.4": "3.4.x-dev", "dev-4.1": "4.1.x-dev", - "dev-main": "4.2.x-dev" + "dev-4.2": "4.2.x-dev", + "dev-main": "4.3.x-dev" } }, "autoload": { @@ -709,22 +717,22 @@ "rest" ], "support": { - "source": "https://github.com/api-platform/jsonld/tree/v4.1.22" + "source": "https://github.com/api-platform/jsonld/tree/v4.2.1" }, - "time": "2025-07-25T10:05:30+00:00" + "time": "2025-09-25T19:30:56+00:00" }, { "name": "api-platform/metadata", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/metadata.git", - "reference": "63c9f37e506929058ec4349e8dd890a03694b18b" + "reference": "9366dadce9b9cb891150f86c7f06080aa5bebb79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/metadata/zipball/63c9f37e506929058ec4349e8dd890a03694b18b", - "reference": "63c9f37e506929058ec4349e8dd890a03694b18b", + "url": "https://api.github.com/repos/api-platform/metadata/zipball/9366dadce9b9cb891150f86c7f06080aa5bebb79", + "reference": "9366dadce9b9cb891150f86c7f06080aa5bebb79", "shasum": "" }, "require": { @@ -806,22 +814,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/metadata/tree/v4.1.20" + "source": "https://github.com/api-platform/metadata/tree/v4.1.24" }, - "time": "2025-07-15T07:33:57+00:00" + "time": "2025-09-15T09:57:10+00:00" }, { "name": "api-platform/openapi", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/openapi.git", - "reference": "47d2e25d9a04991d245837a9af0d97e90ed99318" + "reference": "793b53e51a5c24076d4024b6aa77de29e74015cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/openapi/zipball/47d2e25d9a04991d245837a9af0d97e90ed99318", - "reference": "47d2e25d9a04991d245837a9af0d97e90ed99318", + "url": "https://api.github.com/repos/api-platform/openapi/zipball/793b53e51a5c24076d4024b6aa77de29e74015cd", + "reference": "793b53e51a5c24076d4024b6aa77de29e74015cd", "shasum": "" }, "require": { @@ -893,22 +901,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/openapi/tree/v4.1.20" + "source": "https://github.com/api-platform/openapi/tree/v4.1.24" }, - "time": "2025-07-16T13:25:16+00:00" + "time": "2025-07-29T08:53:27+00:00" }, { "name": "api-platform/serializer", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/serializer.git", - "reference": "6c08faff78730deaf6356412c6b79f0b06cc2bbd" + "reference": "2327eaa8fc5c0a22f070e9b863cf4833b0c05903" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/serializer/zipball/6c08faff78730deaf6356412c6b79f0b06cc2bbd", - "reference": "6c08faff78730deaf6356412c6b79f0b06cc2bbd", + "url": "https://api.github.com/repos/api-platform/serializer/zipball/2327eaa8fc5c0a22f070e9b863cf4833b0c05903", + "reference": "2327eaa8fc5c0a22f070e9b863cf4833b0c05903", "shasum": "" }, "require": { @@ -984,13 +992,13 @@ "serializer" ], "support": { - "source": "https://github.com/api-platform/serializer/tree/v4.1.20" + "source": "https://github.com/api-platform/serializer/tree/v4.1.24" }, - "time": "2025-06-30T16:34:41+00:00" + "time": "2025-09-15T09:57:10+00:00" }, { "name": "api-platform/state", - "version": "v4.1.20", + "version": "v4.1.24", "source": { "type": "git", "url": "https://github.com/api-platform/state.git", @@ -1076,22 +1084,22 @@ "swagger" ], "support": { - "source": "https://github.com/api-platform/state/tree/v4.1.20" + "source": "https://github.com/api-platform/state/tree/v4.1.24" }, "time": "2025-07-16T14:01:52+00:00" }, { "name": "api-platform/symfony", - "version": "v4.1.20", + "version": "v4.1.23", "source": { "type": "git", "url": "https://github.com/api-platform/symfony.git", - "reference": "735b9a80f3b7a5f528b663cd28489fbe52f52416" + "reference": "e35839489b4e76ffc5fc2b0cbadbbaece75b9ad1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/symfony/zipball/735b9a80f3b7a5f528b663cd28489fbe52f52416", - "reference": "735b9a80f3b7a5f528b663cd28489fbe52f52416", + "url": "https://api.github.com/repos/api-platform/symfony/zipball/e35839489b4e76ffc5fc2b0cbadbbaece75b9ad1", + "reference": "e35839489b4e76ffc5fc2b0cbadbbaece75b9ad1", "shasum": "" }, "require": { @@ -1194,29 +1202,28 @@ "graphql", "hal", "jsonapi", - "laravel", "openapi", "rest", "swagger", "symfony" ], "support": { - "source": "https://github.com/api-platform/symfony/tree/v4.1.20" + "source": "https://github.com/api-platform/symfony/tree/v4.1.23" }, - "time": "2025-07-16T14:01:52+00:00" + "time": "2025-09-05T07:30:37+00:00" }, { "name": "api-platform/validator", - "version": "v4.1.22", + "version": "v4.2.0", "source": { "type": "git", "url": "https://github.com/api-platform/validator.git", - "reference": "9f0bde95dccf1d86e6a6165543d601a4a46eaa9a" + "reference": "562f97b0acdacef462ff9ececd62158ae4709530" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/api-platform/validator/zipball/9f0bde95dccf1d86e6a6165543d601a4a46eaa9a", - "reference": "9f0bde95dccf1d86e6a6165543d601a4a46eaa9a", + "url": "https://api.github.com/repos/api-platform/validator/zipball/562f97b0acdacef462ff9ececd62158ae4709530", + "reference": "562f97b0acdacef462ff9ececd62158ae4709530", "shasum": "" }, "require": { @@ -1224,7 +1231,7 @@ "php": ">=8.2", "symfony/http-kernel": "^6.4 || ^7.1", "symfony/serializer": "^6.4 || ^7.1", - "symfony/type-info": "^7.2", + "symfony/type-info": "^7.3", "symfony/validator": "^6.4 || ^7.1", "symfony/web-link": "^6.4 || ^7.1" }, @@ -1244,7 +1251,8 @@ "branch-alias": { "dev-3.4": "3.4.x-dev", "dev-4.1": "4.1.x-dev", - "dev-main": "4.2.x-dev" + "dev-4.2": "4.2.x-dev", + "dev-main": "4.3.x-dev" } }, "autoload": { @@ -1276,81 +1284,31 @@ "validator" ], "support": { - "source": "https://github.com/api-platform/validator/tree/v4.1.22" - }, - "time": "2025-07-16T14:01:52+00:00" - }, - { - "name": "behat/transliterator", - "version": "v1.5.0", - "source": { - "type": "git", - "url": "https://github.com/Behat/Transliterator.git", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Behat/Transliterator/zipball/baac5873bac3749887d28ab68e2f74db3a4408af", - "reference": "baac5873bac3749887d28ab68e2f74db3a4408af", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "require-dev": { - "chuyskywalker/rolling-curl": "^3.1", - "php-yaoi/php-yaoi": "^1.0", - "phpunit/phpunit": "^8.5.25 || ^9.5.19" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Behat\\Transliterator\\": "src/Behat/Transliterator" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "Artistic-1.0" - ], - "description": "String transliterator", - "keywords": [ - "i18n", - "slug", - "transliterator" - ], - "support": { - "issues": "https://github.com/Behat/Transliterator/issues", - "source": "https://github.com/Behat/Transliterator/tree/v1.5.0" + "source": "https://github.com/api-platform/validator/tree/v4.2.0" }, - "abandoned": true, - "time": "2022-03-30T09:27:43+00:00" + "time": "2025-09-05T08:12:26+00:00" }, { "name": "brick/math", - "version": "0.13.1", + "version": "0.14.0", "source": { "type": "git", "url": "https://github.com/brick/math.git", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04" + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/brick/math/zipball/fc7ed316430118cc7836bf45faff18d5dfc8de04", - "reference": "fc7ed316430118cc7836bf45faff18d5dfc8de04", + "url": "https://api.github.com/repos/brick/math/zipball/113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", + "reference": "113a8ee2656b882d4c3164fa31aa6e12cbb7aaa2", "shasum": "" }, "require": { - "php": "^8.1" + "php": "^8.2" }, "require-dev": { "php-coveralls/php-coveralls": "^2.2", - "phpunit/phpunit": "^10.1", - "vimeo/psalm": "6.8.8" + "phpstan/phpstan": "2.1.22", + "phpunit/phpunit": "^11.5" }, "type": "library", "autoload": { @@ -1380,7 +1338,7 @@ ], "support": { "issues": "https://github.com/brick/math/issues", - "source": "https://github.com/brick/math/tree/0.13.1" + "source": "https://github.com/brick/math/tree/0.14.0" }, "funding": [ { @@ -1388,7 +1346,7 @@ "type": "github" } ], - "time": "2025-03-29T13:50:30+00:00" + "time": "2025-08-29T12:40:03+00:00" }, { "name": "clue/stream-filter", @@ -1756,16 +1714,16 @@ }, { "name": "doctrine/dbal", - "version": "4.3.2", + "version": "4.3.3", "source": { "type": "git", "url": "https://github.com/doctrine/dbal.git", - "reference": "7669f131d43b880de168b2d2df9687d152d6c762" + "reference": "231959669bb2173194c95636eae7f1b41b2a8b19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/7669f131d43b880de168b2d2df9687d152d6c762", - "reference": "7669f131d43b880de168b2d2df9687d152d6c762", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/231959669bb2173194c95636eae7f1b41b2a8b19", + "reference": "231959669bb2173194c95636eae7f1b41b2a8b19", "shasum": "" }, "require": { @@ -1775,10 +1733,10 @@ "psr/log": "^1|^2|^3" }, "require-dev": { - "doctrine/coding-standard": "13.0.0", + "doctrine/coding-standard": "13.0.1", "fig/log-test": "^1", "jetbrains/phpstorm-stubs": "2023.2", - "phpstan/phpstan": "2.1.17", + "phpstan/phpstan": "2.1.22", "phpstan/phpstan-phpunit": "2.0.6", "phpstan/phpstan-strict-rules": "^2", "phpunit/phpunit": "11.5.23", @@ -1842,7 +1800,7 @@ ], "support": { "issues": "https://github.com/doctrine/dbal/issues", - "source": "https://github.com/doctrine/dbal/tree/4.3.2" + "source": "https://github.com/doctrine/dbal/tree/4.3.3" }, "funding": [ { @@ -1858,7 +1816,7 @@ "type": "tidelift" } ], - "time": "2025-08-05T13:30:38+00:00" + "time": "2025-09-04T23:52:42+00:00" }, { "name": "doctrine/deprecations", @@ -1910,16 +1868,16 @@ }, { "name": "doctrine/doctrine-bundle", - "version": "2.15.1", + "version": "2.16.2", "source": { "type": "git", "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "5a305c5e776f9d3eb87f5b94d40d50aff439211d" + "reference": "1c10de0fe995f01eca6b073d1c2549ef0b603a7f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/5a305c5e776f9d3eb87f5b94d40d50aff439211d", - "reference": "5a305c5e776f9d3eb87f5b94d40d50aff439211d", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/1c10de0fe995f01eca6b073d1c2549ef0b603a7f", + "reference": "1c10de0fe995f01eca6b073d1c2549ef0b603a7f", "shasum": "" }, "require": { @@ -1953,11 +1911,11 @@ "phpstan/phpstan": "2.1.1", "phpstan/phpstan-phpunit": "2.0.3", "phpstan/phpstan-strict-rules": "^2", - "phpunit/phpunit": "^9.6.22", + "phpunit/phpunit": "^10.5.53", "psr/log": "^1.1.4 || ^2.0 || ^3.0", "symfony/doctrine-messenger": "^6.4 || ^7.0", + "symfony/expression-language": "^6.4 || ^7.0", "symfony/messenger": "^6.4 || ^7.0", - "symfony/phpunit-bridge": "^7.2", "symfony/property-info": "^6.4 || ^7.0", "symfony/security-bundle": "^6.4 || ^7.0", "symfony/stopwatch": "^6.4 || ^7.0", @@ -2012,7 +1970,7 @@ ], "support": { "issues": "https://github.com/doctrine/DoctrineBundle/issues", - "source": "https://github.com/doctrine/DoctrineBundle/tree/2.15.1" + "source": "https://github.com/doctrine/DoctrineBundle/tree/2.16.2" }, "funding": [ { @@ -2028,7 +1986,7 @@ "type": "tidelift" } ], - "time": "2025-07-30T15:48:28+00:00" + "time": "2025-09-10T19:14:48+00:00" }, { "name": "doctrine/doctrine-migrations-bundle", @@ -3158,20 +3116,19 @@ }, { "name": "gedmo/doctrine-extensions", - "version": "v3.20.0", + "version": "v3.21.0", "source": { "type": "git", "url": "https://github.com/doctrine-extensions/DoctrineExtensions.git", - "reference": "ea1d37586b8e4bae2a815feb38b177894b12c44c" + "reference": "eb53dfcb2b592327b76ac5226fbb003d32aea37e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/ea1d37586b8e4bae2a815feb38b177894b12c44c", - "reference": "ea1d37586b8e4bae2a815feb38b177894b12c44c", + "url": "https://api.github.com/repos/doctrine-extensions/DoctrineExtensions/zipball/eb53dfcb2b592327b76ac5226fbb003d32aea37e", + "reference": "eb53dfcb2b592327b76ac5226fbb003d32aea37e", "shasum": "" }, "require": { - "behat/transliterator": "^1.2", "doctrine/collections": "^1.2 || ^2.0", "doctrine/deprecations": "^1.0", "doctrine/event-manager": "^1.2 || ^2.0", @@ -3179,9 +3136,11 @@ "php": "^7.4 || ^8.0", "psr/cache": "^1 || ^2 || ^3", "psr/clock": "^1", - "symfony/cache": "^5.4 || ^6.0 || ^7.0" + "symfony/cache": "^5.4 || ^6.0 || ^7.0", + "symfony/string": "^5.4 || ^6.0 || ^7.0" }, "conflict": { + "behat/transliterator": "<1.2 || >=2.0", "doctrine/annotations": "<1.13 || >=3.0", "doctrine/common": "<2.13 || >=4.0", "doctrine/dbal": "<3.7 || >=5.0", @@ -3189,6 +3148,7 @@ "doctrine/orm": "<2.20 || >=3.0 <3.3 || >=4.0" }, "require-dev": { + "behat/transliterator": "^1.2", "doctrine/annotations": "^1.13 || ^2.0", "doctrine/cache": "^1.11 || ^2.0", "doctrine/common": "^2.13 || ^3.0", @@ -3205,7 +3165,7 @@ "rector/rector": "^2.0.6", "symfony/console": "^5.4 || ^6.0 || ^7.0", "symfony/doctrine-bridge": "^5.4 || ^6.0 || ^7.0", - "symfony/phpunit-bridge": "^6.0 || ^7.0", + "symfony/phpunit-bridge": "^6.4 || ^7.0", "symfony/uid": "^5.4 || ^6.0 || ^7.0", "symfony/yaml": "^5.4 || ^6.0 || ^7.0" }, @@ -3264,7 +3224,7 @@ "support": { "docs": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/main/doc", "issues": "https://github.com/doctrine-extensions/DoctrineExtensions/issues", - "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.20.0" + "source": "https://github.com/doctrine-extensions/DoctrineExtensions/tree/v3.21.0" }, "funding": [ { @@ -3284,7 +3244,87 @@ "type": "github" } ], - "time": "2025-04-04T17:19:27+00:00" + "time": "2025-09-22T17:04:34+00:00" + }, + { + "name": "gesdinet/jwt-refresh-token-bundle", + "version": "v1.5.0", + "source": { + "type": "git", + "url": "https://github.com/markitosgv/JWTRefreshTokenBundle.git", + "reference": "8706b0d8dcb26610358ba3328ec412315b55c3cd" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/markitosgv/JWTRefreshTokenBundle/zipball/8706b0d8dcb26610358ba3328ec412315b55c3cd", + "reference": "8706b0d8dcb26610358ba3328ec412315b55c3cd", + "shasum": "" + }, + "require": { + "doctrine/persistence": "^1.3.3|^2.0|^3.0|^4.0", + "lexik/jwt-authentication-bundle": "^2.0|^3.0", + "php": ">=7.4", + "symfony/config": "^5.4|^6.0|^7.0", + "symfony/console": "^5.4|^6.0|^7.0", + "symfony/dependency-injection": "^5.4|^6.0|^7.0", + "symfony/deprecation-contracts": "^2.1|^3.0", + "symfony/event-dispatcher": "^5.4|^6.0|^7.0", + "symfony/http-foundation": "^5.4|^6.0|^7.0", + "symfony/http-kernel": "^5.4|^6.0|^7.0", + "symfony/polyfill-php80": "^1.15", + "symfony/property-access": "^5.4|^6.0|^7.0", + "symfony/security-bundle": "^5.4|^6.0|^7.0", + "symfony/security-core": "^5.4|^6.0|^7.0", + "symfony/security-http": "^5.4|^6.0|^7.0" + }, + "conflict": { + "doctrine/mongodb-odm": "<2.2", + "doctrine/orm": "<2.7" + }, + "require-dev": { + "doctrine/annotations": "^1.13|^2.0", + "doctrine/cache": "^1.11|^2.0", + "doctrine/mongodb-odm": "^2.2", + "doctrine/orm": "^2.7|^3.0", + "matthiasnoback/symfony-config-test": "^4.2|^5.0", + "matthiasnoback/symfony-dependency-injection-test": "^4.2|^5.0", + "phpunit/phpunit": "^9.5", + "symfony/cache": "^5.4|^6.0|^7.0", + "symfony/security-guard": "^5.4" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "autoload": { + "psr-4": { + "Gesdinet\\JWTRefreshTokenBundle\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marcos Gómez Vilches", + "email": "marcos@gesdinet.com" + } + ], + "description": "Implements a refresh token system over Json Web Tokens in Symfony", + "keywords": [ + "jwt refresh token bundle symfony json web" + ], + "support": { + "issues": "https://github.com/markitosgv/JWTRefreshTokenBundle/issues", + "source": "https://github.com/markitosgv/JWTRefreshTokenBundle/tree/v1.5.0" + }, + "time": "2025-06-24T13:08:37+00:00" }, { "name": "google/recaptcha", @@ -3725,16 +3765,16 @@ }, { "name": "knpuniversity/oauth2-client-bundle", - "version": "v2.18.4", + "version": "v2.19.0", "source": { "type": "git", "url": "https://github.com/knpuniversity/oauth2-client-bundle.git", - "reference": "2f48e1ff7969ef0252482d0f6af874eca639ea2d" + "reference": "cd1cb6945a46df81be6e94944872546ca4bf335c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/2f48e1ff7969ef0252482d0f6af874eca639ea2d", - "reference": "2f48e1ff7969ef0252482d0f6af874eca639ea2d", + "url": "https://api.github.com/repos/knpuniversity/oauth2-client-bundle/zipball/cd1cb6945a46df81be6e94944872546ca4bf335c", + "reference": "cd1cb6945a46df81be6e94944872546ca4bf335c", "shasum": "" }, "require": { @@ -3778,9 +3818,9 @@ ], "support": { "issues": "https://github.com/knpuniversity/oauth2-client-bundle/issues", - "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.18.4" + "source": "https://github.com/knpuniversity/oauth2-client-bundle/tree/v2.19.0" }, - "time": "2025-08-18T15:33:00+00:00" + "time": "2025-09-17T15:00:36+00:00" }, { "name": "lcobucci/clock", @@ -4960,16 +5000,16 @@ }, { "name": "phpstan/phpdoc-parser", - "version": "2.2.0", + "version": "2.3.0", "source": { "type": "git", "url": "https://github.com/phpstan/phpdoc-parser.git", - "reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8" + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/b9e61a61e39e02dd90944e9115241c7f7e76bfd8", - "reference": "b9e61a61e39e02dd90944e9115241c7f7e76bfd8", + "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/1e0cd5370df5dd2e556a36b9c62f62e555870495", + "reference": "1e0cd5370df5dd2e556a36b9c62f62e555870495", "shasum": "" }, "require": { @@ -5001,9 +5041,9 @@ "description": "PHPDoc parser with support for nullable, intersection and generic types", "support": { "issues": "https://github.com/phpstan/phpdoc-parser/issues", - "source": "https://github.com/phpstan/phpdoc-parser/tree/2.2.0" + "source": "https://github.com/phpstan/phpdoc-parser/tree/2.3.0" }, - "time": "2025-07-13T07:04:09+00:00" + "time": "2025-08-30T15:50:23+00:00" }, { "name": "psr/cache", @@ -5593,20 +5633,20 @@ }, { "name": "ramsey/uuid", - "version": "4.9.0", + "version": "4.9.1", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0" + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4e0e23cc785f0724a0e838279a9eb03f28b092a0", - "reference": "4e0e23cc785f0724a0e838279a9eb03f28b092a0", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/81f941f6f729b1e3ceea61d9d014f8b6c6800440", + "reference": "81f941f6f729b1e3ceea61d9d014f8b6c6800440", "shasum": "" }, "require": { - "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13", + "brick/math": "^0.8.8 || ^0.9 || ^0.10 || ^0.11 || ^0.12 || ^0.13 || ^0.14", "php": "^8.0", "ramsey/collection": "^1.2 || ^2.0" }, @@ -5665,9 +5705,9 @@ ], "support": { "issues": "https://github.com/ramsey/uuid/issues", - "source": "https://github.com/ramsey/uuid/tree/4.9.0" + "source": "https://github.com/ramsey/uuid/tree/4.9.1" }, - "time": "2025-06-25T14:20:11+00:00" + "time": "2025-09-04T20:59:21+00:00" }, { "name": "rize/uri-template", @@ -5735,16 +5775,16 @@ }, { "name": "sentry/sentry", - "version": "4.15.0", + "version": "4.16.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "b2d84de69f3eda8ca22b0b00e9f923be3b837355" + "reference": "c5b086e4235762da175034bc463b0d31cbb38d2e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/b2d84de69f3eda8ca22b0b00e9f923be3b837355", - "reference": "b2d84de69f3eda8ca22b0b00e9f923be3b837355", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/c5b086e4235762da175034bc463b0d31cbb38d2e", + "reference": "c5b086e4235762da175034bc463b0d31cbb38d2e", "shasum": "" }, "require": { @@ -5808,7 +5848,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/4.15.0" + "source": "https://github.com/getsentry/sentry-php/tree/4.16.0" }, "funding": [ { @@ -5820,27 +5860,27 @@ "type": "custom" } ], - "time": "2025-08-20T14:26:37+00:00" + "time": "2025-09-22T13:38:03+00:00" }, { "name": "sentry/sentry-symfony", - "version": "5.3.1", + "version": "5.6.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-symfony.git", - "reference": "f98f641adec07f0d6ef9a63f2e84a97f533a4466" + "reference": "9867751f5091b55d7e3a223f48d88e228132e073" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-symfony/zipball/f98f641adec07f0d6ef9a63f2e84a97f533a4466", - "reference": "f98f641adec07f0d6ef9a63f2e84a97f533a4466", + "url": "https://api.github.com/repos/getsentry/sentry-symfony/zipball/9867751f5091b55d7e3a223f48d88e228132e073", + "reference": "9867751f5091b55d7e3a223f48d88e228132e073", "shasum": "" }, "require": { "guzzlehttp/psr7": "^2.1.1", "jean85/pretty-package-versions": "^1.5||^2.0", "php": "^7.2||^8.0", - "sentry/sentry": "^4.14.1", + "sentry/sentry": "^4.16.0", "symfony/cache-contracts": "^1.1||^2.4||^3.0", "symfony/config": "^4.4.20||^5.0.11||^6.0||^7.0", "symfony/console": "^4.4.20||^5.0.11||^6.0||^7.0", @@ -5910,7 +5950,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-symfony/issues", - "source": "https://github.com/getsentry/sentry-symfony/tree/5.3.1" + "source": "https://github.com/getsentry/sentry-symfony/tree/5.6.0" }, "funding": [ { @@ -5922,7 +5962,7 @@ "type": "custom" } ], - "time": "2025-07-30T19:30:27+00:00" + "time": "2025-09-24T13:41:01+00:00" }, { "name": "stof/doctrine-extensions-bundle", @@ -6171,16 +6211,16 @@ }, { "name": "symfony/cache", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "6621a2bee5373e3e972b2ae5dbedd5ac899d8cb6" + "reference": "bf8afc8ffd4bfd3d9c373e417f041d9f1e5b863f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/6621a2bee5373e3e972b2ae5dbedd5ac899d8cb6", - "reference": "6621a2bee5373e3e972b2ae5dbedd5ac899d8cb6", + "url": "https://api.github.com/repos/symfony/cache/zipball/bf8afc8ffd4bfd3d9c373e417f041d9f1e5b863f", + "reference": "bf8afc8ffd4bfd3d9c373e417f041d9f1e5b863f", "shasum": "" }, "require": { @@ -6249,7 +6289,7 @@ "psr6" ], "support": { - "source": "https://github.com/symfony/cache/tree/v7.3.2" + "source": "https://github.com/symfony/cache/tree/v7.3.4" }, "funding": [ { @@ -6269,7 +6309,7 @@ "type": "tidelift" } ], - "time": "2025-07-30T17:13:41+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/cache-contracts", @@ -6423,16 +6463,16 @@ }, { "name": "symfony/config", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "faef36e271bbeb74a9d733be4b56419b157762e2" + "reference": "8a09223170046d2cfda3d2e11af01df2c641e961" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/faef36e271bbeb74a9d733be4b56419b157762e2", - "reference": "faef36e271bbeb74a9d733be4b56419b157762e2", + "url": "https://api.github.com/repos/symfony/config/zipball/8a09223170046d2cfda3d2e11af01df2c641e961", + "reference": "8a09223170046d2cfda3d2e11af01df2c641e961", "shasum": "" }, "require": { @@ -6478,7 +6518,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v7.3.2" + "source": "https://github.com/symfony/config/tree/v7.3.4" }, "funding": [ { @@ -6498,7 +6538,7 @@ "type": "tidelift" } ], - "time": "2025-07-26T13:55:06+00:00" + "time": "2025-09-22T12:46:16+00:00" }, { "name": "symfony/console", @@ -6665,16 +6705,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "6cd2a1a77e8a0676a26e8bcddf10acfe7b0ba352" + "reference": "82119812ab0bf3425c1234d413efd1b19bb92ae4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/6cd2a1a77e8a0676a26e8bcddf10acfe7b0ba352", - "reference": "6cd2a1a77e8a0676a26e8bcddf10acfe7b0ba352", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/82119812ab0bf3425c1234d413efd1b19bb92ae4", + "reference": "82119812ab0bf3425c1234d413efd1b19bb92ae4", "shasum": "" }, "require": { @@ -6725,7 +6765,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v7.3.2" + "source": "https://github.com/symfony/dependency-injection/tree/v7.3.4" }, "funding": [ { @@ -6745,7 +6785,7 @@ "type": "tidelift" } ], - "time": "2025-07-30T17:31:46+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/deprecation-contracts", @@ -6816,16 +6856,16 @@ }, { "name": "symfony/doctrine-bridge", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/doctrine-bridge.git", - "reference": "a2cbc12baf9bcc5d0c125e4c0f8330b98af841ca" + "reference": "21cd48c34a47a0d0e303a590a67c3450fde55888" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/a2cbc12baf9bcc5d0c125e4c0f8330b98af841ca", - "reference": "a2cbc12baf9bcc5d0c125e4c0f8330b98af841ca", + "url": "https://api.github.com/repos/symfony/doctrine-bridge/zipball/21cd48c34a47a0d0e303a590a67c3450fde55888", + "reference": "21cd48c34a47a0d0e303a590a67c3450fde55888", "shasum": "" }, "require": { @@ -6905,7 +6945,7 @@ "description": "Provides integration for Doctrine with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/doctrine-bridge/tree/v7.3.2" + "source": "https://github.com/symfony/doctrine-bridge/tree/v7.3.4" }, "funding": [ { @@ -6925,7 +6965,7 @@ "type": "tidelift" } ], - "time": "2025-07-15T11:36:08+00:00" + "time": "2025-09-24T09:56:23+00:00" }, { "name": "symfony/dotenv", @@ -7007,16 +7047,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3" + "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/0b31a944fcd8759ae294da4d2808cbc53aebd0c3", - "reference": "0b31a944fcd8759ae294da4d2808cbc53aebd0c3", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", + "reference": "99f81bc944ab8e5dae4f21b4ca9972698bbad0e4", "shasum": "" }, "require": { @@ -7064,7 +7104,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.3.2" + "source": "https://github.com/symfony/error-handler/tree/v7.3.4" }, "funding": [ { @@ -7084,20 +7124,20 @@ "type": "tidelift" } ], - "time": "2025-07-07T08:17:57+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v7.3.0", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d" + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d", - "reference": "497f73ac996a598c92409b44ac43b6690c4f666d", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/b7dc69e71de420ac04bc9ab830cf3ffebba48191", + "reference": "b7dc69e71de420ac04bc9ab830cf3ffebba48191", "shasum": "" }, "require": { @@ -7148,7 +7188,7 @@ "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0" + "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.3" }, "funding": [ { @@ -7159,12 +7199,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-22T09:11:45+00:00" + "time": "2025-08-13T11:49:31+00:00" }, { "name": "symfony/event-dispatcher-contracts", @@ -7858,16 +7902,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6" + "reference": "c061c7c18918b1b64268771aad04b40be41dd2e6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/6877c122b3a6cc3695849622720054f6e6fa5fa6", - "reference": "6877c122b3a6cc3695849622720054f6e6fa5fa6", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/c061c7c18918b1b64268771aad04b40be41dd2e6", + "reference": "c061c7c18918b1b64268771aad04b40be41dd2e6", "shasum": "" }, "require": { @@ -7917,7 +7961,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.3.2" + "source": "https://github.com/symfony/http-foundation/tree/v7.3.4" }, "funding": [ { @@ -7937,20 +7981,20 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-09-16T08:38:17+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c" + "reference": "b796dffea7821f035047235e076b60ca2446e3cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/6ecc895559ec0097e221ed2fd5eb44d5fede083c", - "reference": "6ecc895559ec0097e221ed2fd5eb44d5fede083c", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/b796dffea7821f035047235e076b60ca2446e3cf", + "reference": "b796dffea7821f035047235e076b60ca2446e3cf", "shasum": "" }, "require": { @@ -8035,7 +8079,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.3.2" + "source": "https://github.com/symfony/http-kernel/tree/v7.3.4" }, "funding": [ { @@ -8055,7 +8099,7 @@ "type": "tidelift" } ], - "time": "2025-07-31T10:45:04+00:00" + "time": "2025-09-27T12:32:17+00:00" }, { "name": "symfony/intl", @@ -8233,16 +8277,16 @@ }, { "name": "symfony/mime", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1" + "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/e0a0f859148daf1edf6c60b398eb40bfc96697d1", - "reference": "e0a0f859148daf1edf6c60b398eb40bfc96697d1", + "url": "https://api.github.com/repos/symfony/mime/zipball/b1b828f69cbaf887fa835a091869e55df91d0e35", + "reference": "b1b828f69cbaf887fa835a091869e55df91d0e35", "shasum": "" }, "require": { @@ -8297,7 +8341,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.3.2" + "source": "https://github.com/symfony/mime/tree/v7.3.4" }, "funding": [ { @@ -8317,20 +8361,20 @@ "type": "tidelift" } ], - "time": "2025-07-15T13:41:35+00:00" + "time": "2025-09-16T08:38:17+00:00" }, { "name": "symfony/monolog-bridge", - "version": "v7.3.0", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/monolog-bridge.git", - "reference": "1b188c8abbbef25b111da878797514b7a8d33990" + "reference": "7acf2abe23e5019451399ba69fc8ed3d61d4d8f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/1b188c8abbbef25b111da878797514b7a8d33990", - "reference": "1b188c8abbbef25b111da878797514b7a8d33990", + "url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/7acf2abe23e5019451399ba69fc8ed3d61d4d8f0", + "reference": "7acf2abe23e5019451399ba69fc8ed3d61d4d8f0", "shasum": "" }, "require": { @@ -8379,7 +8423,7 @@ "description": "Provides integration for Monolog with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/monolog-bridge/tree/v7.3.0" + "source": "https://github.com/symfony/monolog-bridge/tree/v7.3.4" }, "funding": [ { @@ -8390,12 +8434,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-03-21T12:17:46+00:00" + "time": "2025-09-24T16:45:39+00:00" }, { "name": "symfony/monolog-bundle", @@ -8480,16 +8528,16 @@ }, { "name": "symfony/options-resolver", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/options-resolver.git", - "reference": "119bcf13e67dbd188e5dbc74228b1686f66acd37" + "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/options-resolver/zipball/119bcf13e67dbd188e5dbc74228b1686f66acd37", - "reference": "119bcf13e67dbd188e5dbc74228b1686f66acd37", + "url": "https://api.github.com/repos/symfony/options-resolver/zipball/0ff2f5c3df08a395232bbc3c2eb7e84912df911d", + "reference": "0ff2f5c3df08a395232bbc3c2eb7e84912df911d", "shasum": "" }, "require": { @@ -8527,7 +8575,7 @@ "options" ], "support": { - "source": "https://github.com/symfony/options-resolver/tree/v7.3.2" + "source": "https://github.com/symfony/options-resolver/tree/v7.3.3" }, "funding": [ { @@ -8547,7 +8595,7 @@ "type": "tidelift" } ], - "time": "2025-07-15T11:36:08+00:00" + "time": "2025-08-05T10:16:07+00:00" }, { "name": "symfony/password-hasher", @@ -9122,16 +9170,16 @@ }, { "name": "symfony/routing", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "7614b8ca5fa89b9cd233e21b627bfc5774f586e4" + "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/7614b8ca5fa89b9cd233e21b627bfc5774f586e4", - "reference": "7614b8ca5fa89b9cd233e21b627bfc5774f586e4", + "url": "https://api.github.com/repos/symfony/routing/zipball/8dc648e159e9bac02b703b9fbd937f19ba13d07c", + "reference": "8dc648e159e9bac02b703b9fbd937f19ba13d07c", "shasum": "" }, "require": { @@ -9183,7 +9231,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.3.2" + "source": "https://github.com/symfony/routing/tree/v7.3.4" }, "funding": [ { @@ -9203,7 +9251,7 @@ "type": "tidelift" } ], - "time": "2025-07-15T11:36:08+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/runtime", @@ -9396,16 +9444,16 @@ }, { "name": "symfony/security-core", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/security-core.git", - "reference": "d8e1bb0de26266e2e4525beda0aed7f774e9c80d" + "reference": "68b9d3ca57615afde6152a1e1441fa035bea43f8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-core/zipball/d8e1bb0de26266e2e4525beda0aed7f774e9c80d", - "reference": "d8e1bb0de26266e2e4525beda0aed7f774e9c80d", + "url": "https://api.github.com/repos/symfony/security-core/zipball/68b9d3ca57615afde6152a1e1441fa035bea43f8", + "reference": "68b9d3ca57615afde6152a1e1441fa035bea43f8", "shasum": "" }, "require": { @@ -9463,7 +9511,7 @@ "description": "Symfony Security Component - Core Library", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-core/tree/v7.3.2" + "source": "https://github.com/symfony/security-core/tree/v7.3.4" }, "funding": [ { @@ -9483,7 +9531,7 @@ "type": "tidelift" } ], - "time": "2025-07-23T09:11:24+00:00" + "time": "2025-09-24T14:32:13+00:00" }, { "name": "symfony/security-csrf", @@ -9557,16 +9605,16 @@ }, { "name": "symfony/security-http", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/security-http.git", - "reference": "ca8d92035a5c8d31012458589bdaef30ef3c54d6" + "reference": "1cf54d0648ebab23bf9b8972617b79f1995e13a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/security-http/zipball/ca8d92035a5c8d31012458589bdaef30ef3c54d6", - "reference": "ca8d92035a5c8d31012458589bdaef30ef3c54d6", + "url": "https://api.github.com/repos/symfony/security-http/zipball/1cf54d0648ebab23bf9b8972617b79f1995e13a9", + "reference": "1cf54d0648ebab23bf9b8972617b79f1995e13a9", "shasum": "" }, "require": { @@ -9625,7 +9673,7 @@ "description": "Symfony Security Component - HTTP Integration", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/security-http/tree/v7.3.2" + "source": "https://github.com/symfony/security-http/tree/v7.3.4" }, "funding": [ { @@ -9645,7 +9693,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-09-09T17:06:44+00:00" }, { "name": "symfony/serializer", @@ -9897,16 +9945,16 @@ }, { "name": "symfony/string", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "42f505aff654e62ac7ac2ce21033818297ca89ca" + "reference": "f96476035142921000338bad71e5247fbc138872" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/42f505aff654e62ac7ac2ce21033818297ca89ca", - "reference": "42f505aff654e62ac7ac2ce21033818297ca89ca", + "url": "https://api.github.com/repos/symfony/string/zipball/f96476035142921000338bad71e5247fbc138872", + "reference": "f96476035142921000338bad71e5247fbc138872", "shasum": "" }, "require": { @@ -9921,7 +9969,6 @@ }, "require-dev": { "symfony/emoji": "^7.1", - "symfony/error-handler": "^6.4|^7.0", "symfony/http-client": "^6.4|^7.0", "symfony/intl": "^6.4|^7.0", "symfony/translation-contracts": "^2.5|^3.0", @@ -9964,7 +10011,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v7.3.2" + "source": "https://github.com/symfony/string/tree/v7.3.4" }, "funding": [ { @@ -9984,7 +10031,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-09-11T14:36:48+00:00" }, { "name": "symfony/translation", @@ -10166,16 +10213,16 @@ }, { "name": "symfony/twig-bridge", - "version": "v7.3.2", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/twig-bridge.git", - "reference": "81d1c69769cf913240afdd4c9673304ddca964b0" + "reference": "33558f013b7f6ed72805527c8405cae0062e47c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/81d1c69769cf913240afdd4c9673304ddca964b0", - "reference": "81d1c69769cf913240afdd4c9673304ddca964b0", + "url": "https://api.github.com/repos/symfony/twig-bridge/zipball/33558f013b7f6ed72805527c8405cae0062e47c5", + "reference": "33558f013b7f6ed72805527c8405cae0062e47c5", "shasum": "" }, "require": { @@ -10257,7 +10304,7 @@ "description": "Provides integration for Twig with various Symfony components", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/twig-bridge/tree/v7.3.2" + "source": "https://github.com/symfony/twig-bridge/tree/v7.3.3" }, "funding": [ { @@ -10277,7 +10324,7 @@ "type": "tidelift" } ], - "time": "2025-07-26T16:47:03+00:00" + "time": "2025-08-18T13:10:53+00:00" }, { "name": "symfony/twig-bundle", @@ -10369,16 +10416,16 @@ }, { "name": "symfony/type-info", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/type-info.git", - "reference": "b72d44c7d6638480fce101b7c4cd3abea4c2efba" + "reference": "d34eaeb57f39c8a9c97eb72a977c423207dfa35b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/type-info/zipball/b72d44c7d6638480fce101b7c4cd3abea4c2efba", - "reference": "b72d44c7d6638480fce101b7c4cd3abea4c2efba", + "url": "https://api.github.com/repos/symfony/type-info/zipball/d34eaeb57f39c8a9c97eb72a977c423207dfa35b", + "reference": "d34eaeb57f39c8a9c97eb72a977c423207dfa35b", "shasum": "" }, "require": { @@ -10428,7 +10475,7 @@ "type" ], "support": { - "source": "https://github.com/symfony/type-info/tree/v7.3.2" + "source": "https://github.com/symfony/type-info/tree/v7.3.4" }, "funding": [ { @@ -10448,7 +10495,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T05:39:45+00:00" + "time": "2025-09-11T15:33:27+00:00" }, { "name": "symfony/uid", @@ -10715,16 +10762,16 @@ }, { "name": "symfony/var-exporter", - "version": "v7.3.2", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "05b3e90654c097817325d6abd284f7938b05f467" + "reference": "0f020b544a30a7fe8ba972e53ee48a74c0bc87f4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/05b3e90654c097817325d6abd284f7938b05f467", - "reference": "05b3e90654c097817325d6abd284f7938b05f467", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/0f020b544a30a7fe8ba972e53ee48a74c0bc87f4", + "reference": "0f020b544a30a7fe8ba972e53ee48a74c0bc87f4", "shasum": "" }, "require": { @@ -10772,7 +10819,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v7.3.2" + "source": "https://github.com/symfony/var-exporter/tree/v7.3.4" }, "funding": [ { @@ -10792,7 +10839,7 @@ "type": "tidelift" } ], - "time": "2025-07-10T08:47:49+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/web-link", @@ -11422,7 +11469,7 @@ "packages-dev": [ { "name": "api-platform/graphql", - "version": "v4.1.20", + "version": "v4.1.23", "source": { "type": "git", "url": "https://github.com/api-platform/graphql.git", @@ -11506,22 +11553,22 @@ "graphql" ], "support": { - "source": "https://github.com/api-platform/graphql/tree/v4.1.20" + "source": "https://github.com/api-platform/graphql/tree/v4.1.23" }, "time": "2025-07-03T13:00:28+00:00" }, { "name": "brianium/paratest", - "version": "v7.11.0", + "version": "v7.13.0", "source": { "type": "git", "url": "https://github.com/paratestphp/paratest.git", - "reference": "c48f73d568f09df27177e178b61f8e910683dd5d" + "reference": "0b9a8c5b064dd502fc72d89e4a550619482906d1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/paratestphp/paratest/zipball/c48f73d568f09df27177e178b61f8e910683dd5d", - "reference": "c48f73d568f09df27177e178b61f8e910683dd5d", + "url": "https://api.github.com/repos/paratestphp/paratest/zipball/0b9a8c5b064dd502fc72d89e4a550619482906d1", + "reference": "0b9a8c5b064dd502fc72d89e4a550619482906d1", "shasum": "" }, "require": { @@ -11529,15 +11576,15 @@ "ext-pcre": "*", "ext-reflection": "*", "ext-simplexml": "*", - "fidry/cpu-core-counter": "^1.2.0", + "fidry/cpu-core-counter": "^1.3.0", "jean85/pretty-package-versions": "^2.1.1", - "php": "~8.3.0 || ~8.4.0", - "phpunit/php-code-coverage": "^12.3.1", + "php": "~8.3.0 || ~8.4.0 || ~8.5.0", + "phpunit/php-code-coverage": "^12.3.7", "phpunit/php-file-iterator": "^6", "phpunit/php-timer": "^8", - "phpunit/phpunit": "^12.2.7", - "sebastian/environment": "^8.0.2", - "symfony/console": "^6.4.20 || ^7.3.1", + "phpunit/phpunit": "^12.3.9", + "sebastian/environment": "^8.0.3", + "symfony/console": "^6.4.20 || ^7.3.2", "symfony/process": "^6.4.20 || ^7.3.0" }, "require-dev": { @@ -11545,12 +11592,12 @@ "ext-pcntl": "*", "ext-pcov": "*", "ext-posix": "*", - "phpstan/phpstan": "^2.1.17", + "phpstan/phpstan": "^2.1.23", "phpstan/phpstan-deprecation-rules": "^2.0.3", - "phpstan/phpstan-phpunit": "^2.0.6", - "phpstan/phpstan-strict-rules": "^2.0.4", - "squizlabs/php_codesniffer": "^3.13.2", - "symfony/filesystem": "^6.4.13 || ^7.3.0" + "phpstan/phpstan-phpunit": "^2.0.7", + "phpstan/phpstan-strict-rules": "^2.0.6", + "squizlabs/php_codesniffer": "^3.13.4", + "symfony/filesystem": "^6.4.13 || ^7.3.2" }, "bin": [ "bin/paratest", @@ -11590,7 +11637,7 @@ ], "support": { "issues": "https://github.com/paratestphp/paratest/issues", - "source": "https://github.com/paratestphp/paratest/tree/v7.11.0" + "source": "https://github.com/paratestphp/paratest/tree/v7.13.0" }, "funding": [ { @@ -11602,7 +11649,7 @@ "type": "paypal" } ], - "time": "2025-07-16T09:15:54+00:00" + "time": "2025-09-12T14:29:45+00:00" }, { "name": "clue/ndjson-react", @@ -12146,16 +12193,16 @@ }, { "name": "friendsofphp/php-cs-fixer", - "version": "v3.86.0", + "version": "v3.88.0", "source": { "type": "git", "url": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer.git", - "reference": "4a952bd19dc97879b0620f495552ef09b55f7d36" + "reference": "f23469674ae50d40e398bfff8018911a2a2b0dbe" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/4a952bd19dc97879b0620f495552ef09b55f7d36", - "reference": "4a952bd19dc97879b0620f495552ef09b55f7d36", + "url": "https://api.github.com/repos/PHP-CS-Fixer/PHP-CS-Fixer/zipball/f23469674ae50d40e398bfff8018911a2a2b0dbe", + "reference": "f23469674ae50d40e398bfff8018911a2a2b0dbe", "shasum": "" }, "require": { @@ -12166,39 +12213,38 @@ "ext-hash": "*", "ext-json": "*", "ext-tokenizer": "*", - "fidry/cpu-core-counter": "^1.2", + "fidry/cpu-core-counter": "^1.3", "php": "^7.4 || ^8.0", "react/child-process": "^0.6.6", "react/event-loop": "^1.5", - "react/promise": "^3.2", + "react/promise": "^3.3", "react/socket": "^1.16", "react/stream": "^1.4", "sebastian/diff": "^4.0.6 || ^5.1.1 || ^6.0.2 || ^7.0", - "symfony/console": "^5.4.47 || ^6.4.13 || ^7.0", - "symfony/event-dispatcher": "^5.4.45 || ^6.4.13 || ^7.0", - "symfony/filesystem": "^5.4.45 || ^6.4.13 || ^7.0", - "symfony/finder": "^5.4.45 || ^6.4.17 || ^7.0", - "symfony/options-resolver": "^5.4.45 || ^6.4.16 || ^7.0", - "symfony/polyfill-mbstring": "^1.32", - "symfony/polyfill-php80": "^1.32", - "symfony/polyfill-php81": "^1.32", - "symfony/process": "^5.4.47 || ^6.4.20 || ^7.2", - "symfony/stopwatch": "^5.4.45 || ^6.4.19 || ^7.0" - }, - "require-dev": { - "facile-it/paraunit": "^1.3.1 || ^2.6", - "infection/infection": "^0.29.14", - "justinrainbow/json-schema": "^5.3 || ^6.4", + "symfony/console": "^5.4.47 || ^6.4.24 || ^7.0", + "symfony/event-dispatcher": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/filesystem": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/finder": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/options-resolver": "^5.4.45 || ^6.4.24 || ^7.0", + "symfony/polyfill-mbstring": "^1.33", + "symfony/polyfill-php80": "^1.33", + "symfony/polyfill-php81": "^1.33", + "symfony/polyfill-php84": "^1.33", + "symfony/process": "^5.4.47 || ^6.4.24 || ^7.2", + "symfony/stopwatch": "^5.4.45 || ^6.4.24 || ^7.0" + }, + "require-dev": { + "facile-it/paraunit": "^1.3.1 || ^2.7", + "infection/infection": "^0.31.0", + "justinrainbow/json-schema": "^6.5", "keradus/cli-executor": "^2.2", "mikey179/vfsstream": "^1.6.12", "php-coveralls/php-coveralls": "^2.8", - "php-cs-fixer/accessible-object": "^1.1", "php-cs-fixer/phpunit-constraint-isidenticalstring": "^1.6", "php-cs-fixer/phpunit-constraint-xmlmatchesxsd": "^1.6", - "phpunit/phpunit": "^9.6.23 || ^10.5.47 || ^11.5.25", - "symfony/polyfill-php84": "^1.32", - "symfony/var-dumper": "^5.4.48 || ^6.4.23 || ^7.3.1", - "symfony/yaml": "^5.4.45 || ^6.4.23 || ^7.3.1" + "phpunit/phpunit": "^9.6.25 || ^10.5.53 || ^11.5.34", + "symfony/var-dumper": "^5.4.48 || ^6.4.24 || ^7.3.2", + "symfony/yaml": "^5.4.45 || ^6.4.24 || ^7.3.2" }, "suggest": { "ext-dom": "For handling output formats in XML", @@ -12239,7 +12285,7 @@ ], "support": { "issues": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/issues", - "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.86.0" + "source": "https://github.com/PHP-CS-Fixer/PHP-CS-Fixer/tree/v3.88.0" }, "funding": [ { @@ -12247,7 +12293,7 @@ "type": "github" } ], - "time": "2025-08-13T22:36:21+00:00" + "time": "2025-09-24T21:31:42+00:00" }, { "name": "hautelook/alice-bundle", @@ -12325,16 +12371,16 @@ }, { "name": "justinrainbow/json-schema", - "version": "6.5.1", + "version": "6.5.2", "source": { "type": "git", "url": "https://github.com/jsonrainbow/json-schema.git", - "reference": "b5ab21e431594897e5bb86343c01f140ba862c26" + "reference": "ac0d369c09653cf7af561f6d91a705bc617a87b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/b5ab21e431594897e5bb86343c01f140ba862c26", - "reference": "b5ab21e431594897e5bb86343c01f140ba862c26", + "url": "https://api.github.com/repos/jsonrainbow/json-schema/zipball/ac0d369c09653cf7af561f6d91a705bc617a87b8", + "reference": "ac0d369c09653cf7af561f6d91a705bc617a87b8", "shasum": "" }, "require": { @@ -12394,22 +12440,22 @@ ], "support": { "issues": "https://github.com/jsonrainbow/json-schema/issues", - "source": "https://github.com/jsonrainbow/json-schema/tree/6.5.1" + "source": "https://github.com/jsonrainbow/json-schema/tree/6.5.2" }, - "time": "2025-08-29T10:58:11+00:00" + "time": "2025-09-09T09:42:27+00:00" }, { "name": "marc-mabe/php-enum", - "version": "v4.7.1", + "version": "v4.7.2", "source": { "type": "git", "url": "https://github.com/marc-mabe/php-enum.git", - "reference": "7159809e5cfa041dca28e61f7f7ae58063aae8ed" + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/7159809e5cfa041dca28e61f7f7ae58063aae8ed", - "reference": "7159809e5cfa041dca28e61f7f7ae58063aae8ed", + "url": "https://api.github.com/repos/marc-mabe/php-enum/zipball/bb426fcdd65c60fb3638ef741e8782508fda7eef", + "reference": "bb426fcdd65c60fb3638ef741e8782508fda7eef", "shasum": "" }, "require": { @@ -12467,9 +12513,9 @@ ], "support": { "issues": "https://github.com/marc-mabe/php-enum/issues", - "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.1" + "source": "https://github.com/marc-mabe/php-enum/tree/v4.7.2" }, - "time": "2024-11-28T04:54:44+00:00" + "time": "2025-09-14T11:18:39+00:00" }, { "name": "masterminds/html5", @@ -13081,16 +13127,16 @@ }, { "name": "phpstan/phpstan", - "version": "2.1.22", + "version": "2.1.27", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "41600c8379eb5aee63e9413fe9e97273e25d57e4" + "reference": "25da374959afa391992792691093550b3098ef1e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/41600c8379eb5aee63e9413fe9e97273e25d57e4", - "reference": "41600c8379eb5aee63e9413fe9e97273e25d57e4", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/25da374959afa391992792691093550b3098ef1e", + "reference": "25da374959afa391992792691093550b3098ef1e", "shasum": "" }, "require": { @@ -13135,38 +13181,38 @@ "type": "github" } ], - "time": "2025-08-04T19:17:37+00:00" + "time": "2025-09-17T09:55:13+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "12.3.2", + "version": "12.4.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "086553c5b2e0e1e20293d782d788ab768202b621" + "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/086553c5b2e0e1e20293d782d788ab768202b621", - "reference": "086553c5b2e0e1e20293d782d788ab768202b621", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c", + "reference": "67e8aed88f93d0e6e1cb7effe1a2dfc2fee6022c", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^5.4.0", + "nikic/php-parser": "^5.6.1", "php": ">=8.3", "phpunit/php-file-iterator": "^6.0", "phpunit/php-text-template": "^5.0", "sebastian/complexity": "^5.0", - "sebastian/environment": "^8.0", + "sebastian/environment": "^8.0.3", "sebastian/lines-of-code": "^4.0", "sebastian/version": "^6.0", "theseer/tokenizer": "^1.2.3" }, "require-dev": { - "phpunit/phpunit": "^12.1" + "phpunit/phpunit": "^12.3.7" }, "suggest": { "ext-pcov": "PHP extension that provides line coverage", @@ -13175,7 +13221,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "12.3.x-dev" + "dev-main": "12.4.x-dev" } }, "autoload": { @@ -13204,7 +13250,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", "security": "https://github.com/sebastianbergmann/php-code-coverage/security/policy", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.3.2" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/12.4.0" }, "funding": [ { @@ -13224,7 +13270,7 @@ "type": "tidelift" } ], - "time": "2025-07-29T06:19:24+00:00" + "time": "2025-09-24T13:44:41+00:00" }, { "name": "phpunit/php-file-iterator", @@ -13473,16 +13519,16 @@ }, { "name": "phpunit/phpunit", - "version": "12.2.7", + "version": "12.3.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "8b1348b254e5959acaf1539c6bd790515fb49414" + "reference": "13e9b2bea9327b094176147250d2c10319a10f5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8b1348b254e5959acaf1539c6bd790515fb49414", - "reference": "8b1348b254e5959acaf1539c6bd790515fb49414", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/13e9b2bea9327b094176147250d2c10319a10f5b", + "reference": "13e9b2bea9327b094176147250d2c10319a10f5b", "shasum": "" }, "require": { @@ -13492,23 +13538,23 @@ "ext-mbstring": "*", "ext-xml": "*", "ext-xmlwriter": "*", - "myclabs/deep-copy": "^1.13.3", + "myclabs/deep-copy": "^1.13.4", "phar-io/manifest": "^2.0.4", "phar-io/version": "^3.2.1", "php": ">=8.3", - "phpunit/php-code-coverage": "^12.3.1", + "phpunit/php-code-coverage": "^12.3.8", "phpunit/php-file-iterator": "^6.0.0", "phpunit/php-invoker": "^6.0.0", "phpunit/php-text-template": "^5.0.0", "phpunit/php-timer": "^8.0.0", - "sebastian/cli-parser": "^4.0.0", - "sebastian/comparator": "^7.1.0", + "sebastian/cli-parser": "^4.2.0", + "sebastian/comparator": "^7.1.3", "sebastian/diff": "^7.0.0", - "sebastian/environment": "^8.0.2", - "sebastian/exporter": "^7.0.0", - "sebastian/global-state": "^8.0.0", + "sebastian/environment": "^8.0.3", + "sebastian/exporter": "^7.0.2", + "sebastian/global-state": "^8.0.2", "sebastian/object-enumerator": "^7.0.0", - "sebastian/type": "^6.0.2", + "sebastian/type": "^6.0.3", "sebastian/version": "^6.0.0", "staabm/side-effects-detector": "^1.0.5" }, @@ -13518,7 +13564,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "12.2-dev" + "dev-main": "12.3-dev" } }, "autoload": { @@ -13550,7 +13596,7 @@ "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", "security": "https://github.com/sebastianbergmann/phpunit/security/policy", - "source": "https://github.com/sebastianbergmann/phpunit/tree/12.2.7" + "source": "https://github.com/sebastianbergmann/phpunit/tree/12.3.14" }, "funding": [ { @@ -13574,7 +13620,7 @@ "type": "tidelift" } ], - "time": "2025-07-11T04:11:13+00:00" + "time": "2025-09-24T06:34:27+00:00" }, { "name": "psalm/phar", @@ -14139,16 +14185,16 @@ }, { "name": "rector/rector", - "version": "2.1.4", + "version": "2.1.7", "source": { "type": "git", "url": "https://github.com/rectorphp/rector.git", - "reference": "fe613c528819222f8686a9a037a315ef9d4915b3" + "reference": "c34cc07c4698f007a20dc5c99ff820089ae413ce" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/rectorphp/rector/zipball/fe613c528819222f8686a9a037a315ef9d4915b3", - "reference": "fe613c528819222f8686a9a037a315ef9d4915b3", + "url": "https://api.github.com/repos/rectorphp/rector/zipball/c34cc07c4698f007a20dc5c99ff820089ae413ce", + "reference": "c34cc07c4698f007a20dc5c99ff820089ae413ce", "shasum": "" }, "require": { @@ -14187,7 +14233,7 @@ ], "support": { "issues": "https://github.com/rectorphp/rector/issues", - "source": "https://github.com/rectorphp/rector/tree/2.1.4" + "source": "https://github.com/rectorphp/rector/tree/2.1.7" }, "funding": [ { @@ -14195,20 +14241,20 @@ "type": "github" } ], - "time": "2025-08-15T14:41:36+00:00" + "time": "2025-09-10T11:13:58+00:00" }, { "name": "sebastian/cli-parser", - "version": "4.0.0", + "version": "4.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/cli-parser.git", - "reference": "6d584c727d9114bcdc14c86711cd1cad51778e7c" + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/6d584c727d9114bcdc14c86711cd1cad51778e7c", - "reference": "6d584c727d9114bcdc14c86711cd1cad51778e7c", + "url": "https://api.github.com/repos/sebastianbergmann/cli-parser/zipball/90f41072d220e5c40df6e8635f5dafba2d9d4d04", + "reference": "90f41072d220e5c40df6e8635f5dafba2d9d4d04", "shasum": "" }, "require": { @@ -14220,7 +14266,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-main": "4.0-dev" + "dev-main": "4.2-dev" } }, "autoload": { @@ -14244,15 +14290,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/cli-parser/issues", "security": "https://github.com/sebastianbergmann/cli-parser/security/policy", - "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.0.0" + "source": "https://github.com/sebastianbergmann/cli-parser/tree/4.2.0" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/cli-parser", + "type": "tidelift" } ], - "time": "2025-02-07T04:53:50+00:00" + "time": "2025-09-14T09:36:45+00:00" }, { "name": "sebastian/comparator", @@ -14549,16 +14607,16 @@ }, { "name": "sebastian/exporter", - "version": "7.0.0", + "version": "7.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "76432aafc58d50691a00d86d0632f1217a47b688" + "reference": "016951ae10980765e4e7aee491eb288c64e505b7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/76432aafc58d50691a00d86d0632f1217a47b688", - "reference": "76432aafc58d50691a00d86d0632f1217a47b688", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/016951ae10980765e4e7aee491eb288c64e505b7", + "reference": "016951ae10980765e4e7aee491eb288c64e505b7", "shasum": "" }, "require": { @@ -14615,28 +14673,40 @@ "support": { "issues": "https://github.com/sebastianbergmann/exporter/issues", "security": "https://github.com/sebastianbergmann/exporter/security/policy", - "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.0" + "source": "https://github.com/sebastianbergmann/exporter/tree/7.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/exporter", + "type": "tidelift" } ], - "time": "2025-02-07T04:56:42+00:00" + "time": "2025-09-24T06:16:11+00:00" }, { "name": "sebastian/global-state", - "version": "8.0.0", + "version": "8.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "570a2aeb26d40f057af686d63c4e99b075fb6cbc" + "reference": "ef1377171613d09edd25b7816f05be8313f9115d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/570a2aeb26d40f057af686d63c4e99b075fb6cbc", - "reference": "570a2aeb26d40f057af686d63c4e99b075fb6cbc", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/ef1377171613d09edd25b7816f05be8313f9115d", + "reference": "ef1377171613d09edd25b7816f05be8313f9115d", "shasum": "" }, "require": { @@ -14677,15 +14747,27 @@ "support": { "issues": "https://github.com/sebastianbergmann/global-state/issues", "security": "https://github.com/sebastianbergmann/global-state/security/policy", - "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.0" + "source": "https://github.com/sebastianbergmann/global-state/tree/8.0.2" }, "funding": [ { "url": "https://github.com/sebastianbergmann", "type": "github" + }, + { + "url": "https://liberapay.com/sebastianbergmann", + "type": "liberapay" + }, + { + "url": "https://thanks.dev/u/gh/sebastianbergmann", + "type": "thanks_dev" + }, + { + "url": "https://tidelift.com/funding/github/packagist/sebastian/global-state", + "type": "tidelift" } ], - "time": "2025-02-07T04:56:59+00:00" + "time": "2025-08-29T11:29:25+00:00" }, { "name": "sebastian/lines-of-code", @@ -15332,16 +15414,16 @@ }, { "name": "symfony/dom-crawler", - "version": "v7.3.1", + "version": "v7.3.3", "source": { "type": "git", "url": "https://github.com/symfony/dom-crawler.git", - "reference": "8b2ee2e06ab99fa5f067b6699296d4e35c156bb9" + "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/8b2ee2e06ab99fa5f067b6699296d4e35c156bb9", - "reference": "8b2ee2e06ab99fa5f067b6699296d4e35c156bb9", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/efa076ea0eeff504383ff0dcf827ea5ce15690ba", + "reference": "efa076ea0eeff504383ff0dcf827ea5ce15690ba", "shasum": "" }, "require": { @@ -15379,7 +15461,7 @@ "description": "Eases DOM navigation for HTML and XML documents", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dom-crawler/tree/v7.3.1" + "source": "https://github.com/symfony/dom-crawler/tree/v7.3.3" }, "funding": [ { @@ -15390,12 +15472,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-06-15T10:07:06+00:00" + "time": "2025-08-06T20:13:54+00:00" }, { "name": "symfony/maker-bundle", @@ -15492,16 +15578,16 @@ }, { "name": "symfony/process", - "version": "v7.3.0", + "version": "v7.3.4", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af" + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", - "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af", + "url": "https://api.github.com/repos/symfony/process/zipball/f24f8f316367b30810810d4eb30c543d7003ff3b", + "reference": "f24f8f316367b30810810d4eb30c543d7003ff3b", "shasum": "" }, "require": { @@ -15533,7 +15619,7 @@ "description": "Executes commands in sub-processes", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/process/tree/v7.3.0" + "source": "https://github.com/symfony/process/tree/v7.3.4" }, "funding": [ { @@ -15544,12 +15630,16 @@ "url": "https://github.com/fabpot", "type": "github" }, + { + "url": "https://github.com/nicolas-grekas", + "type": "github" + }, { "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", "type": "tidelift" } ], - "time": "2025-04-17T09:11:12+00:00" + "time": "2025-09-11T10:12:26+00:00" }, { "name": "symfony/web-profiler-bundle", diff --git a/api/config/bundles.php b/api/config/bundles.php index 8df45f3cfd..1c9079527d 100644 --- a/api/config/bundles.php +++ b/api/config/bundles.php @@ -6,6 +6,7 @@ use Exercise\HTMLPurifierBundle\ExerciseHTMLPurifierBundle; use Fidry\AliceDataFixtures\Bridge\Symfony\FidryAliceDataFixturesBundle; use FOS\HttpCacheBundle\FOSHttpCacheBundle; +use Gesdinet\JWTRefreshTokenBundle\GesdinetJWTRefreshTokenBundle; use Hautelook\AliceBundle\HautelookAliceBundle; use KnpU\OAuth2ClientBundle\KnpUOAuth2ClientBundle; use Lexik\Bundle\JWTAuthenticationBundle\LexikJWTAuthenticationBundle; @@ -44,4 +45,5 @@ SentryBundle::class => ['all' => true], TwigExtraBundle::class => ['all' => true], FOSHttpCacheBundle::class => ['all' => true], + GesdinetJWTRefreshTokenBundle::class => ['all' => true], ]; diff --git a/api/config/packages/framework.yaml b/api/config/packages/framework.yaml index b3698a2871..9107f30938 100644 --- a/api/config/packages/framework.yaml +++ b/api/config/packages/framework.yaml @@ -10,6 +10,7 @@ framework: # See https://caddyserver.com/docs/caddyfile/directives/reverse_proxy#headers trusted_headers: - 'x-forwarded-for' + - 'x-forwarded-host' - 'x-forwarded-prefix' - 'x-forwarded-proto' diff --git a/api/config/packages/gesdinet_jwt_refresh_token.yaml b/api/config/packages/gesdinet_jwt_refresh_token.yaml new file mode 100644 index 0000000000..b10f394de4 --- /dev/null +++ b/api/config/packages/gesdinet_jwt_refresh_token.yaml @@ -0,0 +1,11 @@ +gesdinet_jwt_refresh_token: + cookie: + enabled: true + same_site: strict + path: / + http_only: true + secure: '%env(bool:COOKIE_SECURE)%' + remove_token_from_body: true + refresh_token_class: App\Entity\RefreshToken + single_use: true + token_parameter_name: '%env(COOKIE_PREFIX)%refresh_token' diff --git a/api/config/packages/lexik_jwt_authentication.yaml b/api/config/packages/lexik_jwt_authentication.yaml index 9c41d2d8c3..f2e3b4e20c 100644 --- a/api/config/packages/lexik_jwt_authentication.yaml +++ b/api/config/packages/lexik_jwt_authentication.yaml @@ -7,9 +7,7 @@ lexik_jwt_authentication: public_key: '%env(resolve:JWT_PUBLIC_KEY)%' pass_phrase: '%env(JWT_PASSPHRASE)%' - # Tokens are valid for 12 hours, should be safe because we never expose the whole token to JavaScript. - # Of course it would be even better to have only short-lived tokens but renew them on every request. - token_ttl: 43200 + token_ttl: '%env(AUTHENTICATION_TOKEN_TTL)%' # Read the JWT token from a split cookie: The [api-domain]_jwt_hp and [api-domain]_jwt_s cookies are combined with a period (.) # to form the full JWT token. diff --git a/api/config/packages/security.yaml b/api/config/packages/security.yaml index 5e9a060ede..6a6148083d 100644 --- a/api/config/packages/security.yaml +++ b/api/config/packages/security.yaml @@ -28,6 +28,7 @@ security: lazy: true provider: app_user_provider user_checker: App\Security\UserStatusChecker + entry_point: jwt json_login: check_path: /authentication_token username_path: identifier @@ -35,6 +36,8 @@ security: success_handler: lexik_jwt_authentication.handler.authentication_success failure_handler: lexik_jwt_authentication.handler.authentication_failure jwt: ~ + refresh_jwt: + check_path: /token/refresh custom_authenticators: - App\Security\OAuth\GoogleAuthenticator - App\Security\OAuth\HitobitoAuthenticator @@ -46,6 +49,7 @@ security: - { path: ^/auth, roles: PUBLIC_ACCESS } # OAuth and resend password endpoints - { path: ^/content_types, roles: PUBLIC_ACCESS } # Content types is more or less static and the same for all camps - { path: ^/invitations/.*/(find|reject), roles: PUBLIC_ACCESS } + - { path: ^/token/refresh, roles: PUBLIC_ACCESS } - { path: ^/users$, methods: [POST], roles: PUBLIC_ACCESS } # register - { path: ^/users/.*/activate$, methods: [PATCH], roles: PUBLIC_ACCESS } - { path: .*, roles: [ROLE_USER] } # Protect all other routes must be at the end diff --git a/api/config/routes.yaml b/api/config/routes.yaml index 7169860d33..73fbaa045b 100644 --- a/api/config/routes.yaml +++ b/api/config/routes.yaml @@ -4,3 +4,6 @@ authentication_token: path: /authentication_token methods: ['POST'] +api_refresh_token: + path: /token/refresh + methods: ['POST'] diff --git a/api/config/services.yaml b/api/config/services.yaml index d8ce8c5382..ac8a9ca8cc 100644 --- a/api/config/services.yaml +++ b/api/config/services.yaml @@ -103,6 +103,12 @@ services: App\OpenApi\OAuthDecorator: decorates: 'api_platform.openapi.factory' + App\OpenApi\RefreshTokenDecorator: + decorates: 'api_platform.openapi.factory' + arguments: + - '@.inner' + - '%env(COOKIE_PREFIX)%' + App\OAuth\UrlGeneratorDecorator: class: App\OAuth\UrlGeneratorDecorator arguments: diff --git a/api/docker/php/conf.d/api-platform.dev.ini b/api/docker/php/conf.d/api-platform.dev.ini index ea217ae806..5417152824 100644 --- a/api/docker/php/conf.d/api-platform.dev.ini +++ b/api/docker/php/conf.d/api-platform.dev.ini @@ -2,4 +2,5 @@ ; See https://github.com/docker/for-linux/issues/264 ; The `client_host` below may optionally be replaced with `discover_client_host=yes` ; Add `start_with_request=yes` to start debug session on each request -xdebug.client_host = host.docker.internal \ No newline at end of file +memory_limit = ${PHP_MEMORY_LIMIT:-} +xdebug.client_host = host.docker.internal diff --git a/api/fixtures/activities.yml b/api/fixtures/activities.yml index 56bdfdc228..50b1214432 100644 --- a/api/fixtures/activities.yml +++ b/api/fixtures/activities.yml @@ -24,3 +24,9 @@ App\Entity\Activity: location: rootContentNode: '@columnLayout1campPrototype' category: '@category1campPrototype' + activity1campShared: + camp: '@campShared' + title: + location: + rootContentNode: '@columnLayout1campShared' + category: '@category1campShared' diff --git a/api/fixtures/activity-progress-labels.yml b/api/fixtures/activity-progress-labels.yml index 3b38e04ff4..5b118ed622 100644 --- a/api/fixtures/activity-progress-labels.yml +++ b/api/fixtures/activity-progress-labels.yml @@ -35,4 +35,12 @@ App\Entity\ActivityProgressLabel: camp: '@campPrototype' position: 2 title: 'Überprüft' + activityProgressLabel1campShared: + camp: '@campShared' + position: 0 + title: 'In Planung' + activityProgressLabel2campShared: + camp: '@campShared' + position: 1 + title: 'Geplant' \ No newline at end of file diff --git a/api/fixtures/activityResponsibles.yml b/api/fixtures/activityResponsibles.yml index bb724b82e4..88f819be67 100644 --- a/api/fixtures/activityResponsibles.yml +++ b/api/fixtures/activityResponsibles.yml @@ -11,3 +11,6 @@ App\Entity\ActivityResponsible: activityResponsible1campPrototype: campCollaboration: '@campCollaboration1campPrototype' activity: '@activity1campPrototype' + activityResponsible1campShared: + campCollaboration: '@campCollaboration1campShared' + activity: '@activity1campShared' diff --git a/api/fixtures/campCollaborations.yml b/api/fixtures/campCollaborations.yml index f345312b04..010f3f1294 100644 --- a/api/fixtures/campCollaborations.yml +++ b/api/fixtures/campCollaborations.yml @@ -77,3 +77,27 @@ App\Entity\CampCollaboration: camp: '@campPrototype' status: established role: manager + campCollaboration1campShared: + user: '@user4unrelated' + camp: '@campShared' + status: established + role: manager + campCollaboration2invitedCampShared: + user: '@user6invited' + camp: '@campShared' + inviteKey: "myInviteKeyCampShared" + inviteKeyHash: "sl3hC12VkIUzT89mMggYyoMmFup=" + status: invited + role: manager + campCollaboration3inactiveCampShared: + user: '@user5inactive' + camp: '@campShared' + status: inactive + role: manager + campCollaboration4invitedCampShared: + camp: '@campShared' + inviteKey: "myInviteKeyCampShared" + inviteKeyHash: "sl3hC12VkIUzT89mMggYyoMmFuq=" + inviteEmail: "e.mail@test.com" + status: invited + role: manager diff --git a/api/fixtures/camps.yml b/api/fixtures/camps.yml index aa99082f3d..01d6b73b14 100644 --- a/api/fixtures/camps.yml +++ b/api/fixtures/camps.yml @@ -10,6 +10,9 @@ App\Entity\Camp: owner: '@user1manager' creator: '@user2member' isPrototype: false + isShared: false + sharedBy: null + sharedSince: null campPrototypeId: null camp2: shortTitle: Camp2 @@ -22,6 +25,9 @@ App\Entity\Camp: owner: '@admin' creator: '@user4unrelated' isPrototype: false + isShared: false + sharedBy: null + sharedSince: null campPrototypeId: null campUnrelated: shortTitle: CampUnrelated @@ -34,6 +40,9 @@ App\Entity\Camp: owner: '@admin' creator: '@admin' isPrototype: false + isShared: false + sharedBy: null + sharedSince: null campPrototypeId: null campPrototype: shortTitle: CampPrototype @@ -45,5 +54,25 @@ App\Entity\Camp: addressCity: owner: '@admin' creator: '@admin' + isPublic: true isPrototype: true + isShared: false + sharedBy: null + sharedSince: null + campPrototypeId: null + campShared: + shortTitle: CampPrototype + title: + motto: + addressName: + addressStreet: + addressZipcode: + addressCity: + owner: '@admin' + creator: '@admin' + isPublic: true + isPrototype: false + isShared: true + sharedBy: '@admin' + sharedSince: '<(new DateTime("2025-09-03 12:00:00"))>' campPrototypeId: null diff --git a/api/fixtures/categories.yml b/api/fixtures/categories.yml index c66effe26f..110ca17fd5 100644 --- a/api/fixtures/categories.yml +++ b/api/fixtures/categories.yml @@ -43,3 +43,10 @@ App\Entity\Category: color: '#4DBB52' numberingStyle: 1 rootContentNode: '@columnLayout2campPrototype' + category1campShared: + camp: '@campShared' + short: LS + name: Lagersport + color: '#4DBB52' + numberingStyle: 1 + rootContentNode: '@columnLayout2campShared' diff --git a/api/fixtures/checklistItems.yml b/api/fixtures/checklistItems.yml index f7730badd4..f3ad90419b 100644 --- a/api/fixtures/checklistItems.yml +++ b/api/fixtures/checklistItems.yml @@ -19,6 +19,9 @@ App\Entity\ChecklistItem: checklistItemUnrelated_1_1: checklist: '@checklist1campUnrelated' text: 'CampUnrelated_List1_Item1' - checklistItemPrototype_1_1: + checklistItemCampPrototype_1_1: checklist: '@checklist1campPrototype' text: 'CampPrototype_List1_Item1' + checklistItemCampShared_1_1: + checklist: '@checklist1campShared' + text: 'CampShared_List1_Item1' diff --git a/api/fixtures/checklistNodes.yml b/api/fixtures/checklistNodes.yml index a6af5b9eeb..3f4924e72d 100644 --- a/api/fixtures/checklistNodes.yml +++ b/api/fixtures/checklistNodes.yml @@ -21,4 +21,18 @@ App\Entity\ContentNode\ChecklistNode: slot: '1' position: 5 instanceName: + contentType: '@contentTypeChecklist' + checklistNodeCampPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 5 + instanceName: + contentType: '@contentTypeChecklist' + checklistNodeCampShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 5 + instanceName: contentType: '@contentTypeChecklist' \ No newline at end of file diff --git a/api/fixtures/checklists.yml b/api/fixtures/checklists.yml index 466a38e012..e9746627a2 100644 --- a/api/fixtures/checklists.yml +++ b/api/fixtures/checklists.yml @@ -18,3 +18,6 @@ App\Entity\Checklist: camp: null isPrototype: true name: 'J+S Ausbildungsziele' + checklist1campShared: + camp: '@campShared' + name: 'PBS Ausbildungsziele' diff --git a/api/fixtures/columnLayouts.yml b/api/fixtures/columnLayouts.yml index 2634d8e232..c5e1a7a65f 100644 --- a/api/fixtures/columnLayouts.yml +++ b/api/fixtures/columnLayouts.yml @@ -87,6 +87,14 @@ App\Entity\ContentNode\ColumnLayout: data: { columns: [{ slot: '1', width: 12 }] } instanceName: contentType: '@contentTypeColumnLayout' + columnLayout3campPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 10 + data: { columns: [{ slot: '1', width: 12 }] } + instanceName: + contentType: '@contentTypeColumnLayout' columnLayoutWithResponsiveLayout: root: '@self' parent: null @@ -95,3 +103,27 @@ App\Entity\ContentNode\ColumnLayout: data: { columns: [{ slot: '1', width: 12 }] } instanceName: contentType: '@contentTypeColumnLayout' + columnLayout1campShared: + root: '@self' + parent: null + slot: null + position: 0 + data: { columns: [{ slot: '1', width: 12 }] } + instanceName: + contentType: '@contentTypeColumnLayout' + columnLayout2campShared: + root: '@self' + parent: null + slot: null + position: 0 + data: { columns: [{ slot: '1', width: 12 }] } + instanceName: + contentType: '@contentTypeColumnLayout' + columnLayout3campShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 10 + data: { columns: [{ slot: '1', width: 12 }] } + instanceName: + contentType: '@contentTypeColumnLayout' diff --git a/api/fixtures/comments.yml b/api/fixtures/comments.yml index 9efe8106a0..58bbda89d8 100644 --- a/api/fixtures/comments.yml +++ b/api/fixtures/comments.yml @@ -16,4 +16,16 @@ App\Entity\Comment: activity: '@activity2' textHtml: author: '@user1manager' + orphanDescription: null + comment1campPrototype: + camp: '@campPrototype' + activity: '@activity1campPrototype' + textHtml: + author: '@user4unrelated' + orphanDescription: null + comment1campShared: + camp: '@campShared' + activity: '@activity1campShared' + textHtml: + author: '@user4unrelated' orphanDescription: null \ No newline at end of file diff --git a/api/fixtures/dayResponsibles.yml b/api/fixtures/dayResponsibles.yml index 889d90f0cb..8e18b0b8a5 100644 --- a/api/fixtures/dayResponsibles.yml +++ b/api/fixtures/dayResponsibles.yml @@ -23,3 +23,6 @@ App\Entity\DayResponsible: dayResponsible1day1period1campPrototype: campCollaboration: '@campCollaboration1campPrototype' day: '@day1period1campPrototype' + dayResponsible1day1period1campShared: + campCollaboration: '@campCollaboration1campShared' + day: '@day1period1campShared' diff --git a/api/fixtures/days.yml b/api/fixtures/days.yml index 6fd522c39a..f6138a7e42 100644 --- a/api/fixtures/days.yml +++ b/api/fixtures/days.yml @@ -29,3 +29,12 @@ App\Entity\Day: day1period1campPrototype: period: '@period1campPrototype' dayOffset: 0 + day1period1campShared: + period: '@period1campShared' + dayOffset: 0 + day2period1campShared: + period: '@period1campShared' + dayOffset: 1 + day3period1campShared: + period: '@period1campShared' + dayOffset: 2 diff --git a/api/fixtures/materialItems.yml b/api/fixtures/materialItems.yml index 410aa632a4..369e22b973 100644 --- a/api/fixtures/materialItems.yml +++ b/api/fixtures/materialItems.yml @@ -39,3 +39,11 @@ App\Entity\MaterialItem: article: Lagerapotheke quantity: 1 unit: null + materialItem1period1campShared: + camp: '@campShared' + materialList: '@materialList1campShared' + period: '@period1campShared' + materialNode: null + article: Umhang + quantity: 1 + unit: null diff --git a/api/fixtures/materialLists.yml b/api/fixtures/materialLists.yml index e4e9f515f1..1ad476bb35 100644 --- a/api/fixtures/materialLists.yml +++ b/api/fixtures/materialLists.yml @@ -20,3 +20,9 @@ App\Entity\MaterialList: materialList1campPrototype: camp: '@campPrototype' name: Einkaufsliste + materialList1campShared: + camp: '@campShared' + name: Pfadiheim + materialList2campShared: + camp: '@campShared' + campCollaboration: '@campCollaboration1campShared' diff --git a/api/fixtures/materialNodes.yml b/api/fixtures/materialNodes.yml index 84131cd0a2..60c6ecbedf 100644 --- a/api/fixtures/materialNodes.yml +++ b/api/fixtures/materialNodes.yml @@ -13,3 +13,17 @@ App\Entity\ContentNode\MaterialNode: position: 2 instanceName: contentType: '@contentTypeMaterial' + materialNodeCampPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 2 + instanceName: + contentType: '@contentTypeMaterial' + materialNodeCampShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 2 + instanceName: + contentType: '@contentTypeMaterial' diff --git a/api/fixtures/multiSelects.yml b/api/fixtures/multiSelects.yml index eb2d608548..20efeba1f2 100644 --- a/api/fixtures/multiSelects.yml +++ b/api/fixtures/multiSelects.yml @@ -7,3 +7,19 @@ App\Entity\ContentNode\MultiSelect: instanceName: contentType: '@contentTypeMultiSelect' data: { options: { 'key1': { 'checked': true } } } + multiSelectCampPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 3 + instanceName: + contentType: '@contentTypeMultiSelect' + data: { options: { 'key1': { 'checked': true } } } + multiSelectCampShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 3 + instanceName: + contentType: '@contentTypeMultiSelect' + data: { options: { 'key1': { 'checked': true } } } diff --git a/api/fixtures/periods.yml b/api/fixtures/periods.yml index c3e4f73e83..0e0f2049a5 100644 --- a/api/fixtures/periods.yml +++ b/api/fixtures/periods.yml @@ -24,3 +24,8 @@ App\Entity\Period: description: Hauptlager start: '<(new DateTime("2021-01-01"))>' end: '<(new DateTime("2021-01-01"))>' + period1campShared: + camp: '@campShared' + description: Hauptlager + start: '<(new DateTime("2025-06-07"))>' + end: '<(new DateTime("2025-06-09"))>' diff --git a/api/fixtures/responsiveLayouts.yml b/api/fixtures/responsiveLayouts.yml index 1a1f05883d..e5b2edc656 100644 --- a/api/fixtures/responsiveLayouts.yml +++ b/api/fixtures/responsiveLayouts.yml @@ -7,3 +7,19 @@ App\Entity\ContentNode\ResponsiveLayout: data: { items: [{ slot: 'main' }, {slot: 'aside-top' }, {slot: 'aside-bottom'}] } instanceName: 'responsiveLayoutCampUnrelated' contentType: '@contentTypeResponsiveLayout' + responsiveLayoutCampPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 0 + data: { items: [{ slot: 'main' }, {slot: 'aside-top' }, {slot: 'aside-bottom'}] } + instanceName: 'responsiveLayoutCampPrototype' + contentType: '@contentTypeResponsiveLayout' + responsiveLayoutCampShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 0 + data: { items: [{ slot: 'main' }, {slot: 'aside-top' }, {slot: 'aside-bottom'}] } + instanceName: 'responsiveLayoutCampShared' + contentType: '@contentTypeResponsiveLayout' diff --git a/api/fixtures/scheduleEntries.yml b/api/fixtures/scheduleEntries.yml index bf1c70e3db..7a295f1e86 100644 --- a/api/fixtures/scheduleEntries.yml +++ b/api/fixtures/scheduleEntries.yml @@ -24,3 +24,13 @@ App\Entity\ScheduleEntry: activity: '@activity1campPrototype' startOffset: 720 endOffset: 780 + scheduleEntry1period1campShared: + period: '@period1campShared' + activity: '@activity1campShared' + startOffset: 660 + endOffset: 720 + scheduleEntry2period1campShared: + period: '@period1campShared' + activity: '@activity1campShared' + startOffset: 720 + endOffset: 780 diff --git a/api/fixtures/singleTexts.yml b/api/fixtures/singleTexts.yml index 36574aca7c..b2a2194c5c 100644 --- a/api/fixtures/singleTexts.yml +++ b/api/fixtures/singleTexts.yml @@ -7,3 +7,19 @@ App\Entity\ContentNode\SingleText: instanceName: contentType: '@contentTypeNotes' data: { html: } + singleTextCampPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 1 + instanceName: + contentType: '@contentTypeNotes' + data: { html: } + singleTextCampShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 1 + instanceName: + contentType: '@contentTypeNotes' + data: { html: } diff --git a/api/fixtures/storyboards.yml b/api/fixtures/storyboards.yml index 6408da8bfa..0e9ff596bf 100644 --- a/api/fixtures/storyboards.yml +++ b/api/fixtures/storyboards.yml @@ -19,3 +19,43 @@ App\Entity\ContentNode\Storyboard: }, }, } + storyboardCampPrototype: + root: '@columnLayout1campPrototype' + parent: '@columnLayout1campPrototype' + slot: '1' + position: 4 + instanceName: + contentType: '@contentTypeStoryboard' + data: + { + sections: + { + 'aaaaaaaa-3ccd-4d9a-ab40-dddddddddddd': + { + column1: , + column2Html: , + column3: , + position: 0, + }, + }, + } + storyboardCampShared: + root: '@columnLayout1campShared' + parent: '@columnLayout1campShared' + slot: '1' + position: 4 + instanceName: + contentType: '@contentTypeStoryboard' + data: + { + sections: + { + 'cccccccc-3ccd-4d9a-ab40-aaaaaaaaaaaa': + { + column1: , + column2Html: , + column3: , + position: 0, + }, + }, + } diff --git a/api/migrations/schema/Version20250809140557.php b/api/migrations/schema/Version20250809140557.php new file mode 100644 index 0000000000..aaa3db8ce2 --- /dev/null +++ b/api/migrations/schema/Version20250809140557.php @@ -0,0 +1,26 @@ +addSql('CREATE TABLE refresh_tokens (refresh_token VARCHAR(128) NOT NULL, username VARCHAR(255) NOT NULL, valid TIMESTAMP(0) WITHOUT TIME ZONE NOT NULL, id INT GENERATED BY DEFAULT AS IDENTITY NOT NULL, PRIMARY KEY (id))'); + $this->addSql('CREATE UNIQUE INDEX UNIQ_9BACE7E1C74F2195 ON refresh_tokens (refresh_token)'); + } + + public function down(Schema $schema): void { + $this->addSql('DROP TABLE refresh_tokens'); + } +} diff --git a/api/migrations/schema/Version20250821113132.php b/api/migrations/schema/Version20250821113132.php new file mode 100644 index 0000000000..99bffa3490 --- /dev/null +++ b/api/migrations/schema/Version20250821113132.php @@ -0,0 +1,50 @@ +addSql('ALTER TABLE camp ADD isShared BOOLEAN DEFAULT FALSE NOT NULL'); + $this->addSql('CREATE INDEX IDX_C1944230D2E4FE61 ON camp (isShared)'); + $this->addSql( + <<<'EOF' + CREATE OR REPLACE VIEW public.view_user_camps + AS + SELECT CONCAT(u.id, c.id) id, u.id userid, c.id campid + from camp c, "user" u + where c.isprototype = TRUE or c.isshared = TRUE + union all + select cc.id, cc.userid, cc.campid + from camp_collaboration cc + where cc.status = 'established' + EOF + ); + } + + public function down(Schema $schema): void { + $this->addSql( + <<<'EOF' + CREATE OR REPLACE VIEW public.view_user_camps + AS + SELECT CONCAT(u.id, c.id) id, u.id userid, c.id campid + from camp c, "user" u + where c.isprototype = TRUE + union all + select cc.id, cc.userid, cc.campid + from camp_collaboration cc + where cc.status = 'established' + EOF + ); + $this->addSql('DROP INDEX IDX_C1944230D2E4FE61'); + $this->addSql('ALTER TABLE camp DROP isShared'); + } +} diff --git a/api/migrations/schema/Version20250903125914.php b/api/migrations/schema/Version20250903125914.php new file mode 100644 index 0000000000..d0122be5c2 --- /dev/null +++ b/api/migrations/schema/Version20250903125914.php @@ -0,0 +1,33 @@ +addSql('ALTER TABLE camp ADD sharedSince TIMESTAMP(0) WITHOUT TIME ZONE DEFAULT NULL'); + $this->addSql('ALTER TABLE camp ADD sharedById VARCHAR(16) DEFAULT NULL'); + $this->addSql('ALTER TABLE camp ADD CONSTRAINT FK_C19442304B2BC976 FOREIGN KEY (sharedById) REFERENCES "user" (id) NOT DEFERRABLE'); + $this->addSql('CREATE INDEX IDX_C19442304B2BC976 ON camp (sharedById)'); + } + + public function down(Schema $schema): void { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE camp DROP CONSTRAINT FK_C19442304B2BC976'); + $this->addSql('DROP INDEX IDX_C19442304B2BC976'); + $this->addSql('ALTER TABLE camp DROP sharedSince'); + $this->addSql('ALTER TABLE camp DROP sharedById'); + } +} diff --git a/api/migrations/schema/Version20251003000000.php b/api/migrations/schema/Version20251003000000.php new file mode 100644 index 0000000000..b608a55de1 --- /dev/null +++ b/api/migrations/schema/Version20251003000000.php @@ -0,0 +1,27 @@ +addSql('ALTER TABLE material_item ADD done BOOLEAN DEFAULT false NOT NULL'); + } + + public function down(Schema $schema): void { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql('ALTER TABLE material_item DROP done'); + } +} diff --git a/api/migrations/schema/Version20251004093025.php b/api/migrations/schema/Version20251004093025.php new file mode 100644 index 0000000000..e1baefa753 --- /dev/null +++ b/api/migrations/schema/Version20251004093025.php @@ -0,0 +1,58 @@ +addSql('ALTER TABLE camp ADD isPublic BOOLEAN DEFAULT false NOT NULL'); + $this->addSql('UPDATE camp SET isPublic = (isShared OR isPrototype)'); + $this->addSql('ALTER TABLE camp ADD CONSTRAINT enforce_public_flag CHECK (isPublic = (isShared OR isPrototype))'); + $this->addSql('CREATE INDEX IDX_C1944230FADC24C7 ON camp (isPublic)'); + $this->addSql( + <<<'EOF' + CREATE OR REPLACE VIEW public.view_user_camps + AS + SELECT CONCAT(u.id, c.id) id, u.id userid, c.id campid + from camp c, "user" u + where c.ispublic = TRUE + union all + select cc.id, cc.userid, cc.campid + from camp_collaboration cc + where cc.status = 'established' + EOF + ); + } + + public function down(Schema $schema): void { + // this down() migration is auto-generated, please modify it to your needs + $this->addSql( + <<<'EOF' + CREATE OR REPLACE VIEW public.view_user_camps + AS + SELECT CONCAT(u.id, c.id) id, u.id userid, c.id campid + from camp c, "user" u + where c.isprototype = TRUE or c.isshared = TRUE + union all + select cc.id, cc.userid, cc.campid + from camp_collaboration cc + where cc.status = 'established' + EOF + ); + $this->addSql('DROP INDEX IDX_C1944230FADC24C7'); + $this->addSql('ALTER TABLE camp DROP CONSTRAINT enforce_public_flag'); + $this->addSql('ALTER TABLE camp DROP isPublic'); + } +} diff --git a/api/phpunit.nodocker.xml b/api/phpunit.nodocker.xml index ff4e41cbac..483f3e45f2 100644 --- a/api/phpunit.nodocker.xml +++ b/api/phpunit.nodocker.xml @@ -2,7 +2,7 @@ - + diff --git a/api/phpunit.xml.dist b/api/phpunit.xml.dist index dc15e0fec4..e1780f97bb 100644 --- a/api/phpunit.xml.dist +++ b/api/phpunit.xml.dist @@ -2,7 +2,7 @@ - + - + mdi-puzzle-edit-outline @@ -143,10 +148,10 @@ Displays a single scheduleEntry translation-context-i18n-key="components.activity.scheduleEntry.clipboardInfoDialog" /> - + - +