Commit Graph

59 Commits

Author SHA1 Message Date
donteatfriedrice
d5aebc1421 fix(editor): enhance markdown latex preprocessing (#11597)
Close [BS-2440](https://linear.app/affine-design/issue/BS-2440/inline-latex-markdown-adapter-需要更精确的处理)
2025-04-10 12:15:24 +00:00
liuyi
e376aa57c5 chore: bring treeshake back (#11577) 2025-04-10 14:12:36 +08:00
Saul-Mirone
1f45cc5dec refactor(editor): unify directories naming (#11516)
**Directory Structure Changes**

- Renamed multiple block-related directories by removing the "block-" prefix:
  - `block-attachment` → `attachment`
  - `block-bookmark` → `bookmark`
  - `block-callout` → `callout`
  - `block-code` → `code`
  - `block-data-view` → `data-view`
  - `block-database` → `database`
  - `block-divider` → `divider`
  - `block-edgeless-text` → `edgeless-text`
  - `block-embed` → `embed`
2025-04-07 12:34:40 +00:00
forehalo
40f218c898 chore: set base version to 0.21 2025-04-07 16:10:32 +08:00
donteatfriedrice
568a390b75 feat(editor): support markdown adapter preprocessed with latex delimiters (#11431)
To close [BS-2870](https://linear.app/affine-design/issue/BS-2870/支持识别-和-[-包裹内容为公式)

## Add Markdown Preprocessor Extension and Enhanced LaTeX Support

### Markdown Preprocessor Extension
This PR introduces a new preprocessor extension for Markdown adapters that allows preprocessing of content before conversion:

Adds a new PreprocessorManager for handling text transformations
Introduces extensible preprocessor interface that supports different processing levels (block/slice/doc)

Integrates preprocessor extension into the existing Markdown adapter workflow

### LaTeX Support Enhancement
Extends LaTeX support to handle both traditional and alternative syntax:
Adds support for backslash LaTeX syntax:

Block math: ```\[...\] ``` alongside existing ```$$...$$```
Inline math: ```\(...\) ``` alongside existing ```$...$```

Implements LaTeX preprocessor to standardize syntax before conversion

Updates tests to cover both syntax variants
2025-04-07 02:18:04 +00:00
Saul-Mirone
bb1270061a feat(editor): gfx template package (#11480) 2025-04-06 12:24:13 +00:00
Saul-Mirone
aed7f40568 refactor(editor): improve element adapters (#11473) 2025-04-05 09:40:13 +00:00
fundon
f374f2695f fix(core): add shortcuts to open doc dropdown menu (#11358)
Closes: [BS-2992](https://linear.app/affine-design/issue/BS-2992/走查toolbar上的open-in-button)

[Screen Recording 2025-04-01 at 16.37.57.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/8ypiIKZXudF5a0tIgIzf/cf4b1baf-aa2c-4f37-9c62-f7202d0f7c42.mov" />](https://app.graphite.dev/media/video/8ypiIKZXudF5a0tIgIzf/cf4b1baf-aa2c-4f37-9c62-f7202d0f7c42.mov)
2025-04-01 12:39:13 +00:00
renovate
782f31ad26 chore: bump up all non-major dependencies (#11273)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/google](https://sdk.vercel.ai/docs) ([source](https://redirect.github.com/vercel/ai)) | [`1.2.3` -> `1.2.5`](https://renovatebot.com/diffs/npm/@ai-sdk%2fgoogle/1.2.3/1.2.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@ai-sdk%2fgoogle/1.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@ai-sdk%2fgoogle/1.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@ai-sdk%2fgoogle/1.2.3/1.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ai-sdk%2fgoogle/1.2.3/1.2.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@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.777.0` -> `3.779.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.777.0/3.779.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.779.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.779.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.777.0/3.779.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.777.0/3.779.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capacitor/android](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fandroid/7.1.0/7.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fandroid/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fandroid/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fandroid/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fandroid/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capacitor/cli](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcli/7.1.0/7.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcli/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcli/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcli/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcli/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@capacitor/core](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/7.1.0/7.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcore/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcore/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capacitor/ios](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@capacitor%2fios/7.1.0/7.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fios/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fios/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fios/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fios/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@capgo/inappbrowser](https://redirect.github.com/Cap-go/capacitor-inappbrowser) | [`7.6.8` -> `7.7.2`](https://renovatebot.com/diffs/npm/@capgo%2finappbrowser/7.6.8/7.7.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capgo%2finappbrowser/7.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capgo%2finappbrowser/7.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capgo%2finappbrowser/7.6.8/7.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capgo%2finappbrowser/7.6.8/7.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@lottiefiles/dotlottie-wc](https://redirect.github.com/LottieFiles/dotlottie-web) ([source](https://redirect.github.com/LottieFiles/dotlottie-web/tree/HEAD/packages/wc)) | [`0.5.0` -> `0.5.1`](https://renovatebot.com/diffs/npm/@lottiefiles%2fdotlottie-wc/0.5.0/0.5.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@lottiefiles%2fdotlottie-wc/0.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@lottiefiles%2fdotlottie-wc/0.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@lottiefiles%2fdotlottie-wc/0.5.0/0.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@lottiefiles%2fdotlottie-wc/0.5.0/0.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@perfsee/webpack](https://redirect.github.com/perfsee/perfsee) | [`1.13.0` -> `1.14.2`](https://renovatebot.com/diffs/npm/@perfsee%2fwebpack/1.13.0/1.14.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@perfsee%2fwebpack/1.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@perfsee%2fwebpack/1.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@perfsee%2fwebpack/1.13.0/1.14.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@perfsee%2fwebpack/1.13.0/1.14.2?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)) | [`9.10.0` -> `9.10.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.10.0/9.10.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.10.0/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.10.0/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`9.10.0` -> `9.10.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.10.0/9.10.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.10.0/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.10.0/9.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser)) | [`3.0.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.9/3.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@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)) | [`3.0.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.9/3.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/3.0.9/3.1.1?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)) | [`3.0.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.9/3.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [ai](https://sdk.vercel.ai/docs) ([source](https://redirect.github.com/vercel/ai)) | [`4.2.8` -> `4.2.10`](https://renovatebot.com/diffs/npm/ai/4.2.8/4.2.10) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ai/4.2.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ai/4.2.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ai/4.2.8/4.2.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ai/4.2.8/4.2.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [bullmq](https://bullmq.io/) ([source](https://redirect.github.com/taskforcesh/bullmq)) | [`5.45.0` -> `5.45.2`](https://renovatebot.com/diffs/npm/bullmq/5.45.0/5.45.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/bullmq/5.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bullmq/5.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bullmq/5.45.0/5.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bullmq/5.45.0/5.45.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [esbuild](https://redirect.github.com/evanw/esbuild) | [`0.25.1` -> `0.25.2`](https://renovatebot.com/diffs/npm/esbuild/0.25.1/0.25.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/esbuild/0.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/esbuild/0.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/esbuild/0.25.1/0.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/esbuild/0.25.1/0.25.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [express](https://expressjs.com/) ([source](https://redirect.github.com/expressjs/express)) | [`5.0.1` -> `5.1.0`](https://renovatebot.com/diffs/npm/express/5.0.1/5.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/express/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/express/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/express/5.0.1/5.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/express/5.0.1/5.1.0?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.484.0` -> `^0.486.0`](https://renovatebot.com/diffs/npm/lucide-react/0.484.0/0.486.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.486.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.486.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.484.0/0.486.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.484.0/0.486.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [once_cell](https://redirect.github.com/matklad/once_cell) | `1.21.2` -> `1.21.3` | [![age](https://developer.mend.io/api/mc/badges/age/crate/once_cell/1.21.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/once_cell/1.21.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/once_cell/1.21.2/1.21.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/once_cell/1.21.2/1.21.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.90.0` -> `4.91.0`](https://renovatebot.com/diffs/npm/openai/4.90.0/4.91.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.91.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.91.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.90.0/4.91.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.90.0/4.91.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react](https://react.dev/) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react)) | [`19.0.0` -> `19.1.0`](https://renovatebot.com/diffs/npm/react/19.0.0/19.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react/19.0.0/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react/19.0.0/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-day-picker](https://daypicker.dev) ([source](https://redirect.github.com/gpbl/react-day-picker)) | [`9.6.3` -> `9.6.4`](https://renovatebot.com/diffs/npm/react-day-picker/9.6.3/9.6.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-day-picker/9.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-day-picker/9.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-day-picker/9.6.3/9.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-day-picker/9.6.3/9.6.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [react-dom](https://react.dev/) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react-dom)) | [`19.0.0` -> `19.1.0`](https://renovatebot.com/diffs/npm/react-dom/19.0.0/19.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-dom/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-dom/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-dom/19.0.0/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-dom/19.0.0/19.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-hook-form](https://www.react-hook-form.com) ([source](https://redirect.github.com/react-hook-form/react-hook-form)) | [`7.54.2` -> `7.55.0`](https://renovatebot.com/diffs/npm/react-hook-form/7.54.2/7.55.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-hook-form/7.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-hook-form/7.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-hook-form/7.54.2/7.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-hook-form/7.54.2/7.55.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-refresh](https://react.dev/) ([source](https://redirect.github.com/facebook/react/tree/HEAD/packages/react)) | [`^0.16.0` -> `^0.17.0`](https://renovatebot.com/diffs/npm/react-refresh/0.16.0/0.17.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-refresh/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-refresh/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-refresh/0.16.0/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-refresh/0.16.0/0.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-virtuoso](https://virtuoso.dev/) ([source](https://redirect.github.com/petyosi/react-virtuoso)) | [`4.12.5` -> `4.12.6`](https://renovatebot.com/diffs/npm/react-virtuoso/4.12.5/4.12.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-virtuoso/4.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-virtuoso/4.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-virtuoso/4.12.5/4.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-virtuoso/4.12.5/4.12.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [rubato](https://redirect.github.com/HEnquist/rubato) | `0.16.1` -> `0.16.2` | [![age](https://developer.mend.io/api/mc/badges/age/crate/rubato/0.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/rubato/0.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/rubato/0.16.1/0.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/rubato/0.16.1/0.16.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [tailwind-merge](https://redirect.github.com/dcastil/tailwind-merge) | [`3.0.2` -> `3.1.0`](https://renovatebot.com/diffs/npm/tailwind-merge/3.0.2/3.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/tailwind-merge/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/tailwind-merge/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/tailwind-merge/3.0.2/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/tailwind-merge/3.0.2/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.28.0` -> `8.29.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.28.0/8.29.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.28.0/8.29.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.28.0/8.29.0?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)) | [`3.0.9` -> `3.1.1`](https://renovatebot.com/diffs/npm/vitest/3.0.9/3.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.9/3.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [yarn](https://redirect.github.com/yarnpkg/berry) ([source](https://redirect.github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli)) | [`4.8.0` -> `4.8.1`](https://renovatebot.com/diffs/npm/yarn/4.8.0/4.8.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@yarnpkg%2fcli/4.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@yarnpkg%2fcli/4.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@yarnpkg%2fcli/4.8.0/4.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@yarnpkg%2fcli/4.8.0/4.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | packageManager | patch |

---

### Release Notes

<details>
<summary>vercel/ai (@&#8203;ai-sdk/google)</summary>

### [`v1.2.5`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/openai%401.2.5)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.2.4...@ai-sdk/google@1.2.5)

##### Patch Changes

-   [`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a): feat (provider/openai): pdf input support
-   Updated dependencies \[[`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a)]
    -   [@&#8203;ai-sdk/provider](https://redirect.github.com/ai-sdk/provider)[@&#8203;1](https://redirect.github.com/1).0.11
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.13

### [`v1.2.4`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/openai%401.2.4)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.2.3...@ai-sdk/google@1.2.4)

##### Patch Changes

-   [`523f128`](https://redirect.github.com/vercel/ai/commit/523f128): feat (provider/openai): add strictSchemas option to responses model

</details>

<details>
<summary>aws/aws-sdk-js-v3 (@&#8203;aws-sdk/client-s3)</summary>

### [`v3.779.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37790-2025-03-31)

[Compare Source](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.777.0...v3.779.0)

##### Features

-   **client-s3:** Amazon S3 adds support for S3 Access Points for directory buckets in AWS Dedicated Local Zones ([7f2cfea](7f2cfea14e))

</details>

<details>
<summary>ionic-team/capacitor (@&#8203;capacitor/android)</summary>

### [`v7.2.0`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#720-2025-03-31)

[Compare Source](https://redirect.github.com/ionic-team/capacitor/compare/7.1.0...7.2.0)

##### Bug Fixes

-   **android:** rename bridge layout to avoid collision ([#&#8203;7919](https://redirect.github.com/ionic-team/capacitor/issues/7919)) ([a629f16](a629f167b3))
-   **cli:** Don't migrate Podfile on SPM projects ([#&#8203;7939](https://redirect.github.com/ionic-team/capacitor/issues/7939)) ([ab4e700](ab4e700035))
-   **ios:** respect shouldEncodeUrlParams value ([#&#8203;7931](https://redirect.github.com/ionic-team/capacitor/issues/7931)) ([4fb12a0](4fb12a03a9))

##### Features

-   **http:** Apply overrideUserAgent to requests ([#&#8203;7906](https://redirect.github.com/ionic-team/capacitor/issues/7906)) ([52482c9](52482c9d3c))
-   **ios:** Enable Fullscreen API on WebView ([#&#8203;7909](https://redirect.github.com/ionic-team/capacitor/issues/7909)) ([172638e](172638ec7b))

</details>

<details>
<summary>Cap-go/capacitor-inappbrowser (@&#8203;capgo/inappbrowser)</summary>

### [`v7.7.2`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#772-2025-03-31)

[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.7.1...7.7.2)

### [`v7.7.1`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#771-2025-03-30)

[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.6.12...7.7.1)

### [`v7.6.12`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#7612-2025-03-30)

[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.6.9...7.6.12)

### [`v7.6.9`](https://redirect.github.com/Cap-go/capacitor-inappbrowser/blob/HEAD/CHANGELOG.md#769-2025-03-29)

[Compare Source](https://redirect.github.com/Cap-go/capacitor-inappbrowser/compare/7.6.8...7.6.9)

</details>

<details>
<summary>LottieFiles/dotlottie-web (@&#8203;lottiefiles/dotlottie-wc)</summary>

### [`v0.5.1`](https://redirect.github.com/LottieFiles/dotlottie-web/blob/HEAD/packages/wc/CHANGELOG.md#051)

##### Patch Changes

-   Updated dependencies \[[`faaf25e`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/faaf25e)]
-   Updated dependencies \[[`4ffcae2`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/4ffcae2)]
-   Updated dependencies \[[`faaf25e`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/faaf25e)]
    -   [@&#8203;lottiefiles/dotlottie-web](https://redirect.github.com/lottiefiles/dotlottie-web)[@&#8203;0](https://redirect.github.com/0).42.0

</details>

<details>
<summary>perfsee/perfsee (@&#8203;perfsee/webpack)</summary>

### [`v1.14.2`](https://redirect.github.com/perfsee/perfsee/compare/v1.13.0...v1.14.2)

[Compare Source](https://redirect.github.com/perfsee/perfsee/compare/v1.13.0...v1.14.2)

</details>

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/react)</summary>

### [`v9.10.1`](https://redirect.github.com/getsentry/sentry-javascript/blob/HEAD/CHANGELOG.md#9101)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.10.0...9.10.1)

-   fix: Correct [@&#8203;sentry-internal/feedback](https://redirect.github.com/sentry-internal/feedback) docs to match the code ([#&#8203;15874](https://redirect.github.com/getsentry/sentry-javascript/pull/15874))
-   deps: Bump bundler plugins to version `3.2.4` ([#&#8203;15909](https://redirect.github.com/getsentry/sentry-javascript/pull/15909))

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/browser)</summary>

### [`v3.1.1`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.1.1)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1)

#####    🐞 Bug Fixes

-   **reporter**:
    -   Report tests in correct order  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7752](https://redirect.github.com/vitest-dev/vitest/issues/7752) [<samp>(b166e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b166efa2)
    -   Print test only once in the verbose mode  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7738](https://redirect.github.com/vitest-dev/vitest/issues/7738) [<samp>(69ca4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/69ca425c)

#####     [View changes on GitHub](https://redirect.github.com/vitest-dev/vitest/compare/v3.1.0...v3.1.1)

### [`v3.1.0`](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.9...v3.1.0)

</details>

<details>
<summary>taskforcesh/bullmq (bullmq)</summary>

### [`v5.45.2`](https://redirect.github.com/taskforcesh/bullmq/releases/tag/v5.45.2)

[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.45.1...v5.45.2)

##### Bug Fixes

-   **flow:** validate pending dependencies before removing lock ([#&#8203;3182](https://redirect.github.com/taskforcesh/bullmq/issues/3182)) ([8d59e3b](8d59e3b808))

### [`v5.45.1`](https://redirect.github.com/taskforcesh/bullmq/releases/tag/v5.45.1)

[Compare Source](https://redirect.github.com/taskforcesh/bullmq/compare/v5.45.0...v5.45.1)

##### Bug Fixes

-   **job-scheduler:** emit duplicated event when next delayed job exists ([#&#8203;3172](https://redirect.github.com/taskforcesh/bullmq/issues/3172)) ([d57698f](d57698f9af))

</details>

<details>
<summary>evanw/esbuild (esbuild)</summary>

### [`v0.25.2`](https://redirect.github.com/evanw/esbuild/blob/HEAD/CHANGELOG.md#0252)

[Compare Source](https://redirect.github.com/evanw/esbuild/compare/v0.25.1...v0.25.2)

-   Support flags in regular expressions for the API ([#&#8203;4121](https://redirect.github.com/evanw/esbuild/issues/4121))

    The JavaScript plugin API for esbuild takes JavaScript regular expression objects for the `filter` option. Internally these are translated into Go regular expressions. However, this translation previously ignored the `flags` property of the regular expression. With this release, esbuild will now translate JavaScript regular expression flags into Go regular expression flags. Specifically the JavaScript regular expression `/\.[jt]sx?$/i` is turned into the Go regular expression `` `(?i)\.[jt]sx?$` `` internally inside of esbuild's API. This should make it possible to use JavaScript regular expressions with the `i` flag. Note that JavaScript and Go don't support all of the same regular expression features, so this mapping is only approximate.

-   Fix node-specific annotations for string literal export names ([#&#8203;4100](https://redirect.github.com/evanw/esbuild/issues/4100))

    When node instantiates a CommonJS module, it scans the AST to look for names to expose via ESM named exports. This is a heuristic that looks for certain patterns such as `exports.NAME = ...` or `module.exports = { ... }`. This behavior is used by esbuild to "annotate" CommonJS code that was converted from ESM with the original ESM export names. For example, when converting the file `export let foo, bar` from ESM to CommonJS, esbuild appends this to the end of the file:

    ```js
    // Annotate the CommonJS export names for ESM import in node:
    0 && (module.exports = {
      bar,
      foo
    });
    ```

    However, this feature previously didn't work correctly for export names that are not valid identifiers, which can be constructed using string literal export names. The generated code contained a syntax error. That problem is fixed in this release:

    ```js
    // Original code
    let foo
    export { foo as "foo!" }

    // Old output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      "foo!"
    });

    // New output (with --format=cjs --platform=node)
    ...
    0 && (module.exports = {
      "foo!": null
    });
    ```

-   Basic support for index source maps ([#&#8203;3439](https://redirect.github.com/evanw/esbuild/issues/3439), [#&#8203;4109](https://redirect.github.com/evanw/esbuild/pull/4109))

    The source map specification has an optional mode called [index source maps](https://tc39.es/ecma426/#sec-index-source-map) that makes it easier for tools to create an aggregate JavaScript file by concatenating many smaller JavaScript files with source maps, and then generate an aggregate source map by simply providing the original source maps along with some offset information. My understanding is that this is rarely used in practice. I'm only aware of two uses of it in the wild: [ClojureScript](https://clojurescript.org/) and [Turbopack](https://turbo.build/pack/).

    This release provides basic support for indexed source maps. However, the implementation has not been tested on a real app (just on very simple test input). If you are using index source maps in a real app, please try this out and report back if anything isn't working for you.

    Note that this is also not a complete implementation. For example, index source maps technically allows nesting source maps to an arbitrary depth, while esbuild's implementation in this release only supports a single level of nesting. It's unclear whether supporting more than one level of nesting is important or not given the lack of available test cases.

    This feature was contributed by [@&#8203;clyfish](https://redirect.github.com/clyfish).

</details>

<details>
<summary>expressjs/express (express)</summary>

### [`v5.1.0`](https://redirect.github.com/expressjs/express/blob/HEAD/History.md#510--2025-03-31)

[Compare Source](https://redirect.github.com/expressjs/express/compare/5.0.1...v5.1.0)

\========================

-   Add support for `Uint8Array` in `res.send()`
-   Add support for ETag option in `res.sendFile()`
-   Add support for multiple links with the same rel in `res.links()`
-   Add funding field to package.json
-   perf: use loop for acceptParams
-   refactor: prefix built-in node module imports
-   deps: remove `setprototypeof`
-   deps: remove `safe-buffer`
-   deps: remove `utils-merge`
-   deps: remove `methods`
-   deps: remove `depd`
-   deps: `debug@^4.4.0`
-   deps: `body-parser@^2.2.0`
-   deps: `router@^2.2.0`
-   deps: `content-type@^1.0.5`
-   deps: `finalhandler@^2.1.0`
-   deps: `qs@^6.14.0`
-   deps: `server-static@2.2.0`
-   deps: `type-is@2.0.1`

</details>

<details>
<summary>lucide-icons/lucide (lucide-react)</summary>

### [`v0.486.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.486.0): Version 0.486.0

[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.485.0...0.486.0)

##### What's Changed

-   feat([@&#8203;lucide/astro](https://redirect.github.com/lucide/astro)): add lucide package for Astro by [@&#8203;MoustaphaDev](https://redirect.github.com/MoustaphaDev) in [https://github.com/lucide-icons/lucide/pull/2665](https://redirect.github.com/lucide-icons/lucide/pull/2665)

##### New Contributors

-   [@&#8203;MoustaphaDev](https://redirect.github.com/MoustaphaDev) made their first contribution in [https://github.com/lucide-icons/lucide/pull/2665](https://redirect.github.com/lucide-icons/lucide/pull/2665)

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.485.0...0.486.0

### [`v0.485.0`](https://redirect.github.com/lucide-icons/lucide/compare/0.484.0...0.485.0)

[Compare Source](https://redirect.github.com/lucide-icons/lucide/compare/0.484.0...0.485.0)

</details>

<details>
<summary>matklad/once_cell (once_cell)</summary>

### [`v1.21.3`](https://redirect.github.com/matklad/once_cell/blob/HEAD/CHANGELOG.md#1213)

[Compare Source](https://redirect.github.com/matklad/once_cell/compare/v1.21.2...v1.21.3)

-   Outline more initialization in `race`: [#&#8203;284](https://redirect.github.com/matklad/once_cell/pull/284),
    [#&#8203;285](https://redirect.github.com/matklad/once_cell/pull/285).

</details>

<details>
<summary>openai/openai-node (openai)</summary>

### [`v4.91.0`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4910-2025-03-31)

[Compare Source](https://redirect.github.com/openai/openai-node/compare/v4.90.0...v4.91.0)

Full Changelog: [v4.90.0...v4.91.0](https://redirect.github.com/openai/openai-node/compare/v4.90.0...v4.91.0)

##### Features

-   **api:** add `get /responses/{response_id}/input_items` endpoint ([ef0e0ac](ef0e0acd46))

##### Performance Improvements

-   **embedding:** default embedding creation to base64 ([#&#8203;1312](https://redirect.github.com/openai/openai-node/issues/1312)) ([e54530e](e54530e4f6)), closes [#&#8203;1310](https://redirect.github.com/openai/openai-node/issues/1310)

</details>

<details>
<summary>facebook/react (react)</summary>

### [`v19.1.0`](https://redirect.github.com/facebook/react/compare/v19.0.0...1825990c5608f0ab0c1475b4292218a508a171c9)

[Compare Source](https://redirect.github.com/facebook/react/compare/v19.0.0...v19.1.0)

</details>

<details>
<summary>gpbl/react-day-picker (react-day-picker)</summary>

### [`v9.6.4`](https://redirect.github.com/gpbl/react-day-picker/releases/tag/v9.6.4)

[Compare Source](https://redirect.github.com/gpbl/react-day-picker/compare/v9.6.3...v9.6.4)

#### What's Changed

-   fix(animation): fix issues when navigating months during animation by [@&#8203;rodgobbi](https://redirect.github.com/rodgobbi) in [https://github.com/gpbl/react-day-picker/pull/2710](https://redirect.github.com/gpbl/react-day-picker/pull/2710)

**Full Changelog**: https://github.com/gpbl/react-day-picker/compare/v9.6.3...v9.6.4

</details>

<details>
<summary>facebook/react (react-dom)</summary>

### [`v19.1.0`](https://redirect.github.com/facebook/react/compare/v19.0.0...1825990c5608f0ab0c1475b4292218a508a171c9)

[Compare Source](https://redirect.github.com/facebook/react/compare/v19.0.0...v19.1.0)

</details>

<details>
<summary>react-hook-form/react-hook-form (react-hook-form)</summary>

### [`v7.55.0`](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.54.2...a66b52a4f0d5c0de3c09307c074371e3e881ce73)

[Compare Source](https://redirect.github.com/react-hook-form/react-hook-form/compare/v7.54.2...v7.55.0)

</details>

<details>
<summary>petyosi/react-virtuoso (react-virtuoso)</summary>

### [`v4.12.6`](https://redirect.github.com/petyosi/react-virtuoso/releases/tag/react-virtuoso%404.12.6)

[Compare Source](https://redirect.github.com/petyosi/react-virtuoso/compare/react-virtuoso@4.12.5...react-virtuoso@4.12.6)

##### Patch Changes

-   [`bb0402e`](https://redirect.github.com/petyosi/react-virtuoso/commit/bb0402e): Support window scrolling to iframe react portals

</details>

<details>
<summary>HEnquist/rubato (rubato)</summary>

### [`v0.16.2`](https://redirect.github.com/HEnquist/rubato/releases/tag/v0.16.2)

[Compare Source](https://redirect.github.com/HEnquist/rubato/compare/v0.16.1...v0.16.2)

#### What's Changed

-   Fix tests on 32-bit archs, add test by [@&#8203;HEnquist](https://redirect.github.com/HEnquist) in [https://github.com/HEnquist/rubato/pull/102](https://redirect.github.com/HEnquist/rubato/pull/102)

**Full Changelog**: https://github.com/HEnquist/rubato/compare/v0.16.1...v0.16.2

</details>

<details>
<summary>dcastil/tailwind-merge (tailwind-merge)</summary>

### [`v3.1.0`](https://redirect.github.com/dcastil/tailwind-merge/releases/tag/v3.1.0)

[Compare Source](https://redirect.github.com/dcastil/tailwind-merge/compare/v3.0.2...v3.1.0)

##### New Features

-   Add support for Tailwind CSS v4.0.10 by [@&#8203;dcastil](https://redirect.github.com/dcastil) in [https://github.com/dcastil/tailwind-merge/pull/546](https://redirect.github.com/dcastil/tailwind-merge/pull/546)

##### Bug Fixes

-   Fix length variable in `via-(length:*)` class being merged with `via-<color>` classes accidentally by [@&#8203;dcastil](https://redirect.github.com/dcastil) in [https://github.com/dcastil/tailwind-merge/pull/559](https://redirect.github.com/dcastil/tailwind-merge/pull/559)

##### Documentation

-   Fix typo in comment in types.ts by [@&#8203;roottool](https://redirect.github.com/roottool) in [https://github.com/dcastil/tailwind-merge/pull/549](https://redirect.github.com/dcastil/tailwind-merge/pull/549)
-   Update shadow scale recipe to tailwind merge v3 API by [@&#8203;dcastil](https://redirect.github.com/dcastil) in [https://github.com/dcastil/tailwind-merge/pull/545](https://redirect.github.com/dcastil/tailwind-merge/pull/545)

##### Other

-   Fix metrics report action erroring on PRs from forks by [@&#8203;dcastil](https://redirect.github.com/dcastil) in [https://github.com/dcastil/tailwind-merge/pull/551](https://redirect.github.com/dcastil/tailwind-merge/pull/551)

**Full Changelog**: https://github.com/dcastil/tailwind-merge/compare/v3.0.2...v3.1.0

Thanks to [@&#8203;brandonmcconnell](https://redirect.github.com/brandonmcconnell), [@&#8203;manavm1990](https://redirect.github.com/manavm1990), [@&#8203;langy](https://redirect.github.com/langy), [@&#8203;jamesreaco](https://redirect.github.com/jamesreaco), [@&#8203;roboflow](https://redirect.github.com/roboflow), [@&#8203;syntaxfm](https://redirect.github.com/syntaxfm), [@&#8203;getsentry](https://redirect.github.com/getsentry), [@&#8203;codecov](https://redirect.github.com/codecov), [@&#8203;sourcegraph](https://redirect.github.com/sourcegraph) and a private sponsor for sponsoring tailwind-merge! ❤️

</details>

<details>
<summary>typescript-eslint/typescript-eslint (typescript-eslint)</summary>

### [`v8.29.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8290-2025-03-31)

[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.28.0...v8.29.0)

This was a version bump only for typescript-eslint to align it with other projects, there were no code changes.

You can read about our [versioning strategy](https://main--typescript-eslint.netlify.app/users/versioning) and [releases](https://main--typescript-eslint.netlify.app/users/releases) on our website.

</details>

<details>
<summary>yarnpkg/berry (yarn)</summary>

### [`v4.8.1`](260cff1745...76596c5d3f)

[Compare Source](260cff1745...76596c5d3f)

</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://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-04-01 00:56:18 +00:00
L-Sun
2f1f09e25f fix(editor): extract store spec register from effects (#11268)
Close [BS-2802](https://linear.app/affine-design/issue/BS-2802/移動端缺少bseffects導致文檔創建錯誤)
2025-03-31 10:53:02 +00:00
Saul-Mirone
205cd7a86d refactor(editor): rename block-std to std (#11250)
Closes: BS-2946
2025-03-28 07:20:34 +00:00
Saul-Mirone
0a8d8e0a6b feat: seperate createDoc and createStore (#11182) 2025-03-26 11:03:47 +00:00
Saul-Mirone
1871428021 feat(editor): extensionize clipboards (#11172) 2025-03-25 12:09:24 +00:00
Saul-Mirone
e84c60f53d feat(editor): add provider for base adapter (#11169) 2025-03-25 12:09:23 +00:00
Saul-Mirone
4d3eee3bad feat(editor): brush gfx package (#11131) 2025-03-24 09:28:46 +00:00
Saul-Mirone
ef1ed383cb feat(editor): command for ungroup and group (#11116) 2025-03-24 15:34:38 +09:00
Flrande
4bacfbd640 feat(editor): support member node (#11075)
Close [BS-2793](https://linear.app/affine-design/issue/BS-2793/inline-member)
2025-03-24 05:57:03 +00:00
Saul-Mirone
8e08b9000d feat(editor): create gfx mindmap package (#11100) 2025-03-24 03:14:22 +00:00
Saul-Mirone
1f0fc9d47a feat(editor): gfx connector package (#11091) 2025-03-22 14:39:05 +00:00
Saul-Mirone
e3735f40b8 feat(editor): gfx note package (#11088) 2025-03-22 14:39:04 +00:00
Saul-Mirone
6777c16683 feat(editor): edgeless toolbar widget package (#11064) 2025-03-21 11:45:32 +00:00
Saul-Mirone
8109c718c7 feat(editor): gfx shape package (#11060) 2025-03-21 06:13:11 +00:00
Saul-Mirone
e50d09db50 feat(editor): latex inline package (#11051) 2025-03-21 01:38:08 +00:00
renovate
0773a719d5 chore: bump up all non-major dependencies (#10920)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@ai-sdk/google](https://sdk.vercel.ai/docs) ([source](https://redirect.github.com/vercel/ai)) | [`1.1.19` -> `1.1.26`](https://renovatebot.com/diffs/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@ai-sdk%2fgoogle/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@ai-sdk%2fgoogle/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@ai-sdk%2fgoogle/1.1.19/1.1.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@playwright/test](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/@playwright%2ftest/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@playwright%2ftest/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@playwright%2ftest/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@react-email/components](https://redirect.github.com/resend/react-email) ([source](https://redirect.github.com/resend/react-email/tree/HEAD/packages/components)) | [`0.0.33` -> `0.0.34`](https://renovatebot.com/diffs/npm/@react-email%2fcomponents/0.0.33/0.0.34) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@react-email%2fcomponents/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@react-email%2fcomponents/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@react-email%2fcomponents/0.0.33/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@react-email%2fcomponents/0.0.33/0.0.34?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@sentry/electron](https://redirect.github.com/getsentry/sentry-electron) | [`6.1.0` -> `6.2.0`](https://renovatebot.com/diffs/npm/@sentry%2felectron/6.1.0/6.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2felectron/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2felectron/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2felectron/6.1.0/6.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2felectron/6.1.0/6.2.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)) | [`9.5.0` -> `9.6.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.5.0/9.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.5.0/9.6.1?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)) | [`9.5.0` -> `9.6.1`](https://renovatebot.com/diffs/npm/@sentry%2freact/9.5.0/9.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/9.5.0/9.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@slack/web-api](https://tools.slack.dev/node-slack-sdk/web-api) ([source](https://redirect.github.com/slackapi/node-slack-sdk)) | [`7.8.0` -> `7.9.0`](https://renovatebot.com/diffs/npm/@slack%2fweb-api/7.8.0/7.9.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@slack%2fweb-api/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@slack%2fweb-api/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@slack%2fweb-api/7.8.0/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@slack%2fweb-api/7.8.0/7.9.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | 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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact-vite/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact-vite/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact-vite/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.11.9` -> `1.11.11`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.11.9/1.11.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.11.9/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.11.9/1.11.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@types/react](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react)) | [`19.0.10` -> `19.0.12`](https://renovatebot.com/diffs/npm/@types%2freact/19.0.10/19.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/19.0.10/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/19.0.10/19.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitejs/plugin-react-swc](https://redirect.github.com/vitejs/vite-plugin-react-swc) | [`3.8.0` -> `3.8.1`](https://renovatebot.com/diffs/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitejs%2fplugin-react-swc/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitejs%2fplugin-react-swc/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitejs%2fplugin-react-swc/3.8.0/3.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@vitest/browser](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/browser#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/browser)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/3.0.8/3.0.9?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)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@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)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/@vitest%2fui/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [ai](https://sdk.vercel.ai/docs) ([source](https://redirect.github.com/vercel/ai)) | [`4.1.51` -> `4.1.63`](https://renovatebot.com/diffs/npm/ai/4.1.51/4.1.63) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ai/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ai/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ai/4.1.51/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ai/4.1.51/4.1.63?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [bullmq](https://bullmq.io/) ([source](https://redirect.github.com/taskforcesh/bullmq)) | [`5.43.1` -> `5.44.0`](https://renovatebot.com/diffs/npm/bullmq/5.43.1/5.44.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/bullmq/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/bullmq/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/bullmq/5.43.1/5.44.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/bullmq/5.43.1/5.44.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.44` -> `0.2.45`](https://renovatebot.com/diffs/npm/foxact/0.2.44/0.2.45) | [![age](https://developer.mend.io/api/mc/badges/age/npm/foxact/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/foxact/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/foxact/0.2.44/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/foxact/0.2.44/0.2.45?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [graphql-scalars](https://redirect.github.com/Urigo/graphql-scalars) | [`1.24.1` -> `1.24.2`](https://renovatebot.com/diffs/npm/graphql-scalars/1.24.1/1.24.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/graphql-scalars/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/graphql-scalars/1.24.1/1.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.482.0` -> `^0.483.0`](https://renovatebot.com/diffs/npm/lucide-react/0.482.0/0.483.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.482.0/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.482.0/0.483.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [mimalloc](https://redirect.github.com/purpleprotocol/mimalloc_rust) | `0.1.43` -> `0.1.44` | [![age](https://developer.mend.io/api/mc/badges/age/crate/mimalloc/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/mimalloc/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/mimalloc/0.1.43/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/mimalloc/0.1.43/0.1.44?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid) | [`5.1.4` -> `5.1.5`](https://renovatebot.com/diffs/npm/nanoid/5.1.4/5.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [nanoid](https://redirect.github.com/ai/nanoid) | [`5.1.4` -> `5.1.5`](https://renovatebot.com/diffs/npm/nanoid/5.1.4/5.1.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nanoid/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nanoid/5.1.4/5.1.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [nestjs-cls](https://papooch.github.io/nestjs-cls/) ([source](https://redirect.github.com/Papooch/nestjs-cls)) | [`5.4.0` -> `5.4.1`](https://renovatebot.com/diffs/npm/nestjs-cls/5.4.0/5.4.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nestjs-cls/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nestjs-cls/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nestjs-cls/5.4.0/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nestjs-cls/5.4.0/5.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.87.3` -> `4.88.0`](https://renovatebot.com/diffs/npm/openai/4.87.3/4.88.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.87.3/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.87.3/4.88.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [playwright](https://playwright.dev) ([source](https://redirect.github.com/microsoft/playwright)) | [`=1.51.0` -> `=1.51.1`](https://renovatebot.com/diffs/npm/playwright/1.51.0/1.51.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/playwright/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/playwright/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/playwright/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/playwright/1.51.0/1.51.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [react-day-picker](https://daypicker.dev) ([source](https://redirect.github.com/gpbl/react-day-picker)) | [`9.6.2` -> `9.6.3`](https://renovatebot.com/diffs/npm/react-day-picker/9.6.2/9.6.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-day-picker/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-day-picker/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-day-picker/9.6.2/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-day-picker/9.6.2/9.6.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [sinon](https://sinonjs.org/) ([source](https://redirect.github.com/sinonjs/sinon)) | [`19.0.2` -> `19.0.4`](https://renovatebot.com/diffs/npm/sinon/19.0.2/19.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sinon/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sinon/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sinon/19.0.2/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sinon/19.0.2/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | 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.6.6` -> `8.6.7`](https://renovatebot.com/diffs/npm/storybook/8.6.6/8.6.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.6.6/8.6.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [text-splitter](https://redirect.github.com/benbrandt/text-splitter) | `0.24.1` -> `0.24.2` | [![age](https://developer.mend.io/api/mc/badges/age/crate/text-splitter/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/text-splitter/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/text-splitter/0.24.1/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/text-splitter/0.24.1/0.24.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [typedoc](https://typedoc.org) ([source](https://redirect.github.com/TypeStrong/TypeDoc)) | [`^0.27.4` -> `^0.28.0`](https://renovatebot.com/diffs/npm/typedoc/0.27.9/0.28.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.27.9/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.27.9/0.28.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [typedoc-plugin-markdown](https://typedoc-plugin-markdown.org) ([source](https://redirect.github.com/typedoc2md/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown)) | [`4.5.0` -> `4.5.2`](https://renovatebot.com/diffs/npm/typedoc-plugin-markdown/4.5.0/4.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc-plugin-markdown/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc-plugin-markdown/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc-plugin-markdown/4.5.0/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc-plugin-markdown/4.5.0/4.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [uniffi](https://mozilla.github.io/uniffi-rs) ([source](https://redirect.github.com/mozilla/uniffi-rs)) | `0.29.0` -> `0.29.1` | [![age](https://developer.mend.io/api/mc/badges/age/crate/uniffi/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/uniffi/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/uniffi/0.29.0/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/uniffi/0.29.0/0.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`3.0.8` -> `3.0.9`](https://renovatebot.com/diffs/npm/vitest/3.0.8/3.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/3.0.8/3.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [net.java.dev.jna:jna](https://redirect.github.com/java-native-access/jna) | `5.16.0` -> `5.17.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/net.java.dev.jna:jna/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/net.java.dev.jna:jna/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/net.java.dev.jna:jna/5.16.0/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/net.java.dev.jna:jna/5.16.0/5.17.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |

---

### Release Notes

<details>
<summary>vercel/ai (@&#8203;ai-sdk/google)</summary>

### [`v1.1.26`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.26)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.25...@ai-sdk/google@1.1.26)

##### Patch Changes

-   [`0bd5bc6`](https://redirect.github.com/vercel/ai/commit/0bd5bc6): feat (ai): support model-generated files
-   Updated dependencies \[[`0bd5bc6`](https://redirect.github.com/vercel/ai/commit/0bd5bc6)]
    -   [@&#8203;ai-sdk/provider](https://redirect.github.com/ai-sdk/provider)[@&#8203;1](https://redirect.github.com/1).0.12
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.14

### [`v1.1.25`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.25)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.24...@ai-sdk/google@1.1.25)

##### Patch Changes

-   Updated dependencies \[[`2e1101a`](https://redirect.github.com/vercel/ai/commit/2e1101a)]
    -   [@&#8203;ai-sdk/provider](https://redirect.github.com/ai-sdk/provider)[@&#8203;1](https://redirect.github.com/1).0.11
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.13

### [`v1.1.24`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.24)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.23...@ai-sdk/google@1.1.24)

##### Patch Changes

-   [`5261762`](https://redirect.github.com/vercel/ai/commit/5261762): fix (provider/google): ensure correct finishReason for tool calls in streaming response

### [`v1.1.23`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.23)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.22...@ai-sdk/google@1.1.23)

##### Patch Changes

-   [`413f5a7`](https://redirect.github.com/vercel/ai/commit/413f5a7): feat (providers/google): add gemma 3 model id

### [`v1.1.22`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/react%401.1.22)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.21...@ai-sdk/google@1.1.22)

##### Patch Changes

-   Updated dependencies \[[`1531959`](https://redirect.github.com/vercel/ai/commit/1531959)]
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.12
    -   [@&#8203;ai-sdk/ui-utils](https://redirect.github.com/ai-sdk/ui-utils)[@&#8203;1](https://redirect.github.com/1).1.18

### [`v1.1.21`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/google%401.1.21)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.20...@ai-sdk/google@1.1.21)

##### Patch Changes

-   Updated dependencies \[[`1531959`](https://redirect.github.com/vercel/ai/commit/1531959)]
    -   [@&#8203;ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils)[@&#8203;2](https://redirect.github.com/2).1.12

### [`v1.1.20`](https://redirect.github.com/vercel/ai/releases/tag/%40ai-sdk/react%401.1.20)

[Compare Source](https://redirect.github.com/vercel/ai/compare/@ai-sdk/google@1.1.19...@ai-sdk/google@1.1.20)

##### Patch Changes

-   [`6255fbc`](https://redirect.github.com/vercel/ai/commit/6255fbc): fix (ai/react): update messages when initialMessages changes

</details>

<details>
<summary>microsoft/playwright (@&#8203;playwright/test)</summary>

### [`v1.51.1`](https://redirect.github.com/microsoft/playwright/releases/tag/v1.51.1)

[Compare Source](https://redirect.github.com/microsoft/playwright/compare/v1.51.0...v1.51.1)

##### Highlights

[https://github.com/microsoft/playwright/issues/35093](https://redirect.github.com/microsoft/playwright/issues/35093) - \[Regression]: TimeoutOverflowWarning: [`2149630`](https://redirect.github.com/microsoft/playwright/commit/2149630296).634 does not fit into a 32-bit signed integer
[https://github.com/microsoft/playwright/issues/35138](https://redirect.github.com/microsoft/playwright/issues/35138) - \[Regression]: TypeError: Cannot read properties of undefined (reading 'expectInfo')

#### Browser Versions

-   Chromium 134.0.6998.35
-   Mozilla Firefox 135.0
-   WebKit 18.4

This version was also tested against the following stable channels:

-   Google Chrome 133
-   Microsoft Edge 133

</details>

<details>
<summary>resend/react-email (@&#8203;react-email/components)</summary>

### [`v0.0.34`](https://redirect.github.com/resend/react-email/releases/tag/%40react-email/components%400.0.34): @&#8203;react-email/components 0.0.34

[Compare Source](https://redirect.github.com/resend/react-email/compare/@react-email/components@0.0.33...@react-email/components@0.0.34)

#### What's Changed

-   Updated dependencies \[[`bfe1936`](https://redirect.github.com/resend/react-email/commit/bfe1936)]
    -   [@&#8203;react-email/text](https://redirect.github.com/react-email/text)[@&#8203;0](https://redirect.github.com/0).1.0

**Full Changelog**: https://github.com/resend/react-email/compare/[@&#8203;react-email/components](https://redirect.github.com/react-email/components)[@&#8203;0](https://redirect.github.com/0).0.33...[@&#8203;react-email/components](https://redirect.github.com/react-email/components)[@&#8203;0](https://redirect.github.com/0).0.34

</details>

<details>
<summary>getsentry/sentry-electron (@&#8203;sentry/electron)</summary>

### [`v6.2.0`](https://redirect.github.com/getsentry/sentry-electron/blob/HEAD/CHANGELOG.md#620)

[Compare Source](https://redirect.github.com/getsentry/sentry-electron/compare/6.1.0...6.2.0)

-   feat: Update from
    [v9.1.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.1.0) to
    [v9.6.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.0)
-   feat: Use new `registerPreloadScript` API in Electron >= v35 ([#&#8203;1098](https://redirect.github.com/getsentry/sentry-electron/issues/1098))
-   feat: Add `gpuContextIntegration` ([#&#8203;1097](https://redirect.github.com/getsentry/sentry-electron/issues/1097))
-   feat: Parse crashpad metadata from minidumps and include in electron context
    ([#&#8203;1095](https://redirect.github.com/getsentry/sentry-electron/issues/1095))

</details>

<details>
<summary>getsentry/sentry-javascript (@&#8203;sentry/react)</summary>

### [`v9.6.1`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.1)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.6.0...9.6.1)

-   feat(deps): bump [@&#8203;prisma/instrumentation](https://redirect.github.com/prisma/instrumentation) from 6.4.1 to 6.5.0 ([#&#8203;15714](https://redirect.github.com/getsentry/sentry-javascript/pull/15714))
-   feat(deps): bump [@&#8203;sentry/cli](https://redirect.github.com/sentry/cli) from 2.42.2 to 2.42.3 ([#&#8203;15711](https://redirect.github.com/getsentry/sentry-javascript/pull/15711))
-   fix(nextjs): Re-patch router if it is overridden by Next.js ([#&#8203;15721](https://redirect.github.com/getsentry/sentry-javascript/pull/15721))
-   fix(nuxt): Add Nitro Rollup plugin to inject Sentry server config ([#&#8203;15710](https://redirect.github.com/getsentry/sentry-javascript/pull/15710))
-   chore(deps): Bump rollup to 4.35.0 ([#&#8203;15651](https://redirect.github.com/getsentry/sentry-javascript/pull/15651))

#### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.15 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 22.94 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 36.21 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.39 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 66.81 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 78.01 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 90.57 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 40.3 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.79 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.58 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 24.97 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.1 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.4 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.9 KB   |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.18 KB  |
| CDN Bundle                                                       | 24.36 KB  |
| CDN Bundle (incl. Tracing)                                       | 36.26 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 71.27 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 76.45 KB  |
| CDN Bundle - uncompressed                                        | 71.19 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 107.57 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 218.83 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 231.39 KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 39.38 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.63 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 142.29 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 95.71 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 120.06 KB |

### [`v9.6.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/9.6.0)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript/compare/9.5.0...9.6.0)

##### Important Changes

-   **feat(tanstackstart): Add `@sentry/tanstackstart-react` package and make `@sentry/tanstackstart` package a utility package ([#&#8203;15629](https://redirect.github.com/getsentry/sentry-javascript/pull/15629))**

    Since TanStack Start is supposed to be a generic framework that supports libraries like React and Solid, the `@sentry/tanstackstart` SDK package was renamed to `@sentry/tanstackstart-react` to reflect that the SDK is specifically intended to be used for React TanStack Start applications.
    Note that the TanStack Start SDK is still in alpha status and may be subject to breaking changes in non-major package updates.

##### Other Changes

-   feat(astro): Accept all vite-plugin options ([#&#8203;15638](https://redirect.github.com/getsentry/sentry-javascript/pull/15638))
-   feat(deps): bump [@&#8203;sentry/webpack-plugin](https://redirect.github.com/sentry/webpack-plugin) from 3.2.1 to 3.2.2 ([#&#8203;15627](https://redirect.github.com/getsentry/sentry-javascript/pull/15627))
-   feat(tanstackstart): Refine initial API ([#&#8203;15574](https://redirect.github.com/getsentry/sentry-javascript/pull/15574))
-   fix(core): Ensure `fill` only patches functions ([#&#8203;15632](https://redirect.github.com/getsentry/sentry-javascript/pull/15632))
-   fix(nextjs): Consider `pageExtensions` when looking for instrumentation file ([#&#8203;15701](https://redirect.github.com/getsentry/sentry-javascript/pull/15701))
-   fix(remix): Null-check `options` ([#&#8203;15610](https://redirect.github.com/getsentry/sentry-javascript/pull/15610))
-   fix(sveltekit): Correctly parse angle bracket type assertions for auto instrumentation ([#&#8203;15578](https://redirect.github.com/getsentry/sentry-javascript/pull/15578))
-   fix(sveltekit): Guard process variable ([#&#8203;15605](https://redirect.github.com/getsentry/sentry-javascript/pull/15605))

Work in this release was contributed by [@&#8203;angelikatyborska](https://redirect.github.com/angelikatyborska) and [@&#8203;nwalters512](https://redirect.github.com/nwalters512). Thank you for your contributions!

#### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.15 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 22.94 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 36.21 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.39 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 66.8 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 78.01 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 90.57 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 40.3 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.79 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.58 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 24.97 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.1 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.4 KB   |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.9 KB   |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.18 KB  |
| CDN Bundle                                                       | 24.36 KB  |
| CDN Bundle (incl. Tracing)                                       | 36.26 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 71.27 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 76.45 KB  |
| CDN Bundle - uncompressed                                        | 71.19 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 107.57 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 218.84 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 231.4 KB  |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 39.27 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.63 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 142.15 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 95.58 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 119.92 KB |

</details>

<details>
<summary>slackapi/node-slack-sdk (@&#8203;slack/web-api)</summary>

### [`v7.9.0`](https://redirect.github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0)

[Compare Source](https://redirect.github.com/slackapi/node-slack-sdk/compare/@slack/web-api@7.8.0...@slack/web-api@7.9.0)

</details>

<details>
<summary>storybookjs/storybook (@&#8203;storybook/addon-essentials)</summary>

### [`v8.6.7`](https://redirect.github.com/storybookjs/storybook/blob/HEAD/CHANGELOG.md#867)

[Compare Source](https://redirect.github.com/storybookjs/storybook/compare/v8.6.6...v8.6.7)

-   React-Native-Web: Fix errors in CLI template stories - [#&#8203;30821](https://redirect.github.com/storybookjs/storybook/pull/30821), thanks [@&#8203;dannyhw](https://redirect.github.com/dannyhw)!

</details>

<details>
<summary>swc-project/swc (@&#8203;swc/core)</summary>

### [`v1.11.11`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11111---2025-03-17)

[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.10...v1.11.11)

##### Bug Fixes

-   **(es/ast)** Fix Typo in API ([#&#8203;10210](https://redirect.github.com/swc-project/swc/issues/10210)) ([8eb87ba](8eb87ba896))

-   **(es/minifier)** Do not drop numbers incorrectly ([#&#8203;10211](https://redirect.github.com/swc-project/swc/issues/10211)) ([80ccd86](80ccd861a2))

-   **(es/minifier)** Allow TypeScript nodes to fix `styled-jsx` ([#&#8203;10221](https://redirect.github.com/swc-project/swc/issues/10221)) ([9d87d4d](9d87d4d8e4))

##### Features

-   **(es/minifier)** Default to the smallest size ([#&#8203;10218](https://redirect.github.com/swc-project/swc/issues/10218)) ([800f51a](800f51aae5))

##### Miscellaneous Tasks

-   **(es/minifier)** Make `test.sh` faster ([#&#8203;10209](https://redirect.github.com/swc-project/swc/issues/10209)) ([f28d96e](f28d96e356))

##### Refactor

-   **(es/minifier)** Move some deps to dev deps ([#&#8203;10216](https://redirect.github.com/swc-project/swc/issues/10216)) ([1dcdbbc](1dcdbbc78d))

##### Testing

-   **(es/minifier)** Add full tests back ([#&#8203;10212](https://redirect.github.com/swc-project/swc/issues/10212)) ([e6c04b4](e6c04b4f58))

-   **(es/minifier)** Remove `full` tests with too large input ([#&#8203;10213](https://redirect.github.com/swc-project/swc/issues/10213)) ([99b590f](99b590f869))

### [`v1.11.10`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#11110---2025-03-17)

[Compare Source](https://redirect.github.com/swc-project/swc/compare/v1.11.9...v1.11.10)

##### Bug Fixes

-   **(es/proposal)** Fix declarations for `explicit-resource-management` ([#&#8203;10198](https://redirect.github.com/swc-project/swc/issues/10198)) ([99ba555](99ba555c81))

-   **(es/types)** Add missing types for `jsc.transform.react.refresh` ([#&#8203;10206](https://redirect.github.com/swc-project/swc/issues/10206)) ([e71b000](e71b000392))

-   **(typescript)** Skip the body of ArrowExpr in type usage analysis  ([#&#8203;10187](https://redirect.github.com/swc-project/swc/issues/10187)) ([9aca205](9aca205c77))

##### Documentation

-   **(es/minifier)** Make `minifier` example utilize comments ([#&#8203;10195](https://redirect.github.com/swc-project/swc/issues/10195)) ([ec3ebe7](ec3ebe78ff))

##### Features

-   **(es/fast-parser)** Implement the initial version ([#&#8203;10185](https://redirect.github.com/swc-project/swc/issues/10185)) ([44e7c39](44e7c39fda))

##### Miscellaneous Tasks

-   **(es/minifier)** Fix lints & `size.sh` ([#&#8203;10191](https://redirect.github.com/swc-project/swc/issues/10191)) ([e862c32](e862c329fc))

##### Performance

-   **(es/minifier)** Do not repeat applying pure minifier on last ([#&#8203;10196](https://redirect.github.com/swc-project/swc/issues/10196)) ([e6b7cee](e6b7cee6cd))

##### Refactor

-   **(es/minifier)** Remove code for infinite loop ([#&#8203;10194](https://redirect.github.com/swc-project/swc/issues/10194)) ([fcc6884](fcc6884242))

##### Testing

-   **(es/minifier)** Update test inputs ([#&#8203;10193](https://redirect.github.com/swc-project/swc/issues/10193)) ([97d8337](97d83372dc))

-   **(es/minifier)** Add a benchmark for real-world inputs ([#&#8203;10204](https://redirect.github.com/swc-project/swc/issues/10204)) ([97f2180](97f2180e86))

-   **(es/minifier)** Disable real-world benchmarks on CI ([#&#8203;10205](https://redirect.github.com/swc-project/swc/issues/10205)) ([c5f1cbe](c5f1cbe467))

-   **(es/minifier)** Test only sizes for large inputs ([#&#8203;10208](https://redirect.github.com/swc-project/swc/issues/10208)) ([bec3e3e](bec3e3e960))

</details>

<details>
<summary>vitejs/vite-plugin-react-swc (@&#8203;vitejs/plugin-react-swc)</summary>

### [`v3.8.1`](https://redirect.github.com/vitejs/vite-plugin-react-swc/blob/HEAD/CHANGELOG.md#381)

[Compare Source](https://redirect.github.com/vitejs/vite-plugin-react-swc/compare/v3.8.0...v3.8.1)

##### Remove WebContainers warning [#&#8203;268](https://redirect.github.com/vitejs/vite-plugin-react-swc/pull/268)

SWC is now supported in WebContainers 🎉

</details>

<details>
<summary>vitest-dev/vitest (@&#8203;vitest/browser)</summary>

### [`v3.0.9`](https://redirect.github.com/vitest-dev/vitest/releases/tag/v3.0.9)

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v3.0.8...v3.0.9)

#####    🐞 Bug Fixes

-   Typings of `ctx.skip()` as `never`  -  by [@&#8203;sirlancelot](https://redirect.github.com/sirlancelot) in [https://github.com/vitest-dev/vitest/issues/7608](https://redirect.github.com/vitest-dev/vitest/issues/7608) [<samp>(09f35)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/09f35301)
-   Cleanup vitest in public `resolveConfig` API  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7623](https://redirect.github.com/vitest-dev/vitest/issues/7623) [<samp>(db14a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db14ab71)
-   Fix `toHaveBeenCalledWith(asymmetricMatcher)` with `undefined` arguments  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7624](https://redirect.github.com/vitest-dev/vitest/issues/7624) [<samp>(0fb21)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0fb21faa)
-   Race condition in RPC filesystem cache.  -  by [@&#8203;dts](https://redirect.github.com/

</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://redirect.github.com/renovatebot/renovate/discussions) if that's undesired.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDAuMCIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-03-20 17:03:05 +00:00
Saul-Mirone
57388e4cf7 feat(editor): footnote inline package (#11049) 2025-03-20 16:18:22 +00:00
Saul-Mirone
e5e429e7b2 feat(editor): add inline packages (#11048) 2025-03-20 13:47:35 +00:00
pengx17
fad49bb070 feat(editor): audio block (#10947)
AudioMedia entity for loading & controlling a single audio media
AudioMediaManagerService: Global audio state synchronization across tabs
AudioAttachmentService + AudioAttachmentBlock for manipulating AttachmentBlock in affine - e.g., filling transcription (using mock endpoint for now)
Added AudioBlock + AudioPlayer for rendering audio block in affine (new transcription block whose renderer is provided in affine)

fix AF-2292
fix AF-2337
2025-03-20 12:46:15 +00:00
donteatfriedrice
f4202a7976 refactor(editor): move embed iframe config and service extension to shared (#11029) 2025-03-20 08:56:25 +00:00
Saul-Mirone
92d76ba571 refactor(editor): merge inline to std (#11025) 2025-03-20 05:46:56 +00:00
fundon
54bc60aa4d refactor(editor): edgeless shape toolbar config extension (#10821) 2025-03-20 02:08:16 +00:00
fundon
e320552594 refactor(editor): edgeless note toolbar config extension (#10719) 2025-03-19 12:34:18 +00:00
fundon
d8567e669a refactor(editor): edgeless bookmark toolbar config extension (#10711) 2025-03-19 02:24:26 +00:00
zzj3720
3939cc1c52 feat(editor): support file column and member column for database block (#10932)
close: BS-2630, BS-2631, BS-2629, BS-2632, BS-2635
2025-03-18 14:51:45 +00:00
Saul-Mirone
3de7d85eea feat(editor): improve api for store, and add docs (#10941) 2025-03-17 16:30:59 +00:00
L-Sun
d80f1e8067 feat(editor): insert a blank frame slash menu action (#10899)
Close [BS-2517](https://linear.app/affine-design/issue/BS-2517/%E6%B7%BB%E5%8A%A0frame%E5%85%A5%E5%8F%A3)

### What changes:
- add a insert blank frame action to slash menu
- move `EdgelessFrameManager` and `FrameOverlay` extensions to `FrameBlockSpec`
- make `FrameBlockSpec` as a part of `CommonBlockSpecs` such that we can use `EdgelessFrameManager` to create a frame more easily

https://github.com/user-attachments/assets/ddff5866-8933-4ce5-aaf4-873661407ee4
2025-03-17 10:32:55 +00:00
Saul-Mirone
7e6ff8d9c6 chore(editor): remove unused npm scripts (#10895) 2025-03-16 17:48:49 +00:00
Saul-Mirone
2f5e801097 fix(editor): missing export (#10893) 2025-03-16 16:09:35 +00:00
donteatfriedrice
d2c62602a4 feat(editor): support embed iframe block (#10740)
To close:
[BS-2660](https://linear.app/affine-design/issue/BS-2660/slash-menu-支持-iframe-embed)
[BS-2661](https://linear.app/affine-design/issue/BS-2661/iframe-embed-block-model-and-block-component)
[BS-2662](https://linear.app/affine-design/issue/BS-2662/iframe-embed-block-toolbar)
[BS-2768](https://linear.app/affine-design/issue/BS-2768/iframe-embed-block-loading-和-error-态)
[BS-2670](https://linear.app/affine-design/issue/BS-2670/iframe-embed-block-导出)

# PR Description

# Add Embed Iframe Block Support

## Overview

This PR introduces a new `EmbedIframeBlock` to enhance content embedding capabilities within our editor. This block allows users to seamlessly embed external content from various providers (Google Drive, Spotify, etc.) directly into their docs.

## New Blocks

### EmbedIframeBlock

The core block that renders embedded iframe content. This block:

* Displays external content within a secure iframe
* Handles loading states with visual feedback
* Provides error handling with edit and retry options
* Supports customization of width, height, and other iframe attributes

### Supporting Components

* **EmbedIframeCreateModal**: Modal interface for creating new iframe embeds
* **EmbedIframeLinkEditPopup**: UI for editing existing embed links
* **EmbedIframeLoadingCard**: Visual feedback during content loading
* **EmbedIframeErrorCard**: Error handling with retry functionality

## New Store Extensions

### EmbedIframeConfigExtension

This extension provides configuration for different embed providers:

```typescript
/**
 * The options for the iframe
 * @example
 * {
 *   defaultWidth: '100%',
 *   defaultHeight: '152px',
 *   style: 'border-radius: 8px;',
 *   allow: 'autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture',
 * }
 * =>
 * <iframe
 *   width="100%"
 *   height="152px"
 *   style="border-radius: 8px;"
 *   allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture"
 * ></iframe>
 */
export type IframeOptions = {
  defaultWidth?: string;
  defaultHeight?: string;
  style?: string;
  referrerpolicy?: string;
  scrolling?: boolean;
  allow?: string;
  allowFullscreen?: boolean;
};

/**
 * Define the config of an embed iframe block provider
 */
export type EmbedIframeConfig = {
  /**
   * The name of the embed iframe block provider
   */
  name: string;
  /**
   * The function to match the url
   */
  match: (url: string) => boolean;
  /**
   * The function to build the oEmbed URL for fetching embed data
   */
  buildOEmbedUrl: (url: string) => string | undefined;
  /**
   * Use oEmbed URL directly as iframe src without fetching oEmbed data
   */
  useOEmbedUrlDirectly: boolean;
  /**
   * The options for the iframe
   */
  options?: IframeOptions;
};

export const EmbedIframeConfigIdentifier =
  createIdentifier<EmbedIframeConfig>('EmbedIframeConfig');

export function EmbedIframeConfigExtension(
  config: EmbedIframeConfig
): ExtensionType & {
  identifier: ServiceIdentifier<EmbedIframeConfig>;
} {
  const identifier = EmbedIframeConfigIdentifier(config.name);
  return {
    setup: di => {
      di.addImpl(identifier, () => config);
    },
    identifier,
  };
}
```

**example:**

```typescript
//  blocksuite/affine/blocks/block-embed/src/embed-iframe-block/configs/providers/spotify.ts

const SPOTIFY_DEFAULT_WIDTH = '100%';
const SPOTIFY_DEFAULT_HEIGHT = '152px';

// https://developer.spotify.com/documentation/embeds/reference/oembed
const spotifyEndpoint = 'https://open.spotify.com/oembed';

const spotifyUrlValidationOptions: EmbedIframeUrlValidationOptions = {
  protocols: ['https:'],
  hostnames: ['open.spotify.com', 'spotify.link'],
};

const spotifyConfig = {
  name: 'spotify',
  match: (url: string) =>
    validateEmbedIframeUrl(url, spotifyUrlValidationOptions),
  buildOEmbedUrl: (url: string) => {
    const match = validateEmbedIframeUrl(url, spotifyUrlValidationOptions);
    if (!match) {
      return undefined;
    }
    const encodedUrl = encodeURIComponent(url);
    const oEmbedUrl = `${spotifyEndpoint}?url=${encodedUrl}`;
    return oEmbedUrl;
  },
  useOEmbedUrlDirectly: false,
  options: {
    defaultWidth: SPOTIFY_DEFAULT_WIDTH,
    defaultHeight: SPOTIFY_DEFAULT_HEIGHT,
    allow:
      'autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture',
    style: 'border-radius: 12px;',
    allowFullscreen: true,
  },
};

// add the config extension to store
export const SpotifyEmbedConfig = EmbedIframeConfigExtension(spotifyConfig);
```

**Key features:**

* Provider registration and discovery
* URL pattern matching
* Provider-specific embed options (width, height, features)

### EmbedIframeService

This service provides abilities to handle URL validation, data fetching, and block creation

**Type:**

```typescript
/**
 * Service for handling embeddable URLs
 */
export interface EmbedIframeProvider {
  /**
   * Check if a URL can be embedded
   * @param url URL to check
   * @returns true if the URL can be embedded, false otherwise
   */
  canEmbed: (url: string) => boolean;

  /**
   * Build a API URL for fetching embed data
   * @param url URL to build API URL
   * @returns API URL if the URL can be embedded, undefined otherwise
   */
  buildOEmbedUrl: (url: string) => string | undefined;

  /**
   * Get the embed iframe config
   * @param url URL to get embed iframe config
   * @returns Embed iframe config if the URL can be embedded, undefined otherwise
   */
  getConfig: (url: string) => EmbedIframeConfig | undefined;

  /**
   * Get embed iframe data
   * @param url URL to get embed iframe data
   * @returns Embed iframe data if the URL can be embedded, undefined otherwise
   */
  getEmbedIframeData: (url: string) => Promise<EmbedIframeData | null>;

  /**
   * Parse an embeddable URL and add an EmbedIframeBlock to doc
   * @param url Original url to embed
   * @param parentId Parent block ID
   * @param index Optional index to insert at
   * @returns Created block id if successful, undefined if the URL cannot be embedded
   */
  addEmbedIframeBlock: (
    props: Partial<EmbedIframeBlockProps>,
    parentId: string,
    index?: number
  ) => string | undefined;
}
```

**Implemetation:**

```typescript
export class EmbedIframeService
  extends StoreExtension
  implements EmbedIframeProvider
{
  static override key = 'embed-iframe-service';

  private readonly _configs: EmbedIframeConfig[];

  constructor(store: Store) {
    super(store);
    this._configs = Array.from(
      store.provider.getAll(EmbedIframeConfigIdentifier).values()
    );
  }

  canEmbed = (url: string): boolean => {
    return this._configs.some(config => config.match(url));
  };

  buildOEmbedUrl = (url: string): string | undefined => {
    return this._configs.find(config => config.match(url))?.buildOEmbedUrl(url);
  };

  getConfig = (url: string): EmbedIframeConfig | undefined => {
    return this._configs.find(config => config.match(url));
  };

  getEmbedIframeData = async (
    url: string,
    signal?: AbortSignal
  ): Promise<EmbedIframeData | null> => {
    try {
      const config = this._configs.find(config => config.match(url));
      if (!config) {
        return null;
      }

      const oEmbedUrl = config.buildOEmbedUrl(url);
      if (!oEmbedUrl) {
        return null;
      }

      // if the config useOEmbedUrlDirectly is true, return the url directly as iframe_url
      if (config.useOEmbedUrlDirectly) {
        return {
          iframe_url: oEmbedUrl,
        };
      }

      // otherwise, fetch the oEmbed data
      const response = await fetch(oEmbedUrl, { signal });
      if (!response.ok) {
        console.warn(
          `Failed to fetch oEmbed data: ${response.status} ${response.statusText}`
        );
        return null;
      }

      const data = await response.json();
      return data as EmbedIframeData;
    } catch (error) {
      if (error instanceof Error && error.name !== 'AbortError') {
        console.error('Error fetching embed iframe data:', error);
      }
      return null;
    }
  };

  addEmbedIframeBlock = (
    props: Partial<EmbedIframeBlockProps>,
    parentId: string,
    index?: number
  ): string | undefined => {
    const blockId = this.store.addBlock(
      'affine:embed-iframe',
      props,
      parentId,
      index
    );
    return blockId;
  };
}
```

**Usage:**

```typescript
// Usage example
const embedIframeService = this.std.get(EmbedIframeService);

// Check if a URL can be embedded
const canEmbed = embedIframeService.canEmbed(url);

// Get embed data for a URL
const embedData = await embedIframeService.getEmbedIframeData(url);

// Add an embed iframe block to the document
const block = embedIframeService.addEmbedIframeBlock({
  url,
  iframeUrl: embedData.iframe_url,
  title: embedData.title,
  description: embedData.description
}, parentId, index);
```

**Key features:**

* URL validation and transformation
* Provider-specific data fetching
* Block creation and management

## Adaptations

### Toolbar Integration

Added toolbar actions for embedded content:

* Copy link
* Edit embed title and description
* Toggle between inline/card views
* Add caption
* And more

### Slash Menu Integration

Added a new slash menu option for embedding content:

* Embed item for inserting embed iframe block
* Conditional rendering based on feature flags

### Adapters

Implemented adapters for various formats:

* **HTML Adapter**: Exports embed original urls as html links
* **Markdown Adapter**: Exports embed original urls as markdown links
* **Plain Text Adapter**: Exports embed original urls as link text

## To Be Continued:
- [ ] **UI Optimization**
- [ ] **Edgeless Mode Support**
- [ ] **Mobile Support**
2025-03-13 04:11:46 +00:00
Mirone
cd63e0ed8b feat(editor): replace slot with rxjs subject (#10768) 2025-03-12 11:29:24 +09:00
doodlewind
ad36a9de35 refactor(editor): add gfx turbo renderer package (#10745)
The `ViewportTurboRendererExtension` is now extracted from `@blocksuite/affine-shared` to `@blocksuite/affine-gfx-turbo-renderer` with minimal dependencies, mirroring the gfx text package in #10378.
2025-03-11 03:21:52 +00:00
L-Sun
c13d4c575f chore(editor): update slash menu tooltips (#10746)
Close [BS-2676](https://linear.app/affine-design/issue/BS-2676/loom入口增加简介) [BS-2767](https://linear.app/affine-design/issue/BS-2767/table的tooltip需要更新,现在用的是database的)
2025-03-10 12:38:59 +00:00
fundon
6244bbbd11 refactor(editor): move getTooltipWithShortcut to affine-tooltip-content-with-shortcut (#10743)
I'm refactoring the edgeless note toolbar config extension and find that I need to move this.

cac05e720a/blocksuite/affine/blocks/block-root/src/widgets/element-toolbar/change-note-button.ts (L525)
2025-03-10 11:58:58 +00:00
Saul-Mirone
cac05e720a refactor(editor): gfx text package (#10738) 2025-03-10 10:25:21 +00:00
Saul-Mirone
ec709925ee refactor(editor): orgnize exports (#10709) 2025-03-10 02:04:01 +00:00
Saul-Mirone
12bc142809 refactor(editor): remove blocks package (#10708) 2025-03-09 05:44:26 +00:00
Saul-Mirone
84e2dda3f8 refactor(editor): separate lit and slot in global (#10666) 2025-03-06 10:24:59 +00:00
Saul-Mirone
66d9d576e0 refactor(editor): add gfx entry in bs global package (#10612) 2025-03-04 12:46:50 +00:00
forehalo
2e0f0c624a chore: set base version to 0.20 (#10382) 2025-02-24 04:44:42 +00:00
Saul-Mirone
f3218ab3bc refactor(editor): rename presets to integration test (#10340) 2025-02-21 06:26:03 +00:00
Saul-Mirone
2b3da1f0e9 fix: remove global, store and std in affine packages (#9785) 2025-01-20 06:14:46 +00:00