Saul-Mirone
ea391779dd
feat(editor): inline preset extension ( #11919 )
...
Closes: BS-3214
2025-04-23 14:26:20 +00:00
liuyi
5d9a3aac5b
Revert "build: allow node package depends on workspace packages ( #11892 )"
...
This reverts commit c00671dd84 .
2025-04-23 19:24:51 +08:00
forehalo
c00671dd84
build: allow node package depends on workspace packages ( #11892 )
2025-04-23 10:04:59 +00:00
forehalo
64997d4a0e
feat(infra): route package ( #10353 )
2025-04-23 09:49:11 +00:00
Saul-Mirone
16831e8c0e
feat(editor): reference, mention and latex inline extension ( #11914 )
...
Closes: BS-3215
Closes: BS-3218
Closes: BS-3217
2025-04-23 09:22:16 +00:00
Saul-Mirone
b1aecfc1c4
feat(editor): link inline extension ( #11910 )
...
Closes: BS-3216
2025-04-23 04:42:24 +00:00
Saul-Mirone
2510e7a9a4
feat(editor): inline footnote extension ( #11908 )
...
Closes: BS-3219
2025-04-23 01:40:49 +00:00
Saul-Mirone
24edfc75bd
feat(editor): table extension ( #11906 )
...
Closes: BS-3205
2025-04-23 01:16:08 +00:00
Saul-Mirone
43966a6c6b
feat(editor): use store extension manager ( #11891 )
...
Closes: BS-3284
2025-04-22 15:51:23 +00:00
Brooooooklyn
bfd3c64615
test: add mutex to clipboard copy & paste operation to reduce flaky ( #11884 )
2025-04-22 11:02:30 +00:00
Saul-Mirone
6d6504e2af
feat(editor): replace spec provider with extension manager ( #11861 )
...
Closes: BS-3273
2025-04-22 07:40:41 +00:00
pengx17
8fdb00e0ab
fix(core): do not need to inline fonts ( #11880 )
...
The fonts are always loaded via url thus it is not needed to have fonts inlined. Inlining fonts will increase the size of bundled files.
2025-04-22 07:27:11 +00:00
Saul-Mirone
846410cdb6
feat(editor): note extension ( #11856 )
...
Closes: BS-3200
Closes: BS-3201
2025-04-21 13:18:35 +00:00
Saul-Mirone
7c79b1f024
feat(editor): latex and list extensions ( #11851 )
...
Closes: BS-3198
Closes: BS-3199
2025-04-21 10:29:31 +00:00
Saul-Mirone
df6e17b82f
feat(editor): frame and image extensions ( #11849 )
...
Closes: BS-3196
Closes: BS-3197
2025-04-21 10:29:30 +00:00
Saul-Mirone
92ac8e3cad
feat(editor): embed extension ( #11848 )
...
Closes: BS-3195
2025-04-21 09:22:12 +00:00
Saul-Mirone
15a5264352
feat(editor): divider and edgeless text extensions ( #11846 )
...
Closes: BS-3193
Closes: BS-3194
2025-04-21 09:22:12 +00:00
Saul-Mirone
652d42ba1e
feat(editor): scaffolding store and view manager in affine ( #11840 )
...
Closes: BS-3254
2025-04-21 09:22:11 +00:00
Saul-Mirone
5244ff9b98
feat(editor): data view and database extension ( #11837 )
...
Closes: BS-3191
Closes: BS-3192
2025-04-21 09:22:11 +00:00
Saul-Mirone
93b7c288cb
feat(editor): callout and code extension ( #11827 )
...
Closes: BS-3243
Closes: BS-3190
2025-04-21 04:27:19 +00:00
Saul-Mirone
a6d0894ce1
feat(editor): bookmark and attachment extension ( #11824 )
...
Closes: BS-3188
Closes: BS-3189
2025-04-21 04:27:18 +00:00
Saul-Mirone
70ddae15ef
feat(editor): affine extension provider and manager ( #11822 )
...
Closes: BS-3186
# @blocksuite/affine-ext-loader
Blocksuite extension loader system for AFFiNE, providing a structured way to manage and load extensions in different contexts.
## Usage
### Basic Extension Provider
```typescript
import { BaseExtensionProvider } from '@blocksuite/affine-ext-loader';
import { z } from 'zod';
// Create a custom provider with options
class MyProvider extends BaseExtensionProvider<'my-scope', { enabled: boolean }> {
name = 'MyProvider';
schema = z.object({
enabled: z.boolean(),
});
setup(context: Context<'my-scope'>, options?: { enabled: boolean }) {
super.setup(context, options);
// Custom setup logic
}
}
```
### Store Extensions
```typescript
import { StoreExtensionProvider, StoreExtensionManager } from '@blocksuite/affine-ext-loader';
import { z } from 'zod';
// Create a store provider with custom options
class MyStoreProvider extends StoreExtensionProvider<{ cacheSize: number }> {
override name = 'MyStoreProvider';
override schema = z.object({
cacheSize: z.number().min(0),
});
override setup(context: StoreExtensionContext, options?: { cacheSize: number }) {
super.setup(context, options);
context.register([Ext1, Ext2, Ext3]);
}
}
// Create and use the store extension manager
const manager = new StoreExtensionManager([MyStoreProvider]);
manager.configure(MyStoreProvider, { cacheSize: 100 });
const extensions = manager.get('store');
```
### View Extensions
```typescript
import { ViewExtensionProvider, ViewExtensionManager } from '@blocksuite/affine-ext-loader';
import { z } from 'zod';
// Create a view provider with custom options
class MyViewProvider extends ViewExtensionProvider<{ theme: string }> {
override name = 'MyViewProvider';
override schema = z.object({
theme: z.enum(['light', 'dark']),
});
override setup(context: ViewExtensionContext, options?: { theme: string }) {
super.setup(context, options);
context.register([CommonExt]);
if (context.scope === 'page') {
context.register([PageExt]);
} else if (context.scope === 'edgeless') {
context.register([EdgelessExt]);
}
if (options?.theme === 'dark') {
context.register([DarkModeExt]);
}
}
// Override effect to run one-time initialization logic
override effect() {
// This will only run once per provider class
console.log('Initializing MyViewProvider');
// Register lit elements
this.registerLitElements();
}
}
// Create and use the view extension manager
const manager = new ViewExtensionManager([MyViewProvider]);
manager.configure(MyViewProvider, { theme: 'dark' });
// Get extensions for different view scopes
const pageExtensions = manager.get('page');
const edgelessExtensions = manager.get('edgeless');
```
### One-time Initialization with Effect
View extensions support one-time initialization through the `effect` method. This method is called automatically during setup, but only once per provider class. It's useful for:
- Initializing global state
- Registering lit elements
- Setting up shared resources
```typescript
class MyViewProvider extends ViewExtensionProvider {
override effect() {
// This will only run once, even if multiple instances are created
initializeGlobalState();
registerLitElements();
setupGlobalEventListeners();
}
}
```
### Available View Scopes
The view extension system supports the following scopes:
- `page` - Standard page view
- `edgeless` - Edgeless (whiteboard) view
- `preview-page` - Page preview view
- `preview-edgeless` - Edgeless preview view
- `mobile-page` - Mobile page view
- `mobile-edgeless` - Mobile edgeless view
### Extension Configuration
Extensions can be configured using the `configure` method:
```typescript
// Set configuration directly
manager.configure(MyProvider, { enabled: true });
// Update configuration using a function
manager.configure(MyProvider, prev => {
if (!prev) return prev;
return {
...prev,
enabled: !prev.enabled,
};
});
// Remove configuration
manager.configure(MyProvider, undefined);
```
### Dependency Injection
Both store and view extension managers support dependency injection:
```typescript
// Access the manager through the di container
const viewManager = std.get(ViewExtensionManagerIdentifier);
const pagePreviewExtension = viewManager.get('preview-page');
```
2025-04-21 04:27:18 +00:00
Brooooooklyn
95dbda24fc
feat(y-octo): import y-octo monorepo ( #11750 )
2025-04-21 02:51:15 +00:00
forehalo
18fae0f1aa
fix: host app with subpath ( #11739 )
...
closes #11719
2025-04-17 01:29:48 +00:00
Saul-Mirone
b5c9741f18
feat(editor): extract keyboard toolbar widget ( #11707 )
2025-04-15 12:06:50 +00:00
doodlewind
e1e5e8fc14
feat(editor): add basic image support in turbo renderer ( #11620 )
...
This PR adds basic support for image block:

2025-04-11 10:16:07 +00:00
Saul-Mirone
4f9a4e739a
feat(editor): extract linked doc widget package ( #11589 )
...
Close [BS-2738](https://github.com/toeverything/AFFiNE/pull/11589 )
2025-04-11 14:06:16 +08:00
doodlewind
a5ab66d6cd
feat(editor): add basic code support in turbo renderer ( #11619 )
...
This PR adds basic support for code block:
[Screen Recording 2025-04-10 at 8.13.26 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/5d749979-f7f1-4e4d-ba5b-bc4ba29f8b83.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/5d749979-f7f1-4e4d-ba5b-bc4ba29f8b83.mov )
2025-04-11 04:28:51 +00:00
liuyi
e79e4c9e9b
refactor(core): add version in worker url ( #11614 )
...
Co-authored-by: renovate <29139614+renovate@users.noreply.github.com >
2025-04-10 11:12:49 +00:00
doodlewind
dba8e00fb6
feat(editor): add basic note support in turbo renderer ( #11607 )
...
After landing layout tree refactoring, this PR adds basic note support in turbo renderer.
In this demo recording, the code and image block needs to be further supported.
[Screen Recording 2025-04-10 at 5.16.15 PM.mov <span class="graphite__hidden">(uploaded via Graphite)</span> <img class="graphite__hidden" src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/lEGcysB4lFTEbCwZ8jMv/2e416b41-5609-4e52-a90f-5b7bb77db682.mov " />](https://app.graphite.dev/media/video/lEGcysB4lFTEbCwZ8jMv/2e416b41-5609-4e52-a90f-5b7bb77db682.mov )
2025-04-10 09:52:33 +00:00
liuyi
e376aa57c5
chore: bring treeshake back ( #11577 )
2025-04-10 14:12:36 +08:00
forehalo
cdbcb8a42a
chore: adjust webpack output ( #11573 )
...
- automatically split i18n resources into i18n-langs.{lang} naming
- force worker resources to be bundled in one file
2025-04-10 01:48:28 +00: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
Saul-Mirone
bb1270061a
feat(editor): gfx template package ( #11480 )
2025-04-06 12:24:13 +00:00
Saul-Mirone
2a1306c58c
refactor(editor): separate the element renders ( #11461 )
2025-04-04 13:09:46 +00:00
forehalo
c8d22d97d5
refactor: webpack config ( #11421 )
2025-04-03 11:55:56 +00:00
pengx17
9cb80205f8
chore(electron): add telemetry events for enabling meetings ( #11327 )
...
fix AF-2436
2025-04-01 09:01:31 +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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | minor |
| [once_cell](https://redirect.github.com/matklad/once_cell ) | `1.21.2` -> `1.21.3` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | dependencies | patch |
| [rubato](https://redirect.github.com/HEnquist/rubato ) | `0.16.1` -> `0.16.2` | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](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 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | packageManager | patch |
---
### Release Notes
<details>
<summary>vercel/ai (@​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 )]
- [@​ai-sdk/provider](https://redirect.github.com/ai-sdk/provider )[@​1](https://redirect.github.com/1 ).0.11
- [@​ai-sdk/provider-utils](https://redirect.github.com/ai-sdk/provider-utils )[@​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 (@​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 (@​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 ([#​7919](https://redirect.github.com/ionic-team/capacitor/issues/7919 )) ([a629f16](a629f167b3 ))
- **cli:** Don't migrate Podfile on SPM projects ([#​7939](https://redirect.github.com/ionic-team/capacitor/issues/7939 )) ([ab4e700](ab4e700035 ))
- **ios:** respect shouldEncodeUrlParams value ([#​7931](https://redirect.github.com/ionic-team/capacitor/issues/7931 )) ([4fb12a0](4fb12a03a9 ))
##### Features
- **http:** Apply overrideUserAgent to requests ([#​7906](https://redirect.github.com/ionic-team/capacitor/issues/7906 )) ([52482c9](52482c9d3c ))
- **ios:** Enable Fullscreen API on WebView ([#​7909](https://redirect.github.com/ionic-team/capacitor/issues/7909 )) ([172638e](172638ec7b ))
</details>
<details>
<summary>Cap-go/capacitor-inappbrowser (@​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 (@​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 )]
- [@​lottiefiles/dotlottie-web](https://redirect.github.com/lottiefiles/dotlottie-web )[@​0](https://redirect.github.com/0 ).42.0
</details>
<details>
<summary>perfsee/perfsee (@​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 (@​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 [@​sentry-internal/feedback](https://redirect.github.com/sentry-internal/feedback ) docs to match the code ([#​15874](https://redirect.github.com/getsentry/sentry-javascript/pull/15874 ))
- deps: Bump bundler plugins to version `3.2.4` ([#​15909](https://redirect.github.com/getsentry/sentry-javascript/pull/15909 ))
</details>
<details>
<summary>vitest-dev/vitest (@​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 [@​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 [@​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 ([#​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 ([#​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 ([#​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 ([#​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 ([#​3439](https://redirect.github.com/evanw/esbuild/issues/3439 ), [#​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 [@​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([@​lucide/astro](https://redirect.github.com/lucide/astro )): add lucide package for Astro by [@​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
- [@​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`: [#​284](https://redirect.github.com/matklad/once_cell/pull/284 ),
[#​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 ([#​1312](https://redirect.github.com/openai/openai-node/issues/1312 )) ([e54530e](e54530e4f6 )), closes [#​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​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 [@​brandonmcconnell](https://redirect.github.com/brandonmcconnell ), [@​manavm1990](https://redirect.github.com/manavm1990 ), [@​langy](https://redirect.github.com/langy ), [@​jamesreaco](https://redirect.github.com/jamesreaco ), [@​roboflow](https://redirect.github.com/roboflow ), [@​syntaxfm](https://redirect.github.com/syntaxfm ), [@​getsentry](https://redirect.github.com/getsentry ), [@​codecov](https://redirect.github.com/codecov ), [@​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
Brooooooklyn
d31e0c0e71
ci: run some optimize on CI e2e ( #11330 )
2025-03-31 15:23:21 +00:00
EYHN
8957d0645f
feat(nbstore): add indexer storage ( #10953 )
2025-03-31 12:59:51 +00:00
Brooooooklyn
47a8d15878
ci: start devServer before test running to avoid tests timeout ( #11297 )
2025-03-31 10:39:34 +00:00
donteatfriedrice
b2aa3084ec
feat(editor): support to drag embed iframe from note to surface ( #11267 )
...
Close [BS-2807](https://linear.app/affine-design/issue/BS-2807/note-中与-surface-中-embed-iframe-block-互相拖动时的优化 )
2025-03-31 06:23:11 +00:00
renovate
00c5f48a7d
chore: bump up mime-types version to v3 ( #11274 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [mime-types](https://redirect.github.com/jshttp/mime-types ) | [`^2.1.35` -> `^3.0.0`](https://renovatebot.com/diffs/npm/mime-types/2.1.35/3.0.1 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>jshttp/mime-types (mime-types)</summary>
### [`v3.0.1`](https://redirect.github.com/jshttp/mime-types/blob/HEAD/HISTORY.md#301--2025-03-26 )
[Compare Source](https://redirect.github.com/jshttp/mime-types/compare/v3.0.0...v3.0.1 )
\===================
- deps: mime-db@1.54 .0
### [`v3.0.0`](https://redirect.github.com/jshttp/mime-types/blob/HEAD/HISTORY.md#300--2024-08-31 )
[Compare Source](https://redirect.github.com/jshttp/mime-types/compare/2.1.35...v3.0.0 )
\===================
- Drop support for node <18
- deps: mime-db@1.53 .0
- resolve extension conflicts with mime-score ([#​119](https://redirect.github.com/jshttp/mime-types/issues/119 ))
- asc -> application/pgp-signature is now application/pgp-keys
- mpp -> application/vnd.ms-project is now application/dash-patch+xml
- ac -> application/vnd.nokia.n-gage.ac+xml is now application/pkix-attr-cert
- bdoc -> application/x-bdoc is now application/bdoc
- wmz -> application/x-msmetafile is now application/x-ms-wmz
- xsl -> application/xslt+xml is now application/xml
- wav -> audio/wave is now audio/wav
- rtf -> text/rtf is now application/rtf
- xml -> text/xml is now application/xml
- mp4 -> video/mp4 is now application/mp4
- mpg4 -> video/mp4 is now application/mp4
</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.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- 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-03-31 05:49:12 +00:00
doodlewind
dffb89c388
feat(editor): add list block turbo renderer scaffold ( #11266 )
...
This PR allows placeholder in turbo renderer to cover list block as a basic scaffold.

2025-03-29 04:49:25 +00:00
Saul-Mirone
205cd7a86d
refactor(editor): rename block-std to std ( #11250 )
...
Closes: BS-2946
2025-03-28 07:20:34 +00:00
L-Sun
af91a0217f
refactor(editor): inner toolbar surface-ref block with extension ( #11246 )
...
This PR refactor `surface-ref` toolbar with `ToolbarExtension`
2025-03-28 05:48:24 +00:00
forehalo
0ea38680fa
refactor(server): config system ( #11081 )
2025-03-27 12:32:28 +00:00
forehalo
766383cb3a
chore: disable http proxy middleware log in ci ( #11238 )
2025-03-27 09:11:54 +00:00
renovate
261661c419
chore: bump up @googleapis/androidpublisher version to v26 ( #11214 )
...
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@googleapis/androidpublisher](https://redirect.github.com/googleapis/google-api-nodejs-client ) | [`^24.0.0` -> `^26.0.0`](https://renovatebot.com/diffs/npm/@googleapis%2fandroidpublisher/24.0.0/26.0.0 ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) | [](https://docs.renovatebot.com/merge-confidence/ ) |
---
### Release Notes
<details>
<summary>googleapis/google-api-nodejs-client (@​googleapis/androidpublisher)</summary>
### [`v26.0.0`](https://redirect.github.com/googleapis/google-api-nodejs-client/blob/HEAD/CHANGELOG.md#12600-2023-08-17 )
[Compare Source](https://redirect.github.com/googleapis/google-api-nodejs-client/compare/v25.0.0...v26.0.0 )
##### ⚠ BREAKING CHANGES
- **vmmigration:** This release has breaking changes.
- **contentwarehouse:** This release has breaking changes.
- **assuredworkloads:** This release has breaking changes.
- **aiplatform:** This release has breaking changes.
##### Features
- **admin:** update the API ([ebfb777](ebfb777684 ))
- **aiplatform:** update the API ([146712c](146712c48e ))
- **androidpublisher:** update the API ([2d7c2b4](2d7c2b4247 ))
- **assuredworkloads:** update the API ([6547ea1](6547ea1ef1 ))
- **contactcenterinsights:** update the API ([1f2e6eb](1f2e6eb4ab ))
- **containeranalysis:** update the API ([7acf09f](7acf09fc53 ))
- **contentwarehouse:** update the API ([c44aeaf](c44aeafdd3 ))
- **discoveryengine:** update the API ([bca2665](bca26655ef ))
- regenerate index files ([751227d](751227d392 ))
- **serviceconsumermanagement:** update the API ([336b645](336b645dbb ))
- **serviceusage:** update the API ([6f08362](6f0836293a ))
- **testing:** update the API ([9c06a45](9c06a45890 ))
- **vmmigration:** update the API ([75cbb15](75cbb1513e ))
##### Bug Fixes
- **contactcenteraiplatform:** update the API ([e4bfff0](e4bfff0b61 ))
- **content:** update the API ([6e9f31f](6e9f31fdff ))
- **dns:** update the API ([2e49df0](2e49df0707 ))
- **eventarc:** update the API ([b7a0e5a](b7a0e5a26e ))
- **gameservices:** update the API ([8733a48](8733a48c00 ))
- **metastore:** update the API ([26f97a2](26f97a259e ))
- **privateca:** update the API ([b50c176](b50c176656 ))
- **recommendationengine:** update the API ([fd203b4](fd203b411f ))
- **vision:** update the API ([2593341](2593341f5b ))
- **vpcaccess:** update the API ([b740cac](b740cacf6f ))
### [`v25.0.0`](https://redirect.github.com/googleapis/google-api-nodejs-client/blob/HEAD/CHANGELOG.md#12500-2023-08-15 )
##### ⚠ BREAKING CHANGES
- **gkehub:** This release has breaking changes.
- **contentwarehouse:** This release has breaking changes.
- **bigquery:** This release has breaking changes.
- **beyondcorp:** This release has breaking changes.
- **assuredworkloads:** This release has breaking changes.
##### Features
- **analyticsadmin:** update the API ([3bed127](3bed127d4e ))
- **appengine:** update the API ([a8d4c48](a8d4c48bd1 ))
- **artifactregistry:** update the API ([2d1257d](2d1257d9ac ))
- **assuredworkloads:** update the API ([f58a85a](f58a85a1ac ))
- **beyondcorp:** update the API ([270693a](270693ad48 ))
- **bigquery:** update the API ([b0bc1f1](b0bc1f15a8 ))
- **binaryauthorization:** update the API ([2175fab](2175fab3e4 ))
- **cloudbuild:** update the API ([2413746](2413746386 ))
- **composer:** update the API ([d2322c2](d2322c2a50 ))
- **container:** update the API ([3ab84ca](3ab84caea9 ))
- **contentwarehouse:** update the API ([73f5d69](73f5d69b1d ))
- **dataform:** update the API ([1f0c739](1f0c739684 ))
- **dataproc:** update the API ([1fc81ab](1fc81abff8 ))
- **dialogflow:** update the API ([6aba841](6aba841302 ))
- **discoveryengine:** update the API ([57a6bdd](57a6bdd926 ))
- **documentai:** update the API ([ae0e266](ae0e2664ae ))
- **firebaseappcheck:** update the API ([13f8c86](13f8c865f8 ))
- **gkehub:** update the API ([7c7c561](7c7c5611a6 ))
- **healthcare:** update the API ([9dc7235](9dc723542d ))
- **identitytoolkit:** update the API ([f15458e](f15458e813 ))
- **migrationcenter:** update the API ([43d3a7e](43d3a7e351 ))
- **monitoring:** update the API ([d6ab1de](d6ab1de97a ))
- **networkmanagement:** update the API ([b00b4c3](b00b4c39b0 ))
- **paymentsresellersubscription:** update the API ([fa9bc92](fa9bc92c28 ))
- **redis:** update the API ([633a71b](633a71b75e ))
- regenerate index files ([1b979cb](1b979cb4bd ))
- **run:** update the API ([2dc654e](2dc654e314 ))
- **vmmigration:** update the API ([433922a](433922ae81 ))
##### Bug Fixes
- **accesscontextmanager:** update the API ([37483a5](37483a53c3 ))
- **advisorynotifications:** update the API ([5d47fbd](5d47fbd05f ))
- **analyticsdata:** update the API ([fcd31de](fcd31debbc ))
- **analyticshub:** update the API ([028a8f2](028a8f2845 ))
- **androidmanagement:** update the API ([b6e3344](b6e33442cb ))
- **apigateway:** update the API ([28a0c2b](28a0c2b909 ))
- **apigeeregistry:** update the API ([f4b44ce](f4b44ce7ff ))
- **batch:** update the API ([c0f6c8e](c0f6c8ebae ))
- **bigqueryconnection:** update the API ([238464d](238464d37e ))
- **chat:** update the API ([9bebe9d](9bebe9d01a ))
- **cloudbilling:** update the API ([0a0d5e9](0a0d5e9f35 ))
- **clouddeploy:** update the API ([8efff9d](8efff9d26e ))
- **cloudidentity:** update the API ([01762af](01762affc9 ))
- **cloudkms:** update the API ([3499c39](3499c393ef ))
- **cloudsearch:** update the API ([25771c7](25771c752c ))
- **cloudshell:** update the API ([dd761cd](dd761cdec6 ))
- **connectors:** update the API ([2a03080](2a03080ff2 ))
- **containeranalysis:** update the API ([4de5705](4de5705559 ))
- **datacatalog:** update the API ([c823e38](c823e38315 ))
- **datamigration:** update the API ([0b476bb](0b476bb46f ))
- **dataplex:** update the API ([07737a9](07737a9c0b ))
- **datastore:** update the API ([f5f7e0e](f5f7e0e81b ))
- **datastream:** update the API ([d1efe13](d1efe137ee ))
- **deps:** update dependency [@​google-cloud/local-auth](https://redirect.github.com/google-cloud/local-auth ) to v3 ([b9e0f13](b9e0f133df ))
- **dlp:** update the API ([66720df](66720df286 ))
- **eventarc:** update the API ([2a475fa](2a475faaef ))
- **file:** update the API ([16d1c38](16d1c381e4 ))
- **firestore:** update the API ([25dd82f](25dd82f85c ))
- **iam:** update the API ([df42895](df428953ea ))
- **language:** update the API ([86d4072](86d4072801 ))
- **logging:** update the API ([5ce9916](5ce99164a4 ))
- **memcache:** update the API ([1c738c4](1c738c4e5f ))
- **metastore:** update the API ([3045ac9](3045ac9077 ))
- **networkconnectivity:** update the API ([db2c560](db2c5609b8 ))
- **networkservices:** update the API ([c2ca6b5](c2ca6b5b29 ))
- **ondemandscanning:** update the API ([b5da2fb](b5da2fbde7 ))
- **osconfig:** update the API ([926f83d](926f83d571 ))
- **policysimulator:** update the API ([337d6d9](337d6d9bc2 ))
- **prod_tt_sasportal:** update the API ([cad4560](cad45600a1 ))
- **pubsublite:** update the API ([383264c](383264cadb ))
- **pubsub:** update the API ([6c41abf](6c41abf474 ))
- **recommender:** update the API ([b7e0460](b7e04605e7 ))
- **sasportal:** update the API ([cd8a38c](cd8a38c750 ))
- **script:** update the API ([09d1558](09d1558a81 ))
- **secretmanager:** update the API ([fe01e40](fe01e40054 ))
- **securitycenter:** update the API ([0d66358](0d66358f76 ))
- **servicecontrol:** update the API ([ceadea7](ceadea74b3 ))
- **servicedirectory:** update the API ([c52f8c3](c52f8c3386 ))
- **servicemanagement:** update the API ([c5c135d](c5c135da55 ))
- **sheets:** update the API ([19e06a7](19e06a7c92 ))
- **speech:** update the API ([b75b27e](b75b27e0ad ))
- **storagetransfer:** update the API ([29b6593](29b6593955 ))
- **tpu:** update the API ([e396d7e](e396d7e10d ))
- **translate:** update the API ([5789f48](5789f485ea ))
- **vault:** update the API ([6f14118](6f1411871c ))
- **vision:** update the API ([8fd1995](8fd19953a1 ))
- **vpcaccess:** update the API ([6641889](6641889146 ))
- **workflows:** update the API ([5e9374a](5e9374afdc ))
- **workstations:** update the API ([fefd54a](fefd54ada1 ))
</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.
🔕 **Ignore**: Close this PR and you won't be reminded about this update again.
---
- [ ] <!-- 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-03-26 13:48:55 +00:00