Compare commits

...

333 Commits

Author SHA1 Message Date
DarkSky
67f875e32d fix: ava ts loader 2025-01-22 14:31:03 +08:00
DarkSky
a2b9b89695 chore: use tla 2025-01-22 14:31:03 +08:00
DarkSky
8fbc03d631 chore: remove outdated api 2025-01-22 14:31:03 +08:00
DarkSky
26a7f1a75d fix: env typo 2025-01-22 14:31:03 +08:00
DarkSky
94c45d7ea3 feat: add more detail for slack report 2025-01-22 14:31:03 +08:00
DarkSky
2bb3504b9e fix: merge error 2025-01-22 14:31:03 +08:00
DarkSky
6f3f291b18 feat: cron job for copilot test 2025-01-22 14:31:03 +08:00
DarkSky
55fffe0762 fix: typing 2025-01-22 14:28:52 +08:00
DarkSky
96a0650841 fix: rebase error 2025-01-22 14:28:52 +08:00
DarkSky
e96f89c26b feat: online ci 2025-01-22 14:28:52 +08:00
Brooooooklyn
f5df67501c chore: remove deprecated dependencies (#9837) 2025-01-22 05:36:59 +00:00
pengx17
4c665594d6 fix(editor): ref on click slots should not be global (#9830)
fix AF-2129
2025-01-22 05:20:55 +00:00
pengx17
720a596559 fix(infra): increase eventemitter listener count (#9799) 2025-01-22 12:15:20 +08:00
renovate
22cddb1b87 chore: bump up nestjs (#9839)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@nestjs-cls/transactional](https://papooch.github.io/nestjs-cls/) ([source](https://redirect.github.com/Papooch/nestjs-cls)) | [`2.4.4` -> `2.4.5`](https://renovatebot.com/diffs/npm/@nestjs-cls%2ftransactional/2.4.4/2.4.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs-cls%2ftransactional/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs-cls%2ftransactional/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs-cls%2ftransactional/2.4.4/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs-cls%2ftransactional/2.4.4/2.4.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@nestjs-cls/transactional-adapter-prisma](https://papooch.github.io/nestjs-cls/) ([source](https://redirect.github.com/Papooch/nestjs-cls)) | [`1.2.7` -> `1.2.8`](https://renovatebot.com/diffs/npm/@nestjs-cls%2ftransactional-adapter-prisma/1.2.7/1.2.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@nestjs-cls%2ftransactional-adapter-prisma/1.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@nestjs-cls%2ftransactional-adapter-prisma/1.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@nestjs-cls%2ftransactional-adapter-prisma/1.2.7/1.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@nestjs-cls%2ftransactional-adapter-prisma/1.2.7/1.2.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>Papooch/nestjs-cls (@&#8203;nestjs-cls/transactional)</summary>

### [`v2.4.5`](https://redirect.github.com/Papooch/nestjs-cls/releases/tag/%40nestjs-cls/transactional%402.4.5)

[Compare Source](https://redirect.github.com/Papooch/nestjs-cls/compare/@nestjs-cls/transactional@2.4.4...@nestjs-cls/transactional@2.4.5)

##### Dependencies

-   update all nestjs-related peer deps to latest (v11) ([915e797](https://redirect.github.com/Papooch/nestjs-cls/commits/915e797))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-22 03:56:27 +00:00
renovate
9fb2184a36 chore: bump up nestjs-cls version to v5 (#9840)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [nestjs-cls](https://papooch.github.io/nestjs-cls/) ([source](https://redirect.github.com/Papooch/nestjs-cls)) | [`^4.5.0` -> `^5.0.0`](https://renovatebot.com/diffs/npm/nestjs-cls/4.5.0/5.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nestjs-cls/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nestjs-cls/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nestjs-cls/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nestjs-cls/4.5.0/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>Papooch/nestjs-cls (nestjs-cls)</summary>

### [`v5.0.0`](https://redirect.github.com/Papooch/nestjs-cls/releases/tag/nestjs-cls%405.0.0)

[Compare Source](https://redirect.github.com/Papooch/nestjs-cls/compare/nestjs-cls@4.5.0...nestjs-cls@5.0.0)

##### Breaking Changes

-   The default mount point for express middleware has been changed from '\*' to '/' ([4542aba](https://redirect.github.com/Papooch/nestjs-cls/commits/4542aba))

##### Dependencies

-   update all nestjs-related peer deps to latest (v11) ([915e797](https://redirect.github.com/Papooch/nestjs-cls/commits/915e797))

##### Features

-   **core**: support NestJS 11 ([4542aba](https://redirect.github.com/Papooch/nestjs-cls/commits/4542aba))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-22 03:40:24 +00:00
pengx17
defb0de4dd feat(core): reorg workspace settings (#9718)
fix AF-2118
2025-01-22 03:11:27 +00:00
darkskygit
83ed215f4a feat(server): new email template (#9528)
use `yarn af server dev:mail` to preview all mail template
fix CLOUD-93
2025-01-22 02:55:25 +00:00
Xun Sun
2db9cc3922 fix(core): set state isLoading to false after email changing is confirmed (#9824) 2025-01-22 09:47:23 +08:00
L-Sun
29995e498a feat(editor): add start-with-ai button for empty doc (#9836)
Close [BS-2391](https://linear.app/affine-design/issue/BS-2391/bs-ai-toolbar-空状态下添加-actions-列表)

https://github.com/user-attachments/assets/cbded517-2d3d-4a75-b144-644e2b03f68a
2025-01-21 16:00:49 +00:00
pengx17
d4aeac5d35 fix(electron): split view reorder shaking (#9828)
fix AF-2097
2025-01-21 15:02:22 +00:00
renovate
b715d2648e chore: bump up shiki version to v2 (#9793)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`^1.14.1` -> `^2.0.0`](https://renovatebot.com/diffs/npm/shiki/1.29.1/2.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.29.1/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.29.1/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`^1.12.0` -> `^2.0.0`](https://renovatebot.com/diffs/npm/shiki/1.29.1/2.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.29.1/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.29.1/2.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>shikijs/shiki (shiki)</summary>

### [`v2.0.3`](https://redirect.github.com/shikijs/shiki/releases/tag/v2.0.3)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v2.0.2...v2.0.3)

#####    🐞 Bug Fixes

-   **core**: Soft require `engine` options  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(10a6f)</samp>](https://redirect.github.com/shikijs/shiki/commit/10a6f781)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v2.0.2...v2.0.3)

### [`v2.0.2`](https://redirect.github.com/shikijs/shiki/releases/tag/v2.0.2)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v2.0.1...v2.0.2)

#####    🐞 Bug Fixes

-   Mark `engine` required in `createHighlighterCore`  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(1212f)</samp>](https://redirect.github.com/shikijs/shiki/commit/1212f473)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v2.0.1...v2.0.2)

### [`v2.0.1`](https://redirect.github.com/shikijs/shiki/releases/tag/v2.0.1)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v2.0.0...v2.0.1)

#####    🚀 Features

-   Improve warning messages  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(0f27a)</samp>](https://redirect.github.com/shikijs/shiki/commit/0f27a20d)

#####    🐞 Bug Fixes

-   Warn about missing deprecation  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(708e3)</samp>](https://redirect.github.com/shikijs/shiki/commit/708e3f24)
-   **colorized-brackets**: Use object style `htmlStyle`  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(eab5b)</samp>](https://redirect.github.com/shikijs/shiki/commit/eab5bd18)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v2.0.0...v2.0.1)

### [`v2.0.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v2.0.0)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.29.1...v2.0.0)

##### Read the announcement: [Shiki v2](https://shiki.style/blog/v2)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.29.1...v2.0.0)

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 14:46:19 +00:00
renovate
782d3afddc chore: bump up capacitor monorepo to v7 (major) (#9809)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@capacitor/android](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`^6.2.0` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fandroid/6.2.0/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fandroid/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fandroid/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fandroid/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fandroid/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@capacitor/cli](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`^6.2.0` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcli/6.2.0/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcli/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcli/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcli/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcli/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@capacitor/core](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`^6.2.0` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fcore/6.2.0/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fcore/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fcore/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fcore/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fcore/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@capacitor/ios](https://capacitorjs.com) ([source](https://redirect.github.com/ionic-team/capacitor)) | [`^6.2.0` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fios/6.2.0/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fios/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fios/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fios/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fios/6.2.0/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v7.0.0`](https://redirect.github.com/ionic-team/capacitor/blob/HEAD/CHANGELOG.md#700-2025-01-20)

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

**Note:** Version bump only for package capacitor

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 14:29:49 +00:00
L-Sun
16d4430ec9 test(editor): move tests of toc to affine (#9833) 2025-01-21 13:34:59 +00:00
pengx17
24fce7a708 fix(core): peek view backgroud (#9825)
fix bs-2416
2025-01-21 11:37:15 +00:00
akumatus
a3164b4ccf feat(core): support ai doc search panel (#9831)
Support issue [BS-2351](https://linear.app/affine-design/issue/BS-2351) and [BS-2461](https://linear.app/affine-design/issue/BS-2461).

## What changed?
- Add `chat-panel-add-popover` component.
- Refactor part of `AtMenuConfigService` into `DocSearchMenuService`.
- Add signal `content` property to `DocChip` interface for markdown content update.

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/ff1d69b3-edd6-4d33-a01d-8b16e5192af7.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/ff1d69b3-edd6-4d33-a01d-8b16e5192af7.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/ff1d69b3-edd6-4d33-a01d-8b16e5192af7.mov">录屏2025-01-21 18.46.29.mov</video>
2025-01-21 11:20:19 +00:00
CatsJuice
ba508ffd6b chore(core): replace outlined template icon (#9784) 2025-01-21 11:03:11 +00:00
pengx17
2d09c7fe0c chore(electron): increase retry times (#9814) 2025-01-21 10:47:22 +00:00
renovate
0e8dd950a4 chore: bump up check-password-strength version to v3 (#9827)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [check-password-strength](https://redirect.github.com/deanilvincent/check-password-strength) | [`^2.0.10` -> `^3.0.0`](https://renovatebot.com/diffs/npm/check-password-strength/2.0.10/3.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/check-password-strength/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/check-password-strength/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/check-password-strength/2.0.10/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/check-password-strength/2.0.10/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>deanilvincent/check-password-strength (check-password-strength)</summary>

### [`v3.0.0`](https://redirect.github.com/deanilvincent/check-password-strength/releases/tag/v3.0.0)

[Compare Source](https://redirect.github.com/deanilvincent/check-password-strength/compare/v2.0.10...v3.0.0)

#### What's Changed

-   fix path for types by [@&#8203;capaj](https://redirect.github.com/capaj) in [https://github.com/deanilvincent/check-password-strength/pull/75](https://redirect.github.com/deanilvincent/check-password-strength/pull/75)
-   Fix main path by [@&#8203;cmorford](https://redirect.github.com/cmorford) in [https://github.com/deanilvincent/check-password-strength/pull/76](https://redirect.github.com/deanilvincent/check-password-strength/pull/76)
-   🏗️  updated code analysis from v1 to v4, 🦯  added node.yml,    remove .travis.yml by [@&#8203;deanilvincent](https://redirect.github.com/deanilvincent) in [https://github.com/deanilvincent/check-password-strength/pull/82](https://redirect.github.com/deanilvincent/check-password-strength/pull/82)
-   V3 - allow all symbols by default, set the default min length to 12 instead of 10, fix license filename (fix [#&#8203;78](https://redirect.github.com/deanilvincent/check-password-strength/issues/78)) by [@&#8203;Ennoriel](https://redirect.github.com/Ennoriel) in [https://github.com/deanilvincent/check-password-strength/pull/81](https://redirect.github.com/deanilvincent/check-password-strength/pull/81)

#### New Contributors

-   [@&#8203;capaj](https://redirect.github.com/capaj) made their first contribution in [https://github.com/deanilvincent/check-password-strength/pull/75](https://redirect.github.com/deanilvincent/check-password-strength/pull/75)
-   [@&#8203;cmorford](https://redirect.github.com/cmorford) made their first contribution in [https://github.com/deanilvincent/check-password-strength/pull/76](https://redirect.github.com/deanilvincent/check-password-strength/pull/76)

**Full Changelog**: https://github.com/deanilvincent/check-password-strength/compare/v2.0.8...v3.0.0

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 10:31:03 +00:00
fengmk2
54dd131f4e fix(server): set reqeust-id on ClsModule setup (#9829) 2025-01-21 10:15:37 +00:00
Flrande
b6a8d644f8 test(editor): add tests for heading toggle (#9820) 2025-01-21 09:35:33 +00:00
renovate
731010f7f2 chore: bump up @capacitor/keyboard version to v7 (#9826)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@capacitor/keyboard](https://redirect.github.com/ionic-team/capacitor-plugins) | [`^6.0.3` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fkeyboard/6.0.3/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fkeyboard/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fkeyboard/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fkeyboard/6.0.3/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fkeyboard/6.0.3/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v7.0.0`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/app%407.0.0)

[Compare Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/keyboard@6.0.3...@capacitor/keyboard@7.0.0)

**Note:** Version bump only for package [@&#8203;capacitor/app](https://redirect.github.com/capacitor/app)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 08:58:58 +00:00
renovate
2a84c7aa5c chore: bump up @capacitor/haptics version to v7 (#9821)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@capacitor/haptics](https://redirect.github.com/ionic-team/capacitor-plugins) | [`^6.0.2` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fhaptics/6.0.2/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fhaptics/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fhaptics/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fhaptics/6.0.2/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fhaptics/6.0.2/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v7.0.0`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/app%407.0.0)

[Compare Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/haptics@6.0.2...@capacitor/haptics@7.0.0)

**Note:** Version bump only for package [@&#8203;capacitor/app](https://redirect.github.com/capacitor/app)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 08:40:00 +00:00
renovate
b299bb89fa chore: bump up @capacitor/browser version to v7 (#9812)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@capacitor/browser](https://redirect.github.com/ionic-team/capacitor-plugins) | [`^6.0.4` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fbrowser/6.0.5/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fbrowser/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fbrowser/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fbrowser/6.0.5/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fbrowser/6.0.5/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v7.0.0`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/app%407.0.0)

[Compare Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/browser@6.0.5...@capacitor/browser@7.0.0)

**Note:** Version bump only for package [@&#8203;capacitor/app](https://redirect.github.com/capacitor/app)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 08:24:06 +00:00
Saul-Mirone
5783580054 fix(editor): y reactive deep watch (#9818)
Closes: [BS-2193](https://linear.app/affine-design/issue/BS-2193/fix-deep-watcher-of-reactive-yjs-data)
2025-01-21 08:08:01 +00:00
L-Sun
7400cf225f refactor(editor): highlight selected cards of TOC based on signal (#9807)
Close [BS-2314](https://linear.app/affine-design/issue/BS-2314/添加打开toc时,将note-block-高亮), [BS-1868](https://linear.app/affine-design/issue/BS-1868/toc-里面-note之间顺序可拖动性,在page和edgeless里面是不同的,这个是设计的行为么?)

This PR refactor the highlight logic of note cards of TOC panel:
- notes block selected in edgeless note
- notes block covered by text or block selection in page mode
- note cards selected in TOC for dragging

Other changes:
- remove not used codes
- add tests for highlight note cards
2025-01-21 07:50:57 +00:00
renovate
6470d83248 chore: bump up @capacitor/app version to v7 (#9811)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@capacitor/app](https://redirect.github.com/ionic-team/capacitor-plugins) | [`^6.0.2` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@capacitor%2fapp/6.0.2/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fapp/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fapp/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fapp/6.0.2/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fapp/6.0.2/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v7.0.0`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/app%407.0.0)

[Compare Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/app@6.0.2...@capacitor/app@7.0.0)

**Note:** Version bump only for package [@&#8203;capacitor/app](https://redirect.github.com/capacitor/app)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-21 07:34:11 +00:00
fengmk2
90b4dc5c00 refactor(server): use @nestjs-cls/transactional to impl database transaction (#9759) 2025-01-21 06:43:30 +00:00
forehalo
07c32d016d fix(native): possible deadlock when batching read/write (#9817) 2025-01-21 06:07:03 +00:00
CatsJuice
46ee235674 chore(core): replace add icon of section in sidebar (#9787) 2025-01-21 05:36:44 +00:00
darkskygit
1116a1d74e feat(server): supplement team email remind (#9483)
fix PD-2047 AF-1996
2025-01-21 05:18:02 +00:00
forehalo
42428fbf99 build: wrong keep classnames options (#9750) 2025-01-21 04:57:44 +00:00
Saul-Mirone
f744002808 refactor(editor): add schema on block model (#9815) 2025-01-21 03:56:10 +00:00
L-Sun
d2bde09ef6 fix(core): avoid multiple append right sidebar tab lit component (#9806)
This PR fixed that the TOC panel and frame panel will be connect and disconnect repeatly on the same instance. Similar issue:  https://github.com/toeverything/AFFiNE/pull/9019#discussion_r1872635745
2025-01-21 02:32:35 +00:00
fengmk2
6edb341255 feat(server): add requestId to all error response (#9790) 2025-01-21 01:32:59 +00:00
EYHN
97207a7ad5 fix(ios): fix ios http and ws (#9805) 2025-01-21 00:16:21 +00:00
pengx17
69e4a5e9b8 fix(infra): asynclock deadlock (#9808) 2025-01-20 17:03:15 +00:00
renovate
26cbc2a7a4 chore: bump up all non-major dependencies (#9804)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | [`3.0.0-alpha.67` -> `3.0.0-alpha.68`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.7` -> `6.0.9`](https://renovatebot.com/diffs/npm/vite/6.0.7/6.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.7/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.7/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.68`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.67...@napi-rs/cli@3.0.0-alpha.68)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.67...@napi-rs/cli@3.0.0-alpha.68)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v6.0.9`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small609-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.8...v6.0.9)

-   fix!: check host header to prevent DNS rebinding attacks and introduce `server.allowedHosts` ([bd896fb](bd896fb5f3))
-   fix!: default `server.cors: false` to disallow fetching from untrusted origins ([b09572a](b09572acc9))
-   fix: verify token for HMR WebSocket connection ([029dcd6](029dcd6d77))

### [`v6.0.8`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small608-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.7...v6.0.8)

-   fix: avoid SSR HMR for HTML files ([#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)) ([3bd55bc](3bd55bcb7e)), closes [#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)
-   fix: build time display 7m 60s ([#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)) ([cf0d2c8](cf0d2c8e23)), closes [#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)
-   fix: don't resolve URL starting with double slash ([#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)) ([35942cd](35942cde11)), closes [#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)
-   fix: ensure `server.close()` only called once ([#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)) ([db81c2d](db81c2dada)), closes [#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)
-   fix: resolve.conditions in ResolvedConfig was `defaultServerConditions` ([#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)) ([ad75c56](ad75c56dce)), closes [#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)
-   fix: tree shake stringified JSON imports ([#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)) ([f2aed62](f2aed62d0b)), closes [#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)
-   fix: use shared sigterm callback ([#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)) ([47039f4](47039f4643)), closes [#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)
-   fix(deps): update all non-major dependencies ([#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)) ([8639538](8639538e64)), closes [#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)
-   fix(optimizer): use correct default install state path for yarn PnP ([#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)) ([e690d8b](e690d8bb1e)), closes [#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)
-   fix(types): improve `ESBuildOptions.include / exclude` type to allow `readonly (string | RegExp)[]`  ([ea53e70](ea53e70952)), closes [#&#8203;19146](https://redirect.github.com/vitejs/vite/issues/19146)
-   chore(deps): update dependency pathe to v2 ([#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)) ([71506f0](71506f0a8d)), closes [#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-20 16:43:40 +00:00
donteatfriedrice
f995f216bd fix(editor): inline latex editor should not be shown when doc is readonly (#9794)
[BS-2442](https://linear.app/affine-design/issue/BS-2442/只读时-inline-latex-node-点击不应该弹出-modal)
2025-01-20 15:44:07 +00:00
Saul-Mirone
092f9c84fa refactor(editor): remove deprecated dangerouslyRenderModel method (#9803) 2025-01-20 14:48:09 +00:00
renovate
11558b6845 chore: bump up all non-major dependencies (#9800)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | [`3.0.0-alpha.67` -> `3.0.0-alpha.68`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [jotai](https://redirect.github.com/pmndrs/jotai) | [`2.11.0` -> `2.11.1`](https://renovatebot.com/diffs/npm/jotai/2.11.0/2.11.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/jotai/2.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/jotai/2.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/jotai/2.11.0/2.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/jotai/2.11.0/2.11.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.7` -> `6.0.9`](https://renovatebot.com/diffs/npm/vite/6.0.7/6.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.7/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.7/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.68`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.67...@napi-rs/cli@3.0.0-alpha.68)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.67...@napi-rs/cli@3.0.0-alpha.68)

</details>

<details>
<summary>pmndrs/jotai (jotai)</summary>

### [`v2.11.1`](https://redirect.github.com/pmndrs/jotai/releases/tag/v2.11.1)

[Compare Source](https://redirect.github.com/pmndrs/jotai/compare/v2.11.0...v2.11.1)

Jotai v2.11.0 was a big change, and we faced some fundamental issues. It required time to reconsider the architecture from the ground up. We've added various tests, and this patch version should be more stable.

Having that said, we are still in the middle of the re-architecture. If you prefer to stay away from bleeding-edge features and encounter no bugs, feel free to keep using the previous versions.

Kudos to [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky)

#### What's Changed

-   feat(core): add atom hooks for atom mount, unmount and improve dev store by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2895](https://redirect.github.com/pmndrs/jotai/pull/2895)
-   refactor(core): more readability for addBatchFunc by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2898](https://redirect.github.com/pmndrs/jotai/pull/2898)
-   feat(core): introduce atom.unstable_onInit hook by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2905](https://redirect.github.com/pmndrs/jotai/pull/2905)
-   name devStore functions by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2910](https://redirect.github.com/pmndrs/jotai/pull/2910)
-   refactor(core): replace batch dependents map with batched changed atoms by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2912](https://redirect.github.com/pmndrs/jotai/pull/2912)
-   refactor: following up [#&#8203;2912](https://redirect.github.com/pmndrs/jotai/issues/2912) by [@&#8203;dai-shi](https://redirect.github.com/dai-shi) in [https://github.com/pmndrs/jotai/pull/2915](https://redirect.github.com/pmndrs/jotai/pull/2915)
-   refactor: eliminate batch by [@&#8203;dai-shi](https://redirect.github.com/dai-shi) in [https://github.com/pmndrs/jotai/pull/2925](https://redirect.github.com/pmndrs/jotai/pull/2925)
-   fix: derived atom is not recomputed after its dependencies changed [#&#8203;2906](https://redirect.github.com/pmndrs/jotai/issues/2906) by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2907](https://redirect.github.com/pmndrs/jotai/pull/2907)
-   refactor(store): Replace runWithTransactions to flushCallbacks by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2946](https://redirect.github.com/pmndrs/jotai/pull/2946)
-   refactor(store): avoid transaction by [@&#8203;dai-shi](https://redirect.github.com/dai-shi) in [https://github.com/pmndrs/jotai/pull/2950](https://redirect.github.com/pmndrs/jotai/pull/2950)
-   fix: should update dependents with the value of the unwrapped atom when the promise resolves by [@&#8203;dmaskasky](https://redirect.github.com/dmaskasky) in [https://github.com/pmndrs/jotai/pull/2936](https://redirect.github.com/pmndrs/jotai/pull/2936)

#### New Contributors

-   [@&#8203;kyday](https://redirect.github.com/kyday) made their first contribution in [https://github.com/pmndrs/jotai/pull/2927](https://redirect.github.com/pmndrs/jotai/pull/2927)
-   [@&#8203;Zercerium](https://redirect.github.com/Zercerium) made their first contribution in [https://github.com/pmndrs/jotai/pull/2929](https://redirect.github.com/pmndrs/jotai/pull/2929)
-   [@&#8203;disjukr](https://redirect.github.com/disjukr) made their first contribution in [https://github.com/pmndrs/jotai/pull/2937](https://redirect.github.com/pmndrs/jotai/pull/2937)

**Full Changelog**: https://github.com/pmndrs/jotai/compare/v2.11.0...v2.11.1

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v6.0.9`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small609-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.8...v6.0.9)

-   fix!: check host header to prevent DNS rebinding attacks and introduce `server.allowedHosts` ([bd896fb](bd896fb5f3))
-   fix!: default `server.cors: false` to disallow fetching from untrusted origins ([b09572a](b09572acc9))
-   fix: verify token for HMR WebSocket connection ([029dcd6](029dcd6d77))

### [`v6.0.8`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small608-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.7...v6.0.8)

-   fix: avoid SSR HMR for HTML files ([#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)) ([3bd55bc](3bd55bcb7e)), closes [#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)
-   fix: build time display 7m 60s ([#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)) ([cf0d2c8](cf0d2c8e23)), closes [#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)
-   fix: don't resolve URL starting with double slash ([#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)) ([35942cd](35942cde11)), closes [#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)
-   fix: ensure `server.close()` only called once ([#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)) ([db81c2d](db81c2dada)), closes [#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)
-   fix: resolve.conditions in ResolvedConfig was `defaultServerConditions` ([#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)) ([ad75c56](ad75c56dce)), closes [#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)
-   fix: tree shake stringified JSON imports ([#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)) ([f2aed62](f2aed62d0b)), closes [#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)
-   fix: use shared sigterm callback ([#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)) ([47039f4](47039f4643)), closes [#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)
-   fix(deps): update all non-major dependencies ([#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)) ([8639538](8639538e64)), closes [#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)
-   fix(optimizer): use correct default install state path for yarn PnP ([#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)) ([e690d8b](e690d8bb1e)), closes [#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)
-   fix(types): improve `ESBuildOptions.include / exclude` type to allow `readonly (string | RegExp)[]`  ([ea53e70](ea53e70952)), closes [#&#8203;19146](https://redirect.github.com/vitejs/vite/issues/19146)
-   chore(deps): update dependency pathe to v2 ([#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)) ([71506f0](71506f0a8d)), closes [#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-20 14:28:03 +00:00
Saul-Mirone
04509a9c91 fix(editor): remove pointer event handlers in root block (#9802) 2025-01-20 14:10:05 +00:00
doodlewind
14ca171a18 chore(web): bump theme (#9801) 2025-01-20 13:51:24 +00:00
renovate
44b28cacf5 chore: bump up all non-major dependencies (#9786)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | [`3.0.0-alpha.67` -> `3.0.0-alpha.68`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.67/3.0.0-alpha.68?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [micromark-extension-gfm-table](https://redirect.github.com/micromark/micromark-extension-gfm-table) | [`2.1.0` -> `2.1.1`](https://renovatebot.com/diffs/npm/micromark-extension-gfm-table/2.1.0/2.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/micromark-extension-gfm-table/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/micromark-extension-gfm-table/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/micromark-extension-gfm-table/2.1.0/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/micromark-extension-gfm-table/2.1.0/2.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`1.27.2` -> `1.29.1`](https://renovatebot.com/diffs/npm/shiki/1.27.2/1.29.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.27.2/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.27.2/1.29.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.7` -> `6.0.9`](https://renovatebot.com/diffs/npm/vite/6.0.7/6.0.9) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.7/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.7/6.0.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.68`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.67...@napi-rs/cli@3.0.0-alpha.68)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.67...@napi-rs/cli@3.0.0-alpha.68)

</details>

<details>
<summary>micromark/micromark-extension-gfm-table (micromark-extension-gfm-table)</summary>

### [`v2.1.1`](https://redirect.github.com/micromark/micromark-extension-gfm-table/releases/tag/2.1.1)

[Compare Source](https://redirect.github.com/micromark/micromark-extension-gfm-table/compare/2.1.0...2.1.1)

##### Fix

-   [`b9c47f5`](https://redirect.github.com/micromark/micromark-extension-gfm-table/commit/b9c47f5) Fix stack overflow by replacing spread w/ for loop
    by [@&#8203;zzuu666](https://redirect.github.com/zzuu666) in [https://github.com/micromark/micromark-extension-gfm-table/pull/15](https://redirect.github.com/micromark/micromark-extension-gfm-table/pull/15)

##### Types

-   [`f916674`](https://redirect.github.com/micromark/micromark-extension-gfm-table/commit/f916674) Refactor types
-   [`630c82f`](https://redirect.github.com/micromark/micromark-extension-gfm-table/commit/630c82f) Add declaration maps

**Full Changelog**: https://github.com/micromark/micromark-extension-gfm-table/compare/2.1.0...2.1.1

</details>

<details>
<summary>shikijs/shiki (shiki)</summary>

### [`v1.29.1`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.29.1)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.29.0...v1.29.1)

#####    🚀 Features

-   Improve warning messages  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(ad525)</samp>](https://redirect.github.com/shikijs/shiki/commit/ad525a9c)
-   Expose `shiki/types`  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(0b027)</samp>](https://redirect.github.com/shikijs/shiki/commit/0b027f3d)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.29.0...v1.29.1)

### [`v1.29.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.29.0)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.28.0...v1.29.0)

#####    🚀 Features

-   **transformers**: Introduce `matchAlgorithm` option for new matching algorithm  -  by [@&#8203;fuma-nama](https://redirect.github.com/fuma-nama) and [@&#8203;antfu](https://redirect.github.com/antfu) in [https://github.com/shikijs/shiki/issues/835](https://redirect.github.com/shikijs/shiki/issues/835) [<samp>(ceca9)</samp>](https://redirect.github.com/shikijs/shiki/commit/ceca984e)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.28.0...v1.29.0)

### [`v1.28.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.28.0)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.27.2...v1.28.0)

#####    🚀 Features

-   **engine-js**: Improve performance for some languages  -  by [@&#8203;slevithan](https://redirect.github.com/slevithan) in [https://github.com/shikijs/shiki/issues/897](https://redirect.github.com/shikijs/shiki/issues/897) [<samp>(e86ca)</samp>](https://redirect.github.com/shikijs/shiki/commit/e86ca5fa)

#####    🐞 Bug Fixes

-   **rehype**: Improve `lazy` performance  -  by [@&#8203;fuma-nama](https://redirect.github.com/fuma-nama) in [https://github.com/shikijs/shiki/issues/896](https://redirect.github.com/shikijs/shiki/issues/896) [<samp>(5c10f)</samp>](https://redirect.github.com/shikijs/shiki/commit/5c10f25b)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.27.2...v1.28.0)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v6.0.9`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small609-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.8...v6.0.9)

-   fix!: check host header to prevent DNS rebinding attacks and introduce `server.allowedHosts` ([bd896fb](bd896fb5f3))
-   fix!: default `server.cors: false` to disallow fetching from untrusted origins ([b09572a](b09572acc9))
-   fix: verify token for HMR WebSocket connection ([029dcd6](029dcd6d77))

### [`v6.0.8`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small608-2025-01-20-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.7...v6.0.8)

-   fix: avoid SSR HMR for HTML files ([#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)) ([3bd55bc](3bd55bcb7e)), closes [#&#8203;19193](https://redirect.github.com/vitejs/vite/issues/19193)
-   fix: build time display 7m 60s ([#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)) ([cf0d2c8](cf0d2c8e23)), closes [#&#8203;19108](https://redirect.github.com/vitejs/vite/issues/19108)
-   fix: don't resolve URL starting with double slash ([#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)) ([35942cd](35942cde11)), closes [#&#8203;19059](https://redirect.github.com/vitejs/vite/issues/19059)
-   fix: ensure `server.close()` only called once ([#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)) ([db81c2d](db81c2dada)), closes [#&#8203;19204](https://redirect.github.com/vitejs/vite/issues/19204)
-   fix: resolve.conditions in ResolvedConfig was `defaultServerConditions` ([#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)) ([ad75c56](ad75c56dce)), closes [#&#8203;19174](https://redirect.github.com/vitejs/vite/issues/19174)
-   fix: tree shake stringified JSON imports ([#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)) ([f2aed62](f2aed62d0b)), closes [#&#8203;19189](https://redirect.github.com/vitejs/vite/issues/19189)
-   fix: use shared sigterm callback ([#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)) ([47039f4](47039f4643)), closes [#&#8203;19203](https://redirect.github.com/vitejs/vite/issues/19203)
-   fix(deps): update all non-major dependencies ([#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)) ([8639538](8639538e64)), closes [#&#8203;19098](https://redirect.github.com/vitejs/vite/issues/19098)
-   fix(optimizer): use correct default install state path for yarn PnP ([#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)) ([e690d8b](e690d8bb1e)), closes [#&#8203;19119](https://redirect.github.com/vitejs/vite/issues/19119)
-   fix(types): improve `ESBuildOptions.include / exclude` type to allow `readonly (string | RegExp)[]`  ([ea53e70](ea53e70952)), closes [#&#8203;19146](https://redirect.github.com/vitejs/vite/issues/19146)
-   chore(deps): update dependency pathe to v2 ([#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)) ([71506f0](71506f0a8d)), closes [#&#8203;19139](https://redirect.github.com/vitejs/vite/issues/19139)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-20 13:03:20 +00:00
Yifeng Wang
e45ac54709 feat(editor): add canvas worker renderer dev entry (#9719) 2025-01-20 20:40:27 +08:00
fengmk2
2ae05c28b7 feat(server): enable cls plugin to store request id (#9758)
POC
2025-01-20 10:00:21 +00:00
Saul-Mirone
fa5e6e1f45 fix: remove bs shared and components in affine (#9792) 2025-01-20 09:41:06 +00:00
doouding
1560880abd fix: drag embed block preview (#9791)
Fixes [BS-1518](https://linear.app/affine-design/issue/BS-1518/拖拽一个-embed-view-的-linked-doc,其-indicator-是错误的)
2025-01-20 09:25:05 +00:00
forehalo
cb53baca89 fix(electron): export and import (#9767) 2025-01-20 08:48:03 +00:00
zzj3720
2e18ae59e3 refactor(editor): do not create a tag column by default anymore (#9789)
close: BS-2423
2025-01-20 06:59:10 +00:00
renovate
dce71f8e6e chore: bump up oxlint version to v0.15.7 (#9774)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.15.6` -> `0.15.7`](https://renovatebot.com/diffs/npm/oxlint/0.15.6/0.15.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.15.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.15.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.15.6/0.15.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.15.6/0.15.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.15.7`](https://redirect.github.com/oxc-project/oxc/blob/HEAD/npm/oxlint/CHANGELOG.md#0157---2025-01-19)

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.6...oxlint_v0.15.7)

##### Features

-   [`538b24a`](https://redirect.github.com/oxc-project/oxc/commit/538b24a) linter: Format the configuration documentation correctly ([#&#8203;8583](https://redirect.github.com/oxc-project/oxc/issues/8583)) (Tapan Prakash)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-20 06:32:11 +00:00
Saul-Mirone
2b3da1f0e9 fix: remove global, store and std in affine packages (#9785) 2025-01-20 06:14:46 +00:00
zzj3720
66b6fd8b74 fix(editor): view recorded in storage may not exist (#9788)
fix: BS-2415
2025-01-20 05:36:42 +00:00
CatsJuice
1a18aeb22e fix(core): make journal template selector fixed at bottom in sidebar (#9783) 2025-01-20 04:35:11 +00:00
donteatfriedrice
4bd43a698c refactor(editor): refactor linkPreviewer as an extension and remove bookmark service (#9754)
[BS-2427](https://linear.app/affine-design/issue/BS-2427/移除-bookmark-block-service) [BS-2418](https://linear.app/affine-design/issue/BS-2418/linkpreviewer-重构成插件)
2025-01-20 04:18:00 +00:00
EYHN
cc2958203b fix(core): fix ios sync (#9782) 2025-01-20 03:37:10 +00:00
fundon
4aabcaaa60 chore(core): update fill color of shape (#9674)
part of: https://github.com/toeverything/AFFiNE/pull/9633

* updates fill color in `shape.json`
2025-01-20 03:22:11 +00:00
JimmFly
601c0dd16c fix(core): center peek and history dialog does not display custom fonts (#9274)
close AF-1806
2025-01-20 03:00:13 +00:00
JimmFly
9004c45eed feat(core): add copy link button to local share menu (#9271)
close AF-1838
2025-01-20 02:40:10 +00:00
renovate
8d65a9bb5f chore: bump up Rust crate serde_json to v1.0.137 (#9781)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [serde_json](https://redirect.github.com/serde-rs/json) | workspace.dependencies | patch | `1.0.136` -> `1.0.137` |

---

### Release Notes

<details>
<summary>serde-rs/json (serde_json)</summary>

### [`v1.0.137`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.137)

[Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.136...v1.0.137)

-   Turn on "float_roundtrip" and "unbounded_depth" features for serde_json in play.rust-lang.org ([#&#8203;1231](https://redirect.github.com/serde-rs/json/issues/1231))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-20 01:29:41 +00:00
renovate
c38ae69b4c chore: bump up all non-major dependencies (#9730)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3)) | [`3.726.1` -> `3.731.1`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.726.1/3.731.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.731.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.731.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.726.1/3.731.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.726.1/3.731.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@chromatic-com/storybook](https://redirect.github.com/chromaui/addon-visual-tests) | [`3.2.3` -> `3.2.4`](https://renovatebot.com/diffs/npm/@chromatic-com%2fstorybook/3.2.3/3.2.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@chromatic-com%2fstorybook/3.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@chromatic-com%2fstorybook/3.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@chromatic-com%2fstorybook/3.2.3/3.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@chromatic-com%2fstorybook/3.2.3/3.2.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@napi-rs/cli](https://redirect.github.com/napi-rs/napi-rs) | [`3.0.0-alpha.65` -> `3.0.0-alpha.67`](https://renovatebot.com/diffs/npm/@napi-rs%2fcli/3.0.0-alpha.65/3.0.0-alpha.67) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@napi-rs%2fcli/3.0.0-alpha.67?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@napi-rs%2fcli/3.0.0-alpha.67?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@napi-rs%2fcli/3.0.0-alpha.65/3.0.0-alpha.67?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@napi-rs%2fcli/3.0.0-alpha.65/3.0.0-alpha.67?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.10.7` -> `1.10.8`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.7/1.10.8) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.7/1.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.7/1.10.8?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@toeverything/theme](https://redirect.github.com/toeverything/design) | [`1.1.6` -> `1.1.7`](https://renovatebot.com/diffs/npm/@toeverything%2ftheme/1.1.6/1.1.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@toeverything%2ftheme/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@toeverything%2ftheme/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@toeverything%2ftheme/1.1.6/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@toeverything%2ftheme/1.1.6/1.1.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [cloudflare/wrangler-action](https://redirect.github.com/cloudflare/wrangler-action) | `v3.13.0` -> `v3.13.1` | [![age](https://developer.mend.io/api/mc/badges/age/github-tags/cloudflare%2fwrangler-action/v3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/github-tags/cloudflare%2fwrangler-action/v3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/github-tags/cloudflare%2fwrangler-action/v3.13.0/v3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/github-tags/cloudflare%2fwrangler-action/v3.13.0/v3.13.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | action | patch |
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`15.3.0` -> `15.4.1`](https://renovatebot.com/diffs/npm/lint-staged/15.3.0/15.4.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.3.0/15.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.3.0/15.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [lucide-react](https://lucide.dev) ([source](https://redirect.github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react)) | [`^0.471.0` -> `^0.473.0`](https://renovatebot.com/diffs/npm/lucide-react/0.471.1/0.473.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.473.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.473.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.471.1/0.473.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.471.1/0.473.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.78.1` -> `4.79.1`](https://renovatebot.com/diffs/npm/openai/4.78.1/4.79.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.79.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.79.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.78.1/4.79.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.78.1/4.79.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-router-dom](https://redirect.github.com/remix-run/react-router) ([source](https://redirect.github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom)) | [`6.28.1` -> `6.28.2`](https://renovatebot.com/diffs/npm/react-router-dom/6.28.1/6.28.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-router-dom/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-router-dom/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-router-dom/6.28.1/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-router-dom/6.28.1/6.28.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [serde_json](https://redirect.github.com/serde-rs/json) | `1.0.135` -> `1.0.136` | [![age](https://developer.mend.io/api/mc/badges/age/crate/serde_json/1.0.136?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/serde_json/1.0.136?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/serde_json/1.0.135/1.0.136?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/serde_json/1.0.135/1.0.136?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.2.2` -> `7.2.3`](https://renovatebot.com/diffs/npm/undici/7.2.2/7.2.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/7.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/7.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/7.2.2/7.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/7.2.2/7.2.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.102.0` -> `3.103.2`](https://renovatebot.com/diffs/npm/wrangler/3.102.0/3.103.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/3.103.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/wrangler/3.103.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/wrangler/3.102.0/3.103.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/3.102.0/3.103.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |

---

### Release Notes

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

### [`v3.731.1`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37311-2025-01-18)

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

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

### [`v3.731.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37310-2025-01-17)

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

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

### [`v3.730.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37300-2025-01-16)

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

##### Bug Fixes

-   **nested-clients:** create nested clients for internal use ([#&#8203;6791](https://redirect.github.com/aws/aws-sdk-js-v3/issues/6791)) ([5c53685](5c5368554d))

### [`v3.729.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37290-2025-01-15)

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

##### Features

-   **client-s3:** This change enhances integrity protections for new SDK requests to S3. S3 SDKs now support the CRC64NVME checksum algorithm, full object checksums for multipart S3 objects, and new default integrity protections for S3 requests. ([a550721](a550721e05))

#### [3.726.1](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.726.0...v3.726.1) (2025-01-10)

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

</details>

<details>
<summary>chromaui/addon-visual-tests (@&#8203;chromatic-com/storybook)</summary>

### [`v3.2.4`](https://redirect.github.com/chromaui/addon-visual-tests/compare/v3.2.3...v3.2.4)

[Compare Source](https://redirect.github.com/chromaui/addon-visual-tests/compare/v3.2.3...v3.2.4)

</details>

<details>
<summary>napi-rs/napi-rs (@&#8203;napi-rs/cli)</summary>

### [`v3.0.0-alpha.67`](https://redirect.github.com/napi-rs/napi-rs/releases/tag/%40napi-rs/cli%403.0.0-alpha.67)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.66...@napi-rs/cli@3.0.0-alpha.67)

##### What's Changed

-   chore(deps): update dependency [@&#8203;oxc-node/core](https://redirect.github.com/oxc-node/core) to ^0.0.17 by [@&#8203;renovate](https://redirect.github.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/2427](https://redirect.github.com/napi-rs/napi-rs/pull/2427)
-   chore(deps): update vitest monorepo to v3 (major) by [@&#8203;renovate](https://redirect.github.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/2429](https://redirect.github.com/napi-rs/napi-rs/pull/2429)
-   chore(deps): update dependency vite-plugin-node-polyfills to ^0.23.0 by [@&#8203;renovate](https://redirect.github.com/renovate) in [https://github.com/napi-rs/napi-rs/pull/2431](https://redirect.github.com/napi-rs/napi-rs/pull/2431)
-   fix(cli): s390x cross toolchain path by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/2432](https://redirect.github.com/napi-rs/napi-rs/pull/2432)

**Full Changelog**: https://github.com/napi-rs/napi-rs/compare/napi-derive@3.0.0-alpha.25...[@&#8203;napi-rs/cli](https://redirect.github.com/napi-rs/cli)[@&#8203;3](https://redirect.github.com/3).0.0-alpha.67

### [`v3.0.0-alpha.66`](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.65...@napi-rs/cli@3.0.0-alpha.66)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/@napi-rs/cli@3.0.0-alpha.65...@napi-rs/cli@3.0.0-alpha.66)

</details>

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

### [`v1.10.8`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1108---2025-01-19)

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

##### Bug Fixes

-   **(es/decorators)** Fix init order of `2022-03` impl ([#&#8203;9760](https://redirect.github.com/swc-project/swc/issues/9760)) ([751a310](751a310e87))

-   **(es/testing)** Fix sourcemap generation ([#&#8203;9891](https://redirect.github.com/swc-project/swc/issues/9891)) ([008f2de](008f2dee66))

-   **(es/ts_strip)** Handle ASI hazard in return statement ([#&#8203;9882](https://redirect.github.com/swc-project/swc/issues/9882)) ([121b5fe](121b5fefbc))

-   **(typescript)** Collect usages in extend clauses of classes and interfaces ([#&#8203;9893](https://redirect.github.com/swc-project/swc/issues/9893)) ([ef29ef6](ef29ef6a22))

##### Features

-   **(typescript)** Check computed property names of ts signatures ([#&#8203;9867](https://redirect.github.com/swc-project/swc/issues/9867)) ([caed78a](caed78a710))

##### Performance

-   **(bench)** Run benchmark on a custom runner ([#&#8203;9877](https://redirect.github.com/swc-project/swc/issues/9877)) ([2d6f9a5](2d6f9a5c27))

-   **(es/codegen)** Remove needless allocations ([#&#8203;9890](https://redirect.github.com/swc-project/swc/issues/9890)) ([f230ff2](f230ff2d84))

-   **(es/minifier)** Make the first run of DCE more efficient ([#&#8203;9868](https://redirect.github.com/swc-project/swc/issues/9868)) ([7329824](7329824b82))

-   **(es/minifier)** Adjust parallel threshold ([#&#8203;9872](https://redirect.github.com/swc-project/swc/issues/9872)) ([d5d856c](d5d856cf3b))

-   **(es/minifier)** Box `VarUsageInfo` of `ProgramData` ([#&#8203;9894](https://redirect.github.com/swc-project/swc/issues/9894)) ([fafd754](fafd754f74))

-   **(es/renamer)** Use `IndexSet` for rename queue ([#&#8203;9866](https://redirect.github.com/swc-project/swc/issues/9866)) ([f404720](f404720b8f))

-   **(es/utils)** Optimize `maybe_par_idx_raw` ([#&#8203;9870](https://redirect.github.com/swc-project/swc/issues/9870)) ([46e3d77](46e3d77396))

-   Enable `concurrent` in codspeed bench ([#&#8203;9862](https://redirect.github.com/swc-project/swc/issues/9862)) ([6c2bb13](6c2bb13f9d))

##### Refactor

-   **(atoms)** Rename `FastAtom` to `UnsafeAtom` ([#&#8203;9873](https://redirect.github.com/swc-project/swc/issues/9873)) ([3df8b44](3df8b443a1))

-   **(es/minifier)** Add a way to profile minifier for real-world inputs ([#&#8203;9881](https://redirect.github.com/swc-project/swc/issues/9881)) ([9657294](9657294ff1))

-   **(es/minifier)** Use `chili` for `minify-all` example ([#&#8203;9885](https://redirect.github.com/swc-project/swc/issues/9885)) ([197f0bc](197f0bc196))

-   **(es/minifier)** Make `minify-all` profilable ([#&#8203;9888](https://redirect.github.com/swc-project/swc/issues/9888)) ([fbad136](fbad136498))

</details>

<details>
<summary>toeverything/design (@&#8203;toeverything/theme)</summary>

### [`v1.1.7`](https://redirect.github.com/toeverything/design/compare/1.1.6...1.1.7)

[Compare Source](https://redirect.github.com/toeverything/design/compare/1.1.6...1.1.7)

</details>

<details>
<summary>cloudflare/wrangler-action (cloudflare/wrangler-action)</summary>

### [`v3.13.1`](https://redirect.github.com/cloudflare/wrangler-action/releases/tag/v3.13.1)

[Compare Source](https://redirect.github.com/cloudflare/wrangler-action/compare/v3.13.0...v3.13.1)

##### Patch Changes

-   [#&#8203;345](https://redirect.github.com/cloudflare/wrangler-action/pull/345) [`e819570`](e819570b2d) Thanks [@&#8203;Maximo-Guk](https://redirect.github.com/Maximo-Guk)! - fix: Pages GitHub Deployment not triggering

</details>

<details>
<summary>lint-staged/lint-staged (lint-staged)</summary>

### [`v15.4.1`](https://redirect.github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1541)

[Compare Source](https://redirect.github.com/lint-staged/lint-staged/compare/v15.4.0...v15.4.1)

##### Patch Changes

-   [#&#8203;1504](https://redirect.github.com/lint-staged/lint-staged/pull/1504) [`1c7a45e`](1c7a45ed2c) Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - Default TypeScript config filenames match JS equivalents.

-   [#&#8203;1504](https://redirect.github.com/lint-staged/lint-staged/pull/1504) [`9cc18c9`](9cc18c9deb) Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - Add missing conditional exports syntax for TypeScript types.

### [`v15.4.0`](https://redirect.github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1540)

[Compare Source](https://redirect.github.com/lint-staged/lint-staged/compare/v15.3.0...v15.4.0)

##### Minor Changes

-   [#&#8203;1500](https://redirect.github.com/lint-staged/lint-staged/pull/1500) [`a8ec1dd`](a8ec1ddb58) Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - *Lint-staged* now provides TypeScript types for the configuration and main Node.js API. You can use the JSDoc syntax in your JS configuration files:

    ```js
    /**
     * @&#8203;filename: lint-staged.config.js
     * @&#8203;type {import('lint-staged').Configuration}
     */
    export default {
      '*': 'prettier --write',
    }
    ```

    It's also possible to use the `.ts` file extension for the configuration if your Node.js version supports it. The `--experimental-strip-types` flag was introduced in [Node.js v22.6.0](https://redirect.github.com/nodejs/node/releases/tag/v22.6.0) and unflagged in [v23.6.0](https://redirect.github.com/nodejs/node/releases/tag/v23.6.0), enabling Node.js to execute TypeScript files without additional configuration.

    ```shell
    export NODE_OPTIONS="--experimental-strip-types"

    npx lint-staged --config lint-staged.config.ts
    ```

##### Patch Changes

-   [#&#8203;1501](https://redirect.github.com/lint-staged/lint-staged/pull/1501) [`9b79364`](9b793640e1) Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - Handle possible failures when logging user shell for debug info.

</details>

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

### [`v0.473.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.473.0): New icons 0.473.0

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

#### Modified Icons 🔨

-   `package` ([#&#8203;2706](https://redirect.github.com/lucide-icons/lucide/issues/2706)) by [@&#8203;sezze](https://redirect.github.com/sezze)

### [`v0.472.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.472.0): New icons 0.472.0

#### New icons 🎨

-   `battery-plus` ([#&#8203;2693](https://redirect.github.com/lucide-icons/lucide/issues/2693)) by [@&#8203;Footagesus](https://redirect.github.com/Footagesus)
-   `map-plus` ([#&#8203;2697](https://redirect.github.com/lucide-icons/lucide/issues/2697)) by [@&#8203;Seanw265](https://redirect.github.com/Seanw265)

#### What's Changed

-   lucide-svelte: Make sure license ends up in SvelteKit bundles by [@&#8203;Lettnald](https://redirect.github.com/Lettnald) in [https://github.com/lucide-icons/lucide/pull/2728](https://redirect.github.com/lucide-icons/lucide/pull/2728)
-   lucide-react: Fixes aliases imports.

**Full Changelog**: https://github.com/lucide-icons/lucide/compare/0.471.1...0.472.0

</details>

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

### [`v4.79.1`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4791-2025-01-17)

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

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

##### Bug Fixes

-   **realtime:** correct import syntax ([#&#8203;1267](https://redirect.github.com/openai/openai-node/issues/1267)) ([74702a7](74702a739f))

### [`v4.79.0`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4790-2025-01-17)

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

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

##### Features

-   **client:** add Realtime API support ([#&#8203;1266](https://redirect.github.com/openai/openai-node/issues/1266)) ([7160ebe](7160ebe647))

##### Bug Fixes

-   **logs/azure:** redact sensitive header when DEBUG is set ([#&#8203;1218](https://redirect.github.com/openai/openai-node/issues/1218)) ([6a72fd7](6a72fd7367))

##### Chores

-   fix streaming ([379c743](379c7435ed))
-   **internal:** streaming refactors ([#&#8203;1261](https://redirect.github.com/openai/openai-node/issues/1261)) ([dd4af93](dd4af93979))
-   **types:** add `| undefined` to client options properties ([#&#8203;1264](https://redirect.github.com/openai/openai-node/issues/1264)) ([5e56979](5e569799b9))
-   **types:** rename vector store chunking strategy ([#&#8203;1263](https://redirect.github.com/openai/openai-node/issues/1263)) ([d31acee](d31acee860))

</details>

<details>
<summary>remix-run/react-router (react-router-dom)</summary>

### [`v6.28.2`](https://redirect.github.com/remix-run/react-router/compare/react-router-dom@6.28.1...react-router-dom@6.28.2)

[Compare Source](https://redirect.github.com/remix-run/react-router/compare/react-router-dom@6.28.1...react-router-dom@6.28.2)

</details>

<details>
<summary>serde-rs/json (serde_json)</summary>

### [`v1.0.136`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.136)

[Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.135...v1.0.136)

-   Optimize serde_json::value::Serializer::serialize_map by using Map::with_capacity ([#&#8203;1230](https://redirect.github.com/serde-rs/json/issues/1230), thanks [@&#8203;goffrie](https://redirect.github.com/goffrie))

</details>

<details>
<summary>nodejs/undici (undici)</summary>

### [`v7.2.3`](https://redirect.github.com/nodejs/undici/releases/tag/v7.2.3)

[Compare Source](https://redirect.github.com/nodejs/undici/compare/v7.2.2...v7.2.3)

### ⚠️ Security Release ⚠️

Fixes CVE CVE-2025-22150 https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975 (embargoed until 22-01-2025).

#### What's Changed

-   Fix typo in update cache tests action by [@&#8203;flakey5](https://redirect.github.com/flakey5) in [https://github.com/nodejs/undici/pull/4008](https://redirect.github.com/nodejs/undici/pull/4008)

**Full Changelog**: https://github.com/nodejs/undici/compare/v7.2.2...v7.2.3

</details>

<details>
<summary>cloudflare/workers-sdk (wrangler)</summary>

### [`v3.103.2`](https://redirect.github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#31032)

[Compare Source](https://redirect.github.com/cloudflare/workers-sdk/compare/wrangler@3.103.1...wrangler@3.103.2)

##### Patch Changes

-   [#&#8203;7804](https://redirect.github.com/cloudflare/workers-sdk/pull/7804) [`16a9460`](16a9460ea6) Thanks [@&#8203;vicb](https://redirect.github.com/vicb)! - fix(wrangler): use require.resolve to resolve unenv path

### [`v3.103.1`](https://redirect.github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#31031)

[Compare Source](https://redirect.github.com/cloudflare/workers-sdk/compare/wrangler@3.103.0...wrangler@3.103.1)

##### Patch Changes

-   [#&#8203;7798](https://redirect.github.com/cloudflare/workers-sdk/pull/7798) [`a1ff045`](a1ff045cfc) Thanks [@&#8203;CarmenPopoviciu](https://redirect.github.com/CarmenPopoviciu)! - Reverts [#&#8203;7720](https://redirect.github.com/cloudflare/workers-sdk/issues/7720) as it introduced breakage in some of the C3 templates (eg. Nuxt)

### [`v3.103.0`](https://redirect.github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#31030)

[Compare Source](https://redirect.github.com/cloudflare/workers-sdk/compare/wrangler@3.102.0...wrangler@3.103.0)

##### Minor Changes

-   [#&#8203;5086](https://redirect.github.com/cloudflare/workers-sdk/pull/5086) [`8faf2c0`](8faf2c0741) Thanks [@&#8203;dario-piotrowicz](https://redirect.github.com/dario-piotrowicz)! - add `--strict-vars` option to `wrangler types`

    add a new `--strict-vars` option to `wrangler types` that developers can (by setting the
    flag to `false`) use to disable the default strict/literal types generation for their variables

    opting out of strict variables can be useful when developers change often their `vars` values,
    even more so when multiple environments are involved

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-19 15:48:05 +00:00
CatsJuice
93106dae3b feat(core): track template doc events (#9775)
close AF-2076
2025-01-19 13:13:31 +00:00
pengx17
7713920b71 fix(core): move openinapp guard to workspace scope (#9751) 2025-01-19 10:00:04 +00:00
L-Sun
6ba802fb17 feat(editor): append note to page button (#9762)
Close [BS-2310](https://linear.app/affine-design/issue/BS-2310/note-display-in-page-%E7%9A%84%E8%A1%8C%E4%B8%BA), [BS-2312](https://linear.app/affine-design/issue/BS-2312/edgeless-note-%E7%9A%84-element-toolbar-%E6%B7%BB%E5%8A%A0display-in-page%E6%8C%89%E9%92%AE) and [BS-2313](https://linear.app/affine-design/issue/BS-2313/添加display-in-page的toast提示,以及打开toc的按钮)
2025-01-19 08:35:02 +00:00
CatsJuice
9d61b41c05 feat(core): add template mark on detail page header (#9764)
close AF-2136
2025-01-18 17:02:25 +00:00
CatsJuice
f8abe997f5 fix(core): open template doc on sidebar template entrance (#9766)
close AF-2135, AF-2136, AF-2138, AF-2133
2025-01-18 16:44:05 +00:00
renovate
9c3365aaca chore: bump up vitest monorepo to v3 (major) (#9739)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@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)) | [`2.1.8` -> `3.0.2`](https://renovatebot.com/diffs/npm/@vitest%2fbrowser/2.1.8/3.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fbrowser/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fbrowser/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fbrowser/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fbrowser/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@vitest/coverage-istanbul](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`2.1.8` -> `3.0.2`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/2.1.8/3.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@vitest/ui](https://redirect.github.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`2.1.8` -> `3.0.2`](https://renovatebot.com/diffs/npm/@vitest%2fui/2.1.8/3.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`^2.1.8` -> `^3.0.0`](https://renovatebot.com/diffs/npm/vitest/2.1.8/3.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vitest](https://redirect.github.com/vitest-dev/vitest) ([source](https://redirect.github.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`2.1.8` -> `3.0.2`](https://renovatebot.com/diffs/npm/vitest/2.1.8/3.0.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/2.1.8/3.0.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

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

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

#####    🐞 Bug Fixes

-   Don't await an empty timeout after every test  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7281](https://redirect.github.com/vitest-dev/vitest/issues/7281) [<samp>(ef1aa)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ef1aa893)
-   **expect**: Fix `expect().resolves/rejects` chain typings  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7273](https://redirect.github.com/vitest-dev/vitest/issues/7273) [<samp>(fa415)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fa415059)

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

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

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

#####    🐞 Bug Fixes

-   Revert "fix: re-apply default conditions if using vite 6 or later ([https://github.com/vitest-dev/vitest/issues/7071](https://redirect.github.com/vitest-dev/vitest/issues/7071))"  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7071](https://redirect.github.com/vitest-dev/vitest/issues/7071) and [https://github.com/vitest-dev/vitest/issues/7271](https://redirect.github.com/vitest-dev/vitest/issues/7271) [<samp>(755ec)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/755ecdfa)
-   **deps**: Update all non-major dependencies  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7147](https://redirect.github.com/vitest-dev/vitest/issues/7147) [<samp>(537fa)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/537fa5ed)

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

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

[Compare Source](https://redirect.github.com/vitest-dev/vitest/compare/v2.1.8...v3.0.0)

Vitest 3 is here! There are a few breaking changes, but we expect the migration to be smooth. This release page lists all changes made to the project during the beta. For the migration guide, please refer to the [documentation](https://vitest.dev/guide/migration.html#migrating-to-vitest-2-0).

#####    🚨 Breaking Changes

-   `spy.mockReset` changes  -  by [@&#8203;Lordfirespeed](https://redirect.github.com/Lordfirespeed) in [https://github.com/vitest-dev/vitest/issues/6426](https://redirect.github.com/vitest-dev/vitest/issues/6426) [<samp>(db7a8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/db7a8888)
-   Pass down context to test hooks  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7034](https://redirect.github.com/vitest-dev/vitest/issues/7034) [<samp>(82c2e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/82c2e244)
-   Support Vite 6  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7026](https://redirect.github.com/vitest-dev/vitest/issues/7026) [<samp>(7abe8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7abe854c)
-   **coverage**: Always exclude test files  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7254](https://redirect.github.com/vitest-dev/vitest/issues/7254) [<samp>(b5268)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b5268965)
-   **deps**: Update fake-timers to v14.0.0  -  by [@&#8203;xxzefgh](https://redirect.github.com/xxzefgh) and [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7097](https://redirect.github.com/vitest-dev/vitest/issues/7097) [<samp>(c98b4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c98b4b1c)
-   **expect**: Check more properties for error equality  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/5876](https://redirect.github.com/vitest-dev/vitest/issues/5876) [<samp>(10023)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/100230e9)
-   **runner**: Support `describe(..., { shuffle: boolean })` and inherit from parent suite  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6670](https://redirect.github.com/vitest-dev/vitest/issues/6670) [<samp>(aa1da)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/aa1dac3d)
-   **snapshot**: Reset snapshot state for `retry` and `repeats`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6817](https://redirect.github.com/vitest-dev/vitest/issues/6817) [<samp>(e8ce9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e8ce94cf)
-   **spy**: SpyOn reuses mock if method is already spyed on  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6464](https://redirect.github.com/vitest-dev/vitest/issues/6464) [<samp>(b3e43)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b3e43d04)
-   **vitest**: Don't expose default toFake config  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6288](https://redirect.github.com/vitest-dev/vitest/issues/6288) [<samp>(e3144)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e3144fd8)

#####    🚀 Features

-   Support inline `diff` options and support `printBasicPrototype`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa), [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and **Michał Grzegorzewski** in [https://github.com/vitest-dev/vitest/issues/6740](https://redirect.github.com/vitest-dev/vitest/issues/6740) [<samp>(39186)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/391860f7)
-   Allow a custom note when calling `ctx.skip()` dynamically  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6805](https://redirect.github.com/vitest-dev/vitest/issues/6805) [<samp>(697c3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/697c35c5)
-   Allow inline workspace configuration  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6923](https://redirect.github.com/vitest-dev/vitest/issues/6923) [<samp>(562e1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/562e1b14)
-   Provide the current project to the global setup  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6942](https://redirect.github.com/vitest-dev/vitest/issues/6942) [<samp>(a5bbc)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a5bbc0a9)
-   Print project name as a label  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6925](https://redirect.github.com/vitest-dev/vitest/issues/6925) [<samp>(a3bef)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a3bef598)
-   Print a deprecation warning if suite or test uses object as the third argument  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7031](https://redirect.github.com/vitest-dev/vitest/issues/7031) [<samp>(407f1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/407f10e4)
-   Expose versions from `vitest/node` entry point and statically on Vitest  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7029](https://redirect.github.com/vitest-dev/vitest/issues/7029) [<samp>(be8d4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/be8d479b)
-   `diff.printBasicPrototype: false` by default  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7043](https://redirect.github.com/vitest-dev/vitest/issues/7043) [<samp>(2b5c5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2b5c5201)
-   Prepare the Vitest API to be stable  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6962](https://redirect.github.com/vitest-dev/vitest/issues/6962) [<samp>(9a1b5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9a1b5012)
-   Support Vite v6 in mocker package  -  by [@&#8203;cexbrayat](https://redirect.github.com/cexbrayat) in [https://github.com/vitest-dev/vitest/issues/7058](https://redirect.github.com/vitest-dev/vitest/issues/7058) [<samp>(96f47)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/96f47d37)
-   Allow multi-browser configuration  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6975](https://redirect.github.com/vitest-dev/vitest/issues/6975) [<samp>(78b62)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/78b62ffe)
-   Add resolved project names to the reporter API  -  by [@&#8203;userquin](https://redirect.github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/7213](https://redirect.github.com/vitest-dev/vitest/issues/7213) [<samp>(91758)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/91758360)
-   Introduce the new reporter API  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7069](https://redirect.github.com/vitest-dev/vitest/issues/7069) [<samp>(76662)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/766624ab)
-   Add `describe.for`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7253](https://redirect.github.com/vitest-dev/vitest/issues/7253) [<samp>(0ad28)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0ad2860b)
-   **api**:
    -   Add onBrowserInit event  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7255](https://redirect.github.com/vitest-dev/vitest/issues/7255) [<samp>(80ce0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/80ce0e1c)
-   **browser**:
    -   Support `actionTimeout` as playwright provider options  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6984](https://redirect.github.com/vitest-dev/vitest/issues/6984) [<samp>(e2c29)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e2c29eaf)
    -   Support clipboard api `userEvent.copy, cut, paste`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6769](https://redirect.github.com/vitest-dev/vitest/issues/6769) [<samp>(843a6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/843a621e)
    -   Implement locator.nth()  -  by [@&#8203;xeger](https://redirect.github.com/xeger) and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7137](https://redirect.github.com/vitest-dev/vitest/issues/7137) [<samp>(38458)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/38458ea6)
-   **cli**:
    -   Support excluding projects with `--project=!pattern`  -  by [@&#8203;haines](https://redirect.github.com/haines) in [https://github.com/vitest-dev/vitest/issues/6924](https://redirect.github.com/vitest-dev/vitest/issues/6924) [<samp>(ebfe9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ebfe942c)
    -   Support specifying a line number when filtering tests  -  by [@&#8203;mzhubail](https://redirect.github.com/mzhubail) and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6411](https://redirect.github.com/vitest-dev/vitest/issues/6411) [<samp>(4d94b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4d94b956)
    -   Support location filters for suites  -  by [@&#8203;mzhubail](https://redirect.github.com/mzhubail) in [https://github.com/vitest-dev/vitest/issues/7048](https://redirect.github.com/vitest-dev/vitest/issues/7048) [<samp>(751e2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/751e2dce)
-   **coverage**:
    -   `thresholds` to support maximum uncovered items  -  by [@&#8203;jonahkagan](https://redirect.github.com/jonahkagan) in [https://github.com/vitest-dev/vitest/issues/7061](https://redirect.github.com/vitest-dev/vitest/issues/7061) [<samp>(bde98)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bde98b6d)
-   **expect**:
    -   Add `toHaveBeenCalledExactlyOnceWith` expect matcher  -  by [@&#8203;jacoberdman2147](https://redirect.github.com/jacoberdman2147) and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6894](https://redirect.github.com/vitest-dev/vitest/issues/6894) [<samp>(ff662)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ff66206a)
    -   Add `toHaveBeenCalledAfter` and `toHaveBeenCalledBefore` utility  -  by [@&#8203;Barbapapazes](https://redirect.github.com/Barbapapazes) and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6056](https://redirect.github.com/vitest-dev/vitest/issues/6056) [<samp>(85e6f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/85e6f99f)
    -   Add `toSatisfy` asymmetric matcher  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7022](https://redirect.github.com/vitest-dev/vitest/issues/7022) [<samp>(f691a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/f691ad76)
    -   Add `toBeOneOf` matcher  -  by [@&#8203;zirkelc](https://redirect.github.com/zirkelc) and [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6974](https://redirect.github.com/vitest-dev/vitest/issues/6974) [<samp>(3d742)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3d742b2b)
-   **reporter**:
    -   Add support for function type to classname option in the junit reporter  -  by [@&#8203;jpleclerc](https://redirect.github.com/jpleclerc), **Jean-Philippe Leclerc** and [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6839](https://redirect.github.com/vitest-dev/vitest/issues/6839) [<samp>(dc238)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/dc238e92)
-   **reporters**:
    -   `summary` option for `verbose` and `default` reporters  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6893](https://redirect.github.com/vitest-dev/vitest/issues/6893) [<samp>(511b7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/511b73c7)
-   **runner**:
    -   Test context can inject values from the config's `provide`  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6813](https://redirect.github.com/vitest-dev/vitest/issues/6813) [<samp>(85c64)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/85c64e35)
    -   Add "queued" state  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6931](https://redirect.github.com/vitest-dev/vitest/issues/6931) [<samp>(5f8d2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/5f8d2091)
-   **snapshot**:
    -   Provide `config` to `resolveSnapshotPath`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6800](https://redirect.github.com/vitest-dev/vitest/issues/6800) [<samp>(746d8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/746d8986)
-   **ui**:
    -   Allow run individual tests/suites from the UI  -  by [@&#8203;userquin](https://redirect.github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/6641](https://redirect.github.com/vitest-dev/vitest/issues/6641) [<samp>(d9cc8)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d9cc81dd)
    -   Make clicking on a test in the UI open the report section and scroll to the test failure if applicable  -  by [@&#8203;jacoberdman2147](https://redirect.github.com/jacoberdman2147) in [https://github.com/vitest-dev/vitest/issues/6900](https://redirect.github.com/vitest-dev/vitest/issues/6900) [<samp>(1bf27)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1bf27f0d)
    -   Allow hide/show node_modules in module graph tab  -  by [@&#8203;userquin](https://redirect.github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/7217](https://redirect.github.com/vitest-dev/vitest/issues/7217) [<samp>(50cf6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/50cf61b8)
-   **vitest**:
    -   Include `coverageMap` in json report  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6606](https://redirect.github.com/vitest-dev/vitest/issues/6606) [<samp>(9c8f7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9c8f7e3e)
    -   Add `onTestsRerun` method to global setup context  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6803](https://redirect.github.com/vitest-dev/vitest/issues/6803) [<samp>(e26e0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e26e066c)

#####    🐞 Bug Fixes

-   Misc fix for vite 6 ecosystem ci  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6867](https://redirect.github.com/vitest-dev/vitest/issues/6867) [<samp>(80f8b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/80f8bbf4)
-   Respect `cacheDir` when optimizer is enabled  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6910](https://redirect.github.com/vitest-dev/vitest/issues/6910) [<samp>(0b08b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/0b08bc11)
-   Reset runningPromise after `finally` in case there is an error to avoid it getting stuck  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6951](https://redirect.github.com/vitest-dev/vitest/issues/6951) [<samp>(02194)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/021944cd)
-   Revert support for Vite 6  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) [<samp>(fbe5c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fbe5c39d)
-   Support Node 21  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) [<samp>(92f7a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/92f7a2ad)
-   Don't use `Custom` type internally  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7032](https://redirect.github.com/vitest-dev/vitest/issues/7032) [<samp>(7957f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7957f912)
-   Persist cli filters as watch mode file filter  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6955](https://redirect.github.com/vitest-dev/vitest/issues/6955) [<samp>(cc703)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cc703362)
-   Don't use dim color for succeeded tests  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7059](https://redirect.github.com/vitest-dev/vitest/issues/7059) [<samp>(8a6f5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8a6f5f16)
-   Fix missing chai types  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7149](https://redirect.github.com/vitest-dev/vitest/issues/7149) [<samp>(6a09c)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6a09cc3b)
-   `cancelCurrentRun` awaits `runningPromise`  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7168](https://redirect.github.com/vitest-dev/vitest/issues/7168) [<samp>(1dbf5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1dbf5140)
-   Add Locator typings for nth, first and last.  -  by [@&#8203;xeger](https://redirect.github.com/xeger) in [https://github.com/vitest-dev/vitest/issues/7176](https://redirect.github.com/vitest-dev/vitest/issues/7176) [<samp>(d262e)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/d262e059)
-   Batch console logs by microtask  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7183](https://redirect.github.com/vitest-dev/vitest/issues/7183) [<samp>(53d1d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/53d1d5f5)
-   Allow `getMockImplementation` to return "once" implementation  -  by [@&#8203;chaptergy](https://redirect.github.com/chaptergy) in [https://github.com/vitest-dev/vitest/issues/7033](https://redirect.github.com/vitest-dev/vitest/issues/7033) [<samp>(39125)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3912554b)
-   `capturePrintError` logger duplicate event handlers  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7197](https://redirect.github.com/vitest-dev/vitest/issues/7197) [<samp>(e89c3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e89c3693)
-   Allow slots in vitest-browser-vue  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7120](https://redirect.github.com/vitest-dev/vitest/issues/7120) [<samp>(2319f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2319f849)
-   Reset root workspace project on restart  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7238](https://redirect.github.com/vitest-dev/vitest/issues/7238) [<samp>(6e518)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6e51843a)
-   Cleanup `vitest/reporters` entrypoint  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7241](https://redirect.github.com/vitest-dev/vitest/issues/7241) [<samp>(aec0b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/aec0b530)
-   Colors on `forks` pool  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7090](https://redirect.github.com/vitest-dev/vitest/issues/7090) [<samp>(8cab9)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8cab9601)
-   Export `VitestRunner` type from `vitest/runners`  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7240](https://redirect.github.com/vitest-dev/vitest/issues/7240) [<samp>(9b218)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/9b218854)
-   Return test fn result to runner  -  by [@&#8203;wmertens](https://redirect.github.com/wmertens) in [https://github.com/vitest-dev/vitest/issues/7239](https://redirect.github.com/vitest-dev/vitest/issues/7239) [<samp>(48645)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/48645bf4)
-   Re-apply default conditions if using vite 6 or later  -  by [@&#8203;thebanjomatic](https://redirect.github.com/thebanjomatic), **thebanjomatic** and [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7071](https://redirect.github.com/vitest-dev/vitest/issues/7071) [<samp>(84287)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/84287fc2)
-   Prevent infinite loop on prettyDOM calls  -  by [@&#8203;tsirlucas](https://redirect.github.com/tsirlucas) in [https://github.com/vitest-dev/vitest/issues/7250](https://redirect.github.com/vitest-dev/vitest/issues/7250) [<samp>(a3a46)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a3a46a53)
-   **api**:
    -   Don't report events during `vitest list`  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7257](https://redirect.github.com/vitest-dev/vitest/issues/7257) [<samp>(1c2b2)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1c2b210d)
-   **benchmark**:
    -   Disable type testing while benchmarking  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7068](https://redirect.github.com/vitest-dev/vitest/issues/7068) [<samp>(4e603)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/4e60333d)
    -   Rewrite reporter without `log-update`  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7019](https://redirect.github.com/vitest-dev/vitest/issues/7019) [<samp>(6d23f)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/6d23f4b1)
-   **browser**:
    -   Improve source maps when `vi.mock` is present  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6810](https://redirect.github.com/vitest-dev/vitest/issues/6810) [<samp>(8d179)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8d179afc)
    -   Explain TypeScript support in docs and add asymmetric matchers to types  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/6934](https://redirect.github.com/vitest-dev/vitest/issues/6934) [<samp>(ac1a7)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ac1a7fdc)
    -   Fix matchers.d.ts  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6995](https://redirect.github.com/vitest-dev/vitest/issues/6995) [<samp>(a485b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a485b32b)
    -   Fix user event state on preview provider  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7041](https://redirect.github.com/vitest-dev/vitest/issues/7041) [<samp>(8e944)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8e94427e)
    -   Fix provider options types  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7115](https://redirect.github.com/vitest-dev/vitest/issues/7115) [<samp>(579bd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/579bda97)
    -   Only use locator.element on last expect.element attempt  -  by [@&#8203;tsirlucas](https://redirect.github.com/tsirlucas) in [https://github.com/vitest-dev/vitest/issues/7139](https://redirect.github.com/vitest-dev/vitest/issues/7139) and [https://github.com/vitest-dev/vitest/issues/7152](https://redirect.github.com/vitest-dev/vitest/issues/7152) [<samp>(847d3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/847d3221)
    -   Use correct project when filtering `entries` in the browser mode  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7167](https://redirect.github.com/vitest-dev/vitest/issues/7167) [<samp>(423d6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/423d6345)
    -   Fix `console.time` with fake timers  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7207](https://redirect.github.com/vitest-dev/vitest/issues/7207) [<samp>(903f3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/903f3b9b)
    -   Add instance validation to resolve coverage error  -  by [@&#8203;DevJoaoLopes](https://redirect.github.com/DevJoaoLopes) and [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7231](https://redirect.github.com/vitest-dev/vitest/issues/7231) [<samp>(1e791)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1e7915b5)
-   **coverage**:
    -   Exclude browser mode iframe results  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6905](https://redirect.github.com/vitest-dev/vitest/issues/6905) [<samp>(e04a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/e04a1368)
    -   Correct coverage when `isolate: false` is used  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6957](https://redirect.github.com/vitest-dev/vitest/issues/6957) [<samp>(426ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/426ce6d8)
    -   Prevent crash when v8 incorrectly merges static_initializer's  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7150](https://redirect.github.com/vitest-dev/vitest/issues/7150) [<samp>(cb6db)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/cb6db13e)
-   **deps**:
    -   Update all non-major dependencies  -  in [https://github.com/vitest-dev/vitest/issues/7085](https://redirect.github.com/vitest-dev/vitest/issues/7085) [<samp>(8cc92)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/8cc92c2f)
    -   Update all non-major dependencies  -  in [https://github.com/vitest-dev/vitest/issues/7116](https://redirect.github.com/vitest-dev/vitest/issues/7116) [<samp>(de5ce)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/de5ce3d9)
    -   Update dependency pathe to v2  -  in [https://github.com/vitest-dev/vitest/issues/7181](https://redirect.github.com/vitest-dev/vitest/issues/7181) [<samp>(74dbe)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/74dbe03f)
-   **diff**:
    -   Truncate to avoid crash on diff large objects  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7133](https://redirect.github.com/vitest-dev/vitest/issues/7133) [<samp>(2a9d6)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2a9d67a2)
-   **junit**:
    -   Fix testsuites time to be sum of all testsuite items  -  by [@&#8203;saitonakamura](https://redirect.github.com/saitonakamura) in [https://github.com/vitest-dev/vitest/issues/6985](https://redirect.github.com/vitest-dev/vitest/issues/6985) [<samp>(ca37a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ca37a06a)
-   **pretty-format**:
    -   Support react 19  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6909](https://redirect.github.com/vitest-dev/vitest/issues/6909) [<samp>(bd29b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bd29bcc7)
-   **reporters**:
    -   Write buffered stdout/stderr on process exit  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6932](https://redirect.github.com/vitest-dev/vitest/issues/6932) [<samp>(80cde)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/80cde2a0)
    -   Rewrite `dot` reporter without `log-update`  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6943](https://redirect.github.com/vitest-dev/vitest/issues/6943) [<samp>(be969)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/be969cfb)
    -   Check `--hideSkippedTests` in base reporter  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/6988](https://redirect.github.com/vitest-dev/vitest/issues/6988) [<samp>(721a5)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/721a5b84)
    -   Show `retry` and `repeats` counts  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) and [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7004](https://redirect.github.com/vitest-dev/vitest/issues/7004) [<samp>(3496a)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/3496a015)
-   **runner**:
    -   Long synchronous tasks does not time out  -  by [@&#8203;ferdodo](https://redirect.github.com/ferdodo) and [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/2920](https://redirect.github.com/vitest-dev/vitest/issues/2920) and [https://github.com/vitest-dev/vitest/issues/6944](https://redirect.github.com/vitest-dev/vitest/issues/6944) [<samp>(2fb58)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/2fb585ae)
    -   Mark tests of `describe.todo` as `'todo'`  -  by [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7171](https://redirect.github.com/vitest-dev/vitest/issues/7171) [<samp>(1d458)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/1d458955)
-   **snapshot**:
    -   Fix "obsolete" message on snapshot update re-run  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7129](https://redirect.github.com/vitest-dev/vitest/issues/7129) [<samp>(c2beb)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/c2beb8ca)
    -   Preserve white space of `toMatchFileSnapshot`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7156](https://redirect.github.com/vitest-dev/vitest/issues/7156) [<samp>(a437b)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/a437b656)
    -   Fix obsoleteness check of `toMatchSnapshot("...")`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7126](https://redirect.github.com/vitest-dev/vitest/issues/7126) [<samp>(ac9ba)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/ac9ba151)
-   **typecheck**:
    -   Fix typecheck collect on Vite 6  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6972](https://redirect.github.com/vitest-dev/vitest/issues/6972) [<samp>(7b35d)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/7b35d13a)
    -   Use unique temp and tsbuildinfo file for each tsconfig file  -  by [@&#8203;masnormen](https://redirect.github.com/masnormen) in [https://github.com/vitest-dev/vitest/issues/7107](https://redirect.github.com/vitest-dev/vitest/issues/7107) and [https://github.com/vitest-dev/vitest/issues/7112](https://redirect.github.com/vitest-dev/vitest/issues/7112) [<samp>(61b30)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/61b30162)
    -   Fix error test case mapping for `@ts-expect-error`  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7125](https://redirect.github.com/vitest-dev/vitest/issues/7125) [<samp>(27d34)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/27d340aa)
-   **types**:
    -   Make parameters non-nullable for Playwright options  -  by [@&#8203;apple-yagi](https://redirect.github.com/apple-yagi) in [https://github.com/vitest-dev/vitest/issues/6989](https://redirect.github.com/vitest-dev/vitest/issues/6989) [<samp>(fe2a1)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/fe2a187f)
-   **ui**:
    -   Wrong module graph when generating html.meta.json.gz in browser mode  -  by [@&#8203;userquin](https://redirect.github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/7214](https://redirect.github.com/vitest-dev/vitest/issues/7214) [<samp>(dccdd)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/dccdd550)
    -   Add errors and draft state (\*) to the code editor  -  by [@&#8203;userquin](https://redirect.github.com/userquin) in [https://github.com/vitest-dev/vitest/issues/7044](https://redirect.github.com/vitest-dev/vitest/issues/7044) [<samp>(faca4)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/faca4de8)
-   **vite-node**:
    -   Fix error stack on Windows  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/6786](https://redirect.github.com/vitest-dev/vitest/issues/6786) [<samp>(bf7b3)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/bf7b36ac)
    -   Properly normalize file url import  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7087](https://redirect.github.com/vitest-dev/vitest/issues/7087) [<samp>(31675)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/31675e3b)
    -   Fix mandatory node prefix  -  by [@&#8203;hi-ogawa](https://redirect.github.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/7179](https://redirect.github.com/vitest-dev/vitest/issues/7179) [<samp>(b6284)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/b6284642)
-   **watch**:
    -   Don't indicate exit when no matching files  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) and [@&#8203;AriPerkkio](https://redirect.github.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/7246](https://redirect.github.com/vitest-dev/vitest/issues/7246) [<samp>(003c0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/003c0bef)
-   **workspace**:
    -   `extends: true` correctly inherits all root config properties  -  by [@&#8203;sheremet-va](https://redirect.github.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/7232](https://redirect.github.com/vitest-dev/vitest/issues/7232) [<samp>(798c0)</samp>](https://redirect.github.com/vitest-dev/vitest/commit/798c0da2)

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

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-18 16:27:22 +00:00
pengx17
f689c2f1fc feat(electron): move @blocksuite/affine to peer dependences for package speed on windows (#9756)
`@blocksuite/affine` is indirectly depended by electron package. It has around 120k files in total and will greatly slow down forge package build speed.
Move them to peer dependencies to mitigate the issue.
2025-01-18 10:16:22 +00:00
fundon
7436c139ab fix(core): improve doc title and icon display (#9755)
Closes: [AF-2132](https://linear.app/affine-design/issue/AF-2132/优化-emoji-title-和-icon-显示)
2025-01-18 17:29:15 +08:00
akumatus
d048ac6c91 feat(core): support chat panel chips and suggest current doc for embedding (#9747)
Support issue [BS-2347](https://linear.app/affine-design/issue/BS-2347).

## What Changed?
- Add chat panel components
  - `chat-panel-chips`
  - `chat-panel-doc-chip`
  - `chat-panel-file-chip`
  - `chat-panel-chip`
- Add `chips` and `docs` field in `ChatContextValue`
- Add `extractMarkdownFromDoc` function to extract markdown content of a doc
- Add e2e test

Click a candidate card to add it into AI chat context:
<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/4e6b11ef-f993-4e6a-9f40-b2826af1990c.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/4e6b11ef-f993-4e6a-9f40-b2826af1990c.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/4e6b11ef-f993-4e6a-9f40-b2826af1990c.mov">录屏2025-01-17 01.02.04.mov</video>
2025-01-18 08:35:19 +00:00
renovate
59611fa002 chore: bump up katex version to v0.16.21 [SECURITY] (#9771)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [katex](https://katex.org) ([source](https://redirect.github.com/KaTeX/KaTeX)) | [`0.16.20` -> `0.16.21`](https://renovatebot.com/diffs/npm/katex/0.16.20/0.16.21) | [![age](https://developer.mend.io/api/mc/badges/age/npm/katex/0.16.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/katex/0.16.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/katex/0.16.20/0.16.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/katex/0.16.20/0.16.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

### GitHub Vulnerability Alerts

#### [CVE-2025-23207](https://redirect.github.com/KaTeX/KaTeX/security/advisories/GHSA-cg87-wmx4-v546)

### Impact
KaTeX users who render untrusted mathematical expressions with `renderToString` could encounter malicious input using `\htmlData` that runs arbitrary JavaScript, or generate invalid HTML.

### Patches
Upgrade to KaTeX v0.16.21 to remove this vulnerability.

### Workarounds
- Avoid use of or turn off the `trust` option, or set it to forbid `\htmlData` commands.
- Forbid inputs containing the substring `"\\htmlData"`.
- Sanitize HTML output from KaTeX.

### Details
`\htmlData` did not validate its attribute name argument, allowing it to generate invalid or malicious HTML that runs scripts.

### For more information
If you have any questions or comments about this advisory:

- Open an issue or security advisory in the [KaTeX repository](https://redirect.github.com/KaTeX/KaTeX/)
- Email us at [katex-security@mit.edu](mailto:katex-security@mit.edu)

---

### Release Notes

<details>
<summary>KaTeX/KaTeX (katex)</summary>

### [`v0.16.21`](https://redirect.github.com/KaTeX/KaTeX/blob/HEAD/CHANGELOG.md#01621-2025-01-17)

[Compare Source](https://redirect.github.com/KaTeX/KaTeX/compare/v0.16.20...v0.16.21)

##### Bug Fixes

-   escape \htmlData attribute name ([57914ad](57914ad91e))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "" (UTC), 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-18 08:18:04 +00:00
zzj3720
95c0f59d96 refactor(editor): remove database-service (#9769)
close: BS-2426
2025-01-18 05:36:15 +00:00
L-Sun
ad814a0f4f feat(editor): add sidebar service (#9761) 2025-01-17 23:42:50 +08:00
Brooooooklyn
779029148e refactor(server): enhance the Logger usage (#9763) 2025-01-17 12:12:14 +00:00
L-Sun
d8727c2001 fix(editor): close embed edit modal on editor unmount (#9765)
Close [BS-2436](https://linear.app/affine-design/issue/BS-2436/should-close-embed-card-edit-modal-after-editor-unmount)

### What Changes:
- fix(editor): close embed edit modal on editor unmount
- test(editor): add test to embed edit modal when switching mode
2025-01-17 11:53:09 +00:00
donteatfriedrice
df910d7013 feat(editor): add affine inline footnote (#9745)
[BS-2369](https://linear.app/affine-design/issue/BS-2369/新增-affinetextattribute-footnote)  [BS-2370](https://linear.app/affine-design/issue/BS-2370/支持-footnote-自定义渲染行内内容) [BS-2372](https://linear.app/affine-design/issue/BS-2372/提供-footnoteconfigextension) [BS-2375](https://linear.app/affine-design/issue/BS-2375/footnote-自定义渲染-popup)

### Add new AffineTextAttribute: footnote

```
/**
 * FootNote is used to reference a doc, attachment or url.
 */
export interface AffineTextAttributes {
  ...
  footnote?: {
    label: string; // label of the footnote
    reference: {
      type: 'doc' | 'attachment' | 'url'; // type of reference
      docId?: string; // the id of the reference doc
      url?: string; //  the url of the reference network resource
      blobId?: string; // the id of the reference attachment
      fileName?: string; // the name of the reference attachment
      fileType?: string; // the type of the reference attachment
    }
  } | null
}
```

### FootNoteNodeConfigProvider Extension

#### FootNoteNodeConfig Type Definition

```
type FootNoteNodeRenderer = (
  footnote: FootNote,
  std: BlockStdScope
) => TemplateResult<1>;

type FootNotePopupRenderer = (
  footnote: FootNote,
  std: BlockStdScope,
  abortController: AbortController
) => TemplateResult<1>;

export interface FootNoteNodeConfig {
  customNodeRenderer?: FootNoteNodeRenderer;
  customPopupRenderer?: FootNotePopupRenderer;
  interactive?: boolean;
  hidePopup?: boolean;
}
```

#### FootNoteNodeConfigProvider Class

```
export class FootNoteNodeConfigProvider {
  private _customNodeRenderer?: FootNoteNodeRenderer;
  private _customPopupRenderer?: FootNotePopupRenderer;
  private _hidePopup: boolean;
  private _interactive: boolean;

  get customNodeRenderer() {
    return this._customNodeRenderer;
  }

  get customPopupRenderer() {
    return this._customPopupRenderer;
  }

  get doc() {
    return this.std.store;
  }

  get hidePopup() {
    return this._hidePopup;
  }

  get interactive() {
    return this._interactive;
  }

  constructor(
    config: FootNoteNodeConfig,
    readonly std: BlockStdScope
  ) {
    this._customNodeRenderer = config.customNodeRenderer;
    this._customPopupRenderer = config.customPopupRenderer;
    this._hidePopup = config.hidePopup ?? false;
    this._interactive = config.interactive ?? true;
  }

  setCustomNodeRenderer(renderer: FootNoteNodeRenderer) {
    this._customNodeRenderer = renderer;
  }

  setCustomPopupRenderer(renderer: FootNotePopupRenderer) {
    this._customPopupRenderer = renderer;
  }

  setHidePopup(hidePopup: boolean) {
    this._hidePopup = hidePopup;
  }

  setInteractive(interactive: boolean) {
    this._interactive = interactive;
  }
}
```

#### FootNoteNodeConfigProvider Extension

```
export const FootNoteNodeConfigIdentifier =
  createIdentifier<FootNoteNodeConfigProvider>('AffineFootNoteNodeConfig');

export function FootNoteNodeConfigExtension(
  config: FootNoteNodeConfig
): ExtensionType {
  return {
    setup: di => {
      di.addImpl(
        FootNoteNodeConfigIdentifier,
        provider =>
          new FootNoteNodeConfigProvider(config, provider.get(StdIdentifier))
      );
    },
  };
}
```

The footnote node can be extended by this extension.

### FootnoteInlineSpec

```
export const FootNoteInlineSpecExtension = InlineSpecExtension(
  'footnote',
  provider => {
    const std = provider.get(StdIdentifier);
    const config =
      provider.getOptional(FootNoteNodeConfigIdentifier) ?? undefined;
    return {
      name: 'footnote',
      schema: FootNoteSchema.optional().nullable().catch(undefined),
      match: delta => {
        return !!delta.attributes?.footnote;
      },
      renderer: ({ delta }) => {
        return html`<affine-footnote-node
          .delta=${delta}
          .std=${std}
          .config=${config}
        ></affine-footnote-node>`;
      },
      embed: true,
    };
  }
);
```
2025-01-17 09:38:43 +00:00
CatsJuice
7d1d167858 chore: bump theme (#9732) 2025-01-17 09:22:15 +00:00
zzj3720
aa21ac6d64 refactor(editor): move database selection into the corresponding view (#9752) 2025-01-17 09:03:13 +00:00
renovate
338ccb427b chore: bump up Node.js to v22 (#8625)
This PR contains the following updates:

| Package | Type | Update | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|---|---|
| [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) |  | major | `20.18.1` -> `22.13.0` | [![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v20.18.1/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v20.18.1/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | dependencies | major | [`^20.17.10` -> `^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.14/22.10.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.14/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.14/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | devDependencies | major | [`^20.17.10` -> `^22.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.14/22.10.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.14/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.14/22.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [node](https://nodejs.org) ([source](https://redirect.github.com/nodejs/node)) | engines | major | [`<21.0.0` -> `<23.0.0`](https://renovatebot.com/diffs/npm/node/v20.18.1/v22.13.0) | [![age](https://developer.mend.io/api/mc/badges/age/node-version/node/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/node-version/node/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/node-version/node/v20.18.1/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/node-version/node/v20.18.1/v22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [node](https://redirect.github.com/nodejs/node) | final | major | `20-bookworm-slim` -> `22-bookworm-slim` | [![age](https://developer.mend.io/api/mc/badges/age/docker/node/22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/docker/node/22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/docker/node/20.18.1/22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/docker/node/20.18.1/22.13.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>nodejs/node (node)</summary>

### [`v22.13.0`](https://redirect.github.com/nodejs/node/compare/v22.12.0...v22.13.0)

[Compare Source](https://redirect.github.com/nodejs/node/compare/v22.12.0...v22.13.0)

### [`v22.12.0`](https://redirect.github.com/nodejs/node/compare/v22.11.0...v22.12.0)

[Compare Source](https://redirect.github.com/nodejs/node/compare/v22.11.0...v22.12.0)

### [`v22.11.0`](https://redirect.github.com/nodejs/node/compare/v22.10.0...v22.11.0)

[Compare Source](https://redirect.github.com/nodejs/node/compare/v22.10.0...v22.11.0)

### [`v22.10.0`](https://redirect.github.com/nodejs/node/releases/tag/v22.10.0): 2024-10-16, Version 22.10.0 (Current), @&#8203;aduh95

[Compare Source](https://redirect.github.com/nodejs/node/compare/v22.9.0...v22.10.0)

##### Notable Changes

##### New `"module-sync"` exports condition

This release introduces a `"module-sync"` exports condition that's enabled when
`require(esm)` is enabled, so packages can supply a synchronous ES module to the
Node.js module loader, no matter if it's being required or imported. This is
similar to the `"module"` condition that bundlers have been using to support
`require(esm)` in Node.js, and allows dual-package authors to opt into ESM-first
only on newer versions of Node.js that supports `require(esm)` to avoid the
dual-package hazard.

```json
{
  "type": "module",
  "exports": {
    "node": {
      // On new version of Node.js, both require() and import get
      // the ESM version
      "module-sync": "./index.js",
      // On older version of Node.js, where "module-sync" and require(esm) are
      // not supported, use the CJS version to avoid dual-package hazard.
      // When package authors think it's time to drop support for older versions of
      // Node.js, they can remove the exports conditions and just use "main": "index.js".
      "default": "./dist/index.cjs"
    },
    // On any other environment, use the ESM version.
    "default": "./index.js"
  }
}
```

Or if the package is only meant to be run on Node.js and wants to fallback to
CJS on older versions that don't have `require(esm)`:

```json
{
  "type": "module",
  "exports": {
    // On new version of Node.js, both require() and import get the ESM version
    "module-sync": "./index.js",
    // On older version of Node.js, where "module-sync" and require(esm) are
    // not supported, use the CJS version to avoid dual-package hazard.
    // When package authors think it's time to drop support for older versions of
    // Node.js, they can remove the exports conditions and just use "main": "index.js".
    "default": "./dist/index.cjs"
  }
}
```

**For package authors**: this only serves as a feature-detection mechanism for
packages that wish to support both CJS and ESM users during the period when some
active Node.js LTS versions support  `require(esm)` while some older ones don't.
When all active Node.js LTS lines support `require(esm)`, packages can simplify
their distributions by bumping the major version, dropping their CJS exports,
and removing the `module-sync` exports condition (with only `main` or `default`
targetting the ESM exports). If the package needs to support both bundlers and
being run unbundled on Node.js during the transition period, use both
`module-sync` and `module` and point them to the same ESM file. If the package
already doesn't want to support older versions of Node.js that doesn't support
`require(esm)`, don't use this export condition.

**For bundlers/tools**: they should avoid implementing this stop-gap condition.
Most existing bundlers implement the de-facto bundler standard
[`module`](https://webpack.js.org/guides/package-exports/#providing-commonjs-and-esm-version-stateless)
exports condition, and that should be enough to support users who want to bundle
ESM from CJS consumers. Users who want both bundlers and Node.js to recognize
the ESM exports can use both `module`/`module-sync` conditions during the
transition period, and can drop `module-sync`+`module` when they no longer need
to support older versions of Node.js. If tools do want to support this
condition, it's recommended to make the resolution rules in the graph pointed by
this condition match the Node.js native ESM rules to avoid divergence.

We ended up implementing a condition with a different name instead of reusing
`"module"`, because existing code in the ecosystem using the `"module"`
condition sometimes also expect the module resolution for these ESM files to
work in CJS style, which is supported by bundlers, but the native Node.js loader
has intentionally made ESM resolution different from CJS resolution (e.g.
forbidding `import './noext'` or `import './directory'`), so it would be
breaking to implement a `"module"` condition without implementing the forbidden
ESM resolution rules. For now, this just implements a new condition as
semver-minor so it can be backported to older LTS.

Contributed by Joyee Cheung in [#&#8203;54648](https://redirect.github.com/nodejs/node/pull/54648).

##### `node --run` is now stable

This CLI flag runs a specified command from a `package.json`'s `"scripts"` object.

For the following `package.json`:

```json
{
  "scripts": {
    "test": "node --test-reporter junit --test ./test"
  }
}
```

You can run `node --run test` and that would start the test suite.

Contributed by Yagiz Nizipli in [#&#8203;53763](https://redirect.github.com/nodejs/node/pull/53763).

##### Other notable changes

-   \[[`f0b441230a`](https://redirect.github.com/nodejs/node/commit/f0b441230a)] - **(SEMVER-MINOR)** **crypto**: add `KeyObject.prototype.toCryptoKey` (Filip Skokan) [#&#8203;55262](https://redirect.github.com/nodejs/node/pull/55262)
-   \[[`349d2ed07b`](https://redirect.github.com/nodejs/node/commit/349d2ed07b)] - **(SEMVER-MINOR)** **crypto**: add Date fields for `validTo` and `validFrom` (Andrew Moon) [#&#8203;54159](https://redirect.github.com/nodejs/node/pull/54159)
-   \[[`bebc95ed58`](https://redirect.github.com/nodejs/node/commit/bebc95ed58)] - **doc**: add abmusse to collaborators (Abdirahim Musse) [#&#8203;55086](https://redirect.github.com/nodejs/node/pull/55086)
-   \[[`914db60159`](https://redirect.github.com/nodejs/node/commit/914db60159)] - **(SEMVER-MINOR)** **http2**: expose `nghttp2_option_set_stream_reset_rate_limit` as an option (Maël Nison) [#&#8203;54875](https://redirect.github.com/nodejs/node/pull/54875)
-   \[[`f7c3b03759`](https://redirect.github.com/nodejs/node/commit/f7c3b03759)] - **(SEMVER-MINOR)** **lib**: propagate aborted state to dependent signals before firing events (jazelly) [#&#8203;54826](https://redirect.github.com/nodejs/node/pull/54826)
-   \[[`32261fc98a`](https://redirect.github.com/nodejs/node/commit/32261fc98a)] - **(SEMVER-MINOR)** **module**: support loading entrypoint as url (RedYetiDev) [#&#8203;54933](https://redirect.github.com/nodejs/node/pull/54933)
-   \[[`06957ff355`](https://redirect.github.com/nodejs/node/commit/06957ff355)] - **(SEMVER-MINOR)** **module**: implement `flushCompileCache()` (Joyee Cheung) [#&#8203;54971](https://redirect.github.com/nodejs/node/pull/54971)
-   \[[`2dcf70c347`](https://redirect.github.com/nodejs/node/commit/2dcf70c347)] - **(SEMVER-MINOR)** **module**: throw when invalid argument is passed to `enableCompileCache()` (Joyee Cheung) [#&#8203;54971](https://redirect.github.com/nodejs/node/pull/54971)
-   \[[`f9b19d7c44`](https://redirect.github.com/nodejs/node/commit/f9b19d7c44)] - **(SEMVER-MINOR)** **module**: write compile cache to temporary file and then rename it (Joyee Cheung) [#&#8203;54971](https://redirect.github.com/nodejs/node/pull/54971)
-   \[[`e95163b170`](https://redirect.github.com/nodejs/node/commit/e95163b170)] - **(SEMVER-MINOR)** **process**: add `process.features.require_module` (Joyee Cheung) [#&#8203;55241](https://redirect.github.com/nodejs/node/pull/55241)
-   \[[`4050f68e5d`](https://redirect.github.com/nodejs/node/commit/4050f68e5d)] - **(SEMVER-MINOR)** **process**: add `process.features.typescript` (Aviv Keller) [#&#8203;54295](https://redirect.github.com/nodejs/node/pull/54295)
-   \[[`86f7cb802d`](https://redirect.github.com/nodejs/node/commit/86f7cb802d)] - **(SEMVER-MINOR)** **test_runner**: support custom arguments in `run()` (Aviv Keller) [#&#8203;55126](https://redirect.github.com/nodejs/node/pull/55126)
-   \[[`b62f2f8259`](https://redirect.github.com/nodejs/node/commit/b62f2f8259)] - **(SEMVER-MINOR)** **test_runner**: add `'test:summary'` event (Colin Ihrig) [#&#8203;54851](https://redirect.github.com/nodejs/node/pull/54851)
-   \[[`d7c708aec5`](https://redirect.github.com/nodejs/node/commit/d7c708aec5)] - **(SEMVER-MINOR)** **test_runner**: add support for coverage via `run()` (Chemi Atlow) [#&#8203;53937](https://redirect.github.com/nodejs/node/pull/53937)
-   \[[`5fda4a1498`](https://redirect.github.com/nodejs/node/commit/5fda4a1498)] - **(SEMVER-MINOR)** **worker**: add `markAsUncloneable` api (Jason Zhang) [#&#8203;55234](https://redirect.github.com/nodejs/node/pull/55234)

##### Commits

-   \[[`e3619510c8`](https://redirect.github.com/nodejs/node/commit/e3619510c8)] - **assert**: show the diff when deep comparing data with a custom message (Giovanni) [#&#8203;54759](https://redirect.github.com/nodejs/node/pull/54759)
-   \[[`39c7a9e70c`](https://redirect.github.com/nodejs/node/commit/39c7a9e70c)] - **benchmark**: adjust config for deepEqual object (Rafael Gonzaga) [#&#8203;55254](https://redirect.github.com/nodejs/node/pull/55254)
-   \[[`263526d5d0`](https://redirect.github.com/nodejs/node/commit/263526d5d0)] - **benchmark**: rewrite detect-esm-syntax benchmark (Joyee Cheung) [#&#8203;55238](https://redirect.github.com/nodejs/node/pull/55238)
-   \[[`cd0795fb00`](https://redirect.github.com/nodejs/node/commit/cd0795fb00)] - **benchmark**: add no-warnings to process.has bench (Rafael Gonzaga) [#&#8203;55159](https://redirect.github.com/nodejs/node/pull/55159)
-   \[[`4352d9cc31`](https://redirect.github.com/nodejs/node/commit/4352d9cc31)] - **benchmark**: create benchmark for typescript (Marco Ippolito) [#&#8203;54904](https://redirect.github.com/nodejs/node/pull/54904)
-   \[[`452bc9b48d`](https://redirect.github.com/nodejs/node/commit/452bc9b48d)] - **benchmark**: add webstorage benchmark (jakecastelli) [#&#8203;55040](https://redirect.github.com/nodejs/node/pull/55040)
-   \[[`d4d5ba3a9b`](https://redirect.github.com/nodejs/node/commit/d4d5ba3a9b)] - **benchmark**: include ascii to fs/readfile (Rafael Gonzaga) [#&#8203;54988](https://redirect.github.com/nodejs/node/pull/54988)
-   \[[`23b628db65`](https://redirect.github.com/nodejs/node/commit/23b628db65)] - **benchmark**: add dotenv benchmark (Aviv Keller) [#&#8203;54278](https://redirect.github.com/nodejs/node/pull/54278)
-   \[[`b1ebb0d8ca`](https://redirect.github.com/nodejs/node/commit/b1ebb0d8ca)] - **buffer**: coerce extrema to int in `blob.slice` (Antoine du Hamel) [#&#8203;55141](https://redirect.github.com/nodejs/node/pull/55141)
-   \[[`3a6e72483f`](https://redirect.github.com/nodejs/node/commit/3a6e72483f)] - **buffer**: extract Blob's .arrayBuffer() & webidl changes (Matthew Aitken) [#&#8203;53372](https://redirect.github.com/nodejs/node/pull/53372)
-   \[[`d109f1c4ff`](https://redirect.github.com/nodejs/node/commit/d109f1c4ff)] - **buffer**: use simdutf convert_latin1\_to_utf8\_safe (Robert Nagy) [#&#8203;54798](https://redirect.github.com/nodejs/node/pull/54798)
-   \[[`77f8a3f9c2`](https://redirect.github.com/nodejs/node/commit/77f8a3f9c2)] - **build**: fix notify-on-review-wanted action (Rafael Gonzaga) [#&#8203;55304](https://redirect.github.com/nodejs/node/pull/55304)
-   \[[`0d93b1ed0c`](https://redirect.github.com/nodejs/node/commit/0d93b1ed0c)] - **build**: fix not valid json in coverage (jakecastelli) [#&#8203;55179](https://redirect.github.com/nodejs/node/pull/55179)
-   \[[`f89664d890`](https://redirect.github.com/nodejs/node/commit/f89664d890)] - **build**: include `.nycrc` in coverage workflows (Wuli Zuo) [#&#8203;55210](https://redirect.github.com/nodejs/node/pull/55210)
-   \[[`d7a9df6417`](https://redirect.github.com/nodejs/node/commit/d7a9df6417)] - **build**: notify via slack when review-wanted (Rafael Gonzaga) [#&#8203;55102](https://redirect.github.com/nodejs/node/pull/55102)
-   \[[`68822cc861`](https://redirect.github.com/nodejs/node/commit/68822cc861)] - **build**: add more information to Makefile help (Aviv Keller) [#&#8203;53381](https://redirect.github.com/nodejs/node/pull/53381)
-   \[[`f3ca9c669b`](https://redirect.github.com/nodejs/node/commit/f3ca9c669b)] - **build**: update ruff and add `lint-py-fix` (Aviv Keller) [#&#8203;54410](https://redirect.github.com/nodejs/node/pull/54410)
-   \[[`d99ae548d7`](https://redirect.github.com/nodejs/node/commit/d99ae548d7)] - **build**: remove -v flag to reduce noise (iwuliz) [#&#8203;55025](https://redirect.github.com/nodejs/node/pull/55025)
-   \[[`d3dfbe7ff9`](https://redirect.github.com/nodejs/node/commit/d3dfbe7ff9)] - **build**: display free disk space after build in the test-macOS workflow (iwuliz) [#&#8203;55025](https://redirect.github.com/nodejs/node/pull/55025)
-   \[[`3077f6a5b7`](https://redirect.github.com/nodejs/node/commit/3077f6a5b7)] - **build**: support up to python 3.13 in android-configure (Aviv Keller) [#&#8203;54529](https://redirect.github.com/nodejs/node/pull/54529)
-   \[[`a929c71281`](https://redirect.github.com/nodejs/node/commit/a929c71281)] - **build**: add the option to generate compile_commands.json in vcbuild.bat (Segev Finer) [#&#8203;52279](https://redirect.github.com/nodejs/node/pull/52279)
-   \[[`a81f368b99`](https://redirect.github.com/nodejs/node/commit/a81f368b99)] - **build**: fix eslint makefile target (Aviv Keller) [#&#8203;54999](https://redirect.github.com/nodejs/node/pull/54999)
-   \[[`c8b7a645ae`](https://redirect.github.com/nodejs/node/commit/c8b7a645ae)] - ***Revert*** "**build**: upgrade clang-format to v18" (Chengzhong Wu) [#&#8203;54994](https://redirect.github.com/nodejs/node/pull/54994)
-   \[[`7861ca5dc3`](https://redirect.github.com/nodejs/node/commit/7861ca5dc3)] - **build**: print `Running XYZ linter...` for py and yml (Aviv Keller) [#&#8203;54386](https://redirect.github.com/nodejs/node/pull/54386)
-   \[[`aaea3944e5`](https://redirect.github.com/nodejs/node/commit/aaea3944e5)] - **build,win**: add winget config to set up env (Hüseyin Açacak) [#&#8203;54729](https://redirect.github.com/nodejs/node/pull/54729)
-   \[[`30d47220bb`](https://redirect.github.com/nodejs/node/commit/30d47220bb)] - **build,win**: float VS 17.11 compilation patch (Stefan Stojanovic) [#&#8203;54970](https://redirect.github.com/nodejs/node/pull/54970)
-   \[[`048a1ab350`](https://redirect.github.com/nodejs/node/commit/048a1ab350)] - **cli**: ensure --run has proper pwd (Yagiz Nizipli) [#&#8203;54949](https://redirect.github.com/nodejs/node/pull/54949)
-   \[[`a97841ee10`](https://redirect.github.com/nodejs/node/commit/a97841ee10)] - **cli**: fix spacing for port range error (Aviv Keller) [#&#8203;54495](https://redirect.github.com/nodejs/node/pull/54495)
-   \[[`1dcc5eedff`](https://redirect.github.com/nodejs/node/commit/1dcc5eedff)] - ***Revert*** "**console**: colorize console error and warn" (Aviv Keller) [#&#8203;54677](https://redirect.github.com/nodejs/node/pull/54677)
-   \[[`f0b441230a`](https://redirect.github.com/nodejs/node/commit/f0b441230a)] - **(SEMVER-MINOR)** **crypto**: add KeyObject.prototype.toCryptoKey (Filip Skokan) [#&#8203;55262](https://redirect.github.com/nodejs/node/pull/55262)
-   \[[`d3f8c35320`](https://redirect.github.com/nodejs/node/commit/d3f8c35320)] - **crypto**: ensure invalid SubtleCrypto JWK data import results in DataError (Filip Skokan) [#&#8203;55041](https://redirect.github.com/nodejs/node/pull/55041)
-   \[[`349d2ed07b`](https://redirect.github.com/nodejs/node/commit/349d2ed07b)] - **(SEMVER-MINOR)** **crypto**: add Date fields for `validTo` and `validFrom` (Andrew Moon) [#&#8203;54159](https://redirect.github.com/nodejs/node/pull/54159)
-   \[[`34ca36a397`](https://redirect.github.com/nodejs/node/commit/34ca36a397)] - **deps**: update undici to 6.20.0 (Node.js GitHub Bot) [#&#8203;55329](https://redirect.github.com/nodejs/node/pull/55329)
-   \[[`f703652e84`](https://redirect.github.com/nodejs/node/commit/f703652e84)] - **deps**: upgrade npm to 10.9.0 (npm team) [#&#8203;55255](https://redirect.github.com/nodejs/node/pull/55255)
-   \[[`b533a51856`](https://redirect.github.com/nodejs/node/commit/b533a51856)] - **deps**: V8: backport [`0d5d6e7`](https://redirect.github.com/nodejs/node/commit/0d5d6e71bbb0) (Yagiz Nizipli) [#&#8203;55115](https://redirect.github.com/nodejs/node/pull/55115)
-   \[[`2f65b3fd07`](https://redirect.github.com/nodejs/node/commit/2f65b3fd07)] - **deps**: V8: partially cherry-pick [`8953e49`](https://redirect.github.com/nodejs/node/commit/8953e49478) (Ben Noordhuis) [#&#8203;55274](https://redirect.github.com/nodejs/node/pull/55274)
-   \[[`bb9f77d53a`](https://redirect.github.com/nodejs/node/commit/bb9f77d53a)] - **deps**: update archs files for openssl-3.0.15+quic1 (Node.js GitHub Bot) [#&#8203;55184](https://redirect.github.com/nodejs/node/pull/55184)
-   \[[`63d51c82fe`](https://redirect.github.com/nodejs/node/commit/63d51c82fe)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.15+quic1 (Node.js GitHub Bot) [#&#8203;55184](https://redirect.github.com/nodejs/node/pull/55184)
-   \[[`29e6484f3c`](https://redirect.github.com/nodejs/node/commit/29e6484f3c)] - **deps**: update archs files for openssl-3.0.14+quic1 (Node.js GitHub Bot) [#&#8203;54336](https://redirect.github.com/nodejs/node/pull/54336)
-   \[[`283927ec88`](https://redirect.github.com/nodejs/node/commit/283927ec88)] - **deps**: upgrade openssl sources to quictls/openssl-3.0.14+quic1 (Node.js GitHub Bot) [#&#8203;54336](https://redirect.github.com/nodejs/node/pull/54336)
-   \[[`b0636a1e88`](https://redirect.github.com/nodejs/node/commit/b0636a1e88)] - **deps**: update timezone to 2024b (Node.js GitHub Bot) [#&#8203;55056](https://redirect.github.com/nodejs/node/pull/55056)
-   \[[`173464d76f`](https://redirect.github.com/nodejs/node/commit/173464d76f)] - **deps**: update acorn-walk to 8.3.4 (Node.js GitHub Bot) [#&#8203;54950](https://redirect.github.com/nodejs/node/pull/54950)
-   \[[`0d4536543b`](https://redirect.github.com/nodejs/node/commit/0d4536543b)] - **deps**: update corepack to 0.29.4 (Node.js GitHub Bot) [#&#8203;54845](https://redirect.github.com/nodejs/node/pull/54845)
-   \[[`1de5512383`](https://redirect.github.com/nodejs/node/commit/1de5512383)] - **deps**: V8: cherry-pick [`217457d`](https://redirect.github.com/nodejs/node/commit/217457d0a560) (Michaël Zasso) [#&#8203;54883](https://redirect.github.com/nodejs/node/pull/54883)
-   \[[`1921d7a37c`](https://redirect.github.com/nodejs/node/commit/1921d7a37c)] - **doc**: add release key for aduh95 (Antoine du Hamel) [#&#8203;55349](https://redirect.github.com/nodejs/node/pull/55349)
-   \[[`d8e42be1b2`](https://redirect.github.com/nodejs/node/commit/d8e42be1b2)] - **doc**: move `ERR_INVALID_PERFORMANCE_MARK` to legacy errors (Antoine du Hamel) [#&#8203;55247](https://redirect.github.com/nodejs/node/pull/55247)
-   \[[`5ea8aa183c`](https://redirect.github.com/nodejs/node/commit/5ea8aa183c)] - **doc**: fix Markdown linter (Antoine du Hamel) [#&#8203;55344](https://redirect.github.com/nodejs/node/pull/55344)
-   \[[`873588888d`](https://redirect.github.com/nodejs/node/commit/873588888d)] - ***Revert*** "**doc**: update test context.assert" (Antoine du Hamel) [#&#8203;55344](https://redirect.github.com/nodejs/node/pull/55344)
-   \[[`707e7cc702`](https://redirect.github.com/nodejs/node/commit/707e7cc702)] - **doc**: add pmarchini to collaborators (Pietro Marchini) [#&#8203;55331](https://redirect.github.com/nodejs/node/pull/55331)
-   \[[`b03272b9a1`](https://redirect.github.com/nodejs/node/commit/b03272b9a1)] - **doc**: fix `events.once()` example using `AbortSignal` (Ivo Janssen) [#&#8203;55144](https://redirect.github.com/nodejs/node/pull/55144)
-   \[[`85b765953d`](https://redirect.github.com/nodejs/node/commit/85b765953d)] - **doc**: add onboarding details for ambassador program (Marco Ippolito) [#&#8203;55284](https://redirect.github.com/nodejs/node/pull/55284)
-   \[[`5d41b8a8b0`](https://redirect.github.com/nodejs/node/commit/5d41b8a8b0)] - **doc**: update `require(ESM)` history and stability status (Antoine du Hamel) [#&#8203;55199](https://redirect.github.com/nodejs/node/pull/55199)
-   \[[`195df659e9`](https://redirect.github.com/nodejs/node/commit/195df659e9)] - **doc**: move `ERR_NAPI_TSFN_START/STOP_IDLE_LOOP` to legacy errors (Antoine du Hamel) [#&#8203;55248](https://redirect.github.com/nodejs/node/pull/55248)
-   \[[`8eae0d3f3c`](https://redirect.github.com/nodejs/node/commit/8eae0d3f3c)] - **doc**: fix initial default value of autoSelectFamily (Ihor Rohovets) [#&#8203;55245](https://redirect.github.com/nodejs/node/pull/55245)
-   \[[`297cb0da5a`](https://redirect.github.com/nodejs/node/commit/297cb0da5a)] - **doc**: tweak onboarding instructions (Michael Dawson) [#&#8203;55212](https://redirect.github.com/nodejs/node/pull/55212)
-   \[[`7ddbfe8c2b`](https://redirect.github.com/nodejs/node/commit/7ddbfe8c2b)] - **doc**: update test context.assert (Pietro Marchini) [#&#8203;55186](https://redirect.github.com/nodejs/node/pull/55186)
-   \[[`8a57550d20`](https://redirect.github.com/nodejs/node/commit/8a57550d20)] - **doc**: fix unordered error anchors (Antoine du Hamel) [#&#8203;55242](https://redirect.github.com/nodejs/node/pull/55242)
-   \[[`286ea4ed3d`](https://redirect.github.com/nodejs/node/commit/286ea4ed3d)] - **doc**: mention addons to experimental permission (Rafael Gonzaga) [#&#8203;55166](https://redirect.github.com/nodejs/node/pull/55166)
-   \[[`7c9ceabf38`](https://redirect.github.com/nodejs/node/commit/7c9ceabf38)] - **doc**: use correct dash in stability status (Antoine du Hamel) [#&#8203;55200](https://redirect.github.com/nodejs/node/pull/55200)
-   \[[`781ffd8ba1`](https://redirect.github.com/nodejs/node/commit/781ffd8ba1)] - **doc**: fix link in `test/README.md` (Livia Medeiros) [#&#8203;55165](https://redirect.github.com/nodejs/node/pull/55165)
-   \[[`61b9ed3bf2`](https://redirect.github.com/nodejs/node/commit/61b9ed3bf2)] - **doc**: add esm examples to node:net (Alfredo González) [#&#8203;55134](https://redirect.github.com/nodejs/node/pull/55134)
-   \[[`bb3499038d`](https://redirect.github.com/nodejs/node/commit/bb3499038d)] - **doc**: remove outdated https import reference (Edigleysson Silva (Edy)) [#&#8203;55111](https://redirect.github.com/nodejs/node/pull/55111)
-   \[[`6cc49518c7`](https://redirect.github.com/nodejs/node/commit/6cc49518c7)] - **doc**: move the YAML changes element (sendoru) [#&#8203;55112](https://redirect.github.com/nodejs/node/pull/55112)
-   \[[`b12b4a23e4`](https://redirect.github.com/nodejs/node/commit/b12b4a23e4)] - **doc**: remove random horizontal separators in `process.md` (Antoine du Hamel) [#&#8203;55149](https://redirect.github.com/nodejs/node/pull/55149)
-   \[[`7186ede388`](https://redirect.github.com/nodejs/node/commit/7186ede388)] - **doc**: put --env-file-if-exists=config right under --env-file=config (Edigleysson Silva (Edy)) [#&#8203;55131](https://redirect.github.com/nodejs/node/pull/55131)
-   \[[`8ad0dfff10`](https://redirect.github.com/nodejs/node/commit/8ad0dfff10)] - **doc**: fix the require resolve algorithm in `modules.md` (chirsz) [#&#8203;55117](https://redirect.github.com/nodejs/node/pull/55117)
-   \[[`fd40f0873f`](https://redirect.github.com/nodejs/node/commit/fd40f0873f)] - **doc**: update style guide (Aviv Keller) [#&#8203;53223](https://redirect.github.com/nodejs/node/pull/53223)
-   \[[`12c9d9780f`](https://redirect.github.com/nodejs/node/commit/12c9d9780f)] - **doc**: add missing `:` to `run()`'s `globPatterns` (Aviv Keller) [#&#8203;55135](https://redirect.github.com/nodejs/node/pull/55135)
-   \[[`73b05cfb04`](https://redirect.github.com/nodejs/node/commit/73b05cfb04)] - **doc**: correct `cleanup` option in stream.(promises.)finished (René) [#&#8203;55043](https://redirect.github.com/nodejs/node/pull/55043)
-   \[[`bebc95ed58`](https://redirect.github.com/nodejs/node/commit/bebc95ed58)] - **doc**: add abmusse to collaborators (Abdirahim Musse) [#&#8203;55086](https://redirect.github.com/nodejs/node/pull/55086)
-   \[[`a97c80c6ae`](https://redirect.github.com/nodejs/node/commit/a97c80c6ae)] - **doc**: add note about `--expose-internals` (Aviv Keller) [#&#8203;52861](https://redirect.github.com/nodejs/node/pull/52861)
-   \[[`89aeae63bd`](https://redirect.github.com/nodejs/node/commit/89aeae63bd)] - **doc**: remove `parseREPLKeyword` from REPL documentation (Aviv Keller) [#&#8203;54749](https://redirect.github.com/nodejs/node/pull/54749)
-   \[[`b3e0490b8b`](https://redirect.github.com/nodejs/node/commit/b3e0490b8b)] - **doc**: add missing EventSource docs to globals (Matthew Aitken) [#&#8203;55022](https://redirect.github.com/nodejs/node/pull/55022)
-   \[[`516c775fa5`](https://redirect.github.com/nodejs/node/commit/516c775fa5)] - **doc**: cover --experimental-test-module-mocks flag (Jonathan Sharpe) [#&#8203;55021](https://redirect.github.com/nodejs/node/pull/55021)
-   \[[`4244f1a269`](https://redirect.github.com/nodejs/node/commit/4244f1a269)] - **doc**: add more details for localStorage and sessionStorage (Batuhan Tomo) [#&#8203;53881](https://redirect.github.com/nodejs/node/pull/53881)
-   \[[`39a728c2e3`](https://redirect.github.com/nodejs/node/commit/39a728c2e3)] - **doc**: change backporting guide with updated info (Aviv Keller) [#&#8203;53746](https://redirect.github.com/nodejs/node/pull/53746)
-   \[[`3a5fe95ad7`](https://redirect.github.com/nodejs/node/commit/3a5fe95ad7)] - **doc**: add missing definitions to `internal-api.md` (Aviv Keller) [#&#8203;53303](https://redirect.github.com/nodejs/node/pull/53303)
-   \[[`f2d74a26a3`](https://redirect.github.com/nodejs/node/commit/f2d74a26a3)] - **doc**: fix history of `process.features` (Antoine du Hamel) [#&#8203;54982](https://redirect.github.com/nodejs/node/pull/54982)
-   \[[`29866ca438`](https://redirect.github.com/nodejs/node/commit/29866ca438)] - **doc**: fix typo callsite.lineNumber (Rafael Gonzaga) [#&#8203;54969](https://redirect.github.com/nodejs/node/pull/54969)
-   \[[`c1d73abd29`](https://redirect.github.com/nodejs/node/commit/c1d73abd29)] - **doc**: update documentation for externalizing deps (Michael Dawson) [#&#8203;54792](https://redirect.github.com/nodejs/node/pull/54792)
-   \[[`eca9668231`](https://redirect.github.com/nodejs/node/commit/eca9668231)] - **doc**: add documentation for process.features (Marco Ippolito) [#&#8203;54897](https://redirect.github.com/nodejs/node/pull/54897)
-   \[[`0fb446e207`](https://redirect.github.com/nodejs/node/commit/0fb446e207)] - **esm**: do not interpret `"main"` as a URL (Antoine du Hamel) [#&#8203;55003](https://redirect.github.com/nodejs/node/pull/55003)
-   \[[`be2fe4b249`](https://redirect.github.com/nodejs/node/commit/be2fe4b249)] - **events**: allow null/undefined eventInitDict (Matthew Aitken) [#&#8203;54643](https://redirect.github.com/nodejs/node/pull/54643)
-   \[[`cb47e169a0`](https://redirect.github.com/nodejs/node/commit/cb47e169a0)] - **events**: return `currentTarget` when dispatching (Matthew Aitken) [#&#8203;54642](https://redirect.github.com/nodejs/node/pull/54642)
-   \[[`dbfae3fe14`](https://redirect.github.com/nodejs/node/commit/dbfae3fe14)] - **fs**: acknowledge `signal` option in `filehandle.createReadStream()` (Livia Medeiros) [#&#8203;55148](https://redirect.github.com/nodejs/node/pull/55148)
-   \[[`1c94725c07`](https://redirect.github.com/nodejs/node/commit/1c94725c07)] - **fs**: check subdir correctly in cpSync (Jason Zhang) [#&#8203;55033](https://redirect.github.com/nodejs/node/pull/55033)
-   \[[`79ffefab2a`](https://redirect.github.com/nodejs/node/commit/79ffefab2a)] - **fs**: convert to u8 string for filesystem path (Jason Zhang) [#&#8203;54653](https://redirect.github.com/nodejs/node/pull/54653)
-   \[[`914db60159`](https://redirect.github.com/nodejs/node/commit/914db60159)] - **(SEMVER-MINOR)** **http2**: expose nghttp2\_option_set_stream_reset_rate_limit as an option (Maël Nison) [#&#8203;54875](https://redirect.github.com/nodejs/node/pull/54875)
-   \[[`08b5e6c794`](https://redirect.github.com/nodejs/node/commit/08b5e6c794)] - **lib**: fix module print timing when specifier includes `"` (Antoine du Hamel) [#&#8203;55150](https://redirect.github.com/nodejs/node/pull/55150)
-   \[[`bf7d7aef4b`](https://redirect.github.com/nodejs/node/commit/bf7d7aef4b)] - **lib**: fix typos (Nathan Baulch) [#&#8203;55065](https://redirect.github.com/nodejs/node/pull/55065)
-   \[[`d803355d92`](https://redirect.github.com/nodejs/node/commit/d803355d92)] - **lib**: prefer optional chaining (Aviv Keller) [#&#8203;55045](https://redirect.github.com/nodejs/node/pull/55045)
-   \[[`d4873bcd6d`](https://redirect.github.com/nodejs/node/commit/d4873bcd6d)] - **lib**: remove lib/internal/idna.js (Yagiz Nizipli) [#&#8203;55050](https://redirect.github.com/nodejs/node/pull/55050)
-   \[[`f7c3b03759`](https://redirect.github.com/nodejs/node/commit/f7c3b03759)] - **(SEMVER-MINOR)** **lib**: propagate aborted state to dependent signals before firing events (jazelly) [#&#8203;54826](https://redirect.github.com/nodejs/node/pull/54826)
-   \[[`397ae418db`](https://redirect.github.com/nodejs/node/commit/397ae418db)] - **lib**: the REPL should survive deletion of Array.prototype methods (Jordan Harband) [#&#8203;31457](https://redirect.github.com/nodejs/node/pull/31457)
-   \[[`566179c9ec`](https://redirect.github.com/nodejs/node/commit/566179c9ec)] - **lib, tools**: remove duplicate requires (Aviv Keller) [#&#8203;54987](https://redirect.github.com/nodejs/node/pull/54987)
-   \[[`c9a1bbbef2`](https://redirect.github.com/nodejs/node/commit/c9a1bbbef2)] - **meta**: move one or more collaborators to emeritus (Node.js GitHub Bot) [#&#8203;55300](https://redirect.github.com/nodejs/node/pull/55300)
-   \[[`d7b73bbd1d`](https://redirect.github.com/nodejs/node/commit/d7b73bbd1d)] - **meta**: bump mozilla-actions/sccache-action from 0.0.5 to 0.0.6 (dependabot\[bot]) [#&#8203;55225](https://redirect.github.com/nodejs/node/pull/55225)
-   \[[`0f4269faa9`](https://redirect.github.com/nodejs/node/commit/0f4269faa9)] - **meta**: bump actions/checkout from 4.1.7 to 4.2.0 (dependabot\[bot]) [#&#8203;55224](https://redirect.github.com/nodejs/node/pull/55224)
-   \[[`33be1990d8`](https://redirect.github.com/nodejs/node/commit/33be1990d8)] - **meta**: bump actions/setup-node from 4.0.3 to 4.0.4 (dependabot\[bot]) [#&#8203;55223](https://redirect.github.com/nodejs/node/pull/55223)
-   \[[`f5b4ae5bf8`](https://redirect.github.com/nodejs/node/commit/f5b4ae5bf8)] - **meta**: bump peter-evans/create-pull-request from 7.0.1 to 7.0.5 (dependabot\[bot]) [#&#8203;55219](https://redirect.github.com/nodejs/node/pull/55219)
-   \[[`1985d9016e`](https://redirect.github.com/nodejs/node/commit/1985d9016e)] - **meta**: add mailmap entry for abmusse (Abdirahim Musse) [#&#8203;55182](https://redirect.github.com/nodejs/node/pull/55182)
-   \[[`93b215d5e6`](https://redirect.github.com/nodejs/node/commit/93b215d5e6)] - **meta**: add more information about nightly releases (Aviv Keller) [#&#8203;55084](https://redirect.github.com/nodejs/node/pull/55084)
-   \[[`aeae5973c3`](https://redirect.github.com/nodejs/node/commit/aeae5973c3)] - **meta**: add `linux` to OS labels in collaborator guide (Aviv Keller) [#&#8203;54986](https://redirect.github.com/nodejs/node/pull/54986)
-   \[[`4fb2c3baa8`](https://redirect.github.com/nodejs/node/commit/4fb2c3baa8)] - **meta**: remove never-used workflow trigger (Aviv Keller) [#&#8203;54983](https://redirect.github.com/nodejs/node/pull/54983)
-   \[[`e1f36d0da8`](https://redirect.github.com/nodejs/node/commit/e1f36d0da8)] - **meta**: remove unneeded ignore rules from ruff (Aviv Keller) [#&#8203;54360](https://redirect.github.com/nodejs/node/pull/54360)
-   \[[`ce0d0c1ec8`](https://redirect.github.com/nodejs/node/commit/ce0d0c1ec8)] - **meta**: remove `build-windows.yml` (Aviv Keller) [#&#8203;54662](https://redirect.github.com/nodejs/node/pull/54662)
-   \[[`ca67c97f33`](https://redirect.github.com/nodejs/node/commit/ca67c97f33)] - **meta**: add links to alternative issue trackers (Aviv Keller) [#&#8203;54401](https://redirect.github.com/nodejs/node/pull/54401)
-   \[[`6fcac73738`](https://redirect.github.com/nodejs/node/commit/6fcac73738)] - **module**: wrap swc error in ERR_INVALID_TYPESCRIPT_SYNTAX (Marco Ippolito) [#&#8203;55316](https://redirect.github.com/nodejs/node/pull/55316)
-   \[[`0412ac8bf3`](https://redirect.github.com/nodejs/node/commit/0412ac8bf3)] - **module**: add internal type def for `flushCompileCache` (Jacob Smith) [#&#8203;55226](https://redirect.github.com/nodejs/node/pull/55226)
-   \[[`32261fc98a`](https://redirect.github.com/nodejs/node/commit/32261fc98a)] - **(SEMVER-MINOR)** **module**: support loading entrypoint as url (RedYetiDev) [#&#8203;54933](https://redirect.github.com/nodejs/node/pull/54933)
-   \[[`111261e245`](https://redirect.github.com/nodejs/node/commit/111261e245)] - **(SEMVER-MINOR)** **module**: implement the "module-sync" exports condition (Joyee Cheung) [#&#8203;54648](https://redirect.github.com/nodejs/node/pull/54648)
-   \[[`b6fc9adf5b`](https://redirect.github.com/nodejs/node/commit/b6fc9adf5b)] - **module**: remove duplicated import (Aviv Keller) [#&#8203;54942](https://redirect.github.com/nodejs/node/pull/54942)
-   \[[`06957ff355`](https://redirect.github.com/nodejs/node/commit/06957ff355)] - **(SEMVER-MINOR)** **module**: implement flushCompileCache() (Joyee Cheung) [#&#8203;54971](https://redirect.github.com/nodejs/node/pull/54971)
-   \[[`2dcf70c347`](https://redirect.github.com/nodejs/node/commit/2dcf70c347)] - **(SEMVER-MINOR)** **module**: throw when invalid argument is passed to enableCompileCache() (Joyee Cheung) [#&#8203;54971](https://redirect.github.com/nodejs/node/pull/54971)
-   \[[`f9b19d7c44`](https://redirect.github.com/nodejs/node/commit/f9b19d7c44)] - **(SEMVER-MINOR)** **module**: write compile cache to temporary file and then rename it (Joyee Cheung) [#&#8203;54971](https://redirect.github.com/nodejs/node/pull/54971)
-   \[[`1d169764db`](https://redirect.github.com/nodejs/node/commit/1d169764db)] - **module**: report unfinished TLA in ambiguous modules (Antoine du Hamel) [#&#8203;54980](https://redirect.github.com/nodejs/node/pull/54980)
-   \[[`c89c93496d`](https://redirect.github.com/nodejs/node/commit/c89c93496d)] - **module**: refator ESM loader for adding future synchronous hooks (Joyee Cheung) [#&#8203;54769](https://redirect.github.com/nodejs/node/pull/54769)
-   \[[`108cef22e6`](https://redirect.github.com/nodejs/node/commit/108cef22e6)] - **module**: remove bogus assertion in CJS entrypoint handling with --import (Joyee Cheung) [#&#8203;54592](https://redirect.github.com/nodejs/node/pull/54592)
-   \[[`67ecb10c78`](https://redirect.github.com/nodejs/node/commit/67ecb10c78)] - **module**: fix discrepancy between .ts and .js (Marco Ippolito) [#&#8203;54461](https://redirect.github.com/nodejs/node/pull/54461)
-   \[[`3300d5990f`](https://redirect.github.com/nodejs/node/commit/3300d5990f)] - **os**: use const with early return for path (Trivikram Kamat) [#&#8203;54959](https://redirect.github.com/nodejs/node/pull/54959)
-   \[[`90cce6ec7c`](https://redirect.github.com/nodejs/node/commit/90cce6ec7c)] - **path**: remove repetitive conditional operator in `posix.resolve` (Wiyeong Seo) [#&#8203;54835](https://redirect.github.com/nodejs/node/pull/54835)
-   \[[`cbfc980f89`](https://redirect.github.com/nodejs/node/commit/cbfc980f89)] - **perf_hooks**: add missing type argument to getEntriesByName (Luke Taher) [#&#8203;54767](https://redirect.github.com/nodejs/node/pull/54767)
-   \[[`e95163b170`](https://redirect.github.com/nodejs/node/commit/e95163b170)] - **(SEMVER-MINOR)** **process**: add process.features.require_module (Joyee Cheung) [#&#8203;55241](https://redirect.github.com/nodejs/node/pull/55241)
-   \[[`0655d3a384`](https://redirect.github.com/nodejs/node/commit/0655d3a384)] - **process**: fix `process.features.typescript` when Amaro is unavailable (Antoine du Hamel) [#&#8203;55323](https://redirect.github.com/nodejs/node/pull/55323)
-   \[[`4050f68e5d`](https://redirect.github.com/nodejs/node/commit/4050f68e5d)] - **(SEMVER-MINOR)** **process**: add `process.features.typescript` (Aviv Keller) [#&#8203;54295](https://redirect.github.com/nodejs/node/pull/54295)
-   \[[`75073c50ae`](https://redirect.github.com/nodejs/node/commit/75073c50ae)] - **quic**: start adding in the internal quic js api (James M Snell) [#&#8203;53256](https://redirect.github.com/nodejs/node/pull/53256)
-   \[[`538b1eb5b0`](https://redirect.github.com/nodejs/node/commit/538b1eb5b0)] - **repl**: catch `\v` and `\r` in new-line detection (Aviv Keller) [#&#8203;54512](https://redirect.github.com/nodejs/node/pull/54512)
-   \[[`57a9d3f15e`](https://redirect.github.com/nodejs/node/commit/57a9d3f15e)] - **sqlite**: disable DQS misfeature by default (Tobias Nießen) [#&#8203;55297](https://redirect.github.com/nodejs/node/pull/55297)
-   \[[`c126543374`](https://redirect.github.com/nodejs/node/commit/c126543374)] - **sqlite**: make sourceSQL and expandedSQL string-valued properties (Tobias Nießen) [#&#8203;54721](https://redirect.github.com/nodejs/node/pull/54721)
-   \[[`67f5f46c56`](https://redirect.github.com/nodejs/node/commit/67f5f46c56)] - **sqlite**: enable foreign key constraints by default (Tobias Nießen) [#&#8203;54777](https://redirect.github.com/nodejs/node/pull/54777)
-   \[[`09999491bf`](https://redirect.github.com/nodejs/node/commit/09999491bf)] - **src**: handle errors correctly in webstorage (Michaël Zasso) [#&#8203;54544](https://redirect.github.com/nodejs/node/pull/54544)
-   \[[`295c17c4ea`](https://redirect.github.com/nodejs/node/commit/295c17c4ea)] - **src**: make minor tweaks to quic c++ for c++20 (James M Snell) [#&#8203;53256](https://redirect.github.com/nodejs/node/pull/53256)
-   \[[`b1d47d06f9`](https://redirect.github.com/nodejs/node/commit/b1d47d06f9)] - **src**: apply getCallSite optimization (RafaelGSS) [#&#8203;55174](https://redirect.github.com/nodejs/node/pull/55174)
-   \[[`d6bcc44829`](https://redirect.github.com/nodejs/node/commit/d6bcc44829)] - **src**: modernize likely/unlikely hints (Yagiz Nizipli) [#&#8203;55155](https://redirect.github.com/nodejs/node/pull/55155)
-   \[[`1af5ad61ca`](https://redirect.github.com/nodejs/node/commit/1af5ad61ca)] - **src**: fixup Error.stackTraceLimit during snapshot building (Joyee Cheung) [#&#8203;55121](https://redirect.github.com/nodejs/node/pull/55121)
-   \[[`b229083235`](https://redirect.github.com/nodejs/node/commit/b229083235)] - **src**: parse --stack-trace-limit and use it in --trace-\* flags (Joyee Cheung) [#&#8203;55121](https://redirect.github.com/nodejs/node/pull/55121)
-   \[[`942ad54e08`](https://redirect.github.com/nodejs/node/commit/942ad54e08)] - **src**: move more key handling to ncrypto (James M Snell) [#&#8203;55108](https://redirect.github.com/nodejs/node/pull/55108)
-   \[[`0bb5584288`](https://redirect.github.com/nodejs/node/commit/0bb5584288)] - **src**: add receiver to fast api callback methods (Carlos Espa) [#&#8203;54408](https://redirect.github.com/nodejs/node/pull/54408)
-   \[[`706e9611f0`](https://redirect.github.com/nodejs/node/commit/706e9611f0)] - **src**: fix typos (Nathan Baulch) [#&#8203;55064](https://redirect.github.com/nodejs/node/pull/55064)
-   \[[`a96d5d1bcc`](https://redirect.github.com/nodejs/node/commit/a96d5d1bcc)] - **src**: move more stuff over to use Maybe\<void> (James M Snell) [#&#8203;54831](https://redirect.github.com/nodejs/node/pull/54831)
-   \[[`ee0a98b5a2`](https://redirect.github.com/nodejs/node/commit/ee0a98b5a2)] - **src**: decode native error messages as UTF-8 (Joyee Cheung) [#&#8203;55024](https://redirect.github.com/nodejs/node/pull/55024)
-   \[[`1fc8edecf8`](https://redirect.github.com/nodejs/node/commit/1fc8edecf8)] - **src**: update clang-tidy and focus on modernization (Yagiz Nizipli) [#&#8203;53757](https://redirect.github.com/nodejs/node/pull/53757)
-   \[[`3a1485a1a3`](https://redirect.github.com/nodejs/node/commit/3a1485a1a3)] - **src**: move evp stuff to ncrypto (James M Snell) [#&#8203;54911](https://redirect.github.com/nodejs/node/pull/54911)
-   \[[`9ae80e1e4d`](https://redirect.github.com/nodejs/node/commit/9ae80e1e4d)] - **src**: revert filesystem::path changes (Yagiz Nizipli) [#&#8203;55015](https://redirect.github.com/nodejs/node/pull/55015)
-   \[[`465d05018a`](https://redirect.github.com/nodejs/node/commit/465d05018a)] - **src**: mark node --run as stable (Yagiz Nizipli) [#&#8203;53763](https://redirect.github.com/nodejs/node/pull/53763)
-   \[[`ef546c872c`](https://redirect.github.com/nodejs/node/commit/ef546c872c)] - **src**: cleanup per env handles directly without a list (Chengzhong Wu) [#&#8203;54993](https://redirect.github.com/nodejs/node/pull/54993)
-   \[[`0876f78411`](https://redirect.github.com/nodejs/node/commit/0876f78411)] - **src**: add unistd.h import if node posix credentials is defined (Jonas) [#&#8203;54528](https://redirect.github.com/nodejs/node/pull/54528)
-   \[[`284db53866`](https://redirect.github.com/nodejs/node/commit/284db53866)] - **src**: remove duplicate code setting AF_INET (He Yang) [#&#8203;54939](https://redirect.github.com/nodejs/node/pull/54939)
-   \[[`f332c4c4fc`](https://redirect.github.com/nodejs/node/commit/f332c4c4fc)] - **src**: use `Maybe<void>` where bool isn't needed (Michaël Zasso) [#&#8203;54575](https://redirect.github.com/nodejs/node/pull/54575)
-   \[[`c7ed2ff920`](https://redirect.github.com/nodejs/node/commit/c7ed2ff920)] - **stream**: handle undefined chunks correctly in decode stream (devstone) [#&#8203;55153](https://redirect.github.com/nodejs/node/pull/55153)
-   \[[`a9675a0cbc`](https://redirect.github.com/nodejs/node/commit/a9675a0cbc)] - **stream**: treat null asyncIterator as undefined (Jason Zhang) [#&#8203;55119](https://redirect.github.com/nodejs/node/pull/55119)
-   \[[`bf69ae1406`](https://redirect.github.com/nodejs/node/commit/bf69ae1406)] - **stream**: set stream prototype to closest transferable superclass (Jason Zhang) [#&#8203;55067](https://redirect.github.com/nodejs/node/pull/55067)
-   \[[`3273707a3a`](https://redirect.github.com/nodejs/node/commit/3273707a3a)] - **test**: fix tests when Amaro is unavailable (Richard Lau) [#&#8203;55320](https://redirect.github.com/nodejs/node/pull/55320)
-   \[[`ff3cc3b2ab`](https://redirect.github.com/nodejs/node/commit/ff3cc3b2ab)] - **test**: use more informative errors in `test-runner-cli` (Antoine du Hamel) [#&#8203;55321](https://redirect.github.com/nodejs/node/pull/55321)
-   \[[`17d2f9de6d`](https://redirect.github.com/nodejs/node/commit/17d2f9de6d)] - **test**: make `test-loaders-workers-spawned` less flaky (Antoine du Hamel) [#&#8203;55172](https://redirect.github.com/nodejs/node/pull/55172)
-   \[[`1b1104e69b`](https://redirect.github.com/nodejs/node/commit/1b1104e69b)] - **test**: add resource to internal module stat test (RafaelGSS) [#&#8203;55157](https://redirect.github.com/nodejs/node/pull/55157)
-   \[[`b36f8c2146`](https://redirect.github.com/nodejs/node/commit/b36f8c2146)] - **test**: update multiple assert tests to use node:test (James M Snell) [#&#8203;54585](https://redirect.github.com/nodejs/node/pull/54585)
-   \[[`1b30f7fdd6`](https://redirect.github.com/nodejs/node/commit/1b30f7fdd6)] - **test**: move coverage source map tests to new file (Aviv Keller) [#&#8203;55123](https://redirect.github.com/nodejs/node/pull/55123)
-   \[[`ce67e7b5b3`](https://redirect.github.com/nodejs/node/commit/ce67e7b5b3)] - **test**: adding more tests for strip-types (Kevin Toshihiro Uehara) [#&#8203;54929](https://redirect.github.com/nodejs/node/pull/54929)
-   \[[`a57c8ba3ef`](https://redirect.github.com/nodejs/node/commit/a57c8ba3ef)] - **test**: update wpt test for encoding (devstone) [#&#8203;55151](https://redirect.github.com/nodejs/node/pull/55151)
-   \[[`65fbe94d45`](https://redirect.github.com/nodejs/node/commit/65fbe94d45)] - **test**: add `escapePOSIXShell` util (Antoine du Hamel) [#&#8203;55125](https://redirect.github.com/nodejs/node/pull/55125)
-   \[[`cc8838252e`](https://redirect.github.com/nodejs/node/commit/cc8838252e)] - **test**: remove unnecessary `await` in test-watch-mode (Wuli) [#&#8203;55142](https://redirect.github.com/nodejs/node/pull/55142)
-   \[[`9aeba48bf0`](https://redirect.github.com/nodejs/node/commit/9aeba48bf0)] - **test**: fix typos (Nathan Baulch) [#&#8203;55063](https://redirect.github.com/nodejs/node/pull/55063)
-   \[[`0999b5e493`](https://redirect.github.com/nodejs/node/commit/0999b5e493)] - **test**: remove duplicated test descriptions (Christos Koutsiaris) [#&#8203;54140](https://redirect.github.com/nodejs/node/pull/54140)
-   \[[`e99d4a4cb8`](https://redirect.github.com/nodejs/node/commit/e99d4a4cb8)] - **test**: deflake test/pummel/test-timers.js (jakecastelli) [#&#8203;55098](https://redirect.github.com/nodejs/node/pull/55098)
-   \[[`fb8470afd7`](https://redirect.github.com/nodejs/node/commit/fb8470afd7)] - **test**: deflake test-http-remove-header-stays-removed (Luigi Pinca) [#&#8203;55004](https://redirect.github.com/nodejs/node/pull/55004)
-   \[[`e879c5edf2`](https://redirect.github.com/nodejs/node/commit/e879c5edf2)] - **test**: fix test-tls-junk-closes-server (Michael Dawson) [#&#8203;55089](https://redirect.github.com/nodejs/node/pull/55089)
-   \[[`b885f0583c`](https://redirect.github.com/nodejs/node/commit/b885f0583c)] - **test**: fix more tests that fail when path contains a space (Antoine du Hamel) [#&#8203;55088](https://redirect.github.com/nodejs/node/pull/55088)
-   \[[`85f1187942`](https://redirect.github.com/nodejs/node/commit/85f1187942)] - **test**: fix `assertSnapshot` when path contains a quote (Antoine du Hamel) [#&#8203;55087](https://redirect.github.com/nodejs/node/pull/55087)
-   \[[`fdae57f1e1`](https://redirect.github.com/nodejs/node/commit/fdae57f1e1)] - **test**: fix some tests when path contains `%` (Antoine du Hamel) [#&#8203;55082](https://redirect.github.com/nodejs/node/pull/55082)
-   \[[`36c9ea8912`](https://redirect.github.com/nodejs/node/commit/36c9ea8912)] - ***Revert*** "**test**: mark test-fs-watch-non-recursive flaky on Windows" (Luigi Pinca) [#&#8203;55079](https://redirect.github.com/nodejs/node/pull/55079)
-   \[[`80da5993cc`](https://redirect.github.com/nodejs/node/commit/80da5993cc)] - **test**: remove interval and give more time to unsync (Pietro Marchini) [#&#8203;55006](https://redirect.github.com/nodejs/node/pull/55006)
-   \[[`93c23e74b3`](https://redirect.github.com/nodejs/node/commit/93c23e74b3)] - **test**: deflake test-inspector-strip-types (Luigi Pinca) [#&#8203;55058](https://redirect.github.com/nodejs/node/pull/55058)
-   \[[`43bbca2c08`](https://redirect.github.com/nodejs/node/commit/43bbca2c08)] - **test**: make `test-runner-assert` more robust (Aviv Keller) [#&#8203;55036](https://redirect.github.com/nodejs/node/pull/55036)
-   \[[`268f1ec08f`](https://redirect.github.com/nodejs/node/commit/268f1ec08f)] - **test**: update tls test to support OpenSSL32 (Michael Dawson) [#&#8203;55030](https://redirect.github.com/nodejs/node/pull/55030)
-   \[[`a50dd21423`](https://redirect.github.com/nodejs/node/commit/a50dd21423)] - **test**: do not assume `process.execPath` contains no spaces (Antoine du Hamel) [#&#8203;55028](https://redirect.github.com/nodejs/node/pull/55028)
-   \[[`c56e324cb8`](https://redirect.github.com/nodejs/node/commit/c56e324cb8)] - **test**: fix `test-vm-context-dont-contextify` when path contains a space (Antoine du Hamel) [#&#8203;55026](https://redirect.github.com/nodejs/node/pull/55026)
-   \[[`6d42e44264`](https://redirect.github.com/nodejs/node/commit/6d42e44264)] - **test**: adjust tls-set-ciphers for OpenSSL32 (Michael Dawson) [#&#8203;55016](https://redirect.github.com/nodejs/node/pull/55016)
-   \[[`22e601a76c`](https://redirect.github.com/nodejs/node/commit/22e601a76c)] - **test**: add `util.stripVTControlCharacters` test (RedYetiDev) [#&#8203;54865](https://redirect.github.com/nodejs/node/pull/54865)
-   \[[`a6796696d7`](https://redirect.github.com/nodejs/node/commit/a6796696d7)] - **test**: improve coverage for timer promises schedular (Aviv Keller) [#&#8203;53370](https://redirect.github.com/nodejs/node/pull/53370)
-   \[[`9506f77b3e`](https://redirect.github.com/nodejs/node/commit/9506f77b3e)] - **test**: remove `getCallSite` from common (RedYetiDev) [#&#8203;54947](https://redirect.github.com/nodejs/node/pull/54947)
-   \[[`20d3a806ea`](https://redirect.github.com/nodejs/node/commit/20d3a806ea)] - **test**: remove unused common utilities (RedYetiDev) [#&#8203;54825](https://redirect.github.com/nodejs/node/pull/54825)
-   \[[`341b6d9b94`](https://redirect.github.com/nodejs/node/commit/341b6d9b94)] - **test**: deflake test-http-header-overflow (Luigi Pinca) [#&#8203;54978](https://redirect.github.com/nodejs/node/pull/54978)
-   \[[`1e53c10853`](https://redirect.github.com/nodejs/node/commit/1e53c10853)] - **test**: fix `soucre` to `source` (Aviv Keller) [#&#8203;55038](https://redirect.github.com/nodejs/node/pull/55038)
-   \[[`6843ca7e0d`](https://redirect.github.com/nodejs/node/commit/6843ca7e0d)] - **test**: add asserts to validate test assumptions (Michael Dawson) [#&#8203;54997](https://redirect.github.com/nodejs/node/pull/54997)
-   \[[`98ff615c5e`](https://redirect.github.com/nodejs/node/commit/98ff615c5e)] - **test**: add runner watch mode isolation tests (Pietro Marchini) [#&#8203;54888](https://redirect.github.com/nodejs/node/pull/54888)
-   \[[`327a8f7b59`](https://redirect.github.com/nodejs/node/commit/327a8f7b59)] - **test**: fix invalid wasm test (Aviv Keller) [#&#8203;54935](https://redirect.github.com/nodejs/node/pull/54935)
-   \[[`5b012f544c`](https://redirect.github.com/nodejs/node/commit/5b012f544c)] - **test**: move test-http-max-sockets to parallel (Luigi Pinca) [#&#8203;54977](https://redirect.github.com/nodejs/node/pull/54977)
-   \[[`22b413910e`](https://redirect.github.com/nodejs/node/commit/22b413910e)] - **test**: remove test-http-max-sockets flaky designation (Luigi Pinca) [#&#8203;54976](https://redirect.github.com/nodejs/node/pull/54976)
-   \[[`62b8640550`](https://redirect.github.com/nodejs/node/commit/62b8640550)] - **test**: refactor test-whatwg-webstreams-encoding to be shorter (David Dong) [#&#8203;54569](https://redirect.github.com/nodejs/node/pull/54569)
-   \[[`1f11d68173`](https://redirect.github.com/nodejs/node/commit/1f11d68173)] - **test**: adjust key sizes to support OpenSSL32 (Michael Dawson) [#&#8203;54972](https://redirect.github.com/nodejs/node/pull/54972)
-   \[[`90a87ca8f7`](https://redirect.github.com/nodejs/node/commit/90a87ca8f7)] - **test**: update test to support OpenSSL32 (Michael Dawson) [#&#8203;54968](https://redirect.github.com/nodejs/node/pull/54968)
-   \[[`9b7834536a`](https://redirect.github.com/nodejs/node/commit/9b7834536a)] - **test**: update DOM events web platform tests (Matthew Aitken) [#&#8203;54642](https://redirect.github.com/nodejs/node/pull/54642)
-   \[[`1c001550a2`](https://redirect.github.com/nodejs/node/commit/1c001550a2)] - **test,crypto**: update WebCryptoAPI WPT (Filip Skokan) [#&#8203;55029](https://redirect.github.com/nodejs/node/pull/55029)
-   \[[`800f7c44ed`](https://redirect.github.com/nodejs/node/commit/800f7c44ed)] - **test_runner**: throw on invalid source map (Aviv Keller) [#&#8203;55055](https://redirect.github.com/nodejs/node/pull/55055)
-   \[[`0f7e3f017f`](https://redirect.github.com/nodejs/node/commit/0f7e3f017f)] - **test_runner**: assert entry is a valid object (Edigleysson Silva (Edy)) [#&#8203;55231](https://redirect.github.com/nodejs/node/pull/55231)
-   \[[`c308862d2e`](https://redirect.github.com/nodejs/node/commit/c308862d2e)] - **test_runner**: avoid spread operator on arrays (Antoine du Hamel) [#&#8203;55143](https://redirect.github.com/nodejs/node/pull/55143)
-   \[[`12401972b7`](https://redirect.github.com/nodejs/node/commit/12401972b7)] - **test_runner**: support typescript files in default glob (Aviv Keller) [#&#8203;55081](https://redirect.github.com/nodejs/node/pull/55081)
-   \[[`19cfa3140f`](https://redirect.github.com/nodejs/node/commit/19cfa3140f)] - **test_runner**: close and flush destinations on forced exit (Colin Ihrig) [#&#8203;55099](https://redirect.github.com/nodejs/node/pull/55099)
-   \[[`86f7cb802d`](https://redirect.github.com/nodejs/node/commit/86f7cb802d)] - **(SEMVER-MINOR)** **test_runner**: support custom arguments in `run()` (Aviv Keller) [#&#8203;55126](https://redirect.github.com/nodejs/node/pull/55126)
-   \[[`7eaeba499a`](https://redirect.github.com/nodejs/node/commit/7eaeba499a)] - **test_runner**: fix mocking modules with quote in their URL (Antoine du Hamel) [#&#8203;55083](https://redirect.github.com/nodejs/node/pull/55083)
-   \[[`8818c6c88a`](https://redirect.github.com/nodejs/node/commit/8818c6c88a)] - **test_runner**: report error on missing sourcemap source (Aviv Keller) [#&#8203;55037](https://redirect.github.com/nodejs/node/pull/55037)
-   \[[`b62f2f8259`](https://redirect.github.com/nodejs/node/commit/b62f2f8259)] - **(SEMVER-MINOR)** **test_runner**: add 'test:summary' event (Colin Ihrig) [#&#8203;54851](https://redirect.github.com/nodejs/node/pull/54851)
-   \[[`449dad0db0`](https://redirect.github.com/nodejs/node/commit/449dad0db0)] - **test_runner**: use `test:` symbol on second print of parent test (RedYetiDev) [#&#8203;54956](https://redirect.github.com/nodejs/node/pull/54956)
-   \[[`4b962a78c7`](https://redirect.github.com/nodejs/node/commit/4b962a78c7)] - **test_runner**: replace ansi clear with ansi reset (Pietro Marchini) [#&#8203;55013](https://redirect.github.com/nodejs/node/pull/55013)
-   \[[`d7c708aec5`](https://redirect.github.com/nodejs/node/commit/d7c708aec5)] - **(SEMVER-MINOR)** **test_runner**: add support for coverage via run() (Chemi Atlow) [#&#8203;53937](https://redirect.github.com/nodejs/node/pull/53937)
-   \[[`93c6c90219`](https://redirect.github.com/nodejs/node/commit/93c6c90219)] - **test_runner**: support typescript module mocking (Marco Ippolito) [#&#8203;54878](https://redirect.github.com/nodejs/node/pull/54878)
-   \[[`1daec9a63f`](https://redirect.github.com/nodejs/node/commit/1daec9a63f)] - **test_runner**: avoid coverage report partial file names (Pietro Marchini) [#&#8203;54379](https://redirect.github.com/nodejs/node/pull/54379)
-   \[[`d51e5a8667`](https://redirect.github.com/nodejs/node/commit/d51e5a8667)] - **tools**: enforc

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOC4xMzMuMSIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-17 08:47:09 +00:00
liuyi
9f3b39ffd6 test: mobile e2e (#9753) 2025-01-17 16:22:09 +08:00
forehalo
94b0802e64 fix(nbstore): userdata id converter (#9748) 2025-01-17 07:43:07 +00:00
github-actions[bot]
24cd7e367c chore(i18n): sync translations (#9741)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: liuyi <forehalo@gmail.com>
2025-01-17 07:24:27 +00:00
forehalo
44de4474c3 feat(server): use user model (#9710) 2025-01-17 07:06:12 +00:00
fengmk2
a2d16f4b78 refactor(server): use workspace model on user model (#9726) 2025-01-17 06:16:53 +00:00
fengmk2
46aa25de0b feat(server): page model (#9715) 2025-01-17 06:16:51 +00:00
fengmk2
5c934c64aa feat(server): workspace model (#9714) 2025-01-17 06:16:49 +00:00
renovate
85b07a5de0 chore: bump up eslint-config-prettier version to v10 (#9671)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-config-prettier](https://redirect.github.com/prettier/eslint-config-prettier) | [`^9.1.0` -> `^10.0.0`](https://renovatebot.com/diffs/npm/eslint-config-prettier/9.1.0/10.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-config-prettier/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-config-prettier/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-config-prettier/9.1.0/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-config-prettier/9.1.0/10.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>prettier/eslint-config-prettier (eslint-config-prettier)</summary>

### [`v10.0.1`](https://redirect.github.com/prettier/eslint-config-prettier/releases/tag/v10.0.1)

[Compare Source](https://redirect.github.com/prettier/eslint-config-prettier/compare/v10.0.0...v10.0.1)

### eslint-config-prettier

#### 10.0.0

##### Major Changes

-   [#&#8203;272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272) [`5be64be`](5be64bef68) Thanks [@&#8203;abrahamguo](https://redirect.github.com/abrahamguo)! - add support for [@&#8203;stylistic](https://redirect.github.com/stylistic) formatting rules

#### Versions before 10.0.0

##### Version 9.1.0 (2023-12-02)

-   Added: [unicorn/template-indent], (as a [special rule][unicorn/template-indent-special]). Thanks to Gürgün Dayıoğlu ([@&#8203;gurgunday](https://redirect.github.com/gurgunday))!
-   Changed: All the [formatting rules that were deprecated in ESLint 8.53.0][deprecated-8.53.0] are now excluded if you set the `ESLINT_CONFIG_PRETTIER_NO_DEPRECATED` environment variable.

##### Version 9.0.0 (2023-08-05)

-   Added: The CLI helper tool now works with eslint.config.js (flat config). Just like ESLint itself, the CLI tool automatically first tries eslint.config.js and then eslintrc, and you can force which one to use by setting the [ESLINT_USE_FLAT_CONFIG] environment variable. Note that the *config* of eslint-config-prettier has always been compatible with eslint.config.js (flat config) – it was just the CLI tool that needed updating. On top of that, the docs have been updated to mention how to use both eslint.config.js (flat config) and eslintrc, and the tests now test both config systems.
-   Changed: [unicode-bom] is no longer turned off. Prettier preserves the BOM if you have one, and does not add one if missing. It was wrong of eslint-config-prettier to disable that rule. If you get ESLint errors after upgrading, either add `"unicode-bom": "off"` to your config to disable it again, or run ESLint with `--fix` to fix all files according to the rule (add or remove BOM). Thanks to Nicolas Stepien ([@&#8203;nstepien](https://redirect.github.com/nstepien))!

##### Version 8.10.0 (2023-08-03)

-   Added: [max-statements-per-line]. Thanks to [@&#8203;Zamiell](https://redirect.github.com/Zamiell)!

##### Version 8.9.0 (2023-07-27)

-   Added: [vue/array-element-newline]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 8.8.0 (2023-03-20)

-   Added: [@&#8203;typescript-eslint/lines-around-comment]. Thanks to [@&#8203;ttionya](https://redirect.github.com/ttionya)!

##### Version 8.7.0 (2023-03-06)

-   Added: [@&#8203;typescript-eslint/block-spacing]. Thanks to [@&#8203;ttionya](https://redirect.github.com/ttionya)!
-   Added: [@&#8203;typescript-eslint/key-spacing]. Thanks to [@&#8203;ttionya](https://redirect.github.com/ttionya)!

##### Version 8.6.0 (2023-01-02)

-   Added: [vue/multiline-ternary]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 8.5.0 (2022-03-02)

-   Added: [@&#8203;typescript-eslint/space-before-blocks]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 8.4.0 (2022-02-19)

-   Added: [vue/quote-props]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 8.3.0 (2021-04-24)

-   Added: Support for [@&#8203;babel/eslint-plugin]. Thanks to Chip Zhang ([@&#8203;ChipZhang](https://redirect.github.com/ChipZhang)) for the heads-up! ([eslint-plugin-babel] is still supported, too.)

##### Version 8.2.0 (2021-04-13)

-   Added: [flowtype/quotes]. Thanks to Martin Zlámal ([@&#8203;mrtnzlml](https://redirect.github.com/mrtnzlml))!

##### Version 8.1.0 (2021-02-24)

-   Added: [flowtype/object-type-curly-spacing].
-   Added: Dummy files for the configs removed in 8.0.0. The dummy files throw an error that try to guide you how to upgrade.

##### Version 8.0.0 (2021-02-21)

-   Changed: All configs have been merged into one!

    To upgrade, change:

    ```json
    {
      "extends": [
        "some-other-config-you-use",
        "prettier",
        "prettier/@&#8203;typescript-eslint",
        "prettier/babel",
        "prettier/flowtype",
        "prettier/react",
        "prettier/standard",
        "prettier/unicorn",
        "prettier/vue"
      ]
    }
    ```

    Into:

    <!-- prettier-ignore -->

    ```json
    {
      "extends": [
        "some-other-config-you-use",
        "prettier"
      ]
    }
    ```

    The `"prettier"` config now includes not just ESLint core rules, but also rules from all plugins. Much simpler!

    So … what’s the catch? Why haven’t we done this earlier? Turns out it’s just a sad mistake. I ([@&#8203;lydell](https://redirect.github.com/lydell)) was confused when testing, and thought that turning off unknown rules in a config was an error. Thanks to Georgii Dolzhykov ([@&#8203;thorn0](https://redirect.github.com/thorn0)) for pointing this out!

    If you use [eslint-plugin-prettier], all you need is [plugin:prettier/recommended]:

    <!-- prettier-ignore -->

    ```json
    {
      "extends": [
        "some-other-config-you-use",
        "plugin:prettier/recommended"
      ]
    }
    ```

    (The ["prettier/prettier" config][prettier-prettier-config] still exists separately. It’s the odd one out. The main `"prettier"` config does *not* include the rules from it.)

-   Changed: The CLI helper tool now only prints warnings for [arrow-body-style] and [prefer-arrow-callback], just like other “special rules.” This means that if you’ve decided to use those rules and [eslint-plugin-prettier] at the same time, you’ll get warnings but exit code zero (success).

##### Version 7.2.0 (2021-01-18)

-   Added: [@&#8203;typescript-eslint/object-curly-spacing].
-   Added: [react/jsx-newline].

##### Version 7.1.0 (2020-12-19)

-   Added: [unicorn/empty-brace-spaces]. Thanks to fisker Cheung ([@&#8203;fisker](https://redirect.github.com/fisker))!

##### Version 7.0.0 (2020-12-05)

-   Changed: At least ESLint 7.0.0 is now required.

-   Changed: [arrow-body-style] and [prefer-arrow-callback] are no longer turned off by default. They only need to be turned off if you use [eslint-plugin-prettier]. If you do, add `"prettier/prettier"` to your `"extends"` array to turn them off again.

    ```json
    {
      "extends": ["prettier", "prettier/prettier"],
      "plugins": ["prettier"],
      "rules": {
        "prettier/prettier": "error"
      }
    }
    ```

    Alternatively, update [eslint-plugin-prettier] to version 3.2.0 or later which automatically turns off these two rules in its `"plugin:prettier/recommended"` config.

    The CLI helper tool only warns about these rules if you have the `"prettier/prettier"` *rule* enabled for a file.

-   Changed: `no-tabs` is now a validatable rule. If you use it, you should enable `allowIndentationTabs` so that the rule works regardless of your Prettier config:

    ```json
    {
      "rules": {
        "no-tabs": ["error", { "allowIndentationTabs": true }]
      }
    }
    ```

-   Changed: The CLI helper tool is now called just `eslint-config-prettier` instead of `eslint-config-prettier-check`. This is so that `npx eslint-config-prettier` always works regardless of whether you have already installed `eslint-config-prettier` or not: If you have, the local installation is used; if you haven’t, `npx` downloads a temporary copy.

-   Changed: The CLI helper tool no longer requires you to pipe the output of `eslint --print-config` to it. Instead, it does that automatically for you via ESLint API:s added in ESLint v7.

    Before:

        npx eslint --print-config index.js | npx eslint-config-prettier-check

    After:

        npx eslint-config-prettier index.js

-   Improved: The npm package is now 75% smaller.

##### Version 6.15.0 (2020-10-27)

-   Added: [@&#8203;typescript-eslint/space-infix-ops]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.14.0 (2020-10-21)

-   Added: New [eslint-plugin-vue] rules: \[vue/array-bracket-newline] and \[vue/block-tag-newline]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 6.13.0 (2020-10-16)

-   Added: New rules in [eslint-plugin-vue] 7.0 (which supports Vue 3.0). Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 6.12.0 (2020-09-25)

-   Added: [@&#8203;typescript-eslint/comma-dangle]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.11.0 (2020-04-21)

-   Added: [@&#8203;typescript-eslint/keyword-spacing]. Thanks to Hans Bergren ([@&#8203;hbergren](https://redirect.github.com/hbergren))!

##### Version 6.10.1 (2020-03-22)

-   Improved: Recommend using `npx` when running the CLI helper tool.
-   Updated: Mention that eslint-config-prettier has been tested with Prettier 2.0 and the latest versions of plugins.

##### Version 6.10.0 (2020-01-28)

-   Added: [@&#8203;typescript-eslint/comma-spacing]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.9.0 (2019-12-27)

-   Added: [vue/max-len]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 6.8.0 (2019-12-25)

-   Added: [@&#8203;typescript-eslint/no-extra-semi]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 6.7.0 (2019-11-19)

-   Added: [@&#8203;typescript-eslint/space-before-function-paren]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.6.0 (2019-11-17)

-   Added: New [eslint-plugin-vue] rules: [vue/dot-location] and [vue/keyword-spacing]. Thanks to [@&#8203;xcatliu](https://redirect.github.com/xcatliu)!

##### Version 6.5.0 (2019-10-26)

-   Added: Support for [excluding deprecated rules]. Thanks to Alex Ilyaev ([@&#8203;alexilyaev](https://redirect.github.com/alexilyaev))!

##### Version 6.4.0 (2019-10-05)

-   Added: [unicorn/no-nested-ternary]. Thanks to Yang Mingshan ([@&#8203;yangmingshan](https://redirect.github.com/yangmingshan))!

##### Version 6.3.0 (2019-09-10)

-   Added: [@&#8203;typescript-eslint/brace-style]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.2.0 (2019-09-03)

-   Added: [@&#8203;typescript-eslint/quotes] (as a [special rule][@&#8203;typescript-eslint/quotes-special]). Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.1.0 (2019-08-19)

-   Added: [function-call-argument-newline] (new in ESLint 6.2.0). Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 6.0.0 (2019-06-25)

-   Changed: The CLI helper tool now considers [no-confusing-arrow] to conflict if you use the default value of its `allowParens` option. The default was changed to `true` in ESLint 6, which conflicts with Prettier.

    If the CLI helper tool gives you errors about this after upgrading, the solution is to change this:

    ```json
    {
      "rules": {
        "no-confusing-arrow": ["error"]
      }
    }
    ```

    Into this:

    ```json
    {
      "rules": {
        "no-confusing-arrow": ["error", { "allowParens": false }]
      }
    }
    ```

    The latter works in both ESLint 6 as well as in ESLint 5 and older.

-   Improved: `eslint --print-config` usage instructions. The CLI tool help text as well as the documentation has been updated to suggest commands that work in ESLint 6.0 as well as in ESLint 5 and older. (Instead of `eslint --print-config .`, use `eslint --print-config path/to/main.js`.)

##### Version 5.1.0 (2019-06-25)

-   Added: [react/jsx-curly-newline]. Thanks to Masafumi Koba ([@&#8203;ybiquitous](https://redirect.github.com/ybiquitous))!

##### Version 5.0.0 (2019-06-15)

-   Removed: [react/self-closing-comp]. This rule was added in v4.1.0 not because it *conflicted* with Prettier but because it was *unnecessary* when using Prettier. However, in v1.18.0 [Prettier stopped converting empty elements to self-closing elements][prettier-self-closing]. So the rule is not unnecessary anymore.

    If you use Prettier v1.17.1 or older you should be able to upgrade eslint-config-prettier to v5.0.0 without having to do anything else.

    If you use Prettier v1.18.0 or newer, you might get lint errors about for example changing `<div></div>` into `<div />`. You have two options:

    -   Run `eslint --fix` if you prefer to enforce self-closing elements where possible. This should fix all the errors.
    -   Add `"react/self-closing-comp": "off"` to your ESLint config if you use autofix from your editor and you face the same [issue as Prettier did][prettier-self-closing].

-   Changed: Node.js 6 is no longer officially supported, but v5.0.0 should still work with it.

##### Version 4.3.0 (2019-05-16)

-   Added: New [eslint-plugin-vue] rules: [vue/arrow-spacing], [vue/block-spacing], [vue/brace-style] and [vue/comma-dangle].
-   Added: New [@&#8203;typescript-eslint/eslint-plugin] rules: [@&#8203;typescript-eslint/func-call-spacing] and [@&#8203;typescript-eslint/semi].

##### Version 4.2.0 (2019-04-25)

-   Added: [@&#8203;typescript-eslint/no-extra-parens]. Thanks to Keiichiro Amemiya ([@&#8203;Hoishin](https://redirect.github.com/Hoishin)) and Jen Gorfine ([@&#8203;jgorfine](https://redirect.github.com/jgorfine))!

##### Version 4.1.0 (2019-02-26)

-   Added: [linebreak-style]. Use Prettier’s [end-of-line] option instead.
-   Added: [react/self-closing-comp]. Thanks to Gaurav Gupta ([@&#8203;gaurav5430](https://redirect.github.com/gaurav5430))!

##### Version 4.0.0 (2019-01-26)

-   Breaking change: Support for [eslint-plugin-typescript] has been removed and replaced with support for its successor [@&#8203;typescript-eslint/eslint-plugin]. Thanks to TANIGUCHI Masaya ([@&#8203;ta2gch](https://redirect.github.com/ta2gch)) and everyone else who helped with this!
-   Changed: [arrow-body-style] and [prefer-arrow-callback] are now marked as [special rules][arrow-special], since they might cause problems if using [eslint-plugin-prettier] and `--fix`. They are turned off by default, and the CLI helper tool will *warn* about them (but not error if you do enable them). This won’t break your linting checks, but do note that these rules will be disabled unless you explicitly enable them again, and that you might see new warnings when running the CLI helper tool.

##### Version 3.6.0 (2019-01-19)

-   Added: Support for [eslint-plugin-babel]. Thanks to Matija Marohnić ([@&#8203;silvenon](https://redirect.github.com/silvenon))!

##### Version 3.5.0 (2019-01-16)

-   Fixed: The eslint-plugin-vue change from 3.4.0 has been reverted. That change requires eslint-plugin-vue@5, while many use eslint-plugin-vue@4. In other words, it was an accidental breaking change. Also, after thinking about it some more, it makes sense to have a Prettier-specific list of rules, rather than using the `vue/no-layout-rules` list, since there can be layout rules that don’t conflict with but rather complement Prettier.
-   Added: New eslint-plugin-vue rules coming in the next version after 5.1.0.

##### Version 3.4.0 (2019-01-13)

-   Added: Support for [eslint-plugin-typescript]. Thanks to Jed Fox ([@&#8203;j-f1](https://redirect.github.com/j-f1))!
-   Improved: The eslint-plugin-vue integration is now using the `vue/no-layout-rules` config behind the scenes, so it should automatically stay up-to-date when new eslint-plugin-vue versions are released. Thanks to Michał Sajnóg ([@&#8203;michalsnik](https://redirect.github.com/michalsnik))!

##### Version 3.3.0 (2018-11-11)

-   Added: The [vue/html-self-closing] rule (as a [special rule][vue/html-self-closing-special]). Thanks to Yamagishi Kazutoshi ([@&#8203;ykzts](https://redirect.github.com/ykzts))!

##### Version 3.2.0 (2018-11-10)

-   Added: Support for [eslint-plugin-vue].
-   Fixed: The CLI helper tool should now work in Node.js 6 with npm 3 again. Thanks to Grant Snodgrass ([@&#8203;meeber](https://redirect.github.com/meeber))!
-   Improved: Updated documentation.

##### Version 3.1.0 (2018-09-22)

-   Added: Support for [eslint-plugin-unicorn]. Thanks to John Mars ([@&#8203;j0hnm4r5](https://redirect.github.com/j0hnm4r5))!
-   Changed: The [quotes] rule is now allowed to be used to forbid unnecessary backticks. This means that the CLI helper tool no longer can automatically validate it, so you’ll need to refer the [quotes special rule documentation][quotes-special]. Thanks to Nick Petruzzelli ([@&#8203;npetruzzelli](https://redirect.github.com/npetruzzelli))!

##### Version 3.0.1 (2018-08-13)

-   Improved: `eslint --print-config` usage instructions.

##### Version 3.0.0 (2018-08-13)

-   Breaking change: Dropped Node.js 4 support.

##### Version 2.10.0 (2018-08-13)

-   Added: [flowtype/boolean-style]. Thanks to Mayank Agarwal ([@&#8203;Mayank1791989](https://redirect.github.com/Mayank1791989))!
-   Added: [react/jsx-child-element-spacing]
-   Added: [react/jsx-props-no-multi-spaces]

##### Version 2.9.0 (2017-11-26)

-   Added: The [implicit-arrow-linebreak] rule.

##### Version 2.8.0 (2017-11-19)

-   Added: The [react/jsx-one-expression-per-line] rule.

##### Version 2.7.0 (2017-11-01)

-   Added: The [lines-around-comment] rule (as a [special rule][lines-around-comment-special]). Thanks to Maurice de Beijer ([@&#8203;mauricedb](https://redirect.github.com/mauricedb))!
-   Added: The [no-unexpected-multiline] rule (as a [special rule][no-unexpected-multiline-special]). Thanks to Suhas Karanth ([@&#8203;sudo-suhas](https://redirect.github.com/sudo-suhas))!

##### Version 2.6.0 (2017-09-23)

-   Added: The [no-floating-decimal] rule.

##### Version 2.5.0 (2017-09-16)

-   Added: Support for [eslint-plugin-standard]. Thanks to Christian Pekeler ([@&#8203;pekeler](https://redirect.github.com/pekeler))!

##### Version 2.4.0 (2017-09-02)

-   Added: The [function-paren-newline] rule (new in [ESLint 4.6.0]). Thanks to Pierre Vanduynslager ([@&#8203;vanduynslagerp](https://redirect.github.com/vanduynslagerp))!

##### Version 2.3.0 (2017-06-30)

-   Added: The (deprecated) [indent-legacy] rule. Thanks to M. Ian Graham ([@&#8203;miangraham](https://redirect.github.com/miangraham))!

##### Version 2.2.0 (2017-06-17)

-   Added: New rules from [ESLint 4.0.0]:
    -   [array-element-newline]
    -   [array-bracket-newline]
    -   [semi-style]
    -   [switch-colon-spacing]
-   Added: [react/jsx-closing-tag-location]

##### Version 2.1.1 (2017-05-20)

-   No code changes. Just updates to the readme.

##### Version 2.1.0 (2017-05-13)

-   Added: The [no-tabs] rule (as a [special rule][no-tabs-special]). Thanks to Alex Meah ([@&#8203;AlexMeah](https://redirect.github.com/AlexMeah))!

##### Version 2.0.0 (2017-05-07)

-   Changed/Improved: The CLI helper tool is now more helpful.

    -   The options of special rules are now validated if possible. If a special rule is enabled with non-conflicting options, the CLI no longer warns about it.
    -   If only special rules that cannot be automatically checked are found, the CLI no longer exists with a non-zero exit code. Instead, it only warns about the rules.

-   Changed: The [no-confusing-arrow] is now a special rule again, since it might conflict with recent Prettier versions.

-   Removed: The `react/wrap-multilines` rule (which has been deprecated for a while), since it was removed in eslint-plugin-react@7.

##### Version 1.7.0 (2017-04-19)

-   Changed: The [no-confusing-arrow] is no longer a special rule, but simply turned off, since recent Prettier versions make it redundant.
-   Improved: The CLI helper tool now has a more helpful message for special rules, and exits with a different status code if only special rules were found. The exit codes are now documented as well.

##### Version 1.6.0 (2017-04-05)

-   Added: The [curly] rule. Thanks to Martin Rädlinger ([@&#8203;formatlos](https://redirect.github.com/formatlos))!

##### Version 1.5.0 (2017-03-04)

-   Added: The [nonblock-statement-body-position] rule.

##### Version 1.4.1 (2017-02-28)

-   Improved: eslint-config-prettier is now part of the [prettier] organization! This version updates all URLs to point to the new home of the project.

##### Version 1.4.0 (2017-02-26)

-   Added: The [no-confusing-arrow] rule (as a [special rule][no-confusing-arrow-special]). Thanks to Dominik Ferber ([@&#8203;dferber90](https://redirect.github.com/dferber90))!
-   Added: Deprecated or removed rules that might conflict with prettier. Thanks to Dominik Ferber ([@&#8203;dferber90](https://redirect.github.com/dferber90))!

##### Version 1.3.0 (2017-02-21)

-   Added: The [template-tag-spacing] rule. Thanks to Thibault Derousseaux ([@&#8203;tibdex](https://redirect.github.com/tibdex))!

##### Version 1.2.0 (2017-02-14)

-   Added: The [one-var-declaration-per-line] rule. Thanks to Ruben Oostinga ([@&#8203;0xR](https://redirect.github.com/0xR))!

##### Version 1.1.1 (2017-02-12)

-   Minor documentation tweak: Changed "Exceptions" into "Special rules".

##### Version 1.1.0 (2017-02-10)

-   Fixed: The [eslint-plugin-react] exclusion rules now actually work.
-   Fixed: The CLI helper tool now works in Node.js 4. Thanks to Nathan Friedly ([@&#8203;nfriedly](https://redirect.github.com/nfriedly))!
-   Added: Support for [eslint-plugin-flowtype].
-   Improved: Minor things for the CLI helper tool.
-   Improved: There are now tests for everything.

##### Version 1.0.3 (2017-02-03)

-   Fixed: `"extends": "prettier/react"` now actually works.

##### Version 1.0.2 (2017-01-30)

-   Improved: CLI helper tool instructions.

##### Version 1.0.1 (2017-01-29)

-   No difference from 1.0.0. Just an `npm publish` mistake.

##### Version 1.0.0 (2017-01-29)

-   Initial release.

[@&#8203;babel/eslint-plugin]: https://redirect.github.com/babel/babel/tree/main/eslint/babel-eslint-plugin

[@&#8203;typescript-eslint/block-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/block-spacing.md

[@&#8203;typescript-eslint/brace-style]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/brace-style.md

[@&#8203;typescript-eslint/comma-dangle]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-dangle.md

[@&#8203;typescript-eslint/comma-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/comma-spacing.md

[@&#8203;typescript-eslint/eslint-plugin]: https://redirect.github.com/typescript-eslint/typescript-eslint

[@&#8203;typescript-eslint/func-call-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/func-call-spacing.md

[@&#8203;typescript-eslint/key-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/key-spacing.md

[@&#8203;typescript-eslint/keyword-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/keyword-spacing.md

[@&#8203;typescript-eslint/lines-around-comment]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/lines-around-comment.md

[@&#8203;typescript-eslint/no-extra-parens]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-parens.md

[@&#8203;typescript-eslint/no-extra-semi]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/no-extra-semi.md

[@&#8203;typescript-eslint/object-curly-spacing]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/object-curly-spacing.md

[@&#8203;typescript-eslint/quotes-special]: 857257179f/README.md (quotes)

[@&#8203;typescript-eslint/quotes]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/quotes.md

[@&#8203;typescript-eslint/semi]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/semi.md

[@&#8203;typescript-eslint/space-before-blocks]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-before-blocks.md

[@&#8203;typescript-eslint/space-before-function-paren]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-before-function-paren.md

[@&#8203;typescript-eslint/space-infix-ops]: https://redirect.github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/docs/rules/space-infix-ops.md

[array-bracket-newline]: https://eslint.org/docs/rules/array-bracket-newline

[array-element-newline]: https://eslint.org/docs/rules/array-element-newline

[arrow-body-style]: https://eslint.org/docs/rules/arrow-body-style

[arrow-special]: 2c842675e5/README.md (arrow-body-style-and-prefer-arrow-callback)

[curly]: https://eslint.org/docs/rules/curly

[deprecated-8.53.0]: https://eslint.org/blog/2023/10/deprecating-formatting-rules/

[end-of-line]: https://prettier.io/docs/en/options.html#end-of-line

[eslint 4.0.0]: https://eslint.org/blog/2017/06/eslint-v4.0.0-released

[eslint 4.6.0]: https://eslint.org/blog/2017/09/eslint-v4.6.0-released

[ESLINT_USE_FLAT_CONFIG]: https://redirect.github.com/prettier/eslint-config-prettier#eslint_use_flat_config-environment-variable

[eslint-plugin-babel]: https://redirect.github.com/babel/eslint-plugin-babel

[eslint-plugin-flowtype]: https://redirect.github.com/gajus/eslint-plugin-flowtype

[eslint-plugin-prettier]: https://redirect.github.com/prettier/eslint-plugin-prettier

[eslint-plugin-react]: https://redirect.github.com/yannickcr/eslint-plugin-react

[eslint-plugin-standard]: https://redirect.github.com/xjamundx/eslint-plugin-standard

[eslint-plugin-typescript]: https://redirect.github.com/bradzacher/eslint-plugin-typescript

[eslint-plugin-unicorn]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn

[eslint-plugin-vue]: https://redirect.github.com/vuejs/eslint-plugin-vue

[excluding deprecated rules]: 9f6b59486a (excluding-deprecated-rules)

[flowtype/boolean-style]: https://redirect.github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-boolean-style

[flowtype/object-type-curly-spacing]: https://redirect.github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-object-type-curly-spacing

[flowtype/quotes]: https://redirect.github.com/gajus/eslint-plugin-flowtype#eslint-plugin-flowtype-rules-quotes

[function-call-argument-newline]: https://eslint.org/docs/rules/function-call-argument-newline

[function-paren-newline]: https://eslint.org/docs/rules/function-paren-newline

[implicit-arrow-linebreak]: https://eslint.org/docs/rules/implicit-arrow-linebreak

[indent-legacy]: https://eslint.org/docs/rules/indent-legacy

[linebreak-style]: https://eslint.org/docs/rules/linebreak-style

[lines-around-comment-special]: 5399175c37/README.md (lines-around-comment)

[lines-around-comment]: https://eslint.org/docs/rules/lines-around-comment

[max-statements-per-line]: https://eslint.org/docs/latest/rules/max-statements-per-line

[no-confusing-arrow-special]: 08ac5bcc25/README.md (no-confusing-arrow)

[no-confusing-arrow]: https://eslint.org/docs/rules/no-confusing-arrow

[no-floating-decimal]: https://eslint.org/docs/rules/no-floating-decimal

[no-tabs-special]: dfa6e2b51f/README.md (no-tabs)

[no-tabs]: https://eslint.org/docs/rules/no-tabs

[no-unexpected-multiline-special]: 5399175c37/README.md (no-unexpected-multiline)

[no-unexpected-multiline]: https://eslint.org/docs/rules/no-unexpected-multiline

[nonblock-statement-body-position]: https://eslint.org/docs/rules/nonblock-statement-body-position

[one-var-declaration-per-line]: https://eslint.org/docs/rules/one-var-declaration-per-line

[plugin:prettier/recommended]: https://redirect.github.com/prettier/eslint-plugin-prettier#recommended-configuration

[prefer-arrow-callback]: https://eslint.org/docs/rules/prefer-arrow-callback

[prettier-prettier-config]: 03c79b9306 (arrow-body-style-and-prefer-arrow-callback)

[prettier-self-closing]: https://prettier.io/blog/2019/06/06/1.18.0.html#stop-converting-empty-jsx-elements-to-self-closing-elements-6127-by-duailibe

[prettier]: https://redirect.github.com/prettier

[quotes-special]: 8d264cd0a7/README.md (quotes)

[quotes]: https://eslint.org/docs/rules/quotes

[react/jsx-child-element-spacing]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-child-element-spacing.md

[react/jsx-closing-tag-location]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-closing-tag-location.md

[react/jsx-curly-newline]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-curly-newline.md

[react/jsx-newline]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-newline.md

[react/jsx-one-expression-per-line]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-one-expression-per-line.md

[react/jsx-props-no-multi-spaces]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-props-no-multi-spaces.md

[react/self-closing-comp]: https://redirect.github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/self-closing-comp.md

[semi-style]: https://eslint.org/docs/rules/semi-style

[switch-colon-spacing]: https://eslint.org/docs/rules/switch-colon-spacing

[template-tag-spacing]: https://eslint.org/docs/rules/template-tag-spacing

[unicode-bom]: https://eslint.org/docs/rules/unicode-bom

[unicorn/empty-brace-spaces]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/empty-brace-spaces.md

[unicorn/no-nested-ternary]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/no-nested-ternary.md

[unicorn/template-indent-special]: 4110dff0c5/README.md (unicorntemplate-indent)

[unicorn/template-indent]: https://redirect.github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/rules/template-indent.md

[vue/array-element-newline]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/array-element-newline.md

[vue/arrow-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/arrow-spacing.md

[vue/block-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/block-spacing.md

[vue/brace-style]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/brace-style.md

[vue/comma-dangle]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/comma-dangle.md

[vue/dot-location]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/dot-location.md

[vue/html-self-closing-special]: d5e7af9862/README.md (vuehtml-self-closing)

[vue/html-self-closing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/html-self-closing.md

[vue/keyword-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/array-bracket-newline.md

[vue/keyword-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/block-tag-newline.md

[vue/keyword-spacing]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/keyword-spacing.md

[vue/max-len]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/max-len.md

[vue/multiline-ternary]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/multiline-ternary.md

[vue/quote-props]: https://redirect.github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/quote-props.md

### [`v10.0.0`](https://redirect.github.com/prettier/eslint-config-prettier/blob/HEAD/CHANGELOG.md#1000)

[Compare Source](https://redirect.github.com/prettier/eslint-config-prettier/compare/v9.1.0...v10.0.0)

##### Major Changes

-   [#&#8203;272](https://redirect.github.com/prettier/eslint-config-prettier/pull/272) [`5be64be`](5be64bef68) Thanks [@&#8203;abrahamguo](https://redirect.github.com/abrahamguo)! - add support for [@&#8203;stylistic](https://redirect.github.com/stylistic) formatting rules

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-17 05:23:03 +00:00
doouding
b350dd1580 fix: legacy e2e test debug (#9746) 2025-01-17 04:26:59 +00:00
EYHN
ca9c94861a refactor(core): adjust merbers module apis (#9695) 2025-01-17 02:50:02 +00:00
forehalo
64335b9e0c feat(server): add model base (#9734) 2025-01-17 02:03:53 +00:00
L-Sun
c2149f218b refactor(editor): enable toc dragging in page mode (#9736)
Related [BS-2322](https://linear.app/affine-design/issue/BS-2322/toc-排序坏掉部分的修复)
2025-01-16 17:53:28 +00:00
EYHN
a2ffdb4047 feat(core): new worker workspace engine (#9257) 2025-01-16 16:22:18 +00:00
pengx17
7dc470e7ea feat(core): add new bs dnd adapter (#9717) 2025-01-16 13:54:50 +00:00
doouding
99717196c5 refactor: rewrite blocksuite dnd (#9595)
### Changed

- Refactored BlockSuite drag-and-drop using @atlaskit/pragmatic-drag-and-drop/element/adapter.
- Updated block dragging to use the new drag-and-drop infrastructure.

### BlockSuite DND API

Access the BlockSuite drag-and-drop API via `std.dnd`. This is a lightweight wrapper around pragmatic-drag-and-drop, offering convenient generic types and more intuitive option names.

#### Drag payload structure
There's some constrain about drag payload. The whole drag payload looks like this:

```typescript
type DragPayload = {
  entity: {
    type: string
  },
  from: {
    at: 'blocksuite',
    docId: string
  }
}
```
- The `from` field is auto-generated—no need for manual handling.
- The `entity` field is customizable, but it must include a `type`.

All drag-and-drop methods accept a generic type for entity, ensuring more accurate payloads in event handlers.

```typescript
type BlockEntity = {
  type: 'blocks',
  blockIds: string[]
}

dnd.draggable<BlockEntity>({
  element: someElement,
  setDragData: () => {
    // the return type must satisfy the generic type
    // in this case, it's BlockEntity
    return {
      type: 'blocks',
      blockIds: []
    }
  }
});

dnd.monitor<BlockEntity>({
  // the arguments is same for other event handler
  onDrag({ source }) {
    // the type of this is BlockEntity
    source.data.entity
  }
})
```

#### Drop payload
When hover on droppable target. You can set drop payload as well. All drag-and-drop methods accept a second generic type for drop payload.

The drop payload is customizable. Additionally, the DND system will add an `edge` field to the final payload object, indicating the nearest edge of the drop target relative to the current drag position.

```typescript
type DropPayload = {
  blockId: string;
}

dnd.dropTarget<BlockEntity, DropPayload>({
  getData() {
    // the type should be DropPayload
    return {
      blockId: 'someId'
    }
  }
});

dnd.monitor<BlockEntity, DropPayload>({
  // drag over on drop target
  onDrag({ location }) {
    const target = location.current.dropTargets[0];

    // the type is DropPayload
    target.data;
    // retrieve the nearest edge of the drop target relative to the current drop position.
    target.data.edge;
  }
})
```
2025-01-16 12:36:58 +00:00
liuyi
3828144849 fix(server): disable checksum check for r2 storage when using aws-s3 sdk (#9735) 2025-01-16 11:47:50 +00:00
renovate
908afe19ee chore: bump up file-type version to v20 (#9731)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [file-type](https://redirect.github.com/sindresorhus/file-type) | [`^19.6.0` -> `^20.0.0`](https://renovatebot.com/diffs/npm/file-type/19.6.0/20.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/file-type/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/file-type/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/file-type/19.6.0/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/file-type/19.6.0/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [file-type](https://redirect.github.com/sindresorhus/file-type) | [`^19.5.0` -> `^20.0.0`](https://renovatebot.com/diffs/npm/file-type/19.6.0/20.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/file-type/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/file-type/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/file-type/19.6.0/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/file-type/19.6.0/20.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sindresorhus/file-type (file-type)</summary>

### [`v20.0.0`](https://redirect.github.com/sindresorhus/file-type/releases/tag/v20.0.0)

[Compare Source](https://redirect.github.com/sindresorhus/file-type/compare/v19.6.0...v20.0.0)

##### Breaking

-   Drop MIME-type and extension enumeration in types ([#&#8203;693](https://redirect.github.com/sindresorhus/file-type/issues/693))  [`0ff11c6`](https://redirect.github.com/sindresorhus/file-type/commit/0ff11c6)
-   Remove `NodeFileTypeParser` in favor of using `FileTypeParser` on all platforms ([#&#8203;707](https://redirect.github.com/sindresorhus/file-type/issues/707))  [`ff8eed8`](https://redirect.github.com/sindresorhus/file-type/commit/ff8eed8)

##### Improvements

-   Give API access to `FileTypeParser#detectors` ([#&#8203;704](https://redirect.github.com/sindresorhus/file-type/issues/704))  [`7e72bbc`](https://redirect.github.com/sindresorhus/file-type/commit/7e72bbc)
-   Improve Nikon RAW NEF (Tiff) format detection ([#&#8203;670](https://redirect.github.com/sindresorhus/file-type/issues/670))  [`cf6fc1e`](https://redirect.github.com/sindresorhus/file-type/commit/cf6fc1e)
-   Add support for Java archive (`.jar`) ([#&#8203;719](https://redirect.github.com/sindresorhus/file-type/issues/719))  [`8651809`](https://redirect.github.com/sindresorhus/file-type/commit/8651809)
-   Add support for MSOffice macro-enabled docs and templates ([#&#8203;720](https://redirect.github.com/sindresorhus/file-type/issues/720))  [`7fe5667`](https://redirect.github.com/sindresorhus/file-type/commit/7fe5667)
-   Add support for OpenDocument graphics and templates ([#&#8203;718](https://redirect.github.com/sindresorhus/file-type/issues/718))  [`4db407d`](https://redirect.github.com/sindresorhus/file-type/commit/4db407d)
-   Add support for Microsoft Excel template with macros (.xltm) ([#&#8203;714](https://redirect.github.com/sindresorhus/file-type/issues/714))  [`1fe621a`](https://redirect.github.com/sindresorhus/file-type/commit/1fe621a)
-   Add support for Microsoft Word template (.dotx) ([#&#8203;713](https://redirect.github.com/sindresorhus/file-type/issues/713))  [`643ef78`](https://redirect.github.com/sindresorhus/file-type/commit/643ef78)
-   Add support for Microsoft Excel template (`.xltx`) ([#&#8203;712](https://redirect.github.com/sindresorhus/file-type/issues/712))  [`0dab3e0`](https://redirect.github.com/sindresorhus/file-type/commit/0dab3e0)
-   Add support for Microsoft PowerPoint template ( `.potx`) ([#&#8203;710](https://redirect.github.com/sindresorhus/file-type/issues/710))  [`f978619`](https://redirect.github.com/sindresorhus/file-type/commit/f978619)
-   Add support for ZIP decompression using `@tokenizer/inflate` ([#&#8203;695](https://redirect.github.com/sindresorhus/file-type/issues/695))  [`399b0f1`](https://redirect.github.com/sindresorhus/file-type/commit/399b0f1)
-   Add support for `.lz4` file format ([#&#8203;706](https://redirect.github.com/sindresorhus/file-type/issues/706))  [`74acf94`](https://redirect.github.com/sindresorhus/file-type/commit/74acf94)
-   Add support for format `.drc`, Google's Draco 3D Data Compression ([#&#8203;702](https://redirect.github.com/sindresorhus/file-type/issues/702))  [`e99257d`](https://redirect.github.com/sindresorhus/file-type/commit/e99257d)

##### Fixes

-   Fix code sequence "File Type Box" detection ([#&#8203;705](https://redirect.github.com/sindresorhus/file-type/issues/705))  [`7d4dd8d`](https://redirect.github.com/sindresorhus/file-type/commit/7d4dd8d)

***

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-16 10:08:14 +00:00
renovate
9160b72d5b chore: bump up electron version to v34 (#9694)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [electron](https://redirect.github.com/electron/electron) | [`^33.3.0` -> `^34.0.0`](https://renovatebot.com/diffs/npm/electron/33.3.1/34.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron/34.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron/34.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron/33.3.1/34.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron/33.3.1/34.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>electron/electron (electron)</summary>

### [`v34.0.0`](https://redirect.github.com/electron/electron/releases/tag/v34.0.0): electron v34.0.0

[Compare Source](https://redirect.github.com/electron/electron/compare/v33.3.1...v34.0.0)

### Release Notes for v34.0.0

#### Other Changes

-   Updated Chromium to 132.0.6834.83. [#&#8203;45164](https://redirect.github.com/electron/electron/pull/45164)

#### Documentation

-   Documentation changes: [#&#8203;45189](https://redirect.github.com/electron/electron/pull/45189)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-16 09:51:15 +00:00
forehalo
1687184891 feat(server): feature model (#9709)
close CLOUD-101
2025-01-16 09:36:16 +00:00
renovate
0acd23695b chore: bump up @sentry/esbuild-plugin version to v3 (#9720)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`^2.22.7` -> `^3.0.0`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/2.23.0/3.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fesbuild-plugin/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fesbuild-plugin/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fesbuild-plugin/2.23.0/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fesbuild-plugin/2.23.0/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript-bundler-plugins (@&#8203;sentry/esbuild-plugin)</summary>

### [`v3.0.0`](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/blob/HEAD/CHANGELOG.md#300)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/compare/2.23.0...3.0.0)

##### Breaking Changes

-   Injected code will now use `let`, which was added in ES6 (ES2015).
    This means that ES6 is the minimum JavaScript version that the Sentry bundler plugins support.

-   Deprecated options have been removed:
    -   `deleteFilesAfterUpload` - Use `filesToDeleteAfterUpload` instead
    -   `bundleSizeOptimizations.excludePerformanceMonitoring` - Use `bundleSizeOptimizations.excludeTracing` instead
    -   `_experiments.moduleMetadata` - Use `moduleMetadata` instead
    -   `cleanArtifacts` - Did not do anything

##### List of Changes

-   fix!: Wrap injected code in block-statement to contain scope ([#&#8203;646](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/646))
-   chore!: Remove deprecated options ([#&#8203;654](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/654))
-   feat(logger): Use console methods respective to log level ([#&#8203;652](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/652))
-   fix(webpack): Ensure process exits when done ([#&#8203;653](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/653))
-   fix: Use correct replacement matcher for `bundleSizeOptimizations.excludeTracing` ([#&#8203;644](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/644))

Work in this release contributed by [@&#8203;jdelStrother](https://redirect.github.com/jdelStrother). Thank you for your contribution!

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-16 09:20:13 +00:00
fundon
268e89911a perf(editor): fix autoUpdate being continuously added when updating selections (#9727)
Since `updated` is triggered every time click or update the selection, `autoUpdate` will be continuously added.

Case: select text and `Shift+ArrowLeft/ArrowRight`
2025-01-16 09:05:10 +00:00
akumatus
562e358dac fix(core): downward arrow is visible when message panel is not scrollable (#9670)
Fix issue [AF-2056](https://linear.app/affine-design/issue/AF-2056).

### What changed?
- Check both `showDownIndicator` and `filteredItems.length` when rendering `DownArrowIcon`.
- Use `scrollIntoView` instead of `scrollToEnd` during AI result transmission.

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/9810856c-04fe-4381-8a9b-a87a0d8931d6.png)
2025-01-16 08:49:10 +00:00
L-Sun
969ac30874 fix(editor): reactive heading icon (#9729)
Close [BS-2407](https://linear.app/affine-design/issue/BS-2407/[bug]-edgeless-里选中-title-后更改,hint-没有改变)
2025-01-16 08:32:15 +00:00
doodlewind
509cdfd7bf fix(editor): playground font inconsistency (#9728) 2025-01-16 08:16:13 +00:00
renovate
cb81f4a963 chore: bump up @sentry/webpack-plugin version to v3 (#9721)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@sentry/webpack-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`^2.22.7` -> `^3.0.0`](https://renovatebot.com/diffs/npm/@sentry%2fwebpack-plugin/2.23.0/3.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fwebpack-plugin/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fwebpack-plugin/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fwebpack-plugin/2.23.0/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fwebpack-plugin/2.23.0/3.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>getsentry/sentry-javascript-bundler-plugins (@&#8203;sentry/webpack-plugin)</summary>

### [`v3.0.0`](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/blob/HEAD/CHANGELOG.md#300)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/compare/2.23.0...3.0.0)

##### Breaking Changes

-   Injected code will now use `let`, which was added in ES6 (ES2015).
    This means that ES6 is the minimum JavaScript version that the Sentry bundler plugins support.

-   Deprecated options have been removed:
    -   `deleteFilesAfterUpload` - Use `filesToDeleteAfterUpload` instead
    -   `bundleSizeOptimizations.excludePerformanceMonitoring` - Use `bundleSizeOptimizations.excludeTracing` instead
    -   `_experiments.moduleMetadata` - Use `moduleMetadata` instead
    -   `cleanArtifacts` - Did not do anything

##### List of Changes

-   fix!: Wrap injected code in block-statement to contain scope ([#&#8203;646](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/646))
-   chore!: Remove deprecated options ([#&#8203;654](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/654))
-   feat(logger): Use console methods respective to log level ([#&#8203;652](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/652))
-   fix(webpack): Ensure process exits when done ([#&#8203;653](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/653))
-   fix: Use correct replacement matcher for `bundleSizeOptimizations.excludeTracing` ([#&#8203;644](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/644))

Work in this release contributed by [@&#8203;jdelStrother](https://redirect.github.com/jdelStrother). Thank you for your contribution!

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-16 07:26:08 +00:00
renovate
6a07d0a7dd chore: bump up changelogithub version to v13 (#9723)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [changelogithub](https://redirect.github.com/antfu/changelogithub) | [`^0.13.11` -> `^13.0.0`](https://renovatebot.com/diffs/npm/changelogithub/0.13.11/13.12.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/changelogithub/13.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/changelogithub/13.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/changelogithub/0.13.11/13.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/changelogithub/0.13.11/13.12.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>antfu/changelogithub (changelogithub)</summary>

### [`v13.12.1`](https://redirect.github.com/antfu/changelogithub/releases/tag/v13.12.1)

[Compare Source](https://redirect.github.com/antfu/changelogithub/compare/v0.13.11...v13.12.1)

Adopt to [Epoch SemVer](https://antfu.me/posts/epoch-semver), no behavior change from the last version.

*No significant changes*

#####     [View changes on GitHub](https://redirect.github.com/antfu/changelogithub/compare/v13.12.0...v13.12.1)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xMDcuMCIsInVwZGF0ZWRJblZlciI6IjM5LjEwNy4wIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5IiwibGFiZWxzIjpbImRlcGVuZGVuY2llcyJdfQ==-->
2025-01-16 07:05:43 +00:00
pengx17
9f3a304885 feat(electron): more desktop app related shortcuts (#9724)
fix AF-2126, AF-2124

- Add CMD+M for minimize the app.
- Enhance how CMD+W works. Close the following in order, stop if any one is closed:
  - peek view
  - split view
  - tab
  - otherwise, hide the app
2025-01-16 06:50:08 +00:00
fundon
676f855564 fix(editor): stop paste-copy event bubbling on bookmark modal (#9713)
Closes: [BS-2402](https://linear.app/affine-design/issue/BS-2402/bookmark-没法粘贴修改标题,会跑到下一行)
2025-01-16 06:34:09 +00:00
L-Sun
f7cbd21dd9 chore(debug): add vscode debug launch setting (#9725)
This PR allows vscode to add breakpoints to the editor's code.
2025-01-16 06:17:41 +00:00
renovate
32f09b5ac0 chore: bump up all non-major dependencies (#9689)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@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.726.1` -> `3.729.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.726.1/3.729.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.729.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.729.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.726.1/3.729.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.726.1/3.729.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@capacitor/browser](https://redirect.github.com/ionic-team/capacitor-plugins) | [`6.0.4` -> `6.0.5`](https://renovatebot.com/diffs/npm/@capacitor%2fbrowser/6.0.4/6.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@capacitor%2fbrowser/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@capacitor%2fbrowser/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@capacitor%2fbrowser/6.0.4/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@capacitor%2fbrowser/6.0.4/6.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@faker-js/faker](https://fakerjs.dev) ([source](https://redirect.github.com/faker-js/faker)) | [`9.3.0` -> `9.4.0`](https://renovatebot.com/diffs/npm/@faker-js%2ffaker/9.3.0/9.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@faker-js%2ffaker/9.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@faker-js%2ffaker/9.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@faker-js%2ffaker/9.3.0/9.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@faker-js%2ffaker/9.3.0/9.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/core](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-core) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.30.0` -> `1.30.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fcore/1.30.0/1.30.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fcore/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fcore/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fcore/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fcore/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/exporter-prometheus](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-exporter-prometheus) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`0.57.0` -> `0.57.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-prometheus/0.57.0/0.57.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fexporter-prometheus/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fexporter-prometheus/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fexporter-prometheus/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fexporter-prometheus/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/exporter-zipkin](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-exporter-zipkin) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.30.0` -> `1.30.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fexporter-zipkin/1.30.0/1.30.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fexporter-zipkin/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fexporter-zipkin/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fexporter-zipkin/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fexporter-zipkin/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`0.57.0` -> `0.57.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation/0.57.0/0.57.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/instrumentation-http](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-instrumentation-http) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`0.57.0` -> `0.57.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-http/0.57.0/0.57.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-http/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-http/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-http/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-http/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/resources](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-resources) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.30.0` -> `1.30.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fresources/1.30.0/1.30.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fresources/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fresources/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fresources/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fresources/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/sdk-metrics](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/sdk-metrics) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.30.0` -> `1.30.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-metrics/1.30.0/1.30.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-metrics/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fsdk-metrics/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fsdk-metrics/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-metrics/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/sdk-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/experimental/packages/opentelemetry-sdk-node) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`0.57.0` -> `0.57.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-node/0.57.0/0.57.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-node/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fsdk-node/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fsdk-node/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-node/0.57.0/0.57.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@opentelemetry/sdk-trace-node](https://redirect.github.com/open-telemetry/opentelemetry-js/tree/main/packages/opentelemetry-sdk-trace-node) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js)) | [`1.30.0` -> `1.30.1`](https://renovatebot.com/diffs/npm/@opentelemetry%2fsdk-trace-node/1.30.0/1.30.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fsdk-trace-node/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fsdk-trace-node/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fsdk-trace-node/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fsdk-trace-node/1.30.0/1.30.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@sentry/electron](https://redirect.github.com/getsentry/sentry-electron) | [`5.9.0` -> `5.10.0`](https://renovatebot.com/diffs/npm/@sentry%2felectron/5.9.0/5.10.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2felectron/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2felectron/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2felectron/5.9.0/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2felectron/5.9.0/5.10.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.48.0` -> `8.50.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.48.0/8.50.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/8.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/8.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/8.48.0/8.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/8.48.0/8.50.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@smarttools/eslint-plugin-rxjs](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs) | [`1.0.15` -> `1.0.16`](https://renovatebot.com/diffs/npm/@smarttools%2feslint-plugin-rxjs/1.0.15/1.0.16) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@smarttools%2feslint-plugin-rxjs/1.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@smarttools%2feslint-plugin-rxjs/1.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@smarttools%2feslint-plugin-rxjs/1.0.15/1.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@smarttools%2feslint-plugin-rxjs/1.0.15/1.0.16?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-essentials/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-essentials/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-essentials/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-essentials/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-essentials/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-interactions/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-interactions/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-interactions/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-interactions/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-interactions/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-links/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-links/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-links/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-links/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-links/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/@storybook%2faddon-mdx-gfm/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2faddon-mdx-gfm/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2faddon-mdx-gfm/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2faddon-mdx-gfm/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2faddon-mdx-gfm/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/@storybook%2freact/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/@storybook%2freact-vite/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@storybook%2freact-vite/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@storybook%2freact-vite/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@storybook%2freact-vite/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@storybook%2freact-vite/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@testing-library/react](https://redirect.github.com/testing-library/react-testing-library) | [`16.1.0` -> `16.2.0`](https://renovatebot.com/diffs/npm/@testing-library%2freact/16.1.0/16.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@testing-library%2freact/16.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@testing-library%2freact/16.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@testing-library%2freact/16.1.0/16.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@testing-library%2freact/16.1.0/16.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.17.12` -> `20.17.14`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.12/20.17.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.12/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.12/20.17.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [fs-extra](https://redirect.github.com/jprichardson/node-fs-extra) | [`11.2.0` -> `11.3.0`](https://renovatebot.com/diffs/npm/fs-extra/11.2.0/11.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/fs-extra/11.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/fs-extra/11.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/fs-extra/11.2.0/11.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/fs-extra/11.2.0/11.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`16.5.3` -> `16.6.0`](https://renovatebot.com/diffs/npm/happy-dom/16.5.3/16.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/16.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/16.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/16.5.3/16.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/16.5.3/16.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [nest-winston](https://redirect.github.com/gremo/nest-winston) | [`1.10.0` -> `1.10.1`](https://renovatebot.com/diffs/npm/nest-winston/1.10.0/1.10.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/nest-winston/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/nest-winston/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/nest-winston/1.10.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/nest-winston/1.10.0/1.10.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [postcss](https://postcss.org/) ([source](https://redirect.github.com/postcss/postcss)) | [`8.5.0` -> `8.5.1`](https://renovatebot.com/diffs/npm/postcss/8.5.0/8.5.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.5.0/8.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.5.0/8.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`1.27.0` -> `1.27.2`](https://renovatebot.com/diffs/npm/shiki/1.27.0/1.27.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/1.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/1.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.27.0/1.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.27.0/1.27.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [sonner](https://sonner.emilkowal.ski/) ([source](https://redirect.github.com/emilkowalski/sonner)) | [`1.7.1` -> `1.7.2`](https://renovatebot.com/diffs/npm/sonner/1.7.1/1.7.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/sonner/1.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/sonner/1.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/sonner/1.7.1/1.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/sonner/1.7.1/1.7.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [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.4.7` -> `8.5.0`](https://renovatebot.com/diffs/npm/storybook/8.4.7/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/storybook/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/storybook/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/storybook/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/storybook/8.4.7/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.2.1` -> `7.2.2`](https://renovatebot.com/diffs/npm/undici/7.2.1/7.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/7.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/7.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/7.2.1/7.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/7.2.1/7.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.101.0` -> `3.102.0`](https://renovatebot.com/diffs/npm/wrangler/3.101.0/3.102.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/3.102.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/wrangler/3.102.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/wrangler/3.101.0/3.102.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/3.101.0/3.102.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v3.729.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37290-2025-01-15)

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

##### Features

-   **client-s3:** This change enhances integrity protections for new SDK requests to S3. S3 SDKs now support the CRC64NVME checksum algorithm, full object checksums for multipart S3 objects, and new default integrity protections for S3 requests. ([a550721](a550721e05))

#### [3.726.1](https://redirect.github.com/aws/aws-sdk-js-v3/compare/v3.726.0...v3.726.1) (2025-01-10)

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

</details>

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

### [`v6.0.5`](https://redirect.github.com/ionic-team/capacitor-plugins/releases/tag/%40capacitor/browser%406.0.5)

[Compare Source](https://redirect.github.com/ionic-team/capacitor-plugins/compare/@capacitor/browser@6.0.4...@capacitor/browser@6.0.5)

##### Bug Fixes

-   **browser:** crash when trying to open blob urls on android ([#&#8203;2274](https://redirect.github.com/ionic-team/capacitor-plugins/issues/2274)) ([#&#8203;2294](https://redirect.github.com/ionic-team/capacitor-plugins/issues/2294)) ([111582c](111582c2e7))

</details>

<details>
<summary>faker-js/faker (@&#8203;faker-js/faker)</summary>

### [`v9.4.0`](https://redirect.github.com/faker-js/faker/blob/HEAD/CHANGELOG.md#940-2025-01-15)

[Compare Source](https://redirect.github.com/faker-js/faker/compare/v9.3.0...v9.4.0)

##### Features

-   **finance:** use fake patterns for transactionDescription ([#&#8203;3202](https://redirect.github.com/faker-js/faker/issues/3202)) ([5ec4a6c](5ec4a6c9dd))
-   **internet:** update to simplified modern user-agent list ([#&#8203;3324](https://redirect.github.com/faker-js/faker/issues/3324)) ([3c7abb5](3c7abb55e6))
-   **location:** add list of spoken languages ([#&#8203;3333](https://redirect.github.com/faker-js/faker/issues/3333)) ([ff6dda9](ff6dda94dd))

##### Changed Locales

-   **locale:** fix various locale data with trailing spaces ([#&#8203;3329](https://redirect.github.com/faker-js/faker/issues/3329)) ([e5eec0e](e5eec0ed84))
-   **locale:** improve product_name data in en and tr ([#&#8203;3372](https://redirect.github.com/faker-js/faker/issues/3372)) ([773fc1f](773fc1f654))

##### Bug Fixes

-   **animal:** re-moo-ved some incorrect cow data ([#&#8203;3326](https://redirect.github.com/faker-js/faker/issues/3326)) ([47f835b](47f835bd0d))
-   basic wildcard range handling + add more tests ([#&#8203;3322](https://redirect.github.com/faker-js/faker/issues/3322)) ([817f8a0](817f8a01d9))
-   **finance:** update Discover card number format to ensure accuracy ([#&#8203;3336](https://redirect.github.com/faker-js/faker/issues/3336)) ([69c0063](69c006344b))
-   **image:** dataUri should return random type ([#&#8203;3347](https://redirect.github.com/faker-js/faker/issues/3347)) ([eceb17d](eceb17d257))
-   **locales:** update chemical element names in zh_CN ([#&#8203;3371](https://redirect.github.com/faker-js/faker/issues/3371)) ([6ec6f84](6ec6f84922))
-   **location:** fix bad uz street_name_part data ([#&#8203;3328](https://redirect.github.com/faker-js/faker/issues/3328)) ([b6132cb](b6132cbee6))
-   **music:** fix truncated song names with commas ([#&#8203;3327](https://redirect.github.com/faker-js/faker/issues/3327)) ([f36fc71](f36fc71ac4)), closes [#&#8203;996](https://redirect.github.com/faker-js/faker/issues/996)
-   **system:** semver parts should not be limited to 0-9 ([#&#8203;3349](https://redirect.github.com/faker-js/faker/issues/3349)) ([c0d92b8](c0d92b8fa8))

</details>

<details>
<summary>open-telemetry/opentelemetry-js (@&#8203;opentelemetry/core)</summary>

### [`v1.30.1`](https://redirect.github.com/open-telemetry/opentelemetry-js/compare/v1.30.0...cbc912d67bda462ca00449d7ce7b80052c20a4fc)

[Compare Source](https://redirect.github.com/open-telemetry/opentelemetry-js/compare/v1.30.0...v1.30.1)

</details>

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

### [`v5.10.0`](https://redirect.github.com/getsentry/sentry-electron/blob/HEAD/CHANGELOG.md#5100)

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

-   fix: Deprecate renderer init options which should only be used in main process
    ([#&#8203;1044](https://redirect.github.com/getsentry/sentry-electron/issues/1044))
-   feat: Update from
    [v8.46.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/8.46.0)
    to
    [v8.48.0](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/8.48.0)
    of JavaScript SDKs ([#&#8203;1046](https://redirect.github.com/getsentry/sentry-electron/issues/1046))
-   feat: Determine Electron process from minidump metadata ([#&#8203;1049](https://redirect.github.com/getsentry/sentry-electron/issues/1049))
-   fix: Guard against invalid queue entries ([#&#8203;1053](https://redirect.github.com/getsentry/sentry-electron/issues/1053))

</details>

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

### [`v8.50.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/8.50.0)

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

-   feat(v8/react): Add support for React Router `createMemoryRouter` ([#&#8203;14985](https://redirect.github.com/getsentry/sentry-javascript/pull/14985))

#### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.29 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 21.96 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 35.85 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.19 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 63.58 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 77.5 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 89.43 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 39.5 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.89 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.69 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 25.97 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.67 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.57 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.71 KB  |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.45 KB  |
| CDN Bundle                                                       | 24.49 KB  |
| CDN Bundle (incl. Tracing)                                       | 37.56 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 72.84 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 78.2 KB   |
| CDN Bundle - uncompressed                                        | 71.93 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 111.42 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 225.68 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 238.78 KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 38.92 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.35 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 162.82 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 98.95 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 126.65 KB |

### [`v8.49.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/8.49.0)

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

-   feat(v8/browser): Flush offline queue on flush and browser online event ([#&#8203;14969](https://redirect.github.com/getsentry/sentry-javascript/pull/14969))
-   feat(v8/react): Add a `handled` prop to ErrorBoundary ([#&#8203;14978](https://redirect.github.com/getsentry/sentry-javascript/pull/14978))
-   fix(profiling/v8): Don't put `require`, `__filename` and `__dirname` on global object ([#&#8203;14952](https://redirect.github.com/getsentry/sentry-javascript/pull/14952))
-   fix(v8/node): Enforce that ContextLines integration does not leave open file handles ([#&#8203;14997](https://redirect.github.com/getsentry/sentry-javascript/pull/14997))
-   fix(v8/replay): Disable mousemove sampling in rrweb for iOS browsers ([#&#8203;14944](https://redirect.github.com/getsentry/sentry-javascript/pull/14944))
-   fix(v8/sveltekit): Ensure source maps deletion is called after source ma… ([#&#8203;14963](https://redirect.github.com/getsentry/sentry-javascript/pull/14963))
-   fix(v8/vue): Re-throw error when no errorHandler exists ([#&#8203;14943](https://redirect.github.com/getsentry/sentry-javascript/pull/14943))

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

#### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.29 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 21.96 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 35.85 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.19 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 63.58 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 77.5 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 89.44 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 39.5 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.89 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.69 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 25.97 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.67 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.57 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.71 KB  |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.45 KB  |
| CDN Bundle                                                       | 24.49 KB  |
| CDN Bundle (incl. Tracing)                                       | 37.56 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 72.84 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 78.2 KB   |
| CDN Bundle - uncompressed                                        | 71.93 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 111.42 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 225.68 KB |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 238.78 KB |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 38.92 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.36 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 162.82 KB |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 98.95 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 126.65 KB |

</details>

<details>
<summary>DaveMBush/eslint-plugin-rxjs (@&#8203;smarttools/eslint-plugin-rxjs)</summary>

### [`v1.0.16`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.16): 1.0.16 (2025-01-15)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.15...v1.0.16)

Remove name property from recommended-legacy
Cleans up circular references

</details>

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

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

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

Storybook 8.5 is packed with powerful features to enhance your development workflow. This release makes it easier than ever to build accessible, well-tested UIs. Here’s what’s new:

-   🦾 Realtime accessibility tests to help build UIs for everybody
-   🛡️ Project code coverage to measure the completeness of your tests
-   🎯 Focused tests for faster test feedback
-   ⚛️ React Native Web Vite framework (experimental) for testing mobile UI⚛️
-   🎁 Storybook test early access program to level up your testing game
-   💯 Hundreds more improvements

<details>
<summary>List of all updates</summary>

-   Addon A11y: Add conditional rendering for a11y violation number in Testing Module - [#&#8203;30073](https://redirect.github.com/storybookjs/storybook/pull/30073), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Add typesVersions support for TypeScript definitions in a11y package - [#&#8203;30005](https://redirect.github.com/storybookjs/storybook/pull/30005), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Adjust default behaviour when using with experimental-addon-test - [#&#8203;30162](https://redirect.github.com/storybookjs/storybook/pull/30162), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Change default element selector - [#&#8203;30253](https://redirect.github.com/storybookjs/storybook/pull/30253), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Create a11y test provider and revamp a11y addon - [#&#8203;29643](https://redirect.github.com/storybookjs/storybook/pull/29643), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Don't set a11y tag as comment in automigrations - [#&#8203;30257](https://redirect.github.com/storybookjs/storybook/pull/30257), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Fix skipped status handling in Testing Module - [#&#8203;30077](https://redirect.github.com/storybookjs/storybook/pull/30077), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Refactor environment variable handling for Vitest integration - [#&#8203;30022](https://redirect.github.com/storybookjs/storybook/pull/30022), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon A11y: Remove warnings API - [#&#8203;30049](https://redirect.github.com/storybookjs/storybook/pull/30049), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   Addon A11y: Run the a11y automigration on postInstall - [#&#8203;30004](https://redirect.github.com/storybookjs/storybook/pull/30004), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   Addon A11y: Show errors of axe properly - [#&#8203;30050](https://redirect.github.com/storybookjs/storybook/pull/30050), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   Addon A11y: Update accessibility status handling in TestProviderRender - [#&#8203;30027](https://redirect.github.com/storybookjs/storybook/pull/30027), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon Docs: Dynamically import rehype - [#&#8203;29544](https://redirect.github.com/storybookjs/storybook/pull/29544), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon Docs: Make new code panel opt in - [#&#8203;30248](https://redirect.github.com/storybookjs/storybook/pull/30248), thanks [@&#8203;shilman](https://redirect.github.com/shilman)!
-   Addon Onboarding: Prebundle react-confetti - [#&#8203;29996](https://redirect.github.com/storybookjs/storybook/pull/29996), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Add `@vitest/coverage-v8` during postinstall if no coverage reporter is installed - [#&#8203;29993](https://redirect.github.com/storybookjs/storybook/pull/29993), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Add prerequisite check for MSW - [#&#8203;30193](https://redirect.github.com/storybookjs/storybook/pull/30193), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Add support for previewHead - [#&#8203;29808](https://redirect.github.com/storybookjs/storybook/pull/29808), thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
-   Addon Test: Add Vitest 3 support - [#&#8203;30181](https://redirect.github.com/storybookjs/storybook/pull/30181), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon Test: Always run Vitest in watch mode internally - [#&#8203;29749](https://redirect.github.com/storybookjs/storybook/pull/29749), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Addon Test: Always use installed version of vitest - [#&#8203;30134](https://redirect.github.com/storybookjs/storybook/pull/30134), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   Addon Test: Clarify message when `vitest` detects missing deps - [#&#8203;29763](https://redirect.github.com/storybookjs/storybook/pull/29763), thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
-   Addon Test: Clear coverage data when starting or watching - [#&#8203;30072](https://redirect.github.com/storybookjs/storybook/pull/30072), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Context menu UI - [#&#8203;29727](https://redirect.github.com/storybookjs/storybook/pull/29727), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Context menu updates - [#&#8203;30107](https://redirect.github.com/storybookjs/storybook/pull/30107), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Correctly stop Storybook when Vitest closes - [#&#8203;30012](https://redirect.github.com/storybookjs/storybook/pull/30012), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Addon Test: Filter out falsy test results in TestProviderRender - [#&#8203;30001](https://redirect.github.com/storybookjs/storybook/pull/30001), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon Test: Fix documentation links - [#&#8203;30128](https://redirect.github.com/storybookjs/storybook/pull/30128), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Fix duplicate `test.include` patterns - [#&#8203;30029](https://redirect.github.com/storybookjs/storybook/pull/30029), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Addon Test: Fix environment variable for Vitest Storybook integration - [#&#8203;30054](https://redirect.github.com/storybookjs/storybook/pull/30054), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon Test: Fix error reporting for `vitest` crashes - [#&#8203;29751](https://redirect.github.com/storybookjs/storybook/pull/29751), thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
-   Addon Test: Fix generated path to `vitest.setup.js` - [#&#8203;30233](https://redirect.github.com/storybookjs/storybook/pull/30233), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Addon Test: Fix indexing behavior - [#&#8203;29836](https://redirect.github.com/storybookjs/storybook/pull/29836), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Fix printing null% for coverage - [#&#8203;30061](https://redirect.github.com/storybookjs/storybook/pull/30061), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Fix run request while booting or restarting Vitest - [#&#8203;29829](https://redirect.github.com/storybookjs/storybook/pull/29829), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Handle undefined storyId - [#&#8203;29998](https://redirect.github.com/storybookjs/storybook/pull/29998), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Improve error message on missing coverage package - [#&#8203;30088](https://redirect.github.com/storybookjs/storybook/pull/30088), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Addon Test: Improve support for mono-repos - [#&#8203;30216](https://redirect.github.com/storybookjs/storybook/pull/30216), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Addon Test: Make component tests status row link to the story's tests panel - [#&#8203;29992](https://redirect.github.com/storybookjs/storybook/pull/29992), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Merge viteFinal config into vitest config - [#&#8203;29806](https://redirect.github.com/storybookjs/storybook/pull/29806), thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
-   Addon Test: Only optimize react deps if applicable in vitest-plugin - [#&#8203;29617](https://redirect.github.com/storybookjs/storybook/pull/29617), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Only reset story count on file change when watch mode is enabled - [#&#8203;30121](https://redirect.github.com/storybookjs/storybook/pull/30121), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Optimize internal dependencies - [#&#8203;29595](https://redirect.github.com/storybookjs/storybook/pull/29595), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Prompt switch to `experimental-nextjs-vite` - [#&#8203;29814](https://redirect.github.com/storybookjs/storybook/pull/29814), thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
-   Addon Test: Refactor test addon to include stories automatically - [#&#8203;29367](https://redirect.github.com/storybookjs/storybook/pull/29367), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Addon Test: Remove a11y placeholder - [#&#8203;29769](https://redirect.github.com/storybookjs/storybook/pull/29769), thanks [@&#8203;JReinhold](https://redirect.github.com/JReinhold)!
-   Addon Test: Replace `glob` with `tinyglobby` - [#&#8203;29817](https://redirect.github.com/storybookjs/storybook/pull/29817), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Serve `staticDirs` with Vitest - [#&#8203;29811](https://redirect.github.com/storybookjs/storybook/pull/29811), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Show sub test provider toggle state in main testing module - [#&#8203;30019](https://redirect.github.com/storybookjs/storybook/pull/30019), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Support Storybook environment variables in Vitest - [#&#8203;29792](https://redirect.github.com/storybookjs/storybook/pull/29792), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Use correct vitest config file path - [#&#8203;30135](https://redirect.github.com/storybookjs/storybook/pull/30135), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   Addon Test: Use local storybook binary instead - [#&#8203;30021](https://redirect.github.com/storybookjs/storybook/pull/30021), thanks [@&#8203;kasperpeulen](https://redirect.github.com/kasperpeulen)!
-   Addon Test: Use ProgressSpinner for stop button in Testing Module - [#&#8203;29997](https://redirect.github.com/storybookjs/storybook/pull/29997), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Wait for 2 seconds before showing result mismatch warning - [#&#8203;30002](https://redirect.github.com/storybookjs/storybook/pull/30002), thanks [@&#8203;ghengeveld](https://redirect.github.com/ghengeveld)!
-   Addon Test: Wrap sub-paths exported with `require.resolve` - [#&#8203;30026](https://redirect.github.com/storybookjs/storybook/pull/30026), thanks [@&#8203;ndelangen](https://redirect.github.com/ndelangen)!
-   Addon Themes: Deprecate useThemeParameters - [#&#8203;30111](https://redirect.github.com/storybookjs/storybook/pull/30111), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Angular: Support statsJson in angular schemas - [#&#8203;29233](https://redirect.github.com/storybookjs/storybook/pull/29233), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Automigration: Improve addon-a11y-addon-test - [#&#8203;30127](https://redirect.github.com/storybookjs/storybook/pull/30127), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Automigration: Improve setup file transformation and version range handling for a11y migration - [#&#8203;30060](https://redirect.github.com/storybookjs/storybook/pull/30060), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   Automigrations: Skip vite config file migration for react native web - [#&#8203;30190](https://redirect.github.com/storybookjs/storybook/pull/30190), thanks [@&#8203;dannyhw](https://redirect.github.com/dannyhw)!
-   Build: Downgrade to esbuild 0.24.0 - [#&#8203;30116](https://redirect.github.com/storybookjs/storybook/pull/30116), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   Build: Revert Downgrade to esbuild 0.24.0 - [#&#8203;30120](https://redirect.github.com/storybookjs/storybook/pull/30120), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   CLI: Fix init help for `storybook` command - [#&#8203;29480](https://redirect.github.com/storybookjs/storybook/pull/29480), thanks [@&#8203;toothlessdev](https://redirect.github.com/toothlessdev)!
-   CLI: Fix new-frameworks automigration - [#&#8203;29804](https://redirect.github.com/storybookjs/storybook/pull/29804), thanks [@&#8203;yannbf](https://redirect.github.com/yannbf)!
-   CLI: Re-Add Nuxt support - [#&#8203;28607](https://redirect.github.com/storybookjs/storybook/pull/28607), thanks [@&#8203;valentinpalkovic](https://redirect.github.com/valentinpalkovic)!
-   CLI: Update a11y-test comment with experimental caveat - [#&#8203;30258](https://redirect.github.com/storybookjs

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuMTA3LjAiLCJ0YXJnZXRCcmFuY2giOiJjYW5hcnkiLCJsYWJlbHMiOlsiZGVwZW5kZW5jaWVzIl19-->
2025-01-16 03:39:08 +00:00
renovate
fd2df1c8bb chore: bump up @blocksuite/icons version to v2.2.2 (#9684)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@blocksuite/icons](https://redirect.github.com/toeverything/icons) | [`2.2.1` -> `2.2.2`](https://renovatebot.com/diffs/npm/@blocksuite%2ficons/2.2.1/2.2.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@blocksuite%2ficons/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@blocksuite%2ficons/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@blocksuite%2ficons/2.2.1/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@blocksuite%2ficons/2.2.1/2.2.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>toeverything/icons (@&#8203;blocksuite/icons)</summary>

### [`v2.2.2`](397f423d3f...837a202601)

[Compare Source](397f423d3f...837a202601)

</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 these updates 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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-16 03:23:37 +00:00
CatsJuice
ad86292f45 test(core): add basic tests for template doc setting (#9702)
close AF-2112, AF-2114, AF-2115
2025-01-16 02:28:29 +00:00
pengx17
0ed9258f51 fix(core): some dnd perf issues (#9661)
1. page list item are bound two draggables. adding `draggable` prop to WorkbenchLink to mitigate the issue.
2. DndService may not resolve datatransfer when dragging.
2025-01-15 15:04:01 +00:00
pengx17
b1896746f9 refactor(core): move setting dialog to workspace scope (#9706) 2025-01-15 13:00:06 +00:00
L-Sun
9df338274d chore(core): update tooltip of mode switcher (#9711)
Close [BS-2325](https://linear.app/affine-design/issue/BS-2325/tooltips-显示)

https://github.com/user-attachments/assets/bd4c6045-8de1-4e72-87ab-2d1d3262e6b7
2025-01-15 12:22:37 +00:00
L-Sun
94c9717a35 feat(editor): edgeless page block toolbar (#9707)
Close [BS-2315](https://linear.app/affine-design/issue/BS-2315/page-block-header)

### What Changes
- Add header toolbar to page block (the first note in canvas)
- Add e2e tests
- Add some edgeless e2e test utils.  **The package `@blocksuite/affine` was added to `"@affine-test/kit"`**
2025-01-15 12:04:44 +00:00
CatsJuice
494a9473d5 feat(core): start with edgeless for empty page (#9699)
close AF-2074
2025-01-15 11:21:20 +00:00
CatsJuice
d82951a7c5 feat(core): sidebar journal panel template onboarding and setting (#9680)
close AF-2108
2025-01-15 11:21:18 +00:00
fundon
0b2d11e6b1 fix(editor): text highlighting (#9708) 2025-01-15 10:57:27 +00:00
fundon
7002289c58 fix(editor): avoid drag and drag over updating drag indicator at the same time (#9656)
* add a `dragging` signal to the file drop manager
* `drag over` logic should  not be triggered  when inside app
* avoid drag and drag over updating `drag indicator` at the same time
2025-01-15 08:10:08 +00:00
pengx17
0bce5c6730 feat(core): remove workspace selectors in settings (#9705)
fix AF-2119
2025-01-15 07:37:25 +00:00
fourdim
c31a0d28cf fix(core): dependency cycle (#9704) 2025-01-15 05:38:05 +00:00
donteatfriedrice
4f421efb22 fix(editor): init default theme observer value according to data-theme (#9698) 2025-01-15 04:04:06 +00:00
CatsJuice
419611f44c feat(core): sidebar template doc entrance (#9676)
close AF-2048, AF-2050, AF-2049
2025-01-15 03:45:10 +00:00
CatsJuice
1c90747899 feat(core): template doc list empty ui (#9675)
close AF-2109
2025-01-15 03:45:09 +00:00
zzj3720
ff295f383f refactor(editor): enable the noUncheckedIndexedAccess rule for the block-database package (#9691)
close: BS-2269
2025-01-14 14:35:46 +00:00
donteatfriedrice
aa2a8fbf9b fix(editor): adapters panel type (#9690) 2025-01-14 11:02:00 +00:00
akumatus
c8e550138d fix(core): add ai send button test (#9685) 2025-01-14 10:06:31 +00:00
JimmFly
a24630ba56 fix(core): workspace selector on the upgrade to team page overflows (#9586)
<img width="476" alt="截屏2025-01-08 下午4 19 04" src="https://github.com/user-attachments/assets/3a958a4b-3585-4366-9a60-ae73a654b95f" />
2025-01-14 09:47:59 +00:00
forehalo
13d40e5f52 fix(tools): make cli available even conficts exist (#9678) 2025-01-14 09:31:24 +00:00
forehalo
e418465c0c test: playwright cloud import prisma (#9677) 2025-01-14 09:31:23 +00:00
renovate
8e07753b51 chore: bump up all non-major dependencies (#9651)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@smarttools/eslint-plugin-rxjs](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs) | [`1.0.14` -> `1.0.15`](https://renovatebot.com/diffs/npm/@smarttools%2feslint-plugin-rxjs/1.0.14/1.0.15) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@smarttools%2feslint-plugin-rxjs/1.0.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@smarttools%2feslint-plugin-rxjs/1.0.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@smarttools%2feslint-plugin-rxjs/1.0.14/1.0.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@smarttools%2feslint-plugin-rxjs/1.0.14/1.0.15?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@toeverything/theme](https://redirect.github.com/toeverything/design) | [`1.1.3` -> `1.1.4`](https://renovatebot.com/diffs/npm/@toeverything%2ftheme/1.1.3/1.1.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@toeverything%2ftheme/1.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@toeverything%2ftheme/1.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@toeverything%2ftheme/1.1.3/1.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@toeverything%2ftheme/1.1.3/1.1.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | 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.4` -> `19.0.7`](https://renovatebot.com/diffs/npm/@types%2freact/19.0.4/19.0.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/19.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/19.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/19.0.4/19.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/19.0.4/19.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@types/react-dom](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/react-dom) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-dom)) | [`19.0.2` -> `19.0.3`](https://renovatebot.com/diffs/npm/@types%2freact-dom/19.0.2/19.0.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact-dom/19.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact-dom/19.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact-dom/19.0.2/19.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact-dom/19.0.2/19.0.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [inquirer](https://redirect.github.com/SBoudrias/Inquirer.js/blob/main/packages/inquirer/README.md) ([source](https://redirect.github.com/SBoudrias/Inquirer.js)) | [`12.3.0` -> `12.3.2`](https://renovatebot.com/diffs/npm/inquirer/12.3.0/12.3.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/inquirer/12.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/inquirer/12.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/inquirer/12.3.0/12.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/inquirer/12.3.0/12.3.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [katex](https://katex.org) ([source](https://redirect.github.com/KaTeX/KaTeX)) | [`0.16.19` -> `0.16.20`](https://renovatebot.com/diffs/npm/katex/0.16.19/0.16.20) | [![age](https://developer.mend.io/api/mc/badges/age/npm/katex/0.16.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/katex/0.16.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/katex/0.16.19/0.16.20?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/katex/0.16.19/0.16.20?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.471.0` -> `0.471.1`](https://renovatebot.com/diffs/npm/lucide-react/0.471.0/0.471.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.471.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.471.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.471.0/0.471.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.471.0/0.471.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.0.0-alpha.26` -> `3.0.0-alpha.27` | [![age](https://developer.mend.io/api/mc/badges/age/crate/napi/3.0.0-alpha.27?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/napi/3.0.0-alpha.27?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/napi/3.0.0-alpha.26/3.0.0-alpha.27?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/napi/3.0.0-alpha.26/3.0.0-alpha.27?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.0.0-alpha.23` -> `3.0.0-alpha.25` | [![age](https://developer.mend.io/api/mc/badges/age/crate/napi-derive/3.0.0-alpha.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/napi-derive/3.0.0-alpha.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/napi-derive/3.0.0-alpha.23/3.0.0-alpha.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/napi-derive/3.0.0-alpha.23/3.0.0-alpha.25?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [postcss](https://postcss.org/) ([source](https://redirect.github.com/postcss/postcss)) | [`8.4.49` -> `8.5.0`](https://renovatebot.com/diffs/npm/postcss/8.4.49/8.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/postcss/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/postcss/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/postcss/8.4.49/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/postcss/8.4.49/8.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`1.26.1` -> `1.27.0`](https://renovatebot.com/diffs/npm/shiki/1.26.1/1.27.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.26.1/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.26.1/1.27.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | 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.19.1` -> `8.20.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.19.1/8.20.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.19.1/8.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.19.1/8.20.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| org.mozilla.rust-android-gradle.rust-android | `0.9.5` -> `0.9.6` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.mozilla.rust-android-gradle.rust-android:org.mozilla.rust-android-gradle.rust-android.gradle.plugin/0.9.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.mozilla.rust-android-gradle.rust-android:org.mozilla.rust-android-gradle.rust-android.gradle.plugin/0.9.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.mozilla.rust-android-gradle.rust-android:org.mozilla.rust-android-gradle.rust-android.gradle.plugin/0.9.5/0.9.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.mozilla.rust-android-gradle.rust-android:org.mozilla.rust-android-gradle.rust-android.gradle.plugin/0.9.5/0.9.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | plugin | patch |

---

### Release Notes

<details>
<summary>DaveMBush/eslint-plugin-rxjs (@&#8203;smarttools/eslint-plugin-rxjs)</summary>

### [`v1.0.15`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.15): 1.0.15 (2025-01-11)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.14...v1.0.15)

Adds real index.d.ts file to package

</details>

<details>
<summary>toeverything/design (@&#8203;toeverything/theme)</summary>

### [`v1.1.4`](https://redirect.github.com/toeverything/design/compare/1.1.3...1.1.4)

[Compare Source](https://redirect.github.com/toeverything/design/compare/1.1.3...1.1.4)

</details>

<details>
<summary>SBoudrias/Inquirer.js (inquirer)</summary>

### [`v12.3.2`](https://redirect.github.com/SBoudrias/Inquirer.js/compare/inquirer@12.3.1...inquirer@12.3.2)

[Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/inquirer@12.3.1...inquirer@12.3.2)

### [`v12.3.1`](https://redirect.github.com/SBoudrias/Inquirer.js/compare/inquirer@12.3.0...inquirer@12.3.1)

[Compare Source](https://redirect.github.com/SBoudrias/Inquirer.js/compare/inquirer@12.3.0...inquirer@12.3.1)

</details>

<details>
<summary>KaTeX/KaTeX (katex)</summary>

### [`v0.16.20`](https://redirect.github.com/KaTeX/KaTeX/blob/HEAD/CHANGELOG.md#01620-2025-01-12)

[Compare Source](https://redirect.github.com/KaTeX/KaTeX/compare/v0.16.19...v0.16.20)

##### Bug Fixes

-   \providecommand does not overwrite existing macro ([#&#8203;4000](https://redirect.github.com/KaTeX/KaTeX/issues/4000)) ([6d30fe4](6d30fe47b0)), closes [#&#8203;3928](https://redirect.github.com/KaTeX/KaTeX/issues/3928)

</details>

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

### [`v0.471.1`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.471.1): Hotfix Lucide React exports

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

#### What's Changed

-   fix(lucide-react) Adds type module in package.json by [@&#8203;ericfennis](https://redirect.github.com/ericfennis) in [https://github.com/lucide-icons/lucide/pull/2731](https://redirect.github.com/lucide-icons/lucide/pull/2731)

</details>

<details>
<summary>napi-rs/napi-rs (napi)</summary>

### [`v3.0.0-alpha.27`](https://redirect.github.com/napi-rs/napi-rs/releases/tag/napi%403.0.0-alpha.27)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/napi@3.0.0-alpha.26...napi@3.0.0-alpha.27)

#### What's Changed

-   fix(napi): add back Buffer/TypedArray custom gc on wasi by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/2421](https://redirect.github.com/napi-rs/napi-rs/pull/2421)
-   feat(napi): allow create ReadableStream from polyfill by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/2424](https://redirect.github.com/napi-rs/napi-rs/pull/2424)

**Full Changelog**: https://github.com/napi-rs/napi-rs/compare/napi@3.0.0-alpha.25...napi@3.0.0-alpha.27

</details>

<details>
<summary>postcss/postcss (postcss)</summary>

### [`v8.5.0`](https://redirect.github.com/postcss/postcss/compare/8.4.49...687327055ded618a36dd3cd7c39abe3428d56acb)

[Compare Source](https://redirect.github.com/postcss/postcss/compare/8.4.49...8.5.0)

</details>

<details>
<summary>shikijs/shiki (shiki)</summary>

### [`v1.27.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.27.0)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.26.2...v1.27.0)

#####    🚀 Features

-   **codegen**: New pacakge  -  by [@&#8203;antfu](https://redirect.github.com/antfu) in [https://github.com/shikijs/shiki/issues/889](https://redirect.github.com/shikijs/shiki/issues/889) [<samp>(52046)</samp>](https://redirect.github.com/shikijs/shiki/commit/52046ffd)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.26.2...v1.27.0)

### [`v1.26.2`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.26.2)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.26.1...v1.26.2)

#####    🚀 Features

-   Update deps and grammars  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(68f78)</samp>](https://redirect.github.com/shikijs/shiki/commit/68f78624)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.26.1...v1.26.2)

</details>

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

### [`v8.20.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8200-2025-01-13)

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

##### 🚀 Features

-   **eslint-plugin:** \[no-misused-spread] add new rule ([#&#8203;10551](https://redirect.github.com/typescript-eslint/typescript-eslint/pull/10551))

##### ❤️ Thank You

-   Josh Goldberg 

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>

---

### 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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-14 09:10:30 +00:00
fengmk2
b7635c8944 refactor(server): use session model in auth service (#9660) 2025-01-14 07:43:26 +00:00
fengmk2
ee99b0cc9d refactor(server): use verificationToken model instead of tokenService (#9657) 2025-01-14 03:39:05 +00:00
fengmk2
290b2074c8 feat(server): verificationToken model (#9655) 2025-01-14 03:39:05 +00:00
fengmk2
afd2c3f642 feat(server): session model (#9652) 2025-01-14 03:02:19 +00:00
CatsJuice
af3ad4bfe9 feat(core): template doc setting ui (#9658)
close AF-2051, AF-2052
2025-01-14 02:10:35 +00:00
CatsJuice
57b89b5ad4 feat(core): template-doc settings for user-worksapce scope (#9566) 2025-01-14 02:10:34 +00:00
CatsJuice
10196f6785 feat(core): new template doc property (#9538)
close AF-2045, AF-2047, AF-2065
2025-01-14 02:10:33 +00:00
Yifeng Wang
777eea124d fix(editor): migrate basic playground examples (#9669) 2025-01-13 23:33:10 +08:00
forehalo
4ec02dbb39 fix(tools): windows path 2025-01-13 22:53:34 +08:00
zzj3720
80f8944188 fix(editor): should not update table selection after table is destroyed (#9665) 2025-01-13 10:43:02 +00:00
fundon
7e5e6031e8 chore(editor): update default colors of shape (#9633)
Closes: [PD-2176](https://linear.app/affine-design/issue/PD-2176/edgeless-shape默认颜色调整)

* updates shape's text color to the `#000000ff` and custom button should be selected by default in color picker
* updates shape background default color palette to `medium`

<img width="727" alt="Screenshot 2025-01-13 at 11 07 14" src="https://github.com/user-attachments/assets/81962741-0dbc-4990-8eec-db5e48624305" />
<img width="444" alt="Screenshot 2025-01-13 at 11 07 09" src="https://github.com/user-attachments/assets/2d119e33-635e-4bd4-826f-e3094c8a3fa2" />

<img width="764" alt="Screenshot 2025-01-13 at 11 08 14" src="https://github.com/user-attachments/assets/09f5c778-0e25-4972-8529-8d8323c27594" />
2025-01-13 10:19:58 +00:00
zzj3720
810e656174 fix(editor): add shift middleware for tag select panel (#9664)
fix: BS-1749
2025-01-13 09:05:05 +00:00
Brooooooklyn
e72371d15c style: use typescript resolver for eslint import plugin (#9662) 2025-01-13 05:56:29 +00:00
renovate
77fbcb1b9a chore: bump up oxlint version to v0.15.6 (#9659)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.15.5` -> `0.15.6`](https://renovatebot.com/diffs/npm/oxlint/0.15.5/0.15.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.15.5/0.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.15.5/0.15.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.15.6`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.6): oxlint v0.15.6

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.5...oxlint_v0.15.6)

#### \[0.15.6] - 2025-01-13

##### Features

-   [`457aa31`](https://redirect.github.com/oxc-project/oxc/commit/457aa31) linter: Implement `no-lone-blocks` rule ([#&#8203;8145](https://redirect.github.com/oxc-project/oxc/issues/8145)) (Yuichiro Yamashita)

##### Refactor

-   [`aea9551`](https://redirect.github.com/oxc-project/oxc/commit/aea9551) ast: Simplify `get_identifier_reference` of `TSType` and `TSTypeName` ([#&#8203;8273](https://redirect.github.com/oxc-project/oxc/issues/8273)) (Dunqing)
-   [`43ed3e1`](https://redirect.github.com/oxc-project/oxc/commit/43ed3e1) linter: Add output formatter ([#&#8203;8436](https://redirect.github.com/oxc-project/oxc/issues/8436)) (Alexander S.)
-   [`4e05e66`](https://redirect.github.com/oxc-project/oxc/commit/4e05e66) linter: Remove glob for windows ([#&#8203;8390](https://redirect.github.com/oxc-project/oxc/issues/8390)) (Alexander S.)
-   [`b19d809`](https://redirect.github.com/oxc-project/oxc/commit/b19d809) linter: Split `unicorn/prefer-spread` and `eslint/prefer-spread` into own rules ([#&#8203;8329](https://redirect.github.com/oxc-project/oxc/issues/8329)) (Alexander S.)
-   [`3c534ae`](https://redirect.github.com/oxc-project/oxc/commit/3c534ae) linter: Refactor `LintBuilder` to prep for nested configs ([#&#8203;8034](https://redirect.github.com/oxc-project/oxc/issues/8034)) (camc314)
-   [`2f9fab9`](https://redirect.github.com/oxc-project/oxc/commit/2f9fab9) linter: Remove remapping for plugin name in diagnostics ([#&#8203;8223](https://redirect.github.com/oxc-project/oxc/issues/8223)) (Alexander S.)

##### Testing

-   [`b6c1546`](https://redirect.github.com/oxc-project/oxc/commit/b6c1546) linter: Use plugin name instead of category for finding rule ([#&#8203;8353](https://redirect.github.com/oxc-project/oxc/issues/8353)) (Alexander S.)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-13 04:06:13 +00:00
github-actions[bot]
00b2362b03 chore(i18n): sync translations (#9534)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-13 03:02:24 +00:00
forehalo
5979907d96 fix(tools): always use posix for path resolving (#9627) 2025-01-13 02:40:13 +00:00
donteatfriedrice
5c4e87ddb5 feat(editor): support text highlight html adapter (#9632)
[BS-2061](https://linear.app/affine-design/issue/BS-2061/html-adapter-支持-text-highlight-样式)
2025-01-13 02:20:58 +00:00
renovate
76895e29d8 chore: Lock file maintenance (#9418)
This PR contains the following updates:

| Update | Change |
|---|---|
| lockFileMaintenance | All locks refreshed |

🔧 This Pull Request updates lock files to use the latest dependency versions.

---

### Configuration

📅 **Schedule**: Branch creation - "* 0-3 * * 1" (UTC), 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:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-11 14:06:26 +00:00
renovate
289c925f35 chore: bump up Rust crate notify to v8 (#9635)
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [notify](https://redirect.github.com/notify-rs/notify) | workspace.dependencies | major | `7` -> `8` |

---

### Release Notes

<details>
<summary>notify-rs/notify (notify)</summary>

### [`v8.0.0`](https://redirect.github.com/notify-rs/notify/blob/HEAD/CHANGELOG.md#notify-800-2025-01-10)

[Compare Source](https://redirect.github.com/notify-rs/notify/compare/notify-7.0.0...notify-8.0.0)

-   CHANGE: update notify-types to version 2.0.0
-   CHANGE: raise MSRV to 1.77 **breaking**
-   FEATURE: add config option to disable following symbolic links [#&#8203;635]
-   FIX: unaligned access to FILE_NOTIFY_INFORMATION [#&#8203;647] **breaking**

[#&#8203;635]: https://redirect.github.com/notify-rs/notify/pull/635

[#&#8203;647]: https://redirect.github.com/notify-rs/notify/pull/647

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-11 13:50:07 +00:00
LongYinan
7f27500f04 ci: fix server build job (#9649) 2025-01-11 21:48:16 +08:00
Saul-Mirone
5b9256712e chore(editor): remove unused awareness slot (#9640) 2025-01-11 04:27:45 +00:00
Mirone
446b31b621 refactor(editor): rename job to transformer (#9639) 2025-01-11 12:04:07 +08:00
fundon
9fa35ed490 fix(editor): drag indicator flickering (#9636) 2025-01-11 03:15:07 +00:00
renovate
6de62ef7cf chore: bump up all non-major dependencies (#9598)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@aws-sdk/client-s3](https://redirect.github.com/aws/aws-sdk-js-v3/tree/main/clients/client-s3) ([source](https://redirect.github.com/aws/aws-sdk-js-v3/tree/HEAD/clients/client-s3)) | [`3.723.0` -> `3.726.1`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.723.0/3.726.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.726.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.726.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.723.0/3.726.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.723.0/3.726.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@clack/core](https://redirect.github.com/natemoo-re/clack/tree/main/packages/core#readme) ([source](https://redirect.github.com/natemoo-re/clack/tree/HEAD/packages/core)) | [`0.4.0` -> `0.4.1`](https://renovatebot.com/diffs/npm/@clack%2fcore/0.4.0/0.4.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@clack%2fcore/0.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@clack%2fcore/0.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@clack%2fcore/0.4.0/0.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@clack%2fcore/0.4.0/0.4.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@clack/prompts](https://redirect.github.com/natemoo-re/clack/tree/main/packages/prompts#readme) ([source](https://redirect.github.com/natemoo-re/clack/tree/HEAD/packages/prompts)) | [`0.9.0` -> `0.9.1`](https://renovatebot.com/diffs/npm/@clack%2fprompts/0.9.0/0.9.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@clack%2fprompts/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@clack%2fprompts/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@clack%2fprompts/0.9.0/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@clack%2fprompts/0.9.0/0.9.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@eslint/js](https://eslint.org) ([source](https://redirect.github.com/eslint/eslint/tree/HEAD/packages/js)) | [`9.17.0` -> `9.18.0`](https://renovatebot.com/diffs/npm/@eslint%2fjs/9.17.0/9.18.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@eslint%2fjs/9.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@eslint%2fjs/9.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@eslint%2fjs/9.17.0/9.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@eslint%2fjs/9.17.0/9.18.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@sentry/esbuild-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/esbuild-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`2.22.7` -> `2.23.0`](https://renovatebot.com/diffs/npm/@sentry%2fesbuild-plugin/2.22.7/2.23.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fesbuild-plugin/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fesbuild-plugin/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fesbuild-plugin/2.22.7/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fesbuild-plugin/2.22.7/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@sentry/webpack-plugin](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/tree/main/packages/webpack-plugin) ([source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins)) | [`2.22.7` -> `2.23.0`](https://renovatebot.com/diffs/npm/@sentry%2fwebpack-plugin/2.22.7/2.23.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2fwebpack-plugin/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2fwebpack-plugin/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2fwebpack-plugin/2.22.7/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2fwebpack-plugin/2.22.7/2.23.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@smarttools/eslint-plugin-rxjs](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs) | [`1.0.13` -> `1.0.14`](https://renovatebot.com/diffs/npm/@smarttools%2feslint-plugin-rxjs/1.0.13/1.0.14) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@smarttools%2feslint-plugin-rxjs/1.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@smarttools%2feslint-plugin-rxjs/1.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@smarttools%2feslint-plugin-rxjs/1.0.13/1.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@smarttools%2feslint-plugin-rxjs/1.0.13/1.0.14?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.10.6` -> `1.10.7`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.6/1.10.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.6/1.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.6/1.10.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios) | `from: "1.15.3"` -> `from: "1.16.0"` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.15.3/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fapollographql%2fapollo-ios.git/1.15.3/1.16.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | minor |
| [glob](https://redirect.github.com/isaacs/node-glob) | [`11.0.0` -> `11.0.1`](https://renovatebot.com/diffs/npm/glob/11.0.0/11.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/glob/11.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/glob/11.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/glob/11.0.0/11.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/glob/11.0.0/11.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`16.5.2` -> `16.5.3`](https://renovatebot.com/diffs/npm/happy-dom/16.5.2/16.5.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/16.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/16.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/16.5.2/16.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/16.5.2/16.5.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [html-validate](https://html-validate.org) ([source](https://gitlab.com/html-validate/html-validate)) | [`9.1.1` -> `9.1.3`](https://renovatebot.com/diffs/npm/html-validate/9.1.1/9.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/html-validate/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/html-validate/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/html-validate/9.1.1/9.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/html-validate/9.1.1/9.1.3?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.469.0` -> `^0.471.0`](https://renovatebot.com/diffs/npm/lucide-react/0.469.0/0.471.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lucide-react/0.471.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lucide-react/0.471.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lucide-react/0.469.0/0.471.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lucide-react/0.469.0/0.471.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.77.4` -> `4.78.1`](https://renovatebot.com/diffs/npm/openai/4.77.4/4.78.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.77.4/4.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.77.4/4.78.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [thiserror](https://redirect.github.com/dtolnay/thiserror) | `2.0.10` -> `2.0.11` | [![age](https://developer.mend.io/api/mc/badges/age/crate/thiserror/2.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/thiserror/2.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/thiserror/2.0.10/2.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/thiserror/2.0.10/2.0.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [undici](https://undici.nodejs.org) ([source](https://redirect.github.com/nodejs/undici)) | [`7.2.0` -> `7.2.1`](https://renovatebot.com/diffs/npm/undici/7.2.0/7.2.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/7.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/7.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/7.2.0/7.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/7.2.0/7.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [uuid](https://redirect.github.com/uuidjs/uuid) | [`11.0.4` -> `11.0.5`](https://renovatebot.com/diffs/npm/uuid/11.0.4/11.0.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/uuid/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/uuid/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/uuid/11.0.4/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/uuid/11.0.4/11.0.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.100.0` -> `3.101.0`](https://renovatebot.com/diffs/npm/wrangler/3.100.0/3.101.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/3.101.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/wrangler/3.101.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/wrangler/3.100.0/3.101.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/3.100.0/3.101.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [com.android.tools.build:gradle](https://developer.android.com/studio/build) ([source](https://android.googlesource.com/platform/tools/base)) | `8.7.3` -> `8.8.0` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.android.tools.build:gradle/8.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.android.tools.build:gradle/8.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.android.tools.build:gradle/8.7.3/8.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.android.tools.build:gradle/8.7.3/8.8.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |

---

### Release Notes

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

### [`v3.726.1`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37261-2025-01-10)

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

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

### [`v3.726.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37260-2025-01-09)

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

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

</details>

<details>
<summary>natemoo-re/clack (@&#8203;clack/core)</summary>

### [`v0.4.1`](https://redirect.github.com/natemoo-re/clack/blob/HEAD/packages/core/CHANGELOG.md#041)

[Compare Source](https://redirect.github.com/natemoo-re/clack/compare/@clack/core@0.4.0...@clack/core@0.4.1)

##### Patch Changes

-   [`8093f3c`](https://redirect.github.com/natemoo-re/clack/commit/8093f3c): Adds `Error` support to the `validate` function
-   [`e5ba09a`](https://redirect.github.com/natemoo-re/clack/commit/e5ba09a): Fixes a cursor display bug in terminals that do not support the "hidden" escape sequence. See [Issue #&#8203;127](https://redirect.github.com/bombshell-dev/clack/issues/127).
-   [`8cba8e3`](https://redirect.github.com/natemoo-re/clack/commit/8cba8e3): Fixes a rendering bug with cursor positions for `TextPrompt`

</details>

<details>
<summary>natemoo-re/clack (@&#8203;clack/prompts)</summary>

### [`v0.9.1`](https://redirect.github.com/natemoo-re/clack/blob/HEAD/packages/prompts/CHANGELOG.md#091)

[Compare Source](https://redirect.github.com/natemoo-re/clack/compare/@clack/prompts@0.9.0...@clack/prompts@0.9.1)

##### Patch Changes

-   [`8093f3c`](https://redirect.github.com/natemoo-re/clack/commit/8093f3c): Adds `Error` support to the `validate` function
-   [`98925e3`](https://redirect.github.com/natemoo-re/clack/commit/98925e3): Exports the `Option` type and improves JSDocannotations
-   [`1904e57`](https://redirect.github.com/natemoo-re/clack/commit/1904e57): Replace custom utility for stripping ANSI control sequences with Node's built-in [`stripVTControlCharacters`](https://nodejs.org/docs/latest/api/util.html#utilstripvtcontrolcharactersstr) utility.
-   Updated dependencies \[[`8093f3c`](https://redirect.github.com/natemoo-re/clack/commit/8093f3c)]
-   Updated dependencies \[[`e5ba09a`](https://redirect.github.com/natemoo-re/clack/commit/e5ba09a)]
-   Updated dependencies \[[`8cba8e3`](https://redirect.github.com/natemoo-re/clack/commit/8cba8e3)]
    -   [@&#8203;clack/core](https://redirect.github.com/clack/core)[@&#8203;0](https://redirect.github.com/0).4.1

</details>

<details>
<summary>eslint/eslint (@&#8203;eslint/js)</summary>

### [`v9.18.0`](https://redirect.github.com/eslint/eslint/compare/v9.17.0...362099c580992b2602316fc417ce3e595b96f28c)

[Compare Source](https://redirect.github.com/eslint/eslint/compare/v9.17.0...v9.18.0)

</details>

<details>
<summary>getsentry/sentry-javascript-bundler-plugins (@&#8203;sentry/esbuild-plugin)</summary>

### [`v2.23.0`](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/blob/HEAD/CHANGELOG.md#2230)

[Compare Source](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/compare/2.22.7...2.23.0)

-   chore(deps): bump nanoid from 3.3.6 to 3.3.8 ([#&#8203;641](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/641))
-   feat(core): Detect Railway release name ([#&#8203;639](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/639))
-   feat(core): Write module injections to `globalThis` ([#&#8203;636](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/636))
-   feat(react-component-annotate): Allow skipping annotations on specified components ([#&#8203;617](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/617))
-   ref(core): Rename release management plugin name ([#&#8203;647](https://redirect.github.com/getsentry/sentry-javascript-bundler-plugins/issues/647))

Work in this release contributed by [@&#8203;conor-ob](https://redirect.github.com/conor-ob). Thank you for your contribution!

</details>

<details>
<summary>DaveMBush/eslint-plugin-rxjs (@&#8203;smarttools/eslint-plugin-rxjs)</summary>

### [`v1.0.14`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.14): 1.0.14 (2025-01-10)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.13...v1.0.14)

Rules should now work from ESM modules

</details>

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

### [`v1.10.7`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1107---2025-01-10)

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

##### Bug Fixes

-   **(ci/publish)** Do not tag stable if `onlyNightly` is on ([#&#8203;9863](https://redirect.github.com/swc-project/swc/issues/9863)) ([c0c6056](c0c60569e2))

-   **(es/minifier)** Improve DCE ([#&#8203;9853](https://redirect.github.com/swc-project/swc/issues/9853)) ([85fb16c](85fb16c3a2))

-   **(es/parser)** Fix context of dynamic import type ([#&#8203;9852](https://redirect.github.com/swc-project/swc/issues/9852)) ([caa7f37](caa7f370ff))

##### Documentation

-   Update the link to the team ([0fcdc31](0fcdc31435))

##### Features

-   **(ts/fast-strip)** Distinguish invalid vs unsupported ([#&#8203;9846](https://redirect.github.com/swc-project/swc/issues/9846)) ([5709bc2](5709bc2205))

##### Testing

-   **(parallel)** Add test to debug segfault on windows x64 ([#&#8203;9857](https://redirect.github.com/swc-project/swc/issues/9857)) ([ae53a35](ae53a359c3))

##### Build

-   Update `wasmer` to `v5.0.5-rc1` ([#&#8203;9860](https://redirect.github.com/swc-project/swc/issues/9860)) ([615ae93](615ae9302e))

</details>

<details>
<summary>apollographql/apollo-ios (apollographql/apollo-ios)</summary>

### [`v1.16.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1160)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.15.3...1.16.0)

##### New

-   **Added codegen config support for spm module type versions ([#&#8203;539](https://redirect.github.com/apollographql/apollo-ios-dev/pull/539)):** There is a [new codegen config option](https://www.apollographql.com/docs/ios/code-generation/codegen-configuration#swift-package) for supplying a version to the SPM module type to allow for pointing to specific branches or local versions of Apollo iOS.
-   **`@oneOf` input object support ([#&#8203;537](https://redirect.github.com/apollographql/apollo-ios-dev/pull/537)):** Adding support for `@OneOf` Input Objects, more info can be found in the official [RFC](https://redirect.github.com/graphql/graphql-spec/pull/825).

##### Improvements

-   **`URLRequest` cache policy default changed ([#&#8203;550](https://redirect.github.com/apollographql/apollo-ios-dev/pull/550)):** The updated default closer matches the original behaviour before the introduction of setting `URLRequest.CachePolicy`. *Thank you to [@&#8203;marksvend](https://redirect.github.com/marksvend) for raising the issue.*

##### Fixed

-   **`DataDict` initialization of `deferredFragments` property ([#&#8203;557](https://redirect.github.com/apollographql/apollo-ios-dev/pull/557)):** Generated selection set initializers were not correctly setting deferred fragment identifiers. This only affected selection sets that were instantiated with the generated selection set initializers, response-based results are unaffected.
-   **Multipart chunk content type ([#&#8203;572](https://redirect.github.com/apollographql/apollo-ios-dev/pull/572)):** Multipart response parsing would produce an error when the chunk content type contained more than one directive. *Thank you to [@&#8203;brettephillips](https://redirect.github.com/brettephillips) for raising the issue.*

</details>

<details>
<summary>isaacs/node-glob (glob)</summary>

### [`v11.0.1`](https://redirect.github.com/isaacs/node-glob/compare/v11.0.0...148ef611eec9454201b1f2e81721e6fa00582043)

[Compare Source](https://redirect.github.com/isaacs/node-glob/compare/v11.0.0...v11.0.1)

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

### [`v16.5.3`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.3)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.2...v16.5.3)

##### 👷‍♂️ Patch fixes

-   Fixes problem with encoding and decoding attribute values in HTML - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1678](https://redirect.github.com/capricorn86/happy-dom/issues/1678)
-   Fixes issue where it was not possible to query selector by class when the attribute value had line breaks in it - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1678](https://redirect.github.com/capricorn86/happy-dom/issues/1678)

</details>

<details>
<summary>html-validate/html-validate (html-validate)</summary>

### [`v9.1.3`](https://gitlab.com/html-validate/html-validate/blob/HEAD/CHANGELOG.md#913-2025-01-09)

[Compare Source](https://gitlab.com/html-validate/html-validate/compare/v9.1.2...v9.1.3)

##### Bug Fixes

-   nodejs 18.19 or later is required ([69ec7e2](69ec7e232a))

### [`v9.1.2`](https://gitlab.com/html-validate/html-validate/blob/HEAD/CHANGELOG.md#912-2025-01-08)

[Compare Source](https://gitlab.com/html-validate/html-validate/compare/v9.1.1...v9.1.2)

##### Bug Fixes

-   fix `ERR_UNSUPPORTED_ESM_URL_SCHEME` on windows ([6b193f3](6b193f3bd8))

</details>

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

### [`v0.471.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.471.0): Dynamic Icon component Lucide React and new icons 0.471.0

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

#### New Dynamic Icon Component (lucide-react)

This is an easier approach than the previous `dynamicIconImports` we exported in the library. This one supports all environments.
We removed the examples in the docs of how you can make a dynamic icon yourself with a dedicated DynamicIcon component.
This one fetches the icon data itself and renders it instead of fetching the Icon component from the library.
This makes it more flexible with all the frontend frameworks and libraries that exist for React.

> 🚨
> Not recommended for regular applications that work fine with the regular static icon components.
> Using the dynamic icon component increases build time, separate bundles, and separate network requests for each icon.

##### How to use

`DynamicIcon` is useful for applications that want to show icons dynamically by icon name, for example when using a content management system where icon names are stored in a database.

```jsx
const App = () => (
  <DynamicIcon name="camera" color="red" size={48} />
);
```

##### Possible Breaking changes

We have switched to the ["exports"](https://nodejs.org/api/packages.html#exports-sugar) property in `package.json`. This can cause issues if you have directly imported scripts from the package. Please open an issue if we need to refine this export map.

#### New icons 🎨

-   `triangle-dashed` ([#&#8203;2652](https://redirect.github.com/lucide-icons/lucide/issues/2652)) by [@&#8203;Yohh](https://redirect.github.com/Yohh)

### [`v0.470.0`](https://redirect.github.com/lucide-icons/lucide/releases/tag/0.470.0): New icons 0.470.0

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

#### New icons 🎨

-   `house-wifi` ([#&#8203;2723](https://redirect.github.com/lucide-icons/lucide/issues/2723)) by [@&#8203;akshaymemane](https://redirect.github.com/akshaymemane)

#### Modified Icons 🔨

-   `rat` ([#&#8203;2692](https://redirect.github.com/lucide-icons/lucide/issues/2692)) by [@&#8203;jguddas](https://redirect.github.com/jguddas)

</details>

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

### [`v4.78.1`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4781-2025-01-10)

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

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

##### Bug Fixes

-   send correct Accept header for certain endpoints ([#&#8203;1257](https://redirect.github.com/openai/openai-node/issues/1257)) ([8756693](8756693c56))

### [`v4.78.0`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4780-2025-01-09)

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

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

##### Features

-   **client:** add realtime types ([#&#8203;1254](https://redirect.github.com/openai/openai-node/issues/1254)) ([7130995](71309957a9))

</details>

<details>
<summary>dtolnay/thiserror (thiserror)</summary>

### [`v2.0.11`](https://redirect.github.com/dtolnay/thiserror/releases/tag/2.0.11)

[Compare Source](https://redirect.github.com/dtolnay/thiserror/compare/2.0.10...2.0.11)

-   Add feature gate to tests that use std ([#&#8203;409](https://redirect.github.com/dtolnay/thiserror/issues/409), [#&#8203;410](https://redirect.github.com/dtolnay/thiserror/issues/410), thanks [@&#8203;Maytha8](https://redirect.github.com/Maytha8))

</details>

<details>
<summary>nodejs/undici (undici)</summary>

### [`v7.2.1`](https://redirect.github.com/nodejs/undici/releases/tag/v7.2.1)

[Compare Source](https://redirect.github.com/nodejs/undici/compare/v7.2.0...v7.2.1)

#### What's Changed

-   fix(3951): typo on errorede dns lookup by [@&#8203;metcoder95](https://redirect.github.com/metcoder95) in [https://github.com/nodejs/undici/pull/3956](https://redirect.github.com/nodejs/undici/pull/3956)
-   feat: add missing error type by [@&#8203;Gigioliva](https://redirect.github.com/Gigioliva) in [https://github.com/nodejs/undici/pull/3964](https://redirect.github.com/nodejs/undici/pull/3964)
-   websocket: improve frame parsing by [@&#8203;tsctx](https://redirect.github.com/tsctx) in [https://github.com/nodejs/undici/pull/3447](https://redirect.github.com/nodejs/undici/pull/3447)
-   fix([#&#8203;3966](https://redirect.github.com/nodejs/undici/issues/3966)): account for network errors by [@&#8203;metcoder95](https://redirect.github.com/metcoder95) in [https://github.com/nodejs/undici/pull/3967](https://redirect.github.com/nodejs/undici/pull/3967)
-   build(deps-dev): bump [@&#8203;fastify/busboy](https://redirect.github.com/fastify/busboy) from 3.1.0 to 3.1.1 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/nodejs/undici/pull/3971](https://redirect.github.com/nodejs/undici/pull/3971)
-   Update WPT by [@&#8203;github-actions](https://redirect.github.com/github-actions) in [https://github.com/nodejs/undici/pull/3954](https://redirect.github.com/nodejs/undici/pull/3954)
-   docs: fix dispatcher stream example links by [@&#8203;luddd3](https://redirect.github.com/luddd3) in [https://github.com/nodejs/undici/pull/3972](https://redirect.github.com/nodejs/undici/pull/3972)
-   fix: `undici:request:headers` does not indicate completion of a response by [@&#8203;legendecas](https://redirect.github.com/legendecas) in [https://github.com/nodejs/undici/pull/3974](https://redirect.github.com/nodejs/undici/pull/3974)
-   build(deps): bump cronometro from 3.0.2 to 4.0.1 in /benchmarks by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/nodejs/undici/pull/3976](https://redirect.github.com/nodejs/undici/pull/3976)
-   fix([#&#8203;3975](https://redirect.github.com/nodejs/undici/issues/3975)): do not unref timeout by [@&#8203;metcoder95](https://redirect.github.com/metcoder95) in [https://github.com/nodejs/undici/pull/3977](https://redirect.github.com/nodejs/undici/pull/3977)
-   fix: bad response on h2 server by [@&#8203;metcoder95](https://redirect.github.com/metcoder95) in [https://github.com/nodejs/undici/pull/3978](https://redirect.github.com/nodejs/undici/pull/3978)
-   build(deps): bump peter-evans/create-pull-request from 7.0.5 to 7.0.6 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/nodejs/undici/pull/3981](https://redirect.github.com/nodejs/undici/pull/3981)
-   build(deps): bump actions/upload-artifact from 4.4.3 to 4.5.0 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/nodejs/undici/pull/3983](https://redirect.github.com/nodejs/undici/pull/3983)
-   chore: ensure automated v7 release compared to v7 by [@&#8203;trivikr](https://redirect.github.com/trivikr) in [https://github.com/nodejs/undici/pull/3986](https://redirect.github.com/nodejs/undici/pull/3986)
-   test: ignore test for CITGM by [@&#8203;metcoder95](https://redirect.github.com/metcoder95) in [https://github.com/nodejs/undici/pull/3993](https://redirect.github.com/nodejs/undici/pull/3993)
-   fix: retry flaky test by [@&#8203;metcoder95](https://redirect.github.com/metcoder95) in [https://github.com/nodejs/undici/pull/3992](https://redirect.github.com/nodejs/undici/pull/3992)

#### New Contributors

-   [@&#8203;legendecas](https://redirect.github.com/legendecas) made their first contribution in [https://github.com/nodejs/undici/pull/3974](https://redirect.github.com/nodejs/undici/pull/3974)

**Full Changelog**: https://github.com/nodejs/undici/compare/v7.2.0...v7.2.1

</details>

<details>
<summary>uuidjs/uuid (uuid)</summary>

### [`v11.0.5`](https://redirect.github.com/uuidjs/uuid/blob/HEAD/CHANGELOG.md#1105-2025-01-09)

[Compare Source](https://redirect.github.com/uuidjs/uuid/compare/v11.0.4...v11.0.5)

##### Bug Fixes

-   add TS unit test, pin to typescript@5.0.4 ([#&#8203;860](https://redirect.github.com/uuidjs/uuid/issues/860)) ([24ac2fd](24ac2fd067))

</details>

<details>
<summary>cloudflare/workers-sdk (wrangler)</summary>

### [`v3.101.0`](https://redirect.github.com/cloudflare/workers-sdk/blob/HEAD/packages/wrangler/CHANGELOG.md#31010)

[Compare Source](https://redirect.github.com/cloudflare/workers-sdk/compare/wrangler@3.100.0...wrangler@3.101.0)

##### Minor Changes

-   [#&#8203;7534](https://redirect.github.com/cloudflare/workers-sdk/pull/7534) [`7c8ae1c`](7c8ae1c7bc) Thanks [@&#8203;cmackenzie1](https://redirect.github.com/cmackenzie1)! - feat: Use OAuth flow to generate R2 tokens for Pipelines

-   [#&#8203;7674](https://redirect.github.com/cloudflare/workers-sdk/pull/7674) [`45d1d1e`](45d1d1edd6) Thanks [@&#8203;Ankcorn](https://redirect.github.com/Ankcorn)! - Add support for env files to wrangler secret bulk i.e. `.dev.vars`

    Run `wrangler secret bulk .dev.vars` to add the env file

    ```env
    //.dev.vars
    KEY=VALUE
    KEY_2=VALUE
    ```

    This will upload the secrets KEY and KEY\_2 to your worker

-   [#&#8203;7442](https://redirect.github.com/cloudflare/workers-sdk/pull/7442) [`e4716cc`](e4716cc878) Thanks [@&#8203;petebacondarwin](https://redirect.github.com/petebacondarwin)! - feat: add support for redirecting Wrangler to a generated config when running deploy-related commands

    This new feature is designed for build tools and frameworks to provide a deploy-specific configuration,
    which Wrangler can use instead of user configuration when running deploy-related commands.
    It is not expected that developers of Workers will need to use this feature directly.

##### Affected commands

The commands that use this feature are:

-   `wrangler deploy`
-   `wrangler dev`
-   `wrangler versions upload`
-   `wrangler versions deploy`
-   `wrangler pages deploy`
-   `wrangler pages build`
-   `wrangler pages build-env`

##### Config redirect file

When running these commands, Wrangler will look up the directory tree from the current working directory for a file at the path `.wrangler/deploy/config.json`. This file must contain only a single JSON object of the form:

```json
{ "configPath": "../../path/to/wrangler.json" }
```

When this file exists Wrangler will follow the `configPath` (relative to the `.wrangler/deploy/config.json` file) to find an alternative Wrangler configuration file to load and use as part of this command.

When this happens Wrangler will display a warning to the user to indicate that the configuration has been redirected to a different file than the user's configuration file.

##### Custom build tool example

A common approach that a build tool might choose to implement.

-   The user writes code that uses Cloudflare Workers resources, configured via a user `wrangler.toml` file.

    ```toml
    name = "my-worker"
    main = "src/index.ts"
    [[kv_namespaces]]
    binding = "<BINDING_NAME1>"
    id = "<NAMESPACE_ID1>"
    ```

    Note that this configuration points `main` at user code entry-point.

-   The user runs a custom build, which might read the `wrangler.toml` to find the entry-point:

    ```bash
    > my-tool build
    ```

-   This tool generates a `dist` directory that contains both compiled code and a new deployment configuration file, but also a `.wrangler/deploy/config.json` file that redirects Wrangler to this new deployment configuration file:

    ```plain
    - dist
      - index.js
    	- wrangler.json
    - .wrangler
      - deploy
    	  - config.json
    ```

    The `dist/wrangler.json` will contain:

    ```json
    {
      "name": "my-worker",
      "main": "./index.js",
      "kv_namespaces": [
        { "binding": "<BINDING_NAME1>", "id": "<NAMESPACE_ID1>" }
      ]
    }
    ```

    And the `.wrangler/deploy/config.json` will contain:

    ```json
    {
      "configPath": "../../dist/wrangler.json"
    }
    ```

-   [#&#8203;7685](https://redirect.github.com/cloudflare/workers-sdk/pull/7685) [`9d2740a`](9d2740aa58) Thanks [@&#8203;vicb](https://redirect.github.com/vicb)! - allow overriding the unenv preset.

    By default wrangler uses the bundled unenv preset.

    Setting `WRANGLER_UNENV_RESOLVE_PATHS` allow to use another version of the preset.
    Those paths are used when resolving the unenv module identifiers to absolute paths.
    This can be used to test a development version.

-   [#&#8203;7694](https://redirect.github.com/cloudflare/workers-sdk/pull/7694) [`f3c2f69`](f3c2f69b30) Thanks [@&#8203;joshthoward](https://redirect.github.com/joshthoward)! - Default wrangler d1 export to --local rather than failing

##### Patch Changes

-   [#&#8203;7456](https://redirect.github.com/cloudflare/workers-sdk/pull/7456) [`ff4e77e`](ff4e77e5ad) Thanks [@&#8203;andyjessop](https://redirect.github.com/andyjessop)! - chore: removes --experimental-versions flag, as versions is now GA.

-   [#&#8203;7712](https://redirect.github.com/cloudflare/workers-sdk/pull/7712) [`6439347`](6439347a92) Thanks [@&#8203;penalosa](https://redirect.github.com/penalosa)! - Remove CF-Connecting-IP for requests to the edge preview

-   [#&#8203;7703](https://redirect.github.com/cloudflare/workers-sdk/pull/7703) [`e771fe9`](e771fe9909) Thanks [@&#8203;petebacondarwin](https://redirect.github.com/petebacondarwin)! - include the top level Worker name in the parsed config structure

-   [#&#8203;7576](https://redirect.github.com/cloudflare/workers-sdk/pull/7576) [`773bda8`](773bda8b38) Thanks [@&#8203;cmackenzie1](https://redirect.github.com/cmackenzie1)! - Remove defaults for `batch-max-*` pipeline parameters and define value ranges

-   Updated dependencies \[[`2c76887`](2c76887373), [`78bdec5`](78bdec59ce)]:
    -   miniflare@3.20241230.1

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-11 02:56:37 +00:00
zzj3720
c016f8e37e feat(editor): support linked-doc in rich-text column (#9634)
close: BS-2345
2025-01-10 14:43:40 +00:00
zzj3720
cc08094b17 feat(editor): improve group title display for checkbox columns (#9622)
close: BS-1977
2025-01-10 14:01:12 +00:00
pengx17
7d2ee8d742 feat(electron): close inactive views when switching workspace (#9601)
fix AF-1355
2025-01-10 09:52:42 +00:00
fengmk2
93c585a0e2 test(server): should await throwsAsync assert (#9631) 2025-01-10 09:08:10 +00:00
fundon
0b3dba614d perf(editor): optimize the search for the closest element (#9587)
Closes: [BS-2275](https://linear.app/affine-design/issue/BS-2275/拖拽-indicator-查找优化)
2025-01-10 08:21:10 +00:00
EYHN
18ff7500c8 fix(core): fix menu not close when click outside (#9535) 2025-01-10 08:04:49 +00:00
fundon
9882af5d01 fix(core): dependency cycle (#9628) 2025-01-10 07:37:13 +00:00
akumatus
2f49c064eb feat(editor): remove chat-cards and Open AI Chat menu item (#9626)
Support issue [BS-2353](https://linear.app/affine-design/issue/BS-2353).

### What changed?
- Remove `Open AI Chat` menu item.
- Remove `chat-cards` web component.
- Add `extractAll` function for page and edgeless doc full content extract.
2025-01-10 03:53:11 +00:00
renovate
dcd691cd31 chore: bump up rustc version to v1.84.0 (#9623)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [rustc](https://redirect.github.com/rust-lang/rust) | minor | `1.83.0` -> `1.84.0` |

---

### Release Notes

<details>
<summary>rust-lang/rust (rustc)</summary>

### [`v1.84.0`](https://redirect.github.com/rust-lang/rust/blob/HEAD/RELEASES.md#Version-1840-2025-01-09)

[Compare Source](https://redirect.github.com/rust-lang/rust/compare/1.83.0...1.84.0)

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

<a id="
Language"></a>

## Language

-   [Allow `#[deny]` inside `#[forbid]` as a no-op](https://redirect.github.com/rust-lang/rust/pull/121560/)
-   [Show a warning when `-Ctarget-feature` is used to toggle features that can lead to unsoundness due to ABI mismatches](https://redirect.github.com/rust-lang/rust/pull/129884)
-   [Use the next-generation trait solver in coherence](https://redirect.github.com/rust-lang/rust/pull/130654)
-   [Allow coercions to drop the principal of trait objects](https://redirect.github.com/rust-lang/rust/pull/131857)
-   [Support `/` as the path separator for `include!()` in all cases on Windows](https://redirect.github.com/rust-lang/rust/pull/125205)
-   [Taking a raw ref (`raw (const|mut)`) of a deref of a pointer (`*ptr`) is now safe](https://redirect.github.com/rust-lang/rust/pull/129248)
-   [Stabilize s390x inline assembly](https://redirect.github.com/rust-lang/rust/pull/131258)
-   [Stabilize Arm64EC inline assembly](https://redirect.github.com/rust-lang/rust/pull/131781)
-   [Lint against creating pointers to immediately dropped temporaries](https://redirect.github.com/rust-lang/rust/pull/128985)
-   [Execute drop glue when unwinding in an `extern "C"` function](https://redirect.github.com/rust-lang/rust/pull/129582)

<a id="1.84.0-Compiler"></a>

## Compiler

-   [Add `--print host-tuple` flag to print the host target tuple and affirm the "target tuple" terminology over "target triple"](https://redirect.github.com/rust-lang/rust/pull/125579)
-   [Declaring functions with a calling convention not supported on the current target now triggers a hard error](https://redirect.github.com/rust-lang/rust/pull/129935)
-   [Set up indirect access to external data for `loongarch64-unknown-linux-{musl,ohos}`](https://redirect.github.com/rust-lang/rust/pull/131583)
-   [Enable XRay instrumentation for LoongArch Linux targets](https://redirect.github.com/rust-lang/rust/pull/131818)
-   [Extend the `unexpected_cfgs` lint to also warn in external macros](https://redirect.github.com/rust-lang/rust/pull/132577)
-   [Stabilize WebAssembly `multivalue`, `reference-types`, and `tail-call` target features](https://redirect.github.com/rust-lang/rust/pull/131080)
-   [Added Tier 2 support for the `wasm32v1-none` target](https://redirect.github.com/rust-lang/rust/pull/131487)

<a id="1.84.0-Libraries"></a>

## Libraries

-   [Implement `From<&mut {slice}>` for `Box/Rc/Arc<{slice}>`](https://redirect.github.com/rust-lang/rust/pull/129329)
-   [Move `<float>::copysign`, `<float>::abs`, `<float>::signum` to `core`](https://redirect.github.com/rust-lang/rust/pull/131304)
-   [Add `LowerExp` and `UpperExp` implementations to `NonZero`](https://redirect.github.com/rust-lang/rust/pull/131377)
-   [Implement `FromStr` for `CString` and `TryFrom<CString>` for `String`](https://redirect.github.com/rust-lang/rust/pull/130608)
-   [`std::os::darwin` has been made public](https://redirect.github.com/rust-lang/rust/pull/123723)

<a id="1.84.0-Stabilized-APIs"></a>

## Stabilized APIs

-   [`Ipv6Addr::is_unique_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unique_local)
-   [`Ipv6Addr::is_unicast_link_local`](https://doc.rust-lang.org/stable/core/net/struct.Ipv6Addr.html#method.is_unicast_link_local)
-   [`core::ptr::with_exposed_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance.html)
-   [`core::ptr::with_exposed_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.with_exposed_provenance_mut.html)
-   [`<ptr>::addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.addr)
-   [`<ptr>::expose_provenance`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.expose_provenance)
-   [`<ptr>::with_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.with_addr)
-   [`<ptr>::map_addr`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.map_addr)
-   [`<int>::isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.isqrt)
-   [`<int>::checked_isqrt`](https://doc.rust-lang.org/stable/core/primitive.i32.html#method.checked_isqrt)
-   [`<uint>::isqrt`](https://doc.rust-lang.org/stable/core/primitive.u32.html#method.isqrt)
-   [`NonZero::isqrt`](https://doc.rust-lang.org/stable/core/num/struct.NonZero.html#impl-NonZero%3Cu128%3E/method.isqrt)
-   [`core::ptr::without_provenance`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance.html)
-   [`core::ptr::without_provenance_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.without_provenance_mut.html)
-   [`core::ptr::dangling`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling.html)
-   [`core::ptr::dangling_mut`](https://doc.rust-lang.org/stable/core/ptr/fn.dangling_mut.html)

These APIs are now stable in const contexts

-   [`AtomicBool::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicBool.html#method.from_ptr)
-   [`AtomicPtr::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicPtr.html#method.from_ptr)
-   [`AtomicU8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU8.html#method.from_ptr)
-   [`AtomicU16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU16.html#method.from_ptr)
-   [`AtomicU32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU32.html#method.from_ptr)
-   [`AtomicU64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicU64.html#method.from_ptr)
-   [`AtomicUsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicUsize.html#method.from_ptr)
-   [`AtomicI8::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI8.html#method.from_ptr)
-   [`AtomicI16::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI16.html#method.from_ptr)
-   [`AtomicI32::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI32.html#method.from_ptr)
-   [`AtomicI64::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicI64.html#method.from_ptr)
-   [`AtomicIsize::from_ptr`](https://doc.rust-lang.org/stable/core/sync/atomic/struct.AtomicIsize.html#method.from_ptr)
-   [`<ptr>::is_null`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.is_null-1)
-   [`<ptr>::as_ref`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_ref-1)
-   [`<ptr>::as_mut`](https://doc.rust-lang.org/stable/core/primitive.pointer.html#method.as_mut)
-   [`Pin::new`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new)
-   [`Pin::new_unchecked`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.new_unchecked)
-   [`Pin::get_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_ref)
-   [`Pin::into_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.into_ref)
-   [`Pin::get_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_mut)
-   [`Pin::get_unchecked_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.get_unchecked_mut)
-   [`Pin::static_ref`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_ref)
-   [`Pin::static_mut`](https://doc.rust-lang.org/stable/core/pin/struct.Pin.html#method.static_mut)

<a id="1.84.0-Cargo"></a>

## Cargo

-   [Stabilize MSRV-aware resolver config](https://redirect.github.com/rust-lang/cargo/pull/14639/)
-   [Stabilize resolver v3](https://redirect.github.com/rust-lang/cargo/pull/14754/)

<a id="1.84-Rustdoc"></a>

## Rustdoc

-   [rustdoc-search: improve type-driven search](https://redirect.github.com/rust-lang/rust/pull/127589)

<a id="1.84.0-Compatibility-Notes"></a>

## Compatibility Notes

-   [Enable by default the `LSX` target feature for LoongArch Linux targets](https://redirect.github.com/rust-lang/rust/pull/132140)
-   [The unstable `-Zprofile` flag (“gcov-style” coverage instrumentation) has been removed.](https://redirect.github.com/rust-lang/rust/pull/131829) This does not affect the stable flags for coverage instrumentation (`-Cinstrument-coverage`) and profile-guided optimization (`-Cprofile-generate`, `-Cprofile-use`), which are unrelated and remain available.
-   Support for the target named `wasm32-wasi` has been removed as the target is now named `wasm32-wasip1`. This completes the [transition](https://redirect.github.com/rust-lang/compiler-team/issues/607) [plan](https://redirect.github.com/rust-lang/compiler-team/issues/695) for this target following [the introduction of `wasm32-wasip1`](https://redirect.github.com/rust-lang/rust/pull/120468) in Rust 1.78. Compiler warnings on [use of `wasm32-wasi`](https://redirect.github.com/rust-lang/rust/pull/126662) introduced in Rust 1.81 are now gone as well as the target is removed.
-   [The syntax `&pin (mut|const) T` is now parsed as a type which in theory could affect macro expansion results in some edge cases](https://redirect.github.com/rust-lang/rust/pull/130635#issuecomment-2375462821)
-   [Legacy syntax for calling `std::arch` functions is no longer permitted to declare items or bodies (such as closures, inline consts, or async blocks).](https://redirect.github.com/rust-lang/rust/pull/130443#issuecomment-2445678945)
-   The `wasm32-unknown-emscripten` target's binary release of the standard library is now [built with the latest emsdk 3.1.68](https://redirect.github.com/rust-lang/rust/pull/131533), which fixes an ABI-incompatibility with Emscripten >= 3.1.42. If you are locally using a version of emsdk with an incompatible ABI (e.g. before 3.1.42 or a future one), you should build your code with `-Zbuild-std` to ensure that `std` uses the correct ABI.
-   [Declaring functions with a calling convention not supported on the current target now triggers a hard error](https://redirect.github.com/rust-lang/rust/pull/129935)
-   [The next-generation trait solver is now enabled for coherence, fixing multiple soundness issues](https://redirect.github.com/rust-lang/rust/pull/130654)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS45Mi4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-10 03:31:42 +00:00
forehalo
1b6f0e78c4 chore(server): move server tests folder (#9614) 2025-01-10 02:38:10 +00:00
zzj3720
8e8058a44c feat(editor): support pasting Excel data into database block (#9618)
close: BS-2338
2025-01-09 14:35:19 +00:00
Saul-Mirone
6feb4def2f fix(editor): exisiting slice import should be move instead of add (#9616)
Closes: [BS-2339](https://linear.app/affine-design/issue/BS-2339/%E6%8B%96%E6%8B%BD%E9%87%8A%E6%94%BE%E5%90%8E%E7%9A%84%E4%BD%8D%E7%BD%AE%E4%B8%8D%E5%AF%B9)
2025-01-09 12:14:54 +00:00
Saul-Mirone
126ab18967 feat(editor): selection as store extension (#9605) 2025-01-09 11:49:23 +00:00
akumatus
c2d8c23f13 fix(core): update chat session after session created or reused (#9613)
For an existing AI chat session, the prompt will not be updated when the front-end calls the `createChatSession` gql interface. Thus update it manually here.

In the future, the architecture needs to be adjusted to support multiple LLM model calls in one chat session.
2025-01-09 10:56:24 +00:00
pengx17
c0ed78dc66 fix(core): split view should only be dragged by the handle (#9610)
fix BS-2354
also fix AF-2096
2025-01-09 10:40:25 +00:00
darkskygit
755cebfb18 chore(server): not allow to update action's prompt (#9615) 2025-01-09 10:18:53 +00:00
Brooooooklyn
fed0156f22 style: add @typescript-eslint/return-await rule (#9612) 2025-01-09 09:28:59 +00:00
forehalo
6d29f80894 feat(server): user model (#9608) 2025-01-09 09:14:02 +00:00
darkskygit
ca3537fca3 fix(server): missing perplexity secret (#9607) 2025-01-09 08:56:59 +00:00
zzj3720
b23e980250 fix(editor): prototype-polluting assignment (#9606) 2025-01-09 08:20:26 +00:00
pengx17
f78857bb11 feat(editor): add more open doc options to editor toolbar (#9588)
fix AF-2036, AF-2092
2025-01-09 08:04:21 +00:00
doodlewind
890a962196 chore(editor): fix playground vscode tsc warning (#9603) 2025-01-09 07:49:16 +00:00
zzj3720
f46a7a073a fix(editor): component name for the mobile menu is incorrect (#9604) 2025-01-09 07:32:49 +00:00
Yifeng Wang
cac0b7fd66 refactor(editor): remove default entry (#9600) 2025-01-09 14:01:48 +08:00
Saul-Mirone
422bac6cbe refactor(editor): remove readonly in awareness (#9597) 2025-01-09 05:15:35 +00:00
Saul-Mirone
d21ef47ae8 chore(editor): rename std.doc to std.store (#9596) 2025-01-09 04:16:28 +00:00
akumatus
58ce86533e feat(core): support ai network search (#9357)
### What Changed?
- Add `PerplexityProvider` in backend.
- Update session prompt name if user toggle network search mode in chat panel.
- Add experimental flag for AI network search feature.
- Add unit tests and e2e tests.

Search results are streamed and appear word for word:

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/56f6ec7b-4b21-405f-9612-43e083f6fb84.mov">录屏2024-12-27 18.58.40.mov</video>

Click the little globe icon to manually turn on/off Internet search:
<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/778f1406-bf29-498e-a90d-7dad813392d1.mov">录屏2024-12-27 19.01.16.mov</video>

When there is an image, it will automatically switch to the openai model:

<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/sJGviKxfE3Ap685cl5bj/56431d8e-75e1-4d84-ab4a-b6636042cc6a.mov">录屏2024-12-27 19.02.13.mov</video>
2025-01-09 04:00:59 +00:00
Yifeng Wang
4f10457815 refactor(editor): remove legacy console formatter (#9599) 2025-01-09 12:00:08 +08:00
doodlewind
e269cce141 refactor(editor): playground doc collection typing migration (#9593) 2025-01-09 03:07:43 +00:00
renovate
5ff2254c83 chore: bump up all non-major dependencies (#9494)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@apollo/server](https://redirect.github.com/apollographql/apollo-server) ([source](https://redirect.github.com/apollographql/apollo-server/tree/HEAD/packages/server)) | [`4.11.2` -> `4.11.3`](https://renovatebot.com/diffs/npm/@apollo%2fserver/4.11.2/4.11.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@apollo%2fserver/4.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@apollo%2fserver/4.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@apollo%2fserver/4.11.2/4.11.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@apollo%2fserver/4.11.2/4.11.3?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.717.0` -> `3.723.0`](https://renovatebot.com/diffs/npm/@aws-sdk%2fclient-s3/3.717.0/3.723.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@aws-sdk%2fclient-s3/3.723.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@aws-sdk%2fclient-s3/3.723.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@aws-sdk%2fclient-s3/3.717.0/3.723.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@aws-sdk%2fclient-s3/3.717.0/3.723.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@floating-ui/dom](https://floating-ui.com) ([source](https://redirect.github.com/floating-ui/floating-ui/tree/HEAD/packages/dom)) | [`1.6.12` -> `1.6.13`](https://renovatebot.com/diffs/npm/@floating-ui%2fdom/1.6.12/1.6.13) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@floating-ui%2fdom/1.6.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@floating-ui%2fdom/1.6.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@floating-ui%2fdom/1.6.12/1.6.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@floating-ui%2fdom/1.6.12/1.6.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@lottiefiles/dotlottie-wc](https://redirect.github.com/LottieFiles/dotlottie-web) ([source](https://redirect.github.com/LottieFiles/dotlottie-web/tree/HEAD/packages/wc)) | [`0.4.1` -> `0.4.2`](https://renovatebot.com/diffs/npm/@lottiefiles%2fdotlottie-wc/0.4.1/0.4.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@lottiefiles%2fdotlottie-wc/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@lottiefiles%2fdotlottie-wc/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@lottiefiles%2fdotlottie-wc/0.4.1/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@lottiefiles%2fdotlottie-wc/0.4.1/0.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@opentelemetry/host-metrics](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/opentelemetry-host-metrics#readme) ([source](https://redirect.github.com/open-telemetry/opentelemetry-js-contrib)) | [`0.35.4` -> `0.35.5`](https://renovatebot.com/diffs/npm/@opentelemetry%2fhost-metrics/0.35.4/0.35.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fhost-metrics/0.35.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fhost-metrics/0.35.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fhost-metrics/0.35.4/0.35.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fhost-metrics/0.35.4/0.35.5?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)) | [`8.47.0` -> `8.48.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.47.0/8.48.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/8.47.0/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/8.47.0/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [@sentry/react](https://redirect.github.com/getsentry/sentry-javascript/tree/master/packages/react) ([source](https://redirect.github.com/getsentry/sentry-javascript)) | [`8.47.0` -> `8.48.0`](https://renovatebot.com/diffs/npm/@sentry%2freact/8.47.0/8.48.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@sentry%2freact/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@sentry%2freact/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@sentry%2freact/8.47.0/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@sentry%2freact/8.47.0/8.48.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@smarttools/eslint-plugin-rxjs](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs) | [`1.0.12` -> `1.0.13`](https://renovatebot.com/diffs/npm/@smarttools%2feslint-plugin-rxjs/1.0.12/1.0.13) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@smarttools%2feslint-plugin-rxjs/1.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@smarttools%2feslint-plugin-rxjs/1.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@smarttools%2feslint-plugin-rxjs/1.0.12/1.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@smarttools%2feslint-plugin-rxjs/1.0.12/1.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.10.4` -> `1.10.6`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.4/1.10.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.4/1.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.4/1.10.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@types/mixpanel-browser](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mixpanel-browser) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/mixpanel-browser)) | [`2.50.2` -> `2.51.0`](https://renovatebot.com/diffs/npm/@types%2fmixpanel-browser/2.50.2/2.51.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fmixpanel-browser/2.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fmixpanel-browser/2.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fmixpanel-browser/2.50.2/2.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fmixpanel-browser/2.50.2/2.51.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.17.11` -> `20.17.12`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.11/20.17.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.11/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.11/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.17.11` -> `20.17.12`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.11/20.17.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.11/20.17.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.11/20.17.12?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.2` -> `19.0.4`](https://renovatebot.com/diffs/npm/@types%2freact/19.0.2/19.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2freact/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2freact/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2freact/19.0.2/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2freact/19.0.2/19.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [core-js](https://redirect.github.com/zloirock/core-js) ([source](https://redirect.github.com/zloirock/core-js/tree/HEAD/packages/core-js)) | [`3.39.0` -> `3.40.0`](https://renovatebot.com/diffs/npm/core-js/3.39.0/3.40.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/core-js/3.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/core-js/3.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/core-js/3.39.0/3.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/core-js/3.39.0/3.40.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [electron](https://redirect.github.com/electron/electron) | [`33.3.0` -> `33.3.1`](https://renovatebot.com/diffs/npm/electron/33.3.0/33.3.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/electron/33.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/electron/33.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/electron/33.3.0/33.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/electron/33.3.0/33.3.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [embla-carousel-react](https://www.embla-carousel.com) ([source](https://redirect.github.com/davidjerleke/embla-carousel)) | [`8.5.1` -> `8.5.2`](https://renovatebot.com/diffs/npm/embla-carousel-react/8.5.1/8.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/embla-carousel-react/8.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/embla-carousel-react/8.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/embla-carousel-react/8.5.1/8.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/embla-carousel-react/8.5.1/8.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`16.3.0` -> `16.5.2`](https://renovatebot.com/diffs/npm/happy-dom/16.3.0/16.5.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/16.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/16.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/16.3.0/16.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/16.3.0/16.5.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [html-validate](https://html-validate.org) ([source](https://gitlab.com/html-validate/html-validate)) | [`9.1.0` -> `9.1.1`](https://renovatebot.com/diffs/npm/html-validate/9.1.0/9.1.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/html-validate/9.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/html-validate/9.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/html-validate/9.1.0/9.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/html-validate/9.1.0/9.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [i18next](https://www.i18next.com) ([source](https://redirect.github.com/i18next/i18next)) | [`24.2.0` -> `24.2.1`](https://renovatebot.com/diffs/npm/i18next/24.2.0/24.2.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/i18next/24.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/i18next/24.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/i18next/24.2.0/24.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/i18next/24.2.0/24.2.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [input-otp](https://input-otp.rodz.dev/) ([source](https://redirect.github.com/guilhermerodz/input-otp/tree/HEAD/packages/input-otp)) | [`1.4.1` -> `1.4.2`](https://renovatebot.com/diffs/npm/input-otp/1.4.1/1.4.2) | [![age](https://developer.mend.io/api/mc/badges/age/npm/input-otp/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/input-otp/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/input-otp/1.4.1/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/input-otp/1.4.1/1.4.2?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [link-preview-js](https://redirect.github.com/ospfranco/link-preview-js) | [`3.0.12` -> `3.0.13`](https://renovatebot.com/diffs/npm/link-preview-js/3.0.12/3.0.13) | [![age](https://developer.mend.io/api/mc/badges/age/npm/link-preview-js/3.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/link-preview-js/3.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/link-preview-js/3.0.12/3.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/link-preview-js/3.0.12/3.0.13?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [marked](https://marked.js.org) ([source](https://redirect.github.com/markedjs/marked)) | [`15.0.4` -> `15.0.6`](https://renovatebot.com/diffs/npm/marked/15.0.4/15.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/marked/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/marked/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/marked/15.0.4/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/marked/15.0.4/15.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [napi](https://redirect.github.com/napi-rs/napi-rs) | `3.0.0-alpha.24` -> `3.0.0-alpha.26` | [![age](https://developer.mend.io/api/mc/badges/age/crate/napi/3.0.0-alpha.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/napi/3.0.0-alpha.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/napi/3.0.0-alpha.24/3.0.0-alpha.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/napi/3.0.0-alpha.24/3.0.0-alpha.26?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [napi-derive](https://redirect.github.com/napi-rs/napi-rs) | `3.0.0-alpha.22` -> `3.0.0-alpha.23` | [![age](https://developer.mend.io/api/mc/badges/age/crate/napi-derive/3.0.0-alpha.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/napi-derive/3.0.0-alpha.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/napi-derive/3.0.0-alpha.22/3.0.0-alpha.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/napi-derive/3.0.0-alpha.22/3.0.0-alpha.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [openai](https://redirect.github.com/openai/openai-node) | [`4.77.0` -> `4.77.4`](https://renovatebot.com/diffs/npm/openai/4.77.0/4.77.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/openai/4.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/openai/4.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/openai/4.77.0/4.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/openai/4.77.0/4.77.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [serde_json](https://redirect.github.com/serde-rs/json) | `1.0.134` -> `1.0.135` | [![age](https://developer.mend.io/api/mc/badges/age/crate/serde_json/1.0.135?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/serde_json/1.0.135?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/serde_json/1.0.134/1.0.135?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/serde_json/1.0.134/1.0.135?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`1.25.1` -> `1.26.1`](https://renovatebot.com/diffs/npm/shiki/1.25.1/1.26.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/1.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/1.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.25.1/1.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.25.1/1.26.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [sqlx](https://redirect.github.com/launchbadge/sqlx) | `0.8.2` -> `0.8.3` | [![age](https://developer.mend.io/api/mc/badges/age/crate/sqlx/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/sqlx/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/sqlx/0.8.2/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/sqlx/0.8.2/0.8.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [thiserror](https://redirect.github.com/dtolnay/thiserror) | `2.0.9` -> `2.0.10` | [![age](https://developer.mend.io/api/mc/badges/age/crate/thiserror/2.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/thiserror/2.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/thiserror/2.0.9/2.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/thiserror/2.0.9/2.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [tokio](https://tokio.rs) ([source](https://redirect.github.com/tokio-rs/tokio)) | `1.42.0` -> `1.43.0` | [![age](https://developer.mend.io/api/mc/badges/age/crate/tokio/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/tokio/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/tokio/1.42.0/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/tokio/1.42.0/1.43.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | minor |
| [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.7.2` -> `5.7.3`](https://renovatebot.com/diffs/npm/typescript/5.7.2/5.7.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.7.2/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.7.2/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [typescript](https://www.typescriptlang.org/) ([source](https://redirect.github.com/microsoft/TypeScript)) | [`5.7.2` -> `5.7.3`](https://renovatebot.com/diffs/npm/typescript/5.7.2/5.7.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript/5.7.2/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript/5.7.2/5.7.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.19.0` -> `8.19.1`](https://renovatebot.com/diffs/npm/typescript-eslint/8.19.0/8.19.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.19.0/8.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.19.0/8.19.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [uuid](https://redirect.github.com/uuidjs/uuid) | [`11.0.3` -> `11.0.4`](https://renovatebot.com/diffs/npm/uuid/11.0.3/11.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/uuid/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/uuid/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/uuid/11.0.3/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/uuid/11.0.3/11.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.6` -> `6.0.7`](https://renovatebot.com/diffs/npm/vite/6.0.6/6.0.7) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.6/6.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.6/6.0.7?slim=true)](https://docs.renovatebot.com/merge-confidence/) | resolutions | patch |
| [wrangler](https://redirect.github.com/cloudflare/workers-sdk) ([source](https://redirect.github.com/cloudflare/workers-sdk/tree/HEAD/packages/wrangler)) | [`3.99.0` -> `3.100.0`](https://renovatebot.com/diffs/npm/wrangler/3.99.0/3.100.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/wrangler/3.100.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/wrangler/3.100.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/wrangler/3.99.0/3.100.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/wrangler/3.99.0/3.100.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |

---

### Release Notes

<details>
<summary>apollographql/apollo-server (@&#8203;apollo/server)</summary>

### [`v4.11.3`](https://redirect.github.com/apollographql/apollo-server/blob/HEAD/packages/server/CHANGELOG.md#4113)

[Compare Source](https://redirect.github.com/apollographql/apollo-server/compare/@apollo/server@4.11.2...@apollo/server@4.11.3)

##### Patch Changes

-   [#&#8203;8010](https://redirect.github.com/apollographql/apollo-server/pull/8010) [`f4228e8`](f4228e8850) Thanks [@&#8203;glasser](https://redirect.github.com/glasser)! - Compatibility with Next.js Turbopack. Fixes [#&#8203;8004](https://redirect.github.com/apollographql/apollo-server/issues/8004).

</details>

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

### [`v3.723.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37230-2025-01-06)

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

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

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

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

##### Features

-   **client-s3:** This change is only for updating the model regexp of CopySource which is not for validation but only for documentation and user guide change. ([3bb74c5](3bb74c5bd6))

### [`v3.721.0`](https://redirect.github.com/aws/aws-sdk-js-v3/blob/HEAD/clients/client-s3/CHANGELOG.md#37210-2025-01-02)

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

**Note:** Version bump only for package [@&#8203;aws-sdk/client-s3](https://redirect.github.com/aws-sdk/client-s3)

</details>

<details>
<summary>floating-ui/floating-ui (@&#8203;floating-ui/dom)</summary>

### [`v1.6.13`](https://redirect.github.com/floating-ui/floating-ui/blob/HEAD/packages/dom/CHANGELOG.md#1613)

[Compare Source](https://redirect.github.com/floating-ui/floating-ui/compare/@floating-ui/dom@1.6.12...@floating-ui/dom@1.6.13)

##### Patch Changes

-   fix(autoUpdate): work around `IntersectionObserver` issue that sometimes fails to detect movement of reference element
-   Update dependencies: `@floating-ui/utils@0.2.9`

</details>

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

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

[Compare Source](https://redirect.github.com/LottieFiles/dotlottie-web/compare/@lottiefiles/dotlottie-wc@0.4.1...@lottiefiles/dotlottie-wc@0.4.2)

##### Patch Changes

-   Updated dependencies \[[`8ef9888`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/8ef9888)]
-   Updated dependencies \[[`1ee4ce9`](https://redirect.github.com/LottieFiles/dotlottie-web/commit/1ee4ce9)]
    -   [@&#8203;lottiefiles/dotlottie-web](https://redirect.github.com/lottiefiles/dotlottie-web)[@&#8203;0](https://redirect.github.com/0).39.0

</details>

<details>
<summary>open-telemetry/opentelemetry-js-contrib (@&#8203;opentelemetry/host-metrics)</summary>

### [`v0.35.5`](2512c78761...d4d3c4f14f)

[Compare Source](2512c78761...d4d3c4f14f)

</details>

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

### [`v8.48.0`](https://redirect.github.com/getsentry/sentry-javascript/releases/tag/8.48.0)

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

##### Deprecations

-   **feat(v8/core): Deprecate `getDomElement` method ([#&#8203;14799](https://redirect.github.com/getsentry/sentry-javascript/pull/14799))**

    Deprecates `getDomElement`. There is no replacement.

##### Other changes

-   fix(nestjs/v8): Use correct main/module path in package.json ([#&#8203;14791](https://redirect.github.com/getsentry/sentry-javascript/pull/14791))
-   fix(v8/core): Use consistent `continueTrace` implementation in core ([#&#8203;14819](https://redirect.github.com/getsentry/sentry-javascript/pull/14819))
-   fix(v8/node): Correctly resolve debug IDs for ANR events with custom appRoot ([#&#8203;14823](https://redirect.github.com/getsentry/sentry-javascript/pull/14823))
-   fix(v8/node): Ensure `NODE_OPTIONS` is not passed to worker threads ([#&#8203;14825](https://redirect.github.com/getsentry/sentry-javascript/pull/14825))
-   fix(v8/angular): Fall back to element `tagName` when name is not provided to `TraceDirective` ([#&#8203;14828](https://redirect.github.com/getsentry/sentry-javascript/pull/14828))
-   fix(aws-lambda): Remove version suffix from lambda layer ([#&#8203;14843](https://redirect.github.com/getsentry/sentry-javascript/pull/14843))
-   fix(v8/node): Ensure express requests are properly handled ([#&#8203;14851](https://redirect.github.com/getsentry/sentry-javascript/pull/14851))
-   feat(v8/node): Add `openTelemetrySpanProcessors` option ([#&#8203;14853](https://redirect.github.com/getsentry/sentry-javascript/pull/14853))
-   fix(v8/react): Use `Set` as the `allRoutes` container. ([#&#8203;14878](https://redirect.github.com/getsentry/sentry-javascript/pull/14878)) ([#&#8203;14884](https://redirect.github.com/getsentry/sentry-javascript/issues/14884))
-   fix(v8/react): Improve handling of routes nested under path="/" ([#&#8203;14897](https://redirect.github.com/getsentry/sentry-javascript/pull/14897))
-   feat(v8/core): Add `normalizedRequest` to `samplingContext` ([#&#8203;14903](https://redirect.github.com/getsentry/sentry-javascript/pull/14903))
-   fix(v8/feedback): Avoid lazy loading code for `syncFeedbackIntegration` ([#&#8203;14918](https://redirect.github.com/getsentry/sentry-javascript/pull/14918))

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

##### Bundle size 📦

| Path                                                             | Size              |
| ---------------------------------------------------------------- | ----------------- |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser)                                                  | 23.29 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) - with treeshaking flags                         | 21.96 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing)                                  | 35.85 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay)                          | 73.09 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay) - with treeshaking flags | 63.48 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay with Canvas)              | 77.4 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Tracing, Replay, Feedback)                | 89.34 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. Feedback)                                 | 39.5 KB   |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. sendFeedback)                             | 27.89 KB  |
| [@&#8203;sentry/browser](https://redirect.github.com/sentry/browser) (incl. FeedbackAsync)                            | 32.69 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react)                                                    | 25.96 KB  |
| [@&#8203;sentry/react](https://redirect.github.com/sentry/react) (incl. Tracing)                                    | 38.66 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue)                                                      | 27.56 KB  |
| [@&#8203;sentry/vue](https://redirect.github.com/sentry/vue) (incl. Tracing)                                      | 37.69 KB  |
| [@&#8203;sentry/svelte](https://redirect.github.com/sentry/svelte)                                                   | 23.45 KB  |
| CDN Bundle                                                       | 24.49 KB  |
| CDN Bundle (incl. Tracing)                                       | 37.56 KB  |
| CDN Bundle (incl. Tracing, Replay)                               | 72.75 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback)                     | 78.11 KB  |
| CDN Bundle - uncompressed                                        | 71.93 KB  |
| CDN Bundle (incl. Tracing) - uncompressed                        | 111.42 KB |
| CDN Bundle (incl. Tracing, Replay) - uncompressed                | 225.5 KB  |
| CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed      | 238.6 KB  |
| [@&#8203;sentry/nextjs](https://redirect.github.com/sentry/nextjs) (client)                                          | 38.92 KB  |
| [@&#8203;sentry/sveltekit](https://redirect.github.com/sentry/sveltekit) (client)                                       | 36.36 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node)                                                     | 162.8 KB  |
| [@&#8203;sentry/node](https://redirect.github.com/sentry/node) - without tracing                                   | 98.94 KB  |
| [@&#8203;sentry/aws-serverless](https://redirect.github.com/sentry/aws-serverless)                                           | 126.63 KB |

</details>

<details>
<summary>DaveMBush/eslint-plugin-rxjs (@&#8203;smarttools/eslint-plugin-rxjs)</summary>

### [`v1.0.13`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.13): 1.0.13 (2025-01-05)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.12...v1.0.13)

no-ignore-replay-buffer now considers a config with no bufferSize an ignored replay buffer.

</details>

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

### [`v1.10.6`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1106---2025-01-07)

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

##### Performance

-   **(es/minifier)** Speed up `merge_sequences_in_exprs` by caching computation ([#&#8203;9843](https://redirect.github.com/swc-project/swc/issues/9843)) ([6e5632f](6e5632fa41))

</details>

<details>
<summary>zloirock/core-js (core-js)</summary>

### [`v3.40.0`](https://redirect.github.com/zloirock/core-js/blob/HEAD/CHANGELOG.md#3400---20250108)

[Compare Source](https://redirect.github.com/zloirock/core-js/compare/v3.39.0...v3.40.0)

-   Changes [v3.39.0...v3.40.0](https://redirect.github.com/zloirock/core-js/compare/v3.39.0...v3.40.0) (130 commits)
-   Added [`Error.isError` stage 3 proposal](https://redirect.github.com/tc39/proposal-is-error):
    -   Added built-ins:
        -   `Error.isError`
    -   We have no bulletproof way to polyfill this method / check if the object is an error, so it's an enough naive implementation that is marked as `.sham`
-   [Explicit Resource Management stage 3 proposal](https://redirect.github.com/tc39/proposal-explicit-resource-management):
    -   Updated the way async disposing of only sync disposable resources, [tc39/proposal-explicit-resource-management/218](https://redirect.github.com/tc39/proposal-explicit-resource-management/pull/218)
-   [`Iterator` sequencing stage 2.7 proposal](https://redirect.github.com/tc39/proposal-iterator-sequencing):
    -   Reuse `IteratorResult` objects when possible, [tc39/proposal-iterator-sequencing/17](https://redirect.github.com/tc39/proposal-iterator-sequencing/issues/17), [tc39/proposal-iterator-sequencing/18](https://redirect.github.com/tc39/proposal-iterator-sequencing/pull/18), December 2024 TC39 meeting
-   Added a fix of [V8 < 12.8](https://issues.chromium.org/issues/351332634) / [NodeJS < 22.10](https://redirect.github.com/nodejs/node/pull/54883) bug with handling infinite length of set-like objects in `Set` methods
-   Optimized `DataView.prototype.{ getFloat16, setFloat16 }` performance, [#&#8203;1379](https://redirect.github.com/zloirock/core-js/pull/1379), thanks [**@&#8203;LeviPesin**](https://redirect.github.com/LeviPesin)
-   Dropped unneeded feature detection of non-standard `%TypedArray%.prototype.toSpliced`
-   Dropped possible re-usage of some non-standard / early stage features (like `Math.scale`) available on global
-   Some other minor improvements
-   Compat data improvements:
    -   [`RegExp.escape`](https://redirect.github.com/tc39/proposal-regex-escaping) marked as shipped from Safari 18.2
    -   [`Promise.try`](https://redirect.github.com/tc39/proposal-promise-try) marked as shipped from Safari 18.2
    -   [`Math.f16round` and `DataView.prototype.{ getFloat16, setFloat16 }`](https://redirect.github.com/tc39/proposal-float16array) marked as shipped from Safari 18.2
    -   [`Uint8Array` to / from base64 and hex proposal](https://redirect.github.com/tc39/proposal-arraybuffer-base64) methods marked as shipped from Safari 18.2
    -   [`JSON.parse` source text access proposal](https://redirect.github.com/tc39/proposal-json-parse-with-source) features marked as [shipped from FF135](https://bugzilla.mozilla.org/show_bug.cgi?id=1934622)
    -   [`RegExp.escape`](https://redirect.github.com/tc39/proposal-regex-escaping) marked as shipped [from FF134](https://bugzilla.mozilla.org/show_bug.cgi?id=1918235)
    -   [`Promise.try`](https://redirect.github.com/tc39/proposal-promise-try) marked as shipped from FF134
    -   [`Symbol.dispose`, `Symbol.asyncDispose` and `Iterator.prototype[@&#8203;@&#8203;dispose]`](https://redirect.github.com/tc39/proposal-explicit-resource-management) marked as shipped from FF135
    -   [`JSON.parse` source text access proposal](https://redirect.github.com/tc39/proposal-json-parse-with-source) features marked as shipped from Bun 1.1.43
    -   Fixed NodeJS version where `URL.parse` was added - 22.1 instead of 22.0
    -   Added [Deno 2.1](https://redirect.github.com/denoland/deno/releases/tag/v2.1.0) compat data mapping
    -   Added [Rhino 1.8.0](https://redirect.github.com/mozilla/rhino/releases/tag/Rhino1\_8\_0\_Release) compat data with significant number of modern features
    -   Added Electron 35 compat data mapping
    -   Updated Opera 115+ compat data mapping
    -   Added Opera Android [86](https://forums.opera.com/topic/75006/opera-for-android-86) and 87 compat data mapping

</details>

<details>
<summary>electron/electron (electron)</summary>

### [`v33.3.1`](https://redirect.github.com/electron/electron/releases/tag/v33.3.1): electron v33.3.1

[Compare Source](https://redirect.github.com/electron/electron/compare/v33.3.0...v33.3.1)

### Release Notes for v33.3.1

#### Fixes

-   Fixed `chrome.i18n` extension API being unavailable in service workers. [#&#8203;45037](https://redirect.github.com/electron/electron/pull/45037) <span style="font-size:small;">(Also in [31](https://redirect.github.com/electron/electron/pull/45035), [32](https://redirect.github.com/electron/electron/pull/45038), [34](https://redirect.github.com/electron/electron/pull/45036))</span>
-   Fixed build failure when the PDF viewer is disabled. [#&#8203;44965](https://redirect.github.com/electron/electron/pull/44965) <span style="font-size:small;">(Also in [34](https://redirect.github.com/electron/electron/pull/44964))</span>
-   Fixed custom spell checker getting stuck in infinite loop using 100% CPU. [#&#8203;45021](https://redirect.github.com/electron/electron/pull/45021) <span style="font-size:small;">(Also in [31](https://redirect.github.com/electron/electron/pull/45022), [32](https://redirect.github.com/electron/electron/pull/45019), [34](https://redirect.github.com/electron/electron/pull/45020))</span>
-   Fixed issue with missing index arg for `webContents.canGoToOffset`. [#&#8203;45006](https://redirect.github.com/electron/electron/pull/45006) <span style="font-size:small;">(Also in [32](https://redirect.github.com/electron/electron/pull/45007), [34](https://redirect.github.com/electron/electron/pull/45008))</span>

#### Other Changes

-   Updated Chromium to 130.0.6723.170. [#&#8203;45061](https://redirect.github.com/electron/electron/pull/45061)

</details>

<details>
<summary>davidjerleke/embla-carousel (embla-carousel-react)</summary>

### [`v8.5.2`](https://redirect.github.com/davidjerleke/embla-carousel/releases/tag/v8.5.2)

[Compare Source](https://redirect.github.com/davidjerleke/embla-carousel/compare/v8.5.1...v8.5.2)

##### Support

Embla Carousel is an open source MIT licensed project. If you are interested in **supporting this project** you can sponsor it here:

-   [**`💖 Sponsor`**](https://redirect.github.com/sponsors/davidjerleke)

##### What's Changed

-   \[Bug]: Offset by 1 issue for canScrollNext when tab size has fractional width by [@&#8203;yasuhiro-yamamoto](https://redirect.github.com/yasuhiro-yamamoto) in [https://github.com/davidjerleke/embla-carousel/pull/1096](https://redirect.github.com/davidjerleke/embla-carousel/pull/1096)
-   \[Bug]: Autoplay never starts if page with carousel is loaded in inactive browser tab by [@&#8203;davidjerleke](https://redirect.github.com/davidjerleke) in [https://github.com/davidjerleke/embla-carousel/pull/1101](https://redirect.github.com/davidjerleke/embla-carousel/pull/1101)

##### New Contributors

-   [@&#8203;yasuhiro-yamamoto](https://redirect.github.com/yasuhiro-yamamoto) made their first contribution in [https://github.com/davidjerleke/embla-carousel/pull/1096](https://redirect.github.com/davidjerleke/embla-carousel/pull/1096)

**Full Changelog**: https://github.com/davidjerleke/embla-carousel/compare/v8.5.1...v8.5.2

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

### [`v16.5.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.2)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.1...v16.5.2)

##### 👷‍♂️ Patch fixes

-   `Event.target` should be the target element after an event has been dispatched - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1529](https://redirect.github.com/capricorn86/happy-dom/issues/1529)

### [`v16.5.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.0...f79188a14025faf14bbe375827c1274f93767db4)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.5.0...v16.5.1)

### [`v16.5.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.5.0)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.3...v16.5.0)

##### 🎨 Features

-   Adds property `GlobalRegistrator.isRegistered` - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1670](https://redirect.github.com/capricorn86/happy-dom/issues/1670)

### [`v16.4.3`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.2...a68a9cc21f6a22cbc11b116004c7f5e01b8d0dba)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.2...v16.4.3)

### [`v16.4.2`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.1...v16.4.2)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.1...v16.4.2)

### [`v16.4.1`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.4.1)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.4.0...v16.4.1)

##### 👷‍♂️ Patch fixes

-   Fixes issue where HTML assigned to `document.documentElement.innerHTML` isnt parsed correctly since v16 - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1663](https://redirect.github.com/capricorn86/happy-dom/issues/1663)

### [`v16.4.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.4.0)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.3.0...v16.4.0)

##### 🎨 Features

-   Allow fetch to be intercepted and modified by sending in an interceptor as a setting - By **[@&#8203;OlaviSau](https://redirect.github.com/OlaviSau)** in task [#&#8203;1502](https://redirect.github.com/capricorn86/happy-dom/issues/1502)
    -   Read more about this in the Wiki at [IBrowserSettings](https://redirect.github.com/capricorn86/happy-dom/wiki/IBrowserSettings/)

</details>

<details>
<summary>html-validate/html-validate (html-validate)</summary>

### [`v9.1.1`](https://gitlab.com/html-validate/html-validate/blob/HEAD/CHANGELOG.md#911-2025-01-05)

[Compare Source](https://gitlab.com/html-validate/html-validate/compare/v9.1.0...v9.1.1)

##### Bug Fixes

-   **vitest:** fix `require is not defined` in vitest ([6a42bb1](6a42bb1ce3)), closes [#&#8203;276](https://gitlab.com/html-validate/html-validate/issues/276)

</details>

<details>
<summary>i18next/i18next (i18next)</summary>

### [`v24.2.1`](https://redirect.github.com/i18next/i18next/blob/HEAD/CHANGELOG.md#2421)

[Compare Source](https://redirect.github.com/i18next/i18next/compare/v24.2.0...v24.2.1)

-   Standardize null/undefined checks across codebase [2275](https://redirect.github.com/i18next/i18next/pull/2275)
-   fix(typescript): make TFunction augmentable again [2279](https://redirect.github.com/i18next/i18next/pull/2279), fixes [2278](https://redirect.github.com/i18next/i18next/issues/2278)

</details>

<details>
<summary>guilhermerodz/input-otp (input-otp)</summary>

### [`v1.4.2`](https://redirect.github.com/guilhermerodz/input-otp/blob/HEAD/CHANGELOG.md#142)

[Compare Source](3632450db6...81ccdb48c0)

-   chore(input): remove unintentional log within internal pasteListener

</details>

<details>
<summary>ospfranco/link-preview-js (link-preview-js)</summary>

### [`v3.0.13`](https://redirect.github.com/OP-Engineering/link-preview-js/releases/tag/3.0.13)

[Compare Source](https://redirect.github.com/ospfranco/link-preview-js/compare/3.0.12...3.0.13)

#### What's Changed

-   fallback to abort-controller polyfill by [@&#8203;Birowsky](https://redirect.github.com/Birowsky) in [https://github.com/OP-Engineering/link-preview-js/pull/162](https://redirect.github.com/OP-Engineering/link-preview-js/pull/162)
-   Bump cross-spawn from 7.0.3 to 7.0.6 by [@&#8203;dependabot](https://redirect.github.com/dependabot) in [https://github.com/OP-Engineering/link-preview-js/pull/158](https://redirect.github.com/OP-Engineering/link-preview-js/pull/158)

#### New Contributors

-   [@&#8203;Birowsky](https://redirect.github.com/Birowsky) made their first contribution in [https://github.com/OP-Engineering/link-preview-js/pull/162](https://redirect.github.com/OP-Engineering/link-preview-js/pull/162)

**Full Changelog**: https://github.com/OP-Engineering/link-preview-js/compare/3.0.12...3.0.13

</details>

<details>
<summary>markedjs/marked (marked)</summary>

### [`v15.0.6`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.6)

[Compare Source](https://redirect.github.com/markedjs/marked/compare/v15.0.5...v15.0.6)

##### Bug Fixes

-   fix strikethrough inside strong and em to follow gfm ([#&#8203;3577](https://redirect.github.com/markedjs/marked/issues/3577)) ([7712a53](7712a5324f))

### [`v15.0.5`](https://redirect.github.com/markedjs/marked/releases/tag/v15.0.5)

[Compare Source](https://redirect.github.com/markedjs/marked/compare/v15.0.4...v15.0.5)

##### Bug Fixes

-   allow strikethrough inside strong and em to follow gfm ([#&#8203;3569](https://redirect.github.com/markedjs/marked/issues/3569)) ([8a01658](8a01658cac))

</details>

<details>
<summary>napi-rs/napi-rs (napi)</summary>

### [`v3.0.0-alpha.26`](https://redirect.github.com/napi-rs/napi-rs/compare/napi@3.0.0-alpha.25...napi@3.0.0-alpha.26)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/napi@3.0.0-alpha.25...napi@3.0.0-alpha.26)

### [`v3.0.0-alpha.25`](https://redirect.github.com/napi-rs/napi-rs/releases/tag/napi%403.0.0-alpha.25)

[Compare Source](https://redirect.github.com/napi-rs/napi-rs/compare/napi@3.0.0-alpha.24...napi@3.0.0-alpha.25)

#### What's Changed

-   perf(napi): JsStringUtf8 take & into_owned & as_str fn by [@&#8203;SyMind](https://redirect.github.com/SyMind) in [https://github.com/napi-rs/napi-rs/pull/2404](https://redirect.github.com/napi-rs/napi-rs/pull/2404)
-   refactor!(napi): arguments tuple behavior by [@&#8203;adespawn](https://redirect.github.com/adespawn) in [https://github.com/napi-rs/napi-rs/pull/2401](https://redirect.github.com/napi-rs/napi-rs/pull/2401)
-   fix(napi): Function call with empty tuple should generate empty arguments by [@&#8203;richerfu](https://redirect.github.com/richerfu) in [https://github.com/napi-rs/napi-rs/pull/2407](https://redirect.github.com/napi-rs/napi-rs/pull/2407)
-   feat(napi): add get and try_get for FunctionCallContext by [@&#8203;richerfu](https://redirect.github.com/richerfu) in [https://github.com/napi-rs/napi-rs/pull/2409](https://redirect.github.com/napi-rs/napi-rs/pull/2409)
-   feat(napi): impl ReadableStream and AsyncGenerator by [@&#8203;Brooooooklyn](https://redirect.github.com/Brooooooklyn) in [https://github.com/napi-rs/napi-rs/pull/2418](https://redirect.github.com/napi-rs/napi-rs/pull/2418)

#### New Contributors

-   [@&#8203;ganthern](https://redirect.github.com/ganthern) made their first contribution in [https://github.com/napi-rs/napi-rs/pull/2402](https://redirect.github.com/napi-rs/napi-rs/pull/2402)
-   [@&#8203;lghuahua](https://redirect.github.com/lghuahua) made their first contribution in [https://github.com/napi-rs/napi-rs/pull/2416](https://redirect.github.com/napi-rs/napi-rs/pull/2416)

**Full Changelog**: https://github.com/napi-rs/napi-rs/compare/napi@3.0.0-alpha.23...napi@3.0.0-alpha.25

</details>

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

### [`v4.77.4`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4774-2025-01-08)

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

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

##### Documentation

-   **readme:** fix misplaced period ([#&#8203;1252](https://redirect.github.com/openai/openai-node/issues/1252)) ([c2fe465](c2fe46522d))

### [`v4.77.3`](https://redirect.github.com/openai/openai-node/blob/HEAD/CHANGELOG.md#4773-2025-01-03)

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

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

##### Chores

-   **api:** bump spec version ([#&#8203;1248](https://redirect.github.com/openai/openai-node/issues/1248)) ([37b3df9](37b3df9ac6))

</details>

<details>
<summary>serde-rs/json (serde_json)</summary>

### [`v1.0.135`](https://redirect.github.com/serde-rs/json/releases/tag/v1.0.135)

[Compare Source](https://redirect.github.com/serde-rs/json/compare/v1.0.134...v1.0.135)

-   Add serde_json::Map::into_values method ([#&#8203;1226](https://redirect.github.com/serde-rs/json/issues/1226), thanks [@&#8203;tisonkun](https://redirect.github.com/tisonkun))

</details>

<details>
<summary>shikijs/shiki (shiki)</summary>

### [`v1.26.1`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.26.1)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.26.0...v1.26.1)

#####    🐞 Bug Fixes

-   **shiki**: Missing language alias file, fix [#&#8203;883](https://redirect.github.com/shikijs/shiki/issues/883)  -  by [@&#8203;antfu](https://redirect.github.com/antfu) in [https://github.com/shikijs/shiki/issues/883](https://redirect.github.com/shikijs/shiki/issues/883) [<samp>(5766b)</

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuOTIuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-09 01:09:08 +00:00
Saul-Mirone
3683297ccf feat(editor): add feature flag service (#9592) 2025-01-08 15:46:31 +00:00
Brooooooklyn
fd26b72255 fix(server): disable winston in seflhost instance (#9585) 2025-01-08 14:47:42 +00:00
Saul-Mirone
5842d45ab1 feat(editor): merge store and blocks (#9591) 2025-01-08 13:01:19 +00:00
L-Sun
a0cba55a5b feat(mobile): mobile toc menu (#9582)
Close [BS-1787](https://linear.app/affine-design/issue/BS-1787/toc-移动端适配)
2025-01-08 08:03:11 +00:00
Saul-Mirone
fe727412be feat(editor): add editor store (#9584) 2025-01-08 07:47:43 +00:00
forehalo
0554df6bc2 fix(electron): filename escape (#9583) 2025-01-08 07:31:09 +00:00
pengx17
a4841bbfa3 feat(core): drop doc onto split view (#9487)
fix AF-2068, AF-2069, AF-1175, AF-2061, AF-2079, AF-2034, AF-2080, AF-1960, AF-2081

1. replace `dnd-kit` with `@atlaskit/pragmatic-drag-and-drop`
2. allow creating split views by drag & drop the following
   a. WorkbenchLinks (route links), like journals, trash, all docs
   b. doc refs
   c. tags/collection
3. style adjustments to split view
4. remove split view's feature flag and make it GA for electron

https://github.com/user-attachments/assets/6a3e4a25-faa2-4215-8eb0-983f44db6e8c
2025-01-08 05:05:33 +00:00
forehalo
c0ed74dfed chore: standardize tsconfig (#9568) 2025-01-08 04:07:56 +00:00
Brooooooklyn
39f4b17315 ci: fix android release pipeline (#9574) 2025-01-07 12:46:02 +00:00
fourdim
ebaceb481d fix(editor): enumerate ancestors (#9540) 2025-01-07 11:40:10 +00:00
L-Sun
440239809c refactor(editor): refactor page note empty checker (#9570)
Close [BS-2320](https://linear.app/affine-design/issue/BS-2320/内容为空的状态判断)
2025-01-07 11:24:40 +00:00
Brooooooklyn
482b534a90 chore(server): setup winston logger (#9561)
There is no impact on the existing logger, as the current logger is used with `new Logger(Context)` and does not utilize dependency injection. In the next phase, gradually replace and supplement the existing `Logger`.
2025-01-07 09:15:08 +00:00
Saul-Mirone
5e51018c03 fix(editor): remove ts ignore (#9567) 2025-01-07 08:48:05 +00:00
Brooooooklyn
474b01aad7 ci: pin xcode-version to 16.1 (#9564) 2025-01-07 06:26:11 +00:00
Saul-Mirone
26fb9d148c chore: remove awareness sync since it's not used (#9563) 2025-01-07 06:12:08 +00:00
Saul-Mirone
0d2eb64817 chore: move page not found error out of constants (#9547) 2025-01-07 05:57:38 +00:00
Brooooooklyn
df6a6ac392 ci: fix android build (#9558) 2025-01-07 05:42:09 +00:00
L-Sun
6e0468c70a chore(editor): revert padding and layout of code block toolbar (#9562)
Close [BS-1767](https://linear.app/affine-design/issue/BS-1767/code-block调整边距)

This PR reverts padding and layout of code block toolbar.

![CleanShot 2025-01-07 at 12.39.37@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/MyRfgiN4RuBxJfrza3SG/7f278d03-40c4-4592-a844-77a5179149fd.png)
2025-01-07 04:53:04 +00:00
L-Sun
ded17abf7e fix(editor): add childElementIds to ai generated frame (#9537)
Close [BS-1354](https://linear.app/affine-design/issue/BS-1354/更新-ai-slide-template-到新的-frame)

This PR add `childElementIds` to frame block in ai presentation templates
2025-01-07 04:19:09 +00:00
donteatfriedrice
52f2e8d5d5 refactor(editor): surface markdown adapter extensionalize (#9560)
[BS-2212](https://linear.app/affine-design/issue/BS-2212/adapter-extension化修复)
2025-01-07 03:14:08 +00:00
donteatfriedrice
69e9aa087e refactor(editor): extract mix-text adapter to shared (#9559) 2025-01-07 03:14:07 +00:00
fundon
69e73af2a8 refactor(editor): add native clipboard extension (#9502)
Closes: [BS-2239](https://linear.app/affine-design/issue/BS-2239/不应该通过window注入affine的api)
2025-01-06 15:36:43 +00:00
Saul-Mirone
f778d1a28a refactor(editor): move extension to store (#9552) 2025-01-06 15:15:14 +00:00
EYHN
46c8c4a408 feat(nbstore): improve nbstore (#9512) 2025-01-06 09:38:04 +00:00
EYHN
a2563d2180 feat(i18n): add uk i18n (#9530) 2025-01-06 09:23:03 +00:00
Saul-Mirone
36d027ae4b fix(editor): remote selection refresh rate (#9543)
Closes: [BS-2307](https://linear.app/affine-design/issue/BS-2307/%E7%90%86%E8%AE%BA%E4%B8%8A%E5%85%89%E6%A0%87%E5%BA%94%E8%AF%A5%E4%B8%8D%E6%B6%88%E5%A4%B1%EF%BC%8C%E4%B8%80%E7%9B%B4%E6%98%BE%E7%A4%BA)
2025-01-06 09:09:00 +00:00
EYHN
7514ccd452 feat(ios): add apis for native (#9536) 2025-01-06 08:20:31 +00:00
donqu1xotevincent
f8771aa053 docs: update README.md (#9542) 2025-01-06 15:18:15 +08:00
donteatfriedrice
09c7a597be fix(core): should focus when clicking sidebar button (#9339) 2025-01-06 04:09:01 +00:00
Saul-Mirone
fc863e484c refactor(editor): remove selection global types (#9532)
Closes: [BS-2217](https://linear.app/affine-design/issue/BS-2217/remove-global-types-in-selection)
2025-01-06 03:45:11 +00:00
EYHN
8669936f2f feat(i18n): i18n Localization and translations for Farsi (fa) 🇮🇷 (#9533)
Co-authored-by: Mahyar Riazati <mr.riazati1999@gmail.com>
2025-01-06 03:28:57 +00:00
CatsJuice
09937a8e4d chore: bump icons with new design source (#9529) 2025-01-06 03:10:03 +00:00
Saul-Mirone
c22804766d chore(editor): remove common utils in surface block (#9527) 2025-01-06 02:41:39 +00:00
Saul-Mirone
3d168ba2d2 refactor(editor): reorg code structure of store package (#9525) 2025-01-05 12:49:02 +00:00
Saul-Mirone
1180e9bc15 refactor(editor): move workspace meta to affine (#9524) 2025-01-05 06:49:31 +00:00
Saul-Mirone
be0de6dc21 refactor(editor): remove legacy blocksuite doc (#9521) 2025-01-05 01:25:59 +00:00
github-actions[bot]
1f1997a082 chore(i18n): sync translations (#9520)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-01-04 13:19:51 +00:00
Saul-Mirone
c773982ced refactor(editor): rename store api (#9518) 2025-01-04 12:51:56 +00:00
EYHN
650e4fb6b2 chore(i18n): i18n auto codegen (#9516) 2025-01-04 12:32:21 +00:00
Saul-Mirone
dcf4993265 refactor(core): move block collection to affine and implement as doc (#9514) 2025-01-04 06:28:55 +00:00
github-actions[bot]
4cb186def2 chore(i18n): sync translations (#9513)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-04 11:06:49 +08:00
github-actions[bot]
0b9afdb696 chore(i18n): sync translations (#9499)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
2025-01-03 15:55:39 +00:00
Saul-Mirone
4457cb7266 refactor(editor): rename doc to blocks (#9510) 2025-01-03 12:49:33 +00:00
Flrande
2074bda8ff fix(editor): at menu position in split view (#9500) 2025-01-03 12:20:31 +00:00
Saul-Mirone
b17dac2201 fix(editor): block selection error when unloaded (#9511)
Closes: [BS-2305](https://linear.app/affine-design/issue/BS-2305/typeerror-thisblock-is-null)
2025-01-03 10:09:02 +00:00
Saul-Mirone
ee5f13cd03 fix(editor): surface ref find element error (#9508) 2025-01-03 09:55:00 +00:00
Saul-Mirone
51b109ee53 chore(editor): move legacy doc collection to test workspace (#9507) 2025-01-03 09:40:33 +00:00
Saul-Mirone
cfd64f1fa5 refactor(core): move workspace implementation to affine (#9504) 2025-01-03 08:13:57 +00:00
Saul-Mirone
897c7d4284 refactor(editor): should not rely on doc collection type (#9501) 2025-01-03 06:30:27 +00:00
doouding
cb5d7eaabc feat: add scroll wheel zoom setting (#9476)
### Changed
Add `scroll wheel to zoom` setting option, when the option enables, user can zoom in and out with scroll wheel without pressing the cmd/ctrl key.
2025-01-03 06:09:10 +00:00
Saul-Mirone
0699205721 chore(editor): move helper to playground (#9498) 2025-01-03 04:23:59 +00:00
doouding
a4e94ab72f feat: add shortcut of zooming to selection (#9447)
### Changed
- change edgeless shortcut `cmd + 0`, `cmd + 1` to `alt + 0`, `alt + 1`
- add new shortcut `alt + 2` to zoom to currently selected elements
2025-01-03 03:57:05 +00:00
Saul-Mirone
30a181da38 refactor(editor): move mini mindmap to ai module (#9497) 2025-01-03 03:34:56 +00:00
doodlewind
cbc84ff672 fix(editor): blur in edgeless content zooming (#9496)
Fix [BS-2294](https://linear.app/affine-design/issue/BS-2294/edgeless-%E7%BC%A9%E6%94%BE%E5%AD%97%E5%8F%B7%E6%A8%A1%E7%B3%8A)
2025-01-03 02:36:57 +00:00
Saul-Mirone
8b6c81f76d refactor(editor): reduce dependency to doc collection (#9492) 2025-01-03 01:59:25 +00:00
renovate
eb15b3cb39 chore: bump up oxlint version to v0.15.5 (#9491)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.15.4` -> `0.15.5`](https://renovatebot.com/diffs/npm/oxlint/0.15.4/0.15.5) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.15.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.15.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.15.4/0.15.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.15.4/0.15.5?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.15.5`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.5): oxlint v0.15.5

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.4...oxlint_v0.15.5)

#### \[0.15.5] - 2025-01-02

##### Features

-   [`0e168b8`](https://redirect.github.com/oxc-project/oxc/commit/0e168b8) linter: Catch more cases in const-comparisons ([#&#8203;8215](https://redirect.github.com/oxc-project/oxc/issues/8215)) (Cameron)
-   [`bde44a3`](https://redirect.github.com/oxc-project/oxc/commit/bde44a3) linter: Add `statement_span` to `ModuleRecord/ImportEntry` ([#&#8203;8195](https://redirect.github.com/oxc-project/oxc/issues/8195)) (Alexander S.)
-   [`ccaa9f7`](https://redirect.github.com/oxc-project/oxc/commit/ccaa9f7) linter: Implement `eslint/new-cap`  ([#&#8203;8146](https://redirect.github.com/oxc-project/oxc/issues/8146)) (Alexander S.)

##### Bug Fixes

-   [`2b14a6f`](https://redirect.github.com/oxc-project/oxc/commit/2b14a6f) linter: Fix `ignorePattern` config for windows  ([#&#8203;8214](https://redirect.github.com/oxc-project/oxc/issues/8214)) (Alexander S.)

##### Testing

-   [`cb709c9`](https://redirect.github.com/oxc-project/oxc/commit/cb709c9) linter: Fix some oxlint tests on windows ([#&#8203;8204](https://redirect.github.com/oxc-project/oxc/issues/8204)) (Cameron)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-02 12:36:04 +00:00
renovate
93c8afd10d chore: bump up apollographql/apollo-ios version to from: "1.15.3" (#9486)
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [apollographql/apollo-ios](https://redirect.github.com/apollographql/apollo-ios) | minor | `from: "1.0.0"` -> `from: "1.15.3"` |

---

### Release Notes

<details>
<summary>apollographql/apollo-ios (apollographql/apollo-ios)</summary>

### [`v1.15.3`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1153)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.15.2...1.15.3)

##### Improvements

-   **Stable sort schema types for SchemaMetadata ([#&#8203;514](https://redirect.github.com/apollographql/apollo-ios-dev/pull/514)):** *Thank you to [@&#8203;asmundg](https://redirect.github.com/asmundg) for the contribution.*

##### Fixed

-   **Fix multipart delimter boundary parsing ([#&#8203;502](https://redirect.github.com/apollographql/apollo-ios-dev/pull/502)):** The multipart message parsing code was not splitting message chunks at the correct boundary when the dash boundary was present in the message body.
-   **Fix Websocket error broadcast for unsubscribed ID ([#&#8203;506](https://redirect.github.com/apollographql/apollo-ios-dev/pull/506))** Only broadcast an error to all subscribers if there was no id field in the message.
-   **Fix bug with `AnyHashable` coercion for non-iOS platforms ([#&#8203;517](https://redirect.github.com/apollographql/apollo-ios-dev/pull/517)):** Extended the \_AnyHashableCanBeCoerced check to include macOS, watchOS, and tvOS with their respective minimum versions. *Thank you to [@&#8203;VMLe](https://redirect.github.com/VMLe) for the fix.*
-   **Fix assigning websocket callback queue before connecting ([#&#8203;529](https://redirect.github.com/apollographql/apollo-ios-dev/pull/529)):** Fixed a race condition with the callback queue assignment during an unstable connection.
-   **Fix `GraphQLOperation` hash uniqueness ([#&#8203;530](https://redirect.github.com/apollographql/apollo-ios-dev/pull/530)):** Adding uniqueness to GraphQLOperation hashing.

### [`v1.15.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1152)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.15.1...1.15.2)

##### Improvements

-   **Set `URLRequest` cache policy on GET requests ([#&#8203;476](https://redirect.github.com/apollographql/apollo-ios-dev/pull/476)):** Uses the Apollo cache policy to set a comparable cache policy on `URLRequest`. Previously there was no way to opt-out of default `URLRequest` caching behaviour.
-   **Batch writing records to the SQLite store ([#&#8203;498](https://redirect.github.com/apollographql/apollo-ios-dev/pull/498)):** Uses the `insertMany` to batch write records for a given operation vs previously performing a write for each individual record.

##### Fixed

-   **Fix `ListData` type check ([#&#8203;473](https://redirect.github.com/apollographql/apollo-ios-dev/pull/473)):** Fixed bool type check in `ListData`.
-   **Remove local cache mutation type condition setter ([#&#8203;485](https://redirect.github.com/apollographql/apollo-ios-dev/pull/485)):** Removes the setter for mutable inline fragments. The correct way to initialize with a type condition is to use `asRootEntityType`.

### [`v1.15.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1151)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.15.0...1.15.1)

##### Fixed

-   **Fix decoding of deprecated `selectionSetInitializer` option `localCacheMutations` ([#&#8203;467](https://redirect.github.com/apollographql/apollo-ios-dev/pull/467)):** This option was deprecated in `1.15.0`, and the removal of the code to parse the option resulted in a validation error when the deprecated option was present in the JSON code generation config file. This is now fixed so that the option is ignored but does not cause code generation to fail.
-   **Disfavour deprecated watch function ([#&#8203;469](https://redirect.github.com/apollographql/apollo-ios-dev/pull/469)):** A deprecated version of the `watch` function matched the overload of the current version if certain parameters were omitted. This caused an incorrect deprecation warning in this situation. We've fixed this by adding `@_disfavoredOverload` to the deprecated function signature.

### [`v1.15.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1150)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.14.1...1.15.0)

##### New

-   **Add ability to disable fragment field merging ([#&#8203;431](https://redirect.github.com/apollographql/apollo-ios-dev/pull/431)):** Added `ApolloCodegenConfiguration` option to allow for disabling fragment field merging on generated models. For more information on this feature see the notes [here](https://redirect.github.com/apollographql/apollo-ios/releases/tag/preview-field-merging.1).

##### Fixed

-   **Fix `legacyResponse` property not being set on `HTTPResponse` ([#&#8203;456](https://redirect.github.com/apollographql/apollo-ios-dev/pull/456)):** When the `legacyResponse` property of `HTTPResponse` was deprecated setting the value was also removed; this was incorrect as it created a hidden breaking change for interceptors that might have been using the value.
-   **Fix `ObjectData` type check ([#&#8203;459](https://redirect.github.com/apollographql/apollo-ios-dev/pull/459)):** Fixed bool type check in `ObjectData`.
-   **Fix `SelectionSetTemplate` scope comparison ([#&#8203;460](https://redirect.github.com/apollographql/apollo-ios-dev/pull/460)):** Refactored the selection set template scope comparison to account for an edge case in merged sources.
-   **Fix memory leak in DataLoader closure ([#&#8203;457](https://redirect.github.com/apollographql/apollo-ios-dev/pull/457)):** Fixed a memory leak in the DataLoader closure in `ApolloStore` caused by implicit use of `self`. *Thank you to [@&#8203;prabhuamol](https://redirect.github.com/prabhuamol) for finding and fixing this.*

##### Breaking

-   **Bug Fix: Generated Selections Sets in Inclusion Condition Scope:** This fixes a bug when using @&#8203;include/[@&#8203;skip](https://redirect.github.com/skip) where generated models that should have been generated inside of a conditional inline fragment were generated outside of the conditional scope. This may cause breaking changes for a small number of users. Those breaking changes are considered a bug fix since accessing the conditional inline fragments outside of the conditional scope could cause runtime crashes (if the conditions for their inclusion were not met). More information [here](https://redirect.github.com/apollographql/apollo-ios/releases/tag/preview-field-merging.1)

### [`v1.14.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1141)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.14.0...1.14.1)

##### New

-   **Ability to set the journal mode on sqlite cache databases ([#&#8203;3399](https://redirect.github.com/apollographql/apollo-ios/issues/3399)):** There is now a function to set the journal mode of the connected sqlite database and control how the journal file is stored and processed. See PR [#&#8203;443](https://redirect.github.com/apollographql/apollo-ios-dev/pull/443). *Thanks to [@&#8203;pixelmatrix](https://redirect.github.com/pixelmatrix) for the feature request.*

##### Fixed

-   **Fix crash when `GraphQLError` is “too many validation errors”" ([#&#8203;438](https://redirect.github.com/apollographql/apollo-ios-dev/pull/438)):** When a GraphQLError from the JS parsing step is a “Too many validation errors” error, there is no `source` in the error object. Codegen will now check for it to avoid this edge case crash.
-   **Cache write interceptor should gracefully handle missing cache records ([#&#8203;439](https://redirect.github.com/apollographql/apollo-ios-dev/pull/439)):** The work to support the `@defer` directive introduced a bug where the cache write interceptor would throw if no cache records were returned during response parsing. This is incorrect as there are no cache records in the case of an `errors` only GraphQL response.
-   **Avoid using `fatalError` on `JSONEncodable` ([#&#8203;128](https://redirect.github.com/apollographql/apollo-ios-dev/pull/128)):** The fatal error logic in `JSONEncodable` was replaced with a type constraint `where` clause. *Thank you to [@&#8203;arnauddorgans](https://redirect.github.com/arnauddorgans) for the contribution.*
-   **Introspection-based schema download creates duplicate `@defer` directive definition ([#&#8203;3417](https://redirect.github.com/apollographql/apollo-ios/issues/3417)):** The codegen engine can now correctly detect pre-existing `@defer` directive definitions in introspection sources and prevent the duplicate definition. See PR [#&#8203;440](https://redirect.github.com/apollographql/apollo-ios-dev/pull/440). *Thanks to [@&#8203;loganblevins](https://redirect.github.com/loganblevins) for reporting the issue.*

### [`v1.14.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1140)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.13.0...1.14.0)

##### New

-   **Experimental support for the `@defer` directive:** You can now use the `@defer` directive in your operations and code generation will generate models that support asynchronously receiving the deferred selection sets. There is a helpful property wrapper with a projected value to determine the state of the deferred selection set, and support for cache reads and writes. This feature is enabled by default but is considered [experimental](https://www.apollographql.com/docs/resources/product-launch-stages/#experimental-features). Please refer to the [documentation](https://www.apollographql.com/docs/ios/fetching/defer/) for further details.
-   **Add `debugDescription` to `SelectionSet` ([#&#8203;3374](https://redirect.github.com/apollographql/apollo-ios/issues/3374)):** This adds the ability to easily print code generated models to the Xcode debugger console. See PR [#&#8203;412](https://redirect.github.com/apollographql/apollo-ios-dev/pull/412). *Thanks to [@&#8203;raymondk-nf](https://redirect.github.com/raymondk-nf) for raising the issue.*
-   **Xcode 16 editor config files ([#&#8203;3404](https://redirect.github.com/apollographql/apollo-ios/issues/3404)):** Xcode 16 introduced support for `.editorconfig` files that represent settings like spaces vs. tabs, how many spaces per tab, etc. We've added a `.editorconfig` file with the projects preferred settings, so that the editor will use them automatically. See PR [#&#8203;419](https://redirect.github.com/apollographql/apollo-ios-dev/pull/419). *Thanks to [@&#8203;TizianoCoroneo](https://redirect.github.com/TizianoCoroneo) for raising the issue.*

##### Fixed

-   **Local cache mutation build error in Swift 6 ([#&#8203;3398](https://redirect.github.com/apollographql/apollo-ios/issues/3398)):** Mutating a property of a fragment annotated with the `@apollo_client_ios_localCacheMutation` directive caused a compile time error in Xcode 16 with Swift 6. See PR [#&#8203;417](https://redirect.github.com/apollographql/apollo-ios-dev/pull/417). *Thanks to [@&#8203;martin-muller](https://redirect.github.com/martin-muller) for raising the issue.*

### [`v1.13.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1130)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.12.2...1.13.0)

##### New

-   **Added `ExistentialAny` requirement ([#&#8203;379](https://redirect.github.com/apollographql/apollo-ios-dev/pull/379)):** This adds the `-enable-upcoming-feature ExistentialAny` to all targets to ensure compatibility with the upcoming Swift feature.
-   **Schema type renaming ([#&#8203;388](https://redirect.github.com/apollographql/apollo-ios-dev/pull/388)):** This adds the feature to allow customizing the names of schema types in Swift generated code.
-   **JSONConverter helper ([#&#8203;380](https://redirect.github.com/apollographql/apollo-ios-dev/pull/380)):** This adds a new helper class for handling JSON conversion of data including the ability to convert `SelectionSet` instances to JSON.

##### Fixed

-   **ApolloSQLite build error with Xcode 16 ([#&#8203;386](https://redirect.github.com/apollographql/apollo-ios-dev/pull/386)):** This fixes a naming conflict with Foundation in iOS 18 and the SQLite library. *Thanks to [@&#8203;rastersize](https://redirect.github.com/rastersize) for the contributon.*

### [`v1.12.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1122)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.12.1...1.12.2)

##### Fixed

-   **Rebuilt the CLI binary with the correct version number:** The CLI binary included in the `1.12.1` package was built with an incorrect version number causing a version mismatch when attempting to execute code generation.

### [`v1.12.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1121)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.12.0...1.12.1)

##### Fixed

-   **Rebuilt the CLI binary:** The CLI binary included in the `1.12.0` package was built with inconsistent SDK versions resulting in the linker signing not working correctly.

### [`v1.12.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1120)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.11.0...1.12.0)

##### New

-   **`ID` as a custom scalar ([#&#8203;3379](https://redirect.github.com/apollographql/apollo-ios/issues/3379)):** This changes the generation of the built-in GraphQL `ID` scalar to be treated as a custom scalar that can be modified by the user. See PR [#&#8203;363](https://redirect.github.com/apollographql/apollo-ios-dev/pull/363).

##### Fixed

-   **Adds visionOS deployment to ApolloTestSupport podspec ([#&#8203;364](https://redirect.github.com/apollographql/apollo-ios-dev/pull/364)):** This adds the `visionOS` deployment target to the ApolloTestSupport podspec to match the other package managers.
-   **Add `@_spi(Execution)` to executor for import in test mocks ([#&#8203;362](https://redirect.github.com/apollographql/apollo-ios-dev/pull/362)):** This replaces the use of `@testable` in ApolloTestSupport with specific `@_spi` scopes. This resolves a few issues that have been reported where the Apollo module could not be built for testing in non-debug configurations.

### [`v1.11.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1110)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.10.0...1.11.0)

##### New

-   **Added `refetchOnFailedUpdates` option to `GraphQLQueryWatcher` ([#&#8203;347](https://redirect.github.com/apollographql/apollo-ios/pull/347)):** This allows you to configure the query watcher not to refetch it's query from the server when a cache read to update it's data fails.

##### Fixed

-   **Generated input objects have default `nil` value for parameters with a schema-defined default value ([#&#8203;2997](https://redirect.github.com/apollographql/apollo-ios/issues/2997)):** When the schema defines a default value for an input parameter, you can now omit that parameter when initializing the input object and the default value will be used. This corrects feature parity with the Apollo Kotlin client. See PR [#&#8203;358](https://redirect.github.com/apollographql/apollo-ios-dev/pull/358).

-   **Fix namespacing error in `InterfaceTemplate` ([#&#8203;3375](https://redirect.github.com/apollographql/apollo-ios/issues/3375)):** This fixes an issue where having a schema type named `Interface` caused compilation errors in generated code. See PR [#&#8203;359](https://redirect.github.com/apollographql/apollo-ios-dev/pull/359).

### [`v1.10.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v1100)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.9.3...1.10.0)

##### New

-   **Added support for visionOS ([#&#8203;3320](https://redirect.github.com/apollographql/apollo-ios/issues/3320)):** All the dependecies that Apollo iOS requires have been updated to add support for visionOS, so we can now add official support for visionOS too. See PR [#&#8203;333](https://redirect.github.com/apollographql/apollo-ios-dev/pull/333).

##### Improvement

-   **Add Sendable conformance to some basic SchemaTypes:** This adds `Sendable` conformance to the some of the generated schema types. This does not mean that all of the generated code is safe to use yet with complete concurrency checking of Swift 5.10 but it gets us closer to that goal. See PR [#&#8203;322](https://redirect.github.com/apollographql/apollo-ios-dev/pull/322). *Thanks to [@&#8203;bdbergeron](https://redirect.github.com/bdbergeron) for the contributon.*

### [`v1.9.3`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v193)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.9.2...1.9.3)

##### Fixed

-   **Fix injecting of context for UploadRequest:** Any request context passed into an upload request was not being added to the HTTP request and would not be available to the interceptor chain. See PR ([#&#8203;302](https://redirect.github.com/apollographql/apollo-ios-dev/pull/302)). *Thanks to [@&#8203;RobertDresler](https://redirect.github.com/RobertDresler) for the contribution.*
-   **Added support for SPM Package.resolved format version 3 ([#&#8203;3355](https://redirect.github.com/apollographql/apollo-ios/issues/3355)):** When using Xcode 15.3 the codegen CLI would fail the `generate` command with an error stating the Package.resolve file version is unsupported. Version 3 is now accepted as a valid file format for the codegen version checker. See PR ([#&#8203;304](https://redirect.github.com/apollographql/apollo-ios-dev/pull/304)).
-   **PrivacyInfo.xcprivacy file is invalid for Apollo and ApolloApi ([#&#8203;3359](https://redirect.github.com/apollographql/apollo-ios/issues/3359)):** We received reports that when submitting to the App Store the submission would fail with an error stating that the privacy manifests were invalid. We identified the error and updated the privacy files. See PR ([#&#8203;309](https://redirect.github.com/apollographql/apollo-ios-dev/pull/309)). *Thanks to [@&#8203;azilbershtein](https://redirect.github.com/azilbershtein) for raising the issue.*

##### Improvement

-   **Provide a direct means to observe changes in ApolloStore:** `ApolloStore` now exposes it's subscriber mechanism publicly. This means you can now observe and receive notifications about changes to the store. See PR ([#&#8203;300](https://redirect.github.com/apollographql/apollo-ios-dev/pull/300)). *Thanks to [@&#8203;jamesonwilliams](https://redirect.github.com/jamesonwilliams) for the contribution.*
-   **Remove redundant iteration in EntitySelectionTree merging algorithm:** The conditions for merging selections were revisited and we identified, and removed, a redundant iteration. This is a significant performance improvement as it removes an entire additional iteration through all the conditional scopes in the tree. See PR ([#&#8203;308](https://redirect.github.com/apollographql/apollo-ios-dev/pull/308)).

### [`v1.9.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v192)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.9.1...1.9.2)

##### Fixed

-   **Backwards Compatibility issues in 1.9.1:** 1.9.1 introduced a minor breaking change for some users who were creating a custom implementaiton of `ApolloClientProtocol`. Sorry about that! This patch release fixed the compatiblity. See PR [#&#8203;290](https://redirect.github.com/apollographql/apollo-ios-dev/pull/290). *Thanks to [@&#8203;michaelloo](https://redirect.github.com/michaelloo) for raising the issue.*

##### Improvement

-   **Session and task descriptions parameters added to `URLSessionClient` ([#&#8203;286](https://redirect.github.com/apollographql/apollo-ios-dev/pull/286)):** The `URLSessionClient` now allows you to set a `sessionDescription` on the session and `taskDescription` on each task. These are helpful when debugging, especially when analyzing HTTP traffic with Instruments. *Thanks to [@&#8203;hishma](https://redirect.github.com/hishma) for the contribution.*

### [`v1.9.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v191)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.9.0...1.9.1)

##### Fixed

-   **`SelectionSet` generated initializers don't compile with `self` parameter ([#&#8203;3330](https://redirect.github.com/apollographql/apollo-ios/issues/3330)):** Selection set initializers now use a local property name when the external property name is a Swift reserved word; see PR [#&#8203;257](https://redirect.github.com/apollographql/apollo-ios-dev/pull/257). *Thanks to [@&#8203;grantjbutler](https://redirect.github.com/grantjbutler) for raising the issue.*
-   **asXXXXXXX property on a union never returning `nil` if selection set empty ([#&#8203;3326](https://redirect.github.com/apollographql/apollo-ios/issues/3326)):** - The codegen logic to determine whether a selection set is composite or not has been improved to handle the case when `__typename` was the only field in the selection set; see PR [#&#8203;261](https://redirect.github.com/apollographql/apollo-ios-dev/pull/261). *Thanks to [@&#8203;vincentisambart](https://redirect.github.com/vincentisambart) for raising the issue.*

##### Improvement

-   **Feature/ContextIdentifier for the mutate queries ([#&#8203;281](https://redirect.github.com/apollographql/apollo-ios-dev/pull/281)):** Mutation operations can now be given a context identifier to be used later in the request. *Thanks to [@&#8203;VladimirK-ah](https://redirect.github.com/VladimirK-ah) for the contribution.*

### [`v1.9.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v190)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.8.0...1.9.0)

##### Improvement

-   **New import directive for operations:** GraphQL operations now support a directive to control custom module import statements in the generated file. Any operation that includes the directive `@import(module:)`, on the defintion line, with a supplied `String` as the module name will have that module used in a Swift `import` statement at the top of the operation file and any referenced fragments. *Thank you to [@&#8203;hemel](https://redirect.github.com/hemel) for the contribution ([#&#8203;236](https://redirect.github.com/apollographql/apollo-ios-dev/pull/236) / [#&#8203;245](https://redirect.github.com/apollographql/apollo-ios-dev/pull/245)).*

##### Fixed

-   **The `fragmentDefinition` remains in all generated fragments when `operationDocumentFormat` does not include `.definition` ([#&#8203;3282](https://redirect.github.com/apollographql/apollo-ios/issues/3282)):** Code generation will now only generate definitions in fragment files if the `operationDocumentFormat` config contains the `.definition` value ([#&#8203;218](https://redirect.github.com/apollographql/apollo-ios-dev/pull/218)). *Thank you to [@&#8203;jimisaacs](https://redirect.github.com/jimisaacs) for raising the issue.*
-   **Custom scalar file header comment ([#&#8203;3323](https://redirect.github.com/apollographql/apollo-ios/issues/3323)):** The header comment for generated custom scalar files was incorrectly changed to state that the output "should not be edited" but the file content could still be edited and would not be overwritten. The header comment has been changed back to state that the contents will be preserved during subsequent codegen executions. *Thank you to [@&#8203;matsudamper](https://redirect.github.com/matsudamper) for raising the issue and the contribution to fix it ([#&#8203;243](https://redirect.github.com/apollographql/apollo-ios-dev/pull/243)).*

##### Changed

-   **WebSocket disconnection errors are no longer printed to stdout ([#&#8203;3325](https://redirect.github.com/apollographql/apollo-ios/issues/3325)):** See PR ([#&#8203;253](https://redirect.github.com/apollographql/apollo-ios-dev/pull/253)) *Thank you to [@&#8203;sgade](https://redirect.github.com/sgade) for raising the issue.*

### [`v1.8.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v180)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.7.1...1.8.0)

##### Fixed

-   **Duplicate `@defer` directive error ([#&#8203;235](https://redirect.github.com/apollographql/apollo-ios-dev/pull/235)):** When executing codegen against Apollo Router and a schema that supports the `@defer` directive it would fail with an error stating the directive is duplicated.

##### Improvement

-   **Added \`InputObject\`\` casing strategy ([#&#8203;137](https://redirect.github.com/apollographql/apollo-ios-dev/pull/137)):** We've added a new casing strategy option for InputObjects which mimics the behaviour of the enum case conversion strategy. *Thank you to [@&#8203;alexifrim](https://redirect.github.com/alexifrim) for raising this in issue [#&#8203;3257](https://redirect.github.com/apollographql/apollo-ios/issues/3257).*
-   **Added `GraphQLResult` conversion extension ([#&#8203;139](https://redirect.github.com/apollographql/apollo-ios-dev/pull/139)):** `GraphQLResult` response data can now be easily converted into a JSON dictionary. This is useful for taking server response data and serializing it into a JSON dictionary which can then be used in a test suite.
-   **Codegen performance improvements ([#&#8203;152](https://redirect.github.com/apollographql/apollo-ios-dev/pull/152)):** There has been a bunch of refactoring work to prepare for future codegen features but we've also managed to squeeze out some performance improvements.

### [`v1.7.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v171)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.7.0...1.7.1)

##### Fixed

-   **Fixed inconsistent ordering of fragments in generated operation definitions  ([#&#8203;130](https://redirect.github.com/apollographql/apollo-ios-dev/pull/130)):** In order to make the ordering of fragments consistent, they are now alphabetized. This is a change to the data that gets sent over the wire when making a network request for an operation with fragments. **[Persisted Queries](https://www.apollographql.com/docs/ios/fetching/persisted-queries) users should re-register their queries when upgrading to this version.** *Thank you to [@&#8203;scottasoutherland](https://redirect.github.com/scottasoutherland) for reporting the issue.*

##### Improvement

-   **Add initializer for `SelectionSet` that takes a `[String: Any]` JSON object ([#&#8203;102](https://redirect.github.com/apollographql/apollo-ios-dev/pull/102)):** *Thank you to [@&#8203;Cookiezby](https://redirect.github.com/Cookiezby) for the contribution.*

### [`v1.7.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v170)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.6.1...1.7.0)

**`ApolloCodegenLib` Now Uses Swift Concurrency**
To improve the performance of the code generation, the `ApolloCodegenLib` now uses `async/await`. Code generation is now parallelized and should complete much faster for users with a large number of GraphQL files.
This means that the entry point function, `ApolloCodegen.build(with configuration:)` is now an `async` function. For users using the `ApolloCodegenLib` directly, you will need to make your call sites into this function use `async/await`. In most cases, this requires minimal code changes. Please see the [1.7.0 migration guide](https://www.apollographql.com/docs/ios/migrations/1.7) for information on how to upgrade.

See PR [#&#8203;57](https://redirect.github.com/apollographql/apollo-ios-dev/pull/57).

##### Fixed

-   **Fixed a bug with ApolloAPI.Object clashing with custom objects name Object ([#&#8203;94](https://redirect.github.com/apollographql/apollo-ios-dev/pull/94)):** *Thank you to [215eight](https://redirect.github.com/215eight) for reporting the issue.*

### [`v1.6.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v161)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.6.0...1.6.1)

##### Fixed

-   **Fix bug with AnyHashable coercion ([#&#8203;68](https://redirect.github.com/apollographql/apollo-ios-dev/pull/68)):** This is an additional fix for the crashes on iOS 14.4.1.

### [`v1.6.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v160)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.5.2...1.6.0)

The Apollo iOS ecosystem is changing in the 1.6.0 release in order to provide a better development experience for users. For most users nothing will change, while some users will see a minor difference. The biggest change is that the `ApolloCodegenLib` is now in a separate repo/package that will need to be included as its own dependency from [apollo-ios-codegen](https://redirect.github.com/apollographql/apollo-ios-codegen) if you are doing your code generation through Swift. If you are using the codegen CLI then no changes are necessary.

For a detailed breakdown of the changes please see this [GitHub Issue](https://redirect.github.com/apollographql/apollo-ios/issues/3240).

##### Fixed

-   **Fixed crashes in iOS 14.4 and below ([#&#8203;61](https://redirect.github.com/apollographql/apollo-ios-dev/pull/61)):** *Thank you to [matijakregarGH](https://redirect.github.com/matijakregarGH) for reporting the issue.*

### [`v1.5.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v152)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.5.1...1.5.2)

The purpose of this release is to provide a deprecation message to users of `ApolloCodegenLib` who are scripting their code generation in advance of an upcoming change to our libraries and repo structure. Beginning with the upcoming 1.6.0 release the code generation libraries will be their own SPM package in their own repo which will require you to add a new dependency to you project in order for your code generation scripting to compile. More information can be found in our [announcement](https://redirect.github.com/apollographql/apollo-ios/issues/3240) of this change.

**If you would like to avoid this deprecation warning in your builds feel free to stay on 1.5.1 or earlier, this warning will be gone in the 1.6.0 release**

PR containing deprecation warning for reference: [#&#8203;3243](https://redirect.github.com/apollographql/apollo-ios/pull/3243).

### [`v1.5.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v151)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.5.0...1.5.1)

##### Improvement

-   **Added `OutputOptions` property to codegen for marking generated classes as `final` ([#&#8203;3189](https://redirect.github.com/apollographql/apollo-ios/pull/3189)):** *Thank you to [@&#8203;Mordil](https://redirect.github.com/Mordil) for the contribution.*

##### Fixed

-   **Codegen `itemsToGenerate` option for `.all` not generating an operation manifest ([#&#8203;3215](https://redirect.github.com/apollographql/apollo-ios/pull/3215)):** *Thank you to [@&#8203;TizianoCoroneo](https://redirect.github.com/TizianoCoroneo) for finding and fixing the issue.*
-   **Codegen operation manifest inadvertantly being generated twice ([#&#8203;3225](https://redirect.github.com/apollographql/apollo-ios/pull/3225)):** *Thank you to [@&#8203;jimisaacs](https://redirect.github.com/jimisaacs) for finding and fixing the issue.*

### [`v1.5.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v150)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.4.0...1.5.0)

##### New

-   **Added the ability pass a custom `RequestContext` to networking APIs ([#&#8203;3198](https://redirect.github.com/apollographql/apollo-ios/pull/3198)):** *Thank you to [@&#8203;danieltiger](https://redirect.github.com/danieltiger) for the contribution.*
    -   **Minor Breaking Change:** The `requestContext` parameter is optional with a default value of `nil`. This means there are no breaking changes to the APIs for making networking calls. However, the `requestContext` parameter was also added to the `ApolloClientProtocol`. For custom implementations of this protocol (usually used for unit testing), you will need to add the `requestContext` parameter to your function signatures.

##### Fixed

-   **Null values are no longer stripped from the underlying data used by generated `SelectionSet` models ([apollo-ios-dev/#&#8203;25](https://redirect.github.com/apollographql/apollo-ios-dev/pull/25)):**
    -   When these models were manually inserted into the cache, the null fields, which were stripped, were not written to the cache. This caused unintended cache misses when fetching those values back out of the cache.
    -   This fixes [#&#8203;3092](https://redirect.github.com/apollographql/apollo-ios/issues/3092). *Thank you to [@&#8203;
        aleksanderlorenc-lw](https://redirect.github.com/aleksanderlorenc-lw) for raising this issue.*

### [`v1.4.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v140)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.3.3...1.4.0)

##### New

-   **Added the ability to set a casing strategy for field names in code generation ([#&#8203;2738](https://redirect.github.com/apollographql/apollo-ios/issues/2738)):** See PR ([#&#8203;3171](https://redirect.github.com/apollographql/apollo-ios/pull/3171)). *Thank you to [@&#8203;Spatel91111](https://redirect.github.com/Spatel91111) for the feature request.*

##### Improvement

-   **Updated the way persisted queries are configured for code and manifest generation:** See PR ([#&#8203;3175](https://redirect.github.com/apollographql/apollo-ios/pull/3175))
-   **Updated docs for `other` schema module type to provide more clarity ([#&#8203;3164](https://redirect.github.com/apollographql/apollo-ios/issues/3164)):** See PR ([#&#8203;3170](https://redirect.github.com/apollographql/apollo-ios/pull/3170)) *Thank you to [@&#8203;Mordil](https://redirect.github.com/Mordil) for suggesting this update.*

### [`v1.3.3`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v133)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.3.2...1.3.3)

##### Fixed

-   **Fix two issues with generated models:** See PR ([#&#8203;3168](https://redirect.github.com/apollographql/apollo-ios/pull/3168)). *Thank you to [@&#8203;iAmericanBoy](https://redirect.github.com/iAmericanBoy) for finding these issues and providing a reproduction case.*
-   **Fix computation of operation identifiers for persisted queries:** See PR ([#&#8203;3163](https://redirect.github.com/apollographql/apollo-ios/pull/3163)). *Thank you to [@&#8203;WolframPRO](https://redirect.github.com/WolframPRO) for finding these issues.*

### [`v1.3.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v132)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.3.1...1.3.2)

##### Improved

-   **Throw an error when an invalid key is present in the codegen configuration JSON ([#&#8203;2942](https://redirect.github.com/apollographql/apollo-ios/issues/2942)):** See PR ([#&#8203;3125](https://redirect.github.com/apollographql/apollo-ios/pull/3125)) *Thank you to [@&#8203;Iron-Ham](https://redirect.github.com/Iron-Ham) for the contribution.*
-   **Cleanup unused imports and declarations. ([#&#8203;3099](https://redirect.github.com/apollographql/apollo-ios/issues/3099)):** See PR ([#&#8203;3100](https://redirect.github.com/apollographql/apollo-ios/pull/3100)) *Thank you to [@&#8203;Iron-Ham](https://redirect.github.com/Iron-Ham) for raising the issue and contributing the fix.*
-   **Improvement to response code error API ([#&#8203;2426](https://redirect.github.com/apollographql/apollo-ios/issues/2426)):** See PR ([#&#8203;3123](https://redirect.github.com/apollographql/apollo-ios/pull/3123)). *Thank you to [@&#8203;dfperry5](https://redirect.github.com/dfperry5) for the contribution.*
-   **Improved file path support for operation manifest generation:** See PR ([#&#8203;3128](https://redirect.github.com/apollographql/apollo-ios/pull/3128))

##### Fixed

-   **Fix two issues in test mock generation:** See PR ([#&#8203;3120](https://redirect.github.com/apollographql/apollo-ios/pull/3120)). *Thank you to [@&#8203;TizianoCoroneo](https://redirect.github.com/TizianoCoroneo) for finding this issue and contributing the fix.*
-   **Fixed precondition failure when surpassing graphql-js max error count ([#&#8203;3126](https://redirect.github.com/apollographql/apollo-ios/issues/3126)):** See PR ([#&#8203;3132](https://redirect.github.com/apollographql/apollo-ios/pull/3132)).

##### Deprecated

-   **Deprecated `queryStringLiteralFormat` in `ApolloCodegenConfiguration`:** Query string literals will now always be generated as single line strings. See PR ([#&#8203;3129](https://redirect.github.com/apollographql/apollo-ios/pull/3129)).

### [`v1.3.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v131)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.3.0...1.3.1)

##### Fixed

-   **Fix crashes in test mocks when setting an array of union types ([#&#8203;3023](https://redirect.github.com/apollographql/apollo-ios/pull/3023)):** See PR ([#&#8203;3089](https://redirect.github.com/apollographql/apollo-ios/pull/3089)). *Thank you to [@&#8203;jabeattie](https://redirect.github.com/jabeattie) & [@&#8203;scottasoutherland](https://redirect.github.com/scottasoutherland) for raising the issue.*

##### Deprecated

-   **Deprecated `APQConfig` & `operationIdentifiersPath` in `ApolloCodegenConfiguration`:** These have been replaced with `OperationDocumentFormat` and `OperationManifestFileOutput` respectively. Please see the documentation for [`ApolloCodegenConfiguration`](https://www.apollographql.com/docs/ios/code-generation/codegen-configuration) for more information.

### [`v1.3.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v130)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.2.2...1.3.0)

Though `1.3.0` is a minor version bump, some critical issues were addressed in this version that requires a small breaking change during the upgrade.  While we strive to make the upgrade path for minor versions seamless, these issues could not be reasonably resolved without requiring this migration.

For a detailed explanation of the breaking changes and a guide on how to migrate to `1.3.0`, see our [migration guide](https://www.apollographql.com/docs/ios/migrations/1.3).

##### Breaking

-   **Using reserved keyword `Type` as in selection fields does not compile ([#&#8203;3006](https://redirect.github.com/apollographql/apollo-ios/issues/3006)):** See PR [#&#8203;3058](https://redirect.github.com/apollographql/apollo-ios/pull/3058). *Thank you to [@&#8203;Nielssg](https://redirect.github.com/Nielssg) for raising the issue.*
-   **Memory leak from `InterceptorRequestChain` when ending the chain with `returnValueAsync` ([#&#8203;3057](https://redirect.github.com/apollographql/apollo-ios/issues/3057)):** See PR [#&#8203;3070](https://redirect.github.com/apollographql/apollo-ios/pull/3070). *Thank you to [@&#8203;marksvend](https://redirect.github.com/marksvend) for raising the issue.*

### [`v1.2.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v122)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.2.1...1.2.2)

##### Added

-   **Support SOCKS proxies for debugging websocket based subscriptions([#&#8203;2788](https://redirect.github.com/apollographql/apollo-ios/issues/2788)):** *Thank you to [@&#8203;tahirmit](https://redirect.github.com/tahirmt) for the contribution.*

##### Fixed

-   **Fix conversion of generated models into nested type cases ([#&#8203;2989](https://redirect.github.com/apollographql/apollo-ios/issues/2989) & [#&#8203;2980](https://redirect.github.com/apollographql/apollo-ios/issues/2980)):** In some cases, the generated models were missing types when calculating which fragments were fulfilled for a selection set. This was causing type case conversion to return `nil` incorrectly. See PR [#&#8203;3067](https://redirect.github.com/apollographql/apollo-ios/pull/3067). *Thank you to [@&#8203;tgyhlsb](https://redirect.github.com/tgyhlsb) and [@&#8203;dafurman](https://redirect.github.com/dafurman) for raising these issues.*
-   **Fix crashes in code generation when merging fragments at definition root ([#&#8203;3071](https://redirect.github.com/apollographql/apollo-ios/issues/3071)):** When fragments with type conditions were defined on the root of an operation or named fragment, the code generation engine was crashing. See PR [#&#8203;3073](https://redirect.github.com/apollographql/apollo-ios/pull/3073). *Thank you to [@&#8203;tahirmit](https://redirect.github.com/tahirmt) for raising and helping us reproduce this issue.*
-   **Fix parsing of input objects as default values for input params ([#&#8203;2978](https://redirect.github.com/apollographql/apollo-ios/issues/2978)):** The codegen engine will no longer crash in this situation. *Thank you to [@&#8203;ecunha-ta](https://redirect.github.com/ecunha-ta) for raising the issue.*

### [`v1.2.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v121)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.2.0...1.2.1)

##### Improved

-   **Added new validation to alert users to type naming conflict when running code generation([#&#8203;2405](https://redirect.github.com/apollographql/apollo-ios/issues/2405)):** See PR [#&#8203;3041](https://redirect.github.com/apollographql/apollo-ios/pull/3041).

##### Fixed

-   **Int values failing to cast to Scalar Type during cache key resolution ([#&#8203;3034](https://redirect.github.com/apollographql/apollo-ios/issues/3034)):** See PR [#&#8203;3037](https://redirect.github.com/apollographql/apollo-ios/pull/3037). *Thank you to [@&#8203;asbhat](https://redirect.github.com/asbhat) for raising the issue.*
-   **Fix malformed RootEntityType on generated fragment with `@include` condition. ([#&#8203;2962](https://redirect.github.com/apollographql/apollo-ios/issues/2962)):** See PR [#&#8203;3045](https://redirect.github.com/apollographql/apollo-ios/pull/3045). *Thank you to [@&#8203;alexisbronchart](https://redirect.github.com/alexisbronchart) for raising the issue.*

### [`v1.2.0`](https://redirect.github.com/apollographql/apollo-ios/releases/tag/1.2.0)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.1.3...1.2.0)

Though 1.2 is a minor version bump, a critical problem was addressed in this version that requires a small breaking change during the upgrade.  While we strive to make the upgrade path for minor versions seamless, this issue could not be reasonably resolved without requiring this migration.

**For most users, this migration will only require a single change to your `SchemaConfiguration.swift` file.**

For a detailed explanation of the breaking changes and a guide on how to migrate to v1.2, see our [migration guide](https://www.apollographql.com/docs/ios/migrations/1.2).

##### Breaking

-   **Cache Key Configuration API Changes ([#&#8203;2990](https://redirect.github.com/apollographql/apollo-ios/pull/2990)):** The API for configuring custom cache keys has had a minor change in this version. The signature of the `cacheKeyInfo(for:object:)` function, defined in your generated SchemaConfiguration.swift file, has been modified. For more information, see our [migration guide](https://www.apollographql.com/docs/ios/migrations/1.2).

##### Improved

-   **Improved performance of GraphQL execution ([#&#8203;2990](https://redirect.github.com/apollographql/apollo-ios/pull/2990)):** Improvements to the `GraphQLExecutor` resulted in a ~15-20% reduction in execution time for parsing and mapping network response or cache data onto generated models.
-   **Improved performance of generated model initialization and type conversions ([#&#8203;2990](https://redirect.github.com/apollographql/apollo-ios/pull/2990)):** The `DataDict` used to store the data for generated models has been updated to use copy-on-write value semantics. This resulted in a ~70-80% reduction in the execution time of initialization and type case conversions in the generated models.

##### Fixed

-   **Pruning generated files for `.relative(subpath:)` operations ([#&#8203;2969](https://redirect.github.com/apollographql/apollo-ios/issues/2969)):** See PR [#&#8203;2994](https://redirect.github.com/apollographql/apollo-ios/pull/2994). *Thank you to [@&#8203;jimisaacs](https://redirect.github.com/jimisaacs) for raising the issue.*
-   **InputObjects generated with incorrect getter/setter key ([#&#8203;2858](https://redirect.github.com/apollographql/apollo-ios/issues/2858)):** See PR [#&#8203;2996](https://redirect.github.com/apollographql/apollo-ios/pull/2996). *Thank you to [@&#8203;Austinpayne](https://redirect.github.com/Austinpayne) for raising the issue.*
-   **Generates conflicting types for fields of singular and plural names ([#&#8203;2850](https://redirect.github.com/apollographql/apollo-ios/issues/2850)):** See PR [#&#8203;3009](https://redirect.github.com/apollographql/apollo-ios/pull/3009). *Thank you to [@&#8203;sgade](https://redirect.github.com/sgade) for raising the issue.*
-   **Equality operator shows incorrect values based on value of `__fulfilled` ([#&#8203;2944](https://redirect.github.com/apollographql/apollo-ios/issues/2944)):** See PR [#&#8203;2990](https://redirect.github.com/apollographql/apollo-ios/pull/2990). *Thank you to [@&#8203;scottasoutherland](https://redirect.github.com/scottasoutherland) for raising the issue.*

##### New

-   **Add option to generate objects with `internal` access modifier ([#&#8203;2630](https://redirect.github.com/apollographql/apollo-ios/issues/2630)):** See PR [#&#8203;2917](https://redirect.github.com/apollographql/apollo-ios/pull/2917). *Thank you to [@&#8203;simonbilskyrollins](https://redirect.github.com/simonbilskyrollins) for the feature request.*

### [`v1.1.3`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v113)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.1.2...1.1.3)

##### Fixed

-   **`@dynamicMember` conflicting field name ([#&#8203;2950](https://redirect.github.com/apollographql/apollo-ios/issues/2950)):** The subscript setters have been changed to allow a selection set property named `hash`. [#&#8203;2965](https://redirect.github.com/apollographql/apollo-ios/pull/2965) *Thank you to [@&#8203;renanbdias](https://redirect.github.com/renanbdias) for raising the issue.*
-   **Disallow certain targetNames in code generation ([#&#8203;2958](https://redirect.github.com/apollographql/apollo-ios/issues/2958)):** `apollo` is no longer allowed as a target name otherwise it causes a conflict when importing `Apollo` as a module. [#&#8203;2972](https://redirect.github.com/apollographql/apollo-ios/pull/2972) *Thank you to [@&#8203;moopoints](https://redirect.github.com/moopoints) for raising the issue.*
-   **Fully Qualify name of RootEntityType and mergedSources ([#&#8203;2949](https://redirect.github.com/apollographql/apollo-ios/issues/2949)):** Selection set types use fully qualified namespacing to prevent conflicts with other types. [#&#8203;2956](https://redirect.github.com/apollographql/apollo-ios/pull/2956) *Thank you to [@&#8203;martin-muller](https://redirect.github.com/martin-muller) for raising the issue.*
-   **SelectionSet Codegen `__typename` fix ([#&#8203;2955](https://redirect.github.com/apollographql/apollo-ios/issues/2955)):** Custom root types defined in the schema are now correctly applied to selection set fields typename definitions [#&#8203;2983](https://redirect.github.com/apollographql/apollo-ios/pull/2983) *Thank you to [@&#8203;ynnadrules](https://redirect.github.com/ynnadrules) for raising the issue.*

### [`v1.1.2`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v112)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.1.1...1.1.2)

##### Fixed

-   **Crash after calling `cancel()` on `Cancellable` ([#&#8203;2932](https://redirect.github.com/apollographql/apollo-ios/issues/2932)):** Calling `cancel()` on a non-subscription `Cancellable` will now correctly handle the lifetime of the internally `Unmanaged` object. [#&#8203;2943](https://redirect.github.com/apollographql/apollo-ios/pull/2943) - *Thank you to [@&#8203;yonaskolb](https://redirect.github.com/yonaskolb) for raising the issue.*
-   **Deprecation messages are not escaped ([#&#8203;2879](https://redirect.github.com/apollographql/apollo-ios/issues/2879)):** If escaped characters are used in GraphQL deprecation messages they are now properly escaped in the rendered Swift warning or attribution message. [#&#8203;2951](https://redirect.github.com/apollographql/apollo-ios/pull/2951) *Thank you to [@&#8203;djavan-bertrand](https://redirect.github.com/djavan-bertrand) for raising the issue.*

##### Added

-   **Add injecting additionalErrorHandler for upload operations to RequestChainNetworkTransport ([#&#8203;2948](https://redirect.github.com/apollographql/apollo-ios/pull/2948)):** `Upload` operations can now have custom error interceptors like other operations. [#&#8203;2948](https://redirect.github.com/apollographql/apollo-ios/pull/2948) *Thank you to [@&#8203;RobertDresler](https://redirect.github.com/RobertDresler) for the contribution.*

### [`v1.1.1`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v111)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.1.0...1.1.1)

##### Fixed

-   **Version 1.1.0 does not compile when installed via CocoaPods ([#&#8203;2936](https://redirect.github.com/apollographql/apollo-ios/issues/2936)):** Module names not present in CocoaPods builds have been removed from type declarations. [#&#8203;2937](https://redirect.github.com/apollographql/apollo-ios/pull/2937) - *Thank you to [@&#8203;simonliotier](https://redirect.github.com/simonliotier) for raising the issue.*
-   **Crash when using mocks for Double Nested Arrays ([#&#8203;2809](https://redirect.github.com/apollographql/apollo-ios/issues/2809)):** Test mock data is now correctly applied to the selection set. [#&#8203;2939](https://redirect.github.com/apollographql/apollo-ios/pull/2939) - *Thank you to [@&#8203;scottasoutherland](https://redirect.github.com/scottasoutherland) for raising the issue.*
-   **In 1.1.0, passing custom scalars or GraphQLEnum to mocks fails ([#&#8203;2928](https://redirect.github.com/apollographql/apollo-ios/issues/2928)):** Test mock data is now correctly applied to the selection set. [#&#8203;2939](https://redirect.github.com/apollographql/apollo-ios/pull/2939) - *Thank you to [@&#8203;scottasoutherland](https://redirect.github.com/scottasoutherland) for raising the issue.*

### [`v1.1.0`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v110)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.0.7...1.1.0)

Apollo iOS v1.1 primarily focuses on adding generated initializers to the generated operation models.

In most cases, the upgrade from v1.0 to v1.1 should require no changes to your code.

##### **Breaking**

-   **Changed generated fragment accessors with inclusion conditions:** When conditionally spreading a fragment with an `@include/@&#8203;skip` directive that has a different parent type than the selection set it is being spread into, the shape of the generated models has changed.
    -   For example, a fragment accessor defined as `... on DetailNode @&#8203;include(if: $includeDetails)` would have previously been named `asDetailNode`; it will now be generated as `asDetailNodeIfIncludeDetails`.
-   While no breaking changes were made to official public APIs, some *underscore prefixed* APIs that are `public` but intended for internal usage only have been changed.
    -   **SelectionSet fulfilled fragment tracking:** `SelectionSet` models now keep track of which fragments were fulfilled during GraphQL execution in order to enable conversions between type cases. While this does not cause functional changes while using public APIs, this is a fundamental change to the way that the underlying data for a `SelectionSet` is formatted, it is now required that all `SelectionSet` creation must be processed by the `GraphQLExecutor` or a generated initializer that is guaranteed to correctly format the data. **This means that initializing a `SelectionSet` using raw JSON data directly will no longer work.** Please ensure that raw JSON data is only used with the new `RootSelectionSet.init(data: variables)` initializer.

##### Fixed

-   **Null/nil value parsing issues**. In some situations, writing/reading `null` or `nil` values to the cache was causing crashes in 1.1 Beta 1. This is now fixed.

##### Added

-   **Configuration option for generating initializers on SelectionSet models:** You can now get initializers for your generated selection set models by setting the `selectionSetInitializers` option on your code generation configuration. Manually initialized selection sets can be used for a number of purposes, including:
    -   Adding custom data to the normalized cache
    -   Setting up fixture data for SwiftUI previews or loading states
    -   An alternative to Test Mocks for unit testing
-   **Safe initialization of `SelectionSet` models with raw JSON:** In 1.0, initializing `SelectionSet` models with raw JSON was unsafe and required usage of *underscore prefixed* APIs that were intended for internal usage only. Apollo iOS 1.1 introduces a new, safe initializer: `RootSelectionSet.init(data: variables)`.
    -   Previously, if you provided invalid JSON, your selection set's were unsafe and may cause crashes when used. The new initializer runs a lightweight version of GraphQL execution over the provided JSON data. This quickly parses, validates, and transforms the JSON data into the format required by the `SelectionSet` models. If the provided data is invalid, this initializer `throws` an error, ensuring that your model usage is always safe.
-   **Added support for multipart subscriptions over HTTP.**

##### Changed

-   **Generate `__typename` selection for generated models:** In 1.1, the code generator adds the `__typename` field to each root object. In previous versions, this selection was automatically inferred by the `GraphQLExecutor`, however generating it directly should improve performance of GraphQL execution.

### [`v1.0.7`](https://redirect.github.com/apollographql/apollo-ios/blob/HEAD/CHANGELOG.md#v107)

[Compare Source](https://redirect.github.com/apollographql/apollo-ios/compare/1.0.6...1.0.7)

##### Fixed

-   **Couldn't build when using some reserved words in a schema ([#&#8203;2765](https://redirect.github.com/apollographql/apollo-ios/issues/2765)):** `for` has been added to the list of reserved keywords that are escaped with backticks when used in schema types and operations. [#&#8203;2772](https://redirect.github.com/apollographql/apollo-ios/pull/2772) - *Thank you to [@&#8203;torycons](https://redirect.github.com/torycons) for raising the issue.*
-   **Subscript GraphQL variable from dictionary crash when Swift modifier used as key ([#&#8203;2759](https://redirect.github.com/apollographql/apollo-ios/issues/2759)):** Backticks have been removed from subscript keys of input objects. [#&#8203;2773](https://redirect.github.com/apollographql/apollo-ios/pull/2773) - *Thank you to [@&#8203;SzymonMatysik](https://redirect.github.com/SzymonMatysik) for raising the issue.*
-   **Unnamed fields in schema results in broken generated Swift code ([#&#8203;2753](https://redirect.github.com/apollographql/apollo-ios/issues/2753)):** The `_` character can be used as a GraphQL field name. [#&#8203;2769](https://redirect.github.com/apollographql/apollo-ios/pull/2769) - *Thank you to [@&#8203;neakor](https://redirect.github.com/neakor) for raising the issue.*
-   **LocalCacheMutation with an enum field fails ([#&#8203;2775](https://redirect.github.com/apollographql/apollo-ios/issues/2775)):** When writing selection set data back into the cache, custom scalars are now re-encoded back into their `_jsonValue`. [#&#8203;2778](https://redirect.github.com/apollographql/apollo-ios/pull/2778) - *Thank you to [@&#8203;dabby-wombo](https://redirect.github.com/dabby-wombo) for raising the issue.*
-   **DataDict subscript function crashes on iOS 14.4 and under ([#&#8203;2668](https://redirect.github.com/apollographql/apollo-ios/issues/2668)):** `AnyHashable` conversions when accessing `DataDict` properties now perform checks on the base type. [#&#8203;2784](https://redirect.github.com/apollographql/apollo-ios/pull/2784) - *Thank you to [@&#8203;bdunay3](https://redirect.github.com/bdunay3) for raising the issue.*
-   **`@include` directive based on variable with default value drops the included data ([#&#8203;2690](https://redirect.github.com/apollographql/apollo-ios/issues/2690)):** The GraphQL executor will now correctly evaluate `GraphQLNullable` conditional variables. [#&#8203;2794](https://redirect.github.com/apollographql/apollo-ios/pull/2794) - *Thank you to [@&#8203;klanchman](https://redirect.github.com/klanchman) for raising the issue.*
-   **Interfaces implemented by schema root are not generated ([#&#8203;2756](https://redirect.github.com/apollographql/apollo-ios/issues/2756)):** Interfaces references on the root type Query, Mutation or Subscription are now included in the schema module. [#&#8203;2816](https://redirect.github.com/apollographql/apollo-ios/pull/2816) - *Thank you to [@&#8203;litso](https://redirect.github.com/litso) for raising the issue.*

##### Changed

-   **HTTP headers format in schema download configuration JSON ([#&#8203;2661](https://redirect.github.com/apollographql/apollo-ios/issues/2661)):** `HTTPHeaders` in the `ApolloSchemaDownloadConfiguration` section of the codegen configuration JSON file can now be specified using the more intuitive format `{ "Authorization": "<token>"}`. [#&#8203;2811](https://redirect.g

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-02 12:22:25 +00:00
Saul-Mirone
53f7480cb8 refactor(editor): merge docCreated and docAdded slot (#9489) 2025-01-02 11:47:14 +00:00
Saul-Mirone
bae0cc349d chore(editor): remove @types/dompurify dependency (#9490) 2025-01-02 11:33:19 +00:00
Saul-Mirone
edb5e1d87a refactor(editor): job should not rely on doc collection directly (#9488) 2025-01-02 10:50:15 +00:00
EYHN
f2906bc6d0 refactor(core): add all docs properties api (#9484) 2025-01-02 10:35:46 +00:00
forehalo
c4e04042b4 fix(server): fail to load custom config (#9485)
closed #9237 #9417
2025-01-02 09:45:12 +00:00
Lakr
094cb1d71c feat(ios): implement chat function (#9482)
Co-authored-by: DarkSky <darksky2048@gmail.com>
2025-01-02 17:35:07 +08:00
Flrande
72e343c379 fix(editor): replace checkVisibility (#9481) 2025-01-02 08:25:48 +00:00
renovate
8c05c6ef5b chore: bump up all non-major dependencies (#9434)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@smarttools/eslint-plugin-rxjs](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs) | [`1.0.10` -> `1.0.12`](https://renovatebot.com/diffs/npm/@smarttools%2feslint-plugin-rxjs/1.0.10/1.0.12) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@smarttools%2feslint-plugin-rxjs/1.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@smarttools%2feslint-plugin-rxjs/1.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@smarttools%2feslint-plugin-rxjs/1.0.10/1.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@smarttools%2feslint-plugin-rxjs/1.0.10/1.0.12?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| @&#8203;types/dompurify | [`3.0.5` -> `3.2.0`](https://renovatebot.com/diffs/npm/@types%2fdompurify/3.0.5/3.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdompurify/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fdompurify/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fdompurify/3.0.5/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdompurify/3.0.5/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@types/node](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/node) ([source](https://redirect.github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)) | [`20.17.10` -> `20.17.11`](https://renovatebot.com/diffs/npm/@types%2fnode/20.17.10/20.17.11) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fnode/20.17.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fnode/20.17.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fnode/20.17.10/20.17.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fnode/20.17.10/20.17.11?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`16.0.1` -> `16.3.0`](https://renovatebot.com/diffs/npm/happy-dom/16.0.1/16.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/16.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/16.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/16.0.1/16.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/16.0.1/16.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [react-i18next](https://redirect.github.com/i18next/react-i18next) | [`15.3.0` -> `15.4.0`](https://renovatebot.com/diffs/npm/react-i18next/15.3.0/15.4.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/15.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-i18next/15.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-i18next/15.3.0/15.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/15.3.0/15.4.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [shiki](https://redirect.github.com/shikijs/shiki) ([source](https://redirect.github.com/shikijs/shiki/tree/HEAD/packages/shiki)) | [`1.24.4` -> `1.25.1`](https://renovatebot.com/diffs/npm/shiki/1.24.4/1.25.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/shiki/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/shiki/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/shiki/1.24.4/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/shiki/1.24.4/1.25.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [typescript-eslint](https://typescript-eslint.io/packages/typescript-eslint) ([source](https://redirect.github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)) | [`8.18.2` -> `8.19.0`](https://renovatebot.com/diffs/npm/typescript-eslint/8.18.2/8.19.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typescript-eslint/8.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typescript-eslint/8.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typescript-eslint/8.18.2/8.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typescript-eslint/8.18.2/8.19.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>DaveMBush/eslint-plugin-rxjs (@&#8203;smarttools/eslint-plugin-rxjs)</summary>

### [`v1.0.12`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.12): 1.0.12 (2025-01-01)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.11...v1.0.12)

Update dependencies
remove decamalize and replace with regex
remove unused file

### [`v1.0.11`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.11): 1.0.11 (2024-12-30)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.10...v1.0.11)

rollback to what was in 1.0.9 while trying to keep the intended fix for 1.0.10

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

### [`v16.3.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.3.0)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.9...v16.3.0)

##### 🎨 Features

-   Adds support for child combinator to ":has()" pseudo selector (e.g. "span:has(> video)") - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1642](https://redirect.github.com/capricorn86/happy-dom/issues/1642)

### [`v16.2.9`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.8...3082b7e010c4362e762d2d387d0316dd96b017cd)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.8...v16.2.9)

### [`v16.2.8`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.8)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.7...v16.2.8)

##### 👷‍♂️ Patch fixes

-   Fixes issue where the wrong event target was used when dispatching events on HTMLFormElement or HTMLSelectElement - By **[@&#8203;betterqualityassuranceuser](https://redirect.github.com/betterqualityassuranceuser)** in task [#&#8203;1628](https://redirect.github.com/capricorn86/happy-dom/issues/1628)

### [`v16.2.7`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.6...78eb24034576e4ecc39a3633967799ea75bead50)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.6...v16.2.7)

### [`v16.2.6`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.5...2c8a59619a35b55c398db27927027d9a1458a6a1)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.5...v16.2.6)

### [`v16.2.5`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.4...675e306d2440cabdb7e2d75ef5a78ea47e506494)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.4...v16.2.5)

### [`v16.2.4`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.4)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.3...v16.2.4)

##### 👷‍♂️ Patch fixes

-   Fixes bug where the incorrect location is set after a redirect in `BrowserFrame.goto()` and `DetachedBrowserFrame.goto()` - By **[@&#8203;capricorn86](https://redirect.github.com/capricorn86)** in task [#&#8203;1627](https://redirect.github.com/capricorn86/happy-dom/issues/1627)

### [`v16.2.3`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.2...f41ad67816008a068c5cefcbac31b2fda7d2f4e2)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.2...v16.2.3)

### [`v16.2.2`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.2.2)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.1...v16.2.2)

##### 👷‍♂️ Patch fixes

-   Improves error when a Symbol object is being sent to `querySelector()` or `querySelectorAll()` as selector - By **[@&#8203;chocolateboy](https://redirect.github.com/chocolateboy)** in task [#&#8203;1640](https://redirect.github.com/capricorn86/happy-dom/issues/1640)

### [`v16.2.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.0...f7b6ac6bd6e3cfc843c9787ce935f348f0c40363)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.2.0...v16.2.1)

### [`v16.2.0`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.1.0...5629a74693e19b6a7661a4242b139bf8524c6247)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.1.0...v16.2.0)

### [`v16.1.0`](https://redirect.github.com/capricorn86/happy-dom/releases/tag/v16.1.0)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.0.1...v16.1.0)

##### 🎨 Features

-   Add support for using whitespace-separated list to `getElementsByClassName()` - By **[@&#8203;kylehalleman](https://redirect.github.com/kylehalleman)** in task [#&#8203;1551](https://redirect.github.com/capricorn86/happy-dom/issues/1551)

</details>

<details>
<summary>i18next/react-i18next (react-i18next)</summary>

### [`v15.4.0`](https://redirect.github.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#1540)

[Compare Source](https://redirect.github.com/i18next/react-i18next/compare/v15.3.0...v15.4.0)

feat: add meta with codes on warnings to allow conditional logging [1826](https://redirect.github.com/i18next/react-i18next/pull/1826)

</details>

<details>
<summary>shikijs/shiki (shiki)</summary>

### [`v1.25.1`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.25.1)

#####    🐞 Bug Fixes

-   Bundle externals  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(4e173)</samp>](https://redirect.github.com/shikijs/shiki/commit/4e173fe1)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.25.0...v1.25.1)

### [`v1.25.0`](https://redirect.github.com/shikijs/shiki/releases/tag/v1.25.0)

[Compare Source](https://redirect.github.com/shikijs/shiki/compare/v1.24.4...v1.25.0)

#####    🚀 Features

-   Introduce `@shikijs/themes` and `@shikijs/langs` packages  -  by [@&#8203;antfu](https://redirect.github.com/antfu) in [https://github.com/shikijs/shiki/issues/879](https://redirect.github.com/shikijs/shiki/issues/879) [<samp>(32ce2)</samp>](https://redirect.github.com/shikijs/shiki/commit/32ce29fe)
-   Update grammars and `oniguruma-to-es`  -  by [@&#8203;antfu](https://redirect.github.com/antfu) [<samp>(3cdcb)</samp>](https://redirect.github.com/shikijs/shiki/commit/3cdcbac4)
-   **engine-js**: Update deps, support new languages  -  by [@&#8203;slevithan](https://redirect.github.com/slevithan) in [https://github.com/shikijs/shiki/issues/875](https://redirect.github.com/shikijs/shiki/issues/875) [<samp>(c3524)</samp>](https://redirect.github.com/shikijs/shiki/commit/c3524b2a)

#####     [View changes on GitHub](https://redirect.github.com/shikijs/shiki/compare/v1.24.4...v1.25.0)

</details>

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

### [`v8.19.0`](https://redirect.github.com/typescript-eslint/typescript-eslint/blob/HEAD/packages/typescript-eslint/CHANGELOG.md#8190-2024-12-30)

[Compare Source](https://redirect.github.com/typescript-eslint/typescript-eslint/compare/v8.18.2...v8.19.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>

---

### 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:eyJjcmVhdGVkSW5WZXIiOiIzOS44NS4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2025-01-02 07:42:06 +00:00
Saul-Mirone
ad422d2f05 refactor(editor): move crud to doc (#9479) 2025-01-02 07:27:08 +00:00
Saul-Mirone
be387a6f33 refactor(editor): set readonly (#9475) 2025-01-02 04:02:15 +00:00
forehalo
d0983696c0 fix(native): round trip timestamp to millis (#9468) 2025-01-02 02:47:15 +00:00
forehalo
9da2844225 feat(infra): add not-condition to orm (#9466) 2025-01-02 02:32:16 +00:00
Saul-Mirone
4be031b311 chore(editor): disable legacy validation (#9473) 2025-01-01 13:45:37 +00:00
Saul-Mirone
4b21dac4f8 chore: remove unused methods on slot (#9472) 2025-01-01 12:21:41 +00:00
Oleg
ade764b188 fix(editor): too many digits after decimal point in table calculations (#9471) 2025-01-01 18:19:59 +08:00
doodlewind
8227d68953 refactor(core): remove abort event error on init (#9465)
Following error always throw on Affine init, which is actually an `Event` from abort controller that can be handled in upstream.

![image](https://github.com/user-attachments/assets/50c25e5e-4a9c-45e0-b756-6b0f47390733)
2025-01-01 01:22:29 +00:00
fundon
d97c4b5632 fix(editor): wrong style of mindmap in dark mode (#9462)
<div class='graphite__hidden'>
          <div>🎥 Video uploaded on Graphite:</div>
            <a href="https://app.graphite.dev/media/video/8ypiIKZXudF5a0tIgIzf/87aa060a-12c3-46dc-85fd-28980ba5b2bd.mov">
              <img src="https://app.graphite.dev/api/v1/graphite/video/thumbnail/8ypiIKZXudF5a0tIgIzf/87aa060a-12c3-46dc-85fd-28980ba5b2bd.mov">
            </a>
          </div>
<video src="https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/8ypiIKZXudF5a0tIgIzf/87aa060a-12c3-46dc-85fd-28980ba5b2bd.mov">Screen Recording 2024-12-31 at 18.05.36.mov</video>
2024-12-31 11:54:13 +00:00
Saul-Mirone
36c1b103df test(editor): remove jsx snapshot (#9463) 2024-12-31 10:27:12 +00:00
Saul-Mirone
6c33eaace0 refactor(editor): extract frame title widget (#9458) 2024-12-31 10:12:03 +00:00
DarkSky
f64d62d869 fix(server): distinguish local mutex correctly (#9444) 2024-12-31 17:55:08 +08:00
pengx17
1c6c2194c4 fix(core): should use doc index for at menu config (#9430) 2024-12-31 09:31:07 +00:00
pengx17
e3d681306c fix(core): split view reordering crash (#9461)
a workaround fix AF-1940
2024-12-31 09:14:04 +00:00
liuyi
43adb85e7d fix(core): wrong fetch injected to snapshot downloader (#9460) 2024-12-31 08:51:19 +00:00
Peng Xiao
e8aabed3fa docs(server): update developing server md (#9457) 2024-12-31 16:35:35 +08:00
L-Sun
b51de2ac4c fix(editor): add index checking to selected elements array (#9453)
Close https://toeverything.sentry.io/issues/6187666983/?alert_rule_id=15031714&alert_type=issue&notification_uuid=fe3f4b9d-1e86-420e-a715-c3ca0fa932e4&project=4506307500179456&referrer=slack
2024-12-31 08:05:13 +00:00
Saul-Mirone
597b631918 refactor(editor): extract color picker component (#9456) 2024-12-31 07:23:37 +00:00
liuyi
353eaf7fbe chore: no mangle classnames for better debugging (#9459) 2024-12-31 07:22:38 +00:00
Fangdun Tsai
83915c2e90 fix(editor): white-space should be set to normal in tooltip (#9454) 2024-12-31 15:03:58 +08:00
liuyi
8732801f06 fix(core): wrong auth i18n keys (#9455) 2024-12-31 15:03:37 +08:00
Saul-Mirone
9dc1b5e25b refactor(editor): remove duplicated method (#9451) 2024-12-31 06:32:12 +00:00
Saul-Mirone
1e34ec8487 refactor(editor): extract data view block (#9452) 2024-12-31 06:15:35 +00:00
Saul-Mirone
0f03c3fc5e fix(editor): missing resource files in exported snapshot zip (#9450)
Closes: [BS-2280](https://linear.app/affine-design/issue/BS-2280/导出-zip-snapshot-丢失-blob)
2024-12-31 05:13:44 +00:00
forehalo
7aba836dbe fix(server): cant specify subscription to onetime payment (#9448) 2024-12-31 04:51:06 +00:00
Saul-Mirone
09427e846e refactor(editor): extract markdown adapter (#9443) 2024-12-31 04:13:02 +00:00
doodlewind
adf14d11d5 fix(editor): chat panel render warning (#9446)
Fixed the updated warning of both `chat-panel` and `chat-panel-messages`

![image](https://github.com/user-attachments/assets/73f30e45-119a-4899-bf05-84f8f64b944b)
2024-12-31 03:59:02 +00:00
CatsJuice
7c41775c7f feat(infra): orm f.enum() support (#9323) 2024-12-31 03:44:58 +00:00
forehalo
9c119e6505 chore: server dev scripts (#9445) 2024-12-31 03:31:05 +00:00
pengx17
887732179e feat(electron): expose electron apis to web worker (#9441)
fix AF-2044
2024-12-31 03:17:03 +00:00
Peng Xiao
6883cc2ded fix(electron): page history api fetch issue (#9440) 2024-12-31 10:19:25 +08:00
doodlewind
2b47625deb refactor(editor): render presentation toolbar on demand (#9442) 2024-12-31 02:01:35 +00:00
pengx17
79e006467c fix(core): split view solo view crash (#9432) 2024-12-30 16:54:45 +00:00
Saul-Mirone
397a48380e refactor(editor): simplify tsconfig (#9439) 2024-12-30 16:15:34 +00:00
Saul-Mirone
8d269c838d fix(editor): touch event browser copability (#9437)
Fix: https://toeverything.sentry.io/issues/6180659644/events/82bf2e7bb8fc4ad69678261522b7fdf3/
2024-12-30 14:59:10 +00:00
Saul-Mirone
ade317d26b fix(editor): caret can be null in firefox (#9438)
Fix: https://toeverything.sentry.io/issues/6185588184/events/b205b6caf0224b51882c1d10bb3dd9bc/
2024-12-30 14:44:11 +00:00
Saul-Mirone
a9f890017e fix(editor): missing dependencies (#9436) 2024-12-30 14:10:37 +00:00
Saul-Mirone
c28f918527 refactor(editor): extract database block (#9435)
Part of: [BS-2269](https://linear.app/affine-design/issue/BS-2269/%E8%BF%81%E7%A7%BB-database-block-%E5%88%B0-affine-%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E5%B9%B6%E5%BC%80%E5%90%AF-nouncheckedindexedaccess)
2024-12-30 12:59:57 +00:00
Saul-Mirone
e526106f45 refactor(editor): extract surface ref block (#9433) 2024-12-30 12:09:26 +00:00
doodlewind
d4053a345e perf(editor): reduce per frame viewport dom ops (#9431)
Currently when panning / zooming on whiteboard, both position and transform of each block component are updated per frame. The positioning part lead to heavy layout costs, which can be reduced.

Before (~35fps):

![image](https://github.com/user-attachments/assets/3f6d8a76-26a5-4ed6-a64c-b519a453cbc0)

After (~50fps):

![image](https://github.com/user-attachments/assets/43bc4b0a-db01-4526-8400-2ec95c3bdd0b)

Tested environment: TibetTravel templet, Windows 11, i5-1130G7 1.1GHz
2024-12-30 10:50:33 +00:00
LongYinan
8b3d99929f ci: fix Windows Rust cache path 2024-12-30 18:49:27 +08:00
renovate
a85707a2e7 chore: bump up oxlint version to v0.15.4 (#9161)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [oxlint](https://oxc.rs) ([source](https://redirect.github.com/oxc-project/oxc/tree/HEAD/npm/oxlint)) | [`0.15.0` -> `0.15.4`](https://renovatebot.com/diffs/npm/oxlint/0.15.0/0.15.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/oxlint/0.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/oxlint/0.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/oxlint/0.15.0/0.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/oxlint/0.15.0/0.15.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>oxc-project/oxc (oxlint)</summary>

### [`v0.15.4`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.4): oxlint v0.15.4

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.3...oxlint_v0.15.4)

#### \[0.15.4] - 2024-12-30

-   [`ed75e42`](https://redirect.github.com/oxc-project/oxc/commit/ed75e42) semantic: \[**BREAKING**] Make SymbolTable fields `pub(crate)` instead of `pub` ([#&#8203;7999](https://redirect.github.com/oxc-project/oxc/issues/7999)) (Boshen)

##### Features

-   [`47cea9a`](https://redirect.github.com/oxc-project/oxc/commit/47cea9a) linter: Implement `eslint/no-extra-label` ([#&#8203;8181](https://redirect.github.com/oxc-project/oxc/issues/8181)) (Anson Heung)
-   [`ef76e28`](https://redirect.github.com/oxc-project/oxc/commit/ef76e28) linter: Implement `eslint/no-multi-assign` ([#&#8203;8158](https://redirect.github.com/oxc-project/oxc/issues/8158)) (Anson Heung)
-   [`384858b`](https://redirect.github.com/oxc-project/oxc/commit/384858b) linter: Implement `jsx-a11y/no-noninteractive-tabindex`  ([#&#8203;8167](https://redirect.github.com/oxc-project/oxc/issues/8167)) (Tyler Earls)
-   [`afc21a6`](https://redirect.github.com/oxc-project/oxc/commit/afc21a6) linter: Implement `eslint/vars-on-top` ([#&#8203;8157](https://redirect.github.com/oxc-project/oxc/issues/8157)) (Yuichiro Yamashita)
-   [`65796c4`](https://redirect.github.com/oxc-project/oxc/commit/65796c4) linter: Implement `eslint/prefer-rest-params` ([#&#8203;8155](https://redirect.github.com/oxc-project/oxc/issues/8155)) (Yuichiro Yamashita)
-   [`5234d96`](https://redirect.github.com/oxc-project/oxc/commit/5234d96) linter: Implement `eslint/no-nested-ternary` ([#&#8203;8150](https://redirect.github.com/oxc-project/oxc/issues/8150)) (Yuichiro Yamashita)
-   [`1c5db72`](https://redirect.github.com/oxc-project/oxc/commit/1c5db72) linter: Implement eslint/no-labels ([#&#8203;8131](https://redirect.github.com/oxc-project/oxc/issues/8131)) (Anson Heung)
-   [`0b04288`](https://redirect.github.com/oxc-project/oxc/commit/0b04288) linter: Move `import/named` to nursery ([#&#8203;8068](https://redirect.github.com/oxc-project/oxc/issues/8068)) (Boshen)

##### Bug Fixes

-   [`0794bee`](https://redirect.github.com/oxc-project/oxc/commit/0794bee) editor/vscode: Set minimum supported ver. to `^1.93.0` ([#&#8203;8182](https://redirect.github.com/oxc-project/oxc/issues/8182)) (Pavel Smirnov)
-   [`f3050d4`](https://redirect.github.com/oxc-project/oxc/commit/f3050d4) linter: Exclude svelte files from `no_unused_vars` rule ([#&#8203;8170](https://redirect.github.com/oxc-project/oxc/issues/8170)) (Yuichiro Yamashita)
-   [`faf7464`](https://redirect.github.com/oxc-project/oxc/commit/faf7464) linter: Disable rule `react/rules-of-hook` by file extension ([#&#8203;8168](https://redirect.github.com/oxc-project/oxc/issues/8168)) (Alexander S.)
-   [`1171e00`](https://redirect.github.com/oxc-project/oxc/commit/1171e00) linter: Disable `react/rules-of-hooks` for vue and svelte files ([#&#8203;8165](https://redirect.github.com/oxc-project/oxc/issues/8165)) (Alexander S.)
-   [`1b9a5ba`](https://redirect.github.com/oxc-project/oxc/commit/1b9a5ba) linter: False positiver in private member expr in oxc/const-comparison ([#&#8203;8164](https://redirect.github.com/oxc-project/oxc/issues/8164)) (camc314)
-   [`6bd9ddb`](https://redirect.github.com/oxc-project/oxc/commit/6bd9ddb) linter: False positive in `typescript/ban-tslint-comment` ([#&#8203;8094](https://redirect.github.com/oxc-project/oxc/issues/8094)) (dalaoshu)
-   [`10a1fd5`](https://redirect.github.com/oxc-project/oxc/commit/10a1fd5) linter: Rule: `no-restricted-imports` support option `patterns` with `group` key ([#&#8203;8050](https://redirect.github.com/oxc-project/oxc/issues/8050)) (Alexander S.)
-   [`b3f38ae`](https://redirect.github.com/oxc-project/oxc/commit/b3f38ae) linter: Rule `no-restricted-imports`: support option `allowImportNames` ([#&#8203;8002](https://redirect.github.com/oxc-project/oxc/issues/8002)) (Alexander S.)
-   [`340cc90`](https://redirect.github.com/oxc-project/oxc/commit/340cc90) linter: Rule `no-restricted-imports`: fix option "importNames" ([#&#8203;7943](https://redirect.github.com/oxc-project/oxc/issues/7943)) (Alexander S.)
-   [`ec2128e`](https://redirect.github.com/oxc-project/oxc/commit/ec2128e) linter: Fix line calculation for `eslint/max-lines` in diagnostics ([#&#8203;7962](https://redirect.github.com/oxc-project/oxc/issues/7962)) (Dmitry Zakharov)
-   [`79af100`](https://redirect.github.com/oxc-project/oxc/commit/79af100) semantic: Reference flags not correctly resolved when after an export stmt ([#&#8203;8134](https://redirect.github.com/oxc-project/oxc/issues/8134)) (camc314)

##### Performance

-   [`d8d2ec6`](https://redirect.github.com/oxc-project/oxc/commit/d8d2ec6) linter: Run rules which require typescript syntax only when source type is actually typescript ([#&#8203;8166](https://redirect.github.com/oxc-project/oxc/issues/8166)) (Alexander S.)
-   [`2736657`](https://redirect.github.com/oxc-project/oxc/commit/2736657) semantic: Allocate `UnresolvedReferences` in allocator ([#&#8203;8046](https://redirect.github.com/oxc-project/oxc/issues/8046)) (Boshen)

##### Refactor

-   [`de8246b`](https://redirect.github.com/oxc-project/oxc/commit/de8246b) language_server: Move structs into own file ([#&#8203;8026](https://redirect.github.com/oxc-project/oxc/issues/8026)) (Alexander S.)
-   [`774babb`](https://redirect.github.com/oxc-project/oxc/commit/774babb) linter: Read `exported_bindings_from_star_export` lazily ([#&#8203;8062](https://redirect.github.com/oxc-project/oxc/issues/8062)) (Boshen)
-   [`547c102`](https://redirect.github.com/oxc-project/oxc/commit/547c102) linter: Use `RwLock<FxHashMap>` instead of `FxDashMap` for module record data ([#&#8203;8061](https://redirect.github.com/oxc-project/oxc/issues/8061)) (Boshen)
-   [`952d7e4`](https://redirect.github.com/oxc-project/oxc/commit/952d7e4) linter: Rename `flat.rs` to `config.rs` ([#&#8203;8033](https://redirect.github.com/oxc-project/oxc/issues/8033)) (camc314)
-   [`50848ed`](https://redirect.github.com/oxc-project/oxc/commit/50848ed) linter: Simplify `ConfigStore` to prep for nested configs ([#&#8203;8032](https://redirect.github.com/oxc-project/oxc/issues/8032)) (camc314)
-   [`b2a4a78`](https://redirect.github.com/oxc-project/oxc/commit/b2a4a78) linter: Remove unused `with_rules` and `set_rule` methods ([#&#8203;8029](https://redirect.github.com/oxc-project/oxc/issues/8029)) (camc314)
-   [`6da0b21`](https://redirect.github.com/oxc-project/oxc/commit/6da0b21) oxlint: Remove unused `git.rs` ([#&#8203;7990](https://redirect.github.com/oxc-project/oxc/issues/7990)) (Boshen)
-   [`58e7777`](https://redirect.github.com/oxc-project/oxc/commit/58e7777) oxlint: Remove extra if check in `Walkdir` ([#&#8203;7989](https://redirect.github.com/oxc-project/oxc/issues/7989)) (Boshen)
-   [`02f968d`](https://redirect.github.com/oxc-project/oxc/commit/02f968d) semantic: Change `Bindings` to a plain `FxHashMap` ([#&#8203;8019](https://redirect.github.com/oxc-project/oxc/issues/8019)) (Boshen)

### [`v0.15.3`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.3): oxlint v0.15.3

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.2...oxlint_v0.15.3)

#### \[0.15.3] - 2024-12-17

##### Features

-   [`25ddb35`](https://redirect.github.com/oxc-project/oxc/commit/25ddb35) linter: Add the import/no_named_default rule ([#&#8203;7902](https://redirect.github.com/oxc-project/oxc/issues/7902)) (Guillaume Piedigrossi)
-   [`ee26b44`](https://redirect.github.com/oxc-project/oxc/commit/ee26b44) linter: Enhance `get_element_type` to resolve more element types ([#&#8203;7885](https://redirect.github.com/oxc-project/oxc/issues/7885)) (dalaoshu)

##### Bug Fixes

-   [`6f41d92`](https://redirect.github.com/oxc-project/oxc/commit/6f41d92) linter: False positive in `unicorn/no-useless-spread` ([#&#8203;7940](https://redirect.github.com/oxc-project/oxc/issues/7940)) (dalaoshu)
-   [`0867b40`](https://redirect.github.com/oxc-project/oxc/commit/0867b40) linter: Fix configuration parser for `no-restricted-imports` ([#&#8203;7921](https://redirect.github.com/oxc-project/oxc/issues/7921)) (Alexander S.)
-   [`9c9b73d`](https://redirect.github.com/oxc-project/oxc/commit/9c9b73d) linter: Fix incorrect fixer for `prefer-regexp-test` ([#&#8203;7898](https://redirect.github.com/oxc-project/oxc/issues/7898)) (Cameron)
-   [`32935e6`](https://redirect.github.com/oxc-project/oxc/commit/32935e6) linter: False positive in `jsx-a11y/label-has-associated-control` ([#&#8203;7881](https://redirect.github.com/oxc-project/oxc/issues/7881)) (dalaoshu)
-   [`14c51ff`](https://redirect.github.com/oxc-project/oxc/commit/14c51ff) semantic: Remove inherting `ScopeFlags::Modifier` from parent scope ([#&#8203;7932](https://redirect.github.com/oxc-project/oxc/issues/7932)) (Dunqing)

##### Refactor

-   [`3858221`](https://redirect.github.com/oxc-project/oxc/commit/3858221) global: Sort imports ([#&#8203;7883](https://redirect.github.com/oxc-project/oxc/issues/7883)) (overlookmotel)
-   [`b99ee37`](https://redirect.github.com/oxc-project/oxc/commit/b99ee37) linter: Move rule "no-restricted-imports" to nursery ([#&#8203;7897](https://redirect.github.com/oxc-project/oxc/issues/7897)) (Alexander S.)
-   [`ff2a68f`](https://redirect.github.com/oxc-project/oxc/commit/ff2a68f) linter/yoda: Simplify code ([#&#8203;7941](https://redirect.github.com/oxc-project/oxc/issues/7941)) (overlookmotel)

##### Styling

-   [`7fb9d47`](https://redirect.github.com/oxc-project/oxc/commit/7fb9d47) rust: `cargo +nightly fmt` ([#&#8203;7877](https://redirect.github.com/oxc-project/oxc/issues/7877)) (Boshen)

### [`v0.15.2`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.2): oxlint v0.15.2

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.1...oxlint_v0.15.2)

#### \[0.15.2] - 2024-12-14

Fix the previous broken release caused by [https://github.com/softprops/action-gh-release/issues/555](https://redirect.github.com/softprops/action-gh-release/issues/555)

### [`v0.15.1`](https://redirect.github.com/oxc-project/oxc/releases/tag/oxlint_v0.15.1): oxlint v0.15.1

[Compare Source](https://redirect.github.com/oxc-project/oxc/compare/oxlint_v0.15.0...oxlint_v0.15.1)

#### \[0.15.1] - 2024-12-13

##### Features

-   [`38b1c2e`](https://redirect.github.com/oxc-project/oxc/commit/38b1c2e) editor: Create a command to apply all auto-fixes for the current active text editor ([#&#8203;7672](https://redirect.github.com/oxc-project/oxc/issues/7672)) (Nicholas Rayburn)

##### Bug Fixes

-   [`2b187e5`](https://redirect.github.com/oxc-project/oxc/commit/2b187e5) linter: Fix configuration casing for `typescript/no_this_alias` ([#&#8203;7836](https://redirect.github.com/oxc-project/oxc/issues/7836)) (Boshen)
-   [`06e6d38`](https://redirect.github.com/oxc-project/oxc/commit/06e6d38) linter: Fix unicorn/prefer-query-selector to use the correct replacement for getElementsByClassName ([#&#8203;7796](https://redirect.github.com/oxc-project/oxc/issues/7796)) (Nicholas Rayburn)
-   [`7a83230`](https://redirect.github.com/oxc-project/oxc/commit/7a83230) semantic: Missing reference when `export default` references a type alias binding ([#&#8203;7813](https://redirect.github.com/oxc-project/oxc/issues/7813)) (Dunqing)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS41OC4xIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2024-12-30 10:28:04 +00:00
Brooooooklyn
8463e4d683 ci: speedup Windows CI (#9426) 2024-12-30 10:10:59 +00:00
fundon
569e63377d fix(core): should sync name after renaming in pdf embed view (#9398)
https://github.com/user-attachments/assets/f6a3d7b8-9ae3-4d8f-833f-d7aca1e0fffa
2024-12-30 09:56:02 +00:00
fundon
580e3eb13c chore(editor): use colors from default theme instead (#9425) 2024-12-30 09:41:00 +00:00
darkskygit
47ba0a8a32 fix(server): same identify across pods (#9428) 2024-12-30 09:25:31 +00:00
Yifeng Wang
08ebfb6e70 fix(editor): undefined selected elements (#9429) 2024-12-30 17:25:07 +08:00
Saul-Mirone
b66a64bc9a refactor(editor): use spec builder (#9424) 2024-12-30 08:42:58 +00:00
Flrande
4fee0e2eb3 fix(editor): should delete collapsed siblings when delete heading (#9376) 2024-12-30 08:12:04 +00:00
doodlewind
406460a3af chore(docs): update server start script (#9423)
Currently, directly running `yarn dev` in `packages/backend/server` (following `developing-server.md`) instead of `yarn affine server dev` would raise following error:

``` sh
server git:(canary) ✗ yarn dev
[nodemon] 3.1.9
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: ts,json
[nodemon] starting `node ./src/index.ts`
node:internal/modules/esm/get_format:160
  throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath);
        ^

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts" for /Users/ewind/code/AFFiNE/packages/backend/server/src/index.ts
    at Object.getFileProtocolModuleFormat [as file:] (node:internal/modules/esm/get_format:160:9)
    at defaultGetFormat (node:internal/modules/esm/get_format:203:36)
    at defaultLoad (node:internal/modules/esm/load:141:22)
    at async ModuleLoader.load (node:internal/modules/esm/loader:409:7)
    at async ModuleLoader.moduleProvider (node:internal/modules/esm/loader:291:45)
    at async link (node:internal/modules/esm/module_job:76:21) {
  code: 'ERR_UNKNOWN_FILE_EXTENSION'
}

Node.js v20.10.0
[nodemon] app crashed - waiting for file changes before starting...
```
2024-12-30 07:28:23 +00:00
renovate
096a925db1 chore: bump up all non-major dependencies (#9405)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@smarttools/eslint-plugin-rxjs](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs) | [`1.0.9` -> `1.0.10`](https://renovatebot.com/diffs/npm/@smarttools%2feslint-plugin-rxjs/1.0.9/1.0.10) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@smarttools%2feslint-plugin-rxjs/1.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@smarttools%2feslint-plugin-rxjs/1.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@smarttools%2feslint-plugin-rxjs/1.0.9/1.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@smarttools%2feslint-plugin-rxjs/1.0.9/1.0.10?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.10.3` -> `1.10.4`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.3/1.10.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.3/1.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.3/1.10.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| @&#8203;types/dompurify | [`3.0.5` -> `3.2.0`](https://renovatebot.com/diffs/npm/@types%2fdompurify/3.0.5/3.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdompurify/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fdompurify/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fdompurify/3.0.5/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdompurify/3.0.5/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [Lakr233/MSDisplayLink](https://redirect.github.com/Lakr233/MSDisplayLink) | `from: "1.1.0"` -> `from: "1.1.1"` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.0/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.0/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | patch |
| [Lakr233/SpringInterpolation](https://redirect.github.com/Lakr233/SpringInterpolation) | `from: "1.1.0"` -> `from: "1.3.0"` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.1.0/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.1.0/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | minor |
| [katex](https://katex.org) ([source](https://redirect.github.com/KaTeX/KaTeX)) | [`0.16.18` -> `0.16.19`](https://renovatebot.com/diffs/npm/katex/0.16.18/0.16.19) | [![age](https://developer.mend.io/api/mc/badges/age/npm/katex/0.16.19?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/katex/0.16.19?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/katex/0.16.18/0.16.19?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/katex/0.16.18/0.16.19?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| [lint-staged](https://redirect.github.com/lint-staged/lint-staged) | [`15.2.11` -> `15.3.0`](https://renovatebot.com/diffs/npm/lint-staged/15.2.11/15.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/lint-staged/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/lint-staged/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/lint-staged/15.2.11/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/lint-staged/15.2.11/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [react-day-picker](https://daypicker.dev) ([source](https://redirect.github.com/gpbl/react-day-picker)) | [`9.4.4` -> `9.5.0`](https://renovatebot.com/diffs/npm/react-day-picker/9.4.4/9.5.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-day-picker/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-day-picker/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-day-picker/9.4.4/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-day-picker/9.4.4/9.5.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [react-i18next](https://redirect.github.com/i18next/react-i18next) | [`15.2.0` -> `15.3.0`](https://renovatebot.com/diffs/npm/react-i18next/15.2.0/15.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/react-i18next/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/react-i18next/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/react-i18next/15.2.0/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/react-i18next/15.2.0/15.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [swr](https://swr.vercel.app) ([source](https://redirect.github.com/vercel/swr)) | [`2.2.5` -> `2.3.0`](https://renovatebot.com/diffs/npm/swr/2.2.5/2.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/swr/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/swr/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/swr/2.2.5/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/swr/2.2.5/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.5` -> `6.0.6`](https://renovatebot.com/diffs/npm/vite/6.0.5/6.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.5/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.5/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | resolutions | patch |
| [yarn](https://redirect.github.com/yarnpkg/berry) ([source](https://redirect.github.com/yarnpkg/berry/tree/HEAD/packages/yarnpkg-cli)) | [`4.5.3` -> `4.6.0`](https://renovatebot.com/diffs/npm/yarn/4.5.3/4.6.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@yarnpkg%2fcli/4.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@yarnpkg%2fcli/4.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@yarnpkg%2fcli/4.5.3/4.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@yarnpkg%2fcli/4.5.3/4.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | packageManager | minor |
| [yjs](https://docs.yjs.dev) ([source](https://redirect.github.com/yjs/yjs)) | [`13.6.18` -> `13.6.21`](https://renovatebot.com/diffs/npm/yjs/13.6.18/13.6.21) | [![age](https://developer.mend.io/api/mc/badges/age/npm/yjs/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/yjs/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/yjs/13.6.18/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/yjs/13.6.18/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |

---

### Release Notes

<details>
<summary>DaveMBush/eslint-plugin-rxjs (@&#8203;smarttools/eslint-plugin-rxjs)</summary>

### [`v1.0.10`](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/releases/tag/v1.0.10): 1.0.10 (2024-12-28)

[Compare Source](https://redirect.github.com/DaveMBush/eslint-plugin-rxjs/compare/v1.0.9...v1.0.10)

supplies type information by placing index.d.ts file next to index.cjs file

</details>

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

### [`v1.10.4`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1104---2024-12-30)

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

##### Bug Fixes

-   **(deps)** Update cargo (patch) ([#&#8203;9733](https://redirect.github.com/swc-project/swc/issues/9733)) ([fb2f6e4](fb2f6e44aa))

-   Remove `Caused by: 'failed to parse'` from TS blank space ([#&#8203;9820](https://redirect.github.com/swc-project/swc/issues/9820)) ([aaeb0ab](aaeb0ab3b3))

</details>

<details>
<summary>Lakr233/MSDisplayLink (Lakr233/MSDisplayLink)</summary>

### [`v1.1.1`](https://redirect.github.com/Lakr233/MSDisplayLink/compare/1.1.0...1.1.1)

[Compare Source](https://redirect.github.com/Lakr233/MSDisplayLink/compare/1.1.0...1.1.1)

</details>

<details>
<summary>Lakr233/SpringInterpolation (Lakr233/SpringInterpolation)</summary>

### [`v1.3.0`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.2...1.3.0)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.2...1.3.0)

### [`v1.2.2`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.1...1.2.2)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.1...1.2.2)

### [`v1.2.1`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.0...1.2.1)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.0...1.2.1)

### [`v1.2.0`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.2...1.2.0)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.2...1.2.0)

### [`v1.1.2`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.1...1.1.2)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.1...1.1.2)

### [`v1.1.1`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.0...1.1.1)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.0...1.1.1)

</details>

<details>
<summary>KaTeX/KaTeX (katex)</summary>

### [`v0.16.19`](https://redirect.github.com/KaTeX/KaTeX/blob/HEAD/CHANGELOG.md#01619-2024-12-29)

[Compare Source](https://redirect.github.com/KaTeX/KaTeX/compare/v0.16.18...v0.16.19)

##### Bug Fixes

-   **types:** improve `strict` function type ([#&#8203;4009](https://redirect.github.com/KaTeX/KaTeX/issues/4009)) ([4228b4e](4228b4eb52))

</details>

<details>
<summary>lint-staged/lint-staged (lint-staged)</summary>

### [`v15.3.0`](https://redirect.github.com/lint-staged/lint-staged/blob/HEAD/CHANGELOG.md#1530)

[Compare Source](https://redirect.github.com/lint-staged/lint-staged/compare/v15.2.11...v15.3.0)

##### Minor Changes

-   [#&#8203;1495](https://redirect.github.com/lint-staged/lint-staged/pull/1495) [`e69da9e`](e69da9e614) Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - Added more info to the debug logs so that "environment" info doesn't need to be added separately to GitHub issues.

-   [#&#8203;1493](https://redirect.github.com/lint-staged/lint-staged/pull/1493) [`fa0fe98`](fa0fe98104) Thanks [@&#8203;iiroj](https://redirect.github.com/iiroj)! - Added more help messages around the automatic `git stash` that *lint-staged* creates as a backup (by default). The console output also displays the short git *hash* of the stash so that it's easier to recover lost files in case some fatal errors are encountered, or the process is killed before completing.

    For example:

        % npx lint-staged
        ✔ Backed up original state in git stash (20addf8)
        ✔ Running tasks for staged files...
        ✔ Applying modifications from tasks...
        ✔ Cleaning up temporary files...

    where the backup can be seen with `git show 20addf8`, or `git stash list`:

        % git stash list
        stash@{0}: lint-staged automatic backup (20addf8)

</details>

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

### [`v9.5.0`](https://redirect.github.com/gpbl/react-day-picker/compare/v9.4.4...a06052e71bf199402e15c5aee7805e2be2dd4498)

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

</details>

<details>
<summary>i18next/react-i18next (react-i18next)</summary>

### [`v15.3.0`](https://redirect.github.com/i18next/react-i18next/blob/HEAD/CHANGELOG.md#1530)

[Compare Source](https://redirect.github.com/i18next/react-i18next/compare/v15.2.0...v15.3.0)

Uses the i18next logger instead of the default console logger, if there is a valid i18next instance. Now the debug i18next option is respected, and you can also inject your own logger module: https://www.i18next.com/misc/creating-own-plugins#logger

</details>

<details>
<summary>vercel/swr (swr)</summary>

### [`v2.3.0`](https://redirect.github.com/vercel/swr/compare/v2.2.5...v2.3.0)

[Compare Source](https://redirect.github.com/vercel/swr/compare/v2.2.5...v2.3.0)

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v6.0.6`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small606-2024-12-26-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.5...v6.0.6)

-   fix: replace runner-side path normalization with `fetchModule`-side resolve ([#&#8203;18361](https://redirect.github.com/vitejs/vite/issues/18361)) ([9f10261](9f10261e76)), closes [#&#8203;18361](https://redirect.github.com/vitejs/vite/issues/18361)
-   fix(css): resolve style tags in HTML files correctly for lightningcss ([#&#8203;19001](https://redirect.github.com/vitejs/vite/issues/19001)) ([afff05c](afff05c032)), closes [#&#8203;19001](https://redirect.github.com/vitejs/vite/issues/19001)
-   fix(css): show correct error when unknown placeholder is used for CSS modules pattern in lightningcs ([9290d85](9290d85b5d)), closes [#&#8203;19070](https://redirect.github.com/vitejs/vite/issues/19070)
-   fix(resolve): handle package.json with UTF-8 BOM ([#&#8203;19000](https://redirect.github.com/vitejs/vite/issues/19000)) ([902567a](902567ac53)), closes [#&#8203;19000](https://redirect.github.com/vitejs/vite/issues/19000)
-   fix(ssrTransform): preserve line offset when transforming imports ([#&#8203;19004](https://redirect.github.com/vitejs/vite/issues/19004)) ([1aa434e](1aa434e801)), closes [#&#8203;19004](https://redirect.github.com/vitejs/vite/issues/19004)
-   chore: fix typo in comment ([#&#8203;19067](https://redirect.github.com/vitejs/vite/issues/19067)) ([eb06ec3](eb06ec30bb)), closes [#&#8203;19067](https://redirect.github.com/vitejs/vite/issues/19067)
-   chore: update comment about `build.target` ([#&#8203;19047](https://redirect.github.com/vitejs/vite/issues/19047)) ([0e9e81f](0e9e81f622)), closes [#&#8203;19047](https://redirect.github.com/vitejs/vite/issues/19047)
-   revert: unpin esbuild version ([#&#8203;19043](https://redirect.github.com/vitejs/vite/issues/19043)) ([8bfe247](8bfe247511)), closes [#&#8203;19043](https://redirect.github.com/vitejs/vite/issues/19043)
-   test(ssr): test virtual module with query ([#&#8203;19044](https://redirect.github.com/vitejs/vite/issues/19044)) ([a1f4b46](a1f4b46896)), closes [#&#8203;19044](https://redirect.github.com/vitejs/vite/issues/19044)

</details>

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

### [`v4.6.0`](2fe7d635e8...1871484db8)

[Compare Source](2fe7d635e8...1871484db8)

</details>

<details>
<summary>yjs/yjs (yjs)</summary>

### [`v13.6.21`](https://redirect.github.com/yjs/yjs/releases/tag/v13.6.21)

[Compare Source](https://redirect.github.com/yjs/yjs/compare/v13.6.20...v13.6.21)

-   fix [#&#8203;657](https://redirect.github.com/yjs/yjs/issues/657) - relative positions issue when using followUndoneDeletions=false  [`f583d2a`](https://redirect.github.com/yjs/yjs/commit/f583d2a2)
-   lint  [`1b0f2e5`](https://redirect.github.com/yjs/yjs/commit/1b0f2e54)
-   add nodejs specific tests  [`4404d09`](https://redirect.github.com/yjs/yjs/commit/4404d090)
-   Merge pull request [#&#8203;679](https://redirect.github.com/yjs/yjs/issues/679) from hoangqwe159/main  [`d4d4ae5`](https://redirect.github.com/yjs/yjs/commit/d4d4ae5f)
-   Add PSPDFKit binding to README.md  [`4ffd370`](https://redirect.github.com/yjs/yjs/commit/4ffd3709)
-   Merge pull request [#&#8203;676](https://redirect.github.com/yjs/yjs/issues/676) from himself65/patch-1  [`0419b74`](https://redirect.github.com/yjs/yjs/commit/0419b743)
-   add Open Collaboration Tools as a user  [`c951f2b`](https://redirect.github.com/yjs/yjs/commit/c951f2b7)
-   docs: remove `@toeverything/y-indexeddb`  [`4e2d3c8`](https://redirect.github.com/yjs/yjs/commit/4e2d3c8a)
-   update readme  [`8dc1296`](https://redirect.github.com/yjs/yjs/commit/8dc1296a)
-   add stars to providers that sponsor yjs  [`4329997`](https://redirect.github.com/yjs/yjs/commit/43299973)
-   Merge pull request [#&#8203;671](https://redirect.github.com/yjs/yjs/issues/671) from carlossantos74/main  [`2b7ea8a`](https://redirect.github.com/yjs/yjs/commit/2b7ea8a2)
-   add SuperViz Provider in yjs README  [`4f47355`](https://redirect.github.com/yjs/yjs/commit/4f473558)
-   \[funding.json] fix some validation issues  [`6074f80`](https://redirect.github.com/yjs/yjs/commit/6074f802)
-   fix errors in funding.json  [`42bbb44`](https://redirect.github.com/yjs/yjs/commit/42bbb44b)
-   add funding.json  [`cc2d732`](https://redirect.github.com/yjs/yjs/commit/cc2d7320)
-   add y-crdt elexir bindings  [`e804dd7`](https://redirect.github.com/yjs/yjs/commit/e804dd75)

### [`v13.6.20`](https://redirect.github.com/yjs/yjs/releases/tag/v13.6.20)

[Compare Source](https://redirect.github.com/yjs/yjs/compare/v13.6.19...v13.6.20)

-   lint  [`487465d`](https://redirect.github.com/yjs/yjs/commit/487465d7)
-   add yjs-inspector  [`345fd31`](https://redirect.github.com/yjs/yjs/commit/345fd31b)
-   add devtools  [`4ff65b5`](https://redirect.github.com/yjs/yjs/commit/4ff65b5d)
-   \[[#&#8203;667](https://redirect.github.com/yjs/yjs/issues/667)] sanity checks for Yjs caveats. In dev_mode, objects inserted into Yjs can't be manipulated.  [`8152cf8`](https://redirect.github.com/yjs/yjs/commit/8152cf81)
-   [#&#8203;667](https://redirect.github.com/yjs/yjs/issues/667) - add sanity messages when data is read before type is added to a document.  [`3bf44b9`](https://redirect.github.com/yjs/yjs/commit/3bf44b98)
-   Y.Array.length should be 0 before it is integrated - [#&#8203;666](https://redirect.github.com/yjs/yjs/issues/666)  [`8cd1a48`](https://redirect.github.com/yjs/yjs/commit/8cd1a482)
-   Merge pull request [#&#8203;665](https://redirect.github.com/yjs/yjs/issues/665) from batchor/main  [`9e9f294`](https://redirect.github.com/yjs/yjs/commit/9e9f2940)
-   add ScienHub as a user.  [`4fb7789`](https://redirect.github.com/yjs/yjs/commit/4fb7789c)
-   add ScienHub as a user.  [`c1ef9a1`](https://redirect.github.com/yjs/yjs/commit/c1ef9a12)

### [`v13.6.19`](https://redirect.github.com/yjs/yjs/releases/tag/v13.6.19)

[Compare Source](https://redirect.github.com/yjs/yjs/compare/v13.6.18...v13.6.19)

-   add `ydoc.isDestroyed` property  [`f604250`](https://redirect.github.com/yjs/yjs/commit/f604250f)
-   add eclipse theia as a user  [`7422b18`](https://redirect.github.com/yjs/yjs/commit/7422b18e)
-   add secsync  [`95e2bc4`](https://redirect.github.com/yjs/yjs/commit/95e2bc44)
-   add kanbert as a user  [`f2ff8b9`](https://redirect.github.com/yjs/yjs/commit/f2ff8b95)
-   Merge pull request [#&#8203;664](https://redirect.github.com/yjs/yjs/issues/664) from jul13579/add-qdacity-to-readme  [`3f9bfe4`](https://redirect.github.com/yjs/yjs/commit/3f9bfe42)
-   Add QDAcity to `README.md`  [`5b4d2a6`](https://redirect.github.com/yjs/yjs/commit/5b4d2a6b)
-   fix new lint issues  [`44e5108`](https://redirect.github.com/yjs/yjs/commit/44e51080)
-   update markdownlint  [`dd17228`](https://redirect.github.com/yjs/yjs/commit/dd17228a)
-   lint readme  [`eeb4c99`](https://redirect.github.com/yjs/yjs/commit/eeb4c996)
-   Merge pull request [#&#8203;660](https://redirect.github.com/yjs/yjs/issues/660) from mtreinik/main  [`56d5e32`](https://redirect.github.com/yjs/yjs/commit/56d5e328)
-   Remove erroneous ymap.get(index:number) from API docs  [`294c6a1`](https://redirect.github.com/yjs/yjs/commit/294c6a15)
-   Add Y.Array.from() and yarray.clone() to API docs  [`c944a45`](https://redirect.github.com/yjs/yjs/commit/c944a455)
-   update users  [`f29cd2b`](https://redirect.github.com/yjs/yjs/commit/f29cd2ba)
-   Merge pull request [#&#8203;651](https://redirect.github.com/yjs/yjs/issues/651) from nikgraf/patch-2  [`384ec4d`](https://redirect.github.com/yjs/yjs/commit/384ec4db)
-   add react-yjs to bindings  [`5e19c35`](https://redirect.github.com/yjs/yjs/commit/5e19c354)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuODUuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2024-12-30 07:07:54 +00:00
pengx17
ea6fed127b fix(editor): tooltip styles when having span tags (#9422)
fix AF-2040
2024-12-30 06:54:03 +00:00
Saul-Mirone
e3b6841944 refactor(editor): reorg block specs (#9421) 2024-12-30 05:59:25 +00:00
pengx17
87331b49b7 docs(core): clarify developing server docs (#9420) 2024-12-30 03:51:59 +00:00
fundon
b9f2650369 feat(editor): store real color values in edgeless (#9254)
### What's Changed!

* adds theme type: `ThemeSchema`
* adds default theme: `DefaultTheme`
* stores real color values
2024-12-30 03:36:35 +00:00
fundon
a5641ae608 feat(editor): update edgeless color palette (#9243)
Closes: [BS-1475](https://linear.app/affine-design/issue/BS-1475/颜色主题更新) [BS-1803](https://linear.app/affine-design/issue/BS-1803/fill-color色板影响的yuan素) [BS-1804](https://linear.app/affine-design/issue/BS-1804/border-color色板影响的yuan素) [BS-1815](https://linear.app/affine-design/issue/BS-1815/连线文字配色略瞎)

### What's Changed

* refactor `EdgelessLineWidthPanel` component, the previous width is fixed and cannot be used in the new design
* refactor `EdgelessColorPanel` and `EdgelessColorButton` components, make them simple and reusable
* delete redundant `EdgelessOneRowColorPanel` component
* unity and update color palette, if the previously set color is not in the latest color palette, the custom color button will be selected
2024-12-30 03:36:34 +00:00
Saul-Mirone
6b1865ff92 fix(editor): prevent errors from isStrictUrl (#9419)
Closes: [BS-2277](https://linear.app/affine-design/issue/BS-2277/typeerror-failed-to-construct-url-invalid-url)
2024-12-30 02:45:59 +00:00
darkskygit
e630290e7c fix(server): cluster metrics duplicate (#9416) 2024-12-30 02:25:01 +00:00
Saul-Mirone
cec4a4b2c0 refactor(editor): extract drag handle widget (#9415) 2024-12-29 06:51:48 +00:00
Saul-Mirone
b96a03b283 refactor(editor): remote selection widget (#9408) 2024-12-28 08:47:09 +00:00
Saul-Mirone
1e4b1807be refactor(editor): query methods in edgeless api (#9407) 2024-12-28 07:48:41 +00:00
Saul-Mirone
dc92d78895 refactor(editor): remove re-exports (#9406) 2024-12-28 06:51:41 +00:00
renovate
1deed602c8 chore: bump up all non-major dependencies (#9249)
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence | Type | Update |
|---|---|---|---|---|---|---|---|
| [@swc/core](https://swc.rs) ([source](https://redirect.github.com/swc-project/swc)) | [`1.10.1` -> `1.10.3`](https://renovatebot.com/diffs/npm/@swc%2fcore/1.10.1/1.10.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@swc%2fcore/1.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@swc%2fcore/1.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@swc%2fcore/1.10.1/1.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@swc%2fcore/1.10.1/1.10.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [@toeverything/theme](https://redirect.github.com/toeverything/design) | [`1.1.2` -> `1.1.3`](https://renovatebot.com/diffs/npm/@toeverything%2ftheme/1.1.2/1.1.3) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@toeverything%2ftheme/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@toeverything%2ftheme/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@toeverything%2ftheme/1.1.2/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@toeverything%2ftheme/1.1.2/1.1.3?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |
| @&#8203;types/dompurify | [`3.0.5` -> `3.2.0`](https://renovatebot.com/diffs/npm/@types%2fdompurify/3.0.5/3.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@types%2fdompurify/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@types%2fdompurify/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@types%2fdompurify/3.0.5/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@types%2fdompurify/3.0.5/3.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | minor |
| [Lakr233/MSDisplayLink](https://redirect.github.com/Lakr233/MSDisplayLink) | `from: "1.1.0"` -> `from: "1.1.1"` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.0/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fLakr233%2fMSDisplayLink/1.1.0/1.1.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | patch |
| [Lakr233/SpringInterpolation](https://redirect.github.com/Lakr233/SpringInterpolation) | `from: "1.1.0"` -> `from: "1.3.0"` | [![age](https://developer.mend.io/api/mc/badges/age/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.1.0/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/git-tags/https:%2f%2fgithub.com%2fLakr233%2fSpringInterpolation/1.1.0/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |  | minor |
| [happy-dom](https://redirect.github.com/capricorn86/happy-dom) | [`16.0.0` -> `16.0.1`](https://renovatebot.com/diffs/npm/happy-dom/16.0.0/16.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/happy-dom/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/happy-dom/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/happy-dom/16.0.0/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/happy-dom/16.0.0/16.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [html-validate](https://html-validate.org) ([source](https://gitlab.com/html-validate/html-validate)) | [`9.0.1` -> `9.1.0`](https://renovatebot.com/diffs/npm/html-validate/9.0.1/9.1.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/html-validate/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/html-validate/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/html-validate/9.0.1/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/html-validate/9.0.1/9.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [serde](https://serde.rs) ([source](https://redirect.github.com/serde-rs/serde)) | `1.0.216` -> `1.0.217` | [![age](https://developer.mend.io/api/mc/badges/age/crate/serde/1.0.217?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/crate/serde/1.0.217?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/crate/serde/1.0.216/1.0.217?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/crate/serde/1.0.216/1.0.217?slim=true)](https://docs.renovatebot.com/merge-confidence/) | workspace.dependencies | patch |
| [swr](https://swr.vercel.app) ([source](https://redirect.github.com/vercel/swr)) | [`2.2.5` -> `2.3.0`](https://renovatebot.com/diffs/npm/swr/2.2.5/2.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/swr/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/swr/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/swr/2.2.5/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/swr/2.2.5/2.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | minor |
| [typedoc](https://typedoc.org) ([source](https://redirect.github.com/TypeStrong/TypeDoc)) | [`0.27.5` -> `0.27.6`](https://renovatebot.com/diffs/npm/typedoc/0.27.5/0.27.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/typedoc/0.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/typedoc/0.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/typedoc/0.27.5/0.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/typedoc/0.27.5/0.27.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | devDependencies | patch |
| [vite](https://vite.dev) ([source](https://redirect.github.com/vitejs/vite/tree/HEAD/packages/vite)) | [`6.0.5` -> `6.0.6`](https://renovatebot.com/diffs/npm/vite/6.0.5/6.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/6.0.5/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/6.0.5/6.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | resolutions | patch |
| [yjs](https://docs.yjs.dev) ([source](https://redirect.github.com/yjs/yjs)) | [`13.6.18` -> `13.6.21`](https://renovatebot.com/diffs/npm/yjs/13.6.18/13.6.21) | [![age](https://developer.mend.io/api/mc/badges/age/npm/yjs/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/yjs/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/yjs/13.6.18/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/yjs/13.6.18/13.6.21?slim=true)](https://docs.renovatebot.com/merge-confidence/) | dependencies | patch |

---

### Release Notes

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

### [`v1.10.3`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1103---2024-12-27)

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

##### Bug Fixes

-   **(es/codegen)** Emit semicolon after using declarations ([#&#8203;9816](https://redirect.github.com/swc-project/swc/issues/9816)) ([556d924](556d924cf5))

### [`v1.10.2`](https://redirect.github.com/swc-project/swc/blob/HEAD/CHANGELOG.md#1102---2024-12-26)

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

##### Bug Fixes

-   **(es)** Don't panic when wasm bytecheck faild ([#&#8203;9803](https://redirect.github.com/swc-project/swc/issues/9803)) ([c81be2e](c81be2ee28))

-   **(es/parser)** Do not parse empty stmt after using decl ([#&#8203;9798](https://redirect.github.com/swc-project/swc/issues/9798)) ([c2696db](c2696db528))

##### Documentation

-   **(types)** Fix broken links ([#&#8203;9812](https://redirect.github.com/swc-project/swc/issues/9812)) ([7768114](7768114451))

</details>

<details>
<summary>toeverything/design (@&#8203;toeverything/theme)</summary>

### [`v1.1.3`](https://redirect.github.com/toeverything/design/compare/1.1.2...1.1.3)

[Compare Source](https://redirect.github.com/toeverything/design/compare/1.1.2...1.1.3)

</details>

<details>
<summary>Lakr233/MSDisplayLink (Lakr233/MSDisplayLink)</summary>

### [`v1.1.1`](https://redirect.github.com/Lakr233/MSDisplayLink/compare/1.1.0...1.1.1)

[Compare Source](https://redirect.github.com/Lakr233/MSDisplayLink/compare/1.1.0...1.1.1)

</details>

<details>
<summary>Lakr233/SpringInterpolation (Lakr233/SpringInterpolation)</summary>

### [`v1.3.0`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.2...1.3.0)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.2...1.3.0)

### [`v1.2.2`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.1...1.2.2)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.1...1.2.2)

### [`v1.2.1`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.0...1.2.1)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.2.0...1.2.1)

### [`v1.2.0`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.2...1.2.0)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.2...1.2.0)

### [`v1.1.2`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.1...1.1.2)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.1...1.1.2)

### [`v1.1.1`](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.0...1.1.1)

[Compare Source](https://redirect.github.com/Lakr233/SpringInterpolation/compare/1.1.0...1.1.1)

</details>

<details>
<summary>capricorn86/happy-dom (happy-dom)</summary>

### [`v16.0.1`](https://redirect.github.com/capricorn86/happy-dom/compare/v16.0.0...2df1cc47f46695602f1b21a6d868fa9ee8a2277d)

[Compare Source](https://redirect.github.com/capricorn86/happy-dom/compare/v16.0.0...v16.0.1)

</details>

<details>
<summary>html-validate/html-validate (html-validate)</summary>

### [`v9.1.0`](https://gitlab.com/html-validate/html-validate/blob/HEAD/CHANGELOG.md#910-2024-12-25)

[Compare Source](https://gitlab.com/html-validate/html-validate/compare/v9.0.1...v9.1.0)

##### Features

-   **deps:** update dependency ignore to v7 ([43ae9ac](43ae9ac76c))

##### Bug Fixes

-   use jest worker for `toMatchCodeframe` ([3c29ad5](3c29ad5e74))

</details>

<details>
<summary>serde-rs/serde (serde)</summary>

### [`v1.0.217`](https://redirect.github.com/serde-rs/serde/releases/tag/v1.0.217)

[Compare Source](https://redirect.github.com/serde-rs/serde/compare/v1.0.216...v1.0.217)

-   Support serializing externally tagged unit variant inside flattened field ([#&#8203;2786](https://redirect.github.com/serde-rs/serde/issues/2786), thanks [@&#8203;Mingun](https://redirect.github.com/Mingun))

</details>

<details>
<summary>vercel/swr (swr)</summary>

### [`v2.3.0`](https://redirect.github.com/vercel/swr/compare/v2.2.5...v2.3.0)

[Compare Source](https://redirect.github.com/vercel/swr/compare/v2.2.5...v2.3.0)

</details>

<details>
<summary>TypeStrong/TypeDoc (typedoc)</summary>

### [`v0.27.6`](https://redirect.github.com/TypeStrong/TypeDoc/blob/HEAD/CHANGELOG.md#v0276-2024-12-26)

[Compare Source](https://redirect.github.com/TypeStrong/TypeDoc/compare/v0.27.5...v0.27.6)

##### Features

-   Added `ignoredHighlightLanguages` option to specify languages which will be
    allowed in code blocks but not highlighted, [#&#8203;2819](https://redirect.github.com/TypeStrong/TypeDoc/issues/2819).

##### Bug Fixes

-   `@include` and `@includeCode` now work in the readme file, [#&#8203;2814](https://redirect.github.com/TypeStrong/TypeDoc/issues/2814).
-   TypeDoc will now avoid making references to references, [#&#8203;2811](https://redirect.github.com/TypeStrong/TypeDoc/issues/2811).
-   Fixed output specific option specification, [#&#8203;2818](https://redirect.github.com/TypeStrong/TypeDoc/issues/2818).
-   Improved type reference conversion to avoid including defaulted type arguments, [#&#8203;2820](https://redirect.github.com/TypeStrong/TypeDoc/issues/2820).
-   Fixed parsing of declaration references which include a module and a local reference, [#&#8203;2810](https://redirect.github.com/TypeStrong/TypeDoc/issues/2810).
-   Improved link resolution logic to prioritize type alias properties with the
    same symbol over type literal properties within function parameters.

</details>

<details>
<summary>vitejs/vite (vite)</summary>

### [`v6.0.6`](https://redirect.github.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small606-2024-12-26-small)

[Compare Source](https://redirect.github.com/vitejs/vite/compare/v6.0.5...v6.0.6)

-   fix: replace runner-side path normalization with `fetchModule`-side resolve ([#&#8203;18361](https://redirect.github.com/vitejs/vite/issues/18361)) ([9f10261](9f10261e76)), closes [#&#8203;18361](https://redirect.github.com/vitejs/vite/issues/18361)
-   fix(css): resolve style tags in HTML files correctly for lightningcss ([#&#8203;19001](https://redirect.github.com/vitejs/vite/issues/19001)) ([afff05c](afff05c032)), closes [#&#8203;19001](https://redirect.github.com/vitejs/vite/issues/19001)
-   fix(css): show correct error when unknown placeholder is used for CSS modules pattern in lightningcs ([9290d85](9290d85b5d)), closes [#&#8203;19070](https://redirect.github.com/vitejs/vite/issues/19070)
-   fix(resolve): handle package.json with UTF-8 BOM ([#&#8203;19000](https://redirect.github.com/vitejs/vite/issues/19000)) ([902567a](902567ac53)), closes [#&#8203;19000](https://redirect.github.com/vitejs/vite/issues/19000)
-   fix(ssrTransform): preserve line offset when transforming imports ([#&#8203;19004](https://redirect.github.com/vitejs/vite/issues/19004)) ([1aa434e](1aa434e801)), closes [#&#8203;19004](https://redirect.github.com/vitejs/vite/issues/19004)
-   chore: fix typo in comment ([#&#8203;19067](https://redirect.github.com/vitejs/vite/issues/19067)) ([eb06ec3](eb06ec30bb)), closes [#&#8203;19067](https://redirect.github.com/vitejs/vite/issues/19067)
-   chore: update comment about `build.target` ([#&#8203;19047](https://redirect.github.com/vitejs/vite/issues/19047)) ([0e9e81f](0e9e81f622)), closes [#&#8203;19047](https://redirect.github.com/vitejs/vite/issues/19047)
-   revert: unpin esbuild version ([#&#8203;19043](https://redirect.github.com/vitejs/vite/issues/19043)) ([8bfe247](8bfe247511)), closes [#&#8203;19043](https://redirect.github.com/vitejs/vite/issues/19043)
-   test(ssr): test virtual module with query ([#&#8203;19044](https://redirect.github.com/vitejs/vite/issues/19044)) ([a1f4b46](a1f4b46896)), closes [#&#8203;19044](https://redirect.github.com/vitejs/vite/issues/19044)

</details>

<details>
<summary>yjs/yjs (yjs)</summary>

### [`v13.6.21`](https://redirect.github.com/yjs/yjs/releases/tag/v13.6.21)

[Compare Source](https://redirect.github.com/yjs/yjs/compare/v13.6.20...v13.6.21)

-   fix [#&#8203;657](https://redirect.github.com/yjs/yjs/issues/657) - relative positions issue when using followUndoneDeletions=false  [`f583d2a`](https://redirect.github.com/yjs/yjs/commit/f583d2a2)
-   lint  [`1b0f2e5`](https://redirect.github.com/yjs/yjs/commit/1b0f2e54)
-   add nodejs specific tests  [`4404d09`](https://redirect.github.com/yjs/yjs/commit/4404d090)
-   Merge pull request [#&#8203;679](https://redirect.github.com/yjs/yjs/issues/679) from hoangqwe159/main  [`d4d4ae5`](https://redirect.github.com/yjs/yjs/commit/d4d4ae5f)
-   Add PSPDFKit binding to README.md  [`4ffd370`](https://redirect.github.com/yjs/yjs/commit/4ffd3709)
-   Merge pull request [#&#8203;676](https://redirect.github.com/yjs/yjs/issues/676) from himself65/patch-1  [`0419b74`](https://redirect.github.com/yjs/yjs/commit/0419b743)
-   add Open Collaboration Tools as a user  [`c951f2b`](https://redirect.github.com/yjs/yjs/commit/c951f2b7)
-   docs: remove `@toeverything/y-indexeddb`  [`4e2d3c8`](https://redirect.github.com/yjs/yjs/commit/4e2d3c8a)
-   update readme  [`8dc1296`](https://redirect.github.com/yjs/yjs/commit/8dc1296a)
-   add stars to providers that sponsor yjs  [`4329997`](https://redirect.github.com/yjs/yjs/commit/43299973)
-   Merge pull request [#&#8203;671](https://redirect.github.com/yjs/yjs/issues/671) from carlossantos74/main  [`2b7ea8a`](https://redirect.github.com/yjs/yjs/commit/2b7ea8a2)
-   add SuperViz Provider in yjs README  [`4f47355`](https://redirect.github.com/yjs/yjs/commit/4f473558)
-   \[funding.json] fix some validation issues  [`6074f80`](https://redirect.github.com/yjs/yjs/commit/6074f802)
-   fix errors in funding.json  [`42bbb44`](https://redirect.github.com/yjs/yjs/commit/42bbb44b)
-   add funding.json  [`cc2d732`](https://redirect.github.com/yjs/yjs/commit/cc2d7320)
-   add y-crdt elexir bindings  [`e804dd7`](https://redirect.github.com/yjs/yjs/commit/e804dd75)

### [`v13.6.20`](https://redirect.github.com/yjs/yjs/releases/tag/v13.6.20)

[Compare Source](https://redirect.github.com/yjs/yjs/compare/v13.6.19...v13.6.20)

-   lint  [`487465d`](https://redirect.github.com/yjs/yjs/commit/487465d7)
-   add yjs-inspector  [`345fd31`](https://redirect.github.com/yjs/yjs/commit/345fd31b)
-   add devtools  [`4ff65b5`](https://redirect.github.com/yjs/yjs/commit/4ff65b5d)
-   \[[#&#8203;667](https://redirect.github.com/yjs/yjs/issues/667)] sanity checks for Yjs caveats. In dev_mode, objects inserted into Yjs can't be manipulated.  [`8152cf8`](https://redirect.github.com/yjs/yjs/commit/8152cf81)
-   [#&#8203;667](https://redirect.github.com/yjs/yjs/issues/667) - add sanity messages when data is read before type is added to a document.  [`3bf44b9`](https://redirect.github.com/yjs/yjs/commit/3bf44b98)
-   Y.Array.length should be 0 before it is integrated - [#&#8203;666](https://redirect.github.com/yjs/yjs/issues/666)  [`8cd1a48`](https://redirect.github.com/yjs/yjs/commit/8cd1a482)
-   Merge pull request [#&#8203;665](https://redirect.github.com/yjs/yjs/issues/665) from batchor/main  [`9e9f294`](https://redirect.github.com/yjs/yjs/commit/9e9f2940)
-   add ScienHub as a user.  [`4fb7789`](https://redirect.github.com/yjs/yjs/commit/4fb7789c)
-   add ScienHub as a user.  [`c1ef9a1`](https://redirect.github.com/yjs/yjs/commit/c1ef9a12)

### [`v13.6.19`](https://redirect.github.com/yjs/yjs/releases/tag/v13.6.19)

[Compare Source](https://redirect.github.com/yjs/yjs/compare/v13.6.18...v13.6.19)

-   add `ydoc.isDestroyed` property  [`f604250`](https://redirect.github.com/yjs/yjs/commit/f604250f)
-   add eclipse theia as a user  [`7422b18`](https://redirect.github.com/yjs/yjs/commit/7422b18e)
-   add secsync  [`95e2bc4`](https://redirect.github.com/yjs/yjs/commit/95e2bc44)
-   add kanbert as a user  [`f2ff8b9`](https://redirect.github.com/yjs/yjs/commit/f2ff8b95)
-   Merge pull request [#&#8203;664](https://redirect.github.com/yjs/yjs/issues/664) from jul13579/add-qdacity-to-readme  [`3f9bfe4`](https://redirect.github.com/yjs/yjs/commit/3f9bfe42)
-   Add QDAcity to `README.md`  [`5b4d2a6`](https://redirect.github.com/yjs/yjs/commit/5b4d2a6b)
-   fix new lint issues  [`44e5108`](https://redirect.github.com/yjs/yjs/commit/44e51080)
-   update markdownlint  [`dd17228`](https://redirect.github.com/yjs/yjs/commit/dd17228a)
-   lint readme  [`eeb4c99`](https://redirect.github.com/yjs/yjs/commit/eeb4c996)
-   Merge pull request [#&#8203;660](https://redirect.github.com/yjs/yjs/issues/660) from mtreinik/main  [`56d5e32`](https://redirect.github.com/yjs/yjs/commit/56d5e328)
-   Remove erroneous ymap.get(index:number) from API docs  [`294c6a1`](https://redirect.github.com/yjs/yjs/commit/294c6a15)
-   Add Y.Array.from() and yarray.clone() to API docs  [`c944a45`](https://redirect.github.com/yjs/yjs/commit/c944a455)
-   update users  [`f29cd2b`](https://redirect.github.com/yjs/yjs/commit/f29cd2ba)
-   Merge pull request [#&#8203;651](https://redirect.github.com/yjs/yjs/issues/651) from nikgraf/patch-2  [`384ec4d`](https://redirect.github.com/yjs/yjs/commit/384ec4db)
-   add react-yjs to bindings  [`5e19c35`](https://redirect.github.com/yjs/yjs/commit/5e19c354)

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS44MC4wIiwidXBkYXRlZEluVmVyIjoiMzkuODAuMCIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiXX0=-->
2024-12-28 04:36:43 +00:00
Saul-Mirone
901965b61e refactor(editor): remove components in blocks/_common (#9401) 2024-12-28 01:10:23 +00:00
liuyi
89030f308f fix(core): wrong editor version number (#9403) 2024-12-28 01:37:37 +08:00
forehalo
12542f51f9 chore: bump base version to 0.19.0 2024-12-28 00:27:50 +08:00
liuyi
378db1054b fix(server): avoid get object content when syncing (#9402) 2024-12-28 00:25:15 +08:00
Saul-Mirone
6ebefbbf2b refactor(editor): extract code block (#9397) 2024-12-27 14:45:11 +00:00
doodlewind
5e1d936c2e fix(editor): sentry-b0cfc9953ff64c53b9994697171bb91a (#9396) 2024-12-27 14:02:00 +00:00
pengx17
70e4c8feab feat(core): info modal should render backlinks with preview (#9387)
fix AF-2033
2024-12-27 13:47:06 +00:00
EYHN
cff3a73db4 fix(core): fix create workspace force cloud (#9382) 2024-12-27 13:33:05 +00:00
Saul-Mirone
cbfe38b189 refactor(editor): add middlewares in shared adapter (#9395) 2024-12-27 12:32:44 +00:00
Saul-Mirone
76d9712f21 chore(editor): remove pie menu (#9394) 2024-12-27 12:32:42 +00:00
Saul-Mirone
003ce4c9e9 refactor(editor): extract divider block (#9393) 2024-12-27 12:12:17 +00:00
2519 changed files with 79280 additions and 39597 deletions

View File

@@ -11,7 +11,7 @@ services:
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_DB: ${DB_DATABASE_NAME}
volumes:
- ${DATABASE_LOCATION}:/var/lib/postgresql/data
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:latest
@@ -26,3 +26,6 @@ services:
networks:
dev:
volumes:
postgres_data:

View File

@@ -7,6 +7,10 @@ inputs:
package:
description: 'Package to build'
required: true
no-build:
description: 'Whether to skip building'
required: false
default: 'false'
runs:
using: 'composite'
@@ -14,20 +18,34 @@ runs:
- name: Print rustup toolchain version
shell: bash
id: rustup-version
working-directory: ${{ env.DEV_DRIVE_WORKSPACE || github.workspace }}
run: |
export RUST_TOOLCHAIN_VERSION="$(grep 'channel' rust-toolchain.toml | head -1 | awk -F '"' '{print $2}')"
echo "Rust toolchain version: $RUST_TOOLCHAIN_VERSION"
echo "RUST_TOOLCHAIN_VERSION=$RUST_TOOLCHAIN_VERSION" >> "$GITHUB_OUTPUT"
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
if: ${{ runner.os != 'Windows' }}
with:
toolchain: '${{ steps.rustup-version.outputs.RUST_TOOLCHAIN_VERSION }}'
targets: ${{ inputs.target }}
env:
CARGO_INCREMENTAL: '1'
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
if: ${{ runner.os == 'Windows' }}
with:
toolchain: '${{ steps.rustup-version.outputs.RUST_TOOLCHAIN_VERSION }}'
targets: ${{ inputs.target }}
env:
CARGO_INCREMENTAL: '1'
CARGO_HOME: ${{ env.DEV_DRIVE }}/.cargo
RUSTUP_HOME: ${{ env.DEV_DRIVE }}/.rustup
- name: Set CC
if: ${{ contains(inputs.target, 'linux') && inputs.package != '@affine/native' }}
if: ${{ contains(inputs.target, 'linux') && inputs.package != '@affine/native' && inputs.no-build != 'true' }}
working-directory: ${{ env.DEV_DRIVE_WORKSPACE || github.workspace }}
shell: bash
run: |
echo "CC=clang" >> "$GITHUB_ENV"
@@ -35,12 +53,37 @@ runs:
- name: Cache cargo
uses: Swatinem/rust-cache@v2
if: ${{ runner.os == 'Windows' }}
with:
workspaces: ${{ env.DEV_DRIVE_WORKSPACE }}
save-if: ${{ github.ref_name == 'canary' }}
shared-key: ${{ inputs.target }}-${{ inputs.package }}
env:
CARGO_HOME: ${{ env.DEV_DRIVE }}/.cargo
RUSTUP_HOME: ${{ env.DEV_DRIVE }}/.rustup
- name: Cache cargo
uses: Swatinem/rust-cache@v2
if: ${{ runner.os != 'Windows' }}
with:
save-if: ${{ github.ref_name == 'canary' }}
shared-key: ${{ inputs.target }}-inputs.package
shared-key: ${{ inputs.target }}-${{ inputs.package }}
- name: Build
shell: bash
if: ${{ runner.os != 'Windows' && inputs.no-build != 'true' }}
run: |
yarn workspace ${{ inputs.package }} build --target ${{ inputs.target }} --use-napi-cross
env:
DEBUG: 'napi:*'
- name: Build
working-directory: ${{ env.DEV_DRIVE_WORKSPACE || github.workspace }}
shell: bash
if: ${{ runner.os == 'Windows' && inputs.no-build != 'true' }}
run: |
yarn workspace ${{ inputs.package }} build --target ${{ inputs.target }} --use-napi-cross
env:
DEBUG: 'napi:*'
CARGO_HOME: ${{ env.DEV_DRIVE }}/.cargo
RUSTUP_HOME: ${{ env.DEV_DRIVE }}/.rustup

View File

@@ -26,6 +26,7 @@ runs:
DEV_SERVER_URL: http://localhost:8080
COPILOT_OPENAI_API_KEY: ${{ inputs.openai-key }}
COPILOT_FAL_API_KEY: ${{ inputs.fal-key }}
COPILOT_PERPLEXITY_API_KEY: ${{ inputs.perplexity-key }}
- name: Upload test results
if: ${{ failure() }}

View File

@@ -17,7 +17,10 @@ const {
METRICS_CUSTOMER_IO_TOKEN,
COPILOT_OPENAI_API_KEY,
COPILOT_FAL_API_KEY,
COPILOT_PERPLEXITY_API_KEY,
COPILOT_UNSPLASH_API_KEY,
SLACK_BOT_TOKEN,
RELEASE_SLACK_CHANNEL_ID,
MAILER_SENDER,
MAILER_USER,
MAILER_PASSWORD,
@@ -147,7 +150,10 @@ const createHelmCommand = ({ isDryRun }) => {
`--set graphql.app.copilot.enabled=true`,
`--set-string graphql.app.copilot.openai.key="${COPILOT_OPENAI_API_KEY}"`,
`--set-string graphql.app.copilot.fal.key="${COPILOT_FAL_API_KEY}"`,
`--set-string graphql.app.copilot.perplexity.key="${COPILOT_PERPLEXITY_API_KEY}"`,
`--set-string graphql.app.copilot.unsplash.key="${COPILOT_UNSPLASH_API_KEY}"`,
`--set-string graphql.app.copilot.slack.botToken="${SLACK_BOT_TOKEN}"`,
`--set-string graphql.app.copilot.slack.channelId="${RELEASE_SLACK_CHANNEL_ID}"`,
`--set-string graphql.app.mailer.sender="${MAILER_SENDER}"`,
`--set-string graphql.app.mailer.user="${MAILER_USER}"`,
`--set-string graphql.app.mailer.password="${MAILER_PASSWORD}"`,

View File

@@ -35,10 +35,19 @@ inputs:
full-cache:
description: 'Full installation cache'
required: false
runs:
using: 'composite'
steps:
- name: Output workspace path
id: workspace-path
shell: bash
run: |
if [ -n "${{ env.DEV_DRIVE_WORKSPACE }}" ]; then
echo "workspace_path=${{ env.DEV_DRIVE_WORKSPACE }}" >> $GITHUB_OUTPUT
else
echo "workspace_path=${{ github.workspace }}" >> $GITHUB_OUTPUT
fi
- name: Setup Node.js
uses: actions/setup-node@v4
with:
@@ -52,26 +61,31 @@ runs:
- name: Init CorePack
if: ${{ inputs.corepack-install == 'true' }}
shell: bash
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: corepack enable
- name: Set nmMode
if: ${{ inputs.hard-link-nm == 'false' }}
shell: bash
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: yarn config set nmMode classic
- name: Set nmHoistingLimits
if: ${{ inputs.nmHoistingLimits }}
shell: bash
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: yarn config set nmHoistingLimits ${{ inputs.nmHoistingLimits }}
- name: Set enableScripts
if: ${{ inputs.enableScripts == 'false' }}
shell: bash
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: yarn config set enableScripts false
- name: Set yarn global cache path
shell: bash
id: yarn-cache
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: node -e "const p = $(yarn config cacheFolder --json).effective; console.log('yarn_global_cache=' + p)" >> $GITHUB_OUTPUT
- name: Cache non-full yarn cache on Linux
@@ -79,7 +93,7 @@ runs:
if: ${{ inputs.full-cache != 'true' && runner.os == 'Linux' }}
with:
path: |
node_modules
${{ steps.workspace-path.outputs.workspace_path }}/node_modules
${{ steps.yarn-cache.outputs.yarn_global_cache }}
key: node_modules-cache-${{ github.job }}-${{ runner.os }}-${{ runner.arch }}-${{ steps.system-info.outputs.name }}-${{ steps.system-info.outputs.release }}-${{ steps.system-info.outputs.version }}
@@ -115,17 +129,7 @@ runs:
if: ${{ inputs.package-install == 'true' }}
continue-on-error: true
shell: bash
run: yarn ${{ inputs.extra-flags }}
env:
HUSKY: '0'
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
ELECTRON_SKIP_BINARY_DOWNLOAD: '1'
SENTRYCLI_SKIP_DOWNLOAD: '1'
DEBUG: '*'
- name: yarn install (try again)
if: ${{ steps.install.outcome == 'failure' }}
shell: bash
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: yarn ${{ inputs.extra-flags }}
env:
HUSKY: '0'
@@ -138,6 +142,7 @@ runs:
id: playwright-version
if: ${{ inputs.playwright-install == 'true' }}
shell: bash
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
run: echo "version=$(yarn why --json @playwright/test | grep -h 'workspace:.' | jq --raw-output '.children[].locator' | sed -e 's/@playwright\/test@.*://' | head -n 1)" >> $GITHUB_OUTPUT
# Attempt to restore the correct Playwright browser binaries based on the
@@ -150,7 +155,7 @@ runs:
id: playwright-cache
if: ${{ inputs.playwright-install == 'true' }}
with:
path: ${{ github.workspace }}/node_modules/.cache/ms-playwright
path: ${{ steps.workspace-path.outputs.workspace_path }}/node_modules/.cache/ms-playwright
key: '${{ runner.os }}-${{ runner.arch }}-${{ steps.system-info.outputs.name }}-${{ steps.system-info.outputs.release }}-${{ steps.system-info.outputs.version }}-playwright-${{ steps.playwright-version.outputs.version }}'
# As a fallback, if the Playwright version has changed, try use the
# most recently cached version. There's a good chance that at least one
@@ -169,12 +174,14 @@ runs:
shell: bash
if: inputs.playwright-install == 'true'
run: yarn playwright install --with-deps chromium webkit
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/node_modules/.cache/ms-playwright
PLAYWRIGHT_BROWSERS_PATH: ${{ steps.workspace-path.outputs.workspace_path }}/node_modules/.cache/ms-playwright
- name: Get installed Electron version
id: electron-version
if: ${{ inputs.electron-install == 'true' }}
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
shell: bash
run: |
echo "version=$(yarn why --json electron | grep -h 'workspace:.' | jq --raw-output '.children[].locator' | sed -e 's/@playwright\/test@.*://' | head -n 1)" >> $GITHUB_OUTPUT
@@ -183,7 +190,7 @@ runs:
id: electron-cache
if: ${{ inputs.electron-install == 'true' }}
with:
path: 'node_modules/.cache/electron'
path: ${{ steps.workspace-path.outputs.workspace_path }}/node_modules/.cache/electron
key: '${{ runner.os }}-${{ runner.arch }}-${{ steps.system-info.outputs.name }}-${{ steps.system-info.outputs.release }}-${{ steps.system-info.outputs.version }}-electron-${{ steps.electron-version.outputs.version }}'
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-${{ steps.system-info.outputs.name }}-${{ steps.system-info.outputs.release }}-${{ steps.system-info.outputs.version }}-electron-
@@ -192,5 +199,11 @@ runs:
shell: bash
if: inputs.electron-install == 'true'
run: node ./node_modules/electron/install.js
working-directory: ${{ steps.workspace-path.outputs.workspace_path }}
env:
electron_config_cache: ./node_modules/.cache/electron
electron_config_cache: ${{ steps.workspace-path.outputs.workspace_path }}/node_modules/.cache/electron
- name: Write PLAYWRIGHT_BROWSERS_PATH env
shell: bash
run: |
echo "PLAYWRIGHT_BROWSERS_PATH=${{ steps.workspace-path.outputs.workspace_path }}/node_modules/.cache/ms-playwright" >> $GITHUB_ENV

View File

@@ -1,28 +0,0 @@
name: 'Rust setup'
description: 'Rust setup, including cache configuration'
inputs:
components:
description: 'Cargo components'
required: false
targets:
description: 'Cargo target'
required: false
toolchain:
description: 'Rustup toolchain'
required: false
default: 'stable'
runs:
using: 'composite'
steps:
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ inputs.toolchain }}
targets: ${{ inputs.targets }}
components: ${{ inputs.components }}
- name: Add Targets
if: ${{ inputs.targets }}
run: rustup target add ${{ inputs.targets }}
shell: bash
- uses: Swatinem/rust-cache@v2

View File

@@ -1,4 +1,4 @@
FROM node:20-bookworm-slim
FROM node:22-bookworm-slim
COPY ./packages/backend/server /app
COPY ./packages/frontend/apps/web/dist /app/static

View File

@@ -3,4 +3,4 @@ name: affine
description: AFFiNE cloud chart
type: application
version: 0.0.0
appVersion: "0.18.0"
appVersion: "0.19.0"

View File

@@ -3,7 +3,7 @@ name: graphql
description: AFFiNE GraphQL server
type: application
version: 0.0.0
appVersion: "0.18.0"
appVersion: "0.19.0"
dependencies:
- name: gcloud-sql-proxy
version: 0.0.0

View File

@@ -7,5 +7,8 @@ type: Opaque
data:
openaiSecret: {{ .Values.app.copilot.openai.key | b64enc }}
falSecret: {{ .Values.app.copilot.fal.key | b64enc }}
perplexitySecret: {{ .Values.app.copilot.perplexity.key | b64enc }}
unsplashSecret: {{ .Values.app.copilot.unsplash.key | b64enc }}
slackBotToken: {{ .Values.app.copilot.slack.botToken | b64enc }}
slackChannelId: {{ .Values.app.copilot.slack.channelId | b64enc }}
{{- end }}

View File

@@ -0,0 +1,66 @@
{{ if .Values.app.copilot.enabled }}
apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "graphql.fullname" . }}-copilot-test
labels:
{{- include "graphql.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": post-install,post-upgrade
"helm.sh/hook-weight": "1"
"helm.sh/hook-delete-policy": before-hook-creation
spec:
schedule: "0 8 * * *"
jobTemplate:
spec:
template:
spec:
serviceAccountName: {{ include "graphql.serviceAccountName" . }}
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
command: ["yarn", "test:copilot:e2e:cron"]
env:
- name: AFFINE_ENV
value: "{{ .Release.Namespace }}"
- name: SLACK_BOT_TOKEN
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: slackBotToken
- name: CHANNEL_ID
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: slackChannelId
- name: COPILOT_E2E_ENDPOINT
value: "http://{{ include "graphql.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local:3000"
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: pg-postgresql
key: postgres-password
- name: DATABASE_URL
value: postgres://{{ .Values.global.database.user }}:$(DATABASE_PASSWORD)@{{ .Values.global.database.url }}:{{ .Values.global.database.port }}/{{ .Values.global.database.name }}
- name: COPILOT_OPENAI_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: openaiSecret
- name: COPILOT_FAL_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: falSecret
- name: COPILOT_UNSPLASH_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: unsplashSecret
resources:
requests:
cpu: '100m'
memory: '200Mi'
restartPolicy: Never
backoffLimit: 1
{{ end }}

View File

@@ -157,6 +157,11 @@ spec:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: falSecret
- name: COPILOT_PERPLEXITY_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.copilot.secretName }}"
key: perplexitySecret
- name: COPILOT_UNSPLASH_API_KEY
valueFrom:
secretKeyRef:

View File

@@ -3,7 +3,7 @@ name: sync
description: AFFiNE Sync Server
type: application
version: 0.0.0
appVersion: "0.18.0"
appVersion: "0.19.0"
dependencies:
- name: gcloud-sql-proxy
version: 0.0.0

View File

@@ -27,7 +27,9 @@ jobs:
electron-install: false
extra-flags: workspaces focus @affine/server
- name: Build Server
run: yarn workspace @affine/server build
run: |
rm -rf packages/backend/server/src/__tests__
yarn workspace @affine/server build
- name: Upload server dist
uses: actions/upload-artifact@v4
with:

View File

@@ -19,7 +19,6 @@ env:
AFFINE_ENV: dev
COVERAGE: true
MACOSX_DEPLOYMENT_TARGET: '10.13'
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/node_modules/.cache/ms-playwright
DEPLOYMENT_TYPE: affine
concurrency:
@@ -280,11 +279,16 @@ jobs:
spec:
- { os: ubuntu-latest, target: x86_64-unknown-linux-gnu }
- { os: windows-latest, target: x86_64-pc-windows-msvc }
- { os: macos-14, target: x86_64-apple-darwin }
- { os: macos-14, target: aarch64-apple-darwin }
- { os: macos-latest, target: x86_64-apple-darwin }
- { os: macos-latest, target: aarch64-apple-darwin }
steps:
- uses: actions/checkout@v4
- uses: samypr100/setup-dev-drive@v3
if: ${{ matrix.spec.os == 'windows-latest' }}
with:
workspace-copy: true
drive-size: 8GB
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
@@ -292,6 +296,7 @@ jobs:
electron-install: false
- name: Setup filename
id: filename
working-directory: ${{ env.DEV_DRIVE_WORKSPACE || github.workspace }}
shell: bash
run: |
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
@@ -305,7 +310,7 @@ jobs:
uses: actions/upload-artifact@v4
with:
name: ${{ steps.filename.outputs.filename }}
path: ./packages/frontend/native/${{ steps.filename.outputs.filename }}
path: ${{ env.DEV_DRIVE_WORKSPACE || github.workspace }}/packages/frontend/native/${{ steps.filename.outputs.filename }}
if-no-files-found: error
build-server-native:
@@ -435,7 +440,10 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Setup Rust
uses: ./.github/actions/setup-rust
uses: ./.github/actions/build-rust
with:
package: 'affine'
no-build: 'true'
- name: Install latest nextest release
uses: taiki-e/install-action@nextest
@@ -496,7 +504,8 @@ jobs:
filters: |
changed:
- 'packages/backend/server/src/plugins/copilot/**'
- 'packages/backend/server/tests/copilot.*'
- 'packages/backend/server/tests/copilot*'
- 'tests/affine-cloud-copilot/**'
- name: Setup Node.js
if: ${{ steps.check-blocksuite-update.outputs.skip != 'true' || steps.apifilter.outputs.changed == 'true' }}
@@ -518,11 +527,12 @@ jobs:
- name: Run server tests
if: ${{ steps.check-blocksuite-update.outputs.skip != 'true' || steps.apifilter.outputs.changed == 'true' }}
run: yarn affine @affine/server test:copilot:coverage --forbid-only
run: yarn affine @affine/server test:copilot:spec:coverage --forbid-only
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
COPILOT_OPENAI_API_KEY: ${{ secrets.COPILOT_OPENAI_API_KEY }}
COPILOT_FAL_API_KEY: ${{ secrets.COPILOT_FAL_API_KEY }}
COPILOT_PERPLEXITY_API_KEY: ${{ secrets.COPILOT_PERPLEXITY_API_KEY }}
- name: Upload server test coverage results
if: ${{ steps.check-blocksuite-update.outputs.skip != 'true' || steps.apifilter.outputs.changed == 'true' }}
@@ -611,6 +621,7 @@ jobs:
script: yarn affine @affine-test/affine-cloud-copilot e2e --forbid-only --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
openai-key: ${{ secrets.COPILOT_OPENAI_API_KEY }}
fal-key: ${{ secrets.COPILOT_FAL_API_KEY }}
perplexity-key: ${{ secrets.COPILOT_PERPLEXITY_API_KEY }}
server-e2e-test:
name: ${{ matrix.tests.name }}
@@ -695,6 +706,7 @@ jobs:
DEV_SERVER_URL: http://localhost:8080
COPILOT_OPENAI_API_KEY: 1
COPILOT_FAL_API_KEY: 1
COPILOT_PERPLEXITY_API_KEY: 1
- name: Upload test results
if: ${{ failure() }}
@@ -717,14 +729,14 @@ jobs:
matrix:
spec:
- {
os: macos-14,
os: macos-latest,
platform: macos,
arch: x64,
target: x86_64-apple-darwin,
test: false,
}
- {
os: macos-14,
os: macos-latest,
platform: macos,
arch: arm64,
target: aarch64-apple-darwin,

View File

@@ -3,9 +3,6 @@ name: Copilot Cron Test
on:
workflow_dispatch:
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/node_modules/.cache/ms-playwright
jobs:
build-server-native:
name: Build Server native
@@ -41,6 +38,16 @@ jobs:
DISTRIBUTION: web
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
REDIS_SERVER_HOST: localhost
strategy:
fail-fast: false
matrix:
spec:
- {
name: e2e,
package: '@affine-test/affine-cloud-copilot',
type: e2e,
}
- { name: spec, package: '@affine/server', type: copilot:spec }
services:
postgres:
image: postgres
@@ -81,12 +88,14 @@ jobs:
- name: Prepare Server Test Environment
uses: ./.github/actions/server-test-env
- name: Run server tests
run: yarn affine @affine/server test:copilot:coverage --forbid-only
- name: Run copilot api ${{ matrix.spec.name }} tests
run: yarn affine ${{ matrix.spec.package }} test:${{ matrix.spec.type }}:coverage --forbid-only
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
COPILOT_OPENAI_API_KEY: ${{ secrets.COPILOT_OPENAI_API_KEY }}
COPILOT_FAL_API_KEY: ${{ secrets.COPILOT_FAL_API_KEY }}
COPILOT_PERPLEXITY_API_KEY: ${{ secrets.COPILOT_PERPLEXITY_API_KEY }}
COPILOT_E2E_ENDPOINT: ${{ secrets.COPILOT_E2E_ENDPOINT }}
- name: Upload server test coverage results
uses: codecov/codecov-action@v5
@@ -150,6 +159,7 @@ jobs:
script: yarn affine @affine-test/affine-cloud-copilot e2e --forbid-only --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
openai-key: ${{ secrets.COPILOT_OPENAI_API_KEY }}
fal-key: ${{ secrets.COPILOT_FAL_API_KEY }}
perplexity-key: ${{ secrets.COPILOT_PERPLEXITY_API_KEY }}
test-done:
needs:
@@ -171,7 +181,7 @@ jobs:
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }}
run: node ./tools/copilot-result/index.js
env:
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
BRANCH_SHA: ${{ github.sha }}
BRANCH_NAME: ${{ github.ref }}
@@ -181,7 +191,7 @@ jobs:
if: ${{ always() && contains(needs.*.result, 'failure') }}
run: node ./tools/copilot-result/index.js
env:
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
BRANCH_SHA: ${{ github.sha }}
BRANCH_NAME: ${{ github.ref }}
@@ -191,7 +201,7 @@ jobs:
if: ${{ always() && contains(needs.*.result, 'cancelled') && !contains(needs.*.result, 'failure') }}
run: node ./tools/copilot-result/index.js
env:
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
BRANCH_SHA: ${{ github.sha }}
BRANCH_NAME: ${{ github.ref }}

View File

@@ -98,7 +98,11 @@ jobs:
CAPTCHA_TURNSTILE_SECRET: ${{ secrets.CAPTCHA_TURNSTILE_SECRET }}
COPILOT_OPENAI_API_KEY: ${{ secrets.COPILOT_OPENAI_API_KEY }}
COPILOT_FAL_API_KEY: ${{ secrets.COPILOT_FAL_API_KEY }}
COPILOT_PERPLEXITY_API_KEY: ${{ secrets.COPILOT_PERPLEXITY_API_KEY }}
COPILOT_UNSPLASH_API_KEY: ${{ secrets.COPILOT_UNSPLASH_API_KEY }}
# used for slack notifications
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
RELEASE_SLACK_CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
METRICS_CUSTOMER_IO_TOKEN: ${{ secrets.METRICS_CUSTOMER_IO_TOKEN }}
MAILER_SENDER: ${{ secrets.OAUTH_EMAIL_SENDER }}
MAILER_USER: ${{ secrets.OAUTH_EMAIL_LOGIN }}
@@ -161,7 +165,7 @@ jobs:
if: ${{ always() && !contains(needs.*.result, 'failure') && !contains(needs.*.result, 'cancelled') }}
run: node ./tools/changelog/index.js
env:
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
CHANNEL_ID: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
DEPLOYED_URL: ${{ steps.set_info.outputs.deployed_url }}
PREV_VERSION: ${{ needs.output-prev-version.outputs.prev }}
@@ -177,7 +181,7 @@ jobs:
method: chat.postMessage
token: ${{ secrets.SLACK_BOT_TOKEN }}
payload: |
channel: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
channel: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
text: "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Backend deploy failed `${{ github.event.inputs.flavor }}`>"
blocks:
- type: section
@@ -192,7 +196,7 @@ jobs:
token: ${{ secrets.SLACK_BOT_TOKEN }}
method: chat.postMessage
payload: |
channel: ${{ secrets.RELEASE_SLACK_CHNNEL_ID }}
channel: ${{ secrets.RELEASE_SLACK_CHANNEL_ID }}
text: "<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|Backend deploy cancelled `${{ github.event.inputs.flavor }}`>"
blocks:
- type: section

View File

@@ -139,7 +139,7 @@ jobs:
enableScripts: false
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: latest-stable
xcode-version: 16.1
- name: Cap sync
run: yarn workspace @affine/ios cap sync
- name: Signing By Apple Developer ID
@@ -149,9 +149,11 @@ jobs:
p12-file-base64: ${{ secrets.CERTIFICATES_P12_MOBILE }}
p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD_MOBILE }}
- name: Setup Rust
uses: ./.github/actions/setup-rust
uses: ./.github/actions/build-rust
with:
targets: 'aarch64-apple-ios'
target: 'aarch64-apple-ios'
package: 'affine_mobile_native'
no-build: 'true'
- name: Build Rust
run: |
brew install swiftformat
@@ -189,15 +191,17 @@ jobs:
uses: ./.github/actions/setup-node
timeout-minutes: 10
with:
extra-flags: workspaces focus @affine/android @affine/playstore-auto-bump
extra-flags: workspaces focus @affine/monorepo @affine-tools/cli @affine/android @affine/playstore-auto-bump
playwright-install: false
electron-install: false
hard-link-nm: false
enableScripts: false
- name: Setup Rust
uses: ./.github/actions/setup-rust
uses: ./.github/actions/build-rust
with:
targets: 'aarch64-linux-android'
target: 'aarch64-linux-android'
package: 'affine_mobile_native'
no-build: 'true'
- name: Cap sync
run: yarn workspace @affine/android cap sync
- uses: actions/setup-python@v5
@@ -216,7 +220,7 @@ jobs:
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
java-version: '21'
cache: 'gradle'
- name: Auto increment version code
id: bump

View File

@@ -11,7 +11,6 @@ on:
jobs:
synchronize-with-crowdin:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
@@ -21,10 +20,11 @@ jobs:
uses: actions/checkout@v4
- name: Crowdin action
id: crowdin
uses: crowdin/github-action@v2
with:
upload_sources: true
upload_translations: true
upload_translations: false
download_translations: true
auto_approve_imported: true
import_eq_suggestions: true
@@ -40,3 +40,33 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
i18n-codegen:
needs: synchronize-with-crowdin
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
ref: l10n_crowdin_translations
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Run i18n codegen
run: yarn affine @affine/i18n build
- name: Commit changes
run: |
git config user.name "github-actions[bot]"
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
git add .
git commit -m "chore(i18n): i18n codegen"
git push origin l10n_crowdin_translations

View File

@@ -15,7 +15,7 @@ jobs:
steps:
- uses: actions/checkout@v4
- name: Publish
uses: cloudflare/wrangler-action@v3.13.0
uses: cloudflare/wrangler-action@v3.13.1
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}

2
.nvmrc
View File

@@ -1 +1 @@
20.18.1
22.13.0

View File

@@ -28,6 +28,7 @@ test-results
# per files
tools/cli/src/webpack/error-handler.js
packages/backend/native/index.d.ts
packages/backend/server/src/__tests__/__snapshots__
packages/frontend/native/index.d.ts
packages/frontend/native/index.js
packages/frontend/graphql/src/graphql/index.ts

View File

@@ -7,7 +7,11 @@
"request": "launch",
"runtimeExecutable": "yarn",
"cwd": "${workspaceFolder}",
"runtimeArgs": ["affine", "@affine/server", "dev"]
"runtimeArgs": [
"affine",
"@affine/server",
"dev"
]
},
{
"name": "Lanuch AFFiNE Web",
@@ -15,7 +19,20 @@
"request": "launch",
"runtimeExecutable": "yarn",
"cwd": "${workspaceFolder}",
"runtimeArgs": ["affine", "@affine/web", "dev"]
"runtimeArgs": [
"affine",
"@affine/web",
"dev"
]
},
{
"type": "chrome",
"request": "launch",
"name": "Debug AFFiNE Web",
"url": "http://localhost:8080",
"sourceMapPathOverrides": {
"webpack://affine/blocksuite/*": "${workspaceFolder}/blocksuite/*"
}
}
]
}
}

View File

@@ -1,8 +1,8 @@
diff --git a/dist/yjs.cjs b/dist/yjs.cjs
index d2dc06ae11a6eb44f8c8445d4298c0e89c3e4da2..a30ab04fa9f3b77666939caa88335c68c40f194c 100644
index 8a343ca9d0a153e95b27ad337e0553a8cc80d5ca..7199cf6e05d9c2c3491e56c4d4bda109e1755563 100644
--- a/dist/yjs.cjs
+++ b/dist/yjs.cjs
@@ -414,7 +414,7 @@ const equalDeleteSets = (ds1, ds2) => {
@@ -416,7 +416,7 @@ const equalDeleteSets = (ds1, ds2) => {
*/
@@ -12,10 +12,10 @@ index d2dc06ae11a6eb44f8c8445d4298c0e89c3e4da2..a30ab04fa9f3b77666939caa88335c68
/**
* @typedef {Object} DocOpts
diff --git a/dist/yjs.mjs b/dist/yjs.mjs
index 20c9e58c32bcb6bc714200a2561fd1f542c49523..14267e5e36d9781ca3810d5b70ff8c051dac779e 100644
index 1c29ce7fe8f146b78911d0af9a53d1b516e86494..220fa0faacf4dc2a787e18f7cc79100e7c516e3a 100644
--- a/dist/yjs.mjs
+++ b/dist/yjs.mjs
@@ -378,7 +378,7 @@ const equalDeleteSets = (ds1, ds2) => {
@@ -379,7 +379,7 @@ const equalDeleteSets = (ds1, ds2) => {
*/
@@ -25,7 +25,7 @@ index 20c9e58c32bcb6bc714200a2561fd1f542c49523..14267e5e36d9781ca3810d5b70ff8c05
/**
* @typedef {Object} DocOpts
diff --git a/src/utils/Doc.js b/src/utils/Doc.js
index 62643617c86e57c64dd9babdb792fa8888357ec0..4df5048ab12af1ae0f1154da67f06dce1fda7b49 100644
index d5165426f2314fc3c2388e64841e7cd6498a92a9..4bb2e5a8b79bb59f08a011af77e69af862312292 100644
--- a/src/utils/Doc.js
+++ b/src/utils/Doc.js
@@ -20,7 +20,7 @@ import * as map from 'lib0/map'

File diff suppressed because one or more lines are too long

View File

@@ -12,4 +12,4 @@ npmPublishAccess: public
npmPublishRegistry: "https://registry.npmjs.org"
yarnPath: .yarn/releases/yarn-4.5.3.cjs
yarnPath: .yarn/releases/yarn-4.6.0.cjs

359
Cargo.lock generated
View File

@@ -37,12 +37,11 @@ dependencies = [
"anyhow",
"base64-simd",
"chrono",
"dashmap",
"homedir",
"objc2",
"objc2-foundation",
"sqlx",
"thiserror 2.0.9",
"thiserror 2.0.11",
"uniffi",
]
@@ -73,6 +72,7 @@ dependencies = [
"napi-build",
"napi-derive",
"sqlx",
"thiserror 2.0.11",
"tokio",
"uniffi",
]
@@ -273,6 +273,19 @@ dependencies = [
"nom",
]
[[package]]
name = "async-compat"
version = "0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bab94bde396a3f7b4962e396fdad640e241ed797d4d8d77fc8c237d14c58fc0"
dependencies = [
"futures-core",
"futures-io",
"once_cell",
"pin-project-lite",
"tokio",
]
[[package]]
name = "async-lock"
version = "3.4.0"
@@ -378,9 +391,9 @@ checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
[[package]]
name = "bitflags"
version = "2.6.0"
version = "2.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
checksum = "1be3f42a67d6d345ecd59f675f3f012d6974981560836e938c22b424b85ce1be"
dependencies = [
"serde",
]
@@ -432,9 +445,9 @@ checksum = "50fd5174866dc2fa2ddc96e8fb800852d37f064f32a45c7b7c2f8fa2c64c77fa"
[[package]]
name = "bstr"
version = "1.11.1"
version = "1.11.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "786a307d683a5bf92e6fd5fd69a7eb613751668d1d8d67d802846dfe367c62c8"
checksum = "531a9155a481e2ee699d4f98f43c0ca4ff8ee1bfd55c31e9e98fb29d2b176fe0"
dependencies = [
"memchr",
"regex-automata 0.4.9",
@@ -499,9 +512,9 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5"
[[package]]
name = "cc"
version = "1.2.5"
version = "1.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c31a0499c1dc64f458ad13872de75c0eb7e3fdb0e67964610c914b034fc5956e"
checksum = "ad0cf6e91fde44c773c6ee7ec6bba798504641a8bc2eb7e37a04ffbf4dfaa55a"
dependencies = [
"shlex",
]
@@ -561,9 +574,9 @@ dependencies = [
[[package]]
name = "clap"
version = "4.5.23"
version = "4.5.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3135e7ec2ef7b10c6ed8950f0f792ed96ee093fa088608f1c76e569722700c84"
checksum = "a8eb5e908ef3a6efbe1ed62520fb7287959888c88485abe072543190ecc66783"
dependencies = [
"clap_builder",
"clap_derive",
@@ -571,9 +584,9 @@ dependencies = [
[[package]]
name = "clap_builder"
version = "4.5.23"
version = "4.5.26"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "30582fc632330df2bd26877bde0c1f4470d57c582bbc070376afcd04d8cb4838"
checksum = "96b01801b5fc6a0a232407abc821660c9c6d25a1cafc0d4f85f29fb8d9afc121"
dependencies = [
"anstream",
"anstyle",
@@ -583,9 +596,9 @@ dependencies = [
[[package]]
name = "clap_derive"
version = "4.5.18"
version = "4.5.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ac6a0c7b1a9e9a5186361f67dfa1b88213572f427fb9ab038efb2bd8c582dab"
checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c"
dependencies = [
"heck",
"proc-macro2",
@@ -623,9 +636,9 @@ checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
[[package]]
name = "convert_case"
version = "0.6.0"
version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca"
checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7"
dependencies = [
"unicode-segmentation",
]
@@ -817,6 +830,16 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
[[package]]
name = "erased-serde"
version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24e2389d65ab4fab27dc2a5de7b191e1f6617d1f1c8855c0dc569c94a4cbb18d"
dependencies = [
"serde",
"typeid",
]
[[package]]
name = "errno"
version = "0.3.10"
@@ -840,9 +863,9 @@ dependencies = [
[[package]]
name = "event-listener"
version = "5.3.1"
version = "5.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6032be9bd27023a771701cc49f9f053c751055f71efb2e0ae5c15809093675ba"
checksum = "3492acde4c3fc54c845eaab3eed8bd00c7a7d881f78bfc801e43a93dec1331ae"
dependencies = [
"concurrent-queue",
"loom",
@@ -894,6 +917,12 @@ dependencies = [
"spin",
]
[[package]]
name = "foldhash"
version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0d2fde1f7b3d48b8395d5f2de76c18a528bd6a9cdde438df747bfcba3e05d6f"
[[package]]
name = "form_urlencoded"
version = "1.2.1"
@@ -1032,9 +1061,9 @@ checksum = "07e28edb80900c19c28f1072f2e8aeca7fa06b23cd4169cefe1af5aa3260783f"
[[package]]
name = "glob"
version = "0.3.1"
version = "0.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
checksum = "a8d1add55171497b4705a648c6b583acafb01d58050a51727785f0b2c8e0a2b2"
[[package]]
name = "goblin"
@@ -1072,14 +1101,19 @@ name = "hashbrown"
version = "0.15.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bf151400ff0baff5465007dd2f3e717f3fe502074ca563069ce3a6629d07b289"
dependencies = [
"allocator-api2",
"equivalent",
"foldhash",
]
[[package]]
name = "hashlink"
version = "0.9.1"
version = "0.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6ba4ff7128dee98c7dc9794b6a411377e1404dba1c97deb8d1a55297bd25d8af"
checksum = "7382cf6263419f2d8df38c55d7da83da5c18aef87fc7a7fc1fb1e344edfe14c1"
dependencies = [
"hashbrown 0.14.5",
"hashbrown 0.15.2",
]
[[package]]
@@ -1368,7 +1402,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fc2f4eb4bc735547cfed7c0a4922cbd04a4655978c09b54f1f7b228750664c34"
dependencies = [
"cfg-if",
"windows-targets 0.52.6",
"windows-targets 0.48.5",
]
[[package]]
@@ -1400,9 +1434,9 @@ dependencies = [
[[package]]
name = "linux-raw-sys"
version = "0.4.14"
version = "0.4.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "78b3ae25bc7c8c38cec158d1f2757ee79e9b3740fbc7ccf0e59e4b08d793fa89"
checksum = "d26c52dbd32dccf2d10cac7725f8eae5296885fb5703b261f7d0a0739ec807ab"
[[package]]
name = "litemap"
@@ -1422,9 +1456,12 @@ dependencies = [
[[package]]
name = "log"
version = "0.4.22"
version = "0.4.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a7a70ba024b9dc04c27ea2f0c0548feb474ec5c54bba33a7f72f873a39d07b24"
checksum = "3d6ea2a48c204030ee31a7d7fc72c93294c92fe87ecb1789881c9543516e1a0d"
dependencies = [
"value-bag",
]
[[package]]
name = "loom"
@@ -1528,9 +1565,9 @@ dependencies = [
[[package]]
name = "napi"
version = "3.0.0-alpha.24"
version = "3.0.0-alpha.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5de0beff58a431b3bd6568b690bcf55d72d8dd7f8e0e613a0193a8a9a8eef26b"
checksum = "023afffe908293dd644255348d78502d748e28dab7a329aa72edce1c5ac8be81"
dependencies = [
"anyhow",
"bitflags",
@@ -1550,9 +1587,9 @@ checksum = "db836caddef23662b94e16bf1f26c40eceb09d6aee5d5b06a7ac199320b69b19"
[[package]]
name = "napi-derive"
version = "3.0.0-alpha.22"
version = "3.0.0-alpha.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81f5e3b98fb51282253a2fa9903ae62273c68d89d6f8f304876de30354e86e1e"
checksum = "78f3ea213909cb28cdc98badd3d792ae6aeffd76faf11c53a0e6a74a71340204"
dependencies = [
"convert_case",
"napi-derive-backend",
@@ -1563,9 +1600,9 @@ dependencies = [
[[package]]
name = "napi-derive-backend"
version = "2.0.0-alpha.22"
version = "2.0.0-alpha.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a986ad1072af191e8e1e10a170644025f5b2ee28f2148f3acda818210960cc1a"
checksum = "ba940671bae74ad90bce07984d06e7284989e4f72ac7deca9eb3c78cd318d215"
dependencies = [
"convert_case",
"proc-macro2",
@@ -1794,9 +1831,9 @@ checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]]
name = "pin-project-lite"
version = "0.2.15"
version = "0.2.16"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "915a1e146535de9163f3987b8944ed8cf49a18bb0056bcebcdcece385cece4ff"
checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b"
[[package]]
name = "pin-utils"
@@ -1857,9 +1894,9 @@ dependencies = [
[[package]]
name = "quote"
version = "1.0.37"
version = "1.0.38"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b5b9d34b8991d19d98081b46eacdd8eb58c6f2b201139f7c5f643cc155a633af"
checksum = "0e4dccaaaf89514f546c693ddc140f729f958c247918a13380cccc6078391acc"
dependencies = [
"proc-macro2",
]
@@ -2032,9 +2069,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
[[package]]
name = "rustix"
version = "0.38.42"
version = "0.38.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f93dc38ecbab2eb790ff964bb77fa94faf256fd3e73285fd7ba0903b76bedb85"
checksum = "a78891ee6bf2340288408954ac787aa063d8e8817e9f53abb37c695c6d834ef6"
dependencies = [
"bitflags",
"errno",
@@ -2045,9 +2082,9 @@ dependencies = [
[[package]]
name = "rustls"
version = "0.23.20"
version = "0.23.21"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5065c3f250cbd332cd894be57c40fa52387247659b14a2d6041d121547903b1b"
checksum = "8f287924602bf649d949c63dc8ac8b235fa5387d394020705b80c4eb597ce5b8"
dependencies = [
"once_cell",
"ring",
@@ -2085,9 +2122,9 @@ dependencies = [
[[package]]
name = "rustversion"
version = "1.0.18"
version = "1.0.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e819f2bc632f285be6d7cd36e25940d45b2391dd6d9b939e79de557f7014248"
checksum = "f7c45b9784283f1b2e7fb61b42047c2fd678ef0960d4f6f1eba131594cc369d4"
[[package]]
name = "ryu"
@@ -2147,18 +2184,18 @@ dependencies = [
[[package]]
name = "serde"
version = "1.0.216"
version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0b9781016e935a97e8beecf0c933758c97a5520d32930e460142b4cd80c6338e"
checksum = "02fc4265df13d6fa1d00ecff087228cc0a2b5f3c0e87e258d8b94a156e984c70"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
version = "1.0.216"
version = "1.0.217"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46f859dbbf73865c6627ed570e78961cd3ac92407a2d117204c49232485da55e"
checksum = "5a9bf7cf98d04a2b28aead066b7496853d4779c9cc183c440dbac457641e19a0"
dependencies = [
"proc-macro2",
"quote",
@@ -2166,10 +2203,19 @@ dependencies = [
]
[[package]]
name = "serde_json"
version = "1.0.134"
name = "serde_fmt"
version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d00f4175c42ee48b15416f6193a959ba3a0d67fc699a0db9ad12df9f83991c7d"
checksum = "e1d4ddca14104cd60529e8c7f7ba71a2c8acd8f7f5cfcdc2faf97eeb7c3010a4"
dependencies = [
"serde",
]
[[package]]
name = "serde_json"
version = "1.0.137"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "930cfb6e6abf99298aaad7d29abbef7a9999a9a8806a40088f55f0dcec03146b"
dependencies = [
"itoa",
"memchr",
@@ -2324,21 +2370,11 @@ dependencies = [
"der",
]
[[package]]
name = "sqlformat"
version = "0.2.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7bba3a93db0cc4f7bdece8bb09e77e2e785c20bfebf79eb8340ed80708048790"
dependencies = [
"nom",
"unicode_categories",
]
[[package]]
name = "sqlx"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "93334716a037193fac19df402f8571269c84a00852f6a7066b5d2616dcd64d3e"
checksum = "4410e73b3c0d8442c5f99b425d7a435b5ee0ae4167b3196771dd3f7a01be745f"
dependencies = [
"sqlx-core",
"sqlx-macros",
@@ -2349,31 +2385,26 @@ dependencies = [
[[package]]
name = "sqlx-core"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d4d8060b456358185f7d50c55d9b5066ad956956fddec42ee2e8567134a8936e"
checksum = "6a007b6936676aa9ab40207cde35daab0a04b823be8ae004368c0793b96a61e0"
dependencies = [
"atoi",
"byteorder",
"bytes",
"chrono",
"crc",
"crossbeam-queue",
"either",
"event-listener",
"futures-channel",
"futures-core",
"futures-intrusive",
"futures-io",
"futures-util",
"hashbrown 0.14.5",
"hashbrown 0.15.2",
"hashlink",
"hex",
"indexmap",
"log",
"memchr",
"once_cell",
"paste",
"percent-encoding",
"rustls",
"rustls-pemfile",
@@ -2381,8 +2412,7 @@ dependencies = [
"serde_json",
"sha2",
"smallvec",
"sqlformat",
"thiserror 1.0.69",
"thiserror 2.0.11",
"tokio",
"tokio-stream",
"tracing",
@@ -2392,9 +2422,9 @@ dependencies = [
[[package]]
name = "sqlx-macros"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cac0692bcc9de3b073e8d747391827297e075c7710ff6276d9f7a1f3d58c6657"
checksum = "3112e2ad78643fef903618d78cf0aec1cb3134b019730edb039b69eaf531f310"
dependencies = [
"proc-macro2",
"quote",
@@ -2405,9 +2435,9 @@ dependencies = [
[[package]]
name = "sqlx-macros-core"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1804e8a7c7865599c9c79be146dc8a9fd8cc86935fa641d3ea58e5f0688abaa5"
checksum = "4e9f90acc5ab146a99bf5061a7eb4976b573f560bc898ef3bf8435448dd5e7ad"
dependencies = [
"dotenvy",
"either",
@@ -2431,9 +2461,9 @@ dependencies = [
[[package]]
name = "sqlx-mysql"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "64bb4714269afa44aef2755150a0fc19d756fb580a67db8885608cf02f47d06a"
checksum = "4560278f0e00ce64938540546f59f590d60beee33fffbd3b9cd47851e5fff233"
dependencies = [
"atoi",
"base64 0.22.1",
@@ -2467,16 +2497,16 @@ dependencies = [
"smallvec",
"sqlx-core",
"stringprep",
"thiserror 1.0.69",
"thiserror 2.0.11",
"tracing",
"whoami",
]
[[package]]
name = "sqlx-postgres"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6fa91a732d854c5d7726349bb4bb879bb9478993ceb764247660aee25f67c2f8"
checksum = "c5b98a57f363ed6764d5b3a12bfedf62f07aa16e1856a7ddc2a0bb190a959613"
dependencies = [
"atoi",
"base64 0.22.1",
@@ -2488,7 +2518,6 @@ dependencies = [
"etcetera",
"futures-channel",
"futures-core",
"futures-io",
"futures-util",
"hex",
"hkdf",
@@ -2506,16 +2535,16 @@ dependencies = [
"smallvec",
"sqlx-core",
"stringprep",
"thiserror 1.0.69",
"thiserror 2.0.11",
"tracing",
"whoami",
]
[[package]]
name = "sqlx-sqlite"
version = "0.8.2"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5b2cf34a45953bfd3daaf3db0f7a7878ab9b7a6b91b422d24a7a9e4c857b680"
checksum = "f85ca71d3a5b24e64e1d08dd8fe36c6c95c339a896cc33068148906784620540"
dependencies = [
"atoi",
"chrono",
@@ -2571,10 +2600,88 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "syn"
version = "2.0.91"
name = "sval"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d53cbcb5a243bd33b7858b1d7f4aca2153490815872d86d955d6ea29f743c035"
checksum = "f6dc0f9830c49db20e73273ffae9b5240f63c42e515af1da1fceefb69fceafd8"
[[package]]
name = "sval_buffer"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "429922f7ad43c0ef8fd7309e14d750e38899e32eb7e8da656ea169dd28ee212f"
dependencies = [
"sval",
"sval_ref",
]
[[package]]
name = "sval_dynamic"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "68f16ff5d839396c11a30019b659b0976348f3803db0626f736764c473b50ff4"
dependencies = [
"sval",
]
[[package]]
name = "sval_fmt"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c01c27a80b6151b0557f9ccbe89c11db571dc5f68113690c1e028d7e974bae94"
dependencies = [
"itoa",
"ryu",
"sval",
]
[[package]]
name = "sval_json"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0deef63c70da622b2a8069d8600cf4b05396459e665862e7bdb290fd6cf3f155"
dependencies = [
"itoa",
"ryu",
"sval",
]
[[package]]
name = "sval_nested"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a39ce5976ae1feb814c35d290cf7cf8cd4f045782fe1548d6bc32e21f6156e9f"
dependencies = [
"sval",
"sval_buffer",
"sval_ref",
]
[[package]]
name = "sval_ref"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb7c6ee3751795a728bc9316a092023529ffea1783499afbc5c66f5fabebb1fa"
dependencies = [
"sval",
]
[[package]]
name = "sval_serde"
version = "2.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2a5572d0321b68109a343634e3a5d576bf131b82180c6c442dee06349dfc652a"
dependencies = [
"serde",
"sval",
"sval_nested",
]
[[package]]
name = "syn"
version = "2.0.96"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d5d0adab1ae378d7f53bdebc67a39f1f151407ef230f0ce2883572f5d8985c80"
dependencies = [
"proc-macro2",
"quote",
@@ -2600,12 +2707,13 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369"
[[package]]
name = "tempfile"
version = "3.14.0"
version = "3.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "28cce251fcbc87fac86a866eeb0d6c2d536fc16d06f184bb61aeae11aa4cee0c"
checksum = "9a8a559c81686f576e8cd0290cd2a24a2a9ad80c98b3478856500fcbd7acd704"
dependencies = [
"cfg-if",
"fastrand",
"getrandom",
"once_cell",
"rustix",
"windows-sys 0.59.0",
@@ -2631,11 +2739,11 @@ dependencies = [
[[package]]
name = "thiserror"
version = "2.0.9"
version = "2.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f072643fd0190df67a8bab670c20ef5d8737177d6ac6b2e9a236cb096206b2cc"
checksum = "d452f284b73e6d76dd36758a0c8684b1d5be31f92b89d07fd5822175732206fc"
dependencies = [
"thiserror-impl 2.0.9",
"thiserror-impl 2.0.11",
]
[[package]]
@@ -2651,9 +2759,9 @@ dependencies = [
[[package]]
name = "thiserror-impl"
version = "2.0.9"
version = "2.0.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7b50fa271071aae2e6ee85f842e2e28ba8cd2c5fb67f11fcb1fd70b276f9e7d4"
checksum = "26afc1baea8a989337eeb52b6e72a039780ce45c3edfcc9c5b9d112feeb173c2"
dependencies = [
"proc-macro2",
"quote",
@@ -2713,9 +2821,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.42.0"
version = "1.43.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5cec9b21b0450273377fc97bd4c33a8acffc8c996c987a7c5b319a0083707551"
checksum = "3d61fa4ffa3de412bfea335c6ecff681de2b609ba3c77ef3e00e521813a9ed9e"
dependencies = [
"backtrace",
"bytes",
@@ -2731,9 +2839,9 @@ dependencies = [
[[package]]
name = "tokio-macros"
version = "2.4.0"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "693d596312e88961bc67d7f1f97af8a70227d9f90c31bba5806eec004978d752"
checksum = "6e06d43f1345a3bcd39f6a56dbb7dcab2ba47e68e8ac134855e7e2bdbaf8cab8"
dependencies = [
"proc-macro2",
"quote",
@@ -2822,6 +2930,12 @@ dependencies = [
"tracing-log",
]
[[package]]
name = "typeid"
version = "1.0.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0e13db2e0ccd5e14a544e8a246ba2312cd25223f616442d7f2cb0e3db614236e"
[[package]]
name = "typenum"
version = "1.17.0"
@@ -2867,12 +2981,6 @@ version = "1.12.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493"
[[package]]
name = "unicode_categories"
version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39ec24b3121d976906ece63c9daad25b85969647682eee313cb5779fdd69e14e"
[[package]]
name = "uniffi"
version = "0.28.3"
@@ -2940,6 +3048,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bc7687007d2546c454d8ae609b105daceb88175477dac280707ad6d95bcd6f1f"
dependencies = [
"anyhow",
"async-compat",
"bytes",
"log",
"once_cell",
@@ -3050,6 +3159,42 @@ version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
[[package]]
name = "value-bag"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3ef4c4aa54d5d05a279399bfa921ec387b7aba77caf7a682ae8d86785b8fdad2"
dependencies = [
"value-bag-serde1",
"value-bag-sval2",
]
[[package]]
name = "value-bag-serde1"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4bb773bd36fd59c7ca6e336c94454d9c66386416734817927ac93d81cb3c5b0b"
dependencies = [
"erased-serde",
"serde",
"serde_fmt",
]
[[package]]
name = "value-bag-sval2"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53a916a702cac43a88694c97657d449775667bcd14b70419441d05b7fea4a83a"
dependencies = [
"sval",
"sval_buffer",
"sval_dynamic",
"sval_fmt",
"sval_json",
"sval_ref",
"sval_serde",
]
[[package]]
name = "vcpkg"
version = "0.2.15"
@@ -3526,7 +3671,7 @@ dependencies = [
"serde",
"serde_json",
"smol_str",
"thiserror 2.0.9",
"thiserror 2.0.11",
]
[[package]]

View File

@@ -17,14 +17,13 @@ anyhow = "1"
base64-simd = "0.8"
chrono = "0.4"
criterion2 = { version = "2", default-features = false }
dashmap = "6"
dotenvy = "0.15"
file-format = { version = "0.26", features = ["reader"] }
mimalloc = "0.1"
napi = { version = "3.0.0-alpha.12", features = ["async", "chrono_date", "error_anyhow", "napi9", "serde"] }
napi-build = { version = "2" }
napi-derive = { version = "3.0.0-alpha.12" }
notify = { version = "7", features = ["serde"] }
notify = { version = "8", features = ["serde"] }
objc2 = "0.5.2"
objc2-foundation = "0.2.2"
once_cell = "1"

View File

@@ -127,6 +127,8 @@ AFFiNE now provides pre-built [templates](https://affine.pro/templates) from our
Welcome to the AFFiNE blog section! Here, youll find the latest insights, tips, and guides on how to maximize your experience with AFFiNE and AFFiNE AI, the leading Canvas AI tool for flexible note-taking and creative organization.
- [vision board template](https://affine.pro/blog/8-free-printable-vision-board-templates-examples-2023)
- [ai homework helper](https://affine.pro/blog/ai-homework-helper)
- [vision board maker](https://affine.pro/blog/vision-board-maker)
- [itinerary template](https://affine.pro/blog/free-customized-travel-itinerary-planner-templates)
- [one pager template](https://affine.pro/blog/top-12-one-pager-examples-how-to-create-your-own)
- [cornell notes template](https://affine.pro/blog/the-cornell-notes-template-and-system-learning-tips)

View File

@@ -18,7 +18,8 @@
"@blocksuite/global": "workspace:*",
"@blocksuite/inline": "workspace:*",
"@blocksuite/presets": "workspace:*",
"@blocksuite/store": "workspace:*"
"@blocksuite/store": "workspace:*",
"@blocksuite/sync": "workspace:*"
},
"exports": {
".": "./src/index.ts",
@@ -32,12 +33,14 @@
"./global/di": "./src/global/di.ts",
"./global/types": "./src/global/types.ts",
"./store": "./src/store/index.ts",
"./store/test": "./src/store/test.ts",
"./inline": "./src/inline/index.ts",
"./inline/consts": "./src/inline/consts.ts",
"./inline/types": "./src/inline/types.ts",
"./presets": "./src/presets/index.ts",
"./blocks": "./src/blocks/index.ts",
"./blocks/schemas": "./src/blocks/schemas.ts"
"./blocks/schemas": "./src/blocks/schemas.ts",
"./sync": "./src/sync/index.ts"
},
"typesVersions": {
"*": {
@@ -88,6 +91,9 @@
],
"blocks/schemas": [
"dist/blocks/schemas.d.ts"
],
"sync": [
"dist/sync/index.d.ts"
]
}
},
@@ -96,5 +102,6 @@
"dist",
"!src/__tests__",
"!dist/__tests__"
]
],
"version": "0.19.0"
}

View File

@@ -1,5 +1,3 @@
/* eslint-disable @typescript-eslint/no-restricted-imports */
// oxlint-disable-next-line
// @ts-ignore FIXME: typecheck error
export * from '@blocksuite/store';

View File

@@ -0,0 +1,6 @@
export {
createAutoIncrementIdGenerator,
TestDoc,
TestMeta,
TestWorkspace,
} from '@blocksuite/store/test';

View File

@@ -0,0 +1 @@
export * from '@blocksuite/sync';

View File

@@ -1,29 +1,18 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src/",
"outDir": "./dist/",
"noEmit": false
"rootDir": "./src",
"outDir": "./dist",
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../../framework/global"
},
{
"path": "../../framework/store"
},
{
"path": "../../framework/block-std"
},
{
"path": "../../framework/inline"
},
{
"path": "../../blocks"
},
{
"path": "../../presets"
}
{ "path": "../../framework/block-std" },
{ "path": "../../blocks" },
{ "path": "../../framework/global" },
{ "path": "../../framework/inline" },
{ "path": "../../presets" },
{ "path": "../../framework/store" },
{ "path": "../../framework/sync" }
]
}

View File

@@ -1,30 +0,0 @@
import { defineConfig } from 'vitest/config';
export default defineConfig({
esbuild: {
target: 'es2018',
},
test: {
globalSetup: '../../../scripts/vitest-global.js',
include: ['src/__tests__/**/*.unit.spec.ts'],
testTimeout: 1000,
coverage: {
provider: 'istanbul', // or 'c8'
reporter: ['lcov'],
reportsDirectory: '../../../.coverage/affine',
},
/**
* Custom handler for console.log in tests.
*
* Return `false` to ignore the log.
*/
onConsoleLog(log, type) {
if (log.includes('https://lit.dev/msg/dev-mode')) {
return false;
}
console.warn(`Unexpected ${type} log`, log);
throw new Error(log);
},
environment: 'happy-dom',
},
});

View File

@@ -20,14 +20,14 @@
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/block-std": "workspace:*",
"@blocksuite/global": "workspace:*",
"@blocksuite/icons": "^2.1.75",
"@blocksuite/icons": "^2.2.1",
"@blocksuite/inline": "workspace:*",
"@blocksuite/store": "workspace:*",
"@floating-ui/dom": "^1.6.10",
"@lit/context": "^1.1.2",
"@preact/signals-core": "^1.8.0",
"@toeverything/theme": "^1.1.1",
"file-type": "^19.5.0",
"@toeverything/theme": "^1.1.7",
"file-type": "^20.0.0",
"lit": "^3.2.0",
"minimatch": "^10.0.1",
"zod": "^3.23.8"
@@ -41,5 +41,6 @@
"dist",
"!src/__tests__",
"!dist/__tests__"
]
],
"version": "0.19.0"
}

View File

@@ -13,6 +13,11 @@ import {
} from '@blocksuite/affine-model';
import { ThemeProvider } from '@blocksuite/affine-shared/services';
import { humanFileSize } from '@blocksuite/affine-shared/utils';
import {
BlockSelection,
SurfaceSelection,
TextSelection,
} from '@blocksuite/block-std';
import { Slice } from '@blocksuite/store';
import { flip, offset } from '@floating-ui/dom';
import { html, nothing } from 'lit';
@@ -44,7 +49,7 @@ export class AttachmentBlockComponent extends CaptionedBlockComponent<
this,
({ abortController }) => {
const selection = this.host.selection;
const textSelection = selection.find('text');
const textSelection = selection.find(TextSelection);
if (
!!textSelection &&
(!!textSelection.to || !!textSelection.from.length)
@@ -52,7 +57,7 @@ export class AttachmentBlockComponent extends CaptionedBlockComponent<
return null;
}
const blockSelections = selection.filter('block');
const blockSelections = selection.filter(BlockSelection);
if (
blockSelections.length > 1 ||
(blockSelections.length === 1 &&
@@ -126,7 +131,7 @@ export class AttachmentBlockComponent extends CaptionedBlockComponent<
private _selectBlock() {
const selectionManager = this.host.selection;
const blockSelection = selectionManager.create('block', {
const blockSelection = selectionManager.create(BlockSelection, {
blockId: this.blockId,
});
selectionManager.setGroup('note', [blockSelection]);
@@ -167,7 +172,8 @@ export class AttachmentBlockComponent extends CaptionedBlockComponent<
this.disposables.add(
this.std.selection.slots.changed.on(() => {
this._isSelected =
!!this.selected?.is('block') || !!this.selected?.is('surface');
!!this.selected?.is(BlockSelection) ||
!!this.selected?.is(SurfaceSelection);
this._showOverlay =
this._isResizing || this._isDragging || !this._isSelected;
@@ -228,7 +234,6 @@ export class AttachmentBlockComponent extends CaptionedBlockComponent<
<div
${this._whenHover ? ref(this._whenHover.setReference) : nothing}
class="affine-attachment-container"
draggable="${this.blockDraggable ? 'true' : 'false'}"
style=${this.containerStyleMap}
>
${embedView

View File

@@ -21,25 +21,21 @@ export class AttachmentBlockService extends BlockService {
export const AttachmentDropOption = FileDropConfigExtension({
flavour: AttachmentBlockSchema.model.flavour,
onDrop: ({ files, targetModel, place, point, std }) => {
onDrop: ({ files, targetModel, placement, point, std }) => {
// generic attachment block for all files except images
const attachmentFiles = files.filter(
file => !file.type.startsWith('image/')
);
if (!attachmentFiles.length) return false;
if (
targetModel &&
!matchFlavours(targetModel, ['affine:surface' as BlockSuite.Flavour])
) {
if (targetModel && !matchFlavours(targetModel, ['affine:surface'])) {
addSiblingAttachmentBlocks(
std.host,
attachmentFiles,
// TODO: use max file size from service
maxFileSize,
targetModel,
place
placement
).catch(console.error);
return true;

View File

@@ -1,8 +1,5 @@
import {
BlockViewExtension,
type ExtensionType,
FlavourExtension,
} from '@blocksuite/block-std';
import { BlockViewExtension, FlavourExtension } from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { literal } from 'lit/static-html.js';
import { AttachmentBlockNotionHtmlAdapterExtension } from './adapters/notion-html.js';

View File

@@ -6,10 +6,10 @@ import {
transformModel,
withTempBlobData,
} from '@blocksuite/affine-shared/utils';
import type { ExtensionType } from '@blocksuite/block-std';
import { Extension } from '@blocksuite/block-std';
import type { Container } from '@blocksuite/global/di';
import { createIdentifier } from '@blocksuite/global/di';
import type { ExtensionType } from '@blocksuite/store';
import { Extension } from '@blocksuite/store';
import type { TemplateResult } from 'lit';
import { html } from 'lit';

View File

@@ -1,3 +1,7 @@
import type * as SurfaceEffects from '@blocksuite/affine-block-surface/effects';
declare type _GLOBAL_ = typeof SurfaceEffects;
export * from './adapters/notion-html';
export * from './attachment-block';
export * from './attachment-service';

View File

@@ -303,7 +303,7 @@ export async function addAttachments(
EMBED_CARD_WIDTH.cubeThick,
EMBED_CARD_HEIGHT.cubeThick
);
const blockId = std.doc.addBlock(
const blockId = std.store.addBlock(
'affine:attachment',
{
name: file.name,

View File

@@ -1,38 +1,20 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src/",
"outDir": "./dist/",
"noEmit": false
"rootDir": "./src",
"outDir": "./dist",
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../../framework/global"
},
{
"path": "../../framework/store"
},
{
"path": "../../framework/block-std"
},
{
"path": "../../framework/inline"
},
{
"path": "../model"
},
{
"path": "../components"
},
{
"path": "../shared"
},
{
"path": "../block-embed"
},
{
"path": "../block-surface"
}
{ "path": "../block-embed" },
{ "path": "../block-surface" },
{ "path": "../components" },
{ "path": "../model" },
{ "path": "../shared" },
{ "path": "../../framework/block-std" },
{ "path": "../../framework/global" },
{ "path": "../../framework/inline" },
{ "path": "../../framework/store" }
]
}

View File

@@ -14,18 +14,19 @@
"license": "MIT",
"dependencies": {
"@blocksuite/affine-block-embed": "workspace:*",
"@blocksuite/affine-block-surface": "workspace:*",
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-model": "workspace:*",
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/block-std": "workspace:*",
"@blocksuite/global": "workspace:*",
"@blocksuite/icons": "^2.1.75",
"@blocksuite/icons": "^2.2.1",
"@blocksuite/inline": "workspace:*",
"@blocksuite/store": "workspace:*",
"@floating-ui/dom": "^1.6.10",
"@lit/context": "^1.1.2",
"@preact/signals-core": "^1.8.0",
"@toeverything/theme": "^1.1.1",
"@toeverything/theme": "^1.1.7",
"lit": "^3.2.0",
"minimatch": "^10.0.1",
"zod": "^3.23.8"
@@ -39,5 +40,6 @@
"dist",
"!src/__tests__",
"!dist/__tests__"
]
],
"version": "0.19.0"
}

View File

@@ -1,4 +1,4 @@
import type { ExtensionType } from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { BookmarkBlockHtmlAdapterExtension } from './html.js';
import { BookmarkBlockMarkdownAdapterExtension } from './markdown.js';

View File

@@ -4,20 +4,17 @@ import {
} from '@blocksuite/affine-components/caption';
import type { BookmarkBlockModel } from '@blocksuite/affine-model';
import { DocModeProvider } from '@blocksuite/affine-shared/services';
import { BlockSelection } from '@blocksuite/block-std';
import { html } from 'lit';
import { property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { type StyleInfo, styleMap } from 'lit/directives/style-map.js';
import type { BookmarkBlockService } from './bookmark-service.js';
import { refreshBookmarkUrlData } from './utils.js';
export const BOOKMARK_MIN_WIDTH = 450;
export class BookmarkBlockComponent extends CaptionedBlockComponent<
BookmarkBlockModel,
BookmarkBlockService
> {
export class BookmarkBlockComponent extends CaptionedBlockComponent<BookmarkBlockModel> {
private _fetchAbortController?: AbortController;
blockDraggable = true;
@@ -73,7 +70,7 @@ export class BookmarkBlockComponent extends CaptionedBlockComponent<
}
override renderBlock() {
const selected = !!this.selected?.is('block');
const selected = !!this.selected?.is(BlockSelection);
return html`
<div
draggable="${this.blockDraggable ? 'true' : 'false'}"

View File

@@ -1,16 +0,0 @@
import { LinkPreviewer } from '@blocksuite/affine-block-embed';
import { BookmarkBlockSchema } from '@blocksuite/affine-model';
import { BlockService } from '@blocksuite/block-std';
export class BookmarkBlockService extends BlockService {
static override readonly flavour = BookmarkBlockSchema.model.flavour;
private static readonly linkPreviewer = new LinkPreviewer();
static setLinkPreviewEndpoint =
BookmarkBlockService.linkPreviewer.setEndpoint;
queryUrlData = (url: string, signal?: AbortSignal) => {
return BookmarkBlockService.linkPreviewer.query(url, signal);
};
}

View File

@@ -1,18 +1,16 @@
import {
BlockViewExtension,
CommandExtension,
type ExtensionType,
FlavourExtension,
} from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { literal } from 'lit/static-html.js';
import { BookmarkBlockAdapterExtensions } from './adapters/extension.js';
import { BookmarkBlockService } from './bookmark-service.js';
import { commands } from './commands/index.js';
export const BookmarkBlockSpec: ExtensionType[] = [
FlavourExtension('affine:bookmark'),
BookmarkBlockService,
CommandExtension(commands),
BlockViewExtension('affine:bookmark', model => {
return model.parent?.flavour === 'affine:surface'

View File

@@ -2,7 +2,11 @@ import { getEmbedCardIcons } from '@blocksuite/affine-block-embed';
import { WebIcon16 } from '@blocksuite/affine-components/icons';
import { ThemeProvider } from '@blocksuite/affine-shared/services';
import { getHostName } from '@blocksuite/affine-shared/utils';
import { ShadowlessElement } from '@blocksuite/block-std';
import {
BlockSelection,
ShadowlessElement,
SurfaceSelection,
} from '@blocksuite/block-std';
import { WithDisposable } from '@blocksuite/global/utils';
import { OpenInNewIcon } from '@blocksuite/icons/lit';
import { html } from 'lit';
@@ -31,7 +35,7 @@ export class BookmarkCard extends WithDisposable(ShadowlessElement) {
private _selectBlock() {
const selectionManager = this.bookmark.host.selection;
const blockSelection = selectionManager.create('block', {
const blockSelection = selectionManager.create(BlockSelection, {
blockId: this.bookmark.blockId,
});
selectionManager.setGroup('note', [blockSelection]);
@@ -55,8 +59,8 @@ export class BookmarkCard extends WithDisposable(ShadowlessElement) {
this.disposables.add(
this.bookmark.selection.slots.changed.on(() => {
this._isSelected =
!!this.bookmark.selected?.is('block') ||
!!this.bookmark.selected?.is('surface');
!!this.bookmark.selected?.is(BlockSelection) ||
!!this.bookmark.selected?.is(SurfaceSelection);
})
);
}

View File

@@ -1,3 +1,4 @@
import { stopPropagation } from '@blocksuite/affine-shared/utils';
import { type BlockComponent, ShadowlessElement } from '@blocksuite/block-std';
import { WithDisposable } from '@blocksuite/global/utils';
import type { BlockModel } from '@blocksuite/store';
@@ -48,6 +49,9 @@ export class EmbedCardEditCaptionEditModal extends WithDisposable(
.catch(console.error);
this.disposables.addFromEvent(this, 'keydown', this._onKeydown);
this.disposables.addFromEvent(this, 'cup', stopPropagation);
this.disposables.addFromEvent(this, 'copy', stopPropagation);
this.disposables.addFromEvent(this, 'paste', stopPropagation);
}
override render() {

View File

@@ -6,6 +6,7 @@ import {
EMBED_CARD_WIDTH,
} from '@blocksuite/affine-shared/consts';
import { EmbedOptionProvider } from '@blocksuite/affine-shared/services';
import { isValidUrl, stopPropagation } from '@blocksuite/affine-shared/utils';
import type { EditorHost } from '@blocksuite/block-std';
import { ShadowlessElement } from '@blocksuite/block-std';
import { GfxControllerIdentifier } from '@blocksuite/block-std/gfx';
@@ -15,8 +16,6 @@ import { html } from 'lit';
import { property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import type { EdgelessRootBlockComponent } from '../../../../root-block/edgeless/edgeless-root-block.js';
import { getRootByEditorHost, isValidUrl } from '../../../utils/index.js';
import { embedCardModalStyles } from './styles.js';
export class EmbedCardCreateModal extends WithDisposable(ShadowlessElement) {
@@ -64,13 +63,6 @@ export class EmbedCardCreateModal extends WithDisposable(ShadowlessElement) {
targetStyle = embedOptions.styles[0];
}
const edgelessRoot = getRootByEditorHost(
this.host
) as EdgelessRootBlockComponent | null;
if (!edgelessRoot) {
return;
}
const gfx = this.host.std.get(GfxControllerIdentifier);
const crud = this.host.std.get(EdgelessCRUDIdentifier);
@@ -95,7 +87,10 @@ export class EmbedCardCreateModal extends WithDisposable(ShadowlessElement) {
surfaceModel
);
gfx.tool.setTool('default');
gfx.tool.setTool(
// @ts-expect-error FIXME: resolve after gfx tool refactor
'default'
);
}
this.onConfirm();
this.remove();
@@ -127,6 +122,9 @@ export class EmbedCardCreateModal extends WithDisposable(ShadowlessElement) {
})
.catch(console.error);
this.disposables.addFromEvent(this, 'keydown', this._onDocumentKeydown);
this.disposables.addFromEvent(this, 'cup', stopPropagation);
this.disposables.addFromEvent(this, 'copy', stopPropagation);
this.disposables.addFromEvent(this, 'paste', stopPropagation);
}
override render() {

View File

@@ -37,8 +37,8 @@ import { choose } from 'lit/directives/choose.js';
import { classMap } from 'lit/directives/class-map.js';
import { live } from 'lit/directives/live.js';
import type { LinkableEmbedModel } from '../type.js';
import { isInternalEmbedModel } from '../type.js';
import type { LinkableEmbedModel } from './type.js';
import { isInternalEmbedModel } from './type.js';
export class EmbedCardEditModal extends SignalWatcher(
WithDisposable(LitElement)
@@ -279,6 +279,7 @@ export class EmbedCardEditModal extends SignalWatcher(
override connectedCallback() {
super.connectedCallback();
this.disposables.add(this.host.slots.unmounted.on(this._hide));
this._updateInfo();
}
@@ -305,6 +306,9 @@ export class EmbedCardEditModal extends SignalWatcher(
this.disposables.add(listenClickAway(this, this._hide));
this.disposables.addFromEvent(this, 'keydown', this._onKeydown);
this.disposables.addFromEvent(this, 'pointerdown', stopPropagation);
this.disposables.addFromEvent(this, 'cup', stopPropagation);
this.disposables.addFromEvent(this, 'copy', stopPropagation);
this.disposables.addFromEvent(this, 'paste', stopPropagation);
this.titleInput.focus();
this.titleInput.select();

View File

@@ -0,0 +1,4 @@
export * from './embed-card-caption-edit-modal';
export * from './embed-card-create-modal';
export * from './embed-card-edit-modal';
export * from './type';

View File

@@ -1,4 +1,3 @@
import { BookmarkBlockComponent } from '@blocksuite/affine-block-bookmark';
import {
EmbedFigmaBlockComponent,
EmbedGithubBlockComponent,
@@ -22,6 +21,8 @@ import {
} from '@blocksuite/affine-model';
import type { BlockComponent } from '@blocksuite/block-std';
import { BookmarkBlockComponent } from '../../bookmark-block';
export type ExternalEmbedBlockComponent =
| BookmarkBlockComponent
| EmbedFigmaBlockComponent
@@ -37,7 +38,7 @@ export type LinkableEmbedBlockComponent =
| ExternalEmbedBlockComponent
| InternalEmbedBlockComponent;
export type EmbedBlockComponent =
export type BuiltInEmbedBlockComponent =
| LinkableEmbedBlockComponent
| EmbedHtmlBlockComponent;
@@ -52,11 +53,11 @@ export type InternalEmbedModel = EmbedLinkedDocModel | EmbedSyncedDocModel;
export type LinkableEmbedModel = ExternalEmbedModel | InternalEmbedModel;
export type EmbedModel = LinkableEmbedModel | EmbedHtmlModel;
export type BuiltInEmbedModel = LinkableEmbedModel | EmbedHtmlModel;
export function isEmbedCardBlockComponent(
block: BlockComponent
): block is EmbedBlockComponent {
): block is BuiltInEmbedBlockComponent {
return (
block instanceof BookmarkBlockComponent ||
block instanceof EmbedFigmaBlockComponent ||
@@ -70,7 +71,7 @@ export function isEmbedCardBlockComponent(
}
export function isInternalEmbedModel(
model: EmbedModel
model: BuiltInEmbedModel
): model is InternalEmbedModel {
return (
model instanceof EmbedLinkedDocModel || model instanceof EmbedSyncedDocModel

View File

@@ -0,0 +1,2 @@
export * from './bookmark-card';
export * from './embed-card-modal';

View File

@@ -1,9 +1,13 @@
import { BookmarkBlockComponent } from './bookmark-block';
import { BookmarkEdgelessBlockComponent } from './bookmark-edgeless-block';
import type { BookmarkBlockService } from './bookmark-service';
import type { insertBookmarkCommand } from './commands/insert-bookmark';
import type { insertLinkByQuickSearchCommand } from './commands/insert-link-by-quick-search';
import { BookmarkCard } from './components/bookmark-card';
import {
EmbedCardCreateModal,
EmbedCardEditCaptionEditModal,
EmbedCardEditModal,
} from './components/embed-card-modal';
export function effects() {
customElements.define(
@@ -12,6 +16,13 @@ export function effects() {
);
customElements.define('affine-bookmark', BookmarkBlockComponent);
customElements.define('bookmark-card', BookmarkCard);
customElements.define('embed-card-create-modal', EmbedCardCreateModal);
customElements.define('embed-card-edit-modal', EmbedCardEditModal);
customElements.define(
'embed-card-caption-edit-modal',
EmbedCardEditCaptionEditModal
);
}
declare global {
@@ -20,8 +31,5 @@ declare global {
insertBookmark: typeof insertBookmarkCommand;
insertLinkByQuickSearch: typeof insertLinkByQuickSearchCommand;
}
interface BlockServices {
'affine:bookmark': BookmarkBlockService;
}
}
}

View File

@@ -1,4 +1,4 @@
export * from './adapters';
export * from './bookmark-block';
export * from './bookmark-service';
export * from './bookmark-spec';
export * from './components';

View File

@@ -1,5 +1,5 @@
import { LinkPreviewerService } from '@blocksuite/affine-shared/services';
import { isAbortError } from '@blocksuite/affine-shared/utils';
import { assertExists } from '@blocksuite/global/utils';
import type { BookmarkBlockComponent } from './bookmark-block.js';
@@ -15,10 +15,8 @@ export async function refreshBookmarkUrlData(
try {
bookmarkElement.loading = true;
const queryUrlData = bookmarkElement.service?.queryUrlData;
assertExists(queryUrlData);
const bookmarkUrlData = await queryUrlData(
const linkPreviewer = bookmarkElement.doc.get(LinkPreviewerService);
const bookmarkUrlData = await linkPreviewer.query(
bookmarkElement.model.url,
signal
);

View File

@@ -1,35 +1,20 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src/",
"outDir": "./dist/",
"noEmit": false
"rootDir": "./src",
"outDir": "./dist",
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
},
"include": ["./src"],
"references": [
{
"path": "../../framework/global"
},
{
"path": "../../framework/store"
},
{
"path": "../../framework/block-std"
},
{
"path": "../../framework/inline"
},
{
"path": "../model"
},
{
"path": "../components"
},
{
"path": "../shared"
},
{
"path": "../block-embed"
}
{ "path": "../block-embed" },
{ "path": "../block-surface" },
{ "path": "../components" },
{ "path": "../model" },
{ "path": "../shared" },
{ "path": "../../framework/block-std" },
{ "path": "../../framework/global" },
{ "path": "../../framework/inline" },
{ "path": "../../framework/store" }
]
}

View File

@@ -0,0 +1,44 @@
{
"name": "@blocksuite/affine-block-code",
"description": "Code block for BlockSuite.",
"type": "module",
"scripts": {
"build": "tsc",
"test:unit": "nx vite:test --run --passWithNoTests",
"test:unit:coverage": "nx vite:test --run --coverage",
"test:e2e": "playwright test"
},
"sideEffects": false,
"keywords": [],
"author": "toeverything",
"license": "MIT",
"dependencies": {
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-model": "workspace:*",
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/block-std": "workspace:*",
"@blocksuite/global": "workspace:*",
"@blocksuite/inline": "workspace:*",
"@blocksuite/store": "workspace:*",
"@floating-ui/dom": "^1.6.10",
"@lit/context": "^1.1.2",
"@preact/signals-core": "^1.8.0",
"@toeverything/theme": "^1.1.7",
"@types/mdast": "^4.0.4",
"lit": "^3.2.0",
"minimatch": "^10.0.1",
"shiki": "^2.0.0",
"zod": "^3.23.8"
},
"exports": {
".": "./src/index.ts",
"./effects": "./src/effects.ts"
},
"files": [
"src",
"dist",
"!src/__tests__",
"!dist/__tests__"
],
"version": "0.19.0"
}

View File

@@ -1,4 +1,4 @@
import type { ExtensionType } from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { CodeBlockHtmlAdapterExtension } from './html.js';
import { CodeBlockMarkdownAdapterExtension } from './markdown.js';

View File

@@ -1,5 +1,6 @@
import {
HtmlAdapter,
pasteMiddleware,
PlainTextAdapter,
} from '@blocksuite/affine-shared/adapters';
import {
@@ -7,9 +8,7 @@ import {
Clipboard,
type UIEventHandler,
} from '@blocksuite/block-std';
import { assertExists, DisposableGroup } from '@blocksuite/global/utils';
import { pasteMiddleware } from '../../root-block/clipboard/middlewares/index.js';
import { DisposableGroup } from '@blocksuite/global/utils';
export class CodeClipboardController {
private _clipboard!: Clipboard;
@@ -37,23 +36,21 @@ export class CodeClipboardController {
const e = ctx.get('clipboardState').raw;
e.preventDefault();
this._std.doc.captureSync();
this._std.store.captureSync();
this._std.command
.chain()
.try(cmd => [
cmd.getTextSelection().inline<'currentSelectionPath'>((ctx, next) => {
const textSelection = ctx.currentTextSelection;
assertExists(textSelection);
if (!textSelection) return;
const end = textSelection.to ?? textSelection.from;
next({ currentSelectionPath: end.blockId });
}),
cmd.getBlockSelections().inline<'currentSelectionPath'>((ctx, next) => {
const currentBlockSelections = ctx.currentBlockSelections;
assertExists(currentBlockSelections);
if (!currentBlockSelections) return;
const blockSelection = currentBlockSelections.at(-1);
if (!blockSelection) {
return;
}
if (!blockSelection) return;
next({ currentSelectionPath: blockSelection.blockId });
}),
])
@@ -66,7 +63,7 @@ export class CodeClipboardController {
this._clipboard
.paste(
e,
this._std.doc,
this._std.store,
ctx.parentBlock.model.id,
ctx.blockIndex ? ctx.blockIndex + 1 : 1
)

View File

@@ -6,6 +6,7 @@ import { type Signal, signal } from '@preact/signals-core';
import {
bundledLanguagesInfo,
createHighlighterCore,
createOnigurumaEngine,
type HighlighterCore,
type MaybeGetter,
} from 'shiki';
@@ -42,7 +43,7 @@ export class CodeBlockService extends BlockService {
this.bindHotKey(textKeymap(this.std));
createHighlighterCore({
loadWasm: getWasm,
engine: createOnigurumaEngine(() => getWasm),
})
.then(async highlighter => {
const config = this.std.getConfig('affine:code');

View File

@@ -1,18 +1,18 @@
import {
BlockViewExtension,
type ExtensionType,
FlavourExtension,
WidgetViewMapExtension,
} from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { literal, unsafeStatic } from 'lit/static-html.js';
import { AFFINE_CODE_TOOLBAR_WIDGET } from '../root-block/widgets/code-toolbar/index.js';
import { CodeBlockAdapterExtensions } from './adapters/extension.js';
import {
CodeBlockInlineManagerExtension,
CodeBlockUnitSpecExtension,
} from './code-block-inline.js';
import { CodeBlockService } from './code-block-service.js';
import { AFFINE_CODE_TOOLBAR_WIDGET } from './code-toolbar/index.js';
export const CodeBlockSpec: ExtensionType[] = [
FlavourExtension('affine:code'),

View File

@@ -5,11 +5,18 @@ import {
} from '@blocksuite/affine-components/rich-text';
import type { CodeBlockModel } from '@blocksuite/affine-model';
import { BRACKET_PAIRS, NOTE_SELECTOR } from '@blocksuite/affine-shared/consts';
import { NotificationProvider } from '@blocksuite/affine-shared/services';
import {
DocModeProvider,
NotificationProvider,
} from '@blocksuite/affine-shared/services';
import { getViewportElement } from '@blocksuite/affine-shared/utils';
import type { BlockComponent } from '@blocksuite/block-std';
import { getInlineRangeProvider } from '@blocksuite/block-std';
import { IS_MAC } from '@blocksuite/global/env';
import {
BlockSelection,
getInlineRangeProvider,
TextSelection,
} from '@blocksuite/block-std';
import { IS_MAC, IS_MOBILE } from '@blocksuite/global/env';
import { noop } from '@blocksuite/global/utils';
import {
INLINE_ROOT_ATTR,
@@ -24,7 +31,6 @@ import { query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import type { ThemedToken } from 'shiki';
import { EdgelessRootBlockComponent } from '../root-block/edgeless/edgeless-root-block.js';
import { CodeClipboardController } from './clipboard/index.js';
import { CodeBlockInlineManagerExtension } from './code-block-inline.js';
import type { CodeBlockService } from './code-block-service.js';
@@ -72,9 +78,8 @@ export class CodeBlockComponent extends CaptionedBlockComponent<
}
override get topContenteditableElement() {
if (this.rootComponent instanceof EdgelessRootBlockComponent) {
const el = this.closest<BlockComponent>(NOTE_SELECTOR);
return el;
if (this.std.get(DocModeProvider).getEditorMode() === 'edgeless') {
return this.closest<BlockComponent>(NOTE_SELECTOR);
}
return this.rootComponent;
}
@@ -177,7 +182,7 @@ export class CodeBlockComponent extends CaptionedBlockComponent<
this.bindHotKey({
Backspace: ctx => {
const state = ctx.get('keyboardState');
const textSelection = selectionManager.find('text');
const textSelection = selectionManager.find(TextSelection);
if (!textSelection) {
state.raw.preventDefault();
return;
@@ -188,7 +193,7 @@ export class CodeBlockComponent extends CaptionedBlockComponent<
if (from.index === 0 && from.length === 0) {
state.raw.preventDefault();
selectionManager.setGroup('note', [
selectionManager.create('block', { blockId: this.blockId }),
selectionManager.create(BlockSelection, { blockId: this.blockId }),
]);
return true;
}
@@ -384,6 +389,7 @@ export class CodeBlockComponent extends CaptionedBlockComponent<
<div
class=${classMap({
'affine-code-block-container': true,
mobile: IS_MOBILE,
wrap: this.model.wrap,
})}
>

View File

@@ -17,15 +17,19 @@ export class AffineCodeToolbar extends WithDisposable(LitElement) {
static override styles = css`
:host {
position: absolute;
width: 100%;
top: 0;
right: 0;
left: 0;
}
.code-toolbar-container {
width: auto;
height: 24px;
gap: 4px;
padding: 4px;
margin: 0;
display: flex;
justify-content: flex-end;
}
.code-toolbar-button {

View File

@@ -11,12 +11,16 @@ import { property, query } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';
import { html } from 'lit/static-html.js';
import type { CodeBlockComponent } from '../../../../code-block/code-block.js';
import type { CodeBlockComponent } from '../..';
export class LanguageListButton extends WithDisposable(
SignalWatcher(LitElement)
) {
static override styles = css`
:host {
margin-right: auto;
}
.lang-button {
background-color: var(--affine-background-primary-color);
box-shadow: var(--affine-shadow-1);

View File

@@ -8,6 +8,7 @@ import {
} from '@blocksuite/affine-components/icons';
import type { MenuItemGroup } from '@blocksuite/affine-components/toolbar';
import { isInsidePageEditor } from '@blocksuite/affine-shared/utils';
import { BlockSelection } from '@blocksuite/block-std';
import { noop, sleep } from '@blocksuite/global/utils';
import { html } from 'lit';
import { ifDefined } from 'lit/directives/if-defined.js';
@@ -134,7 +135,7 @@ export const clipboardGroup: MenuItemGroup<CodeBlockToolbarContext> = {
host.updateComplete
.then(() => {
host.selection.setGroup('note', [
host.selection.create('block', {
host.selection.create(BlockSelection, {
blockId: codeId,
}),
]);

View File

@@ -1,6 +1,6 @@
import { MenuContext } from '@blocksuite/affine-components/toolbar';
import type { CodeBlockComponent } from '../../../code-block/code-block.js';
import type { CodeBlockComponent } from '../code-block';
export class CodeBlockToolbarContext extends MenuContext {
override close = () => {

View File

@@ -9,11 +9,15 @@ import {
} from '@blocksuite/affine-components/toolbar';
import type { CodeBlockModel } from '@blocksuite/affine-model';
import { PAGE_HEADER_HEIGHT } from '@blocksuite/affine-shared/consts';
import { WidgetComponent } from '@blocksuite/block-std';
import { limitShift, shift } from '@floating-ui/dom';
import {
BlockSelection,
TextSelection,
WidgetComponent,
} from '@blocksuite/block-std';
import { limitShift, shift, size } from '@floating-ui/dom';
import { html } from 'lit';
import type { CodeBlockComponent } from '../../../code-block/code-block.js';
import type { CodeBlockComponent } from '../code-block.js';
import { MORE_GROUPS, PRIMARY_GROUPS } from './config.js';
import { CodeBlockToolbarContext } from './context.js';
@@ -34,7 +38,7 @@ export class AffineCodeToolbarWidget extends WidgetComponent<
const codeBlock = this.block;
const selection = this.host.selection;
const textSelection = selection.find('text');
const textSelection = selection.find(TextSelection);
if (
!!textSelection &&
(!!textSelection.to || !!textSelection.from.length)
@@ -42,7 +46,7 @@ export class AffineCodeToolbarWidget extends WidgetComponent<
return null;
}
const blockSelections = selection.filter('block');
const blockSelections = selection.filter(BlockSelection);
if (
blockSelections.length > 1 ||
(blockSelections.length === 1 &&
@@ -78,8 +82,13 @@ export class AffineCodeToolbarWidget extends WidgetComponent<
},
computePosition: {
referenceElement: codeBlock,
placement: 'right-start',
placement: 'top',
middleware: [
size({
apply({ rects, elements }) {
elements.floating.style.width = `${rects.reference.width}px`;
},
}),
shift({
crossAxis: true,
padding: {

View File

@@ -0,0 +1,35 @@
import type * as CommandsType from '@blocksuite/affine-shared/commands';
import { CodeBlockComponent } from './code-block';
import type { CodeBlockConfig } from './code-block-config';
import {
AFFINE_CODE_TOOLBAR_WIDGET,
AffineCodeToolbarWidget,
} from './code-toolbar';
import { AffineCodeToolbar } from './code-toolbar/components/code-toolbar';
import { LanguageListButton } from './code-toolbar/components/lang-button';
import { AffineCodeUnit } from './highlight/affine-code-unit';
export function effects() {
customElements.define('language-list-button', LanguageListButton);
customElements.define('affine-code-toolbar', AffineCodeToolbar);
customElements.define(AFFINE_CODE_TOOLBAR_WIDGET, AffineCodeToolbarWidget);
customElements.define('affine-code-unit', AffineCodeUnit);
customElements.define('affine-code', CodeBlockComponent);
}
declare type _GLOBAL_ = typeof CommandsType;
declare global {
namespace BlockSuite {
interface BlockConfigs {
'affine:code': CodeBlockConfig;
}
}
interface HTMLElementTagNameMap {
'language-list-button': LanguageListButton;
'affine-code-toolbar': AffineCodeToolbar;
[AFFINE_CODE_TOOLBAR_WIDGET]: AffineCodeToolbarWidget;
}
}

View File

@@ -0,0 +1,5 @@
export * from './adapters';
export * from './code-block';
export * from './code-block-config';
export * from './code-block-spec';
export * from './code-toolbar';

View File

@@ -9,12 +9,16 @@ export const codeBlockStyles = css`
font-size: var(--affine-font-xs);
line-height: var(--affine-line-height);
position: relative;
padding: 12px;
padding: 28px 24px;
background: var(--affine-background-code-block);
border-radius: 10px;
box-sizing: border-box;
}
.affine-code-block-container.mobile {
padding: 12px;
}
.affine-code-block-container .inline-editor {
font-family: var(--affine-font-code-family);
font-variant-ligatures: none;

View File

@@ -0,0 +1,18 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist",
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
},
"include": ["./src"],
"references": [
{ "path": "../components" },
{ "path": "../model" },
{ "path": "../shared" },
{ "path": "../../framework/block-std" },
{ "path": "../../framework/global" },
{ "path": "../../framework/inline" },
{ "path": "../../framework/store" }
]
}

View File

@@ -0,0 +1,45 @@
{
"name": "@blocksuite/affine-block-data-view",
"description": "Data view block for BlockSuite.",
"type": "module",
"scripts": {
"build": "tsc",
"test:unit": "nx vite:test --run --passWithNoTests",
"test:unit:coverage": "nx vite:test --run --coverage",
"test:e2e": "playwright test"
},
"sideEffects": false,
"keywords": [],
"author": "toeverything",
"license": "MIT",
"dependencies": {
"@blocksuite/affine-block-database": "workspace:*",
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-model": "workspace:*",
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/block-std": "workspace:*",
"@blocksuite/data-view": "workspace:*",
"@blocksuite/global": "workspace:*",
"@blocksuite/inline": "workspace:*",
"@blocksuite/store": "workspace:*",
"@floating-ui/dom": "^1.6.10",
"@lit/context": "^1.1.2",
"@preact/signals-core": "^1.8.0",
"@toeverything/theme": "^1.1.7",
"@types/mdast": "^4.0.4",
"lit": "^3.2.0",
"minimatch": "^10.0.1",
"zod": "^3.23.8"
},
"exports": {
".": "./src/index.ts",
"./effects": "./src/effects.ts"
},
"files": [
"src",
"dist",
"!src/__tests__",
"!dist/__tests__"
],
"version": "0.19.0"
}

View File

@@ -1,7 +1,7 @@
import { richTextColumnConfig } from '@blocksuite/affine-block-database';
import { type ListBlockModel, ListBlockSchema } from '@blocksuite/affine-model';
import { propertyPresets } from '@blocksuite/data-view/property-presets';
import { richTextColumnConfig } from '../../database-block/properties/rich-text/cell-renderer.js';
import { createBlockMeta } from './base.js';
export const todoMeta = createBlockMeta<ListBlockModel>({
@@ -53,7 +53,7 @@ todoMeta.addProperty({
metaConfig: propertyPresets.textPropertyConfig,
get: block => block.doc.meta?.title ?? '',
updated: (block, callback) => {
return block.doc.collection.meta.docMetaUpdated.on(() => {
return block.doc.workspace.slots.docListUpdated.on(() => {
callback();
});
},

View File

@@ -1,8 +1,7 @@
import { richTextColumnConfig } from '@blocksuite/affine-block-database';
import type { PropertyMetaConfig } from '@blocksuite/data-view';
import { propertyPresets } from '@blocksuite/data-view/property-presets';
import { richTextColumnConfig } from '../../database-block/properties/rich-text/cell-renderer.js';
export const queryBlockColumns = [
propertyPresets.datePropertyConfig,
propertyPresets.numberPropertyConfig,

View File

@@ -1,3 +1,7 @@
import {
databaseBlockAllPropertyMap,
databasePropertyConverts,
} from '@blocksuite/affine-block-database';
import type { Column } from '@blocksuite/affine-model';
import {
insertPositionToIndex,
@@ -7,12 +11,8 @@ import type { EditorHost } from '@blocksuite/block-std';
import { DataSourceBase, type PropertyMetaConfig } from '@blocksuite/data-view';
import { propertyPresets } from '@blocksuite/data-view/property-presets';
import { assertExists, Slot } from '@blocksuite/global/utils';
import type { Block, Doc } from '@blocksuite/store';
import type { Block, Store } from '@blocksuite/store';
import {
databaseBlockAllPropertyMap,
databasePropertyConverts,
} from '../database-block/properties/index.js';
import type { BlockMeta } from './block-meta/base.js';
import { blockMetaMap } from './block-meta/index.js';
import { queryBlockAllColumnMap, queryBlockColumns } from './columns/index.js';
@@ -59,7 +59,7 @@ export class BlockQueryDataSource extends DataSourceBase {
}
get workspace() {
return this.host.doc.collection;
return this.host.doc.workspace;
}
constructor(
@@ -73,16 +73,16 @@ export class BlockQueryDataSource extends DataSourceBase {
this.columnMetaMap.set(property.metaConfig.type, property.metaConfig);
}
for (const collection of this.workspace.docs.values()) {
for (const block of Object.values(collection.getDoc().blocks.peek())) {
for (const block of Object.values(collection.getStore().blocks.peek())) {
if (this.meta.selector(block)) {
this.blockMap.set(block.id, block);
}
}
}
this.workspace.docs.forEach(doc => {
this.listenToDoc(doc.getDoc());
this.listenToDoc(doc.getStore());
});
this.workspace.slots.docAdded.on(id => {
this.workspace.slots.docCreated.on(id => {
const doc = this.workspace.getDoc(id);
if (doc) {
this.listenToDoc(doc);
@@ -140,7 +140,7 @@ export class BlockQueryDataSource extends DataSourceBase {
return this.block.columns.find(v => v.id === id);
}
listenToDoc(doc: Doc) {
listenToDoc(doc: Store) {
this.docDisposeMap.set(
doc.id,
doc.slots.blockUpdated.on(v => {
@@ -167,7 +167,7 @@ export class BlockQueryDataSource extends DataSourceBase {
type ?? propertyPresets.multiSelectPropertyConfig.type
].create(this.newColumnName());
const id = doc.generateBlockId();
const id = doc.workspace.idGenerator();
if (this.block.columns.some(v => v.id === id)) {
return id;
}
@@ -211,7 +211,7 @@ export class BlockQueryDataSource extends DataSourceBase {
}
}
propertyDuplicate(_columnId: string): string {
propertyDuplicate(_columnId: string): string | undefined {
throw new Error('Method not implemented.');
}

View File

@@ -1,4 +1,8 @@
import type { NoteBlockComponent } from '@blocksuite/affine-block-note';
import {
BlockRenderer,
DatabaseSelection,
NoteRenderer,
} from '@blocksuite/affine-block-database';
import { CaptionedBlockComponent } from '@blocksuite/affine-components/caption';
import {
menu,
@@ -12,16 +16,20 @@ import {
} from '@blocksuite/affine-components/icons';
import { PeekViewProvider } from '@blocksuite/affine-components/peek';
import { toast } from '@blocksuite/affine-components/toast';
import { NOTE_SELECTOR } from '@blocksuite/affine-shared/consts';
import {
DocModeProvider,
NotificationProvider,
type TelemetryEventMap,
TelemetryProvider,
} from '@blocksuite/affine-shared/services';
import { RANGE_SYNC_EXCLUDE_ATTR } from '@blocksuite/block-std';
import {
type BlockComponent,
RANGE_SYNC_EXCLUDE_ATTR,
} from '@blocksuite/block-std';
import {
createRecordDetail,
createUniComponentFromWebComponent,
DatabaseSelection,
type DataSource,
DataView,
dataViewCommonStyle,
@@ -39,12 +47,6 @@ import { computed, signal } from '@preact/signals-core';
import { css, nothing, unsafeCSS } from 'lit';
import { html } from 'lit/static-html.js';
import { BlockRenderer } from '../database-block/detail-panel/block-renderer.js';
import { NoteRenderer } from '../database-block/detail-panel/note-renderer.js';
import {
EdgelessRootBlockComponent,
type RootService,
} from '../root-block/index.js';
import { BlockQueryDataSource } from './data-source.js';
import type { DataViewBlockModel } from './data-view-model.js';
@@ -154,10 +156,6 @@ export class DataViewBlockComponent extends CaptionedBlockComponent<DataViewBloc
};
};
getRootService = () => {
return this.std.getService<RootService>('affine:page');
};
headerWidget: DataViewWidget = defineUniComponent(
(props: DataViewWidgetProps) => {
return html`
@@ -231,9 +229,8 @@ export class DataViewBlockComponent extends CaptionedBlockComponent<DataViewBloc
}
override get topContenteditableElement() {
if (this.rootComponent instanceof EdgelessRootBlockComponent) {
const note = this.closest<NoteBlockComponent>('affine-note');
return note;
if (this.std.get(DocModeProvider).getEditorMode() === 'edgeless') {
return this.closest<BlockComponent>(NOTE_SELECTOR);
}
return this.rootComponent;
}

View File

@@ -33,7 +33,7 @@ export class DataViewBlockModel extends BlockModel<Props> {
}
duplicateView(id: string): string {
const newId = this.doc.generateBlockId();
const newId = this.doc.workspace.idGenerator();
this.doc.transact(() => {
const index = this.views.findIndex(v => v.id === id);
const view = this.views[index];

View File

@@ -1,8 +1,5 @@
import {
BlockViewExtension,
type ExtensionType,
FlavourExtension,
} from '@blocksuite/block-std';
import { BlockViewExtension, FlavourExtension } from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { literal } from 'lit/static-html.js';
export const DataViewBlockSpec: ExtensionType[] = [

View File

@@ -0,0 +1,14 @@
import { DataViewBlockComponent } from './data-view-block';
import type { DataViewBlockModel } from './data-view-model';
export function effects() {
customElements.define('affine-data-view', DataViewBlockComponent);
}
declare global {
namespace BlockSuite {
interface BlockModels {
'affine:data-view': DataViewBlockModel;
}
}
}

View File

@@ -0,0 +1,3 @@
export * from './data-view-block.js';
export * from './data-view-model.js';
export * from './data-view-spec.js';

View File

@@ -0,0 +1,20 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./dist",
"tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo"
},
"include": ["./src"],
"references": [
{ "path": "../block-database" },
{ "path": "../components" },
{ "path": "../model" },
{ "path": "../shared" },
{ "path": "../../framework/block-std" },
{ "path": "../data-view" },
{ "path": "../../framework/global" },
{ "path": "../../framework/inline" },
{ "path": "../../framework/store" }
]
}

View File

@@ -0,0 +1,48 @@
{
"name": "@blocksuite/affine-block-database",
"description": "Database block for BlockSuite.",
"type": "module",
"scripts": {
"build": "tsc",
"test:unit": "nx vite:test --run --passWithNoTests",
"test:unit:coverage": "nx vite:test --run --coverage",
"test:e2e": "playwright test"
},
"sideEffects": false,
"keywords": [],
"author": "toeverything",
"license": "MIT",
"dependencies": {
"@blocksuite/affine-components": "workspace:*",
"@blocksuite/affine-model": "workspace:*",
"@blocksuite/affine-shared": "workspace:*",
"@blocksuite/affine-widget-drag-handle": "workspace:*",
"@blocksuite/block-std": "workspace:*",
"@blocksuite/data-view": "workspace:*",
"@blocksuite/global": "workspace:*",
"@blocksuite/icons": "^2.2.1",
"@blocksuite/inline": "workspace:*",
"@blocksuite/store": "workspace:*",
"@floating-ui/dom": "^1.6.10",
"@lit/context": "^1.1.2",
"@preact/signals-core": "^1.8.0",
"@toeverything/theme": "^1.1.7",
"@types/mdast": "^4.0.4",
"date-fns": "^4.0.0",
"lit": "^3.2.0",
"minimatch": "^10.0.1",
"yjs": "^13.6.21",
"zod": "^3.23.8"
},
"exports": {
".": "./src/index.ts",
"./effects": "./src/effects.ts"
},
"files": [
"src",
"dist",
"!src/__tests__",
"!dist/__tests__"
],
"version": "0.19.0"
}

View File

@@ -1,4 +1,4 @@
import type { ExtensionType } from '@blocksuite/block-std';
import type { ExtensionType } from '@blocksuite/store';
import { DatabaseBlockHtmlAdapterExtension } from './html.js';
import { DatabaseBlockMarkdownAdapterExtension } from './markdown.js';

Some files were not shown because too many files have changed in this diff Show More