AFFiNE/.github/workflows/build-test.yml

746 lines
23 KiB
YAML
Raw Normal View History

name: Build & Test
on:
push:
branches:
- canary
2024-02-23 12:17:13 +03:00
- beta
- stable
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
pull_request:
env:
DEBUG: napi:*
BUILD_TYPE: canary
APP_NAME: affine
AFFINE_ENV: dev
COVERAGE: true
MACOSX_DEPLOYMENT_TARGET: '10.13'
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/node_modules/.cache/ms-playwright
DEPLOYMENT_TYPE: affine
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['javascript', 'typescript']
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run oxlint
# oxlint is fast, so wrong code will fail quickly
2023-12-18 15:10:01 +03:00
run: yarn dlx $(node -e "console.log(require('./package.json').scripts['lint:ox'].replace('oxlint', 'oxlint@' + require('./package.json').devDependencies.oxlint))")
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Run i18n codegen
run: yarn workspace @affine/i18n build
- name: Run ESLint
run: yarn lint:eslint --max-warnings=0
- name: Run Prettier
# Set nmMode in `actions/setup-node` will modify the .yarnrc.yml
run: |
git checkout .yarnrc.yml
yarn lint:prettier
- name: Yarn Dedupe
run: yarn dedupe --check
- name: Run Type Check
run: yarn typecheck
check-yarn-binary:
name: Check yarn binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run check
run: |
yarn set version $(node -e "console.log(require('./package.json').packageManager.split('@')[1])")
git diff --exit-code
e2e-test:
name: E2E Test
runs-on: ubuntu-latest
env:
2024-09-10 07:03:58 +03:00
DISTRIBUTION: web
IN_CI_TEST: true
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
full-cache: true
- name: Run playwright tests
run: yarn workspace @affine-test/affine-local e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-results-e2e-${{ matrix.shard }}
path: ./test-results
if-no-files-found: ignore
e2e-mobile-test:
name: E2E Mobile Test
runs-on: ubuntu-latest
env:
DISTRIBUTION: mobile
IN_CI_TEST: true
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
full-cache: true
- name: Run playwright tests
run: yarn workspace @affine-test/affine-mobile e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-results-e2e-mobile-${{ matrix.shard }}
path: ./test-results
if-no-files-found: ignore
e2e-migration-test:
name: E2E Migration Test
runs-on: ubuntu-latest
env:
2024-09-10 07:03:58 +03:00
DISTRIBUTION: web
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
full-cache: true
- name: Run playwright tests
run: yarn workspace @affine-test/affine-migration e2e --forbid-only
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-results-e2e-migration
path: ./test-results
if-no-files-found: ignore
unit-test:
name: Unit Test
runs-on: ubuntu-latest
needs:
- build-native
env:
2024-09-10 07:03:58 +03:00
DISTRIBUTION: web
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
2024-08-19 17:24:34 +03:00
electron-install: true
full-cache: true
- name: Download affine.linux-x64-gnu.node
uses: actions/download-artifact@v4
with:
name: affine.linux-x64-gnu.node
path: ./packages/frontend/native
- name: Unit Test
run: yarn nx test:coverage @affine/monorepo
- name: Upload unit test coverage results
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/store/lcov.info
flags: unittest
name: affine
fail_ci_if_error: false
build-native:
name: Build AFFiNE native (${{ matrix.spec.target }})
runs-on: ${{ matrix.spec.os }}
env:
CARGO_PROFILE_RELEASE_DEBUG: '1'
strategy:
fail-fast: false
matrix:
spec:
- { os: ubuntu-latest, target: x86_64-unknown-linux-gnu }
- { os: windows-latest, target: x86_64-pc-windows-msvc }
- { os: macos-14, target: x86_64-apple-darwin }
- { os: macos-14, target: aarch64-apple-darwin }
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
extra-flags: workspaces focus @affine/native
electron-install: false
- name: Setup filename
id: filename
shell: bash
run: |
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
target: ${{ matrix.spec.target }}
package: '@affine/native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload ${{ steps.filename.outputs.filename }}
uses: actions/upload-artifact@v4
with:
name: ${{ steps.filename.outputs.filename }}
path: ./packages/frontend/native/${{ steps.filename.outputs.filename }}
if-no-files-found: error
build-server-native:
name: Build Server native
runs-on: ubuntu-latest
env:
CARGO_PROFILE_RELEASE_DEBUG: '1'
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
extra-flags: workspaces focus @affine/server-native
electron-install: false
- name: Build Rust
uses: ./.github/actions/build-rust
with:
target: 'x86_64-unknown-linux-gnu'
package: '@affine/server-native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload server-native.node
uses: actions/upload-artifact@v4
with:
name: server-native.node
path: ./packages/backend/native/server-native.node
if-no-files-found: error
2024-09-18 08:09:42 +03:00
build-electron-renderer:
name: Build @affine/electron renderer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
2024-09-18 08:09:42 +03:00
- name: Build Electron renderer
# always skip cache because its fast, and cache configuration is always changing
2024-09-18 08:09:42 +03:00
run: yarn build
env:
2024-09-10 07:03:58 +03:00
DISTRIBUTION: desktop
- name: zip web
run: tar -czf dist.tar.gz --directory=packages/frontend/apps/electron/renderer/dist .
- name: Upload web artifact
uses: actions/upload-artifact@v4
with:
name: web
path: dist.tar.gz
if-no-files-found: error
server-test:
name: Server Test
runs-on: ubuntu-latest
needs: build-server-native
env:
NODE_ENV: test
2024-09-10 07:03:58 +03:00
DISTRIBUTION: web
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Download server-native.node
uses: actions/download-artifact@v4
with:
name: server-native.node
path: ./packages/backend/server
- name: Prepare Server Test Environment
uses: ./.github/actions/server-test-env
- name: Run server tests
run: yarn workspace @affine/server test:coverage
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
COPILOT_OPENAI_API_KEY: 'use_fake_openai_api_key'
- name: Upload server test coverage results
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/server/.coverage/lcov.info
flags: server-test
name: affine
fail_ci_if_error: false
copilot-api-test:
name: Server Copilot Api Test
runs-on: ubuntu-latest
needs:
- build-server-native
env:
NODE_ENV: test
DISTRIBUTION: web
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Download server-native.node
uses: actions/download-artifact@v4
with:
name: server-native.node
path: ./packages/backend/server
- name: Prepare Server Test Environment
uses: ./.github/actions/server-test-env
- name: Run server tests
run: yarn workspace @affine/server test:copilot:coverage --forbid-only
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
COPILOT_OPENAI_API_KEY: ${{ secrets.COPILOT_OPENAI_API_KEY }}
COPILOT_FAL_API_KEY: ${{ secrets.COPILOT_FAL_API_KEY }}
- name: Upload server test coverage results
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/server/.coverage/lcov.info
flags: server-test
name: affine
fail_ci_if_error: false
copilot-e2e-test:
name: Server Copilot E2E Test
runs-on: ubuntu-latest
env:
DISTRIBUTION: web
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
IN_CI_TEST: true
strategy:
fail-fast: false
matrix:
shardIndex: [1, 2, 3]
shardTotal: [3]
needs:
- build-server-native
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- uses: actions/checkout@v4
- name: Check blocksuite update
id: check-blocksuite-update
env:
BASE_REF: ${{ github.base_ref }}
run: |
if node ./scripts/detect-blocksuite-update.mjs "$BASE_REF"; then
echo "skip=false" >> $GITHUB_OUTPUT
else
echo "skip=true" >> $GITHUB_OUTPUT
fi
- name: Setup Node.js
if: ${{ steps.check-blocksuite-update.outputs.skip == 'true' }}
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
hard-link-nm: false
- name: Download server-native.node
if: ${{ steps.check-blocksuite-update.outputs.skip == 'true' }}
uses: actions/download-artifact@v4
with:
name: server-native.node
path: ./packages/backend/server
- name: Run Copilot E2E Test ${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
if: ${{ steps.check-blocksuite-update.outputs.skip == 'true' }}
uses: ./.github/actions/copilot-test
with:
script: yarn workspace @affine-test/affine-cloud-copilot e2e --forbid-only --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
openai-key: ${{ secrets.COPILOT_OPENAI_API_KEY }}
fal-key: ${{ secrets.COPILOT_FAL_API_KEY }}
server-e2e-test:
name: ${{ matrix.tests.name }}
runs-on: ubuntu-latest
env:
2024-09-10 07:03:58 +03:00
DISTRIBUTION: web
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
IN_CI_TEST: true
strategy:
fail-fast: false
matrix:
tests:
- name: 'Server E2E Test 1/3'
script: yarn workspace @affine-test/affine-cloud e2e --forbid-only --shard=1/3
- name: 'Server E2E Test 2/3'
script: yarn workspace @affine-test/affine-cloud e2e --forbid-only --shard=2/3
- name: 'Server E2E Test 3/3'
script: yarn workspace @affine-test/affine-cloud e2e --forbid-only --shard=3/3
- name: 'Server Desktop E2E Test'
script: |
yarn workspace @affine/electron build:dev
# Workaround for Electron apps failing to initialize on Ubuntu 24.04 due to AppArmor restrictions
# Disables unprivileged user namespaces restriction to allow Electron apps to run
# Reference: https://github.com/electron/electron/issues/42510
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop-cloud e2e
needs:
- build-server-native
- build-native
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
hard-link-nm: false
- name: Download server-native.node
uses: actions/download-artifact@v4
with:
name: server-native.node
path: ./packages/backend/server
- name: Download affine.linux-x64-gnu.node
uses: actions/download-artifact@v4
with:
name: affine.linux-x64-gnu.node
path: ./packages/frontend/native
- name: Prepare Server Test Environment
uses: ./.github/actions/server-test-env
- name: ${{ matrix.tests.name }}
run: |
${{ matrix.tests.script }}
env:
DEV_SERVER_URL: http://localhost:8080
COPILOT_OPENAI_API_KEY: 1
COPILOT_FAL_API_KEY: 1
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-results-e2e-server
path: ./test-results
if-no-files-found: ignore
desktop-test:
name: Desktop Test (${{ matrix.spec.os }}, ${{ matrix.spec.platform }}, ${{ matrix.spec.arch }}, ${{ matrix.spec.target }}, ${{ matrix.spec.test }})
runs-on: ${{ matrix.spec.os }}
strategy:
fail-fast: false
matrix:
spec:
- {
os: macos-14,
platform: macos,
arch: x64,
target: x86_64-apple-darwin,
test: false,
}
- {
os: macos-14,
platform: macos,
arch: arm64,
target: aarch64-apple-darwin,
test: true,
}
- {
os: ubuntu-latest,
platform: linux,
arch: x64,
target: x86_64-unknown-linux-gnu,
test: true,
}
- {
os: windows-latest,
platform: windows,
arch: x64,
target: x86_64-pc-windows-msvc,
test: true,
}
needs:
2024-09-18 08:09:42 +03:00
- build-electron-renderer
- build-native
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
timeout-minutes: 10
with:
extra-flags: workspaces focus @affine/electron @affine/monorepo @affine-test/affine-desktop
playwright-install: true
hard-link-nm: false
enableScripts: false
- name: Setup filename
id: filename
shell: bash
run: |
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
- name: Download ${{ steps.filename.outputs.filename }}
uses: actions/download-artifact@v4
with:
name: ${{ steps.filename.outputs.filename }}
path: ./packages/frontend/native
- name: Run unit tests
if: ${{ matrix.spec.test }}
shell: bash
chore: bump up all non-major dependencies (#5499) [![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [@aws-sdk/client-s3](https://togithub.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://togithub.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3)) | [`3.484.0` -> `3.485.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.484.0/3.485.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.485.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.485.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.484.0/3.485.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.484.0/3.485.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@napi-rs/cli](https://togithub.com/napi-rs/napi-rs) | [`3.0.0-alpha.29` -> `3.0.0-alpha.30`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.29/3.0.0-alpha.30) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.29/3.0.0-alpha.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.29/3.0.0-alpha.30?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@node-rs/jsonwebtoken](https://togithub.com/napi-rs/node-rs) | [`^0.2.3` -> `^0.3.0`](https://renovatebot.com/diffs/npm/@node-rs%2fjsonwebtoken/0.2.3/0.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@node-rs%2fjsonwebtoken/0.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@node-rs%2fjsonwebtoken/0.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@node-rs%2fjsonwebtoken/0.2.3/0.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@node-rs%2fjsonwebtoken/0.2.3/0.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@opentelemetry/instrumentation-socket.io](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/instrumentation-socket.io#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.34.4` -> `^0.35.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-socket.io/0.34.4/0.35.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-socket.io/0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-socket.io/0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-socket.io/0.34.4/0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-socket.io/0.34.4/0.35.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@storybook/test-runner](https://togithub.com/storybookjs/test-runner) | [`^0.15.2` -> `^0.16.0`](https://renovatebot.com/diffs/npm/@storybook%2ftest-runner/0.15.2/0.16.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2ftest-runner/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2ftest-runner/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2ftest-runner/0.15.2/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2ftest-runner/0.15.2/0.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@vitest/coverage-istanbul](https://togithub.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`1.1.1` -> `1.1.2`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/1.1.1/1.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/1.1.1/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/1.1.1/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [@vitest/ui](https://togithub.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`1.1.1` -> `1.1.2`](https://renovatebot.com/diffs/npm/@vitest%2fui/1.1.1/1.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/1.1.1/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/1.1.1/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [vitest](https://togithub.com/vitest-dev/vitest) ([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`1.1.1` -> `1.1.2`](https://renovatebot.com/diffs/npm/vitest/1.1.1/1.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/1.1.1/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/1.1.1/1.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/client-s3)</summary> ### [`v3.485.0`](https://togithub.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#34850-2024-01-03) [Compare Source](https://togithub.com/aws/aws-sdk-js-v3/compare/v3.484.0...v3.485.0) ##### Features - **credential-providers:** add credentialScope field ([#&#8203;5606](https://togithub.com/aws/aws-sdk-js-v3/issues/5606)) ([04c1459](https://togithub.com/aws/aws-sdk-js-v3/commit/04c14592898ac63ed87d47f2a53320ccaa991083)) </details> <details> <summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary> ### [`v3.0.0-alpha.30`](https://togithub.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.0.0-alpha.30) [Compare Source](https://togithub.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.29...@napi-rs/cli@3.0.0-alpha.30) ##### What's Changed - chore(deps): lock file maintenance by [@&#8203;renovate](https://togithub.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/1882](https://togithub.com/napi-rs/napi-rs/pull/1882) - fix(cli): wasi fallback package load logic by [@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/1887](https://togithub.com/napi-rs/napi-rs/pull/1887) - fix(cli): upload to github releases issue by [@&#8203;Brooooooklyn](https://togithub.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/1888](https://togithub.com/napi-rs/napi-rs/pull/1888) **Full Changelog**: https://github.com/napi-rs/napi-rs/compare/[@&#8203;napi-rs/cli](https://togithub.com/napi-rs/cli)[@&#8203;3](https://togithub.com/3).0.0-alpha.29...[@&#8203;napi-rs/cli](https://togithub.com/napi-rs/cli)[@&#8203;3](https://togithub.com/3).0.0-alpha.30 </details> <details> <summary>napi-rs/node-rs (@&#8203;node-rs/jsonwebtoken)</summary> ### [`v0.3.1`](https://togithub.com/napi-rs/node-rs/compare/@node-rs/jsonwebtoken@0.3.0...@node-rs/jsonwebtoken@0.3.1) [Compare Source](https://togithub.com/napi-rs/node-rs/compare/@node-rs/jsonwebtoken@0.3.0...@node-rs/jsonwebtoken@0.3.1) ### [`v0.3.0`](https://togithub.com/napi-rs/node-rs/compare/@node-rs/jsonwebtoken@0.2.3...@node-rs/jsonwebtoken@0.3.0) [Compare Source](https://togithub.com/napi-rs/node-rs/compare/@node-rs/jsonwebtoken@0.2.3...@node-rs/jsonwebtoken@0.3.0) </details> <details> <summary>open-telemetry/opentelemetry-js-contrib (@&#8203;opentelemetry/instrumentation-socket.io)</summary> ### [`v0.35.0`](https://togithub.com/open-telemetry/opentelemetry-js-contrib/compare/efdfc727a49090accee7fea8ff93011b6b84c1e4...f81f8a76a8f0af2101c62dbc73cde442f875d833) [Compare Source](https://togithub.com/open-telemetry/opentelemetry-js-contrib/compare/a757b5e443dfe1dade090aeb11ec37d0e802f8af...90928231259bbbdf6980f184bc7420503048b77e) </details> <details> <summary>storybookjs/test-runner (@&#8203;storybook/test-runner)</summary> ### [`v0.16.0`](https://togithub.com/storybookjs/test-runner/releases/tag/v0.16.0) [Compare Source](https://togithub.com/storybookjs/test-runner/compare/v0.15.2...v0.16.0) ##### 🚀 Enhancement - Introduce logLevel configuration [#&#8203;406](https://togithub.com/storybookjs/test-runner/pull/406) ([@&#8203;yannbf](https://togithub.com/yannbf)) ##### 🐛 Bug Fix - Filter duplicated error messages in browser logs [#&#8203;405](https://togithub.com/storybookjs/test-runner/pull/405) ([@&#8203;yannbf](https://togithub.com/yannbf)) - Fix sync issues between tests [#&#8203;404](https://togithub.com/storybookjs/test-runner/pull/404) ([@&#8203;yannbf](https://togithub.com/yannbf)) - Refactor: Extract the setup page scripts into a separate file [#&#8203;403](https://togithub.com/storybookjs/test-runner/pull/403) ([@&#8203;yannbf](https://togithub.com/yannbf)) - Docs: Adds feedback form to migration documentation [#&#8203;402](https://togithub.com/storybookjs/test-runner/pull/402) ([@&#8203;jonniebigodes](https://togithub.com/jonniebigodes)) - Bump `jest-playwright-preset` from `v3.0.1` to `v4.0.0` [#&#8203;400](https://togithub.com/storybookjs/test-runner/pull/400) ([@&#8203;kemuridama](https://togithub.com/kemuridama)) - Improve type safety and code quality [#&#8203;383](https://togithub.com/storybookjs/test-runner/pull/383) ([@&#8203;bryanjtc](https://togithub.com/bryanjtc) [@&#8203;yannbf](https://togithub.com/yannbf)) - Refactor: Improve internal code [#&#8203;378](https://togithub.com/storybookjs/test-runner/pull/378) ([@&#8203;bryanjtc](https://togithub.com/bryanjtc) [@&#8203;yannbf](https://togithub.com/yannbf)) ##### Authors: 4 - [@&#8203;jonniebigodes](https://togithub.com/jonniebigodes) - Bryan Thomas ([@&#8203;bryanjtc](https://togithub.com/bryanjtc)) - Ryo Ochiai ([@&#8203;kemuridama](https://togithub.com/kemuridama)) - Yann Braga ([@&#8203;yannbf](https://togithub.com/yannbf)) </details> <details> <summary>vitest-dev/vitest (@&#8203;vitest/coverage-istanbul)</summary> ### [`v1.1.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.1.2) [Compare Source](https://togithub.com/vitest-dev/vitest/compare/v1.1.1...v1.1.2) #####    🐞 Bug Fixes - Remove internal flag from UI option in the config  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(7b4a2)</samp>](https://togithub.com/vitest-dev/vitest/commit/7b4a2fce) - **browser**: - Avoid safaridriver collision  -  by [@&#8203;mbland](https://togithub.com/mbland) in [https://github.com/vitest-dev/vitest/issues/4863](https://togithub.com/vitest-dev/vitest/issues/4863) [<samp>(345a2)</samp>](https://togithub.com/vitest-dev/vitest/commit/345a25d6) - Resolved failure to find arbitrarily-named snapshot files when using `expect(...).toMatchFileSnapshot()` matcher.  -  by [@&#8203;zmullett](https://togithub.com/zmullett), **Zac Mullett** and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4839](https://togithub.com/vitest-dev/vitest/issues/4839) [<samp>(b8140)</samp>](https://togithub.com/vitest-dev/vitest/commit/b8140fca) - Handle config.base  -  by [@&#8203;mbland](https://togithub.com/mbland) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4686](https://togithub.com/vitest-dev/vitest/issues/4686) and [https://github.com/vitest-dev/vitest/issues/4692](https://togithub.com/vitest-dev/vitest/issues/4692) [<samp>(9e345)</samp>](https://togithub.com/vitest-dev/vitest/commit/9e34557e) - **deps**: - Update dependency acorn-walk to ^8.3.1  -  by [@&#8203;renovate](https://togithub.com/renovate)\[bot] in[https://github.com/vitest-dev/vitest/issues/4837](https://togithub.com/vitest-dev/vitest/issues/4837)7 [<samp>(47bc2)</samp>](https://togithub.com/vitest-dev/vitest/commit/47bc233d) - Update dependency sirv to ^2.0.4  -  by [@&#8203;renovate](https://togithub.com/renovate)\[bot] in[https://github.com/vitest-dev/vitest/issues/4838](https://togithub.com/vitest-dev/vitest/issues/4838)8 [<samp>(df261)</samp>](https://togithub.com/vitest-dev/vitest/commit/df261ae1) - **runner**: - Fix fixture cleanup for concurrent tests  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4827](https://togithub.com/vitest-dev/vitest/issues/4827) [<samp>(1fee6)</samp>](https://togithub.com/vitest-dev/vitest/commit/1fee63f2) - **spy**: - Don't allow `Promise` in `mockImplementation` if it's not in the function signature  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4859](https://togithub.com/vitest-dev/vitest/issues/4859) [<samp>(072e0)</samp>](https://togithub.com/vitest-dev/vitest/commit/072e02bf) - **vite-node**: - Correctly return cached result  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4870](https://togithub.com/vitest-dev/vitest/issues/4870) [<samp>(15bbb)</samp>](https://togithub.com/vitest-dev/vitest/commit/15bbbf81) - **vitest**: - Throw an error if mock was already loaded when `vi.mock` is called  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4862](https://togithub.com/vitest-dev/vitest/issues/4862) [<samp>(e12a5)</samp>](https://togithub.com/vitest-dev/vitest/commit/e12a5a36) - Correctly rerun test files on change if server was restarted  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4871](https://togithub.com/vitest-dev/vitest/issues/4871) [<samp>(6088b)</samp>](https://togithub.com/vitest-dev/vitest/commit/6088b372) - **vm-threads**: - Don't crash on percentage based `memoryLimit`  -  by [@&#8203;inottn](https://togithub.com/inottn) and [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4802](https://togithub.com/vitest-dev/vitest/issues/4802) [<samp>(70e8a)</samp>](https://togithub.com/vitest-dev/vitest/commit/70e8a389) #####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.1.1...v1.1.2) </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEyMS4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
2024-01-05 10:23:22 +03:00
run: yarn workspace @affine/electron vitest
- name: Download web artifact
uses: ./.github/actions/download-web
with:
path: packages/frontend/apps/electron/resources/web-static
- name: Build Desktop Layers
run: yarn workspace @affine/electron build
- name: Run desktop tests
if: ${{ matrix.spec.os == 'ubuntu-latest' }}
run: |
# Workaround for Electron apps failing to initialize on Ubuntu 24.04 due to AppArmor restrictions
# Disables unprivileged user namespaces restriction to allow Electron apps to run
# Reference: https://github.com/electron/electron/issues/42510
sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop e2e
- name: Run desktop tests
if: ${{ matrix.spec.test && matrix.spec.os != 'ubuntu-latest' }}
run: yarn workspace @affine-test/affine-desktop e2e
- name: Make bundle (macOS)
if: ${{ matrix.spec.target == 'aarch64-apple-darwin' }}
env:
SKIP_BUNDLE: true
SKIP_WEB_BUILD: true
HOIST_NODE_MODULES: 1
run: yarn workspace @affine/electron package --platform=darwin --arch=arm64
- name: Make Bundle (Linux)
run: |
sudo add-apt-repository universe
sudo apt install -y libfuse2 elfutils flatpak flatpak-builder
flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak update
# some flatpak deps need git protocol.file.allow
git config --global protocol.file.allow always
yarn workspace @affine/electron make --platform=linux --arch=x64
if: ${{ matrix.spec.target == 'x86_64-unknown-linux-gnu' }}
env:
SKIP_WEB_BUILD: 1
HOIST_NODE_MODULES: 1
- name: Output check
if: ${{ matrix.spec.os == 'macos-14' && matrix.spec.arch == 'arm64' }}
run: |
yarn workspace @affine/electron exec node --loader ts-node/esm/transpile-only ./scripts/macos-arm64-output-check.ts
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v4
with:
name: test-results-e2e-${{ matrix.spec.os }}-${{ matrix.spec.arch }}
path: ./test-results
if-no-files-found: ignore
test-build-mobile-app:
uses: ./.github/workflows/release-mobile.yml
with:
build-type: canary
build-target: development
secrets: inherit
permissions:
id-token: 'write'
test-done:
needs:
- analyze
- lint
- check-yarn-binary
- e2e-test
- e2e-mobile-test
- e2e-migration-test
- unit-test
chore: bump up all non-major dependencies (#8130) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | Type | Update | |---|---|---|---|---|---|---|---| | [@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3)) | [`3.645.0` -> `3.651.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.645.0/3.651.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.645.0/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.645.0/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3)) | [`3.645.0` -> `3.651.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.645.0/3.651.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.645.0/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.645.0/3.651.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@chromatic-com/storybook](https://redirect.github.com/chromaui/addon-visual-tests) | [`1.8.0` -> `1.9.0`](https://renovatebot.com/diffs/npm/@chromatic-com%2fstorybook/1.8.0/1.9.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@chromatic-com%2fstorybook/1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@chromatic-com%2fstorybook/1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@chromatic-com%2fstorybook/1.8.0/1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@chromatic-com%2fstorybook/1.8.0/1.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@commitlint/cli](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/cli)) | [`19.4.1` -> `19.5.0`](https://renovatebot.com/diffs/npm/@commitlint%2fcli/19.4.1/19.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fcli/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fcli/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fcli/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fcli/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@commitlint/config-conventional](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@commitlint/config-conventional)) | [`19.4.1` -> `19.5.0`](https://renovatebot.com/diffs/npm/@commitlint%2fconfig-conventional/19.4.1/19.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@commitlint%2fconfig-conventional/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@commitlint%2fconfig-conventional/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@commitlint%2fconfig-conventional/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@commitlint%2fconfig-conventional/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@marsidev/react-turnstile](https://redirect.github.com/marsidev/react-turnstile) | [`1.0.1` -> `1.0.2`](https://renovatebot.com/diffs/npm/@marsidev%2freact-turnstile/1.0.1/1.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@marsidev%2freact-turnstile/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@marsidev%2freact-turnstile/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@marsidev%2freact-turnstile/1.0.1/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@marsidev%2freact-turnstile/1.0.1/1.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [@nx/vite](https://nx.dev) ([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/vite)) | [`19.6.5` -> `19.7.3`](https://renovatebot.com/diffs/npm/@nx%2fvite/19.6.5/19.7.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nx%2fvite/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nx%2fvite/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nx%2fvite/19.6.5/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nx%2fvite/19.6.5/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.46.1` -> `=1.47.0`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.46.1/1.47.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.28.0` -> `8.30.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.28.0/8.30.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/8.28.0/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/8.28.0/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.28.0` -> `8.30.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.28.0/8.30.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/8.28.0/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/8.28.0/8.30.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@slack/web-api](https://slack.dev/node-slack-sdk/web-api) ([source](https://redirect.github.com/slackapi/node-slack-sdk)) | [`7.3.4` -> `7.4.0`](https://renovatebot.com/diffs/npm/@slack%2fweb-api/7.3.4/7.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@slack%2fweb-api/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@slack%2fweb-api/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@slack%2fweb-api/7.3.4/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@slack%2fweb-api/7.3.4/7.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [@storybook/addon-actions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/actions) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/actions)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-actions/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-actions/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-actions/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-actions/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-actions/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/addon-essentials](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/essentials) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/essentials)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/addon-interactions](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/interactions) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/interactions)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/addon-links](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/links) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/links)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/addon-mdx-gfm](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/gfm) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/gfm)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/addon-storysource](https://redirect.github.com/storybookjs/storybook/tree/next/code/addons/storysource) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/addons/storysource)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-storysource/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-storysource/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-storysource/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-storysource/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-storysource/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/blocks](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/blocks) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/blocks)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2fblocks/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2fblocks/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2fblocks/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2fblocks/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2fblocks/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/react](https://redirect.github.com/storybookjs/storybook/tree/next/code/renderers/react) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/renderers/react)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@storybook/react-vite](https://redirect.github.com/storybookjs/storybook/tree/next/code/frameworks/react-vite) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/frameworks/react-vite)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact-vite/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact-vite/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact-vite/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact-vite/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.7.23` -> `1.7.26`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.7.23/1.7.26) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.7.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.7.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.7.23/1.7.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.7.23/1.7.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`2.0.5` -> `2.1.0`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/2.0.5/2.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`2.0.5` -> `2.1.0`](https://renovatebot.com/diffs/npm/@vitest%2fui/2.0.5/2.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [anyhow](https://redirect.github.com/dtolnay/anyhow) | `1.0.86` -> `1.0.88` | [![age](https://developer.mend.io/api/mc/badges/age/crate/anyhow/1.0.88?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/anyhow/1.0.88?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/anyhow/1.0.86/1.0.88?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/anyhow/1.0.86/1.0.88?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [commitlint](https://commitlint.js.org/) ([source](https://redirect.github.com/conventional-changelog/commitlint/tree/HEAD/@alias/commitlint)) | [`19.4.1` -> `19.5.0`](https://renovatebot.com/diffs/npm/commitlint/19.4.1/19.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/commitlint/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/commitlint/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/commitlint/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/commitlint/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [debug](https://redirect.github.com/debug-js/debug) | [`4.3.6` -> `4.3.7`](https://renovatebot.com/diffs/npm/debug/4.3.6/4.3.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/debug/4.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/debug/4.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/debug/4.3.6/4.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/debug/4.3.6/4.3.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [electron](https://redirect.github.com/electron/electron) | [`31.4.0` -> `31.6.0`](https://renovatebot.com/diffs/npm/electron/31.4.0/31.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron/31.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron/31.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron/31.4.0/31.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron/31.4.0/31.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [electron-log](https://redirect.github.com/megahertz/electron-log) | [`5.1.7` -> `5.2.0`](https://renovatebot.com/diffs/npm/electron-log/5.1.7/5.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron-log/5.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron-log/5.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron-log/5.1.7/5.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron-log/5.1.7/5.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [file-type](https://redirect.github.com/sindresorhus/file-type) | [`19.4.1` -> `19.5.0`](https://renovatebot.com/diffs/npm/file-type/19.4.1/19.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/file-type/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/file-type/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/file-type/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/file-type/19.4.1/19.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [foxact](https://foxact.skk.moe) ([source](https://redirect.github.com/SukkaW/foxact)) | [`0.2.37` -> `0.2.38`](https://renovatebot.com/diffs/npm/foxact/0.2.37/0.2.38) | [![age](https://developer.mend.io/api/mc/badges/age/npm/foxact/0.2.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/foxact/0.2.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/foxact/0.2.37/0.2.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/foxact/0.2.37/0.2.38?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`15.7.3` -> `15.7.4`](https://renovatebot.com/diffs/npm/happy-dom/15.7.3/15.7.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/15.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/15.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/15.7.3/15.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/15.7.3/15.7.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [html-validate](https://html-validate.org) ([source](https://gitlab.com/html-validate/html-validate)) | [`8.21.0` -> `8.22.0`](https://renovatebot.com/diffs/npm/html-validate/8.21.0/8.22.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/html-validate/8.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/html-validate/8.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/html-validate/8.21.0/8.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/html-validate/8.21.0/8.22.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [husky](https://redirect.github.com/typicode/husky) | [`9.1.5` -> `9.1.6`](https://renovatebot.com/diffs/npm/husky/9.1.5/9.1.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/husky/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/husky/9.1.5/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/husky/9.1.5/9.1.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [i18next](https://www.i18next.com) ([source](https://redirect.github.com/i18next/i18next)) | [`23.14.0` -> `23.15.1`](https://renovatebot.com/diffs/npm/i18next/23.14.0/23.15.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/23.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/23.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/23.14.0/23.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/23.14.0/23.15.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.438.0` -> `^0.441.0`](https://renovatebot.com/diffs/npm/lucide-react/0.438.0/0.441.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.441.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.441.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.438.0/0.441.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.438.0/0.441.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [marked](https://marked.js.org) ([source](https://redirect.github.com/markedjs/marked)) | [`14.1.1` -> `14.1.2`](https://renovatebot.com/diffs/npm/marked/14.1.1/14.1.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/marked/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/marked/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/marked/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/marked/14.1.1/14.1.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [msw](https://mswjs.io) ([source](https://redirect.github.com/mswjs/msw)) | [`2.4.2` -> `2.4.5`](https://renovatebot.com/diffs/npm/msw/2.4.2/2.4.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/msw/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/msw/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/msw/2.4.2/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/msw/2.4.2/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.0.0-alpha.8` -> `3.0.0-alpha.9` | [![age](https://developer.mend.io/api/mc/badges/age/crate/napi/3.0.0-alpha.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/napi/3.0.0-alpha.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/napi/3.0.0-alpha.8/3.0.0-alpha.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/napi/3.0.0-alpha.8/3.0.0-alpha.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.0.0-alpha.7` -> `3.0.0-alpha.8` | [![age](https://developer.mend.io/api/mc/badges/age/crate/napi-derive/3.0.0-alpha.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/napi-derive/3.0.0-alpha.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/napi-derive/3.0.0-alpha.7/3.0.0-alpha.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/napi-derive/3.0.0-alpha.7/3.0.0-alpha.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [nx](https://nx.dev) ([source](https://redirect.github.com/nrwl/nx/tree/HEAD/packages/nx)) | [`19.6.5` -> `19.7.3`](https://renovatebot.com/diffs/npm/nx/19.6.5/19.7.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nx/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nx/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nx/19.6.5/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nx/19.6.5/19.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [nx-cloud](https://nx.app) | [`19.0.0` -> `19.1.0`](https://renovatebot.com/diffs/npm/nx-cloud/19.0.0/19.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nx-cloud/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nx-cloud/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nx-cloud/19.0.0/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nx-cloud/19.0.0/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [openai](https://redirect.github.com/openai/openai-node) | [`4.57.3` -> `4.60.0`](https://renovatebot.com/diffs/npm/openai/4.57.3/4.60.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.60.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.60.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.57.3/4.60.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.57.3/4.60.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [playwright](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.46.1` -> `=1.47.0`](https://renovatebot.com/diffs/npm/playwright/1.46.1/1.47.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright/1.46.1/1.47.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [react-day-picker](https://daypicker.dev) ([source](https://redirect.github.com/gpbl/react-day-picker)) | [`9.0.8` -> `9.0.9`](https://renovatebot.com/diffs/npm/react-day-picker/9.0.8/9.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-day-picker/9.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-day-picker/9.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-day-picker/9.0.8/9.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-day-picker/9.0.8/9.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [react-router-dom](https://redirect.github.com/remix-run/react-router) ([source](https://redirect.github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | [`6.26.1` -> `6.26.2`](https://renovatebot.com/diffs/npm/react-router-dom/6.26.1/6.26.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.26.1/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.26.1/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [react-router-dom](https://redirect.github.com/remix-run/react-router) ([source](https://redirect.github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | [`6.26.1` -> `6.26.2`](https://renovatebot.com/diffs/npm/react-router-dom/6.26.1/6.26.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.26.1/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.26.1/6.26.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [react-virtuoso](https://virtuoso.dev/) ([source](https://redirect.github.com/petyosi/react-virtuoso)) | [`4.10.2` -> `4.10.4`](https://renovatebot.com/diffs/npm/react-virtuoso/4.10.2/4.10.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-virtuoso/4.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-virtuoso/4.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-virtuoso/4.10.2/4.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-virtuoso/4.10.2/4.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch | | [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | `1.0.209` -> `1.0.210` | [![age](https://developer.mend.io/api/mc/badges/age/crate/serde/1.0.210?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/serde/1.0.210?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/serde/1.0.209/1.0.210?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/serde/1.0.209/1.0.210?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [serde_json](https://redirect.github.com/serde-rs/json) | `1.0.127` -> `1.0.128` | [![age](https://developer.mend.io/api/mc/badges/age/crate/serde_json/1.0.128?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/serde_json/1.0.128?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/serde_json/1.0.127/1.0.128?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/serde_json/1.0.127/1.0.128?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [sqlx](https://redirect.github.com/launchbadge/sqlx) | `0.8.1` -> `0.8.2` | [![age](https://developer.mend.io/api/mc/badges/age/crate/sqlx/0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/sqlx/0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/sqlx/0.8.1/0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/sqlx/0.8.1/0.8.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch | | [storybook](https://redirect.github.com/storybookjs/storybook/tree/next/code/lib/cli) ([source](https://redirect.github.com/storybookjs/storybook/tree/HEAD/code/lib/cli)) | [`8.2.9` -> `8.3.0`](https://renovatebot.com/diffs/npm/storybook/8.2.9/8.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.2.9/8.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [stripe](https://redirect.github.com/stripe/stripe-node) | [`16.9.0` -> `16.11.0`](https://renovatebot.com/diffs/npm/stripe/16.9.0/16.11.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/stripe/16.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/stripe/16.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/stripe/16.9.0/16.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/stripe/16.9.0/16.11.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [tailwindcss](https://tailwindcss.com) ([source](https://redirect.github.com/tailwindlabs/tailwindcss)) | [`3.4.10` -> `3.4.11`](https://renovatebot.com/diffs/npm/tailwindcss/3.4.10/3.4.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwindcss/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwindcss/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwindcss/3.4.10/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwindcss/3.4.10/3.4.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [typedoc](https://typedoc.org) ([source](https://redirect.github.com/TypeStrong/TypeDoc)) | [`0.26.6` -> `0.26.7`](https://renovatebot.com/diffs/npm/typedoc/0.26.6/0.26.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.26.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.26.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.26.6/0.26.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.26.6/0.26.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.5.4` -> `5.6.2`](https://renovatebot.com/diffs/npm/typescript/5.5.4/5.6.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.5.4` -> `5.6.2`](https://renovatebot.com/diffs/npm/typescript/5.5.4/5.6.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.5.4/5.6.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor | | [vite](https://vitejs.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`5.4.3` -> `5.4.4`](https://renovatebot.com/diffs/npm/vite/5.4.3/5.4.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/5.4.3/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/5.4.3/5.4.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch | | [vite-plugin-dts](https://redirect.github.com/qmhc/vite-plugin-dts) | [`4.1.0` -> `4.2.1`](https://renovatebot.com/diffs/npm/vite-plugin-dts/4.1.0/4.2.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-dts/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-dts/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-dts/4.1.0/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-dts/4.1.0/4.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`2.0.5` -> `2.1.0`](https://renovatebot.com/diffs/npm/vitest/2.0.5/2.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.0.5/2.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | | [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.74.0` -> `3.77.0`](https://renovatebot.com/diffs/npm/wrangler/3.74.0/3.77.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/3.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/wrangler/3.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/wrangler/3.74.0/3.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/3.74.0/3.77.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor | --- ### Release Notes <details> <summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/client-s3)</summary> ### [`v3.651.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#36510-2024-09-12) [Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.650.0...v3.651.0) **Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3) ### [`v3.650.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#36500-2024-09-11) [Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.649.0...v3.650.0) **Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3) ### [`v3.649.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#36490-2024-09-10) [Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.645.0...v3.649.0) ##### Features - **endpoints:** codegen sync for request creation performance improvements ([#&#8203;6449](https://redirect.github.com/aws/aws-sdk-js-v3/issues/6449)) ([c8e8f28](https://redirect.github.com/aws/aws-sdk-js-v3/commit/c8e8f28d0714c8165162e1411b5f740ba729a93a)) </details> <details> <summary>chromaui/addon-visual-tests (@&#8203;chromatic-com/storybook)</summary> ### [`v1.9.0`](https://redirect.github.com/chromaui/addon-visual-tests/blob/HEAD/CHANGELOG.md#v190-Fri-Sep-06-2024) [Compare Source](https://redirect.github.com/chromaui/addon-visual-tests/compare/v1.8.0...v1.9.0) ##### 🚀 Enhancement - Relay client-side fetch requests to the server using the Storybook channel API [#&#8203;331](https://redirect.github.com/chromaui/addon-visual-tests/pull/331) ([@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)) ##### Authors: 1 - Gert Hengeveld ([@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)) *** </details> <details> <summary>conventional-changelog/commitlint (@&#8203;commitlint/cli)</summary> ### [`v19.5.0`](https://redirect.github.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/cli/CHANGELOG.md#1950-2024-09-11) [Compare Source](https://redirect.github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) ##### Features - **cli:** use special errorCode for missing rules/config [#&#8203;4142](https://redirect.github.com/conventional-changelog/commitlint/issues/4142) ([#&#8203;4143](https://redirect.github.com/conventional-changelog/commitlint/issues/4143)) ([d7070d8](https://redirect.github.com/conventional-changelog/commitlint/commit/d7070d8a4905da7834a018825b37d52c2dd29f62)) #### [19.4.1](https://redirect.github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package [@&#8203;commitlint/cli](https://redirect.github.com/commitlint/cli) </details> <details> <summary>conventional-changelog/commitlint (@&#8203;commitlint/config-conventional)</summary> ### [`v19.5.0`](https://redirect.github.com/conventional-changelog/commitlint/blob/HEAD/@&#8203;commitlint/config-conventional/CHANGELOG.md#1950-2024-09-11) [Compare Source](https://redirect.github.com/conventional-changelog/commitlint/compare/v19.4.1...v19.5.0) **Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://redirect.github.com/commitlint/config-conventional) #### [19.4.1](https://redirect.github.com/conventional-changelog/commitlint/compare/v19.4.0...v19.4.1) (2024-08-28) **Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://redirect.github.com/commitlint/config-conventional) #### [19.2.2](https://redirect.github.com/conventional-changelog/commitlint/compare/v19.2.1...v19.2.2) (2024-04-14) **Note:** Version bump only for package [@&#8203;commitlint/config-conventional](https://redirect.github.com/commitlint/config-conventional) </details> <details> <summary>marsidev/react-turnstile (@&#8203;marsidev/react-turnstile)</summary> ### [`v1.0.2`](https://redirect.github.com/marsidev/react-turnstile/releases/tag/v1.0.2) [Compare Source](https://redirect.github.com/marsidev/react-turnstile/compare/v1.0.1...v1.0.2) #####    🐞 Bug Fixes - Add default exports  -  by [@&#8203;marsidev](https://redirect.github.com/marsidev) [<samp>(2271b)</samp>](https://redirect.github.com/marsidev/react-turnstile/commit/2271bce) #####     [View changes on GitHub](https://redirect.github.com/marsidev/react-turnstile/compare/v1.0.1...v1.0.2) </details> <details> <summary>nrwl/nx (@&#8203;nx/vite)</summary> ### [`v19.7.3`](https://redirect.github.com/nrwl/nx/releases/tag/19.7.3) [Compare Source](https://redirect.github.com/nrwl/nx/compare/19.7.2...19.7.3) ##### 19.7.3 (2024-09-12) ##### 🚀 Features - **core:** import warns when source and destination directories are different ([#&#8203;27875](https://redirect.github.com/nrwl/nx/pull/27875)) ##### 🩹 Fixes - **core:** handle sync generator failures ([#&#8203;27650](https://redirect.github.com/nrwl/nx/pull/27650)) - **core:** handle --no-interative for create-nx-workspace ([#&#8203;27702](https://redirect.github.com/nrwl/nx/pull/27702)) - **core:** respect filenames of inputs when computing task hash ([#&#8203;27873](https://redirect.github.com/nrwl/nx/pull/27873)) - **core:** handleErrors should display error cause if it exists ([#&#8203;27886](https://redirect.github.com/nrwl/nx/pull/27886)) - **gradle:** fix gradle app deps ([#&#8203;27865](https://redirect.github.com/nrwl/nx/pull/27865)) - **js:** keep refs to ignored files and allow opting out of pruning stale refs in typescript sync generator ([#&#8203;27636](https://redirect.github.com/nrwl/nx/pull/27636)) - **misc:** createNodesV2 plugins should show inference capabilities ([#&#8203;27896](https://redirect.github.com/nrwl/nx/pull/27896)) - **nx-cloud:** include nxCloudId when generating connect urls ([#&#8203;27882](https://redirect.github.com/nrwl/nx/pull/27882)) - **webpack:** handle relative paths for additionalEntryPath ([#&#8203;27885](https://redirect.github.com/nrwl/nx/pull/27885)) ##### ❤️ Thank You - Craigory Coppola [@&#8203;AgentEnder](https://redirect.github.com/AgentEnder) - Emily Xiong [@&#8203;xiongemi](https://redirect.github.com/xiongemi) - Jack Hsu [@&#8203;jaysoo](https://redirect.github.com/jaysoo) - Leosvel Pérez Espinosa [@&#8203;leosvelperez](https://redirect.github.com/leosvelperez) - Louie Weng [@&#8203;lourw](https://redirect.github.com/lourw) - Nate Jacobs [@&#8203;iAmNathanJ](https://redirect.github.com/iAmNathanJ) ### [`v19.7.2`](https://redirect.github.com/nrwl/nx/releases/tag/19.7.2) [Compare Source](https://redirect.github.com/nrwl/nx/compare/19.7.1...19.7.2) ##### 19.7.2 (2024-09-10) ##### 🩹 Fixes - **core:** take nx-release-publish target defaults into account for implicit target ([#&#8203;27764](https://redirect.github.com/nrwl/nx/pull/27764)) - **release:** ensure git commits containing pipe can be parsed reliably ([#&#8203;27840](https://redirect.github.com/nrwl/nx/pull/27840)) ##### ❤️ Thank You - James Henry [@&#8203;JamesHenry](https://redirect.github.com/JamesHenry) ### [`v19.7.1`](https://redirect.github.com/nrwl/nx/releases/tag/19.7.1) [Compare Source](https://redirect.github.com/nrwl/nx/compare/19.7.0...19.7.1) ##### 19.7.1 (2024-09-10) ##### 🚀 Features - **release:** allow local dependency version protocols to be preserved, pnpm publish support ([#&#8203;27787](https://redirect.github.com/nrwl/nx/pull/27787)) ##### 🩹 Fixes - **core:** make sure sharedGlobals is referenced in default namedInputs ([#&#8203;27813](https://redirect.github.com/nrwl/nx/pull/27813)) - **release:** respect updateDependents being explicitly disabled in conventional commits ([#&#8203;27851](https://redirect.github.com/nrwl/nx/pull/27851)) ##### ❤️ Thank You - James Henry [@&#8203;JamesHenry](https://redirect.github.com/JamesHenry) - Juri Strumpflohner [@&#8203;juristr](https://redirect.github.com/juristr) ### [`v19.7.0`](https://redirect.github.com/nrwl/nx/releases/tag/19.7.0) [Compare Source](https://redirect.github.com/nrwl/nx/compare/19.6.6...19.7.0) ##### 19.7.0 (2024-09-09) ##### 🚀 Features - **bundling:** add option to generate sourcemaps for Rollup build ([#&#8203;27539](https://redirect.github.com/nrwl/nx/pull/27539)) - **bundling:** add nxCopyAssetsPlugin for Vite to use in JS libs ([#&#8203;27593](https://redirect.github.com/nrwl/nx/pull/27593)) - **core:** add shutdown lifecycle hook to node executor ([#&#8203;27354](https://redirect.github.com/nrwl/nx/pull/27354)) - **core:** add sqlite db for nx ([#&#8203;26891](https://redirect.github.com/nrwl/nx/pull/26891)) - **core:** expose graph json type ([#&#8203;27496](https://redirect.github.com/nrwl/nx/pull/27496)) - **core:** return task results from imperative task runner ([#&#8203;27640](https://redirect.github.com/nrwl/nx/pull/27640)) - **core:** refactor graph implementation details ([#&#8203;27267](https://redirect.github.com/nrwl/nx/pull/27267)) - **core:** allow disabling registered task sync generators ([#&#8203;27638](https://redirect.github.com/nrwl/nx/pull/27638)) - **core:** allow skipping sync when running tasks ([#&#8203;27697](https://redirect.github.com/nrwl/nx/pull/27697)) - **core:** a
2024-09-13 08:21:56 +03:00
- build-native
- build-server-native
- build-electron-renderer
- server-test
- copilot-e2e-test
- server-e2e-test
- desktop-test
- test-build-mobile-app
if: always()
runs-on: ubuntu-latest
name: 3, 2, 1 Launch
steps:
- run: exit 1
# Thank you, next https://github.com/vercel/next.js/blob/canary/.github/workflows/build_and_test.yml#L379
if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }}