diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2fe07389..727e7712 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,7 +15,7 @@ jobs: outputs: docker-tag: ${{ steps.meta.outputs.version }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: # required for changesets fetch-depth: '0' @@ -24,7 +24,7 @@ jobs: persist-credentials: false - name: Setup Node.js - uses: actions/setup-node@v4 + uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 'lts/*' cache: 'yarn' @@ -57,18 +57,18 @@ jobs: run: yarn generate-disclaimer - name: Login to ghcr.io - uses: docker/login-action@v3 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 - name: Generate Docker metadata id: meta - uses: docker/metadata-action@v5 + uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5 env: DOCKER_METADATA_PR_HEAD_SHA: true with: @@ -82,7 +82,7 @@ jobs: - name: Build and push id: build_and_push - uses: docker/build-push-action@v6 + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6 with: push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' || github.event_name == 'pull_request' && secrets.GH_APP_OS_APP_ID != '' }} context: . @@ -96,7 +96,7 @@ jobs: if: ${{ success() && steps.build_and_push.outputs.digest }} env: IMAGE_REF: ${{ env.DOCKER_IMAGE }}@${{ steps.build_and_push.outputs.digest }} - uses: aquasecurity/trivy-action@0.29.0 + uses: aquasecurity/trivy-action@18f2510ee396bbf400402947b394f2dd8c87dbb0 # 0.29.0 with: scan-type: 'image' scanners: 'license' @@ -107,7 +107,7 @@ jobs: - name: Upload SBOM report as a build artifact if: ${{ success() && steps.build_and_push.outputs.digest }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 with: name: sbom-spdx-report path: 'sbom.spdx.json' @@ -134,17 +134,17 @@ jobs: needs: build steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 with: fetch-depth: 0 # need main branch to diff against - name: Set up Helm - uses: azure/setup-helm@v4 - - uses: actions/setup-python@v5 + uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4 + - uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5 with: python-version: '3.12' check-latest: true - name: Set up chart-testing - uses: helm/chart-testing-action@v2.6.1 + uses: helm/chart-testing-action@e6669bcd63d7cb57cb4380c33043eebe5d111992 # v2.6.1 - name: Check if Helm charts updated (run chart-testing list-changed) id: list-changed run: | @@ -158,7 +158,7 @@ jobs: run: ct lint --validate-maintainers=false --target-branch ${{ github.event.repository.default_branch }} - name: Create kind cluster if: steps.list-changed.outputs.changed == 'true' - uses: helm/kind-action@v1.12.0 + uses: helm/kind-action@a1b0e391336a6ee6713a0583f8c6240d70863de3 # v1.12.0 - name: Prepare k8s cluster if: steps.list-changed.outputs.changed == 'true' run: | @@ -184,7 +184,7 @@ jobs: private_key: ${{ secrets.GH_APP_OS_PRIVATE_KEY }} - name: Trigger Workflow - uses: actions/github-script@v7 + uses: actions/github-script@f28e40c7f34bde8b3046d885e986cb6290c5673b # v7 with: github-token: ${{ steps.generate_token.outputs.token }} script: | diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index d8acd2df..9cbe0f80 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -21,7 +21,7 @@ jobs: steps: - name: Generate Docker metadata of the existing image id: meta-existing-tag - uses: docker/metadata-action@v5 + uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5 with: images: ${{ env.DOCKER_IMAGE }} tags: | @@ -29,7 +29,7 @@ jobs: - name: Generate Docker metadata of the new image id: meta-new-tags - uses: docker/metadata-action@v5 + uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5 with: images: ${{ env.DOCKER_IMAGE }} labels: | @@ -46,7 +46,7 @@ jobs: echo "FROM $SOURCE_IMAGE" > Dockerfile - name: Login to ghcr.io - uses: docker/login-action@v3 + uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3 with: registry: ghcr.io username: ${{ github.repository_owner }} @@ -56,11 +56,11 @@ jobs: uses: sigstore/cosign-installer@3454372f43399081ed03b604cb2d021dabca52bb # v3.8.2 - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3 - name: Build and push id: build_and_push - uses: docker/build-push-action@v6 + uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6 with: push: true context: . @@ -71,7 +71,7 @@ jobs: - name: Run Trivy to get an SBOM report of the container env: IMAGE_REF: ${{ env.DOCKER_IMAGE }}@${{ steps.build_and_push.outputs.digest }} - uses: aquasecurity/trivy-action@0.29.0 + uses: aquasecurity/trivy-action@18f2510ee396bbf400402947b394f2dd8c87dbb0 # 0.29.0 with: scan-type: 'image' scanners: 'license' diff --git a/Dockerfile b/Dockerfile index 1ebcc688..fe3768e9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM aquasec/trivy:latest AS scanner +FROM aquasec/trivy:latest@sha256:05d0126976bdedcd0782a0336f77832dbea1c81b9cc5e4b3a5ea5d2ec863aca7 AS scanner # Copy yarn.lock to run SBOM scan COPY yarn.lock /tmp diff --git a/charts/matrix-poll-widget/values.yaml b/charts/matrix-poll-widget/values.yaml index 92d421f6..9c542292 100644 --- a/charts/matrix-poll-widget/values.yaml +++ b/charts/matrix-poll-widget/values.yaml @@ -8,7 +8,7 @@ image: repository: ghcr.io/nordeck/matrix-poll-widget pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. - tag: "" + tag: "@sha256:2a94e2b543e33e90fd56b485d8fb85472ffb117656f2e8f02c1826d4148419a8" imagePullSecrets: [] nameOverride: "" diff --git a/package.json b/package.json index f86bace6..0d96a001 100644 --- a/package.json +++ b/package.json @@ -42,48 +42,48 @@ "uuid": "^9.0.1" }, "devDependencies": { - "@changesets/cli": "^2.28.0", - "@eslint/compat": "^1.3.1", - "@eslint/js": "^9.28.0", - "@matrix-widget-toolkit/testing": "^4.0.0", - "@testing-library/dom": "^10.4.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/react": "^16.0.1", - "@testing-library/user-event": "^14.5.2", - "@types/lodash": "^4.14.202", - "@types/luxon": "^3.2.0", - "@types/node": "^20.17.22", - "@types/pdfmake": "^0.2.11", - "@types/react": "^18.3.23", - "@types/react-beautiful-dnd": "^13.1.8", - "@types/react-dom": "^18.3.1", - "@types/uuid": "^9.0.7", - "@vitejs/plugin-basic-ssl": "^1.2.0", - "@vitejs/plugin-react-swc": "^3.8.0", - "@vitest/coverage-v8": "^3.0.6", - "@vitest/eslint-plugin": "^1.3.4", - "axe-core": "^4.10.0", - "depcheck": "^1.4.7", - "dotenv-cli": "^7.4.4", - "eslint": "^9.28.0", - "eslint-config-prettier": "^10.1.5", - "eslint-plugin-notice": "^1.0.0", - "eslint-plugin-promise": "^7.2.1", - "eslint-plugin-react": "^7.37.5", - "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-testing-library": "^7.6.0", - "happy-dom": "^20.0.8", - "husky": "^9.1.7", - "i18next-cli": "^1.20.1", - "lint-staged": "^15.4.3", - "prettier": "^3.5.1", - "prettier-plugin-organize-imports": "^4.1.0", - "sass": "^1.85.0", - "typescript": "^5.7.2", - "typescript-eslint": "^8.33.1", + "@changesets/cli": "2.28.1", + "@eslint/compat": "1.4.1", + "@eslint/js": "9.31.0", + "@matrix-widget-toolkit/testing": "4.0.0", + "@testing-library/dom": "10.4.0", + "@testing-library/jest-dom": "6.6.3", + "@testing-library/react": "16.3.0", + "@testing-library/user-event": "14.5.2", + "@types/lodash": "4.14.202", + "@types/luxon": "3.2.0", + "@types/node": "20.19.24", + "@types/pdfmake": "0.2.11", + "@types/react": "18.3.26", + "@types/react-beautiful-dnd": "13.1.8", + "@types/react-dom": "18.3.7", + "@types/uuid": "9.0.7", + "@vitejs/plugin-basic-ssl": "1.2.0", + "@vitejs/plugin-react-swc": "3.10.2", + "@vitest/coverage-v8": "3.2.4", + "@vitest/eslint-plugin": "1.3.26", + "axe-core": "4.10.3", + "depcheck": "1.4.7", + "dotenv-cli": "7.4.4", + "eslint": "9.31.0", + "eslint-config-prettier": "10.1.5", + "eslint-plugin-notice": "1.0.0", + "eslint-plugin-promise": "7.2.1", + "eslint-plugin-react": "7.37.5", + "eslint-plugin-react-hooks": "5.2.0", + "eslint-plugin-testing-library": "7.13.3", + "happy-dom": "20.0.10", + "husky": "9.1.7", + "i18next-cli": "1.20.1", + "lint-staged": "15.4.3", + "prettier": "3.5.3", + "prettier-plugin-organize-imports": "4.1.0", + "sass": "1.85.1", + "typescript": "5.9.3", + "typescript-eslint": "8.37.0", "vite": "^6.4.1", - "vitest": "^3.2.4", - "yarn-deduplicate": "^6.0.2" + "vitest": "3.2.4", + "yarn-deduplicate": "6.0.2" }, "engines": { "node": ">=20", diff --git a/yarn.lock b/yarn.lock index 88107e8a..818efa6d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -275,7 +275,7 @@ dependencies: "@changesets/types" "^6.1.0" -"@changesets/cli@^2.28.0": +"@changesets/cli@2.28.1": version "2.28.1" resolved "https://registry.yarnpkg.com/@changesets/cli/-/cli-2.28.1.tgz#b7f27d5e2083ffc296bfe4accdd66124fa0af291" integrity sha512-PiIyGRmSc6JddQJe/W1hRPjiN4VrMvb2VfQ6Uydy2punBioQrsxppyG5WafinKcW1mT0jOe/wU4k9Zy5ff21AA== @@ -677,7 +677,7 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/compat@^1.3.1": +"@eslint/compat@1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@eslint/compat/-/compat-1.4.1.tgz#81eaabb3e0b080350582c1a8092a2d355fabf03e" integrity sha512-cfO82V9zxxGBxcQDr1lfaYB7wykTa0b00mGa36FrJl7iTFd0Z2cHfEYuxcBRP/iNijCsWsEkA+jzT8hGYmv33w== @@ -727,7 +727,7 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.31.0", "@eslint/js@^9.28.0": +"@eslint/js@9.31.0": version "9.31.0" resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.31.0.tgz#adb1f39953d8c475c4384b67b67541b0d7206ed8" integrity sha512-LOm5OVt7D4qiKCqoiPbA7LWmI+tbw1VbTUowBcUMgQSuM6poJufkFkYDcQpo5KfgD39TnNySV26QjOh7VFpSyw== @@ -1174,7 +1174,7 @@ react-error-boundary "6.0.0" react-use "17.6.0" -"@matrix-widget-toolkit/testing@^4.0.0": +"@matrix-widget-toolkit/testing@4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@matrix-widget-toolkit/testing/-/testing-4.0.0.tgz#67dc2a82086957e39452bb6b99aee99c670a2f0c" integrity sha512-pNYrePNUV3pafwTuL4+u+gDKDDvjt1MqR8IdCPhJWy/YaG2dR4A8vTCOxc1c6mbaGYQZiMC0gMcxKlre8wfngw== @@ -1737,7 +1737,7 @@ dependencies: "@swc/counter" "^0.1.3" -"@testing-library/dom@^10.4.0": +"@testing-library/dom@10.4.0": version "10.4.0" resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-10.4.0.tgz#82a9d9462f11d240ecadbf406607c6ceeeff43a8" integrity sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ== @@ -1751,7 +1751,7 @@ lz-string "^1.5.0" pretty-format "^27.0.2" -"@testing-library/jest-dom@^6.6.3": +"@testing-library/jest-dom@6.6.3": version "6.6.3" resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-6.6.3.tgz#26ba906cf928c0f8172e182c6fe214eb4f9f2bd2" integrity sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA== @@ -1764,14 +1764,14 @@ lodash "^4.17.21" redent "^3.0.0" -"@testing-library/react@^16.0.1": +"@testing-library/react@16.3.0": version "16.3.0" resolved "https://registry.yarnpkg.com/@testing-library/react/-/react-16.3.0.tgz#3a85bb9bdebf180cd76dba16454e242564d598a6" integrity sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw== dependencies: "@babel/runtime" "^7.12.5" -"@testing-library/user-event@^14.5.2": +"@testing-library/user-event@14.5.2": version "14.5.2" resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-14.5.2.tgz#db7257d727c891905947bd1c1a99da20e03c2ebd" integrity sha512-YAh82Wh4TIrxYLmfGcixwD18oIjyC1pFQC2Y01F2lzV2HTMiYrI0nze0FD0ocB//CKS/7jIUgae+adPqxK5yCQ== @@ -1813,12 +1813,12 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== -"@types/lodash@^4.14.202": +"@types/lodash@4.14.202": version "4.14.202" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== -"@types/luxon@^3.2.0": +"@types/luxon@3.2.0": version "3.2.0" resolved "https://registry.yarnpkg.com/@types/luxon/-/luxon-3.2.0.tgz#99901b4ab29a5fdffc88fff59b3b47fbfbe0557b" integrity sha512-lGmaGFoaXHuOLXFvuju2bfvZRqxAqkHPx9Y9IQdQABrinJJshJwfNCKV+u7rR3kJbiqfTF/NhOkcxxAFrObyaA== @@ -1828,7 +1828,7 @@ resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== -"@types/node@*", "@types/node@^20.0.0", "@types/node@^20.17.22": +"@types/node@*", "@types/node@20.19.24", "@types/node@^20.0.0": version "20.19.24" resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.24.tgz#6bc35bc96cda1a251000b706c76380b5c843f30b" integrity sha512-FE5u0ezmi6y9OZEzlJfg37mqqf6ZDSF2V/NLjUyGrR9uTZ7Sb9F7bLNZ03S4XVUNRWGA7Ck4c1kK+YnuWjl+DA== @@ -1852,7 +1852,7 @@ dependencies: "@types/node" "*" -"@types/pdfmake@^0.2.11": +"@types/pdfmake@0.2.11": version "0.2.11" resolved "https://registry.yarnpkg.com/@types/pdfmake/-/pdfmake-0.2.11.tgz#ca5475efe44c966e88aed90040670f562ac1eebc" integrity sha512-gglgMQhnG6C2kco13DJlvokqTxL+XKxHwCejElH8fSCNF9ZCkRK6Mzo011jQ0zuug+YlIgn6BpcpZrARyWdW3Q== @@ -1865,14 +1865,14 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.15.tgz#e6e5a86d602beaca71ce5163fadf5f95d70931c7" integrity sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw== -"@types/react-beautiful-dnd@^13.1.8": +"@types/react-beautiful-dnd@13.1.8": version "13.1.8" resolved "https://registry.yarnpkg.com/@types/react-beautiful-dnd/-/react-beautiful-dnd-13.1.8.tgz#f52d3ea07e1e19159d6c3c4a48c8da3d855e60b4" integrity sha512-E3TyFsro9pQuK4r8S/OL6G99eq7p8v29sX0PM7oT8Z+PJfZvSQTx4zTQbUJ+QZXioAF0e7TGBEcA1XhYhCweyQ== dependencies: "@types/react" "*" -"@types/react-dom@^18.3.1": +"@types/react-dom@18.3.7": version "18.3.7" resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.3.7.tgz#b89ddf2cd83b4feafcc4e2ea41afdfb95a0d194f" integrity sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ== @@ -1890,7 +1890,7 @@ "@types/prop-types" "*" csstype "^3.0.2" -"@types/react@^18.3.23": +"@types/react@18.3.26": version "18.3.26" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.3.26.tgz#4c5970878d30db3d2a0bca1e4eb5f258e391bbeb" integrity sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA== @@ -1903,7 +1903,7 @@ resolved "https://registry.yarnpkg.com/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz#60be8d21baab8c305132eb9cb912ed497852aadc" integrity sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg== -"@types/uuid@^9.0.7": +"@types/uuid@9.0.7": version "9.0.7" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== @@ -2072,12 +2072,12 @@ "@typescript-eslint/types" "8.46.2" eslint-visitor-keys "^4.2.1" -"@vitejs/plugin-basic-ssl@^1.2.0": +"@vitejs/plugin-basic-ssl@1.2.0": version "1.2.0" resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.2.0.tgz#9490fe15b8833351982fbe0963987f69f40f5019" integrity sha512-mkQnxTkcldAzIsomk1UuLfAu9n+kpQ3JbHcpCp7d2Oo6ITtji8pHS3QToOWjhPFvNQSnhlkAjmGbhv2QvwO/7Q== -"@vitejs/plugin-react-swc@^3.8.0": +"@vitejs/plugin-react-swc@3.10.2": version "3.10.2" resolved "https://registry.yarnpkg.com/@vitejs/plugin-react-swc/-/plugin-react-swc-3.10.2.tgz#77fc039c049b02eb2deeafb3686d9fa07bf7585a" integrity sha512-xD3Rdvrt5LgANug7WekBn1KhcvLn1H3jNBfJRL3reeOIua/WnZOEV5qi5qIBq5T8R0jUDmRtxuvk4bPhzGHDWw== @@ -2085,7 +2085,7 @@ "@rolldown/pluginutils" "1.0.0-beta.11" "@swc/core" "^1.11.31" -"@vitest/coverage-v8@^3.0.6": +"@vitest/coverage-v8@3.2.4": version "3.2.4" resolved "https://registry.yarnpkg.com/@vitest/coverage-v8/-/coverage-v8-3.2.4.tgz#a2d8d040288c1956a1c7d0a0e2cdcfc7a3319f13" integrity sha512-EyF9SXU6kS5Ku/U82E259WSnvg6c8KTjppUncuNdm5QHpe17mwREHnjDzozC8x9MZ0xfBUFSaLkRv4TMA75ALQ== @@ -2104,7 +2104,7 @@ test-exclude "^7.0.1" tinyrainbow "^2.0.0" -"@vitest/eslint-plugin@^1.3.4": +"@vitest/eslint-plugin@1.3.26": version "1.3.26" resolved "https://registry.yarnpkg.com/@vitest/eslint-plugin/-/eslint-plugin-1.3.26.tgz#7c5e0c398a525fe570d6bc68ca84064c415133bf" integrity sha512-oP+Vyqgp+kLuMagG0tRkcT7e2tUoE+XWgti1OFxqdTpmMlSZJ6BWSC3rv8vzhtDXReXNyAJI1eojuc7N0QqbNQ== @@ -2435,7 +2435,7 @@ available-typed-arrays@^1.0.7: dependencies: possible-typed-array-names "^1.0.0" -axe-core@^4.10.0: +axe-core@4.10.3: version "4.10.3" resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.10.3.tgz#04145965ac7894faddbac30861e5d8f11bfd14fc" integrity sha512-Xm7bpRXnDSX2YE2YFfBk2FnF0ep6tmG7xPh8iHee8MIcrgq762Nkce856dYtJYLkuIoYZvGfTs/PbZhideTcEg== @@ -3164,7 +3164,7 @@ delaunator@5: dependencies: robust-predicates "^3.0.0" -depcheck@^1.4.7: +depcheck@1.4.7: version "1.4.7" resolved "https://registry.yarnpkg.com/depcheck/-/depcheck-1.4.7.tgz#57976e2fa43625f477efc0f19ad868ef94f8a26c" integrity sha512-1lklS/bV5chOxwNKA/2XUUk/hPORp8zihZsXflr8x0kLwmcZ9Y9BsS6Hs3ssvA+2wUVbG0U2Ciqvm1SokNjPkA== @@ -3255,7 +3255,7 @@ dom-helpers@^5.0.1: "@babel/runtime" "^7.8.7" csstype "^3.0.2" -dotenv-cli@^7.4.4: +dotenv-cli@7.4.4: version "7.4.4" resolved "https://registry.yarnpkg.com/dotenv-cli/-/dotenv-cli-7.4.4.tgz#bdcf4df35b03f919171ab6714e17b81b4ee45a21" integrity sha512-XkBYCG0tPIes+YZr4SpfFv76SQrV/LeCE8CI7JSEMi3VR9MvTihCGTOtbIexD6i2mXF+6px7trb1imVCXSNMDw== @@ -3502,12 +3502,12 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^10.1.5: +eslint-config-prettier@10.1.5: version "10.1.5" resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.5.tgz#00c18d7225043b6fbce6a665697377998d453782" integrity sha512-zc1UmCpNltmVY34vuLRV61r1K27sWuX39E+uyUnY8xS2Bex88VV9cugG+UZbRSRGtGyFboj+D8JODyme1plMpw== -eslint-plugin-notice@^1.0.0: +eslint-plugin-notice@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-plugin-notice/-/eslint-plugin-notice-1.0.0.tgz#4b98ffdf2274d10f34a4231a74efafdecad6cde4" integrity sha512-M3VLQMZzZpvfTZ/vy9FmClIKq5rLBbQpM0KgfLZPJPrVXpmJYeobmmb+lfJzHWdNm8PWwvw8KlafQWo2N9xx1Q== @@ -3516,19 +3516,19 @@ eslint-plugin-notice@^1.0.0: lodash "^4.17.21" metric-lcs "^0.1.2" -eslint-plugin-promise@^7.2.1: +eslint-plugin-promise@7.2.1: version "7.2.1" resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-7.2.1.tgz#a0652195700aea40b926dc3c74b38e373377bfb0" integrity sha512-SWKjd+EuvWkYaS+uN2csvj0KoP43YTu7+phKQ5v+xw6+A0gutVX2yqCeCkC3uLCJFiPfR2dD8Es5L7yUsmvEaA== dependencies: "@eslint-community/eslint-utils" "^4.4.0" -eslint-plugin-react-hooks@^5.2.0: +eslint-plugin-react-hooks@5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz#1be0080901e6ac31ce7971beed3d3ec0a423d9e3" integrity sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg== -eslint-plugin-react@^7.37.5: +eslint-plugin-react@7.37.5: version "7.37.5" resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.37.5.tgz#2975511472bdda1b272b34d779335c9b0e877065" integrity sha512-Qteup0SqU15kdocexFNAJMvCJEfa2xUKNV4CC1xsVMrIIqEy3SQ/rqyxCWNzfrd3/ldy6HMlD2e0JDVpDg2qIA== @@ -3552,7 +3552,7 @@ eslint-plugin-react@^7.37.5: string.prototype.matchall "^4.0.12" string.prototype.repeat "^1.0.0" -eslint-plugin-testing-library@^7.6.0: +eslint-plugin-testing-library@7.13.3: version "7.13.3" resolved "https://registry.yarnpkg.com/eslint-plugin-testing-library/-/eslint-plugin-testing-library-7.13.3.tgz#6edaca5609098e8869fd75afc48d7aa5ebfd0bc4" integrity sha512-STwyXN7GnHulgsfdXVd5iC8fFCJVRQj2AcKtMmQOsA8G4oMnSCOX1p3MjbrDQ9fmwVf5wZy6vboTOTFobWuxOA== @@ -3578,7 +3578,7 @@ eslint-visitor-keys@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== -eslint@^9.28.0: +eslint@9.31.0: version "9.31.0" resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.31.0.tgz#9a488e6da75bbe05785cd62e43c5ea99356d21ba" integrity sha512-QldCVh/ztyKJJZLr4jXNUByx3gR+TDYZCRXEktiZoUR3PGy4qCmSbkxcIle8GEwGpb5JBZazlaJ/CxLidXdEbQ== @@ -4075,7 +4075,7 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -happy-dom@^20.0.8: +happy-dom@20.0.10: version "20.0.10" resolved "https://registry.yarnpkg.com/happy-dom/-/happy-dom-20.0.10.tgz#01fb5f09426420994e47e966598e272102678dd2" integrity sha512-6umCCHcjQrhP5oXhrHQQvLB0bwb1UzHAHdsXy+FjtKoYjUhmNZsQL8NivwM1vDvNEChJabVrUYxUnp/ZdYmy2g== @@ -4175,7 +4175,7 @@ human-signals@^8.0.1: resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-8.0.1.tgz#f08bb593b6d1db353933d06156cedec90abe51fb" integrity sha512-eKCa6bwnJhvxj14kZk5NCPc6Hb6BdsU9DZcOnmQKSnO1VKrfV0zCvtttPZUsBvjmNDn8rpcJfpwSYnHBjc95MQ== -husky@^9.1.7: +husky@9.1.7: version "9.1.7" resolved "https://registry.yarnpkg.com/husky/-/husky-9.1.7.tgz#d46a38035d101b46a70456a850ff4201344c0b2d" integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== @@ -4206,7 +4206,7 @@ i18next-chained-backend@^4.6.2: dependencies: "@babel/runtime" "^7.23.2" -i18next-cli@^1.20.1: +i18next-cli@1.20.1: version "1.20.1" resolved "https://registry.yarnpkg.com/i18next-cli/-/i18next-cli-1.20.1.tgz#52e039e82f9bdda9c6e1ab61eac3347434ea493a" integrity sha512-Hc8IeouIcP2MX49FCtODxJFzr0gF8aTEmwstRN3rl7U3SJQ14E/JWjvJ1oWdvmc8WWGyQNZNSOxRSO5ebNTsNQ== @@ -4813,7 +4813,7 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -lint-staged@^15.4.3: +lint-staged@15.4.3: version "15.4.3" resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.4.3.tgz#e73587cc857f580c99f907abefe9ac8d8d5e74c1" integrity sha512-FoH1vOeouNh1pw+90S+cnuoFwRfUD9ijY2GKy5h7HS3OR7JVir2N2xrsa0+Twc1B7cW72L+88geG5cW4wIhn7g== @@ -5459,21 +5459,21 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-plugin-organize-imports@^4.1.0: +prettier-plugin-organize-imports@4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/prettier-plugin-organize-imports/-/prettier-plugin-organize-imports-4.1.0.tgz#f3d3764046a8e7ba6491431158b9be6ffd83b90f" integrity sha512-5aWRdCgv645xaa58X8lOxzZoiHAldAPChljr/MT0crXVOWTZ+Svl4hIWlz+niYSlO6ikE5UXkN1JrRvIP2ut0A== +prettier@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" + integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== + prettier@^2.7.1: version "2.8.4" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== -prettier@^3.5.1: - version "3.5.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.5.3.tgz#4fc2ce0d657e7a02e602549f053b239cb7dfe1b5" - integrity sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw== - pretty-format@^27.0.2: version "27.5.1" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.5.1.tgz#2181879fdea51a7a5851fb39d920faa63f01d88e" @@ -5914,7 +5914,7 @@ safe-regex-test@^1.1.0: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.85.0: +sass@1.85.1: version "1.85.1" resolved "https://registry.yarnpkg.com/sass/-/sass-1.85.1.tgz#18ab0bb48110ae99163778f06445b406148ca0d5" integrity sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag== @@ -6513,7 +6513,7 @@ typed-array-length@^1.0.7: possible-typed-array-names "^1.0.0" reflect.getprototypeof "^1.0.6" -typescript-eslint@^8.33.1: +typescript-eslint@8.37.0: version "8.37.0" resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.37.0.tgz#2235ddfa40cdbdadb1afb05f8bda688a2294b4c2" integrity sha512-TnbEjzkE9EmcO0Q2zM+GE8NQLItNAJpMmED1BdgoBMYNdqMhzlbqfdSwiRlAzEK2pA9UzVW0gzaaIzXWg2BjfA== @@ -6523,7 +6523,7 @@ typescript-eslint@^8.33.1: "@typescript-eslint/typescript-estree" "8.37.0" "@typescript-eslint/utils" "8.37.0" -typescript@^5.7.2: +typescript@5.9.3: version "5.9.3" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== @@ -6630,7 +6630,7 @@ vite@^6.4.1: optionalDependencies: fsevents "~2.3.3" -vitest@^3.2.4: +vitest@3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/vitest/-/vitest-3.2.4.tgz#0637b903ad79d1539a25bc34c0ed54b5c67702ea" integrity sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A== @@ -6849,7 +6849,7 @@ yargs@^16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yarn-deduplicate@^6.0.2: +yarn-deduplicate@6.0.2: version "6.0.2" resolved "https://registry.yarnpkg.com/yarn-deduplicate/-/yarn-deduplicate-6.0.2.tgz#63498d2d4c3a8567e992a994ce0ab51aa5681f2e" integrity sha512-Efx4XEj82BgbRJe5gvQbZmEO7pU5DgHgxohYZp98/+GwPqdU90RXtzvHirb7hGlde0sQqk5G3J3Woyjai8hVqA==