Compare commits

...

661 Commits

Author SHA1 Message Date
DarkSky
9e94e7195b fix: use absolute path in gql client (#5454) (#5462) 2023-12-29 16:02:29 +08:00
Peng Xiao
de951c8779 fix(core): enable page history for beta/stable (#5415) 2023-12-27 14:39:59 +08:00
EYHN
fd37026ca5 fix(component): fix font display on safari (#5393)
before

![CleanShot 2023-12-25 at 13.09.26.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/g3jz87HxbjOJpXV3FPT7/4fe08951-67bb-4050-ba14-94391db1cac1.png)

after

![CleanShot 2023-12-25 at 13.09.13.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/g3jz87HxbjOJpXV3FPT7/fbfb17ec-b871-4746-9d3c-d24f850ecca1.png)
2023-12-27 14:39:50 +08:00
JimmFly
4fd5812a89 fix(core): avatars are not aligned (#5404) 2023-12-26 20:43:08 +08:00
Peng Xiao
d01e987ecc fix(core): trash page footer display issue (#5402)
Before

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/eb5e5b18-c4a2-469b-8763-be34c39ba736.png)

After

![image.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/7b3ef339-0cb5-44fe-9e75-cec0e97d28b7.png)
2023-12-26 20:42:54 +08:00
Joooye_34
d87c218c0b fix(electron): set stable base url to app.affine.pro (#5401)
close TOV-282
2023-12-26 20:42:41 +08:00
Peng Xiao
a5bf5cc244 fix(core): about setting blink issue (#5399) 2023-12-26 20:42:33 +08:00
Peng Xiao
16bcd6e76b fix(core): workpace list blink issue on open (#5400) 2023-12-26 20:42:19 +08:00
JimmFly
2e2ace8472 chore(core): add background color to questionnaire (#5396) 2023-12-26 20:42:06 +08:00
Cats Juice
37cff8fe8d fix(core): correct title of onboarding article-2 (#5387) 2023-12-26 20:41:58 +08:00
DarkSky
70ab3b4916 fix: use prefix in electron to prevent formdata bug (#5395) 2023-12-26 20:41:47 +08:00
EYHN
f42ba54578 fix(core): fix flickering workspace list (#5391) 2023-12-26 20:41:36 +08:00
EYHN
a67c8181fc fix(workspace): fix svg file with xml header (#5388) 2023-12-26 20:41:28 +08:00
regischen
613efbded9 feat: bump blocksuite (#5386) 2023-12-26 20:41:18 +08:00
李华桥
549419d102 Merge branch 'canary' into stable 2023-12-22 16:29:51 +08:00
EYHN
8b28761a8a fix(component): fix workspace input (#5381) 2023-12-22 08:26:14 +00:00
EYHN
77d239ff81 fix(workspace): leave workspace correctly (#5379) 2023-12-22 16:17:59 +08:00
Cats Juice
1ce4dd0497 fix(core): hide onboarding paper segments gap (#5384) 2023-12-22 15:49:43 +08:00
EYHN
aa74b0617c fix(workspace): dont upgrade subdoc on cloud (#5382) 2023-12-22 15:48:54 +08:00
Joooye_34
46f824c4e9 fix: input style priority (#5383) 2023-12-22 15:48:28 +08:00
EYHN
f11ea7570a fix(core): maxWait for sync progress debounce (#5377) 2023-12-22 03:28:24 +00:00
Flrande
a08edfd6d9 feat: bump blocksuite (#5374) 2023-12-22 03:17:57 +00:00
李华桥
21c42f8771 Merge branch 'canary' into stable 2023-12-22 01:29:30 +08:00
DarkSky
06912c6885 fix: websocket prefix (#5372) 2023-12-21 15:52:05 +00:00
Joooye_34
ec7f73f168 chore: catch and ignore page upgrade error (#5373) 2023-12-21 14:27:07 +00:00
Joooye_34
cfb77e8243 chore: fix about version in client (#5371) 2023-12-21 14:15:22 +00:00
DarkSky
aa4d42b36c feat: use baseurl from server config (#5369) 2023-12-21 12:52:38 +00:00
李华桥
9012adda7a Merge branch 'canary' into stable 2023-12-21 18:42:56 +08:00
Joooye_34
9fbd9b39d6 ci: set version correctly and remove nightly build workflow (#5367) 2023-12-21 10:00:12 +00:00
李华桥
fb442e9055 Merge branch 'canary' into stable 2023-12-21 16:22:57 +08:00
Cats Juice
aeec68b0d7 fix(core): onboading tooltip next button always shows (#5363) 2023-12-21 08:09:37 +00:00
Joooye_34
fb1ed90ecc ci: use setup version action to init version (#5365)
1. Create  setup version action to unify version initialization
2. Split tag event from release desktop
3. Add schedule to daily deploy and desktop release
2023-12-21 07:58:16 +00:00
LongYinan
cc73124259 chore: bump up @react-hookz/web version to v24 (#5359)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@react-hookz/web](https://togithub.com/react-hookz/web) | [`^23.1.0` -> `^24.0.0`](https://renovatebot.com/diffs/npm/@react-hookz%2fweb/23.1.0/24.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@react-hookz%2fweb/24.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@react-hookz%2fweb/24.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@react-hookz%2fweb/23.1.0/24.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@react-hookz%2fweb/23.1.0/24.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>react-hookz/web (@&#8203;react-hookz/web)</summary>

### [`v24.0.1`](https://togithub.com/react-hookz/web/blob/HEAD/CHANGELOG.md#2401-2023-12-20)

[Compare Source](https://togithub.com/react-hookz/web/compare/v24.0.0...v24.0.1)

##### Bug Fixes

-   change build so development and distributed imports match ([6383cdd](6383cdd558))

### [`v24.0.0`](https://togithub.com/react-hookz/web/blob/HEAD/CHANGELOG.md#2400-2023-12-20)

[Compare Source](https://togithub.com/react-hookz/web/compare/v23.1.0...v24.0.0)

##### Features

-   switch package to module type ([#&#8203;1472](https://togithub.com/react-hookz/web/issues/1472)) ([50921ef](50921efda5))

##### BREAKING CHANGES

-   Hooks are now distrubutes as JS built form TS with target ESNext and ESM module resolution. There is no more sense to distribute CJS version as package is ESM-only.

Consequent of above - no more esm and cjs subfolders - hooks are importable from index.js or its own directory which don't have a prefix anymore, thanks to exports directive. All of below examples will lead to same result, choose any on your taste:

import { useFirstMountState } from '[@&#8203;react-hookz/web](https://togithub.com/react-hookz/web)';
import { useFirstMountState } from '@&#8203;react-hookz/web/';
import { useFirstMountState } from '@&#8203;react-hookz/web/useFirstMountState/';
import { useFirstMountState } from '@&#8203;react-hookz/web/useFirstMountState/index.js';
Thought is seems not to have subfolder, it is only due to exports directive, in real it is
@&#8203;react-hookz/web/dist/useFirstMountState/index.js.

Pakage uses imports directive to define path alias #root - it stays so even in distributed code, thus, some may be affected in case their bundler configured to somehow handle such alias. Those developer shoud configure import rewriter not to handle node_modules or [@&#8203;react-hookz/web](https://togithub.com/react-hookz/web) package exclusively.

Side-effect for current PR - documentation is broken, as storybook 6 is not working within ESM packages and I'm planning to switch to another domenting engine anyway.

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
2023-12-21 07:45:32 +00:00
Cats Juice
c2db8b356c feat(electron): handle onboarding-window moved between screens (#5345) 2023-12-21 15:44:21 +08:00
LongYinan
eaa62df2dd chore: bump up eslint-plugin-unicorn version to v50 (#5362)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [eslint-plugin-unicorn](https://togithub.com/sindresorhus/eslint-plugin-unicorn) | [`^49.0.0` -> `^50.0.0`](https://renovatebot.com/diffs/npm/eslint-plugin-unicorn/49.0.0/50.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/eslint-plugin-unicorn/50.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/eslint-plugin-unicorn/50.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/eslint-plugin-unicorn/49.0.0/50.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/eslint-plugin-unicorn/49.0.0/50.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sindresorhus/eslint-plugin-unicorn (eslint-plugin-unicorn)</summary>

### [`v50.0.0`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/releases/tag/v50.0.0)

[Compare Source](https://togithub.com/sindresorhus/eslint-plugin-unicorn/compare/v49.0.0...v50.0.0)

##### New rules

-   [`no-unnecessary-polyfills`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/no-unnecessary-polyfills.md) ([#&#8203;1717](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/1717))  [`6788d86`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/6788d86)

##### Improvements

-   Support ESLint's new config system ([#&#8203;1886](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/1886))  [`65711f9`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/65711f9)
-   `no-useless-undefined`: Add `checkArrowFunctionBody` option ([#&#8203;2232](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/2232))  [`9d7048c`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/9d7048c)
-   `prefer-negative-index`: Check `TypedArray#subarray()` ([#&#8203;2237](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/2237))  [`6708a30`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/6708a30)
-   `no-useless-undefined`: Ignore React state setters ([#&#8203;2223](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/2223))  [`42881ba`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/42881ba)
-   `prefer-module`: Allow `module` as TSTypeParameter name ([#&#8203;2213](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/2213))  [`8f61f7c`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/8f61f7c)

##### Fixes

-   `string-content`: Fix JSX autofix for newlines, etc. ([#&#8203;2222](https://togithub.com/sindresorhus/eslint-plugin-unicorn/issues/2222))  [`b95e75e`](https://togithub.com/sindresorhus/eslint-plugin-unicorn/commit/b95e75e)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xMDMuMSIsInVwZGF0ZWRJblZlciI6IjM3LjEwMy4xIiwidGFyZ2V0QnJhbmNoIjoiY2FuYXJ5In0=-->
2023-12-21 07:23:11 +00:00
JimmFly
332a5c6685 chore(core): temporarily hide export png and pdf in edgeless (#5364) 2023-12-21 07:13:05 +00:00
李华桥
a231474dd2 Merge branch 'canary' into stable 2023-12-21 14:26:01 +08:00
Cats Juice
34c1d2a674 feat(core): responsive for onboarding (#5361)
fix(core): use light-theme for onboarding back button

feat(core): responsive for onboarding
2023-12-21 04:27:49 +00:00
Chen
4dc41fcd09 feat: bump blocksuite (#5357) 2023-12-21 12:22:39 +08:00
Peng Xiao
bfbdde212f fix(storybook): disable onboarding for storybook (#5351) 2023-12-21 03:11:44 +00:00
EYHN
fcc3e9e069 feat(core): add syncing progress (#5356)
![CleanShot 2023-12-20 at 16.54.30@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/g3jz87HxbjOJpXV3FPT7/318a2d3c-14ea-48db-907a-881886d605e7.png)
2023-12-20 09:25:06 +00:00
李华桥
833b42000b Merge branch 'canary' into stable 2023-12-20 16:36:44 +08:00
李华桥
7690c48710 Merge branch 'canary' into stable 2023-12-20 16:32:36 +08:00
JimmFly
9981c24120 fix(core): escape special characters for cmdk item values (#5353)
![image](https://github.com/toeverything/AFFiNE/assets/102217452/301ef02e-f0df-4a1b-843f-240cad44af0f)
2023-12-20 08:20:21 +00:00
Joooye_34
a4f31df192 chore: update basic version to 0.11.0 (#5355) 2023-12-20 08:10:42 +00:00
Joooye_34
80eeb2ddc7 feat: only follow serverUrlPrefix at redirect to client (#5295) (#5354)
feat: only follow `serverUrlPrefix` at redirect to client (#5295)

fix: use secure websocket (#5297)
2023-12-20 07:52:57 +00:00
LongYinan
800ea0abf1 fix(core): remove ses lockdown (#5350) 2023-12-20 04:11:34 +00:00
Joooye_34
e3882f9648 feat: bump bs (#5346)
Change history: a781985...8254dc9
2023-12-20 02:43:01 +00:00
LongYinan
30e62bd2c6 fix(core): downgrade ses (#5347)
ses@1 makes [this line](https://github.com/lit/lit/blob/lit-html%403.1.0/packages/reactive-element/src/reactive-element.ts#L406) throw an error: `TypeError: Cannot add property metadata, object is not extensible.`
2023-12-20 02:28:58 +00:00
DarkSky
33a589a8ba feat: onboarding electron redirect (#5327) 2023-12-19 13:54:43 +00:00
DarkSky
8ea910a2bb feat: onboarding page (#5277) 2023-12-19 13:54:41 +00:00
Yifeng Wang
31b1b2dade feat: bump blocksuite (#5343) 2023-12-19 21:53:57 +08:00
LongYinan
36653e79d2 fix(core): dedupe ses versions (#5342) 2023-12-19 13:31:37 +00:00
Cats Juice
197d1d4136 feat(core): adjust ui for new design (#5322)
feat(core): add bg and hover state for onboarding

feat(core): adjust onboarding styles for web

feat(core): add get started page for onboarding
2023-12-19 10:28:11 +00:00
LongYinan
07f10f55bf fix: cargo deps security alert (#5340)
- Close https://github.com/toeverything/AFFiNE/security/dependabot/55
2023-12-19 10:17:03 +00:00
LongYinan
6ca725343a chore: bump up ses version to v1 (#5282)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ses](https://togithub.com/Agoric/SES-shim/tree/master/packages/ses#readme) ([source](https://togithub.com/endojs/endo)) | [`^0.18.8` -> `^1.0.0`](https://renovatebot.com/diffs/npm/ses/0.18.8/1.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ses/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ses/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ses/0.18.8/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ses/0.18.8/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>endojs/endo (ses)</summary>

### [`v1.0.0`](https://togithub.com/endojs/endo/compare/ses@0.18.8...ses@1.0.0)

[Compare Source](https://togithub.com/endojs/endo/compare/ses@0.18.8...ses@1.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-19 09:41:44 +00:00
Peng Xiao
d03567f689 fix(electron): onboarding display issue on Windows (#5320) 2023-12-19 09:32:12 +00:00
Peng Xiao
128f8066c3 fix(electron): main window should be opened first before destroying onboard window (#5319)
The issue listed on the title will prevent main window from showing on windows.
2023-12-19 09:22:44 +00:00
Cats Juice
e10609276d feat(core): add toggle workspace dialog (#5312) 2023-12-19 09:12:26 +00:00
3720
b9345e8d21 fix(core): collections initialized logic (#5310)
Collections YArray should be initialized only when the user operates on it, local state can't be trusted
2023-12-19 09:02:01 +00:00
Cats Juice
55818539af feat(core): basic page/edgeless toggle animation (#5283) 2023-12-19 08:48:54 +00:00
JimmFly
4b0ca06d80 feat(core): adjust empty favourites style (#5323)
close TOV-147
2023-12-19 08:37:35 +00:00
JimmFly
38617abc17 fix(component): fix incorrect input component width and height styling (#5292)
after:

https://github.com/toeverything/AFFiNE/assets/102217452/5d8f51c5-c7a6-4ec8-b2b0-7f1391f045c7
2023-12-19 08:27:46 +00:00
Cats Juice
d9f1cc60b9 feat(core): onboarding paper unfolding animation (#5264) 2023-12-19 07:18:06 +00:00
Cats Juice
841385666e feat(core): onboarding paper enter animation (#5248) 2023-12-19 07:18:00 +00:00
Cats Juice
15dd20ef48 feat(electron): onboarding at first launch logic for client and web (#5183)
- Added a simple abstraction of persistent storage class.
- Different persistence solutions are provided for web and client.
    - web: stored in localStorage
    - client: stored in the application directory as `.json` file
- Define persistent app-config schema
- Add a new hook that can interactive with persistent-app-config reactively
2023-12-19 07:17:54 +00:00
DarkSky
e0d328676d feat: add quota for old users (#5318) 2023-12-19 07:06:26 +00:00
JimmFly
6748e7ba42 chore(server): remove early access tips from invitation emails (#5314)
close TOV-177
2023-12-19 06:56:22 +00:00
Peng Xiao
a815fd6b9a feat(core): ai poc (#5317) 2023-12-19 05:13:29 +00:00
Peng Xiao
408b84109b fix(storybook): disable cloud for storybook (#5330) 2023-12-19 02:07:17 +00:00
EYHN
c7fe42a5b9 chore: bump up vitest monorepo to v1 (major) (#5217)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@vitest/coverage-istanbul](https://togithub.com/vitest-dev/vitest/tree/main/packages/coverage-istanbul#readme) ([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/coverage-istanbul)) | [`0.34.6` -> `1.0.4`](https://renovatebot.com/diffs/npm/@vitest%2fcoverage-istanbul/0.34.6/1.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fcoverage-istanbul/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fcoverage-istanbul/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fcoverage-istanbul/0.34.6/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fcoverage-istanbul/0.34.6/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [@vitest/ui](https://togithub.com/vitest-dev/vitest/tree/main/packages/ui#readme) ([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/ui)) | [`0.34.6` -> `1.0.4`](https://renovatebot.com/diffs/npm/@vitest%2fui/0.34.6/1.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@vitest%2fui/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@vitest%2fui/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@vitest%2fui/0.34.6/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@vitest%2fui/0.34.6/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |
| [vitest](https://togithub.com/vitest-dev/vitest) ([source](https://togithub.com/vitest-dev/vitest/tree/HEAD/packages/vitest)) | [`0.34.6` -> `1.0.4`](https://renovatebot.com/diffs/npm/vitest/0.34.6/1.0.4) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vitest/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vitest/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vitest/0.34.6/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vitest/0.34.6/1.0.4?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v1.0.4`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.0.4)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v1.0.3...v1.0.4)

The previous release was built incorrectly and didn't include the performance fix. This release fixes that.

#####    🐞 Bug Fixes

-   **cli**: `--coverage.all=false` resolved incorrectly  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4697](https://togithub.com/vitest-dev/vitest/issues/4697) [<samp>(a7931)</samp>](https://togithub.com/vitest-dev/vitest/commit/a7931bbf)

#####    🏎 Performance

-   **reporters**: Downgrade `log-update` to v5  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4711](https://togithub.com/vitest-dev/vitest/issues/4711) [<samp>(13ff9)</samp>](https://togithub.com/vitest-dev/vitest/commit/13ff97a3)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.0.3...v1.0.4)

### [`v1.0.3`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.0.3)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v1.0.2...v1.0.3)

#####    🐞 Bug Fixes

-   Correct package exports  -  by [@&#8203;userquin](https://togithub.com/userquin) in [https://github.com/vitest-dev/vitest/issues/4707](https://togithub.com/vitest-dev/vitest/issues/4707) [<samp>(37388)</samp>](https://togithub.com/vitest-dev/vitest/commit/37388d69)
-   **runner**: Fix async fixture teardown  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4700](https://togithub.com/vitest-dev/vitest/issues/4700) [<samp>(92afd)</samp>](https://togithub.com/vitest-dev/vitest/commit/92afd54c)
-   **vitest**: Correctly filter changed files when Vitest workspace is used  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4693](https://togithub.com/vitest-dev/vitest/issues/4693) [<samp>(34135)</samp>](https://togithub.com/vitest-dev/vitest/commit/3413518b)

#####    🏎 Performance

-   **reporters**: Downgrade `log-update` to v5  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4711](https://togithub.com/vitest-dev/vitest/issues/4711) [<samp>(13ff9)</samp>](https://togithub.com/vitest-dev/vitest/commit/13ff97a3)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v1.0.2...v1.0.3)

### [`v1.0.2`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.0.2)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v1.0.1...v1.0.2)

#####    🐞 Bug Fixes

-   Don't check if vite is installed  -  by [@&#8203;wojtekmaj](https://togithub.com/wojtekmaj) in [https://github.com/vitest-dev/vitest/issues/4659](https://togithub.com/vitest-dev/vitest/issues/4659) [<samp>(775e2)</samp>](https://togithub.com/vitest-dev/vitest/commit/775e2014)
-   Fix ensurePackageInstalled on Yarn PnP  -  by [@&#8203;wojtekmaj](https://togithub.com/wojtekmaj) in [https://github.com/vitest-dev/vitest/issues/4657](https://togithub.com/vitest-dev/vitest/issues/4657) [<samp>(574cc)</samp>](https://togithub.com/vitest-dev/vitest/commit/574cc7d0)
-   Apply `stripSnapshotIndentation` for thrown snapshot  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4663](https://togithub.com/vitest-dev/vitest/issues/4663) [<samp>(74820)</samp>](https://togithub.com/vitest-dev/vitest/commit/748205dc)
-   **cli**:
    -   Prompted packages fail to install  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4593](https://togithub.com/vitest-dev/vitest/issues/4593) [<samp>(a9908)</samp>](https://togithub.com/vitest-dev/vitest/commit/a9908453)
-   **expect**:
    -   Apply `URL` equality check only when `URL` is available  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4670](https://togithub.com/vitest-dev/vitest/issues/4670) [<samp>(43783)</samp>](https://togithub.com/vitest-dev/vitest/commit/43783cfe)
-   **runner**:
    -   Improve fixture error messages  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4673](https://togithub.com/vitest-dev/vitest/issues/4673) [<samp>(1e4aa)</samp>](https://togithub.com/vitest-dev/vitest/commit/1e4aa8e4)
    -   Fix fixture cleanup when test times out  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4679](https://togithub.com/vitest-dev/vitest/issues/4679) [<samp>(e7c5e)</samp>](https://togithub.com/vitest-dev/vitest/commit/e7c5e1f7)
-   **vitest**:
    -   Support new Request('/api') in happy-dom  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4671](https://togithub.com/vitest-dev/vitest/issues/4671) [<samp>(6e6ee)</samp>](https://togithub.com/vitest-dev/vitest/commit/6e6ee10e)
    -   Skip processing getter in auto-mocked constructor call  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4677](https://togithub.com/vitest-dev/vitest/issues/4677) [<samp>(cb786)</samp>](https://togithub.com/vitest-dev/vitest/commit/cb7864aa)

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

### [`v1.0.1`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.0.1)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v1.0.0...v1.0.1)

#####    🐞 Bug Fixes

-   Bump vitest packages `peerDependencies` versions  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4654](https://togithub.com/vitest-dev/vitest/issues/4654) [<samp>(42070)</samp>](https://togithub.com/vitest-dev/vitest/commit/420707fc)

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

### [`v1.0.0`](https://togithub.com/vitest-dev/vitest/releases/tag/v1.0.0)

[Compare Source](https://togithub.com/vitest-dev/vitest/compare/v0.34.6...v1.0.0)

Vitest 1.0 is here! 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-from-vitest-0-34-6).

#####    🚨 Breaking Changes

-   Add support for `pool` and `poolOptions`, remove old flags  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4172](https://togithub.com/vitest-dev/vitest/issues/4172) [<samp>(114a9)</samp>](https://togithub.com/vitest-dev/vitest/commit/114a993c)
-   Support multiple parallel `child_process`  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/3925](https://togithub.com/vitest-dev/vitest/issues/3925) [<samp>(8b4a4)</samp>](https://togithub.com/vitest-dev/vitest/commit/8b4a44ad)
-   Make snapshots more visually pleasing by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/pull/3961](https://togithub.com/vitest-dev/vitest/pull/3961)
-   Set `vitest` peer dependency range for sub packages  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4299](https://togithub.com/vitest-dev/vitest/issues/4299) [<samp>(cd03c)</samp>](https://togithub.com/vitest-dev/vitest/commit/cd03cb51)
-   Bump minimum node version to 18 and match Vite 5 requirement  -  by [@&#8203;ghiscoding](https://togithub.com/ghiscoding) in [https://github.com/vitest-dev/vitest/issues/4296](https://togithub.com/vitest-dev/vitest/issues/4296) [<samp>(263b7)</samp>](https://togithub.com/vitest-dev/vitest/commit/263b7167)
-   Remove deprecated node loader  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4371](https://togithub.com/vitest-dev/vitest/issues/4371) [<samp>(29299)</samp>](https://togithub.com/vitest-dev/vitest/commit/29299f3c)
-   Move browser providers to [@&#8203;vitest/browser](https://togithub.com/vitest/browser) package  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4364](https://togithub.com/vitest-dev/vitest/issues/4364) [<samp>(5cdeb)</samp>](https://togithub.com/vitest-dev/vitest/commit/5cdeb558)
-   Remove EnhancedSpy type, deprecate SpyInstance, improve mocks and vi documentation  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) and [@&#8203;dammy001](https://togithub.com/dammy001) in [https://github.com/vitest-dev/vitest/issues/4400](https://togithub.com/vitest-dev/vitest/issues/4400) [<samp>(d40b3)</samp>](https://togithub.com/vitest-dev/vitest/commit/d40b3a58)
-   `expect().toContain()` can handle classList, Node.contains, and any array-like structure. This means you cannot use it to check if one object is a subset of another - use `expect().toMatchObject()` in that case  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4239](https://togithub.com/vitest-dev/vitest/issues/4239) [<samp>(ce84f)</samp>](https://togithub.com/vitest-dev/vitest/commit/ce84f069)
-   **runner**: Correctly process custom tasks, update runner hooks naming by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/pull/4076](https://togithub.com/vitest-dev/vitest/pull/4076)
-   **coverage**:
    -   glob based coverage thresholds by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/pull/4442](https://togithub.com/vitest-dev/vitest/pull/4442) [<samp>(18300)</samp>](4953410e8d)
    -   Use `transformMode` and workspace project based source maps  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4309](https://togithub.com/vitest-dev/vitest/issues/4309) [<samp>(28109cc)</samp>](https://togithub.com/vitest-dev/vitest/commit/28109cc)
    -   Enable `coverage.all` by default  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4265](https://togithub.com/vitest-dev/vitest/issues/4265) [<samp>(5a741)</samp>](https://togithub.com/vitest-dev/vitest/commit/5a741ca2)

#####    🚀 Features

-   Add Marko example and include code coverage for Marko files  -  by [@&#8203;DylanPiercey](https://togithub.com/DylanPiercey) in [https://github.com/vitest-dev/vitest/issues/4263](https://togithub.com/vitest-dev/vitest/issues/4263) [<samp>(eac77)</samp>](https://togithub.com/vitest-dev/vitest/commit/eac77765)
-   Update magic-string  -  by [@&#8203;bluwy](https://togithub.com/bluwy) in [https://github.com/vitest-dev/vitest/issues/4345](https://togithub.com/vitest-dev/vitest/issues/4345) [<samp>(fde18)</samp>](https://togithub.com/vitest-dev/vitest/commit/fde1843e)
-   Implement provide/inject API to transfer data from the main thread  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4422](https://togithub.com/vitest-dev/vitest/issues/4422) [<samp>(a7522)</samp>](https://togithub.com/vitest-dev/vitest/commit/a75228f1)
-   Improve expectTypeOf error messages  -  by [@&#8203;mmkal](https://togithub.com/mmkal), **Misha Kaletsky** and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4206](https://togithub.com/vitest-dev/vitest/issues/4206) [<samp>(18300)</samp>](https://togithub.com/vitest-dev/vitest/commit/183005e9)
-   Add test.sequential() api  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4512](https://togithub.com/vitest-dev/vitest/issues/4512) [<samp>(c3619)</samp>](https://togithub.com/vitest-dev/vitest/commit/c3619c78)
-   Allow custom pools  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4417](https://togithub.com/vitest-dev/vitest/issues/4417) [<samp>(a3fd5)</samp>](https://togithub.com/vitest-dev/vitest/commit/a3fd5f85)
-   Add --project option to limit what projects are running  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va), [@&#8203;dammy001](https://togithub.com/dammy001) and [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4561](https://togithub.com/vitest-dev/vitest/issues/4561) [<samp>(58ef5)</samp>](https://togithub.com/vitest-dev/vitest/commit/58ef51a9)
-   **benchmark**:
    -   Move importTinybench to runner  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4376](https://togithub.com/vitest-dev/vitest/issues/4376) [<samp>(c36d2)</samp>](https://togithub.com/vitest-dev/vitest/commit/c36d2b97)
-   **browser**:
    -   Support "none" provider and update lit example to use it  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4427](https://togithub.com/vitest-dev/vitest/issues/4427) [<samp>(d03a2)</samp>](https://togithub.com/vitest-dev/vitest/commit/d03a2a21)
-   **coverage**:
    -   Support `/* v8 ignore...` ignore hints  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4573](https://togithub.com/vitest-dev/vitest/issues/4573) [<samp>(f9e4a)</samp>](https://togithub.com/vitest-dev/vitest/commit/f9e4ad83)
-   **expect**:
    -   Support `expect.closeTo` api  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) and **golebiowskib** in [https://github.com/vitest-dev/vitest/issues/4260](https://togithub.com/vitest-dev/vitest/issues/4260) [<samp>(7f91c)</samp>](https://togithub.com/vitest-dev/vitest/commit/7f91c6f6)
    -   Compare URL objects by href  -  by [@&#8203;kleinfreund](https://togithub.com/kleinfreund) and [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4615](https://togithub.com/vitest-dev/vitest/issues/4615) [<samp>(f7a73)</samp>](https://togithub.com/vitest-dev/vitest/commit/f7a73338)
-   **snapshot**:
    -   Add option to configure snapshot directory  -  by [@&#8203;d3lm](https://togithub.com/d3lm) in [https://github.com/vitest-dev/vitest/issues/4651](https://togithub.com/vitest-dev/vitest/issues/4651) [<samp>(20b2a)</samp>](https://togithub.com/vitest-dev/vitest/commit/20b2a857)
-   **vite-node**:
    -   Support import.meta.hot.off for vite 5  -  by [@&#8203;bluwy](https://togithub.com/bluwy) in [https://github.com/vitest-dev/vitest/issues/4315](https://togithub.com/vitest-dev/vitest/issues/4315) [<samp>(01b1c)</samp>](https://togithub.com/vitest-dev/vitest/commit/01b1c55c)
-   **vitest**:
    -   Expose getBenchFn, getBenchOptions  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4208](https://togithub.com/vitest-dev/vitest/issues/4208) [<samp>(8e5e4)</samp>](https://togithub.com/vitest-dev/vitest/commit/8e5e42dc)
    -   Run typecheck during tests  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4324](https://togithub.com/vitest-dev/vitest/issues/4324) [<samp>(a1aad)</samp>](https://togithub.com/vitest-dev/vitest/commit/a1aadd71)
    -   Filter stacktraces  -  by [@&#8203;clarkf](https://togithub.com/clarkf) in [https://github.com/vitest-dev/vitest/issues/1999](https://togithub.com/vitest-dev/vitest/issues/1999) and [https://github.com/vitest-dev/vitest/issues/4338](https://togithub.com/vitest-dev/vitest/issues/4338) [<samp>(6b734)</samp>](https://togithub.com/vitest-dev/vitest/commit/6b73473f)
    -   Expose execArgv to the different pools  -  by [@&#8203;adriencaccia](https://togithub.com/adriencaccia) in [https://github.com/vitest-dev/vitest/issues/4383](https://togithub.com/vitest-dev/vitest/issues/4383) [<samp>(9021e)</samp>](https://togithub.com/vitest-dev/vitest/commit/9021e8b8)

#####    🐞 Bug Fixes

-   Add multiple globals in VM+JSDOM  -  by [@&#8203;nstepien](https://togithub.com/nstepien) in [https://github.com/vitest-dev/vitest/issues/4199](https://togithub.com/vitest-dev/vitest/issues/4199) and [https://github.com/vitest-dev/vitest/issues/4202](https://togithub.com/vitest-dev/vitest/issues/4202) [<samp>(fc947)</samp>](https://togithub.com/vitest-dev/vitest/commit/fc947ce6)
-   Ignore "plugins" field in snapshotFormat option  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4204](https://togithub.com/vitest-dev/vitest/issues/4204) [<samp>(db1ff)</samp>](https://togithub.com/vitest-dev/vitest/commit/db1ff438)
-   `nextTick` mocking error message to mention correct config option  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4215](https://togithub.com/vitest-dev/vitest/issues/4215) [<samp>(98fe3)</samp>](https://togithub.com/vitest-dev/vitest/commit/98fe3d55)
-   Export VitestUtils interface  -  by [@&#8203;fbritoferreira](https://togithub.com/fbritoferreira) in [https://github.com/vitest-dev/vitest/issues/4301](https://togithub.com/vitest-dev/vitest/issues/4301) [<samp>(b1439)</samp>](https://togithub.com/vitest-dev/vitest/commit/b1439852)
-   Assertion diff message handle non-writable sub-properties  -  by [@&#8203;bfamchon](https://togithub.com/bfamchon) in [https://github.com/vitest-dev/vitest/issues/4278](https://togithub.com/vitest-dev/vitest/issues/4278) [<samp>(7e1a0)</samp>](https://togithub.com/vitest-dev/vitest/commit/7e1a0f83)
-   Don't bundle import from rollup  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4392](https://togithub.com/vitest-dev/vitest/issues/4392) [<samp>(3b584)</samp>](https://togithub.com/vitest-dev/vitest/commit/3b58487b)
-   Support accessing fixture at same index of dependency fixture  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4387](https://togithub.com/vitest-dev/vitest/issues/4387) [<samp>(4cd1d)</samp>](https://togithub.com/vitest-dev/vitest/commit/4cd1d3ce)
-   Make asynchronous fixtures work concurrently  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4403](https://togithub.com/vitest-dev/vitest/issues/4403) [<samp>(3c9f9)</samp>](https://togithub.com/vitest-dev/vitest/commit/3c9f920a)
-   Coverage.100 crash when using as an cli argument  -  by [@&#8203;marcelobotega](https://togithub.com/marcelobotega) in [https://github.com/vitest-dev/vitest/issues/4346](https://togithub.com/vitest-dev/vitest/issues/4346) [<samp>(0db38)</samp>](https://togithub.com/vitest-dev/vitest/commit/0db386dc)
-   Support typechecking with Yarn PnP  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4412](https://togithub.com/vitest-dev/vitest/issues/4412) [<samp>(1ecbe)</samp>](https://togithub.com/vitest-dev/vitest/commit/1ecbe74d)
-   Support accessing task from test context without accessing fixtures  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4419](https://togithub.com/vitest-dev/vitest/issues/4419) [<samp>(3397f)</samp>](https://togithub.com/vitest-dev/vitest/commit/3397fdc4)
-   Copy custom asymmetric matchers to local `expect`  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4405](https://togithub.com/vitest-dev/vitest/issues/4405) [<samp>(9fe38)</samp>](https://togithub.com/vitest-dev/vitest/commit/9fe38737)
-   Apply serializer to `Error` instance for thrown snapshot  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4396](https://togithub.com/vitest-dev/vitest/issues/4396) [<samp>(ac309)</samp>](https://togithub.com/vitest-dev/vitest/commit/ac309726)
-   Throw an error when running "vitest typecheck"  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4439](https://togithub.com/vitest-dev/vitest/issues/4439) [<samp>(7f502)</samp>](https://togithub.com/vitest-dev/vitest/commit/7f502299)
-   Don't expand snapshot diff by default  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4430](https://togithub.com/vitest-dev/vitest/issues/4430) [<samp>(8983c)</samp>](https://togithub.com/vitest-dev/vitest/commit/8983cd48)
-   Handle errors thrown in fixtures  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) [<samp>(f6844)</samp>](https://togithub.com/vitest-dev/vitest/commit/f6844ad6)
-   Default --open to !process.env.CI  -  by [@&#8203;collinstevens](https://togithub.com/collinstevens) in [https://github.com/vitest-dev/vitest/issues/4477](https://togithub.com/vitest-dev/vitest/issues/4477) [<samp>(088a0)</samp>](https://togithub.com/vitest-dev/vitest/commit/088a047d)
-   Disable ESBuild when user config disables it  -  by [@&#8203;Namchee](https://togithub.com/Namchee) in [https://github.com/vitest-dev/vitest/issues/4492](https://togithub.com/vitest-dev/vitest/issues/4492) [<samp>(9abde)</samp>](https://togithub.com/vitest-dev/vitest/commit/9abde204)
-   Inherit concurrent/sequential in nested suites  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4482](https://togithub.com/vitest-dev/vitest/issues/4482) [<samp>(ca168)</samp>](https://togithub.com/vitest-dev/vitest/commit/ca168a14)
-   Provide customTesters to asymmetric matchers  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(ac665)</samp>](https://togithub.com/vitest-dev/vitest/commit/ac665c96)
-   Apply `retry` and `bail` from test config file  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4530](https://togithub.com/vitest-dev/vitest/issues/4530) [<samp>(94f9a)</samp>](https://togithub.com/vitest-dev/vitest/commit/94f9a3ca)
-   Respect trailing slash when filtering by file path  -  by [@&#8203;ibuibu](https://togithub.com/ibuibu) in [https://github.com/vitest-dev/vitest/issues/4538](https://togithub.com/vitest-dev/vitest/issues/4538) [<samp>(f377a)</samp>](https://togithub.com/vitest-dev/vitest/commit/f377a3bf)
-   Date prototype when using setSystemTime  -  by [@&#8203;spiroka](https://togithub.com/spiroka) in [https://github.com/vitest-dev/vitest/issues/4584](https://togithub.com/vitest-dev/vitest/issues/4584) [<samp>(3f8c3)</samp>](https://togithub.com/vitest-dev/vitest/commit/3f8c3fb1)
-   BrowserTestRunner called incorrect super methods  -  by [@&#8203;samthor](https://togithub.com/samthor) in [https://github.com/vitest-dev/vitest/issues/4632](https://togithub.com/vitest-dev/vitest/issues/4632) [<samp>(8385c)</samp>](https://togithub.com/vitest-dev/vitest/commit/8385c981)
-   Set process name for idle workers  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4641](https://togithub.com/vitest-dev/vitest/issues/4641) [<samp>(eca25)</samp>](https://togithub.com/vitest-dev/vitest/commit/eca25dc9)
-   **bench**:
    -   Extract ChainableBenchmarkAPI type  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4537](https://togithub.com/vitest-dev/vitest/issues/4537) [<samp>(79e9b)</samp>](https://togithub.com/vitest-dev/vitest/commit/79e9bfaa)
-   **browser**:
    -   Improve error handling and don't rely on Node.js builtin modules in browser mode  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4244](https://togithub.com/vitest-dev/vitest/issues/4244) [<samp>(e7e8c)</samp>](https://togithub.com/vitest-dev/vitest/commit/e7e8c3cc)
    -   Disable hijacking ES modules until vi.mock is implemented  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4414](https://togithub.com/vitest-dev/vitest/issues/4414) [<samp>(ab556)</samp>](https://togithub.com/vitest-dev/vitest/commit/ab556376)
    -   Add vitest/ imports to entries  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4514](https://togithub.com/vitest-dev/vitest/issues/4514) [<samp>(648bc)</samp>](https://togithub.com/vitest-dev/vitest/commit/648bccb9)
    -   Wait until vite finishes prebundling of vitest dependencies  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4518](https://togithub.com/vitest-dev/vitest/issues/4518) [<samp>(56ee7)</samp>](https://togithub.com/vitest-dev/vitest/commit/56ee7026)
    -   Allow for `pretty-format` as a sibling dependency  -  by [@&#8203;nicojs](https://togithub.com/nicojs) in [https://github.com/vitest-dev/vitest/issues/4590](https://togithub.com/vitest-dev/vitest/issues/4590) [<samp>(ed50a)</samp>](https://togithub.com/vitest-dev/vitest/commit/ed50a944)
    -   Don't go into an infinite reload loop, don't fail if "error" event is caught  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4618](https://togithub.com/vitest-dev/vitest/issues/4618) [<samp>(ec3d6)</samp>](https://togithub.com/vitest-dev/vitest/commit/ec3d6949)
    -   Respect "server" option in vite config  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4627](https://togithub.com/vitest-dev/vitest/issues/4627) [<samp>(723f6)</samp>](https://togithub.com/vitest-dev/vitest/commit/723f65b9)
-   **cli**:
    -   Do not capture `stdin` when in run mode  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4310](https://togithub.com/vitest-dev/vitest/issues/4310) [<samp>(fc51a)</samp>](https://togithub.com/vitest-dev/vitest/commit/fc51ad04)
-   **config**:
    -   Type issue of `pool` and `poolMatchGlobs` in defineConfig  -  by [@&#8203;InfiniteXyy](https://togithub.com/InfiniteXyy) in [https://github.com/vitest-dev/vitest/issues/4282](https://togithub.com/vitest-dev/vitest/issues/4282) [<samp>(9112c)</samp>](https://togithub.com/vitest-dev/vitest/commit/9112cc96)
-   **coverage**:
    -   `thresholdAutoUpdate` to detect zero limits  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4287](https://togithub.com/vitest-dev/vitest/issues/4287) [<samp>(a29fe)</samp>](https://togithub.com/vitest-dev/vitest/commit/a29fecee)
    -   Exclude files and directories starting with dot by default  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4428](https://togithub.com/vitest-dev/vitest/issues/4428) [<samp>(b3327)</samp>](https://togithub.com/vitest-dev/vitest/commit/b3327a64)
    -   Improve memory usage by writing temporary files on file system  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4603](https://togithub.com/vitest-dev/vitest/issues/4603) [<samp>(4166c)</samp>](https://togithub.com/vitest-dev/vitest/commit/4166c413)
-   **deps**:
    -   Update dependency v8-to-istanbul to ^9.2.0  -  by [@&#8203;renovate](https://togithub.com/renovate)\[bot] in[https://github.com/vitest-dev/vitest/issues/4583](https://togithub.com/vitest-dev/vitest/issues/4583)3 [<samp>(a70f2)</samp>](https://togithub.com/vitest-dev/vitest/commit/a70f216d)
    -   Update dependency std-env to ^3.5.0  -  by [@&#8203;renovate](https://togithub.com/renovate)\[bot] in[https://github.com/vitest-dev/vitest/issues/4582](https://togithub.com/vitest-dev/vitest/issues/4582)2 [<samp>(1fdd6)</samp>](https://togithub.com/vitest-dev/vitest/commit/1fdd6fe2)
-   **example**:
    -   Resolve type error  -  by [@&#8203;jqkk](https://togithub.com/jqkk) in [https://github.com/vitest-dev/vitest/issues/4515](https://togithub.com/vitest-dev/vitest/issues/4515) [<samp>(2d1b4)</samp>](https://togithub.com/vitest-dev/vitest/commit/2d1b4785)
-   **expect**:
    -   Publish types file  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(5996c)</samp>](https://togithub.com/vitest-dev/vitest/commit/5996c8c0)
    -   `Object.freeze` breaks `toEqual`  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4303](https://togithub.com/vitest-dev/vitest/issues/4303) [<samp>(a4501)</samp>](https://togithub.com/vitest-dev/vitest/commit/a4501d6b)
    -   Publish semantically correct chai types  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4322](https://togithub.com/vitest-dev/vitest/issues/4322) [<samp>(80a70)</samp>](https://togithub.com/vitest-dev/vitest/commit/80a706a1)
    -   Print full error if promise is rejected  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4467](https://togithub.com/vitest-dev/vitest/issues/4467) [<samp>(cadb9)</samp>](https://togithub.com/vitest-dev/vitest/commit/cadb9cd3)
    -   Don't fail when using jest expect  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4517](https://togithub.com/vitest-dev/vitest/issues/4517) [<samp>(60d6d)</samp>](https://togithub.com/vitest-dev/vitest/commit/60d6d173)
-   **happy-dom**:
    -   Don't crash when calling useFakeTimers with empty config  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4214](https://togithub.com/vitest-dev/vitest/issues/4214) [<samp>(2e1a1)</samp>](https://togithub.com/vitest-dev/vitest/commit/2e1a1bd4)
-   **jsdom**:
    -   Don't go into an infinite recusion when calling atob  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) [<samp>(da794)</samp>](https://togithub.com/vitest-dev/vitest/commit/da7949dc)
-   **runner**:
    -   Fixture needs to be initialized for each test  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4250](https://togithub.com/vitest-dev/vitest/issues/4250) [<samp>(76a93)</samp>](https://togithub.com/vitest-dev/vitest/commit/76a93298)
    -   Nested tests should throw errors  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4262](https://togithub.com/vitest-dev/vitest/issues/4262) [<samp>(8ac9f)</samp>](https://togithub.com/vitest-dev/vitest/commit/8ac9f8b1)
    -   Removes deprecated `error` option from TaskResult  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4313](https://togithub.com/vitest-dev/vitest/issues/4313) [<samp>(4cee6)</samp>](https://togithub.com/vitest-dev/vitest/commit/4cee6711)
    -   Preserve fixtures when calling runif and skipif  -  by [@&#8203;dsyddall](https://togithub.com/dsyddall) in [https://github.com/vitest-dev/vitest/issues/4585](https://togithub.com/vitest-dev/vitest/issues/4585) and [https://github.com/vitest-dev/vitest/issues/4591](https://togithub.com/vitest-dev/vitest/issues/4591) [<samp>(515ea)</samp>](https://togithub.com/vitest-dev/vitest/commit/515eadf9)
    -   PassWithNoTests option not work  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4553](https://togithub.com/vitest-dev/vitest/issues/4553) [<samp>(8d183)</samp>](https://togithub.com/vitest-dev/vitest/commit/8d183da4)
-   **vite-node**:
    -   Have a separate cache for web/ssr transforms  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4221](https://togithub.com/vitest-dev/vitest/issues/4221) [<samp>(ca5db)</samp>](https://togithub.com/vitest-dev/vitest/commit/ca5dbef4)
    -   Mjs files watch not work  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/3982](https://togithub.com/vitest-dev/vitest/issues/3982) [<samp>(77ea9)</samp>](https://togithub.com/vitest-dev/vitest/commit/77ea9326)
-   **vitest**:
    -   Make [@&#8203;types/node](https://togithub.com/types/node) optional  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4210](https://togithub.com/vitest-dev/vitest/issues/4210) [<samp>(a5383)</samp>](https://togithub.com/vitest-dev/vitest/commit/a5383c2d)
    -   Inline chai types instead of using [@&#8203;types/chai](https://togithub.com/types/chai)  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4209](https://togithub.com/vitest-dev/vitest/issues/4209) [<samp>(5f477)</samp>](https://togithub.com/vitest-dev/vitest/commit/5f4774fc)
    -   Don't initialize globalSetup if workspace doesn't run tests  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4213](https://togithub.com/vitest-dev/vitest/issues/4213) [<samp>(06461)</samp>](https://togithub.com/vitest-dev/vitest/commit/0646197e)
    -   Deduplicate vitest when running globally or in a workspace  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4238](https://togithub.com/vitest-dev/vitest/issues/4238) [<samp>(93504)</samp>](https://togithub.com/vitest-dev/vitest/commit/93504619)
    -   Print file path instead of "unknown test" when logging  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) in [https://github.com/vitest-dev/vitest/issues/4146](https://togithub.com/vitest-dev/vitest/issues/4146) [<samp>(ec2e8)</samp>](https://togithub.com/vitest-dev/vitest/commit/ec2e8040)
    -   Failed to load custom environment from js/ts file  -  by [@&#8203;Dunqing](https://togithub.com/Dunqing) and [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4255](https://togithub.com/vitest-dev/vitest/issues/4255) [<samp>(da8d0)</samp>](https://togithub.com/vitest-dev/vitest/commit/da8d0570)
    -   Support assets in new URL in Vite 5  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4258](https://togithub.com/vitest-dev/vitest/issues/4258) [<samp>(d280f)</samp>](https://togithub.com/vitest-dev/vitest/commit/d280f489)
    -   Correctly hoist `vi.hoisted` if assigned  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4285](https://togithub.com/vitest-dev/vitest/issues/4285) [<samp>(ff93a)</samp>](https://togithub.com/vitest-dev/vitest/commit/ff93a573)
    -   Run globalSetup from the root config even if it's not in a workspace  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4325](https://togithub.com/vitest-dev/vitest/issues/4325) [<samp>(4293e)</samp>](https://togithub.com/vitest-dev/vitest/commit/4293e1b1)
    -   Pass correct mode in vitest config function  -  by [@&#8203;adriencaccia](https://togithub.com/adriencaccia) in [https://github.com/vitest-dev/vitest/issues/4399](https://togithub.com/vitest-dev/vitest/issues/4399) [<samp>(b8ca3)</samp>](https://togithub.com/vitest-dev/vitest/commit/b8ca3873)
    -   Throw an error if vitest is imported using require()  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4466](https://togithub.com/vitest-dev/vitest/issues/4466) [<samp>(e5cf1)</samp>](https://togithub.com/vitest-dev/vitest/commit/e5cf1418)
    -   Use correct type for defineProject to allow usage in mergeConfig  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4498](https://togithub.com/vitest-dev/vitest/issues/4498) [<samp>(7dee8)</samp>](https://togithub.com/vitest-dev/vitest/commit/7dee832d)
    -   Throw an error if Vite wasn't able to resolve aliased path  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4503](https://togithub.com/vitest-dev/vitest/issues/4503) [<samp>(50333)</samp>](https://togithub.com/vitest-dev/vitest/commit/503331d8)
    -   Improve vi.waitUntil type to excude falsy types  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4572](https://togithub.com/vitest-dev/vitest/issues/4572) [<samp>(23652)</samp>](https://togithub.com/vitest-dev/vitest/commit/23652300)
    -   Add import-meta.d.ts  -  by [@&#8203;macdaddyaz](https://togithub.com/macdaddyaz) in [https://github.com/vitest-dev/vitest/issues/4571](https://togithub.com/vitest-dev/vitest/issues/4571) [<samp>(dd802)</samp>](https://togithub.com/vitest-dev/vitest/commit/dd80288f)
    -   Correctly support CSS variable when using happy-dom  -  by [@&#8203;sheremet-va](https://togithub.com/sheremet-va) in [https://github.com/vitest-dev/vitest/issues/4601](https://togithub.com/vitest-dev/vitest/issues/4601) [<samp>(9fbf3)</samp>](https://togithub.com/vitest-dev/vitest/commit/9fbf39af)
    -   Pass correct server options in workspace  -  by [@&#8203;hironytic](https://togithub.com/hironytic) in [https://github.com/vitest-dev/vitest/issues/4539](https://togithub.com/vitest-dev/vitest/issues/4539) and [https://github.com/vitest-dev/vitest/issues/4540](https://togithub.com/vitest-dev/vitest/issues/4540) [<samp>(241a8)</samp>](https://togithub.com/vitest-dev/vitest/commit/241a8c13)
    -   Independently mock each instance's methods for mocked class  -  by [@&#8203;hi-ogawa](https://togithub.com/hi-ogawa) in [https://github.com/vitest-dev/vitest/issues/4564](https://togithub.com/vitest-dev/vitest/issues/4564) [<samp>(05b05)</samp>](https://togithub.com/vitest-dev/vitest/commit/05b0521c)
-   **vm**:
    -   Remove sequencer usage from createVmThreadsPool function  -  by [@&#8203;mhogeveen](https://togithub.com/mhogeveen) in [https://github.com/vitest-dev/vitest/issues/4638](https://togithub.com/vitest-dev/vitest/issues/4638) [<samp>(54d52)</samp>](https://togithub.com/vitest-dev/vitest/commit/54d52d44)

#####    🏎 Performance

-   Update `log-update` v9  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4390](https://togithub.com/vitest-dev/vitest/issues/4390) [<samp>(ba1df)</samp>](https://togithub.com/vitest-dev/vitest/commit/ba1df849)
-   Close pool early in run-mode  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4623](https://togithub.com/vitest-dev/vitest/issues/4623) [<samp>(e0e20)</samp>](https://togithub.com/vitest-dev/vitest/commit/e0e20176)
-   **coverage-istanbul**: `all: true` instruments already instrumented files  -  by [@&#8203;AriPerkkio](https://togithub.com/AriPerkkio) in [https://github.com/vitest-dev/vitest/issues/4552](https://togithub.com/vitest-dev/vitest/issues/4552) [<samp>(d1e1b)</samp>](https://togithub.com/vitest-dev/vitest/commit/d1e1bc90)

#####     [View changes on GitHub](https://togithub.com/vitest-dev/vitest/compare/v0.34.7...v1.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-18 13:46:29 +00:00
JimmFly
cef9e0539d fix(storybook): fix test (#5325)
<img width="440" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/329f9c12-cc0b-4aae-9352-3811ab0a27a6">
2023-12-18 13:36:56 +00:00
EYHN
a1c9ac80d8 ci: fix e2e (#5329) 2023-12-18 12:24:48 +00:00
EYHN
1b5837e545 ci: fix oxlint version (#5328) 2023-12-18 20:10:01 +08:00
LongYinan
a3d4c5c709 chore(server): split gcloud sql proxy into a separate deployment (#5101)
After merge this pull request, need to change the `DATABASE_URL` in environment secrets (stable/beta) from `127.0.0.1` to `affine-cloud-sql-proxy`
2023-12-15 13:28:12 +00:00
Peng Xiao
fc56a53acd fix(core): page mode switch sometimes not working (#5306)
Should not pass inline object without memo into `InternalLottie`.
cdc96876b0/packages/frontend/component/src/components/internal-lottie/index.tsx (L77)

In the detail page when during syncing on the cloud, the detail page will be re-rendered constantly because of `useCurrentSyncEngineStatus` hook, which will then cause `PageSwitchItem` to re-render and forcing the internal lottie state to reset. As a result the click event may not be captured somehow.
2023-12-15 08:21:41 +00:00
EYHN
fe2851d3e9 refactor: workspace manager (#5060) 2023-12-15 07:20:50 +00:00
Yifeng Wang
af15aa06d4 feat: bump blocksuite (#5286)
Co-authored-by: donteatfriedrice <huisheng.chen7788@outlook.com>
2023-12-15 12:57:52 +08:00
LongYinan
136b4ccb4e chore: bump up github/codeql-action action to v3 (#5298)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [github/codeql-action](https://togithub.com/github/codeql-action) | action | major | `v2` -> `v3` |

---

### Release Notes

<details>
<summary>github/codeql-action (github/codeql-action)</summary>

### [`v3`](https://togithub.com/github/codeql-action/compare/v2...v3)

[Compare Source](https://togithub.com/github/codeql-action/compare/v2...v3)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuOTMuMSIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-14 13:52:18 +00:00
DarkSky
e9dfa93b52 feat: add cache for blob query (#5178) 2023-12-14 09:50:56 +00:00
DarkSky
0c2d2f8d16 feat: struct type feature config (#5142) 2023-12-14 09:50:52 +00:00
DarkSky
2b7f6f8b74 feat: integrate new modules (#5087) 2023-12-14 09:50:46 +00:00
DarkSky
a93c12e122 feat: user usage gql & test case improve (#5076) 2023-12-14 09:50:42 +00:00
DarkSky
ad23ead5e4 feat: integrate user usage into apis (#5075) 2023-12-14 09:50:37 +00:00
Peng Xiao
63de73a815 fix: width blink in side bar (#5291) 2023-12-14 09:20:18 +00:00
Peng Xiao
c66781970b feat(core): add useQueryImmutable (#5299) 2023-12-14 08:04:50 +00:00
Peng Xiao
b925731bf7 fix: add sidebar toggle and windows controls for empty collections page (#5304)
Before this change, when the user gets to an empty collection page & hide the sidebar, there is no sidebar toggle any longer.
Also added windows app control on windows.
2023-12-14 07:13:01 +00:00
Peng Xiao
3efcdc0cc5 fix: detail page missing background (#5303)
before

![CleanShot 2023-12-14 at 14.43.16@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/53900c68-c050-4336-80fb-cd121dcf4d53.png)

after

![CleanShot 2023-12-14 at 14.42.44@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/bd820718-8032-4a30-b250-6541084830be.png)
2023-12-14 06:50:21 +00:00
Peng Xiao
0dc9358972 fix: page title too long style (#5302)
![CleanShot 2023-12-14 at 14.14.30@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/72beba1a-28a2-4192-a676-eea476140940.png)
2023-12-14 06:31:59 +00:00
DarkSky
579828a700 fix: use secure websocket (#5297) 2023-12-13 22:28:04 +08:00
DarkSky
746db2ccfc feat: only follow serverUrlPrefix at redirect to client (#5295) 2023-12-13 20:37:20 +08:00
EYHN
8aac1e09e2 feat(server): independent websocket room for block and awareness (#5285) 2023-12-13 10:31:07 +00:00
DarkSky
77a5552dcd feat: user usage init (#5074) 2023-12-13 09:21:14 +00:00
Peng Xiao
098787bd0c fix(core): collection modal position after modal style changes (#5289)
fix https://github.com/toeverything/AFFiNE/issues/5270
fix TOV-161
2023-12-13 08:14:55 +00:00
Peng Xiao
cd2efb4f0b chore: remove react-resizable-panels (#5284) 2023-12-13 07:52:02 +00:00
Peng Xiao
ce64685176 refactor(core): side bar resizing (#5280)
Rewrite sidebar panel using a customized react-resizable-panels version that supports sidebar pixel sizing (not using flex percentages).

Now the left & right sidebar using the same `ResizePanel` impl.

fix https://github.com/toeverything/AFFiNE/issues/5271
fix TOV-163
fix TOV-146
fix TOV-168
fix TOV-109
fix TOV-165
2023-12-13 07:52:01 +00:00
Peng Xiao
2a9a6855f4 test(core): rewrite some flaky assertions (#5287) 2023-12-13 07:51:59 +00:00
Peng Xiao
ad2c254ca3 fix(core): simple history entry position (#5290)
fix AFF-377
2023-12-13 07:33:15 +00:00
LongYinan
e4369c7f0b chore: bump up @endo/static-module-record version to v1 (#5281)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@endo/static-module-record](https://togithub.com/endojs/endo/tree/master/packages/static-module-record#readme) ([source](https://togithub.com/endojs/endo)) | [`^0.8.2` -> `^1.0.0`](https://renovatebot.com/diffs/npm/@endo%2fstatic-module-record/0.8.2/1.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@endo%2fstatic-module-record/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@endo%2fstatic-module-record/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@endo%2fstatic-module-record/0.8.2/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@endo%2fstatic-module-record/0.8.2/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>endojs/endo (@&#8203;endo/static-module-record)</summary>

### [`v1.0.0`](https://togithub.com/endojs/endo/compare/@endo/static-module-record@0.8.2...@endo/static-module-record@1.0.0)

[Compare Source](https://togithub.com/endojs/endo/compare/@endo/static-module-record@0.8.2...@endo/static-module-record@1.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-13 07:24:11 +00:00
Peng Xiao
883ab46557 fix(core): bg color issues in transparent mode (#5278)
fix the following style issue
![CleanShot 2023-12-13 at 00.06.13@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/46f5e766-e6c9-4965-bab7-6fd6dbb2c651.png)
2023-12-13 07:14:24 +00:00
JimmFly
7d32ddf539 fix(core): fix window cannot be dragged on the collection page (#5269)
close #5268
close TOV-162

https://github.com/toeverything/AFFiNE/assets/102217452/d8f606c0-4c18-4a7e-be3f-d2e611ffecbf
2023-12-13 05:26:28 +00:00
Peng Xiao
31dc1f5e00 fix(electron): use dynamic load for exposed meta (#5251)
There is high possibilities of  circular dependencies when importing `exposed-meta` module. Change it to dynamic import to mitigate the issue..
2023-12-13 05:17:17 +00:00
Peng Xiao
c9f900b69c fix(core): page header style changes (#5279)
![CleanShot 2023-12-13 at 00.09.19@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/476fe4de-4066-4b1d-8823-d23a31ef692b.png)
2023-12-13 05:06:29 +00:00
regischen
738302be40 fix(edgeless): remove stale template (#5275) 2023-12-13 12:54:26 +08:00
liuyi
797cd5c6eb fix(server): avoid repeatly register providers (#5265) 2023-12-13 02:12:38 +00:00
JimmFly
f4a52c031f feat(core): support sidebar page item dnd (#5132)
Added the ability to drag page items from the `all pages` view to the sidebar, including `favourites,` `collection` and `trash`. Page items in `favourites` and `collection` can also be dragged between each other. However, linked subpages cannot be dragged.

Additionally, an operation menu and ‘add’ button have been provided for the sidebar’s page items, enabling the addition of a subpage, renaming, deletion or removal from the sidebar.

On the code front, the `useSidebarDrag` hooks have been implemented for consolidating drag events. The functions `getDragItemId` and `getDropItemId` have been created, and they accept type and ID to obtain itemId.

https://github.com/toeverything/AFFiNE/assets/102217452/d06bac18-3c28-41c9-a7d4-72de955d7b11
2023-12-12 16:04:58 +00:00
EYHN
b782b3fb1b fix(core): polling to search in cmdk (#5274)
This is a temporary solution until https://github.com/toeverything/blocksuite/issues/5668 be solved.
2023-12-12 18:42:07 +08:00
李华桥
eff344a9c1 Merge branch 'canary' into stable 2023-12-12 16:45:47 +08:00
Flrande
9aa33d0228 feat: bump blocksuite (#5267)
Change history: 2b5bb47...2b3d2ba
2023-12-12 06:18:30 +00:00
liuyi
bf97a07d1f fix(server): use last update creating time as snasphot update timestamp (#5266) 2023-12-12 06:03:34 +00:00
李华桥
c89ebab596 Merge branch 'canary' into stable 2023-12-12 11:04:33 +08:00
EYHN
68e7577841 fix(core): fix editor sidebar open on resize (#5262) 2023-12-12 11:02:33 +08:00
JimmFly
38e46bc3b2 fix(core): adjust share edgeless display error (#5263)
close #5261

https://github.com/toeverything/AFFiNE/assets/102217452/8a7c4347-96df-45a3-973a-806876e5703d
2023-12-11 10:55:23 +00:00
liuyi
62f4421b7c fix(server): avoid updates persist forever (#5258) 2023-12-11 17:42:25 +08:00
liuyi
30ecee483d fix(server): avoid updates persist forever (#5258) 2023-12-11 09:17:49 +00:00
JimmFly
feb7bd9fef fix(cli): fix storybook build error (#5257)
<img width="1036" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/477d653e-80b5-4364-a073-e3386cd7ab17">
2023-12-11 08:07:43 +00:00
LongYinan
681d25c67c chore: bump up @electron-forge/maker-base version to v7.2.0 (#5191)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@electron-forge/maker-base](https://togithub.com/electron/forge) | [`7.1.0` -> `7.2.0`](https://renovatebot.com/diffs/npm/@electron-forge%2fmaker-base/7.1.0/7.2.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@electron-forge%2fmaker-base/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@electron-forge%2fmaker-base/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@electron-forge%2fmaker-base/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@electron-forge%2fmaker-base/7.1.0/7.2.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>electron/forge (@&#8203;electron-forge/maker-base)</summary>

### [`v7.2.0`](https://togithub.com/electron/forge/releases/tag/v7.2.0)

[Compare Source](https://togithub.com/electron/forge/compare/v7.1.0...v7.2.0)

#### What's Changed

##### Features

-   feat: add support for sequential groups of webpack builds by [@&#8203;MarshallOfSound](https://togithub.com/MarshallOfSound) in [https://github.com/electron/forge/pull/3435](https://togithub.com/electron/forge/pull/3435)

##### Fixes

-   fix: handle webpack configs exported as default by [@&#8203;MarshallOfSound](https://togithub.com/MarshallOfSound) in [https://github.com/electron/forge/pull/3427](https://togithub.com/electron/forge/pull/3427)
-   fix: set empty publicPath for preload scripts by [@&#8203;MarshallOfSound](https://togithub.com/MarshallOfSound) in [https://github.com/electron/forge/pull/3428](https://togithub.com/electron/forge/pull/3428)
-   fix: ensure that webpack is run once per arch for universal builds by [@&#8203;MarshallOfSound](https://togithub.com/MarshallOfSound) in [https://github.com/electron/forge/pull/3433](https://togithub.com/electron/forge/pull/3433)

##### Documentation

-   docs: remove mention of v5 -> v6 migration by [@&#8203;erickzhao](https://togithub.com/erickzhao) in [https://github.com/electron/forge/pull/3412](https://togithub.com/electron/forge/pull/3412)
-   docs: add notes on publishing a new monorepo package by [@&#8203;erickzhao](https://togithub.com/erickzhao) in [https://github.com/electron/forge/pull/3415](https://togithub.com/electron/forge/pull/3415)

##### Other Changes

-   build(docs): enable API documentation builds for Forge v7 by [@&#8203;erickzhao](https://togithub.com/erickzhao) in [https://github.com/electron/forge/pull/3413](https://togithub.com/electron/forge/pull/3413)
-   ci: allow manual API documentation publish by [@&#8203;dsanders11](https://togithub.com/dsanders11) in [https://github.com/electron/forge/pull/3414](https://togithub.com/electron/forge/pull/3414)
-   refactor: dedupe key resolver for static publishers by [@&#8203;MarshallOfSound](https://togithub.com/MarshallOfSound) in [https://github.com/electron/forge/pull/3421](https://togithub.com/electron/forge/pull/3421)
-   chore: bump electronjs/node to 2.1.0 (main) by [@&#8203;electron-roller](https://togithub.com/electron-roller) in [https://github.com/electron/forge/pull/3422](https://togithub.com/electron/forge/pull/3422)
-   chore: update deps to clear some audit warnings by [@&#8203;dsanders11](https://togithub.com/dsanders11) in [https://github.com/electron/forge/pull/3429](https://togithub.com/electron/forge/pull/3429)

**Full Changelog**: https://github.com/electron/forge/compare/v7.1.0...v7.2.0

![image](https://togithub.com/electron/forge/assets/33054982/9c4d7096-4942-419a-96b1-123c197e5cf6)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-11 07:43:15 +00:00
LongYinan
6a46ea85e7 chore: upgrade rustup toolchain (#5246) 2023-12-11 07:28:09 +00:00
LongYinan
73c2750596 chore: upgrade to yarn@4.0.2 (#5245) 2023-12-11 07:28:07 +00:00
LongYinan
8a22fbbec2 chore: bump up marked version to v11 (#5200)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [marked](https://marked.js.org) ([source](https://togithub.com/markedjs/marked)) | [`^9.1.2` -> `^11.0.0`](https://renovatebot.com/diffs/npm/marked/9.1.6/11.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/marked/11.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/marked/11.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/marked/9.1.6/11.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/marked/9.1.6/11.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>markedjs/marked (marked)</summary>

### [`v11.0.0`](https://togithub.com/markedjs/marked/releases/tag/v11.0.0)

[Compare Source](https://togithub.com/markedjs/marked/compare/v10.0.0...v11.0.0)

##### Bug Fixes

-   clean up rules so they can be typed ([#&#8203;3087](https://togithub.com/markedjs/marked/issues/3087)) ([175fc0c](175fc0c321))
-   fix marked types ([#&#8203;3103](https://togithub.com/markedjs/marked/issues/3103)) ([edae309](edae309505))

##### BREAKING CHANGES

-   Lexer.rules object has been changed so it can be properly types. Some intermediate rules have been removed.

### [`v10.0.0`](https://togithub.com/markedjs/marked/releases/tag/v10.0.0)

[Compare Source](https://togithub.com/markedjs/marked/compare/v9.1.6...v10.0.0)

##### Bug Fixes

-   run spec tests with testutils ([#&#8203;3017](https://togithub.com/markedjs/marked/issues/3017)) ([014d4e6](014d4e61f6))

##### BREAKING CHANGES

-   drop support for node v16

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-11 07:13:01 +00:00
LongYinan
4de832d69d chore: bump up vite-plugin-static-copy version to v1 (#5205)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite-plugin-static-copy](https://togithub.com/sapphi-red/vite-plugin-static-copy) | [`^0.17.1` -> `^1.0.0`](https://renovatebot.com/diffs/npm/vite-plugin-static-copy/0.17.1/1.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite-plugin-static-copy/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite-plugin-static-copy/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite-plugin-static-copy/0.17.1/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite-plugin-static-copy/0.17.1/1.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sapphi-red/vite-plugin-static-copy (vite-plugin-static-copy)</summary>

### [`v1.0.0`](https://togithub.com/sapphi-red/vite-plugin-static-copy/blob/HEAD/CHANGELOG.md#100)

[Compare Source](https://togithub.com/sapphi-red/vite-plugin-static-copy/compare/v0.17.1...vite-plugin-static-copy@1.0.0)

##### Major Changes

-   [`252f62c`](252f62ce6c) Thanks [@&#8203;sapphi-red](https://togithub.com/sapphi-red)! - drop support for Vite 3 and 4

-   [`252f62c`](252f62ce6c) Thanks [@&#8203;sapphi-red](https://togithub.com/sapphi-red)! - drop CJS build. See https://vitejs.dev/guide/troubleshooting.html#this-package-is-esm-only for how to migrate from CJS to ESM.

-   [`252f62c`](252f62ce6c) Thanks [@&#8203;sapphi-red](https://togithub.com/sapphi-red)! - drop node 14.18/16/17/19 support

##### Patch Changes

-   [#&#8203;67](https://togithub.com/sapphi-red/vite-plugin-static-copy/pull/67) [`8707d84`](8707d84d47) Thanks [@&#8203;sapphi-red](https://togithub.com/sapphi-red)! - copy only once even if multiple bundles are generated

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-11 06:55:17 +00:00
JimmFly
e7a7796ef3 feat(core): adjust empty collection style (#5239)
<img width="270" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/18ac2de8-51c0-447e-9c81-787f579eab4e">
2023-12-11 06:30:09 +00:00
Peng Xiao
cfd200528f fix(component): revert theme flickering (#5238) (#5256)
This reverts commit e8cfc807ea.
2023-12-11 06:05:16 +00:00
Peng Xiao
e8cfc807ea fix(electron): use tree-kill for electron dev (#5252)
electron process sometimes do not get re-spawned because of some child process not being closed.
use tree-kill instead.
2023-12-11 04:26:19 +00:00
李华桥
42383dbd29 Merge branch 'canary' into stable 2023-12-10 21:04:15 +08:00
LongYinan
f0c70b92f4 chore: bump up google-github-actions/setup-gcloud action to v2 (#5241)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google-github-actions/setup-gcloud](https://togithub.com/google-github-actions/setup-gcloud) | action | major | `v1` -> `v2` |

---

### Release Notes

<details>
<summary>google-github-actions/setup-gcloud (google-github-actions/setup-gcloud)</summary>

### [`v2`](https://togithub.com/google-github-actions/setup-gcloud/releases/tag/v2)

[Compare Source](https://togithub.com/google-github-actions/setup-gcloud/compare/v1...v2)

**⚠️ This version requires Node 20 or later!**

Floating v2 alias

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-10 07:33:07 +00:00
LongYinan
255d25d20c chore: bump up @opentelemetry/host-metrics version to ^0.34.0 (#5234)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@opentelemetry/host-metrics](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/packages/opentelemetry-host-metrics#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.33.2` -> `^0.34.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2fhost-metrics/0.33.2/0.34.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2fhost-metrics/0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2fhost-metrics/0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2fhost-metrics/0.33.2/0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2fhost-metrics/0.33.2/0.34.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v0.34.0`](607d375595...c7e7000b7b)

[Compare Source](607d375595...c7e7000b7b)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-10 07:20:58 +00:00
Joooye_34
c1bb467013 refactor(core): use debug log replace console when command registry (#5237) 2023-12-09 07:42:04 +00:00
Nadeshiko Manju
a066dfb108 chore: add sha512sum for the released files (#5242) 2023-12-09 15:41:20 +08:00
EYHN
3e9f8e06be chore(env): fix lint error (#5240) 2023-12-09 04:45:13 +00:00
Peng Xiao
5979162a5c fix(component): theme flickering (#5238)
Add color-scheme to html so that the web will use system scheme when scripts has not being loaded;
Use `(prefers-color-scheme: dark)` so that the css vars do not defer load based on `data-theme`, which is set by next-themes (which is deferred).
2023-12-08 10:12:20 +00:00
LongYinan
feed400462 chore: bump up vite version to v5 (#5203)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev) ([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) | [`^4.4.11` -> `^5.0.0`](https://renovatebot.com/diffs/npm/vite/4.5.1/5.0.6) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.1/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.1/5.0.6?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v5.0.6`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small506-2023-12-06-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.5...v5.0.6)

-   perf: in-memory public files check ([#&#8203;15195](https://togithub.com/vitejs/vite/issues/15195)) ([0f9e1bf](https://togithub.com/vitejs/vite/commit/0f9e1bf)), closes [#&#8203;15195](https://togithub.com/vitejs/vite/issues/15195)
-   chore: remove unneccessary eslint-disable-next-line regexp/no-unused-capturing-group ([#&#8203;15247](https://togithub.com/vitejs/vite/issues/15247)) ([35a5bcf](https://togithub.com/vitejs/vite/commit/35a5bcf)), closes [#&#8203;15247](https://togithub.com/vitejs/vite/issues/15247)

### [`v5.0.5`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small505-2023-12-04-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.4...v5.0.5)

-   fix: emit `vite:preloadError` for chunks without deps ([#&#8203;15203](https://togithub.com/vitejs/vite/issues/15203)) ([d8001c5](https://togithub.com/vitejs/vite/commit/d8001c5)), closes [#&#8203;15203](https://togithub.com/vitejs/vite/issues/15203)
-   fix: esbuild glob import resolve error ([#&#8203;15140](https://togithub.com/vitejs/vite/issues/15140)) ([676804d](https://togithub.com/vitejs/vite/commit/676804d)), closes [#&#8203;15140](https://togithub.com/vitejs/vite/issues/15140)
-   fix: json error with position ([#&#8203;15225](https://togithub.com/vitejs/vite/issues/15225)) ([14be75f](https://togithub.com/vitejs/vite/commit/14be75f)), closes [#&#8203;15225](https://togithub.com/vitejs/vite/issues/15225)
-   fix: proxy html path should be encoded ([#&#8203;15223](https://togithub.com/vitejs/vite/issues/15223)) ([5b85040](https://togithub.com/vitejs/vite/commit/5b85040)), closes [#&#8203;15223](https://togithub.com/vitejs/vite/issues/15223)
-   fix(deps): update all non-major dependencies ([#&#8203;15233](https://togithub.com/vitejs/vite/issues/15233)) ([ad3adda](https://togithub.com/vitejs/vite/commit/ad3adda)), closes [#&#8203;15233](https://togithub.com/vitejs/vite/issues/15233)
-   fix(hmr): don't consider CSS dep as a circular dep ([#&#8203;15229](https://togithub.com/vitejs/vite/issues/15229)) ([5f2cdec](https://togithub.com/vitejs/vite/commit/5f2cdec)), closes [#&#8203;15229](https://togithub.com/vitejs/vite/issues/15229)
-   feat: add '\*.mov' to client.d.ts ([#&#8203;15189](https://togithub.com/vitejs/vite/issues/15189)) ([d93a211](https://togithub.com/vitejs/vite/commit/d93a211)), closes [#&#8203;15189](https://togithub.com/vitejs/vite/issues/15189)
-   feat(server): allow disabling built-in shortcuts ([#&#8203;15218](https://togithub.com/vitejs/vite/issues/15218)) ([7fd7c6c](https://togithub.com/vitejs/vite/commit/7fd7c6c)), closes [#&#8203;15218](https://togithub.com/vitejs/vite/issues/15218)
-   chore: replace 'some' with 'includes' in resolveEnvPrefix ([#&#8203;15220](https://togithub.com/vitejs/vite/issues/15220)) ([ee12f30](https://togithub.com/vitejs/vite/commit/ee12f30)), closes [#&#8203;15220](https://togithub.com/vitejs/vite/issues/15220)
-   chore: update the website url for homepage in package.json ([#&#8203;15181](https://togithub.com/vitejs/vite/issues/15181)) ([282bd8f](https://togithub.com/vitejs/vite/commit/282bd8f)), closes [#&#8203;15181](https://togithub.com/vitejs/vite/issues/15181)
-   chore: update vitest to 1.0.0-beta.6 ([#&#8203;15194](https://togithub.com/vitejs/vite/issues/15194)) ([2fce647](https://togithub.com/vitejs/vite/commit/2fce647)), closes [#&#8203;15194](https://togithub.com/vitejs/vite/issues/15194)
-   refactor: make HMR agnostic to environment ([#&#8203;15179](https://togithub.com/vitejs/vite/issues/15179)) ([0571b7c](https://togithub.com/vitejs/vite/commit/0571b7c)), closes [#&#8203;15179](https://togithub.com/vitejs/vite/issues/15179)
-   refactor: use dedicated regex methods ([#&#8203;15228](https://togithub.com/vitejs/vite/issues/15228)) ([0348137](https://togithub.com/vitejs/vite/commit/0348137)), closes [#&#8203;15228](https://togithub.com/vitejs/vite/issues/15228)
-   perf: remove debug only prettifyUrl call ([#&#8203;15204](https://togithub.com/vitejs/vite/issues/15204)) ([73e971f](https://togithub.com/vitejs/vite/commit/73e971f)), closes [#&#8203;15204](https://togithub.com/vitejs/vite/issues/15204)
-   perf: skip computing sourceRoot in injectSourcesContent ([#&#8203;15207](https://togithub.com/vitejs/vite/issues/15207)) ([1df1fd1](https://togithub.com/vitejs/vite/commit/1df1fd1)), closes [#&#8203;15207](https://togithub.com/vitejs/vite/issues/15207)

### [`v5.0.4`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small504-2023-11-29-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.3...v5.0.4)

-   fix: bindCLIShortcuts to proper server ([#&#8203;15162](https://togithub.com/vitejs/vite/issues/15162)) ([67ac572](https://togithub.com/vitejs/vite/commit/67ac572)), closes [#&#8203;15162](https://togithub.com/vitejs/vite/issues/15162)
-   fix: revert "fix: js fallback sourcemap content should be using original content ([#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135))" ([#&#8203;15178](https://togithub.com/vitejs/vite/issues/15178)) ([d2a2493](https://togithub.com/vitejs/vite/commit/d2a2493)), closes [#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135) [#&#8203;15178](https://togithub.com/vitejs/vite/issues/15178)
-   fix(define): allow define process.env ([#&#8203;15173](https://togithub.com/vitejs/vite/issues/15173)) ([ec401da](https://togithub.com/vitejs/vite/commit/ec401da)), closes [#&#8203;15173](https://togithub.com/vitejs/vite/issues/15173)
-   fix(resolve): respect order of browser in mainFields when resolving ([#&#8203;15137](https://togithub.com/vitejs/vite/issues/15137)) ([4a111aa](https://togithub.com/vitejs/vite/commit/4a111aa)), closes [#&#8203;15137](https://togithub.com/vitejs/vite/issues/15137)
-   feat: preserve vite.middlewares connect instance after restarts ([#&#8203;15166](https://togithub.com/vitejs/vite/issues/15166)) ([9474c4b](https://togithub.com/vitejs/vite/commit/9474c4b)), closes [#&#8203;15166](https://togithub.com/vitejs/vite/issues/15166)
-   refactor: align with Promise.withResolvers() ([#&#8203;15171](https://togithub.com/vitejs/vite/issues/15171)) ([642f9bc](https://togithub.com/vitejs/vite/commit/642f9bc)), closes [#&#8203;15171](https://togithub.com/vitejs/vite/issues/15171)

### [`v5.0.3`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small503-2023-11-28-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.2...v5.0.3)

-   fix: `generateCodeFrame` infinite loop ([#&#8203;15093](https://togithub.com/vitejs/vite/issues/15093)) ([6619de7](https://togithub.com/vitejs/vite/commit/6619de7)), closes [#&#8203;15093](https://togithub.com/vitejs/vite/issues/15093)
-   fix: js fallback sourcemap content should be using original content ([#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135)) ([227d56d](https://togithub.com/vitejs/vite/commit/227d56d)), closes [#&#8203;15135](https://togithub.com/vitejs/vite/issues/15135)
-   fix(css): render correct asset url when CSS chunk name is nested ([#&#8203;15154](https://togithub.com/vitejs/vite/issues/15154)) ([ef403c0](https://togithub.com/vitejs/vite/commit/ef403c0)), closes [#&#8203;15154](https://togithub.com/vitejs/vite/issues/15154)
-   fix(css): use non-nested chunk name if facadeModule is not CSS file ([#&#8203;15155](https://togithub.com/vitejs/vite/issues/15155)) ([811e392](https://togithub.com/vitejs/vite/commit/811e392)), closes [#&#8203;15155](https://togithub.com/vitejs/vite/issues/15155)
-   fix(dev): bind plugin context functions ([#&#8203;14569](https://togithub.com/vitejs/vite/issues/14569)) ([cb3243c](https://togithub.com/vitejs/vite/commit/cb3243c)), closes [#&#8203;14569](https://togithub.com/vitejs/vite/issues/14569)
-   chore(deps): update all non-major dependencies ([#&#8203;15145](https://togithub.com/vitejs/vite/issues/15145)) ([7ff2c0a](https://togithub.com/vitejs/vite/commit/7ff2c0a)), closes [#&#8203;15145](https://togithub.com/vitejs/vite/issues/15145)
-   build: handle latest json-stable-stringify replacement ([#&#8203;15049](https://togithub.com/vitejs/vite/issues/15049)) ([bcc4a61](https://togithub.com/vitejs/vite/commit/bcc4a61)), closes [#&#8203;15049](https://togithub.com/vitejs/vite/issues/15049)

### [`v5.0.2`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small502-2023-11-21-small)

[Compare Source](https://togithub.com/vitejs/vite/compare/v5.0.1...v5.0.2)

-   fix: make htmlFallback more permissive ([#&#8203;15059](https://togithub.com/vitejs/vite/issues/15059)) ([6fcceeb](https://togithub.com/vitejs/vite/commit/6fcceeb)), closes [#&#8203;15059](https://togithub.com/vitejs/vite/issues/15059)

### [`v5.0.1`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#small501-2023-11-21-small)

-   test: avoid read check when running as root ([#&#8203;14884](https://togithub.com/vitejs/vite/issues/14884)) ([1d9516c](https://togithub.com/vitejs/vite/commit/1d9516c)), closes [#&#8203;14884](https://togithub.com/vitejs/vite/issues/14884)
-   perf(hmr): skip traversed modules when checking circular imports ([#&#8203;15034](https://togithub.com/vitejs/vite/issues/15034)) ([41e437f](https://togithub.com/vitejs/vite/commit/41e437f)), closes [#&#8203;15034](https://togithub.com/vitejs/vite/issues/15034)
-   fix: run htmlFallbackMiddleware for no accept header requests ([#&#8203;15025](https://togithub.com/vitejs/vite/issues/15025)) ([b93dfe3](https://togithub.com/vitejs/vite/commit/b93dfe3)), closes [#&#8203;15025](https://togithub.com/vitejs/vite/issues/15025)
-   fix: update type CSSModulesOptions interface ([#&#8203;14987](https://togithub.com/vitejs/vite/issues/14987)) ([d0b2153](https://togithub.com/vitejs/vite/commit/d0b2153)), closes [#&#8203;14987](https://togithub.com/vitejs/vite/issues/14987)
-   fix(legacy): error in build with --watch and manifest enabled ([#&#8203;14450](https://togithub.com/vitejs/vite/issues/14450)) ([b9ee620](https://togithub.com/vitejs/vite/commit/b9ee620)), closes [#&#8203;14450](https://togithub.com/vitejs/vite/issues/14450)
-   chore: add comment about crossorigin attribute for script module ([#&#8203;15040](https://togithub.com/vitejs/vite/issues/15040)) ([03c371e](https://togithub.com/vitejs/vite/commit/03c371e)), closes [#&#8203;15040](https://togithub.com/vitejs/vite/issues/15040)
-   chore: cleanup v5 beta changelog ([#&#8203;14694](https://togithub.com/vitejs/vite/issues/14694)) ([531d3cb](https://togithub.com/vitejs/vite/commit/531d3cb)), closes [#&#8203;14694](https://togithub.com/vitejs/vite/issues/14694)

### [`v5.0.0`](https://togithub.com/vitejs/vite/blob/HEAD/packages/vite/CHANGELOG.md#500-2023-11-16)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-08 09:57:11 +00:00
LongYinan
2269e68bd9 chore: bump up p-queue version to v8 (#5235)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [p-queue](https://togithub.com/sindresorhus/p-queue) | [`^7.4.1` -> `^8.0.0`](https://renovatebot.com/diffs/npm/p-queue/7.4.1/8.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/p-queue/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/p-queue/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/p-queue/7.4.1/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/p-queue/7.4.1/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sindresorhus/p-queue (p-queue)</summary>

### [`v8.0.0`](https://togithub.com/sindresorhus/p-queue/releases/tag/v8.0.0)

[Compare Source](https://togithub.com/sindresorhus/p-queue/compare/v7.4.1...v8.0.0)

##### Breaking

-   Require Node.js 18  [`68dfe95`](https://togithub.com/sindresorhus/p-queue/commit/68dfe95)
-   Removed the `AbortError` export. It now throws the built-in DOMException when using the `signal` option. [`68dfe95`](https://togithub.com/sindresorhus/p-queue/commit/68dfe95)
-   TypeScript: Rename `DefaultAddOptions` type to `QueueAddOptions`

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-08 08:06:46 +00:00
LongYinan
285fd367eb chore: bump up undici version to v6 (#5204)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [undici](https://undici.nodejs.org) ([source](https://togithub.com/nodejs/undici)) | [`^5.27.2` -> `^6.0.0`](https://renovatebot.com/diffs/npm/undici/5.28.0/6.0.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/undici/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/undici/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/undici/5.28.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/undici/5.28.0/6.0.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v6.0.1`](https://togithub.com/nodejs/undici/releases/tag/v6.0.1)

[Compare Source](https://togithub.com/nodejs/undici/compare/v6.0.0...v6.0.1)

#### What's Changed

-   fix: stream error timings by [@&#8203;ronag](https://togithub.com/ronag) in [https://github.com/nodejs/undici/pull/2497](https://togithub.com/nodejs/undici/pull/2497)

**Full Changelog**: https://github.com/nodejs/undici/compare/v6.0.0...v6.0.1

### [`v6.0.0`](https://togithub.com/nodejs/undici/releases/tag/v6.0.0)

[Compare Source](https://togithub.com/nodejs/undici/compare/v5.28.2...v6.0.0)

#### What's Changed

-   16 eol by [@&#8203;ronag](https://togithub.com/ronag) in [https://github.com/nodejs/undici/pull/2480](https://togithub.com/nodejs/undici/pull/2480)
-   update spec & wpts by [@&#8203;KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/2482](https://togithub.com/nodejs/undici/pull/2482)
-   version cleanup by [@&#8203;KhafraDev](https://togithub.com/KhafraDev) in [https://github.com/nodejs/undici/pull/2483](https://togithub.com/nodejs/undici/pull/2483)
-   perf: avoid Response initialization by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2489](https://togithub.com/nodejs/undici/pull/2489)
-   perf: optimize `parseHeaders` by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2492](https://togithub.com/nodejs/undici/pull/2492)
-   chore: fix typo by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2490](https://togithub.com/nodejs/undici/pull/2490)
-   feat: print attempted addresses on ConnectTimeoutError by [@&#8203;fengmk2](https://togithub.com/fengmk2) in [https://github.com/nodejs/undici/pull/2494](https://togithub.com/nodejs/undici/pull/2494)
-   Expose HTTP errors that are not meant to be retried by [@&#8203;MzUgM](https://togithub.com/MzUgM) in [https://github.com/nodejs/undici/pull/2496](https://togithub.com/nodejs/undici/pull/2496)

**Full Changelog**: https://github.com/nodejs/undici/compare/v5.28.2...v6.0.0

### [`v5.28.2`](https://togithub.com/nodejs/undici/releases/tag/v5.28.2)

[Compare Source](https://togithub.com/nodejs/undici/compare/v5.28.1...v5.28.2)

#### What's Changed

-   fix: remove optional chainning for compatible with Nodejs12 and below by [@&#8203;bugb](https://togithub.com/bugb) in [https://github.com/nodejs/undici/pull/2470](https://togithub.com/nodejs/undici/pull/2470)
-   fix: remove `node:` prefix by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2471](https://togithub.com/nodejs/undici/pull/2471)
-   perf: avoid Headers initialization by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2468](https://togithub.com/nodejs/undici/pull/2468)
-   fix: handle SharedArrayBuffer correctly by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2466](https://togithub.com/nodejs/undici/pull/2466)
-   fix: Add `null` type to `signal` in `RequestInit` by [@&#8203;gebsh](https://togithub.com/gebsh) in [https://github.com/nodejs/undici/pull/2455](https://togithub.com/nodejs/undici/pull/2455)
-   fix: correctly handle data URL with hashes. by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2475](https://togithub.com/nodejs/undici/pull/2475)
-   fix: check response for timinginfo allow flag by [@&#8203;ToshB](https://togithub.com/ToshB) in [https://github.com/nodejs/undici/pull/2477](https://togithub.com/nodejs/undici/pull/2477)
-   Make call to onBodySent conditional in RetryHandler by [@&#8203;MzUgM](https://togithub.com/MzUgM) in [https://github.com/nodejs/undici/pull/2478](https://togithub.com/nodejs/undici/pull/2478)
-   refactor: better integrity check by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2462](https://togithub.com/nodejs/undici/pull/2462)
-   fix: Added support for inline URL username:password proxy auth by [@&#8203;matt-way](https://togithub.com/matt-way) in [https://github.com/nodejs/undici/pull/2473](https://togithub.com/nodejs/undici/pull/2473)
-   build(deps-dev): bump jsdom from 22.1.0 to 23.0.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2472](https://togithub.com/nodejs/undici/pull/2472)
-   build(deps-dev): bump sinon from 16.1.3 to 17.0.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2405](https://togithub.com/nodejs/undici/pull/2405)
-   build(deps): bump ossf/scorecard-action from 2.2.0 to 2.3.1 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2396](https://togithub.com/nodejs/undici/pull/2396)
-   build(deps): bump actions/setup-node from 3.8.1 to 4.0.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2395](https://togithub.com/nodejs/undici/pull/2395)
-   build(deps): bump step-security/harden-runner from 2.5.0 to 2.6.0 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2392](https://togithub.com/nodejs/undici/pull/2392)
-   build(deps-dev): bump formdata-node from 4.4.1 to 6.0.3 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2389](https://togithub.com/nodejs/undici/pull/2389)
-   build(deps): bump actions/upload-artifact from 3.1.2 to 3.1.3 by [@&#8203;dependabot](https://togithub.com/dependabot) in [https://github.com/nodejs/undici/pull/2302](https://togithub.com/nodejs/undici/pull/2302)

#### New Contributors

-   [@&#8203;bugb](https://togithub.com/bugb) made their first contribution in [https://github.com/nodejs/undici/pull/2470](https://togithub.com/nodejs/undici/pull/2470)
-   [@&#8203;gebsh](https://togithub.com/gebsh) made their first contribution in [https://github.com/nodejs/undici/pull/2455](https://togithub.com/nodejs/undici/pull/2455)
-   [@&#8203;ToshB](https://togithub.com/ToshB) made their first contribution in [https://github.com/nodejs/undici/pull/2477](https://togithub.com/nodejs/undici/pull/2477)
-   [@&#8203;MzUgM](https://togithub.com/MzUgM) made their first contribution in [https://github.com/nodejs/undici/pull/2478](https://togithub.com/nodejs/undici/pull/2478)
-   [@&#8203;matt-way](https://togithub.com/matt-way) made their first contribution in [https://github.com/nodejs/undici/pull/2473](https://togithub.com/nodejs/undici/pull/2473)

**Full Changelog**: https://github.com/nodejs/undici/compare/v5.28.1...v5.28.2

### [`v5.28.1`](https://togithub.com/nodejs/undici/releases/tag/v5.28.1)

[Compare Source](https://togithub.com/nodejs/undici/compare/v5.28.0...v5.28.1)

#### What's Changed

-   perf: Improve `normalizeMethod` by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2456](https://togithub.com/nodejs/undici/pull/2456)
-   fix: dispatch error handling by [@&#8203;ronag](https://togithub.com/ronag) in [https://github.com/nodejs/undici/pull/2459](https://togithub.com/nodejs/undici/pull/2459)
-   perf(request): optimize if headers are given by [@&#8203;tsctx](https://togithub.com/tsctx) in [https://github.com/nodejs/undici/pull/2454](https://togithub.com/nodejs/undici/pull/2454)

**Full Changelog**: https://github.com/nodejs/undici/compare/v5.28.0...v5.28.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-08 06:57:56 +00:00
LongYinan
0be087b5d7 ci: fix rust build during deployment (#5233) 2023-12-08 06:39:16 +00:00
LongYinan
37a32d1f7d chore: bump up rollup version to v4 (#5202)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [rollup](https://rollupjs.org/) ([source](https://togithub.com/rollup/rollup)) | [`^3.29.4` -> `^4.0.0`](https://renovatebot.com/diffs/npm/rollup/3.29.4/4.6.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/rollup/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/rollup/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/rollup/3.29.4/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/rollup/3.29.4/4.6.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>rollup/rollup (rollup)</summary>

### [`v4.6.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#461)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.6.0...v4.6.1)

*2023-11-30*

##### Bug Fixes

-   Resolve a situation where declaring the same `var` several times was considered a conflict ([#&#8203;5276](https://togithub.com/rollup/rollup/issues/5276))

##### Pull Requests

-   [#&#8203;5275](https://togithub.com/rollup/rollup/pull/5275): Add TNG as special sponsor ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5276](https://togithub.com/rollup/rollup/pull/5276): Allow to redeclare parameters multiple times in nested scopes ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.6.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#460)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.5.2...v4.6.0)

*2023-11-26*

##### Features

-   Allow `this.addWatchFile` in all plugin hooks ([#&#8203;5270](https://togithub.com/rollup/rollup/issues/5270))

##### Bug Fixes

-   Show helpful error when native binaries are not installed due to an `npm` issue ([#&#8203;5267](https://togithub.com/rollup/rollup/issues/5267))
-   Do not access `this` context in `this.addWatchFile` so it does not need to be bound when passed around ([#&#8203;5270](https://togithub.com/rollup/rollup/issues/5270))

##### Pull Requests

-   [#&#8203;5267](https://togithub.com/rollup/rollup/pull/5267): Add friendly error for npm bug ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))
-   [#&#8203;5270](https://togithub.com/rollup/rollup/pull/5270): Allow this.addWatchFile in all hooks ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5272](https://togithub.com/rollup/rollup/pull/5272): Debug deployed graphs ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.5.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#452)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.5.1...v4.5.2)

*2023-11-24*

##### Bug Fixes

-   Handle files with UTF-8 BOM when using the commonjs plugin ([#&#8203;5268](https://togithub.com/rollup/rollup/issues/5268))

##### Pull Requests

-   [#&#8203;5268](https://togithub.com/rollup/rollup/pull/5268): fix: strip BOM before calling transform hook ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5269](https://togithub.com/rollup/rollup/pull/5269): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])

### [`v4.5.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#451)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.5.0...v4.5.1)

*2023-11-21*

##### Bug Fixes

-   Do not error when a function expression uses the same name for a parameter and its id ([#&#8203;5262](https://togithub.com/rollup/rollup/issues/5262))

##### Pull Requests

-   [#&#8203;5257](https://togithub.com/rollup/rollup/pull/5257): Fix graphs in docs, improve REPL colors ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5262](https://togithub.com/rollup/rollup/pull/5262): Allow function expression parameters to shadow the function id ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.5.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#450)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.4.1...v4.5.0)

*2023-11-18*

##### Bug Fixes

-   Show a proper error when using native Rollup on armv7 musl Linux ([#&#8203;5255](https://togithub.com/rollup/rollup/issues/5255))

##### Pull Requests

-   [#&#8203;5251](https://togithub.com/rollup/rollup/pull/5251): doc fix import assertions to attributes in API plugin development page ([@&#8203;lhapaipai](https://togithub.com/lhapaipai))
-   [#&#8203;5253](https://togithub.com/rollup/rollup/pull/5253): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5255](https://togithub.com/rollup/rollup/pull/5255): Error for armv7 musl build ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.4.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#441)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.4.0...v4.4.1)

*2023-11-14*

##### Bug Fixes

-   Do not flag duplicate function declarations in function scopes as syntax errors ([#&#8203;5248](https://togithub.com/rollup/rollup/issues/5248))

##### Pull Requests

-   [#&#8203;5248](https://togithub.com/rollup/rollup/pull/5248): Allow functions to redeclare vars and functions in function scopes ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.4.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#440)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.3.1...v4.4.0)

*2023-11-12*

##### Features

-   Replace SWC linting with faster internal linting to error on duplicate declarations etc. ([#&#8203;5207](https://togithub.com/rollup/rollup/issues/5207))

##### Bug Fixes

-   Show proper error when an entry exports non-existing bindings ([#&#8203;5207](https://togithub.com/rollup/rollup/issues/5207))

##### Pull Requests

-   [#&#8203;5207](https://togithub.com/rollup/rollup/pull/5207): perf: run lint while constructing nodes ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))

### [`v4.3.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#431)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.3.0...v4.3.1)

*2023-11-11*

##### Bug Fixes

-   Fix rename error when handling errors in watch mode ([#&#8203;5240](https://togithub.com/rollup/rollup/issues/5240))
-   Prevent warning when using `--forceExit` ([#&#8203;5245](https://togithub.com/rollup/rollup/issues/5245))

##### Pull Requests

-   [#&#8203;5240](https://togithub.com/rollup/rollup/pull/5240): fix: allow the name of Rollup Error to be modified ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5243](https://togithub.com/rollup/rollup/pull/5243): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5245](https://togithub.com/rollup/rollup/pull/5245): Ensure --forceExit works without warning ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.3.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#430)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.2.0...v4.3.0)

*2023-11-03*

##### Features

-   Add `forceExit` CLI flag for situations where the CLI does not exit gracefully ([#&#8203;5195](https://togithub.com/rollup/rollup/issues/5195))

##### Bug Fixes

-   Properly catch errors when removing a temporary config file fails ([#&#8203;5198](https://togithub.com/rollup/rollup/issues/5198))

##### Pull Requests

-   [#&#8203;5195](https://togithub.com/rollup/rollup/pull/5195): Add `forceExit` CLI flag ([@&#8203;raphael-theriault-swi](https://togithub.com/raphael-theriault-swi))
-   [#&#8203;5198](https://togithub.com/rollup/rollup/pull/5198): fix: prevent `ENOENT` error on temp config removal ([@&#8203;jzempel](https://togithub.com/jzempel))
-   [#&#8203;5237](https://togithub.com/rollup/rollup/pull/5237): chore: remove unused files and deps ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5238](https://togithub.com/rollup/rollup/pull/5238): chore(deps): update dependency eslint-plugin-unicorn to v49 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5239](https://togithub.com/rollup/rollup/pull/5239): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])

### [`v4.2.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#420)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.1.6...v4.2.0)

*2023-10-31*

##### Features

-   Run parsing in multiple threads and introduce `parseAstAsync` helper function ([#&#8203;5202](https://togithub.com/rollup/rollup/issues/5202))

##### Pull Requests

-   [#&#8203;5202](https://togithub.com/rollup/rollup/pull/5202): perf: introduce `parseAstAsync` and parallelize parsing AST ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))

### [`v4.1.6`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#416)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.1.5...v4.1.6)

*2023-10-31*

##### Bug Fixes

-   Fix a bug where emtpy block comments in certain positions could freeze Rollup ([#&#8203;5231](https://togithub.com/rollup/rollup/issues/5231))

##### Pull Requests

-   [#&#8203;5228](https://togithub.com/rollup/rollup/pull/5228): build: ensure rust toolchain components for linting are installed ([@&#8203;jerome-benoit](https://togithub.com/jerome-benoit))
-   [#&#8203;5231](https://togithub.com/rollup/rollup/pull/5231): Render emtpy block comments after tree-shaken statements ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5232](https://togithub.com/rollup/rollup/pull/5232): Revert specifying rustfmt and clippy in toolchain file as it breaks REPL build ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.1.5`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#415)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.1.4...v4.1.5)

*2023-10-28*

##### Bug Fixes

-   Fix an issue where actual entries that were also implicit entries could remain implicit ([#&#8203;5220](https://togithub.com/rollup/rollup/issues/5220))

##### Pull Requests

-   [#&#8203;5209](https://togithub.com/rollup/rollup/pull/5209): Document Vite workaround for browser build ([@&#8203;curran](https://togithub.com/curran))
-   [#&#8203;5215](https://togithub.com/rollup/rollup/pull/5215): chore(deps): update dependency lint-staged to v15 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5216](https://togithub.com/rollup/rollup/pull/5216): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5218](https://togithub.com/rollup/rollup/pull/5218): Update license plugin ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5219](https://togithub.com/rollup/rollup/pull/5219): Fix error highlight in REPL ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5220](https://togithub.com/rollup/rollup/pull/5220): Fix race condition when emitting implicitly dependent entries ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5224](https://togithub.com/rollup/rollup/pull/5224): chore(deps): update actions/setup-node action to v4 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5225](https://togithub.com/rollup/rollup/pull/5225): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])

### [`v4.1.4`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#414)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.1.3...v4.1.4)

*2023-10-16*

##### Bug Fixes

-   Reduce sizes [@&#8203;rollup/browser](https://togithub.com/rollup/browser) and [@&#8203;rollup/wasm-node](https://togithub.com/rollup/wasm-node) WASM artifacts ([#&#8203;5204](https://togithub.com/rollup/rollup/issues/5204))

##### Pull Requests

-   [#&#8203;5204](https://togithub.com/rollup/rollup/pull/5204): perf: shrink wasm size by avoid importing browserslist ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))

### [`v4.1.3`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#413)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.1.1...v4.1.3)

*2023-10-15*

##### Bug Fixes

-   Fix WASM build as hash function was not exported ([#&#8203;5203](https://togithub.com/rollup/rollup/issues/5203))

##### Pull Requests

-   [#&#8203;5203](https://togithub.com/rollup/rollup/pull/5203): fix: export xxhashBase64Url from wasm ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))

### [`v4.1.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#411)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.1.0...v4.1.1)

*2023-10-15*

##### Bug Fixes

-   Improve Node parsing performance ([#&#8203;5201](https://togithub.com/rollup/rollup/issues/5201))

##### Pull Requests

-   [#&#8203;5201](https://togithub.com/rollup/rollup/pull/5201): perf: use mimalloc for bindings_napi ([@&#8203;sapphi-red](https://togithub.com/sapphi-red))

### [`v4.1.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#410)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.0.2...v4.1.0)

*2023-10-14*

##### Features

-   Reduce memory usage of Rollup builds ([#&#8203;5133](https://togithub.com/rollup/rollup/issues/5133))

##### Pull Requests

-   [#&#8203;5133](https://togithub.com/rollup/rollup/pull/5133): perf: reducing ast node memory overhead ([@&#8203;thebanjomatic](https://togithub.com/thebanjomatic))
-   [#&#8203;5177](https://togithub.com/rollup/rollup/pull/5177): chore: explicitly set rust toolchain channel ([@&#8203;cijiugechu](https://togithub.com/cijiugechu))
-   [#&#8203;5179](https://togithub.com/rollup/rollup/pull/5179): Update migration guide for Rollup 4 ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5180](https://togithub.com/rollup/rollup/pull/5180): Resolve clippy errors ([@&#8203;cijiugechu](https://togithub.com/cijiugechu))
-   [#&#8203;5183](https://togithub.com/rollup/rollup/pull/5183): Add clippy to pipeline and fix remaining issues ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5184](https://togithub.com/rollup/rollup/pull/5184): docs: fix code example for `onLog` ([@&#8203;tjenkinson](https://togithub.com/tjenkinson))
-   [#&#8203;5186](https://togithub.com/rollup/rollup/pull/5186): Improve wording for native artifacts in migration guide ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5190](https://togithub.com/rollup/rollup/pull/5190): test: add verifyAst type ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5196](https://togithub.com/rollup/rollup/pull/5196): chore(deps): update dependency rollup to v4 ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5197](https://togithub.com/rollup/rollup/pull/5197): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])

### [`v4.0.2`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#402)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.0.1...v4.0.2)

*2023-10-06*

##### Bug Fixes

-   Fix annotation detection logic to not fail when a non-ASCII character precedes a double underscore ([#&#8203;5178](https://togithub.com/rollup/rollup/issues/5178))

##### Pull Requests

-   [#&#8203;5178](https://togithub.com/rollup/rollup/pull/5178): Handle special characters before double underscores ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.0.1`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#401)

[Compare Source](https://togithub.com/rollup/rollup/compare/v4.0.0...v4.0.1)

*2023-10-06*

##### Bug Fixes

-   Do not panic on trailing semicolons after class methods ([#&#8203;5173](https://togithub.com/rollup/rollup/issues/5173))
-   Add artifact for arm64 linux musl target ([#&#8203;5176](https://togithub.com/rollup/rollup/issues/5176))

##### Pull Requests

-   [#&#8203;5172](https://togithub.com/rollup/rollup/pull/5172): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5173](https://togithub.com/rollup/rollup/pull/5173): fix: ignores empty statements in class body that is returned by SWC parser ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5176](https://togithub.com/rollup/rollup/pull/5176): Fix linux arm musl build ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

### [`v4.0.0`](https://togithub.com/rollup/rollup/blob/HEAD/CHANGELOG.md#400)

[Compare Source](https://togithub.com/rollup/rollup/compare/v3.29.4...v4.0.0)

*2023-10-05*

##### BREAKING CHANGES

##### General Changes

-   The minimal required Node version is now 18.0.0 ([#&#8203;5142](https://togithub.com/rollup/rollup/issues/5142))
-   The browser build now relies on a WASM artifact that needs to be provided as well ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   The NodeJS build now relies on an optional native binary; for unsupported platforms, users can use the `@rollup/wasm-node` package that has the same interface as Rollup but relies on WASM artifacts ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   The `INVALID_IMPORT_ASSERTION` error code has been replaced with `INVALID_IMPORT_ATTRIBUTE` ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   Rollup will now warn for `@__PURE__` and `@__NO_SIDE_EFFECTS__` annotations in invalid locations ([#&#8203;5165](https://togithub.com/rollup/rollup/issues/5165))
-   If an entry module starts with a shebang comment `#!...`, this comment will be prepended to the output for `es` and `cjs` formats ([#&#8203;5163](https://togithub.com/rollup/rollup/issues/5163))
-   File hashes will now use url-safe base64 encoded hashes ([#&#8203;5155](https://togithub.com/rollup/rollup/issues/5155))
-   The maximum hash length has been reduced to 22 characters ([#&#8203;5155](https://togithub.com/rollup/rollup/issues/5155))
-   The `RollupWarning` type has been removed in favor of the `RollupLog` type ([#&#8203;5147](https://togithub.com/rollup/rollup/issues/5147))

##### Changes to Rollup Options

-   Acorn plugins are no longer supported, the `acornInjectPlugins` option has been removed ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   The `acorn` option has been removed ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   `output.externalImportAssertions` has been deprecated in favor of `output.externalImportAttributes` ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   `inlineDynamicImports`, `manualChunks` and `preserveModules` have been removed on input option level: Please use the corresponding output options of the same names ([#&#8203;5143](https://togithub.com/rollup/rollup/issues/5143))
-   Removed output options ([#&#8203;5143](https://togithub.com/rollup/rollup/issues/5143)):
    -   `output.experimentalDeepDynamicChunkOptimization`: This option is no longer needed as Rollup now always runs the full chunking algorithm
    -   `output.dynamicImportFunction`: Use the `renderDynamicImport` plugin hook instead
    -   `output.namespaceToStringTag`: Use `output.generatedCode.symbols` instead
    -   `output.preferConst`: Use `output.generatedCode.constBindings` instead

##### Plugin API Changes

-   For `this.resolve`, the default of the `skipSelf` option is now `true` ([#&#8203;5142](https://togithub.com/rollup/rollup/issues/5142))
-   `this.parse` now only supports the `allowReturnOutsideFunction` option for now ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   Import assertions now use the [new import attribute AST structure](https://togithub.com/estree/estree/blob/master/experimental/import-attributes.md) ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   "assertions" have been replaced with "attributes" in various places of the plugin interface ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   If the import of a module id is handled by the `load` hook of a plugin, `rollup.watch` no longer watches the actual file if the module id corresponds to a real path; if this is intended, then the plugin is responsible for calling `this.addWatchFile` for any dependency files ([#&#8203;5150](https://togithub.com/rollup/rollup/issues/5150))
-   The normalized input options provided by `buildStart` and other hooks no longer contain an `onwarn` handler; plugins should use `onLog` instead ([#&#8203;5147](https://togithub.com/rollup/rollup/issues/5147))
-   `this.moduleIds` has been removed from the plugin context: Use `this.getModuleIds()` instead ([#&#8203;5143](https://togithub.com/rollup/rollup/issues/5143))
-   The `hasModuleSideEffects` flag has been removed from the `ModuleInfo` returned by `this.getModuleInfo()`: Use `moduleSideEffects` on the `ModuleInfo` instead ([#&#8203;5143](https://togithub.com/rollup/rollup/issues/5143))

##### Features

-   Improve parsing speed by switching to a native SWC-based parser ([#&#8203;5073](https://togithub.com/rollup/rollup/issues/5073))
-   Rollup will now warn for `@__PURE__` and `@__NO_SIDE_EFFECTS__` annotations in invalid locations ([#&#8203;5165](https://togithub.com/rollup/rollup/issues/5165))
-   The parser is now exposed as a separate export `parseAst` ([#&#8203;5169](https://togithub.com/rollup/rollup/issues/5169))

##### Bug Fixes

-   Rollup no longer tries to watch virtual files if their name corresponds to an actual file name; instead, plugins handle watching via `this.addWatchFile()` ([#&#8203;5150](https://togithub.com/rollup/rollup/issues/5150))

##### Pull Requests

-   [#&#8203;5073](https://togithub.com/rollup/rollup/pull/5073): \[v4.0] Switch parser to SWC and introduce native/WASM code ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5142](https://togithub.com/rollup/rollup/pull/5142): \[v4.0] Set the default of skipSelf to true ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5143](https://togithub.com/rollup/rollup/pull/5143): \[v4.0] Remove deprecated features ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5144](https://togithub.com/rollup/rollup/pull/5144): \[v4.0] Imporve the performance of generating ast and rollup ast nodes ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5147](https://togithub.com/rollup/rollup/pull/5147): \[v4.0] Remove onwarn from normalized input options ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5150](https://togithub.com/rollup/rollup/pull/5150): \[v4.0] feat: Do not watch files anymore if their content is returned by the load hook ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5154](https://togithub.com/rollup/rollup/pull/5154): \[v4.0] Add parse option to allow return outside function ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5155](https://togithub.com/rollup/rollup/pull/5155): \[v4.0] feat: implement hashing content in Rust ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5157](https://togithub.com/rollup/rollup/pull/5157): \[v4.0] Handle empty exports ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5160](https://togithub.com/rollup/rollup/pull/5160): chore(deps): lock file maintenance minor/patch updates ([@&#8203;renovate](https://togithub.com/renovate)\[bot])
-   [#&#8203;5163](https://togithub.com/rollup/rollup/pull/5163): \[v4.0] feat: preserve shebang in entry module for CJS and ESM outputs ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5164](https://togithub.com/rollup/rollup/pull/5164): \[v4.0] fix: also strip BOM from code strings in JS ([@&#8203;TrickyPi](https://togithub.com/TrickyPi))
-   [#&#8203;5165](https://togithub.com/rollup/rollup/pull/5165): \[v4.0] warn for invalid annotations ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5168](https://togithub.com/rollup/rollup/pull/5168): \[v4.0] Ensure we support new import attribute "with" syntax ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))
-   [#&#8203;5169](https://togithub.com/rollup/rollup/pull/5169): \[v4.0] Expose parser ([@&#8203;lukastaegert](https://togithub.com/lukastaegert))

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-08 06:08:54 +00:00
LongYinan
e93b497231 chore: also set version to helm charts in set-version.sh (#5100) 2023-12-08 13:53:23 +08:00
EYHN
df439877bd fix(core): add requestidlecallback polyfill for safari (#5231) 2023-12-08 05:21:03 +00:00
liuyi
17d584b336 refactor(server): use events system (#5149) 2023-12-08 05:00:58 +00:00
JimmFly
52cfe4521a feat(core): add present to edgeless sharing (#5140) 2023-12-08 04:44:08 +00:00
Peng Xiao
f88e67f5ab fix(core): flaky local avartar test (#5229)
it seems we should not reopen workspace card list just after created a new workspace
2023-12-08 04:01:36 +00:00
Peng Xiao
fcd43033fe fix(electron): sync settings from localStorage -> atom -> electron (#5020)
- moved `appSettingAtom` to infra since we now have different packages that depends on it. There is no better place to fit in for now
- use atomEffect to sync setting changes to updater related configs to Electron side
- refactored how Electron reacts to updater config changes.
2023-12-08 03:20:02 +00:00
Umar Faiz
453d4db713 fix: close font calt to avoid render twinkle (#4969) 2023-12-08 03:08:59 +00:00
Rakhee Singh
780ffd94dc feat(core): added new filter for last n days (#5167)
Co-authored-by: rakhee28 <rakhee@strings.ai>
Co-authored-by: EYHN <cneyhn@gmail.com>
2023-12-08 11:08:15 +08:00
Peng Xiao
5352736eba feat(component): new right sidebar (#5169)
Refactor AFFiNE layout to support new right sidebar.

The new layout:
![image](https://github.com/toeverything/AFFiNE/assets/584378/678a05f5-bd48-4dbe-ad78-7a0bcc979918)

**Highlights:**
- new sidebar UI/UX
- favoring top-down UI components that are composed by basic building blocks in each route, instead of creating universal component like `WorkspaceHeader` that renders every possible cases (which I think is really hard to maintain)
- remove plugin based solution

**Pros/cons for current plugin-based solution:**

The current solution is somewhat a Dependency Injection (DI) approach, where the layout is defined at the top and UI items can be injected using Jotai atom slots.
This approach works well if we want a fully configurable system with everything being handled by plugins. It provides flexibility for custom extensions.
However, this solution is more suitable for single-page applications where the UI is completely controlled by configuration. It becomes challenging to achieve an optimized and visually appealing UI that remains under our control. An example of such a scenario would be a customizable dashboard like Grafana.
Another drawback of the existing solution is that we need to use Jotai and hooks to access context values, resulting in an unclear data flow within the component hierarchy.

**Alternatively, our approach in this PR** provides layout building blocks such as headers and sidebars, which can then be composed in individual route components. The good is that we have cleaner biz component instead of vague all-in-one layout component (like `<WorkspaceHeader />`).

**Issues of the implementation in this PR:**
Some UI layouts that that seems to be defined at the root layout are now defined in individual route component instead.
New 3-col layout component like the right sidebar still needs some abstraction and they are right now just for the detail editor only.
2023-12-08 01:03:48 +00:00
Peng Xiao
980831f9f1 fix(electron): add debug flag for helper process (#5223) 2023-12-07 15:56:09 +00:00
Peng Xiao
ed8e526f71 fix(core): remove duplicate loading component (#5168) 2023-12-07 15:34:10 +00:00
Peng Xiao
352bb548f0 fix(core): update noise image (#5219)
seems https://github.com/toeverything/AFFiNE/pull/4946 not in latest canary.
2023-12-07 15:11:00 +00:00
Joooye_34
761c3c2551 fix(electron): only update db after data changed (#5226) 2023-12-07 12:27:53 +00:00
Joooye_34
70c376fac8 chore(core): skip cloud migration testing until page level upgrade implemented (#5227) 2023-12-07 11:50:24 +00:00
Yifeng Wang
d507c24570 feat: bump blocksuite (#5228) 2023-12-07 19:28:49 +08:00
Yifeng Wang
819f0243d5 feat: bump blocksuite (#5218)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2023-12-07 18:24:23 +08:00
LongYinan
febe5cc2ae ci: fix ts-node scripts (#5225)
- Ref: https://github.com/TypeStrong/ts-node/issues/2094
2023-12-07 09:13:00 +00:00
LongYinan
467d313730 test(server): remove flaky assertion (#5224) 2023-12-07 07:28:24 +00:00
JimmFly
7ec8e49b3b feat(core): add responsive styles to registration page (#5044)
The responsive style of the login and registration page has been adjusted, with special treatment given to the input.
work for #4843
2023-12-06 10:43:14 +00:00
LongYinan
3e92942bb5 ci: remove cache cleanup job because we are sharing cache cross branches (#5214) 2023-12-06 10:32:22 +00:00
LongYinan
1d9454118a ci: reduce cache pressure on non-Linux platform (#5213) 2023-12-06 10:32:18 +00:00
Yifeng Wang
6cbf5b2a92 feat: bump blocksuite (#5194)
Co-authored-by: AyushAgrawal-A2 <ayushagl06@gmail.com>
2023-12-06 18:15:03 +08:00
LongYinan
2dcb5a3030 chore: bump up google-github-actions/auth action to v2 (#5197)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [google-github-actions/auth](https://togithub.com/google-github-actions/auth) | action | major | `v1` -> `v2` |

---

### Release Notes

<details>
<summary>google-github-actions/auth (google-github-actions/auth)</summary>

### [`v2`](https://togithub.com/google-github-actions/auth/releases/tag/v2)

[Compare Source](https://togithub.com/google-github-actions/auth/compare/v1...v2)

Floating v2 alias

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-06 09:57:17 +00:00
LongYinan
93a0349fbc chore: bump up vite version to v4.5.1 [SECURITY] (#5211)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [vite](https://vitejs.dev) ([source](https://togithub.com/vitejs/vite/tree/HEAD/packages/vite)) | [`4.5.0` -> `4.5.1`](https://renovatebot.com/diffs/npm/vite/4.5.0/4.5.1) | [![age](https://developer.mend.io/api/mc/badges/age/npm/vite/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/vite/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/vite/4.5.0/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/vite/4.5.0/4.5.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

### GitHub Vulnerability Alerts

#### [CVE-2023-49293](https://togithub.com/vitejs/vite/security/advisories/GHSA-92r3-m2mg-pj97)

### Summary
When Vite's HTML transformation is invoked manually via `server.transformIndexHtml`, the original request URL is passed in unmodified, and the `html` being transformed contains inline module scripts (`<script type="module">...</script>`), it is possible to inject arbitrary HTML into the transformed output by supplying a malicious URL query string to `server.transformIndexHtml`.

### Impact
Only apps using `appType: 'custom'` and using the default Vite HTML middleware are affected. The HTML entry must also contain an inline script. The attack requires a user to click on a malicious URL while running the dev server. Restricted files aren't exposed to the attacker.

### Patches
Fixed in vite@5.0.5, vite@4.5.1, vite@4.4.12

### Details
Suppose `index.html` contains an inline module script:

```html
<script type="module">
  // Inline script
</script>
```

This script is transformed into a proxy script like

```html
<script type="module" src="/index.html?html-proxy&index=0.js"></script>
```

due to Vite's HTML plugin:

7fd7c6cebf/packages/vite/src/node/plugins/html.ts (L429-L465)

When `appType: 'spa' | 'mpa'`, Vite serves HTML itself, and `htmlFallbackMiddleware` rewrites `req.url` to the canonical path of `index.html`,

73ef074b80/packages/vite/src/node/server/middlewares/htmlFallback.ts (L44-L47)

so the `url` passed to `server.transformIndexHtml` is `/index.html`.

However, if `appType: 'custom'`, HTML is served manually, and if `server.transformIndexHtml` is called with the unmodified request URL (as the SSR docs suggest), then the path of the transformed `html-proxy` script varies with the request URL. For example, a request with path `/` produces

```html
<script type="module" src="/@&#8203;id/__x00__/index.html?html-proxy&index=0.js"></script>
```

It is possible to abuse this behavior by crafting a request URL to contain a malicious payload like

```
"></script><script>alert('boom')</script>
```

so a request to http://localhost:5173/?%22%3E%3C/script%3E%3Cscript%3Ealert(%27boom%27)%3C/script%3E produces HTML output like

```html
<script type="module" src="/@&#8203;id/__x00__/?"></script><script>alert("boom")</script>?html-proxy&index=0.js"></script>
```

which demonstrates XSS.

### PoC

- Example 1. Serving HTML from `vite dev` middleware with `appType: 'custom'`
    - Go to https://stackblitz.com/edit/vitejs-vite-9xhma4?file=main.js&terminal=dev-html
    - "Open in New Tab"
    - Edit URL to set query string to `?%22%3E%3C/script%3E%3Cscript%3Ealert(%27boom%27)%3C/script%3E` and navigate
    - Witness XSS:
    - ![image](https://user-images.githubusercontent.com/2456381/287434281-13757894-7a63-4a73-b1e9-d2b024c19d14.png)
- Example 2. Serving HTML from SSR-style Express server (Vite dev server runs in middleware mode):
    - Go to https://stackblitz.com/edit/vitejs-vite-9xhma4?file=main.js&terminal=server
    - (Same steps as above)
- Example 3. Plain `vite dev` (this shows that vanilla `vite dev` is _not_ vulnerable, provided `htmlFallbackMiddleware` is used)
    - Go to https://stackblitz.com/edit/vitejs-vite-9xhma4?file=main.js&terminal=dev
    - (Same steps as above)
    - You should _not_ see the alert box in this case

### Detailed Impact

This will probably predominantly affect [development-mode SSR](https://vitejs.dev/guide/ssr#setting-up-the-dev-server), where `vite.transformHtml` is called using the original `req.url`, per the docs:

7fd7c6cebf/docs/guide/ssr.md (L114-L126)

However, since this vulnerability affects `server.transformIndexHtml`, the scope of impact may be higher to also include other ad-hoc calls to `server.transformIndexHtml` from outside of Vite's own codebase.

My best guess at bisecting which versions are vulnerable involves the following test script

```js
import fs from 'node:fs/promises';
import * as vite from 'vite';

const html = `
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
  </head>
  <body>
    <script type="module">
      // Inline script
    </script>
  </body>
</html>
`;
const server = await vite.createServer({ appType: 'custom' });
const transformed = await server.transformIndexHtml('/?%22%3E%3C/script%3E%3Cscript%3Ealert(%27boom%27)%3C/script%3E', html);
console.log(transformed);
await server.close();
```

and using it I was able to narrow down to #&#8203;13581. If this is correct, then vulnerable Vite versions are 4.4.0-beta.2 and higher (which includes 4.4.0).

---

### Release Notes

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

### [`v4.5.1`](https://togithub.com/vitejs/vite/releases/tag/v4.5.1)

[Compare Source](https://togithub.com/vitejs/vite/compare/v4.5.0...v4.5.1)

Please refer to [CHANGELOG.md](https://togithub.com/vitejs/vite/blob/v4.5.1/packages/vite/CHANGELOG.md) for details.

</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 these updates again.

---

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

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-06 08:55:32 +00:00
Peng Xiao
2b53430539 feat(core): allow core modules to import itself (#5207) 2023-12-06 08:45:54 +00:00
liuyi
e0cada49f5 refactor(server): do not force init binary when creating workspace (#5146) 2023-12-06 08:35:48 +00:00
liuyi
4cb26cd3e5 feat(server): events system (#5145) 2023-12-06 08:35:45 +00:00
JimmFly
b32a427ecd chore: adjust banner content text (#5153)
![image](https://github.com/toeverything/AFFiNE/assets/102217452/86a77f1f-1be5-4d05-bdfa-9e1b321c0d9e)
2023-12-06 08:13:56 +00:00
LongYinan
e5f8a58330 ci: refactor workflow (#5139)
Merge tests job into single one, reuse job as much as possible
2023-12-06 08:03:05 +00:00
Joooye_34
48f4d6a06c fix(core): error page 500 status dark mode (#5180)
close #5155
2023-12-05 10:40:48 +00:00
LongYinan
246fbd8d4f ci: fix auto labeler config 2023-12-05 18:21:32 +08:00
LongYinan
bd414b7f44 ci: fix auto labeler job (#5206) 2023-12-05 18:00:42 +08:00
Peng Xiao
1e01ed0b0f fix(component): modal blurness (#5177)
moved https://github.com/toeverything/design/pull/108

Do not use transform to center the modal. It has know issue to cause modal to have blurred texts.

https://github.com/radix-ui/website/issues/383

fix https://github.com/toeverything/AFFiNE/issues/5176
2023-12-05 09:18:49 +00:00
LongYinan
37b1a54ec6 chore: bump up idb version to v8 (#5198)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [idb](https://togithub.com/jakearchibald/idb) | [`^7.1.1` -> `^8.0.0`](https://renovatebot.com/diffs/npm/idb/7.1.1/8.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/idb/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/idb/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/idb/7.1.1/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/idb/7.1.1/8.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>jakearchibald/idb (idb)</summary>

### [`v8.0.0`](https://togithub.com/jakearchibald/idb/compare/v7.1.1...v8.0.0)

[Compare Source](https://togithub.com/jakearchibald/idb/compare/v7.1.1...v8.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-05 08:38:04 +00:00
JimmFly
1c88e1fb8b fix(core): unable to create share page link (#5175)
For some reasons, our `spaceDoc.guid` and `page.id` may not necessarily be the same, so we switched to using the more accurate `page.id`.
2023-12-05 07:21:18 +00:00
Cats Juice
1cd8de9d60 fix(component): clear page list operation's link style (#5148)
- before
  ![CleanShot 2023-12-01 at 12 03 24@2x](https://github.com/toeverything/AFFiNE/assets/39363750/6951ee61-d3c3-43b3-8949-fe6ed9ceb99e)
- after
  ![CleanShot 2023-12-01 at 12 08 02@2x](https://github.com/toeverything/AFFiNE/assets/39363750/2a85e5f7-9156-4aef-81a2-76d66a673ebd)
2023-12-05 07:01:42 +00:00
LongYinan
51e42af317 chore: bump up actions/labeler action to v5 (#5192)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [actions/labeler](https://togithub.com/actions/labeler) | action | major | `v4` -> `v5` |

---

### Release Notes

<details>
<summary>actions/labeler (actions/labeler)</summary>

### [`v5`](https://togithub.com/actions/labeler/compare/v4...v5)

[Compare Source](https://togithub.com/actions/labeler/compare/v4...v5)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-05 06:41:21 +00:00
LongYinan
e4c6db2d02 chore: bump up ava version to v6 (#5195)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ava](https://avajs.dev) ([source](https://togithub.com/avajs/ava)) | [`^5.3.1` -> `^6.0.0`](https://renovatebot.com/diffs/npm/ava/5.3.1/6.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/ava/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/ava/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/ava/5.3.1/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/ava/5.3.1/6.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>avajs/ava (ava)</summary>

### [`v6.0.0`](https://togithub.com/avajs/ava/releases/tag/v6.0.0)

[Compare Source](https://togithub.com/avajs/ava/compare/v5.3.1...v6.0.0)

#### Breaking Changes

-   AVA now requires Node.js versions 18.18, 20.8 or 21. Versions 14 and 16 are no longer supported. [#&#8203;3251](https://togithub.com/avajs/ava/issues/3251) [#&#8203;3216](https://togithub.com/avajs/ava/issues/3216)

-   When tests finish, worker threads or child processes are no longer exited through `proces.exit()`. If your test file does not exit on its own, the test run will time out. [#&#8203;3260](https://togithub.com/avajs/ava/issues/3260)

-   Changes to watch mode [#&#8203;3218](https://togithub.com/avajs/ava/issues/3218):
    -   Watch mode can no longer be started via the `ava.config.*` or `package.json` configuration.
    -   The `ignoredByWatcher` configuration has moved to the `watchMode` object, under the `ignoreChanges` key.
    -   Watch mode now uses the built-in [`fs.watch()`](https://nodejs.org/api/fs.html#fswatchfilename-options-listener) in recursive mode. This is supported on Linux in Node.js 20 or newer, and MacOS and Windows in Node.js 18 as well. There are [caveats](https://nodejs.org/api/fs.html#caveats) to keep in mind.

-   Failed assertions now throw, meaning that any subsequent code is not executed. This also impacts the type definitions. [#&#8203;3246](https://togithub.com/avajs/ava/issues/3246)

-   [Only native errors](https://nodejs.org/api/util.html#utiltypesisnativeerrorvalue) are now considered errors by the `t.throws()` and `t.throwsAsync()` assertions. [`Object.create(Error.prototype)` is **not** a native error](Object.create\(Error.prototype\)). [#&#8203;3229](https://togithub.com/avajs/ava/issues/3229)

-   Changes to modules loaded through the `require` configuration [#&#8203;3184](https://togithub.com/avajs/ava/issues/3184):
    -   If such modules export a default function, this function is now invoked.
    -   Local files are loaded through `@ava/typescript` if necessary.

#### Improvements

##### Rewritten watcher

The watcher has been rewritten. It’s now built on [`fs.watch()`](https://nodejs.org/api/fs.html#fswatchfilename-options-listener) in recursive mode.

[`@vercel/nft`](https://togithub.com/vercel/nft)  is used to perform static dependency analysis, supporting ESM and CJS imports for JavaScript & TypeScript source files. This is a huge improvement over the previous runtime tracking of CJS imports, which did not support ESM.

Integration with [`@ava/typescript`](https://togithub.com/avajs/typescript) has been improved. The watcher can now detect a change to a TypeScript source file, then wait for the corresponding build output to change before re-running tests.

The ignoredByWatcher configuration has moved to the watchMode object, under the ignoreChanges key.

See [#&#8203;3218](https://togithub.com/avajs/ava/issues/3218) and [#&#8203;3257](https://togithub.com/avajs/ava/issues/3257).

##### Failed assertions now throw

Assertions now throw a `TestFailure` error when they fail. This error is not exported or documented and should not be used or thrown manually. You cannot catch this error in order to recover from a failure, use `t.try()` instead.

All assertions except for `t.throws()` and `t.throwsAsync()` now return `true` when they pass. This is useful for some of the assertions in TypeScript where they can be used as a type guard.

Committing a failed `t.try()` result now also throws.

See [#&#8203;3246](https://togithub.com/avajs/ava/issues/3246).

##### `t.throws()` and `t.throwsAsync()` can now expect any error

By default, the thrown error (or rejection reason) must be a native error. You can change the assertion to expect any kind of error by setting `any: true` in the expectation object:

```js
t.throws(() => { throw 'error' }, {any: true})
```

See [#&#8203;3245](https://togithub.com/avajs/ava/issues/3245) by [@&#8203;adiSuper94](https://togithub.com/adiSuper94).

##### The `require` configuration is now more powerful

It now loads ES modules.

Local files are loaded through `@ava/typescript` if necessary, so you can also write these in TypeScript.

If there is a default export function, it is invoked after loading. The function is awaited so it can do asynchronous setup before further modules are loaded. Arguments from the configuration can be passed to the function (as a \[[structured clone](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)]\(https://developer.mozilla.org/en-US/docs/Web/API/structuredClone)).

See [#&#8203;3184](https://togithub.com/avajs/ava/issues/3184) by [@&#8203;sculpt0r](https://togithub.com/sculpt0r).

##### Other changes worth noting

-   Internal events can now be observed (experimentally). See [#&#8203;3247](https://togithub.com/avajs/ava/issues/3247) by [@&#8203;codetheweb](https://togithub.com/codetheweb). It’s experimental and undocumented.
-   You can now use `t.timeout.clear()` to restore a previous `t.timeout()`. [#&#8203;3221](https://togithub.com/avajs/ava/issues/3221)
-   Code coverage is flushed to disk at opportune moments. [#&#8203;3220](https://togithub.com/avajs/ava/issues/3220)

#### New Contributors

-   [@&#8203;sculpt0r](https://togithub.com/sculpt0r) made their first contribution in [https://github.com/avajs/ava/pull/3184](https://togithub.com/avajs/ava/pull/3184)
-   [@&#8203;ZachHaber](https://togithub.com/ZachHaber) made their first contribution in [https://github.com/avajs/ava/pull/3233](https://togithub.com/avajs/ava/pull/3233)
-   [@&#8203;adiSuper94](https://togithub.com/adiSuper94) made their first contribution in [https://github.com/avajs/ava/pull/3245](https://togithub.com/avajs/ava/pull/3245)
-   [@&#8203;bricker](https://togithub.com/bricker) made their first contribution in [https://github.com/avajs/ava/pull/3250](https://togithub.com/avajs/ava/pull/3250)

**Full Changelog**: https://github.com/avajs/ava/compare/v5.3.1...v6.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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-05 06:19:00 +00:00
Anthony
56ace48226 feat: add new page to the sidebar #5095 (#5128)
Co-authored-by: 李华桥 <joooye1991@gmail.com>
2023-12-05 14:18:21 +08:00
LongYinan
2b7c6714eb chore: bump up Helm release postgresql to v13 (#5190)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [postgresql](https://bitnami.com) ([source](https://togithub.com/bitnami/charts/tree/HEAD/bitnami/postgresql)) | major | `12.5.8` -> `13.2.23` |

---

### 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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-05 04:26:32 +00:00
LongYinan
1dacb21178 chore: bump up @dnd-kit/modifiers version to v7 (#5189)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@dnd-kit/modifiers](https://togithub.com/clauderic/dnd-kit) ([source](https://togithub.com/clauderic/dnd-kit/tree/HEAD/packages/modifiers)) | [`^6.0.1` -> `^7.0.0`](https://renovatebot.com/diffs/npm/@dnd-kit%2fmodifiers/6.0.1/7.0.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@dnd-kit%2fmodifiers/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@dnd-kit%2fmodifiers/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@dnd-kit%2fmodifiers/6.0.1/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@dnd-kit%2fmodifiers/6.0.1/7.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>clauderic/dnd-kit (@&#8203;dnd-kit/modifiers)</summary>

### [`v7.0.0`](https://togithub.com/clauderic/dnd-kit/blob/HEAD/packages/modifiers/CHANGELOG.md#700)

[Compare Source](https://togithub.com/clauderic/dnd-kit/compare/@dnd-kit/modifiers@6.0.1...@dnd-kit/modifiers@7.0.0)

##### Patch Changes

-   Updated dependencies \[[`bc588c7`](bc588c7f7b), [`b417f0f`](b417f0f94b), [`f342d5e`](f342d5efd9)]:
    -   [@&#8203;dnd-kit/core](https://togithub.com/dnd-kit/core)[@&#8203;6](https://togithub.com/6).1.0
    -   [@&#8203;dnd-kit/utilities](https://togithub.com/dnd-kit/utilities)[@&#8203;3](https://togithub.com/3).2.2

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-05 04:05:29 +00:00
LongYinan
f3e717ee5f chore: bump up @opentelemetry/instrumentation-ioredis version to ^0.36.0 (#5186)
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@opentelemetry/instrumentation-ioredis](https://togithub.com/open-telemetry/opentelemetry-js-contrib/tree/main/plugins/node/opentelemetry-instrumentation-ioredis#readme) ([source](https://togithub.com/open-telemetry/opentelemetry-js-contrib)) | [`^0.35.3` -> `^0.36.0`](https://renovatebot.com/diffs/npm/@opentelemetry%2finstrumentation-ioredis/0.35.3/0.36.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@opentelemetry%2finstrumentation-ioredis/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@opentelemetry%2finstrumentation-ioredis/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@opentelemetry%2finstrumentation-ioredis/0.35.3/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@opentelemetry%2finstrumentation-ioredis/0.35.3/0.36.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

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

### [`v0.36.0`](607d375595...a757b5e443)

[Compare Source](607d375595...a757b5e443)

</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 has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/toeverything/AFFiNE).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44MS4zIiwidXBkYXRlZEluVmVyIjoiMzcuODEuMyIsInRhcmdldEJyYW5jaCI6ImNhbmFyeSJ9-->
2023-12-05 03:46:25 +00:00
LongYinan
9e8668de6b ci: add electron-forge deps group (#5185) 2023-12-05 03:27:36 +00:00
LongYinan
eb93ae04e0 ci: exclude @blocksuite/icons from blocksuite nightly update group (#5184) 2023-12-05 02:45:55 +00:00
LongYinan
a9b021bafe ci: use renovate to replace dependabot since depedabot has never worked (#5182)
https://github.com/toeverything/AFFiNE/network/updates/757631626 dependabot update jobs keep timeout
2023-12-05 00:47:40 +00:00
LongYinan
56b37c481e chore: bump @adobe/css-tools from 4.3.1 to 4.3.2 (#5181)
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/adobe/css-tools/blob/main/History.md"><code>@​adobe/css-tools</code>'s changelog</a>.</em></p>
<blockquote>
<h1>4.3.2 / 2023-11-28</h1>
<ul>
<li>Fix redos vulnerability with specific crafted css string - CVE-2023-48631</li>
<li>Fix Problem parsing with :is() and nested :nth-child() <a href="https://redirect.github.com/adobe/css-tools/issues/211">#211</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/adobe/css-tools/commits">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@adobe/css-tools&package-manager=npm_and_yarn&previous-version=4.3.1&new-version=4.3.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/toeverything/AFFiNE/network/alerts).

</details>
2023-12-04 14:59:50 +00:00
Flrande
a2784c352f chore: bump blocksuite (#5138) 2023-12-04 12:02:35 +00:00
EYHN
7878ce5c2c feat(workspace): priority load opened page (#5156) 2023-12-04 11:32:10 +00:00
liuyi
b4b4a3b625 fix(server): avoid snapshot write conflict (#5174) 2023-12-04 11:12:16 +00:00
Cats Juice
d911d21d1c feat(component): add storybook (#5079) 2023-12-04 08:32:19 +00:00
Cats Juice
9c50dbc362 feat(core): remove all imports from design/component (#5078)
feat(core): remove all imports from design/component

feat(plugin): remove imports from design-components

feat(storybook): remove design-components imoprts

feat(core): remove

fix(component): remove design/component import in local-demo-tip
2023-12-04 08:32:16 +00:00
Cats Juice
0abadbe7bb refactor(component): migrate design components (#5000)
```[tasklist]
### Tasks
- [x] Migrate components from [design](https://github.com/toeverything/design)
- [x] Replace all imports from `@toeverything/components`
- [x] Clean up `@toeverything/components` dependencies
- [x] Storybook
```

### Influence

Here are all the components that are influenced by `@toeverything/components`

- `@affine/component`
    - App update `Button` `Tooltip`
    - App sidebar header `IconButton`, `Tooltip`
    - Back `Button`
    - Auth
      - Change email page save `Button`
      - Change password page all `Button`s (Save, Later, Open)
      - Confirm change email `Button`
      - Set password page `Button`
      - Sign in success page `Button`
      - Sign up page `Button`
      - Auth `Modal`
    - Workspace card `Avatar`, `Divider`, `Tooltip`, `IconButton`
    - Share
      - Disable shared public link `Modal`
    - Import page `IconButton`, `Tooltip`
    - Accept invite page `Avatar`, `Button`
    - Invite member `Modal`
    - 404 Page `Avatar`, `Button`, `IconButton`, `Tooltip`
    - Notification center `IconButton`
    - Page list
      - operation cell `IconButton`, `Menu`, `ConfirmModal`, `Tooltip`
      - tags more `Menu`
      - favorite `IconButton`, `Tooltip`
      - new page dropdown `Menu`
      - filter `Menu`, `Button`, `IconButton`
    - Page operation `Menu`
      - export `MenuItem`
      - move to trash `MenuItem`, `ConfirmModal`
    - Workspace header filter `Menu`, `Button`
    - Collection bar `Button`, `Tooltip` (*⚠️ seems not used*)
    - Collection operation `Menu`, `MenuItem`
      - Create collection `Modal`, `Button`
      - Edit collection `Modal`, `Button`
      - Page mode filter `Menu`
      - Page mode `Button`, `Menu`
    - Setting modal
      - storage usage progress `Button`, `Tooltip`
    - On boarding tour `Modal`
- `@affine/core`
  - Bookmark `Menu`
  - Affine error boundary `Button`
  - After sign in send email `Button`
  - After sign up send email `Button`
  - Send email `Button`
  - Sign in `Button`
  - Subscription redirect `Loading`, `Button`
  - Setting `Modal`
    - User plan button `Tooltip`
    - Members `Avatar`, `Button`, `IconButton`, `Loading`, `Tooltip`, `Menu`
    - Profile `Button`, `Avatar`
    - Workspace
      - publish panel `Button`, `Tooltip`
      - export panel `Button`
      - storage panel `Button`, `Tooltip`
      - delete `ConfirmModal`
    - Language `Menu`
    - Account setting `Avatar`, `Button`
    - Date format setting `Menu`
    - Billing `Button`, `IconButton`, `Loading`
    - Payment plans `Button`, `ConfirmModal`, `Modal`, `Tooltip`
  - Create workspace `Modal`, `ConfirmModal`, `Button`
  - Payment disabled `ConfirmModal`
  - Share/Export `Menu`, `Button`, `Divider`
  - Sign out `ConfirmModal`
  - Temp disable affine cloud `Modal`
  - Page detail operation `Menu`
  - Blocksuite mode switch `Tooltip`
  - Login card `Avatar`
  - Help island `Tooltip`
- `plugin`
  - copilot
  - hello world
  - image preview
  - outline
2023-12-04 08:32:12 +00:00
LongYinan
33c53217c3 chore: move cargo fmt to lint-staged from pre-commit (#5150) 2023-12-04 06:42:54 +00:00
EYHN
91f3149148 fix(workspace): fix svg display on browser (#5158) 2023-12-02 17:27:07 +00:00
Rakhee Singh
661b4a91ba style(core): add page list header emptypage (#5162)
Co-authored-by: rakhee28 <rakhee@strings.ai>
2023-12-02 23:39:51 +08:00
Peng Xiao
512504e177 fix(electron): do not restore window on get window (#5163)
fix https://github.com/toeverything/AFFiNE/issues/5161

Looks like I used window.restore incorrectly.
2023-12-02 15:13:48 +00:00
LongYinan
1f7654e80f chore: bump @adobe/css-tools from 4.3.1 to 4.3.2 (#5154)
Bumps [@adobe/css-tools](https://github.com/adobe/css-tools) from 4.3.1 to 4.3.2.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/adobe/css-tools/blob/main/History.md"><code>@​adobe/css-tools</code>'s changelog</a>.</em></p>
<blockquote>
<h1>4.3.2 / 2023-11-28</h1>
<ul>
<li>Fix redos vulnerability with specific crafted css string - CVE-2023-48631</li>
<li>Fix Problem parsing with :is() and nested :nth-child() <a href="https://redirect.github.com/adobe/css-tools/issues/211">#211</a></li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/adobe/css-tools/commits">compare view</a></li>
</ul>
</details>
<br />

[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=@adobe/css-tools&package-manager=npm_and_yarn&previous-version=4.3.1&new-version=4.3.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/toeverything/AFFiNE/network/alerts).

</details>
2023-12-01 08:52:40 +00:00
李华桥
120e7397ba Merge branch 'canary' into stable 2023-12-01 16:12:17 +08:00
Joooye_34
eb7d293aaa fix(core): implement editor timeout and report error from boundary (#5105) (#5151)
fix(core): implement editor timeout and report error from boundary (#5105)

ci: add sentry env when frontend assets build (#5131)

fix(core): expose catched editor load error (#5133)

fix(infra): use blocksuite api to check compatibility (#5137)

fix(infra): compatibility logic follow blocksuite (#5143)

fix(core): rerender error boundary when route change and improve sentry report (#5147)
2023-12-01 07:25:08 +00:00
李华桥
24123ad01c Revert "Revert "Merge remote-tracking branch 'origin/canary' into stable""
This reverts commit 89197bacef.
2023-12-01 13:29:43 +08:00
李华桥
ad50320391 v0.10.3 2023-12-01 12:52:15 +08:00
李华桥
eb21a60dda v0.10.3-beta.7 2023-12-01 12:12:20 +08:00
Joooye_34
c0e3be2d40 fix(core): rerender error boundary when route change and improve sentry report (#5147) 2023-12-01 04:04:44 +00:00
李华桥
09d3b72358 v0.10.3-beta.6 2023-11-30 23:02:26 +08:00
Joooye_34
246e16c6c0 fix(infra): compatibility logic follow blocksuite (#5143) 2023-11-30 23:01:38 +08:00
李华桥
dc279d062b v0.10.3-beta.5 2023-11-30 16:49:55 +08:00
Joooye_34
47d5f9e1c2 fix(infra): use blocksuite api to check compatibility (#5137) 2023-11-30 08:48:13 +00:00
LongYinan
99f98fb9d3 ci: remove publish job (#5135) 2023-11-30 04:24:43 +00:00
JimmFly
3e662f358d fix(core): adjust ui styles (#5094) 2023-11-30 12:23:57 +08:00
Peng Xiao
6661e8bd9a fix(core): language display names (#5123) 2023-11-30 12:23:03 +08:00
JimmFly
23518cae16 feat(core): add manual check for updates (#4957)
work for #4523

add `appBuildType` to `runtimeConfig`
add `useAppUpdater` to manage client updates

<!--
copilot:summary
-->
### <samp>🤖[[deprecated]](https://githubnext.com/copilot-for-prs-sunset) Generated by Copilot at cdd012c</samp>

This pull request refactors and enhances the update functionality for the frontend. It introduces a new custom hook `useAppUpdater` that simplifies the update logic and state management, and uses it in various components and commands. It also adds more options and feedback for the user to control and monitor the update process, such as manual download, auto-check, and auto-download toggles, and update status and progress indicators. It also updates the `AboutAffine` component to show the app icon, version, and build type. It also adds new translations, dependencies, types, and schemas related to the update functionality.

<img width="1073" alt="image" src="https://github.com/toeverything/AFFiNE/assets/102217452/16ae7a6a-0035-4e57-902b-6b8f63169501">
2023-11-29 13:31:25 +00:00
Joooye_34
a226eb8d5f fix(core): expose catched editor load error (#5133) 2023-11-29 20:31:35 +08:00
LongYinan
906d224fa9 chore(native): fix useless import (#5130) 2023-11-29 10:11:40 +00:00
LongYinan
6fca1b43f0 chore: add rust-toolchain file (#5129) 2023-11-29 10:11:38 +00:00
LongYinan
3fc515491b chore: remove useless circular command (#5127) 2023-11-29 10:11:36 +00:00
LongYinan
2a4741e9ab chore: add lint-staged command to pre-commit file (#5126) 2023-11-29 10:11:34 +00:00
LongYinan
feddfdc5c9 ci: upgrade setup-node action (#5125) 2023-11-29 10:11:32 +00:00
Joooye_34
908c4e1a6f ci: add sentry env when frontend assets build (#5131) 2023-11-29 10:03:49 +00:00
LongYinan
a2b8a073cc ci: pr title lint job does not need to install all dependencies (#5124) 2023-11-29 09:51:14 +00:00
李华桥
1d0bcc80a0 v0.10.3-beta.4 2023-11-29 16:14:06 +08:00
Joooye_34
50010bd824 fix(core): implement editor timeout and report error from boundary (#5105) 2023-11-29 08:10:38 +00:00
liuyi
89f267a3fe refactor(server): simplify metrics creation and usage (#5115) 2023-11-29 08:05:08 +00:00
LongYinan
7a7cbc45d7 fix: add prefer-readonly rule (#5122) 2023-11-29 15:19:00 +08:00
LongYinan
e9ea67bd38 fix: add prefer-for-of rule (#5121) 2023-11-29 15:18:52 +08:00
LongYinan
acf2de813a fix: add unified-signatures rule (#5120) 2023-11-29 04:44:18 +00:00
LongYinan
db3039fbf4 fix: add require-array-sort-compare rule (#5119) 2023-11-29 04:44:14 +00:00
LongYinan
eadf8a085b fix: add prefer-blob-reading-methods rule (#5118) 2023-11-29 04:44:10 +00:00
LongYinan
cb2c659f52 fix: add no-new-array rule (#5117) 2023-11-29 04:44:06 +00:00
LongYinan
68caf5027d fix: add new-for-builtins rule (#5116) 2023-11-29 04:44:02 +00:00
LongYinan
19c61e051d fix: add no-typeof-undefined rule (#5114) 2023-11-29 04:43:59 +00:00
LongYinan
bd488262fa fix: add prefer-date-now rule (#5113) 2023-11-29 04:43:55 +00:00
LongYinan
4dddbbdaee fix: add prefer-dom-node-remove rule (#5112) 2023-11-29 04:43:51 +00:00
LongYinan
45690c2756 fix: add no-useless-promise-resolve-reject rule (#5111) 2023-11-29 04:43:47 +00:00
LongYinan
d267029761 fix: add prefer-array-some rule (#5109) 2023-11-29 04:43:43 +00:00
LongYinan
23cfc58fe2 fix: add prefer-dom-node-append rule (#5108) 2023-11-29 04:43:39 +00:00
LongYinan
123f091e5b fix: add prefer-dom-node-dataset rule (#5107) 2023-11-29 04:43:35 +00:00
LongYinan
923844f302 fix: add eqeqeq lint rule (#5106) 2023-11-29 04:43:31 +00:00
LongYinan
a843dcd851 fix: resolve cycle imports and prevent it by oxlint (#5103) 2023-11-29 04:43:27 +00:00
LongYinan
b73e87e4ad chore: upgrade typescript-eslint (#5110) 2023-11-29 04:43:23 +00:00
liuyi
c0ede1326d fix(server): wrong OTEL config (#5084) 2023-11-29 11:19:13 +08:00
李华桥
89197bacef Revert "Merge remote-tracking branch 'origin/canary' into stable"
This reverts commit 992ed89a89, reversing
changes made to d272d7922d.
2023-11-29 11:18:45 +08:00
李华桥
f97d323ab5 Revert "Revert "refactor(server): standarderlize metrics and trace with OTEL (#5054)""
This reverts commit c1cd1713b9.
2023-11-29 11:07:28 +08:00
JimmFly
c78eb96507 feat(core): show searched result with results group and add duplicate commands (#5073)
[TOV-65](https://linear.app/affine-design/issue/TOV-65/should-show-searched-result-without-categories)

https://github.com/toeverything/AFFiNE/assets/102217452/50fba70b-7efa-4e47-ba8a-de21e400166c
2023-11-29 02:35:13 +00:00
JimmFly
469a18f794 feat(component): default collapse and float sidebar on mobile (#5077)
work for #4843

https://github.com/toeverything/AFFiNE/assets/102217452/c658dbab-4db8-4065-a3a6-3e20274b6cb9
2023-11-29 02:12:13 +00:00
LongYinan
c1cf25d2d5 style: add no-self-compare rule (#5092) 2023-11-28 08:55:50 +00:00
EYHN
2acb219dcc fix(workspace): filter awareness from other workspace (#5093) 2023-11-28 16:47:45 +08:00
Peng Xiao
890e3e4435 fix(core): should not refetch avatar when url does not change (#5070)
blob resources are in fact immutable. We do not need to refetch it by swr policies (mount/visibilitychange/etc)
2023-11-28 08:01:19 +00:00
LongYinan
992ed89a89 Merge remote-tracking branch 'origin/canary' into stable 2023-11-28 15:12:52 +08:00
LongYinan
0ee2ecc1e9 ci: always perform fresh build in deployment job (#5066) 2023-11-28 06:59:50 +00:00
LongYinan
aaaed5ac14 fix(core): nx cache configuration (#5065) 2023-11-28 06:59:48 +00:00
liuyi
e73c39fe6b fix(server): wrong OTEL config (#5084) 2023-11-28 05:54:42 +00:00
Peng Xiao
3891f23dfa fix(component): rework tags list collapsing (#5072)
Before:

![CleanShot 2023-11-27 at 16.39.55@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/2ac2b8e3-6c30-41f7-a9b2-7a9c81b250fa.png)

After:
![CleanShot 2023-11-27 at 16.38.50@2x.png](https://graphite-user-uploaded-assets-prod.s3.amazonaws.com/T2klNLEk0wxLh4NRDzhk/12eac806-e641-45be-9215-d166f8733db9.png)
2023-11-27 09:56:25 +00:00
Peng Xiao
8841dc3c4e fix(electron): electron dev startup on win (#5031) 2023-11-27 08:45:33 +00:00
EYHN
9cdfeba9b4 docs: issue triaging document (#5071)
I would like to sort out our process for handling github issues. When we receive a issue, we should first triage it.

This PR contains the document about issue triaging.

reference:
[YouTrack issue states used in .NET tools team and their description](https://rider-support.jetbrains.com/hc/en-us/articles/360021572199-YouTrack-issue-states-used-in-NET-tools-team-and-their-description)
[vscode Issues Triaging](https://github.com/microsoft/vscode/wiki/Issues-Triaging)
2023-11-27 08:27:34 +00:00
LongYinan
30ec08cadf chore: bump the all-cargo-dependencies group with 5 updates (#5068)
[//]: # (dependabot-start)
⚠️  **Dependabot is rebasing this PR** ⚠️

Rebasing might not happen immediately, so don't worry if this takes some time.

Note: if you make any changes to this PR yourself, they will take precedence over the rebase.

---

[//]: # (dependabot-end)

Bumps the all-cargo-dependencies group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [napi](https://github.com/napi-rs/napi-rs) | `2.14.0` | `2.14.1` |
| [napi-derive](https://github.com/napi-rs/napi-rs) | `2.14.1` | `2.14.2` |
| [serde](https://github.com/serde-rs/serde) | `1.0.192` | `1.0.193` |
| [sqlx](https://github.com/launchbadge/sqlx) | `0.7.2` | `0.7.3` |
| [uuid](https://github.com/uuid-rs/uuid) | `1.6.0` | `1.6.1` |

Updates `napi` from 2.14.0 to 2.14.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/napi-rs/napi-rs/releases">napi's releases</a>.</em></p>
<blockquote>
<h2><code>@​napi-rs/cli</code><a href="https://github.com/2"><code>@​2</code></a>.14.1</h2>
<h2>What's Changed</h2>
<ul>
<li>[Fix] Quote toml path by <a href="https://github.com/TheBrenny"><code>@​TheBrenny</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1410">napi-rs/napi-rs#1410</a></li>
<li>chore(cli): update CI template by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1416">napi-rs/napi-rs#1416</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/TheBrenny"><code>@​TheBrenny</code></a> made their first contribution in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1410">napi-rs/napi-rs#1410</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/napi-rs/napi-rs/compare/napi@2.10.4...@napi-rs/cli@2.14.1">https://github.com/napi-rs/napi-rs/compare/napi@2.10.4...<code>@​napi-rs/cli</code><code>@​2.14.1</code></a></p>
<h2>napi-derive@2.14.1</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(napi-derive): async task void output type by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1795">napi-rs/napi-rs#1795</a></li>
<li>fix(napi-derive): async task optional output type by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1796">napi-rs/napi-rs#1796</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/napi-rs/napi-rs/compare/napi-sys@2.3.0...napi-derive@2.14.1">https://github.com/napi-rs/napi-rs/compare/napi-sys@2.3.0...napi-derive@2.14.1</a></p>
<h2>napi@2.14.1</h2>
<h2>What's Changed</h2>
<ul>
<li>style(napi): clippy fix by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1815">napi-rs/napi-rs#1815</a></li>
<li>fix(napi): cargo doc build by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1819">napi-rs/napi-rs#1819</a></li>
<li>fix(napi): compile error for wasm32-unknown-unknown target by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1822">napi-rs/napi-rs#1822</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/napi-rs/napi-rs/compare/napi@2.14.0...napi@2.14.1">https://github.com/napi-rs/napi-rs/compare/napi@2.14.0...napi@2.14.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6a4f4f173d"><code>6a4f4f1</code></a> chore(release): publish</li>
<li><a href="e4ac44e560"><code>e4ac44e</code></a> Release independent packages</li>
<li><a href="8a9c42a985"><code>8a9c42a</code></a> fix(napi): compile error for wasm32-unknown-unknown target</li>
<li><a href="7dced934a7"><code>7dced93</code></a> fix(napi): cargo doc build</li>
<li><a href="751312cec9"><code>751312c</code></a> test: add test file name into error message (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1821">#1821</a>)</li>
<li><a href="7c3f8b514e"><code>7c3f8b5</code></a> fix(napi-derive): compile warning (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1820">#1820</a>)</li>
<li><a href="8c911b5d34"><code>8c911b5</code></a> chore: upgrade emnapi dependencies (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1817">#1817</a>)</li>
<li><a href="76dcf833da"><code>76dcf83</code></a> chore(deps): update dependency emnapi to v0.44.0 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1805">#1805</a>)</li>
<li><a href="6df0ca112e"><code>6df0ca1</code></a> chore: 🤖 align wasi template to nodejs demo (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1814">#1814</a>)</li>
<li><a href="c321071c89"><code>c321071</code></a> chore(deps): update dependency <code>@​emnapi/runtime</code> to v0.44.0 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1804">#1804</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/napi-rs/napi-rs/compare/napi@2.14.0...napi@2.14.1">compare view</a></li>
</ul>
</details>
<br />

Updates `napi-derive` from 2.14.1 to 2.14.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/napi-rs/napi-rs/releases">napi-derive's releases</a>.</em></p>
<blockquote>
<h2>napi-derive@2.14.2</h2>
<h2>What's Changed</h2>
<ul>
<li>fix(napi-derive): compile warning by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1820">napi-rs/napi-rs#1820</a></li>
<li>fix(napi): compile error for wasm32-unknown-unknown target by <a href="https://github.com/Brooooooklyn"><code>@​Brooooooklyn</code></a> in <a href="https://redirect.github.com/napi-rs/napi-rs/pull/1822">napi-rs/napi-rs#1822</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/napi-rs/napi-rs/compare/napi-derive@2.14.1...napi-derive@2.14.2">https://github.com/napi-rs/napi-rs/compare/napi-derive@2.14.1...napi-derive@2.14.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="6a4f4f173d"><code>6a4f4f1</code></a> chore(release): publish</li>
<li><a href="e4ac44e560"><code>e4ac44e</code></a> Release independent packages</li>
<li><a href="8a9c42a985"><code>8a9c42a</code></a> fix(napi): compile error for wasm32-unknown-unknown target</li>
<li><a href="7dced934a7"><code>7dced93</code></a> fix(napi): cargo doc build</li>
<li><a href="751312cec9"><code>751312c</code></a> test: add test file name into error message (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1821">#1821</a>)</li>
<li><a href="7c3f8b514e"><code>7c3f8b5</code></a> fix(napi-derive): compile warning (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1820">#1820</a>)</li>
<li><a href="8c911b5d34"><code>8c911b5</code></a> chore: upgrade emnapi dependencies (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1817">#1817</a>)</li>
<li><a href="76dcf833da"><code>76dcf83</code></a> chore(deps): update dependency emnapi to v0.44.0 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1805">#1805</a>)</li>
<li><a href="6df0ca112e"><code>6df0ca1</code></a> chore: 🤖 align wasi template to nodejs demo (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1814">#1814</a>)</li>
<li><a href="c321071c89"><code>c321071</code></a> chore(deps): update dependency <code>@​emnapi/runtime</code> to v0.44.0 (<a href="https://redirect.github.com/napi-rs/napi-rs/issues/1804">#1804</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/napi-rs/napi-rs/compare/napi-derive@2.14.1...napi-derive@2.14.2">compare view</a></li>
</ul>
</details>
<br />

Updates `serde` from 1.0.192 to 1.0.193
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/serde-rs/serde/releases">serde's releases</a>.</em></p>
<blockquote>
<h2>v1.0.193</h2>
<ul>
<li>Fix field names used for the deserialization of <code>RangeFrom</code> and <code>RangeTo</code> (<a href="https://redirect.github.com/serde-rs/serde/issues/2653">#2653</a>, <a href="https://redirect.github.com/serde-rs/serde/issues/2654">#2654</a>, <a href="https://redirect.github.com/serde-rs/serde/issues/2655">#2655</a>, thanks <a href="https://github.com/emilbonnek"><code>@​emilbonnek</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="44613c7d01"><code>44613c7</code></a> Release 1.0.193</li>
<li><a href="c706281df3"><code>c706281</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/serde/issues/2655">#2655</a> from dtolnay/rangestartend</li>
<li><a href="65d75b8fe3"><code>65d75b8</code></a> Add RangeFrom and RangeTo tests</li>
<li><a href="332b0cba40"><code>332b0cb</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/serde/issues/2654">#2654</a> from dtolnay/rangestartend</li>
<li><a href="8c4af41296"><code>8c4af41</code></a> Fix more RangeFrom / RangeEnd mixups</li>
<li><a href="24a78f071b"><code>24a78f0</code></a> Merge pull request <a href="https://redirect.github.com/serde-rs/serde/issues/2653">#2653</a> from emilbonnek/fix/range-to-from-de-mixup</li>
<li><a href="c91c33436d"><code>c91c334</code></a> Fix Range{From,To} deserialize mixup</li>
<li><a href="2083f43a28"><code>2083f43</code></a> Update ui test suite to nightly-2023-11-19</li>
<li>See full diff in <a href="https://github.com/serde-rs/serde/compare/v1.0.192...v1.0.193">compare view</a></li>
</ul>
</details>
<br />

Updates `sqlx` from 0.7.2 to 0.7.3
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a href="https://github.com/launchbadge/sqlx/blob/main/CHANGELOG.md">sqlx's changelog</a>.</em></p>
<blockquote>
<h2>0.7.3 - 2023-11-22</h2>
<p>38 pull requests were merged this release cycle.</p>
<h3>Added</h3>
<ul>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2478">#2478</a>]: feat(citext): support postgres citext [[<a href="https://github.com/hgranthorner"><code>@​hgranthorner</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2545">#2545</a>]: Add <code>fixtures_path</code> in sqlx::test args [[<a href="https://github.com/ripa1995"><code>@​ripa1995</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2665">#2665</a>]: feat(mysql): support packet splitting [[<a href="https://github.com/tk2217"><code>@​tk2217</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2752">#2752</a>]: Enhancement <a href="https://redirect.github.com/launchbadge/sqlx/issues/2747">#2747</a> Provide <code>fn PgConnectOptions::get_host(&amp;self)</code> [[<a href="https://github.com/boris-lok"><code>@​boris-lok</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2769">#2769</a>]: Customize the macro error message based on the metadata [[<a href="https://github.com/Nemo157"><code>@​Nemo157</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2793">#2793</a>]: derived Hash trait for PgInterval [[<a href="https://github.com/yasamoka"><code>@​yasamoka</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2801">#2801</a>]: derive FromRow: sqlx(default) for all fields [[<a href="https://github.com/grgi"><code>@​grgi</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2827">#2827</a>]: Add impl <code>FromRow</code> for the unit type [[<a href="https://github.com/nanoqsh"><code>@​nanoqsh</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2871">#2871</a>]: Add <code>MySqlConnectOptions::get_database()</code>  [[<a href="https://github.com/shiftrightonce"><code>@​shiftrightonce</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2873">#2873</a>]: Sqlx Cli: Added force flag to drop database for postgres [[<a href="https://github.com/Vrajs16"><code>@​Vrajs16</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2894">#2894</a>]: feat: <code>Text</code> adapter [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
</ul>
<h3>Changed</h3>
<ul>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2701">#2701</a>]: Remove documentation on offline feature [[<a href="https://github.com/Baptistemontan"><code>@​Baptistemontan</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2713">#2713</a>]: Add additional info regarding using Transaction and PoolConnection as… [[<a href="https://github.com/satwanjyu"><code>@​satwanjyu</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2770">#2770</a>]: Update README.md [[<a href="https://github.com/snspinn"><code>@​snspinn</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2797">#2797</a>]: doc(mysql): document behavior regarding <code>BOOLEAN</code> and the query macros [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2803">#2803</a>]: Don't use separate temp dir for query jsons (2)  [[<a href="https://github.com/mattfbacon"><code>@​mattfbacon</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2819">#2819</a>]: postgres begin cancel safe [[<a href="https://github.com/conradludgate"><code>@​conradludgate</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2832">#2832</a>]: Update extra_float_digits default to 2 instead of 3 [[<a href="https://github.com/brianheineman"><code>@​brianheineman</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2865">#2865</a>]: Update Faq - Bulk upsert with optional fields  [[<a href="https://github.com/Vrajs16"><code>@​Vrajs16</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2880">#2880</a>]: feat: use specific message for slow query logs [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2882">#2882</a>]: Do not require db url for prepare [[<a href="https://github.com/tamasfe"><code>@​tamasfe</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2890">#2890</a>]: doc(sqlite): cover lack of <code>NUMERIC</code> support [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
<li>[No PR]: Upgraded <code>libsqlite3-sys</code> to 0.27.0
<ul>
<li>Note: linkage to <code>libsqlite3-sys</code> is considered semver-exempt;
see the release notes for 0.7.0 below for details.</li>
</ul>
</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2640">#2640</a>]: fix: sqlx::macro db cleanup race condition by adding a margin to current timestamp [[<a href="https://github.com/fhsgoncalves"><code>@​fhsgoncalves</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2655">#2655</a>]: [fix] Urlencode when passing filenames to sqlite3 [[<a href="https://github.com/uttarayan21"><code>@​uttarayan21</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2684">#2684</a>]: Make PgListener recover from UnexpectedEof [[<a href="https://github.com/hamiltop"><code>@​hamiltop</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2688">#2688</a>]: fix: Make rust_decimal and bigdecimal decoding more lenient [[<a href="https://github.com/cameronbraid"><code>@​cameronbraid</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2754">#2754</a>]: Is tests/x.py maintained? And I tried fix it. [[<a href="https://github.com/qwerty2501"><code>@​qwerty2501</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2784">#2784</a>]: fix: decode postgres time without subsecond [[<a href="https://github.com/granddaifuku"><code>@​granddaifuku</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2806">#2806</a>]: Depend on version of async-std with non-private spawn-blocking [[<a href="https://github.com/A248"><code>@​A248</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2820">#2820</a>]: fix: correct decoding of <code>rust_decimal::Decimal</code> for high-precision values [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2822">#2822</a>]: issue <a href="https://redirect.github.com/launchbadge/sqlx/issues/2821">#2821</a> Update error handling logic when opening a TCP connection [[<a href="https://github.com/anupj"><code>@​anupj</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2826">#2826</a>]: chore: bump some sqlx-core dependencies [[<a href="https://github.com/djc"><code>@​djc</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2838">#2838</a>]: Fixes rust_decimal scale for Postgres [[<a href="https://github.com/jkleinknox"><code>@​jkleinknox</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2847">#2847</a>]: Fix comment in <code>sqlx migrate add</code> help text [[<a href="https://github.com/cryeprecision"><code>@​cryeprecision</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2850">#2850</a>]: fix(core): avoid unncessary wakeups in <code>try_stream!()</code> [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2856">#2856</a>]: Prevent warnings running <code>cargo build</code> [[<a href="https://github.com/nyurik"><code>@​nyurik</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2864">#2864</a>]: fix(sqlite): use <code>AtomicUsize</code> for thread IDs [[<a href="https://github.com/abonander"><code>@​abonander</code></a>]]</li>
<li>[<a href="https://redirect.github.com/launchbadge/sqlx/issues/2892">#2892</a>]: Fixed force dropping bug [[<a href="https://github.com/Vrajs16"><code>@​Vrajs16</code></a>]]</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a href="https://github.com/launchbadge/sqlx/commits/v0.7.3">compare view</a></li>
</ul>
</details>
<br />

Updates `uuid` from 1.6.0 to 1.6.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p>
<blockquote>
<h2>1.6.1</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix uuid macro in consts by <a href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/721">uuid-rs/uuid#721</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1">https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="c889107324"><code>c889107</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/721">#721</a> from uuid-rs/fix/uuid-macro</li>
<li><a href="f3f74961c4"><code>f3f7496</code></a> fix uuid macro in consts</li>
<li>See full diff in <a href="https://github.com/uuid-rs/uuid/compare/1.6.0...1.6.1">compare view</a></li>
</ul>
</details>
<br />

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions

</details>
2023-11-27 07:24:08 +00:00
liuyi
8cc9a0b21b feat(server): add soft deleted flag to optimized blob table (#5058)
requires https://github.com/toeverything/OctoBase/pull/561
2023-11-27 07:06:31 +00:00
Peng Xiao
2deceb6e85 test(core): simple recovery ui e2e (#5059) 2023-11-27 06:39:41 +00:00
Peng Xiao
71d6b730f7 chore: bump blocksuite (#5051)
https://github.com/toeverything/blocksuite/pull/5337
2023-11-27 04:46:23 +00:00
Peng Xiao
34d575078c feat(core): simple recovery history ui poc (#5033)
Simple recovery history UI poc.
What's missing
- [x] e2e

All biz logic should be done, excluding complete ui details.
- [ ] offline prompt
- [ ] history timeline
- [ ] page ui

https://github.com/toeverything/AFFiNE/assets/584378/fc3f6a48-ff7f-4265-b9f5-9c0087cb2635
2023-11-27 02:41:19 +00:00
李华桥
d272d7922d v0.10.3-beta.2 2023-11-25 23:50:40 +08:00
李华桥
c1cd1713b9 Revert "refactor(server): standarderlize metrics and trace with OTEL (#5054)"
This reverts commit 91efca107a.
2023-11-25 23:50:39 +08:00
DarkSky
f04ec50d12 feat: optional payment for frontend (#5056) 2023-11-25 15:15:44 +00:00
DarkSky
13e712158c feat: optional payment for server (#5055) 2023-11-25 14:59:47 +00:00
李华桥
b20e91bee0 v0.10.3-beta.1 2023-11-25 14:14:40 +08:00
李华桥
9a4e5ec8c3 Merge branch 'canary' into stable 2023-11-25 14:14:14 +08:00
liuyi
9dc2d55a5a fix(server): add guid compatibility of :space:page variant (#5062) 2023-11-24 15:46:09 +00:00
liuyi
91efca107a refactor(server): standarderlize metrics and trace with OTEL (#5054)
you can now export span to Zipkin and metrics to Prometheus when developing locally
follow the docs of OTEL: https://opentelemetry.io/docs/instrumentation/js/exporters/

<img width="2357" alt="image" src="https://github.com/toeverything/AFFiNE/assets/8281226/ec615e1f-3e91-43f7-9111-d7d2629e9679">
2023-11-24 15:19:22 +00:00
liuyi
cf65a5cd93 fix(server): never throw in websocket gateways (#5050) 2023-11-24 07:26:40 +00:00
LongYinan
42f4045ad6 chore: adjust the request memory size and replica count (#5046) 2023-11-24 06:19:38 +00:00
李华桥
2019838ae7 v0.10.3-beta.0 2023-11-24 11:39:23 +08:00
李华桥
30ff25f400 Merge branch 'canary' into stable 2023-11-23 23:40:32 +08:00
Joooye_34
317ca7f4e7 ci: fix storybook publish problem (#5047) 2023-11-23 23:38:09 +08:00
李华桥
e766208c18 chore: reset merge wrong codes 2023-11-23 22:53:06 +08:00
李华桥
8742f28148 Merge branch 'canary' into stable 2023-11-23 21:31:42 +08:00
JimmFly
4168551783 chore: bump icons version (#5042) 2023-11-23 12:00:51 +00:00
LongYinan
55c6477bcc fix(electron): appimage forge builder (#5043) 2023-11-23 11:46:50 +00:00
Peng Xiao
ae8329c590 chore(core): update react-resizable-panels (#5041)
`react-resizable-panels` will throw some errors sometime when showing history modal dialog.
I haven't checked the root cause, but upgrade it to the latest will get rid of the error.
2023-11-23 09:20:12 +00:00
LongYinan
25eda22af6 v0.10.3-canary.2 2023-11-23 16:47:40 +08:00
EYHN
23e0137ed8 refactor(workspace): blob sync (#5037)
This pr implements a blob engine.
It exposes a single `BlobStorage` to the `blocksuite`, and in it we sync blobs between multiple storages.

The implement still have few issues, but we can merge this pr first and fix them in future.

* BlobEngine currently **do nothing when delete**, because synchronization logic conflicts with deletion logic.
* BlobEngine sync between storages by querying the blob list at regular intervals. This will **cause many queries**, we can avoid this in the future by subscribing to remote changes.
2023-11-23 07:56:19 +00:00
liuyi
1740e7efa1 fix(server): check state changes before saving history record (#5038) 2023-11-23 07:39:02 +00:00
Peng Xiao
7463e87742 fix(electron): clone db file when enable cloud for desktop (#5028)
At the moment on desktop the user's local blob data will be lost after enable cloud.
This is because blob data is only synced from old idb to new idb, but not sync into sqlitedb.

This pr will simply clone the db file for desktop app. It should also speed up the time when enabling cloud for a large local workspace.
2023-11-23 07:23:16 +00:00
李华桥
9ded6afb4b chore: v0.10.3-canary.1 2023-11-23 14:39:55 +08:00
JimmFly
ad2d3b9167 feat(core): add download app button to web (#5023) 2023-11-23 14:33:25 +08:00
LongYinan
3499dbbb7f feat: upgrade dependencies and lockfile (#5016)
- Close https://github.com/toeverything/AFFiNE/security/dependabot/47
2023-11-23 05:18:05 +00:00
Joooye_34
4c8d54b3a7 refactor(core): use manual upgrade to replace auto migration when web setup (#5022)
1. Split logic in `packages/common/infra/src/blocksuite/index.ts` to multiple single files
2. Move migration logic from setup to upgrade module, to prevent auto migration problems and loading problem
2023-11-23 02:26:06 +00:00
liuyi
3710bcdc14 fix(server): use iso date string as history query input (#5035) 2023-11-23 01:59:08 +00:00
Peng Xiao
ca07b143ef fix(core): should not reset page preset on rerender (#5034)
Should not reset editor preset when re-render.

See ce7ac88fc7/packages/editor/src/components/editor-container.ts (L197). If these props changes, it will trigger some unexpected side effects.
2023-11-22 18:29:34 +00:00
EYHN
e8616acfe4 fix(workspace): fast check svg buffer (#5032) 2023-11-22 14:53:33 +00:00
EYHN
06203498da fix(core): fix page loading shimmer (#5027) 2023-11-22 12:55:10 +00:00
Flrande
d7d47853fe chore: bump blocksuite (#5030) 2023-11-22 20:51:35 +08:00
Flrande
a3d880daa3 chore: bump blocksuite (#5026) 2023-11-22 20:12:52 +08:00
liuyi
d1476495ae feat(server): impl doc history (#5004) 2023-11-22 07:56:59 +00:00
liuyi
946b7b4004 feat(server): event on snapshot upserted (#5002) 2023-11-22 07:23:44 +00:00
liuyi
525b196cae feat(server): reduce duplidated merge with cache (#4975) 2023-11-22 04:09:07 +00:00
liuyi
c69e542b98 feat(server): add cache module (#4973) 2023-11-22 04:09:00 +00:00
liuyi
85bee72e6b chore(server): remove deprecated redis manager (#4971) 2023-11-22 03:51:18 +00:00
liuyi
b7d6237c20 feat(server): add doc history support (#4970) 2023-11-22 03:31:22 +00:00
LongYinan
5f1a124b53 fix(core): add error boundary for workspace layout (#5014)
https://github.com/toeverything/AFFiNE/assets/3468483/d478bf4f-2be3-4d7d-8d94-aa95c1f74c8e
2023-11-22 09:58:33 +08:00
Peng Xiao
3839a9bd15 build(electron): asar (#4965)
Due to restrictions on how Electron package works, the `node_modules` should not be hoisted and not to use s/h-links at all. This is why we need to have two separate installs for electron and non-electron packages in the build.

Tested via the following script

```bash
#!/bin/bash

echo "step 1: clean up"
find . -name "node_modules" -prune -exec rm -rf '{}' +
# git clean -dfX
build_type=canary

echo "step 2: install web dependencies"
# firstly, build web static
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 SENTRYCLI_SKIP_DOWNLOAD=1 PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 HUSKY=1 yarn

echo "step 3: generate assets"
BUILD_TYPE="$build_type" yarn workspace @affine/electron generate-assets

# cleanup node_modules
find . -name "node_modules" -prune -exec rm -rf '{}' +

echo "step 4: install electron dependencies"
# install electron deps
yarn config set nmHoistingLimits workspaces
yarn config set enableScripts false
yarn config set nmMode classic
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 HUSKY=0 yarn workspaces focus @affine/electron @affine/monorepo

echo "step 5: build native"
# build native
yarn workspace @affine/native build
yarn workspace @affine/storage build

echo "step 6: build electron"
# build electron
yarn workspace @affine/electron build

echo "step 7: package electron"
# package
SKIP_GENERATE_ASSETS=1 BUILD_TYPE="$build_type" HOIST_NODE_MODULES=1 yarn workspace @affine/electron package
```
2023-11-21 17:44:30 +00:00
Peng Xiao
f33c49b27e fix(core): hmr issue on dev (#5006)
I suspect HMR does not working properly on dev because we have multiple entries.
One relative issue: https://github.com/webpack/webpack-dev-server/issues/2792/

I think we do not need multiple entries for polyfills & plugins after all. They could be in the same chunk, and could be later optimized through splitChunks option.

`ses.ts` is changed to `ses-lockdown.ts` because `ses.ts` does not pass circular dependency check by madge. I haven't looked through the real root cause though. See https://github.com/pahen/madge/issues/355
2023-11-21 17:27:16 +00:00
Peng Xiao
615255706d fix: invisible button should not be interactive (#5017) 2023-11-22 01:05:38 +08:00
EYHN
5e8103adbd chore: faster lint-staged (#5013)
Co-authored-by: EYHN <13579374+EYHN@users.noreply.github.com>
2023-11-21 22:24:24 +08:00
JimmFly
f06bdd9a39 fix(core): cmdk crash when entering double quotes (#5008)
Due to a bug in the upstream repository, a temporary fix was implemented until the issue in the upstream repository is resolved.
https://github.com/pacocoursey/cmdk/issues/189
2023-11-21 12:51:22 +00:00
李华桥
00c11d40cf v0.10.3-canary.0 2023-11-21 10:02:46 +08:00
李华桥
0f6b28fd06 c0.11.0-canary.0 2023-11-20 23:53:50 +08:00
EYHN
90c130cf15 fix(core): merge updates before push to storage (#4986) 2023-11-20 23:26:19 +08:00
EYHN
9370110cdc feat(workspace): more status for SyncEngine (#4984) 2023-11-20 22:51:20 +08:00
EYHN
c9f1fd9649 feat(workspace): more status for SyncPeer (#4983) 2023-11-20 20:37:12 +08:00
EYHN
70e71bd43e fix(core): make e2e more stable (#4987) 2023-11-20 20:17:30 +08:00
EYHN
899e46b1fa fix(core): rerender (#4988) 2023-11-20 17:32:40 +08:00
dependabot[bot]
c127d449a1 chore: bump the all-cargo-dependencies group with 1 update (#4997)
Bumps the all-cargo-dependencies group with 1 update: [uuid](https://github.com/uuid-rs/uuid).

<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/uuid-rs/uuid/releases">uuid's releases</a>.</em></p>
<blockquote>
<h2>1.6.0</h2>
<h2>What's Changed</h2>
<ul>
<li>doc: fix links in v6 module by <a href="https://github.com/metalalive"><code>@​metalalive</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/714">uuid-rs/uuid#714</a></li>
<li>Stabilize UUIDv6-v8 support by <a href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/718">uuid-rs/uuid#718</a></li>
<li>Prepare for 1.6.0 release by <a href="https://github.com/KodrAus"><code>@​KodrAus</code></a> in <a href="https://redirect.github.com/uuid-rs/uuid/pull/719">uuid-rs/uuid#719</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/metalalive"><code>@​metalalive</code></a> made their first contribution in <a href="https://redirect.github.com/uuid-rs/uuid/pull/714">uuid-rs/uuid#714</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0">https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="4609e61794"><code>4609e61</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/719">#719</a> from uuid-rs/cargo/1.6.0</li>
<li><a href="24330666ec"><code>2433066</code></a> prepare for 1.6.0 release</li>
<li><a href="9787ea1d0b"><code>9787ea1</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/718">#718</a> from uuid-rs/feat/stabilize-v6-plus</li>
<li><a href="90b0bc0a1c"><code>90b0bc0</code></a> Merge pull request <a href="https://redirect.github.com/uuid-rs/uuid/issues/714">#714</a> from metalalive/doc/fix-v6-links</li>
<li><a href="1eebe7d299"><code>1eebe7d</code></a> bump msrv to 1.60.0</li>
<li><a href="6bade3ae59"><code>6bade3a</code></a> just test lib with miri</li>
<li><a href="3df0aaa80d"><code>3df0aaa</code></a> stabilize UUIDv6-v8 support</li>
<li><a href="003dc57994"><code>003dc57</code></a> doc: fix links to timestamp module</li>
<li>See full diff in <a href="https://github.com/uuid-rs/uuid/compare/1.5.0...1.6.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=uuid&package-manager=cargo&previous-version=1.5.0&new-version=1.6.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this group update PR and stop Dependabot creating any more for the specific dependency's major version (unless you unignore this specific dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency's minor version (unless you unignore this specific dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will remove the ignore condition of the specified dependency and ignore conditions


</details>
2023-11-20 14:43:11 +08:00
Peng Xiao
add20ec2f8 fix(core): blob key issue for cloud blob provider (#4907)
There are some resources that only exists on `/static`. Current prefix check is incorrect since it could start with `/static`
2023-11-20 14:06:24 +08:00
LongYinan
34c5e7d83d build: remove useless source-map-loader to speedup webpack (#4910) 2023-11-20 11:04:57 +08:00
LongYinan
7f09652cca fix(core): handle the getSession network error properly (#4909)
If network offline or API error happens, the `session` returned by the `useSession` hook will be null, so we can't assume it is not null.

There should be following changes:
1. create a page in ErrorBoundary to let the user refetch the session.
2. The `SessionProvider` stop to pull the new session once the session is null, we need to figure out a way to pull the new session when the network is back or the user click the refetch button.
2023-11-20 11:04:39 +08:00
LongYinan
cd291bb60e build: remove useless source-map-loader to speedup webpack (#4910) 2023-11-20 10:52:28 +08:00
Cats Juice
57d42bf491 refactor(core): remove all MUI related components and utilities (#4941) 2023-11-20 10:51:28 +08:00
JimmFly
4ef1f4c046 fix(core): escape cmdk value (#4947)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2023-11-20 10:49:32 +08:00
JimmFly
9bab1b5dff feat(core): keep the latest toast showing when multiple call (#4961) 2023-11-20 10:47:09 +08:00
JimmFly
f09c717413 fix(core): adjust cmdk list scroll padding block (#4972) 2023-11-20 10:39:45 +08:00
Cats Juice
134428f38d style(core): update pro plan card style (#4960) 2023-11-18 00:36:10 +08:00
Cats Juice
ce7a691eef fix(component): stack notification cards expand animation (#4962) 2023-11-18 00:32:06 +08:00
EYHN
5fea0102fb chore: add devcontainer config (#4974)
Co-authored-by: Reese <3253971+figadore@users.noreply.github.com>
2023-11-17 17:54:19 +08:00
JimmFly
ce2eeeffbe feat(i18n): update translation (#4923) 2023-11-17 17:39:33 +08:00
LongYinan
62c0efcfd1 fix(core): handle the getSession network error properly (#4909)
If network offline or API error happens, the `session` returned by the `useSession` hook will be null, so we can't assume it is not null.

There should be following changes:
1. create a page in ErrorBoundary to let the user refetch the session.
2. The `SessionProvider` stop to pull the new session once the session is null, we need to figure out a way to pull the new session when the network is back or the user click the refetch button.
2023-11-17 16:50:48 +08:00
EYHN
aa4c7407de refactor: new provider (#4900) 2023-11-17 15:50:01 +08:00
liuyi
9baad36e41 fix(server): all viewers can share public link (#4968) 2023-11-17 13:48:09 +08:00
liuyi
87248b3337 fix(server): all viewers can share public link (#4968) 2023-11-17 12:34:15 +08:00
Flrande
8b2c3d4c41 chore: bump blocksuite (#4958) 2023-11-16 22:01:03 +08:00
LongYinan
703fad6a0d ci: prevent error if rust build is cached by nx (#4951)
If Rust build was cached by nx, only the output file will be presented. The chmod command will be failed in this case like: https://github.com/toeverything/AFFiNE/actions/runs/6874496337/job/18697360212
2023-11-16 21:57:22 +08:00
Peng Xiao
791eb75ca8 fix(infra): page id compat fix for page ids in workspace.meta (#4950)
since we strip `page:` in keys of workspacedoc.spaces, we should also strip the prefix in meta.pages as well.
2023-11-16 21:57:17 +08:00
Joooye_34
00c940f7df chore: bump affine version to 0.10.2 (#4959) 2023-11-16 15:48:37 +08:00
Flrande
931b459fbd chore: bump blocksuite (#4958) 2023-11-16 14:27:39 +08:00
LongYinan
51e71f4a0a ci: prevent error if rust build is cached by nx (#4951)
If Rust build was cached by nx, only the output file will be presented. The chmod command will be failed in this case like: https://github.com/toeverything/AFFiNE/actions/runs/6874496337/job/18697360212
2023-11-16 10:31:51 +08:00
Peng Xiao
9b631f2328 fix(infra): page id compat fix for page ids in workspace.meta (#4950)
since we strip `page:` in keys of workspacedoc.spaces, we should also strip the prefix in meta.pages as well.
2023-11-15 17:36:08 +08:00
JimmFly
ddd7cab414 feat(core): support share edgeless mode (#4856)
Close #3287

<!--
copilot:all
-->
### <samp>🤖 Generated by Copilot at d3fdf86</samp>

### Summary
📄🚀🔗

<!--
1.  📄 - This emoji represents the page and edgeless modes of sharing a page, as well as the GraphQL operations and types related to public pages.
2.  🚀 - This emoji represents the functionality of publishing and revoking public pages, as well as the confirmation modal and the notifications for the user.
3.  🔗 - This emoji represents the sharing URL and the query parameter for the share mode, as well as the hooks and functions that generate and use the URL.
-->
This pull request adds a feature to the frontend component of AFFiNE that allows the user to share a page in either `page` or `edgeless` mode, which affects the appearance and functionality of the page. It also adds the necessary GraphQL operations, types, and schema to support this feature in the backend, and updates the tests and the storybook stories accordingly.

*  Modify the `useIsSharedPage` hook to accept an optional `shareMode` argument and use the `getWorkspacePublicPagesQuery`, `publishPageMutation`, and `revokePublicPageMutation` from `@affine/graphql`
2023-11-15 16:02:58 +08:00
LongYinan
e7e617a791 chore: change default branch to canary (#4948) 2023-11-15 07:46:50 +00:00
LongYinan
cc2ade601c ci: only disable postinstall on macOS in nightly desktop build (#4938) 2023-11-14 23:03:49 +08:00
Joooye_34
ea4f5ffc83 fix(infra): workspace migration without blockVersions (#4936) 2023-11-14 23:03:40 +08:00
Peng Xiao
9ac8a32e00 perf(component): use png instead of svg for rendering noise svg (#4935) 2023-11-14 23:03:19 +08:00
DarkSky
8d55e5cdf9 fix: change password token check (#4934) (#4932) 2023-11-14 23:03:01 +08:00
LongYinan
01f481a9b6 ci: only disable postinstall on macOS in nightly desktop build (#4938) 2023-11-14 23:00:30 +08:00
Joooye_34
0177ab5c87 fix(infra): workspace migration without blockVersions (#4936) 2023-11-14 14:38:11 +01:00
Peng Xiao
4db35d341c perf(component): use png instead of svg for rendering noise svg (#4935) 2023-11-14 11:52:51 +00:00
DarkSky
3c4a803c97 fix: change password token check (#4934) (#4932) 2023-11-14 11:15:54 +00:00
LongYinan
8bcc886b46 ci: disable postinstall in nightly desktop build (#4930)
Should be part of https://github.com/toeverything/AFFiNE/pull/4885
2023-11-14 14:45:52 +08:00
Peng Xiao
f9971ba922 fix(core): change server url of stable to insider (#4902) (#4926) 2023-11-14 14:40:06 +08:00
LongYinan
5b0b8cf216 test(e2e): add subdoc migration test (#4921)
test(e2e): add subdoc migration test

fix: remove .only
2023-11-14 14:39:59 +08:00
Peng Xiao
16488d594c fix(infra): compatibility fix for space prefix (#4912)
It seems there are some cases that [this upstream PR](https://github.com/toeverything/blocksuite/pull/4747) will cause data loss.

Because of some historical reasons, the page id could be different with its doc id.
It might be caused by subdoc migration in the following (not 100% sure if all white screen issue is caused by it) 0714c12703/packages/common/infra/src/blocksuite/index.ts (L538-L540)

In version 0.10, page id in spaces no longer has prefix "space:"
The data flow for fetching a doc's updates is:
- page id in `meta.pages` -> find `${page-id}` in `doc.spaces` -> `doc` -> `doc.guid`
if `doc` is not found in `doc.spaces`, a new doc will be created and its `doc.guid` is the same with its pageId
- because of guid logic change, the doc that previously prefixed with `space:` will not be found in `doc.spaces`
- when fetching the rows of this doc using the doc id === page id,
  it will return EMPTY since there is no updates associated with the page id

The provided fix in the PR will patch the `spaces` field of the root doc so that after 0.10 the page doc can still be found in the `spaces` map. It shall apply to both of the idb & sqlite datasources.

Special thanks to @lawvs 's db file for investigation!
2023-11-14 14:39:50 +08:00
liuyi
c44a9a4903 fix(server): wrap updates applying in a transaction (#4922) 2023-11-14 14:39:39 +08:00
LongYinan
05154dc7ca ci: disable postinstall in nightly desktop build (#4930)
Should be part of https://github.com/toeverything/AFFiNE/pull/4885
2023-11-14 14:13:55 +08:00
Peng Xiao
c90b477f60 fix(core): change server url of stable to insider (#4902) (#4926) 2023-11-14 12:05:52 +08:00
Peng Xiao
76b585d1ef fix(storybook): page tags display (#4924) 2023-11-14 09:45:12 +08:00
李华桥
6f18ddbe85 v0.10.1 2023-11-13 19:49:26 +08:00
LongYinan
dde779a71d test(e2e): add subdoc migration test (#4921)
test(e2e): add subdoc migration test

fix: remove .only
2023-11-13 18:00:40 +08:00
Peng Xiao
bd9f66fbc7 fix(infra): compatibility fix for space prefix (#4912)
It seems there are some cases that [this upstream PR](https://github.com/toeverything/blocksuite/pull/4747) will cause data loss.

Because of some historical reasons, the page id could be different with its doc id.
It might be caused by subdoc migration in the following (not 100% sure if all white screen issue is caused by it) 0714c12703/packages/common/infra/src/blocksuite/index.ts (L538-L540)

In version 0.10, page id in spaces no longer has prefix "space:"
The data flow for fetching a doc's updates is:
- page id in `meta.pages` -> find `${page-id}` in `doc.spaces` -> `doc` -> `doc.guid`
if `doc` is not found in `doc.spaces`, a new doc will be created and its `doc.guid` is the same with its pageId
- because of guid logic change, the doc that previously prefixed with `space:` will not be found in `doc.spaces`
- when fetching the rows of this doc using the doc id === page id,
  it will return EMPTY since there is no updates associated with the page id

The provided fix in the PR will patch the `spaces` field of the root doc so that after 0.10 the page doc can still be found in the `spaces` map. It shall apply to both of the idb & sqlite datasources.

Special thanks to @lawvs 's db file for investigation!
2023-11-13 17:57:56 +08:00
liuyi
92f1f40bfa fix(server): wrap updates applying in a transaction (#4922) 2023-11-13 08:49:30 +00:00
dependabot[bot]
993974d20d chore: bump the all-cargo-dependencies group with 5 updates (#4918)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-13 16:01:07 +08:00
LongYinan
f17c0e1268 Merge pull request #4915 from toeverything/chore/hotfix-back-to-master
fix: cherry pick hotfix back to master
2023-11-13 10:12:06 +08:00
Whitewater
eded501123 fix: get page preview based on block order (#4888)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-11-12 15:09:57 +00:00
DarkSky
ac3756ea23 chore: cleanup deployment 2023-11-12 11:22:21 +08:00
forehalo
dc8e84df31 fix(server): increase server acceptable websocket payload size 2023-11-12 11:22:00 +08:00
LongYinan
48dc1049b3 Merge pull request #4913 from toeverything/darksky/cleanup-depolyment
chore: cleanup deployment
2023-11-12 11:20:02 +08:00
Peng Xiao
a8d89254ce fix(electron): dev reload (#4911) 2023-11-12 03:19:27 +00:00
DarkSky
9add530370 chore: cleanup deployment 2023-11-12 11:03:25 +08:00
LongYinan
b77460d871 Merge pull request #4908 from toeverything/61/hotfix-websocket-payload
fix(server): increase server acceptable websocket payload size
2023-11-10 22:01:48 +08:00
forehalo
42db41776b fix(server): increase server acceptable websocket payload size 2023-11-10 21:31:45 +08:00
李华桥
7525126d89 fix(core): change server url of stable to insider 2023-11-10 20:07:18 +08:00
李华桥
075439c74f fix(core): change server url of stable to insider 2023-11-10 18:32:53 +08:00
Joooye_34
30bac7dce2 ci(core): eslint errors for core (#4662) 2023-11-10 10:25:59 +00:00
Joooye_34
b98a258083 fix(core): change server url of stable to insider (#4902) 2023-11-10 15:46:31 +08:00
Yifeng Wang
28177657ef chore: bump theme (#4904)
Co-authored-by: 李华桥 <joooye1991@gmail.com>
2023-11-10 15:42:06 +08:00
Yifeng Wang
fc6c553ece chore: bump theme (#4904)
Co-authored-by: 李华桥 <joooye1991@gmail.com>
2023-11-10 15:40:38 +08:00
Joooye_34
59cb3d5df1 fix(core): change server url of stable to insider (#4902) 2023-11-10 14:50:57 +08:00
Peng Xiao
5c2d958e2b fix(core): svg blob syncing issue (#4886) 2023-11-10 05:32:51 +00:00
Yifeng Wang
2117d6b232 chore: bump blocksuite (#4901) 2023-11-10 13:23:29 +08:00
李华桥
5c48c83301 v0.10.0 2023-11-10 11:42:04 +08:00
fourdim
af7d331610 feat(core): add global loading state (#4840) 2023-11-10 03:25:05 +00:00
JimmFly
1fe5a0fffa feat(core): auto select block when jump to block (#4858)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-11-10 03:02:56 +00:00
fourdim
f1e32aab66 fix(hooks): push success toast after save (#4830) 2023-11-10 02:40:52 +00:00
liuyi
7698a6ac8e chore(server): bump octobase versions (#4893)
Co-authored-by: DarkSky <darksky2048@gmail.com>
2023-11-10 02:25:28 +00:00
李华桥
063f5a683e v0.10.0-canary.16 2023-11-10 10:10:54 +08:00
Peng Xiao
fd74776abe fix(core): disable sync doc/blob on start (#4897) 2023-11-09 18:00:53 +00:00
LongYinan
9d89e4f7f5 fix(server): earlyAccessPreview env override (#4898) 2023-11-09 17:20:41 +00:00
LongYinan
7182b85bd0 chore: add performance logger (#4896)
Add more performance log to debug loading problem
2023-11-10 00:42:30 +08:00
LongYinan
91f1d0081b ci: adjust the beta cluster configuration (#4895)
- Scale the pod counts to 10
- Set `earlyAccessPreview` to false
2023-11-10 00:42:19 +08:00
李华桥
09c3a8828f chore: add performance logger 2023-11-10 00:33:48 +08:00
LongYinan
927a6489f9 ci: adjust the beta cluster configuration 2023-11-10 00:22:45 +08:00
李华桥
075eead9fa v0.10.0-canary.15 2023-11-09 23:27:12 +08:00
Joooye_34
15b0c127f5 chore: disable outline, copilot and hello world plugin (#4894) 2023-11-09 14:53:45 +00:00
Peng Xiao
d0b014543c fix(core): select all in page list group header does not need to enable selection (#4869) 2023-11-09 12:01:36 +00:00
LongYinan
839f500979 ci: disable postinstall on macOS build (#4885) 2023-11-09 11:58:55 +00:00
Joooye_34
af72bf0f69 feat(core): support signup set password before goto stripe payment url (#4892) 2023-11-09 11:58:16 +00:00
liuyi
405167854b perf(server): avoid auto select blob data when upsert (#4891) 2023-11-09 10:45:31 +00:00
liuyi
f9654bb1f8 feat(core): unify all new created page IDs to nanoid (#4884) 2023-11-09 09:22:02 +00:00
EYHN
e3e0553c56 fix(hooks): missing page preview and references (#4863) 2023-11-09 08:59:36 +00:00
liuyi
248fb1fa69 fix(server): token set with id instead of email (#4883) 2023-11-09 08:23:03 +00:00
Joooye_34
12a2ccf1a5 fix(core): visit /signin pay when already logged and subscribed (#4882)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-11-09 07:38:52 +00:00
Peng Xiao
227b8b0061 fix(component): dragged component disappear when dragging (#4870) 2023-11-09 06:20:15 +00:00
Peng Xiao
442115632b chore(component): bump bs (#4880) 2023-11-09 04:47:10 +00:00
Peng Xiao
ad82376890 chore: update delete icon (#4871) 2023-11-09 02:49:48 +00:00
Joooye_34
a8bff81a7e ci: use resolutions to resolve building error in mac-os (#4878) 2023-11-09 02:43:47 +00:00
3720
da2821eaac fix(core): collections data migration without blocking data reads (#4866) 2023-11-08 12:38:43 +00:00
Joooye_34
c55565ee71 chore: update changelog url (#4868) 2023-11-08 12:08:24 +00:00
EYHN
ecd5db2952 ci: add oxlint (#4867) 2023-11-08 17:54:41 +08:00
Joooye_34
744cd47481 v0.10.0-canary.14 2023-11-08 15:36:54 +08:00
Hongtao Lye
12c72e63b1 chore: bump blocksuite version (#4862) 2023-11-08 07:12:48 +00:00
EYHN
b7edaab387 chore: fix code style issues (#4857) 2023-11-08 05:51:08 +00:00
JimmFly
83472cc682 fix(core): duplicate registration in edgeless (#4864) 2023-11-08 02:47:46 +00:00
3720
08e7fa3486 fix(core): improve the UX for edit collection (#4827)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-11-07 10:18:56 +00:00
liuyi
7305530d97 fix(server): wrong data migration (#4855) 2023-11-07 09:20:42 +00:00
liuyi
b99ac51624 chore(server): decrease amount of batch updates merging (#4860) 2023-11-07 09:18:02 +00:00
liuyi
01d7fe4597 fix(server): avoid saving invalid data (#4859) 2023-11-07 08:27:17 +00:00
singhjatin297
ac0a3aab3e docs: update CONTRIBUTING.md (#4848) 2023-11-07 16:29:45 +08:00
singhjatin297
7fe23a31b2 docs: update behind-the-code.md (#4849) 2023-11-07 06:17:01 +00:00
Joooye_34
f50b8002b3 v0.10.0-canary.13 2023-11-07 09:55:30 +08:00
Joooye_34
7a4669a6aa feat(core): implement parts of workspace upgrade design (#4850) 2023-11-06 17:02:25 +00:00
Joooye_34
8554d5d791 v0.10.0-canary.12 2023-11-07 00:13:51 +08:00
Peng Xiao
da9934fbdc fix(electron): add search to proxied url (#4852) 2023-11-06 14:47:44 +00:00
liuyi
cb6974f263 fix(server): avoid server overloading by too many updates (#4846) 2023-11-06 10:21:19 +00:00
liuyi
f75684d6f6 fix(server): failed to share again if disable once (#4844) 2023-11-06 10:19:21 +00:00
JimmFly
acf0734c95 fix(core): adjust discount display (#4847) 2023-11-06 10:17:24 +00:00
Peng Xiao
cfffcad1b8 fix(core): adapt blob in sqlite for svg type (#4845) 2023-11-06 10:09:48 +00:00
Joooye_34
3b74ff2b92 v0.10.0-canary.11 2023-11-06 18:10:28 +08:00
JimmFly
2b34e1a9cd feat(core): adjust filter logic (#4831) 2023-11-06 06:41:18 +00:00
JimmFly
9664d142ad feat(core): temporary expansion files are limited to 100M (#4833) 2023-11-06 06:38:46 +00:00
JimmFly
e7106b7393 chore(i18n): adjust text (#4832) 2023-11-06 06:36:49 +00:00
liuyi
f491ff94cc refactor(server): separate page visibility from workspace permission (#4836) 2023-11-06 03:49:39 +00:00
dependabot[bot]
e8987457ab chore: bump the all-cargo-dependencies group with 1 update (#4841)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-06 03:43:18 +00:00
Cats Juice
7a8150398c feat(core): payment plans error boundary (#4744) 2023-11-06 02:42:21 +00:00
Cats Juice
3c4dbed16b fix(core): payment UI fix (#4839) 2023-11-06 02:40:52 +00:00
Peng Xiao
7e381e830a perf(core): load all pages after 10s (#4834) 2023-11-03 09:42:29 +00:00
Cats Juice
61dc4a56f9 fix(core): implement pricing plans scroll area with radix (#4824) 2023-11-03 06:16:25 +00:00
JimmFly
788c445f2b chore(i18n): add new key for empty trash page (#4829) 2023-11-03 06:15:13 +00:00
Joooye_34
97db941749 fix(core): remove responsive editor width (#4821) 2023-11-03 04:47:51 +00:00
liuyi
f6cfe7c8a1 fix(server): only treat active subscription as existing (#4826) 2023-11-03 04:00:58 +00:00
Joooye_34
fb0aaabe53 v0.10.0-canary.10 2023-11-02 23:40:34 +08:00
Cats Juice
de33967a73 fix(component): flex setting-modal header & footer (#4818) 2023-11-02 15:11:20 +00:00
Peng Xiao
65321e39cc refactor(component): virtual rendering page list (#4775)
Co-authored-by: Joooye_34 <Joooye1991@gmail.com>
2023-11-02 14:21:01 +00:00
liuyi
a3906bf92b fix(server): do not return subscription if not active (#4820) 2023-11-02 14:17:26 +00:00
JimmFly
0a88be7771 feat(core): add jump to block for cmdk (#4802) 2023-11-02 11:49:49 +00:00
3720
7068d5f38a feat(core): remove mode and pages field from Collection (#4817) 2023-11-02 10:47:43 +00:00
LongYinan
bf17b4789b Merge pull request #4819 from toeverything/61/hotfix
fix(server): remove awareness states cache
2023-11-02 18:31:19 +08:00
forehalo
5e9efbffa3 fix(server): page variant may exist 2023-11-02 18:25:30 +08:00
forehalo
7e516236f5 fix(workspace): remove awareness states cache 2023-11-02 18:24:00 +08:00
Hongtao Lye
15024c6c8a chore: bump blocksuite (#4801) 2023-11-02 09:12:23 +00:00
liuyi
6a93203d68 feat(server): sync data with ack (#4791) 2023-11-02 09:05:28 +00:00
JimmFly
af9663d3e7 fix(core): adjust payment related text (#4797) 2023-11-02 08:22:54 +00:00
EYHN
1d7e3dd570 fix(core): currentUser undefined when all workspaces deleted (#4812) 2023-11-02 07:20:08 +00:00
EYHN
6ef02fbc38 fix(core): fix block suite edit mode switch shortcut (#4813) 2023-11-02 07:17:44 +00:00
EYHN
604c3da9fe docs: change yarn version in BUILDING.md (#4811) 2023-11-02 03:56:02 +00:00
Joooye_34
75c8dd75e3 v0.10.0-canary.9 2023-11-01 22:03:47 +08:00
Cats Juice
e5c86a9249 fix(core): billing cancel confirm dialog (#4795) 2023-11-01 09:38:43 +00:00
3720
e5be570f54 fix(core): text color of search input, style for the multi-select tag, date-picker autofocus issue (#4799) 2023-11-01 09:28:00 +00:00
LongYinan
6aaf550241 ci: fix wrangler deploy (#4803) 2023-11-01 09:12:00 +00:00
LongYinan
2d62ec72a7 ci: dynamic setup server deploy environment by release tag (#4790) 2023-11-01 07:38:15 +00:00
Joooye_34
0273ea8b00 v0.10.0-canary.8 2023-11-01 00:03:04 +08:00
JimmFly
97d189f1c8 fix(component): adjust autofill style (#4773) 2023-10-31 15:30:35 +00:00
Joooye_34
db36f81d24 feat(core): support subscribe plan after login (#4788) 2023-10-31 15:29:23 +00:00
DarkSky
c30d2550ff fix: request prevented when re-downgrade subscribe (#4786) 2023-10-31 11:17:28 +00:00
Cats Juice
93e286177f feat(core): billing history pagination (#4787) 2023-10-31 09:47:59 +00:00
Peng Xiao
8ca53326a7 fix(electron): update app icons (#4789)
Co-authored-by: Joooye_34 <Joooye1991@gmail.com>
2023-10-31 09:09:42 +00:00
Cats Juice
7d6c096462 feat(core): payment billing loading (#4763) 2023-10-31 09:00:19 +00:00
Peng Xiao
f08408ebe5 fix(core): possible crash issues (#4783) 2023-10-31 08:56:14 +00:00
Cats Juice
0ad0ab50d0 fix(core): adjust setting-modal layout to center tip (#4776) 2023-10-31 08:10:41 +00:00
Joooye_34
563863005f v0.10.0-canary.6 2023-10-31 14:40:47 +08:00
DarkSky
57d71ad6cf fix: idempotencyKey used (#4774) 2023-10-31 05:26:42 +00:00
Joooye_34
37ec552f74 v0.10.0-canary.5 2023-10-31 11:54:25 +08:00
Peng Xiao
9e3c79526c fix(core): selectAtom crash on isEqual (#4780) 2023-10-31 03:29:18 +00:00
JimmFly
a015dc42bb feat(core): support fuzzy highlighting (#4765) 2023-10-31 03:02:53 +00:00
Joooye_34
17afe218fe v0.10.0-canary.4 2023-10-31 01:49:15 +08:00
Joooye_34
7b204cc611 Merge pull request #4766 from toeverything/chore/stripe-env
chore(server): add stripe env to deploy.yml
2023-10-30 17:25:23 +00:00
Joooye_34
9102f1f9a9 Merge pull request #4768 from toeverything/zzj/new-collections-i18n
feat(i18n): add i18n support for new collections
2023-10-30 16:39:14 +00:00
LongYinan
f6b53a1167 Merge pull request #4770 from toeverything/fix-html-template
fix(core): description field in html template
2023-10-30 16:37:45 +00:00
Joooye_34
6fcdb05925 chore(server): add stripe env 2023-10-31 00:12:17 +08:00
LongYinan
99b35c7a93 ci: reduce deployment events on pull requests 2023-10-30 19:57:54 +08:00
LongYinan
fc27a2e906 fix(core): description field in html template 2023-10-30 19:57:54 +08:00
liuyi
b4d8f1428c Merge pull request #4771 from toeverything/jimmfly/1030/add-i18n
feat(i18n): add new key for billing
2023-10-30 10:56:51 +00:00
JimmFly
1b0c604c02 feat(i18n): add new key for billing 2023-10-30 17:46:48 +08:00
LongYinan
581635f40b Merge pull request #4709 from toeverything/61/doc-perf
perf(server): opmitize updates table
2023-10-30 09:27:19 +00:00
LongYinan
d752086846 Merge pull request #4767 from toeverything/61/fix/data-migration
fix(server): wrong prod data migration scripts filter
2023-10-30 09:21:37 +00:00
zzj3720
f23ec9063c feat(collections): completion i18n 2023-10-30 17:06:59 +08:00
forehalo
26b953ce57 fix(server): wrong prod data migration scripts filter 2023-10-30 16:50:39 +08:00
LongYinan
72babe9157 Merge pull request #4751 from toeverything/yarn-4.0.1
chore: upgrade to yarn@4.0.1
2023-10-30 07:49:29 +00:00
LongYinan
b6ca81821e Merge pull request #4758 from toeverything/dependabot/cargo/all-cargo-dependencies-114856a603
chore: bump the all-cargo-dependencies group with 1 update
2023-10-30 07:46:35 +00:00
DarkSky
f11cc40ae3 Merge pull request #4410 from toeverything/payment-system
feat: payment system
2023-10-30 07:15:52 +00:00
DarkSky
95c1a44a0d Merge branch 'master' into payment-system 2023-10-30 01:55:51 -05:00
LongYinan
198befb006 Merge pull request #4748 from fourdim/doc-0627
docs: update README.md
2023-10-30 06:37:25 +00:00
LongYinan
fc3516acfb Merge pull request #4746 from toeverything/data-migrations-system
feat(server): add data migration system
2023-10-30 06:36:18 +00:00
DarkSky
de9e7f97a4 feat: add idempotent request support for payment apis (#4753) 2023-10-30 05:54:09 +00:00
dependabot[bot]
05ad6eb450 chore: bump the all-cargo-dependencies group with 1 update
Bumps the all-cargo-dependencies group with 1 update: [serde](https://github.com/serde-rs/serde).

- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.189...v1.0.190)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: all-cargo-dependencies
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-30 03:39:55 +00:00
forehalo
98d0ac3c90 feat(server): add data migration system 2023-10-30 11:12:09 +08:00
Flrande
2aa4b4c1f3 fix: remove awareness state before window unload (#4752) 2023-10-29 19:50:18 +00:00
DarkSky
3798293d3e fix: error handle in payment resolver (#4754) 2023-10-30 00:33:21 +08:00
LongYinan
fd76d33421 chore: upgrade to yarn@4.0.1 2023-10-29 16:06:29 +08:00
dependabot[bot]
2a4495f7ee ci: bump cloudflare/wrangler-action from 3.3.1 to 3.3.2 (#4717)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-28 12:08:49 +00:00
DarkSky
1775138228 feat: bump up blob size limit temporarily (#4747) 2023-10-28 07:51:02 +00:00
Cats Juice
8c194ab8b0 feat(core): confirm before cancel in billing page (#4749) 2023-10-28 14:12:25 +08:00
fourdim
5ba1c0dbdb fix: prettier issue 2023-10-28 00:50:03 -04:00
fourdim
59ec122940 docs: update README.md 2023-10-27 21:42:17 -04:00
DarkSky
588f63505d fix: password reset token (#4743) 2023-10-27 09:52:29 +00:00
3720
ef8024c657 feat: new collections (#4530)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-10-27 09:06:59 +00:00
Joooye_34
abbd8235aa chore(core): enable payment in canary (#4745) 2023-10-27 16:59:13 +08:00
Joooye_34
385de7d33b Merge remote-tracking branch 'origin/master' into payment-system 2023-10-27 16:04:48 +08:00
Cats Juice
87571a0879 chore(core): replace setting-modal sidebar icons (#4742) 2023-10-27 15:59:41 +08:00
JimmFly
af24334264 feat(core): add upgrade success page (#4738) 2023-10-27 15:49:32 +08:00
Joooye_34
9fc0152cb1 fix: directory error when publish npm lib (#4735) 2023-10-27 07:08:54 +00:00
JimmFly
35dbbe561a feat(core): adjust member tips (#4737) 2023-10-27 14:25:48 +08:00
liuyi
50563dcb6e feat(server): auto attach early access coupon (#4728) 2023-10-27 10:28:22 +08:00
Cats Juice
edb6e0fd69 feat(core): pricing plans actions (#4724) 2023-10-26 22:00:14 +08:00
liuyi
9334a363c7 chore(server): upgrade stripe sdk (#4733) 2023-10-26 12:37:52 +00:00
JimmFly
e0f7ac426c feat(core): add translation key for payment (#4723) 2023-10-26 16:15:12 +08:00
Joooye_34
1deb6bffd3 feat(core): disable payment in canary (#4722) 2023-10-26 00:50:39 +08:00
JimmFly
ae6376edee chore(core): update communities icon (#4719) 2023-10-25 10:45:54 +00:00
JimmFly
780c164cc8 fix(core): retrieve missing search result titles (#4718) 2023-10-25 10:45:14 +00:00
JimmFly
df69c908fe feat(core): adapt storage progress to payment system (#4713) 2023-10-25 16:18:30 +08:00
Cats Juice
eaa90c9fb6 feat(core): payment plans skeleton (#4715) 2023-10-25 16:16:50 +08:00
Cats Juice
e8a88da9e4 feat(core): auto scroll to current payment plan (#4714) 2023-10-25 10:58:19 +08:00
joooye34
559ec3956f v0.10.0-canary.3 2023-10-24 20:18:21 +08:00
Cats Juice
3749125907 feat(core): full width scroll area for plans (#4708) 2023-10-24 18:38:31 +08:00
liuyi
97d06432f0 fix(server): wrong invoice recurring value saved (#4712) 2023-10-24 18:32:52 +08:00
LongYinan
b13705ba3d ci: remove setup-maker to reduce release duration (#4710) 2023-10-24 10:09:40 +00:00
JimmFly
df77ffde9a feat(core): add account subscription status (#4707) 2023-10-24 18:05:56 +08:00
forehalo
ef1228dcb4 perf(server): opmitize updates table 2023-10-24 17:54:59 +08:00
dependabot[bot]
551287ab44 ci: bump actions/upload-artifact from 2 to 3 (#4701)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 09:36:07 +00:00
dependabot[bot]
113105181d ci: bump docker/login-action from 2 to 3 (#4702)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 09:01:09 +00:00
Flrande
627e5dfbb5 feat: bump blocksuite (#4706) 2023-10-24 09:00:27 +00:00
Joooye_34
21604a2cad Merge pull request #4699 from toeverything/61/subscription-edge-case
fix(server): subscription edge case
2023-10-24 16:11:37 +08:00
dependabot[bot]
fd6536ea90 ci: bump actions/checkout from 2 to 4 (#4700)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 06:00:00 +00:00
dependabot[bot]
a42d218962 ci: bump actions/setup-node from 3 to 4 (#4704)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 05:59:16 +00:00
JimmFly
5226d6c568 feat(core): add search result highlighting (#4667)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-10-24 05:54:37 +00:00
dependabot[bot]
14bee1811c ci: bump docker/setup-qemu-action from 2 to 3 (#4703)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-24 05:13:58 +00:00
forehalo
7ecee01d20 fix(server): respond stripe webhook immediately 2023-10-24 12:09:14 +08:00
forehalo
2e4f6ef2ed feat(server): combine plan and recurring as stripe lookup key 2023-10-24 12:09:14 +08:00
forehalo
9b43380b05 fix(server): cancel scheduled subscription 2023-10-24 12:09:14 +08:00
liuyi
303dade2ef fix cancel subscription edge cases (#4691) 2023-10-24 11:40:46 +08:00
liuyi
113b20f669 fix(core): payment ui issues (#4672) 2023-10-24 11:40:46 +08:00
liuyi
95d37fc63f refactor(core): make subscription hook (#4669) 2023-10-24 11:40:46 +08:00
liuyi
858a1da35f feat(core): impl billing settings (#4652) 2023-10-24 11:40:46 +08:00
forehalo
1d62133f4f feat(core): impl subscription plans setting 2023-10-24 11:40:46 +08:00
forehalo
df054ac7f6 feat(core): payment backend 2023-10-24 11:40:44 +08:00
Alex Yang
493b815b7b fix(plugin-cli): use relative path (#4698) 2023-10-23 12:14:40 -05:00
dependabot[bot]
e75a0743f8 chore: bump @mui/material from 5.14.13 to 5.14.14 (#4678)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 08:07:04 +00:00
dependabot[bot]
5573afc8d5 ci: bump styfle/cancel-workflow-action from 0.11.0 to 0.12.0 (#4686)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 07:39:51 +00:00
dependabot[bot]
8b703fd9ad ci: bump docker/build-push-action from 4 to 5 (#4690)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 07:23:04 +00:00
dependabot[bot]
2a97194c75 ci: bump docker/setup-buildx-action from 2 to 3 (#4689)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 07:22:34 +00:00
dependabot[bot]
13b6bb7ee3 ci: bump kentaro-m/auto-assign-action from 1.2.4 to 1.2.5 (#4687)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 07:22:02 +00:00
dependabot[bot]
43220f6db6 ci: bump cloudflare/wrangler-action from 2.0.0 to 3.3.1 (#4688)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 07:21:54 +00:00
dependabot[bot]
b52e006bfe chore: bump @mui/icons-material from 5.14.13 to 5.14.14 (#4680)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 07:04:49 +00:00
Peng Xiao
a8b10c64b8 fix(component): disable CMDK list animation (#4685) 2023-10-23 06:46:11 +00:00
dependabot[bot]
9d6b335829 chore: bump @aws-sdk/client-s3 from 3.428.0 to 3.433.0 (#4682)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-23 06:38:37 +00:00
LongYinan
9820c80ee2 ci: dependabot group config 2023-10-23 15:03:50 +08:00
LongYinan
1dd17c6334 ci: fix electron app nightly build workflow (#4684) 2023-10-23 06:30:10 +00:00
LongYinan
b6d21c0945 fix(storage): rustix security fix (#4677) 2023-10-23 03:00:15 +00:00
LongYinan
aba771e99c feat: upgrade to yarn@4 (#4676) 2023-10-23 02:55:45 +00:00
Alex Yang
d9e2d17a26 refactor: cleanup code 2023-10-20 19:28:04 -05:00
DarkSky
779ac39b36 fix(server): captcha guard (#4673) 2023-10-20 08:54:08 +00:00
Peng Xiao
817463c40e feat(component): checkbox (#4665) 2023-10-20 03:46:44 +00:00
LongYinan
890905ed0e ci: fix electron make script on Windows 2023-10-19 22:44:55 +08:00
LongYinan
54aad58388 ci: fix electron make script on Windows (#4666) 2023-10-19 13:00:11 +00:00
LongYinan
37c6560dd6 v0.10.0-canary.2 2023-10-19 17:18:18 +08:00
LongYinan
352420b881 build: fix native module in aarch64 docker image (#4656) 2023-10-19 08:59:02 +00:00
Joooye_34
61d9958a4c feat(core): change favicon (#4663) 2023-10-19 08:46:59 +00:00
liuyi
7275d417b2 fix(server): avoid workspace subdoc guid conflict (#4664) 2023-10-19 08:12:57 +00:00
Joooye_34
d835be90cb chore: prettier ignore file generated by napi-rs (#4661) 2023-10-19 07:17:04 +00:00
JimmFly
c54489ba6e fix: wrong confirm button position (#4657) 2023-10-19 03:16:12 +00:00
Alex Yang
9958baa843 fix(hooks): use uuid as pageId (#4658) 2023-10-18 22:14:41 -05:00
Alex Yang
97d8660a54 refactor(electron): fix vitest and add behavior test (#4655) 2023-10-18 22:14:30 -05:00
Alex Yang
b14a6bc29e build: fix generate-assets.ts 2023-10-18 16:33:09 -05:00
Alex Yang
1d29c26284 docs: update README.md 2023-10-18 15:33:28 -05:00
Joooye_34
bed9310519 refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00
Flrande
814d552be8 feat: bump blocksuite and fix bug in migration (#4653)
Co-authored-by: JimmFly <yangjinfei001@gmail.com>
2023-10-18 14:45:07 +00:00
DarkSky
63ca9671be feat: add captcha support for sign in/up (#4582) 2023-10-18 08:06:07 +00:00
Alex Yang
524e48c8e6 refactor(electron): typescript check on build scripts (#4650) 2023-10-18 06:13:47 +00:00
Peng Xiao
9b3e6bf1f5 fix(docs): update docs 2023-10-18 14:00:44 +08:00
Peng Xiao
4135cfd243 fix(docs): remove secret in readme 2023-10-18 13:45:41 +08:00
Alex Yang
be6bcfdb9a chore: fix version 2023-10-17 20:11:09 -05:00
Alex Yang
bb046a12dc refactor(native): remove unused code (#4651) 2023-10-17 18:19:06 -05:00
Alex Yang
a430266389 refactor: use jotai-effect (#4641) 2023-10-17 16:09:37 -05:00
Peng Xiao
62d2b09e3c fix(core): remove redundant providers (#4648) 2023-10-17 20:24:41 +00:00
LongYinan
e831f612e8 fix(electron): release desktop app workflow (#4594) 2023-10-17 06:15:55 +00:00
liuyi
01987990ee fix: make server guid consistent (#4341) 2023-10-17 02:34:13 +00:00
Alex Yang
b3dc4dce9c test: await setTimeout (#4643) 2023-10-16 21:14:45 -05:00
Peng Xiao
5e9eeaddbd build(electron): allow customizing channel type for internal build (#4511) 2023-10-17 01:15:19 +00:00
Alex Yang
a0095496d7 chore: release y-provider package (#4642) 2023-10-16 19:47:05 -05:00
Alex Yang
77efcad89d v0.10.0-canary.1 2023-10-16 16:30:17 -05:00
Alex Yang
1d06114f00 build(y-indexeddb): fix output package.json (#4640) 2023-10-16 16:25:09 -05:00
dependabot[bot]
579fa1ae4c chore: bump @faker-js/faker from 8.1.0 to 8.2.0 (#4631)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-16 19:23:30 +00:00
Peng Xiao
fea6b81a53 fix(electron): app image icon (#4442) 2023-10-16 15:54:28 +00:00
Alex Yang
7911d67439 chore: bump version (#4604) 2023-10-16 12:47:06 +00:00
JimmFly
efca651429 feat(core): add history shortcut (#4595) 2023-10-16 12:27:06 +00:00
JimmFly
07b5d18441 feat(core): add sign out confirm modal (#4592) 2023-10-16 08:44:09 +00:00
electron97
c1d386d932 fix: disabled form item in the settings can still be operated via keyboard (#4605) 2023-10-16 05:14:11 +00:00
Alex Yang
710a2f2c97 chore: bump version 2023-10-13 15:40:07 -05:00
JimmFly
2e1e486bc6 chore: bump playwright version (#4602) 2023-10-13 14:37:18 -05:00
Alex Yang
227017625d test(core): fix flaky (#4597) 2023-10-13 13:46:32 -05:00
Joooye_34
6ea10860b4 refactor(infra): record legacy data to improve testing stability (#4590) 2023-10-13 03:03:42 +00:00
LongYinan
286347420d 0.10.0-canary.0 2023-10-12 15:21:07 +08:00
JimmFly
daa976ca62 fix(component): adjust dialog and input style (#4566) 2023-10-12 05:49:39 +00:00
Alex Yang
d05897b724 chore: prohibit unnecessary await (#4586) 2023-10-12 05:04:58 +00:00
JimmFly
5ebd82dc04 feat(core): adjust share menu style (#4584) 2023-10-12 03:26:13 +00:00
Alex Yang
ae4322b75f chore: bump version (#4587) 2023-10-12 02:46:52 +00:00
Alex Yang
a0e6ff9bd1 test: fix migration (#4588) 2023-10-11 19:30:37 -05:00
Alex Yang
491cd75fe0 fix(infra): create template workspace with isolated nanoid (#4569) 2023-10-11 13:48:30 -05:00
LongYinan
5be5863693 chore: upgrade yarn@3.6.4 (#4585) 2023-10-11 17:23:22 +00:00
LongYinan
23abb97ccb fix: dependabot security issues (#4579) 2023-10-11 07:36:45 +00:00
dependabot[bot]
b09d5f3e18 chore: bump @types/eslint from 8.44.2 to 8.44.3 (#4551)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-11 07:35:41 +00:00
Alex Yang
a731499024 chore: remove unused file (#4576) 2023-10-11 06:05:21 +00:00
Alex Yang
8f5ee9234c test: remove deprecated api usage (#4577) 2023-10-11 06:05:06 +00:00
JimmFly
1f6a105e5c feat(core): add setting commands (#4568)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-10-11 03:31:04 +00:00
LongYinan
b1eb926b7b style: enable no-extraneous-dependencies lint rule (#4575) 2023-10-10 17:51:47 +00:00
Alex Yang
c8d1de3a59 chore: bump version (#4571) 2023-10-10 17:43:41 +00:00
dependabot[bot]
aa7e0dd85b chore: bump @vitest/ui from 0.34.5 to 0.34.6 (#4553)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-10 03:47:44 +00:00
liuyi
0092a19812 refactor(server): deprecate unstable redis manager (#4567) 2023-10-10 03:23:12 +00:00
dependabot[bot]
4a6cfedc4a chore: bump react-i18next from 13.2.1 to 13.2.2 (#4562)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-10 03:11:07 +00:00
dependabot[bot]
8c97fd1d28 chore: bump sinon from 16.0.0 to 16.1.0 (#4563)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-10 03:10:21 +00:00
Peng Xiao
d9fe3e73d5 fix: list page storybook not rendering issue (#4560) 2023-10-09 07:54:05 +00:00
dependabot[bot]
59a4b3bc31 chore: bump electron from 26.2.2 to 26.3.0 (#4564)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 07:14:50 +00:00
Zero King
0161c98d65 chore: reword template galleries introduction (#4548) 2023-10-06 16:11:08 +08:00
dependabot[bot]
d3ffa2c5f2 chore: bump marked from 7.0.5 to 9.0.3 (#4554)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 15:28:38 +00:00
dependabot[bot]
0a6859a1d7 chore: bump esbuild from 0.19.3 to 0.19.4 (#4550)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-03 15:28:10 +00:00
JimmFly
69db99636b feat(core): add editor commanads (#4514)
Co-authored-by: Peng Xiao <pengxiao@outlook.com>
2023-10-02 03:22:12 +00:00
Alex Yang
aab1a1e50a fix(electron): output check (#4547) 2023-09-30 02:02:17 -05:00
Alex Yang
19646a97af fix: twitter preview (#4545) 2023-09-30 01:19:54 -05:00
Qinghao Huang
f59a35d8d2 fix: spacing issue in getting-started template (#4540) 2023-09-30 01:02:43 -05:00
Alex Yang
c911806062 refactor: remove bookmark plugin (#4544) 2023-09-30 00:48:33 -05:00
Qinghao Huang
b440c3a820 docs: update CLA.md (#4541) 2023-09-30 00:26:50 +00:00
Alex Yang
98cabc44e4 ci: remove unstable nx.yml (#4543) 2023-09-29 18:57:31 -05:00
LongYinan
dd94ea5b45 ci: speedup ci by reduce installation packages in certain job (#4457) 2023-09-29 03:02:26 +00:00
Joooye_34
b012e615ba fix(component): content should subtract height of the header (#4507) 2023-09-28 07:04:12 +00:00
Alex Yang
603f82ffc2 refactor: using unified nanoid (#4519) 2023-09-28 02:53:04 +00:00
Alex Yang
56f75160f3 refactor: remove unused packages (#4532) 2023-09-28 01:33:42 +00:00
dependabot[bot]
a860cf8e43 chore: bump electron from 26.1.0 to 26.2.1 (#4527)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-27 10:40:30 +00:00
liuyi
504dda2092 fix(core): setting ui regression (#4525) 2023-09-27 09:56:01 +00:00
JimmFly
1df8b6edfb feat(component): add private copy link button (#4508) 2023-09-27 04:54:02 +00:00
Alex Yang
ddfa5d394d chore: bump version (#4518) 2023-09-27 02:02:54 +00:00
Alex Yang
a69820e4ca fix: type in pluginImportsFunctionMap (#4517) 2023-09-27 01:53:01 +00:00
Peng Xiao
369db3fea5 fix(component): cmdk flaky (#4512) 2023-09-27 01:37:00 +00:00
liuyi
4a03fa65d1 fix(server): wrong member count query (#4506) 2023-09-26 15:36:08 +00:00
Alex Yang
a633fb6dea fix: current page atom (#4515) 2023-09-26 14:53:01 +00:00
JimmFly
1b6cd70247 chore(core): temporarily remove set-syncing-mode (#4489) 2023-09-26 14:11:04 +00:00
Peng Xiao
29fa237dfb fix: storybook previews (#4504) 2023-09-26 05:51:39 +00:00
Alex Yang
61044d91a8 fix(core): page update date (#4502) 2023-09-26 04:09:52 +00:00
Peng Xiao
eb728f7ef2 fix: give content match a lower score (#4499) 2023-09-26 03:15:40 +00:00
JimmFly
1bdc402b7b fix: adjust 404 page style (#4491) 2023-09-26 02:51:58 +00:00
Alex Yang
127a84b4e1 refactor(plugin-cli): use @plugxjs/vite-plugin (#4501) 2023-09-26 02:49:23 +00:00
JimmFly
2e1acec3c0 fix: unexpected pop ups (#4468) 2023-09-26 02:41:45 +00:00
dependabot[bot]
672a01b385 chore: bump sinon from 15.2.0 to 16.0.0 (#4480)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 20:17:25 +00:00
Joooye_34
ad63c5a525 fix(component): background animation is different (#4495) 2023-09-25 16:50:39 +00:00
Alex Yang
3a79346ce0 test: workspace provider (#4497) 2023-09-25 16:49:23 +00:00
dependabot[bot]
bf729df7fe chore: bump vite-tsconfig-paths from 4.2.0 to 4.2.1 (#4481)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 16:05:09 +00:00
dependabot[bot]
b785840d91 chore: bump marked-gfm-heading-id from 3.0.6 to 3.1.0 (#4479)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-25 16:04:47 +00:00
Peng Xiao
e8410b948d chore(component): bump themes (#4484) 2023-09-25 12:03:28 +00:00
Peng Xiao
3f09ba92bc fix: cmdk scrollbar gutter (#4488) 2023-09-25 12:03:02 +00:00
JimmFly
35dc6d6687 fix: unexpected hover behavior of collection sidebar (#4490) 2023-09-25 10:22:59 +00:00
JimmFly
5b4ce75e13 feat: add commands (#4477) 2023-09-25 10:10:53 +00:00
Peng Xiao
dc6b66c32f fix: register command re-rendering (#4476) 2023-09-25 02:40:53 +00:00
LongYinan
5f7f5b74ca fix(core): error state for non early access user while signing in with email (#4467) 2023-09-23 00:00:09 -07:00
LongYinan
7b5157aa89 fix(server): missing dependency in sync app (#4465) 2023-09-22 21:32:45 +00:00
Alex Yang
bd0ed7f474 test: fix flaky (#4463) 2023-09-22 20:18:41 +00:00
Alex Yang
2da6702991 refactor(infra): simplify currentWorkspaceAtom (#4462) 2023-09-22 20:07:26 +00:00
Alex Yang
56d8fa5d29 docs: upload LICENSE.md 2023-09-22 14:38:19 -05:00
Alex Yang
4e5e48ce9f docs: update README.md
There are no core members actually, people is just a paid guy.
2023-09-22 14:31:15 -05:00
Peng Xiao
e0063ebc9b feat: new CMD-K (#4408) 2023-09-22 14:31:26 +00:00
Peng Xiao
27e4599c94 chore: bump components version (#4454) 2023-09-22 08:56:10 +00:00
JimmFly
edd7d00104 refactor: workspace list (#4432) 2023-09-22 15:02:31 +08:00
2000 changed files with 92755 additions and 54945 deletions

9
.devcontainer/Dockerfile Normal file
View File

@@ -0,0 +1,9 @@
FROM mcr.microsoft.com/devcontainers/base:bookworm
# Install Homebrew For Linux
RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" && \
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" && \
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> /home/vscode/.zshrc && \
echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >> /home/vscode/.bashrc && \
# Install Graphite
brew install withgraphite/tap/graphite && gt --version

12
.devcontainer/build.sh Normal file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
# This is a script used by the devcontainer to build the project
#Enable yarn
corepack enable
corepack prepare yarn@stable --activate
# install dependencies
yarn install
# Create database
yarn workspace @affine/server prisma db push

View File

@@ -0,0 +1,25 @@
// For format details, see https://aka.ms/devcontainer.json.
{
"name": "Debian",
"dockerComposeFile": "docker-compose.yml",
"service": "app",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "18"
},
"ghcr.io/devcontainers/features/rust:1": {}
},
// Configure tool-specific properties.
"customizations": {
"vscode": {
"extensions": [
"ms-playwright.playwright",
"esbenp.prettier-vscode",
"streetsidesoftware.code-spell-checker"
]
}
},
"updateContentCommand": "bash ./.devcontainer/build.sh",
"postCreateCommand": "bash ./.devcontainer/setup-user.sh"
}

View File

@@ -0,0 +1,26 @@
version: '3.8'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- ../..:/workspaces:cached
command: sleep infinity
network_mode: service:db
environment:
DATABASE_URL: postgresql://affine:affine@db:5432/affine
db:
image: postgres:latest
restart: unless-stopped
volumes:
- postgres-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: affine
POSTGRES_USER: affine
POSTGRES_DB: affine
volumes:
postgres-data:

7
.devcontainer/setup-user.sh Executable file
View File

@@ -0,0 +1,7 @@
if [ -v GRAPHITE_TOKEN ];then
gt auth --token $GRAPHITE_TOKEN
fi
git fetch
git branch canary -t origin/canary
gt init --trunk canary

View File

@@ -11,3 +11,4 @@ ENABLE_CLOUD=
ENABLE_MOVE_DATABASE=
SHOULD_REPORT_TRACE=
TRACE_REPORT_ENDPOINT=
CAPTCHA_SITE_KEY=

View File

@@ -7,10 +7,10 @@ affine-out
_next
lib
.eslintrc.js
packages/i18n/src/i18n-generated.ts
e2e-dist-*
static
web-static
public
packages/sdk/src/*.d.ts
packages/sdk/src/*.js
packages/common/sdk/src/*.d.ts
packages/common/sdk/src/*.js
packages/frontend/i18n/src/i18n-generated.ts

View File

@@ -56,26 +56,25 @@ const createPattern = packageName => [
];
const allPackages = [
'packages/cli',
'packages/component',
'packages/debug',
'packages/env',
'packages/graphql',
'packages/hooks',
'packages/i18n',
'packages/native',
'packages/infra',
'packages/sdk',
'packages/templates',
'packages/theme',
'packages/workspace',
'packages/y-indexeddb',
'apps/web',
'apps/server',
'apps/electron',
'apps/storybook',
'plugins/copilot',
'plugins/bookmark-block',
'packages/backend/server',
'packages/frontend/component',
'packages/frontend/core',
'packages/frontend/electron',
'packages/frontend/graphql',
'packages/frontend/hooks',
'packages/frontend/i18n',
'packages/frontend/native',
'packages/frontend/templates',
'packages/frontend/workspace',
'packages/common/debug',
'packages/common/env',
'packages/common/infra',
'packages/common/sdk',
'packages/common/theme',
'packages/common/y-indexeddb',
'packages/plugins/copilot',
'tools/cli',
'tests/storybook',
];
/**
@@ -88,7 +87,7 @@ const config = {
version: 'detect',
},
next: {
rootDir: 'apps/web',
rootDir: 'packages/frontend/core',
},
},
extends: [
@@ -127,11 +126,18 @@ const config = {
'no-cond-assign': 'off',
'no-constant-binary-expression': 'error',
'no-constructor-return': 'error',
'no-self-compare': 'error',
eqeqeq: ['error', 'always', { null: 'ignore' }],
'react/prop-types': 'off',
'react/jsx-no-useless-fragment': 'error',
'@typescript-eslint/consistent-type-imports': 'error',
'@typescript-eslint/no-non-null-assertion': 'error',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/await-thenable': 'error',
'@typescript-eslint/require-array-sort-compare': 'error',
'@typescript-eslint/unified-signatures': 'error',
'@typescript-eslint/prefer-for-of': 'error',
'@typescript-eslint/no-unused-vars': [
'error',
{
@@ -202,6 +208,18 @@ const config = {
ignore: ['^\\[[a-zA-Z0-9-_]+\\]\\.tsx$'],
},
],
'unicorn/no-unnecessary-await': 'error',
'unicorn/no-useless-fallback-in-spread': 'error',
'unicorn/prefer-dom-node-dataset': 'error',
'unicorn/prefer-dom-node-append': 'error',
'unicorn/prefer-dom-node-remove': 'error',
'unicorn/prefer-array-some': 'error',
'unicorn/prefer-date-now': 'error',
'unicorn/prefer-blob-reading-methods': 'error',
'unicorn/no-typeof-undefined': 'error',
'unicorn/no-useless-promise-resolve-reject': 'error',
'unicorn/no-new-array': 'error',
'unicorn/new-for-builtins': 'error',
'sonarjs/no-all-duplicated-branches': 'error',
'sonarjs/no-element-overwrite': 'error',
'sonarjs/no-empty-collection': 'error',
@@ -221,7 +239,7 @@ const config = {
},
overrides: [
{
files: 'apps/server/**/*.ts',
files: 'packages/backend/server/**/*.ts',
rules: {
'@typescript-eslint/consistent-type-imports': 0,
},
@@ -252,6 +270,14 @@ const config = {
},
],
'@typescript-eslint/no-misused-promises': ['error'],
'@typescript-eslint/prefer-readonly': 'error',
'i/no-extraneous-dependencies': ['error'],
'react-hooks/exhaustive-deps': [
'warn',
{
additionalHooks: 'useAsyncCallback',
},
],
},
})),
{

1
.github/CLA.md vendored
View File

@@ -61,3 +61,4 @@ Example:
- Shishu, @shishudesu, 2023/05/19
- Kushagra Singh, @kush002, 2023/06/28
- Sarvesh Kumar, @sarvesh521 2023/08/25
- 微扰理论 Qinghao Huang, @wfnuser 2023/09/29

View File

@@ -58,6 +58,6 @@ body:
label: Are you willing to submit a PR?
description: >
(Optional) We encourage you to submit a [Pull Request](https://github.com/toeverything/affine/pulls) (PR) to help improve AFFiNE for everyone, especially if you have a good understanding of how to implement a fix or feature.
See the AFFiNE [Contributing Guide](https://github.com/toeverything/affine/blob/master/CONTRIBUTING.md) to get started.
See the AFFiNE [Contributing Guide](https://github.com/toeverything/affine/blob/canary/CONTRIBUTING.md) to get started.
options:
- label: Yes I'd like to help by submitting a PR!

View File

@@ -31,6 +31,6 @@ body:
label: Are you willing to submit a PR?
description: >
(Optional) We encourage you to submit a [Pull Request](https://github.com/toeverything/affine/pulls) (PR) to help improve AFFiNE for everyone, especially if you have a good understanding of how to implement a fix or feature.
See the AFFiNE [Contributing Guide](https://github.com/toeverything/affine/blob/master/CONTRIBUTING.md) to get started.
See the AFFiNE [Contributing Guide](https://github.com/toeverything/affine/blob/canary/CONTRIBUTING.md) to get started.
options:
- label: Yes I'd like to help by submitting a PR!

View File

@@ -14,11 +14,27 @@ inputs:
runs:
using: 'composite'
steps:
- name: Print rustup toolchain version
shell: bash
id: rustup-version
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
with:
toolchain: stable
toolchain: '${{ steps.rustup-version.outputs.RUST_TOOLCHAIN_VERSION }}'
targets: ${{ inputs.target }}
env:
CARGO_INCREMENTAL: '1'
- name: Set CC
if: ${{ contains(inputs.target, 'linux') && inputs.package != '@affine/native' }}
shell: bash
run: |
echo "CC=clang" >> "$GITHUB_ENV"
echo "TARGET_CC=clang" >> "$GITHUB_ENV"
- name: Cache cargo
uses: actions/cache@v3
@@ -27,39 +43,13 @@ runs:
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
.cargo-cache
~/.napi-rs
target/${{ inputs.target }}
key: stable-${{ inputs.target }}-cargo-cache
- name: Build
if: ${{ inputs.target != 'x86_64-unknown-linux-gnu' && inputs.target != 'aarch64-unknown-linux-gnu' }}
shell: bash
run: |
yarn nx build ${{ inputs.package }} --target ${{ inputs.target }}
yarn workspace ${{ inputs.package }} nx build ${{ inputs.package }} --target ${{ inputs.target }} --use-napi-cross
env:
NX_CLOUD_ACCESS_TOKEN: ${{ inputs.nx_token }}
- name: Build
if: ${{ inputs.target == 'x86_64-unknown-linux-gnu' }}
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian
options: --user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build -e NX_CLOUD_ACCESS_TOKEN=${{ inputs.nx_token }}
run: |
export CC=x86_64-unknown-linux-gnu-gcc
export CC_x86_64_unknown_linux_gnu=x86_64-unknown-linux-gnu-gcc
export RUSTFLAGS="-C debuginfo=1"
yarn nx build ${{ inputs.package }} --target ${{ inputs.target }}
chmod -R 777 node_modules/.cache
chmod -R 777 target
- name: Build
if: ${{ inputs.target == 'aarch64-unknown-linux-gnu' }}
uses: addnab/docker-run-action@v3
with:
image: ghcr.io/napi-rs/napi-rs/nodejs-rust:lts-debian-aarch64
options: --user 0:0 -v ${{ github.workspace }}/.cargo-cache/git/db:/usr/local/cargo/git/db -v ${{ github.workspace }}/.cargo/registry/cache:/usr/local/cargo/registry/cache -v ${{ github.workspace }}/.cargo/registry/index:/usr/local/cargo/registry/index -v ${{ github.workspace }}:/build -w /build -e NX_CLOUD_ACCESS_TOKEN=${{ inputs.nx_token }}
run: |
export RUSTFLAGS="-C debuginfo=1"
yarn nx build ${{ inputs.package }} --target ${{ inputs.target }}
chmod -R 777 node_modules/.cache
chmod -R 777 target
DEBUG: 'napi:*'

View File

@@ -26,7 +26,7 @@ runs:
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
- uses: azure/setup-helm@v3
- id: auth
uses: google-github-actions/auth@v1
uses: google-github-actions/auth@v2
with:
workload_identity_provider: 'projects/${{ inputs.gcp-project-number }}/locations/global/workloadIdentityPools/github-actions/providers/github-actions-helm-deploy'
service_account: '${{ inputs.service-account }}'
@@ -34,7 +34,7 @@ runs:
project_id: '${{ inputs.gcp-project-id }}'
- name: 'Setup gcloud cli'
uses: 'google-github-actions/setup-gcloud@v1'
uses: 'google-github-actions/setup-gcloud@v2'
with:
install_components: 'gke-gcloud-auth-plugin'

View File

@@ -1,6 +1,7 @@
import { execSync } from 'node:child_process';
const {
APP_VERSION,
BUILD_TYPE,
DEPLOY_HOST,
CANARY_DEPLOY_HOST,
@@ -13,6 +14,8 @@ const {
R2_ACCESS_KEY_ID,
R2_SECRET_ACCESS_KEY,
R2_BUCKET,
ENABLE_CAPTCHA,
CAPTCHA_TURNSTILE_SECRET,
OAUTH_EMAIL_SENDER,
OAUTH_EMAIL_LOGIN,
OAUTH_EMAIL_PASSWORD,
@@ -23,6 +26,9 @@ const {
GCLOUD_CLOUD_SQL_INTERNAL_ENDPOINT,
REDIS_HOST,
REDIS_PASSWORD,
STRIPE_API_KEY,
STRIPE_WEBHOOK_KEY,
STATIC_IP_NAME,
} = process.env;
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
@@ -30,17 +36,13 @@ const buildType = BUILD_TYPE || 'canary';
const isProduction = buildType === 'stable';
const isBeta = buildType === 'beta';
const isInternal = buildType === 'internal';
const createHelmCommand = ({ isDryRun }) => {
const flag = isDryRun ? '--dry-run' : '--atomic';
const imageTag = `${buildType}-${GIT_SHORT_HASH}`;
const staticIpName = isProduction
? 'affine-cluster-production'
: isBeta
? 'affine-cluster-beta'
: 'affine-cluster-dev';
const redisAndPostgres =
isProduction || isBeta
isProduction || isBeta || isInternal
? [
`--set-string global.database.url=${DATABASE_URL}`,
`--set-string global.database.user=${DATABASE_USERNAME}`,
@@ -54,33 +56,42 @@ const createHelmCommand = ({ isDryRun }) => {
]
: [];
const serviceAnnotations =
isProduction || isBeta
isProduction || isBeta || isInternal
? [
`--set-json web.service.annotations=\"{ \\"cloud.google.com/neg\\": \\"{\\\\\\"ingress\\\\\\": true}\\" }\"`,
`--set-json graphql.serviceAccount.annotations=\"{ \\"iam.gke.io/gcp-service-account\\": \\"${CLOUD_SQL_IAM_ACCOUNT}\\" }\"`,
`--set-json graphql.service.annotations=\"{ \\"cloud.google.com/neg\\": \\"{\\\\\\"ingress\\\\\\": true}\\" }\"`,
`--set-json sync.serviceAccount.annotations=\"{ \\"iam.gke.io/gcp-service-account\\": \\"${CLOUD_SQL_IAM_ACCOUNT}\\" }\"`,
`--set-json sync.service.annotations=\"{ \\"cloud.google.com/neg\\": \\"{\\\\\\"ingress\\\\\\": true}\\" }\"`,
`--set-json cloud-sql-proxy.serviceAccount.annotations=\"{ \\"iam.gke.io/gcp-service-account\\": \\"${CLOUD_SQL_IAM_ACCOUNT}\\" }\"`,
`--set-json cloud-sql-proxy.nodeSelector=\"{ \\"iam.gke.io/gke-metadata-server-enabled\\": \\"true\\" }\"`,
]
: [];
const webReplicaCount = isProduction ? 3 : isBeta ? 2 : 2;
const graphqlReplicaCount = isProduction ? 3 : isBeta ? 2 : 2;
const syncReplicaCount = isProduction ? 6 : isBeta ? 3 : 2;
const namespace = isProduction ? 'production' : isBeta ? 'beta' : 'dev';
const graphqlReplicaCount = isProduction ? 10 : isBeta ? 5 : 2;
const syncReplicaCount = isProduction ? 10 : isBeta ? 5 : 2;
const namespace = isProduction
? 'production'
: isBeta
? 'beta'
: isInternal
? 'internal'
: 'dev';
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
const host = DEPLOY_HOST || CANARY_DEPLOY_HOST;
const deployCommand = [
`helm upgrade --install affine .github/helm/affine`,
`--namespace ${namespace}`,
`--set global.ingress.enabled=true`,
`--set-json global.ingress.annotations=\"{ \\"kubernetes.io/ingress.class\\": \\"gce\\", \\"kubernetes.io/ingress.allow-http\\": \\"true\\", \\"kubernetes.io/ingress.global-static-ip-name\\": \\"${staticIpName}\\" }\"`,
`--set-json global.ingress.annotations=\"{ \\"kubernetes.io/ingress.class\\": \\"gce\\", \\"kubernetes.io/ingress.allow-http\\": \\"true\\", \\"kubernetes.io/ingress.global-static-ip-name\\": \\"${STATIC_IP_NAME}\\" }\"`,
`--set-string global.ingress.host="${host}"`,
`--set-string global.version="${APP_VERSION}"`,
...redisAndPostgres,
`--set web.replicaCount=${webReplicaCount}`,
`--set-string web.image.tag="${imageTag}"`,
`--set graphql.replicaCount=${graphqlReplicaCount}`,
`--set-string graphql.image.tag="${imageTag}"`,
`--set graphql.app.host=${host}`,
`--set graphql.app.captcha.enabled=${ENABLE_CAPTCHA}`,
`--set-string graphql.app.captcha.turnstile.secret="${CAPTCHA_TURNSTILE_SECRET}"`,
`--set graphql.app.objectStorage.r2.enabled=true`,
`--set-string graphql.app.objectStorage.r2.accountId="${R2_ACCOUNT_ID}"`,
`--set-string graphql.app.objectStorage.r2.accessKeyId="${R2_ACCESS_KEY_ID}"`,
@@ -92,11 +103,14 @@ const createHelmCommand = ({ isDryRun }) => {
`--set-string graphql.app.oauth.google.enabled=true`,
`--set-string graphql.app.oauth.google.clientId="${AFFINE_GOOGLE_CLIENT_ID}"`,
`--set-string graphql.app.oauth.google.clientSecret="${AFFINE_GOOGLE_CLIENT_SECRET}"`,
`--set-string graphql.app.payment.stripe.apiKey="${STRIPE_API_KEY}"`,
`--set-string graphql.app.payment.stripe.webhookKey="${STRIPE_WEBHOOK_KEY}"`,
`--set graphql.app.experimental.enableJwstCodec=true`,
`--set graphql.app.features.earlyAccessPreview=false`,
`--set sync.replicaCount=${syncReplicaCount}`,
`--set-string sync.image.tag="${imageTag}"`,
...serviceAnnotations,
`--version "0.0.0-${buildType}.${GIT_SHORT_HASH}" --timeout 10m`,
`--timeout 10m`,
flag,
].join(' ');
return deployCommand;

View File

@@ -0,0 +1,22 @@
name: 'Download core artifacts'
description: 'Download core artifacts and extract to dist'
inputs:
path:
description: 'Path to extract'
required: true
runs:
using: 'composite'
steps:
- name: Download tar.gz
uses: actions/download-artifact@v3
with:
name: core
path: .
- name: Extract core artifacts
shell: bash
run: |
mkdir -p ${{ inputs.path }}
tar -xvf dist.tar.gz --directory ${{ inputs.path }}
rm dist.tar.gz

View File

@@ -1,16 +0,0 @@
name: Setup maker
description: 'Setup maker dmg for electron'
runs:
using: 'composite'
steps:
- name: 'Install @electron-forge/maker-dmg'
if: runner.os == 'macos'
shell: bash
working-directory: ./apps/electron
run: yarn add @electron-forge/maker-dmg --dev
env:
HUSKY: '0'
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
ELECTRON_SKIP_BINARY_DOWNLOAD: '1'
SENTRYCLI_SKIP_DOWNLOAD: '1'

View File

@@ -21,43 +21,114 @@ inputs:
description: 'set nmMode to hardlinks-local in .yarnrc.yml'
required: false
default: 'true'
build-infra:
description: 'Build infra'
required: false
default: 'true'
build-plugins:
description: 'Build plugins'
required: false
default: 'true'
nmHoistingLimits:
description: 'Set nmHoistingLimits in .yarnrc.yml'
required: false
enableScripts:
description: 'Set enableScripts in .yarnrc.yml'
required: false
default: 'true'
full-cache:
description: 'Full installation cache'
required: false
runs:
using: 'composite'
steps:
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
registry-url: https://npm.pkg.github.com
scope: '@toeverything'
cache: 'yarn'
- name: Set nmMode
if: ${{ inputs.hard-link-nm == 'true' }}
if: ${{ inputs.hard-link-nm == 'false' }}
shell: bash
run: yarn config set nmMode hardlinks-local
run: yarn config set nmMode classic
- name: Set nmHoistingLimits
if: ${{ inputs.nmHoistingLimits }}
shell: bash
run: yarn config set nmHoistingLimits ${{ inputs.nmHoistingLimits }}
- name: Set enableScripts
if: ${{ inputs.enableScripts == 'false' }}
shell: bash
run: yarn config set enableScripts false
- name: Set yarn global cache path
shell: bash
id: yarn-cache
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
uses: actions/cache@v3
if: ${{ inputs.full-cache != 'true' && runner.os == 'Linux' }}
with:
path: |
node_modules
${{ steps.yarn-cache.outputs.yarn_global_cache }}
key: node_modules-cache-${{ github.job }}-${{ runner.os }}
# The network performance on macOS is very poor
# and the decompression performance on Windows is very terrible
# so we reduce the number of cached files on non-Linux systems by remove node_modules from cache path.
- name: Cache non-full yarn cache on non-Linux
uses: actions/cache@v3
if: ${{ inputs.full-cache != 'true' && runner.os != 'Linux' }}
with:
path: |
${{ steps.yarn-cache.outputs.yarn_global_cache }}
key: node_modules-cache-${{ github.job }}-${{ runner.os }}
- name: Cache full yarn cache on Linux
uses: actions/cache@v3
if: ${{ inputs.full-cache == 'true' && runner.os == 'Linux' }}
with:
path: |
node_modules
${{ steps.yarn-cache.outputs.yarn_global_cache }}
key: node_modules-cache-full-${{ runner.os }}
- name: Cache full yarn cache on non-Linux
uses: actions/cache@v3
if: ${{ inputs.full-cache == 'true' && runner.os != 'Linux' }}
with:
path: |
${{ steps.yarn-cache.outputs.yarn_global_cache }}
key: node_modules-cache-full-${{ runner.os }}
- name: yarn install
if: ${{ inputs.package-install == 'true' }}
continue-on-error: true
shell: bash
run: yarn install ${{ inputs.extra-flags }}
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
run: yarn install ${{ inputs.extra-flags }}
run: yarn ${{ inputs.extra-flags }}
env:
HUSKY: '0'
PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: '1'
ELECTRON_SKIP_BINARY_DOWNLOAD: '1'
SENTRYCLI_SKIP_DOWNLOAD: '1'
DEBUG: '*'
- name: Get installed Playwright version
id: playwright-version
@@ -75,8 +146,8 @@ runs:
id: playwright-cache
if: ${{ inputs.playwright-install == 'true' }}
with:
path: '~/.cache/ms-playwright'
key: '${{ runner.os }}-${{ runner.arch }}-playwright-${{ steps.playwright-version.outputs.version }}'
path: ${{ github.workspace }}/node_modules/.cache/ms-playwright
key: '${{ runner.os }}-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
# of the browser binary versions haven't been updated, so Playwright can
@@ -86,14 +157,16 @@ runs:
# date cache, but still let Playwright decide if it needs to download
# new binaries or not.
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-playwright-
${{ runner.os }}-playwright-
# If the Playwright browser binaries weren't able to be restored, we tell
# paywright to install everything for us.
# playwright to install everything for us.
- name: Install Playwright's dependencies
shell: bash
if: inputs.playwright-install == 'true' && steps.playwright-cache.outputs.cache-hit != 'true'
run: yarn playwright install --with-deps
if: inputs.playwright-install == 'true'
run: yarn playwright install --with-deps chromium
env:
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/node_modules/.cache/ms-playwright
- name: Get installed Electron version
id: electron-version
@@ -107,21 +180,23 @@ runs:
if: ${{ inputs.electron-install == 'true' }}
with:
path: 'node_modules/.cache/electron'
key: '${{ runner.os }}-{{ runner.arch }}-electron-${{ steps.electron-version.outputs.version }}'
key: '${{ runner.os }}-electron-${{ steps.electron-version.outputs.version }}'
restore-keys: |
${{ runner.os }}-{{ runner.arch }}-electron-
${{ runner.os }}-electron-
- name: Install Electron binary
shell: bash
if: inputs.electron-install == 'true'
run: node apps/electron/node_modules/electron/install.js
run: node ./node_modules/electron/install.js
env:
ELECTRON_OVERRIDE_DIST_PATH: ./node_modules/.cache/electron
electron_config_cache: ./node_modules/.cache/electron
- name: Build Infra
shell: bash
if: inputs.build-infra == 'true'
run: yarn run build:infra
- name: Build Plugins
if: inputs.build-plugins == 'true'
shell: bash
run: yarn run build:plugins

View File

@@ -0,0 +1,24 @@
name: Setup Version
description: 'Setup Version'
outputs:
APP_VERSION:
description: 'App Version'
value: ${{ steps.version.outputs.APP_VERSION }}
runs:
using: 'composite'
steps:
- name: 'Write Version'
id: version
shell: bash
run: |
if [ "${{ github.ref_type }}" == "tag" ]; then
APP_VERSION=$(echo "${{ github.ref_name }}" | sed 's/^v//')
else
PACKAGE_VERSION=$(node -p "require('./package.json').version")
TIME_VERSION=$(date +%Y%m%d%H%M)
GIT_SHORT_HASH=$(git rev-parse --short HEAD)
APP_VERSION=$PACKAGE_VERSION-nightly-$TIME_VERSION-$GIT_SHORT_HASH
fi
echo $APP_VERSION
echo "APP_VERSION=$APP_VERSION" >> "$GITHUB_OUTPUT"
./scripts/set-version.sh $APP_VERSION

View File

@@ -1,9 +0,0 @@
version: 2
updates:
- package-ecosystem: 'npm'
directory: '/'
schedule:
interval: 'weekly'
versioning-strategy: increase
commit-message:
prefix: 'chore'

View File

@@ -1,6 +1,6 @@
FROM openresty/openresty:1.21.4.1-0-buster
WORKDIR /app
COPY ./apps/core/dist ./dist
COPY ./packages/frontend/core/dist ./dist
COPY ./.github/deployment/front/nginx.conf /usr/local/openresty/nginx/conf/nginx.conf
COPY ./.github/deployment/front/affine.nginx.conf /etc/nginx/conf.d/affine.nginx.conf

View File

@@ -1,6 +1,6 @@
FROM node:18-bookworm-slim
COPY ./apps/server /app
COPY ./packages/backend/server /app
WORKDIR /app
RUN apt-get update && \

View File

@@ -1,6 +1,6 @@
dependencies:
- name: postgresql
repository: https://charts.bitnami.com/bitnami
version: 12.5.8
digest: sha256:c91c0dc1370e879538dc9d6e435e731a726ef99d6a3b081372318483792b48a7
generated: "2023-06-27T18:34:12.683806+08:00"
version: 13.2.23
digest: sha256:5b64538509bd067bb0f67bf082847a2c5d66dc37d0b9d7948a40405d9c446400
generated: "2023-12-05T03:04:57.997927753Z"

View File

@@ -8,5 +8,5 @@ appVersion: '0.6.1'
dependencies:
- name: postgresql
version: 12.5.8
version: 13.2.23
repository: https://charts.bitnami.com/bitnami

View File

@@ -3,4 +3,4 @@ name: affine
description: AFFiNE cloud chart
type: application
version: 0.0.0
appVersion: '0.7.0-canary.18'
appVersion: "0.11.0"

View File

@@ -0,0 +1,23 @@
# Patterns to ignore when building packages.
# This supports shell glob matching, relative path matching, and
# negation (prefixed with !). Only one pattern per line.
.DS_Store
# Common VCS dirs
.git/
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*.orig
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

View File

@@ -0,0 +1,6 @@
apiVersion: v2
name: cloud-sql-proxy
description: Google Cloud SQL Proxy
type: application
version: 0.0.0
appVersion: "2.8.1"

View File

@@ -0,0 +1,18 @@
{{- if .Values.global.database.gcloud.enabled -}}
1. Get the application URL by running these commands:
{{- if contains "NodePort" .Values.service.type }}
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "gcloud-sql-proxy.fullname" . }})
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "gcloud-sql-proxy.fullname" . }}'
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "gcloud-sql-proxy.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
echo http://$SERVICE_IP:{{ .Values.service.port }}
{{- else if contains "ClusterIP" .Values.service.type }}
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "gcloud-sql-proxy.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
{{- end }}
{{- end }}

View File

@@ -0,0 +1,62 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "gcloud-sql-proxy.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
If release name contains chart name it will be used as a full name.
*/}}
{{- define "gcloud-sql-proxy.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- $name := default .Chart.Name .Values.nameOverride }}
{{- if contains $name .Release.Name }}
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
{{- else }}
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{- end }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "gcloud-sql-proxy.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "gcloud-sql-proxy.labels" -}}
helm.sh/chart: {{ include "gcloud-sql-proxy.chart" . }}
{{ include "gcloud-sql-proxy.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
app.kubernetes.io/managed-by: {{ .Release.Service }}
{{- end }}
{{/*
Selector labels
*/}}
{{- define "gcloud-sql-proxy.selectorLabels" -}}
app.kubernetes.io/name: {{ include "gcloud-sql-proxy.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "gcloud-sql-proxy.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "gcloud-sql-proxy.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,132 @@
{{- if .Values.global.database.gcloud.enabled -}}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "gcloud-sql-proxy.fullname" . }}
labels:
{{- include "gcloud-sql-proxy.labels" . | nindent 4 }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
{{- include "gcloud-sql-proxy.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "gcloud-sql-proxy.labels" . | nindent 8 }}
{{- with .Values.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "gcloud-sql-proxy.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.securityContext | nindent 12 }}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
image: "{{ .Values.image.repository }}:{{ .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}
args:
- "--address"
- "0.0.0.0"
- "--structured-logs"
- "--auto-iam-authn"
- "{{ .Values.global.database.gcloud.connectionName }}"
env:
# Enable HTTP healthchecks on port 9801. This enables /liveness,
# /readiness and /startup health check endpoints. Allow connections
# listen for connections on any interface (0.0.0.0) so that the
# k8s management components can reach these endpoints.
- name: CSQL_PROXY_HEALTH_CHECK
value: "true"
- name: CSQL_PROXY_HTTP_PORT
value: "9801"
- name: CSQL_PROXY_HTTP_ADDRESS
value: 0.0.0.0
ports:
- name: cloud-sql-proxy
containerPort: {{ .Values.global.database.gcloud.proxyPort }}
protocol: TCP
- containerPort: 9801
protocol: TCP
# The /startup probe returns OK when the proxy is ready to receive
# connections from the application. In this example, k8s will check
# once a second for 60 seconds.
startupProbe:
failureThreshold: 60
httpGet:
path: /startup
port: 9801
scheme: HTTP
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 10
# The /liveness probe returns OK as soon as the proxy application has
# begun its startup process and continues to return OK until the
# process stops.
livenessProbe:
failureThreshold: 3
httpGet:
path: /liveness
port: 9801
scheme: HTTP
# The probe will be checked every 10 seconds.
periodSeconds: 10
# Number of times the probe is allowed to fail before the transition
# from healthy to failure state.
#
# If periodSeconds = 60, 5 tries will result in five minutes of
# checks. The proxy starts to refresh a certificate five minutes
# before its expiration. If those five minutes lapse without a
# successful refresh, the liveness probe will fail and the pod will be
# restarted.
successThreshold: 1
# The probe will fail if it does not respond in 10 seconds
timeoutSeconds: 10
readinessProbe:
# The /readiness probe returns OK when the proxy can establish
# a new connections to its databases.
httpGet:
path: /readiness
port: 9801
initialDelaySeconds: 10
periodSeconds: 10
timeoutSeconds: 10
# Number of times the probe must report success to transition from failure to healthy state.
# Defaults to 1 for readiness probe.
successThreshold: 1
failureThreshold: 6
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{- with .Values.volumeMounts }}
volumeMounts:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.volumes }}
volumes:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,17 @@
{{- if .Values.global.database.gcloud.enabled -}}
apiVersion: v1
kind: Service
metadata:
name: {{ include "gcloud-sql-proxy.fullname" . }}
labels:
{{- include "gcloud-sql-proxy.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
- port: {{ .Values.global.database.port }}
targetPort: cloud-sql-proxy
protocol: TCP
name: cloud-sql-proxy
selector:
{{- include "gcloud-sql-proxy.selectorLabels" . | nindent 4 }}
{{- end }}

View File

@@ -0,0 +1,15 @@
{{- if .Values.global.database.gcloud.enabled -}}
{{- if .Values.serviceAccount.create -}}
apiVersion: v1
kind: ServiceAccount
metadata:
name: {{ include "gcloud-sql-proxy.serviceAccountName" . }}
labels:
{{- include "gcloud-sql-proxy.labels" . | nindent 4 }}
{{- with .Values.serviceAccount.annotations }}
annotations:
{{- toYaml . | nindent 4 }}
{{- end }}
automountServiceAccountToken: {{ .Values.serviceAccount.automount }}
{{- end }}
{{- end }}

View File

@@ -0,0 +1,17 @@
{{- if .Values.global.database.gcloud.enabled -}}
apiVersion: v1
kind: Pod
metadata:
name: "{{ include "gcloud-sql-proxy.fullname" . }}-test-connection"
labels:
{{- include "gcloud-sql-proxy.labels" . | nindent 4 }}
annotations:
"helm.sh/hook": test
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['{{ include "gcloud-sql-proxy.fullname" . }}:{{ .Values.service.port }}']
restartPolicy: Never
{{- end }}

View File

@@ -0,0 +1,40 @@
replicaCount: 3
image:
# the tag is defined as chart appVersion.
repository: gcr.io/cloud-sql-connectors/cloud-sql-proxy
pullPolicy: IfNotPresent
imagePullSecrets: []
nameOverride: ""
fullnameOverride: ""
serviceAccount:
create: true
automount: true
annotations: {}
name: ""
podAnnotations: {}
podLabels: {}
podSecurityContext:
fsGroup: 2000
securityContext:
runAsNonRoot: true
service:
type: ClusterIP
port: 5432
resources:
limits:
memory: "4Gi"
cpu: "2"
volumes: []
volumeMounts: []
nodeSelector: {}
tolerations: []
affinity: {}

View File

@@ -3,4 +3,9 @@ name: graphql
description: AFFiNE GraphQL server
type: application
version: 0.0.0
appVersion: '0.7.0-canary.18'
appVersion: "0.11.0"
dependencies:
- name: gcloud-sql-proxy
version: 0.0.0
repository: "file://../gcloud-sql-proxy"
condition: .global.database.gcloud.enabled

View File

@@ -0,0 +1,9 @@
{{- if .Values.app.captcha.enabled -}}
apiVersion: v1
kind: Secret
metadata:
name: "{{ .Values.app.captcha.secretName }}"
type: Opaque
data:
turnstileSecret: {{ .Values.app.captcha.turnstile.secret | b64enc }}
{{- end }}

View File

@@ -35,6 +35,8 @@ spec:
key: key
- name: NODE_ENV
value: "{{ .Values.env }}"
- name: NODE_OPTIONS
value: "--max-old-space-size=4096"
- name: NO_COLOR
value: "1"
- name: SERVER_FLAVOR
@@ -73,6 +75,10 @@ spec:
value: "{{ .Values.app.host }}"
- name: ENABLE_R2_OBJECT_STORAGE
value: "{{ .Values.app.objectStorage.r2.enabled }}"
- name: ENABLE_CAPTCHA
value: "{{ .Values.app.captcha.enabled }}"
- name: FEATURES_EARLY_ACCESS_PREVIEW
value: "{{ .Values.app.features.earlyAccessPreview }}"
- name: OAUTH_EMAIL_SENDER
valueFrom:
secretKeyRef:
@@ -98,6 +104,16 @@ spec:
secretKeyRef:
name: "{{ .Values.app.oauth.email.secretName }}"
key: password
- name: STRIPE_API_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.payment.stripe.secretName }}"
key: stripeAPIKey
- name: STRIPE_WEBHOOK_KEY
valueFrom:
secretKeyRef:
name: "{{ .Values.app.payment.stripe.secretName }}"
key: stripeWebhookKey
- name: DOC_MERGE_INTERVAL
value: "{{ .Values.app.doc.mergeInterval }}"
{{ if .Values.app.experimental.enableJwstCodec }}
@@ -126,6 +142,13 @@ spec:
name: "{{ .Values.app.objectStorage.r2.secretName }}"
key: bucket
{{ end }}
{{ if .Values.app.captcha.enabled }}
- name: CAPTCHA_TURNSTILE_SECRET
valueFrom:
secretKeyRef:
name: "{{ .Values.app.captcha.secretName }}"
key: turnstileSecret
{{ end }}
{{ if .Values.app.oauth.google.enabled }}
- name: OAUTH_GOOGLE_CLIENT_ID
valueFrom:
@@ -166,20 +189,6 @@ spec:
initialDelaySeconds: {{ .Values.probe.initialDelaySeconds }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{ if .Values.global.database.gcloud.enabled }}
- name: cloud-sql-proxy
image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.6.0
args:
- "--structured-logs"
- "--auto-iam-authn"
- "{{ .Values.global.database.gcloud.connectionName }}"
securityContext:
runAsNonRoot: true
resources:
requests:
memory: "2Gi"
cpu: "1"
{{ end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}

View File

@@ -16,7 +16,7 @@ spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
command: ["yarn", "prisma", "migrate", "deploy"]
command: ["yarn", "predeploy"]
env:
- name: NODE_ENV
value: "{{ .Values.env }}"

View File

@@ -1,13 +0,0 @@
{{- if .Values.global.gke.enabled -}}
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
name: "{{ .Chart.Name }}-monitoring"
spec:
selector:
matchLabels:
app.kubernetes.io/name: "{{ include "graphql.name" . }}"
endpoints:
- port: {{ .Values.service.port }}
interval: 30s
{{- end }}

View File

@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: "{{ .Values.app.payment.stripe.secretName }}"
type: Opaque
data:
stripeAPIKey: "{{ .Values.app.payment.stripe.apiKey | b64enc }}"
stripeWebhookKey: "{{ .Values.app.payment.stripe.webhookKey | b64enc }}"

View File

@@ -22,6 +22,11 @@ app:
secretName: jwt-private-key
# base64 encoded ecdsa private key
privateKey: ''
captcha:
enable: false
secretName: captcha
turnstile:
secret: ''
objectStorage:
r2:
enabled: false
@@ -48,6 +53,13 @@ app:
secretName: oauth-github
clientId: ''
clientSecret: ''
payment:
stripe:
secretName: 'stripe'
apiKey: ''
webhookKey: ''
features:
earlyAccessPreview: false
serviceAccount:
create: true
@@ -60,11 +72,8 @@ podSecurityContext:
fsGroup: 2000
resources:
limits:
cpu: '4'
memory: 8Gi
requests:
cpu: '2'
cpu: '4'
memory: 4Gi
probe:

View File

@@ -1,6 +1,11 @@
apiVersion: v2
name: sync
description: A Helm chart for Kubernetes
description: AFFiNE Sync Server
type: application
version: 0.0.0
appVersion: "0.7.0-canary.18"
appVersion: "0.11.0"
dependencies:
- name: gcloud-sql-proxy
version: 0.0.0
repository: "file://../gcloud-sql-proxy"
condition: .global.database.gcloud.enabled

View File

@@ -82,20 +82,6 @@ spec:
initialDelaySeconds: {{ .Values.probe.initialDelaySeconds }}
resources:
{{- toYaml .Values.resources | nindent 12 }}
{{ if .Values.global.database.gcloud.enabled }}
- name: cloud-sql-proxy
image: gcr.io/cloud-sql-connectors/cloud-sql-proxy:2.6.0
args:
- "--structured-logs"
- "--auto-iam-authn"
- "{{ .Values.global.database.gcloud.connectionName }}"
securityContext:
runAsNonRoot: true
resources:
requests:
memory: "2Gi"
cpu: "1"
{{ end }}
{{- with .Values.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}

View File

@@ -1,13 +0,0 @@
{{- if .Values.global.gke.enabled -}}
apiVersion: monitoring.googleapis.com/v1
kind: PodMonitoring
metadata:
name: "{{ .Chart.Name }}-monitoring"
spec:
selector:
matchLabels:
app.kubernetes.io/name: "{{ include "sync.name" . }}"
endpoints:
- port: {{ .Values.service.port }}
interval: 30s
{{- end }}

View File

@@ -16,6 +16,8 @@ global:
cloudSqlInternal: ''
connectionName: ''
serviceAccount: ''
cloudProxyReplicas: 3
proxyPort: '5432'
redis:
enabled: true
host: 'redis-master'

122
.github/labeler.yml vendored
View File

@@ -1,67 +1,115 @@
docs:
- 'docs/**/*'
- '**/README.md'
- 'packages/templates/**/*'
- changed-files:
- any-glob-to-any-file:
- 'docs/**/*'
- '**/README.md'
- 'packages/frontend/templates/**/*'
test:
- 'tests/**/*'
- '**/tests/**/*'
- '**/__tests__/**/*'
- changed-files:
- any-glob-to-any-file:
- 'tests/**/*'
- '**/tests/**/*'
- '**/__tests__/**/*'
mod:dev:
- 'scripts/**/*'
- 'packages/cli/**/*'
- 'packages/debug/**/*'
- changed-files:
- any-glob-to-any-file:
- 'scripts/**/*'
- 'tools/cli/**/*'
- 'packages/common/debug/**/*'
mod:plugin:
- 'plugins/**/*'
plugin:bookmark-block:
- 'plugins/bookmark-block/**/*'
- changed-files:
- any-glob-to-any-file:
- 'packages/plugins/**/*'
plugin:copilot:
- 'plugins/copilot/**/*'
- changed-files:
- any-glob-to-any-file:
- 'packages/plugins/copilot/**/*'
mod:infra:
- 'packages/infra/**/*'
- changed-files:
- any-glob-to-any-file:
- 'packages/common/infra/**/*'
mod:sdk:
- 'packages/sdk/**/*'
- changed-files:
- any-glob-to-any-file:
- 'packages/common/sdk/**/*'
mod:plugin-cli:
- 'packages/plugin-cli/**/*'
- changed-files:
- any-glob-to-any-file:
- 'tools/plugin-cli/**/*'
mod:workspace: 'packages/workspace/**/*'
mod:workspace:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/workspace/**/*'
mod:i18n: 'packages/i18n/**/*'
mod:i18n:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/i18n/**/*'
mod:env: 'packages/env/**/*'
mod:env:
- changed-files:
- any-glob-to-any-file:
- 'packages/common/env/**/*'
mod:hooks: 'packages/hooks/**/*'
mod:hooks:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/hooks/**/*'
mod:component: 'packages/component/**/*'
mod:component:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/component/**/*'
mod:storage: 'packages/storage/**/*'
mod:storage:
- changed-files:
- any-glob-to-any-file:
- 'packages/backend/storage/**/*'
mod:native: 'packages/native/**/*'
mod:native:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/native/**/*'
mod:store:
- '**/atoms/**/*'
- changed-files:
- any-glob-to-any-file:
- '**/atoms/**/*'
rust:
- '**/*.rs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain'
- '**/rust-toolchain.toml'
- '**/rustfmt.toml'
- changed-files:
- any-glob-to-any-file:
- '**/*.rs'
- '**/Cargo.toml'
- '**/Cargo.lock'
- '**/rust-toolchain'
- '**/rust-toolchain.toml'
- '**/rustfmt.toml'
package:y-indexeddb: 'packages/y-indexeddb/**/*'
package:y-indexeddb:
- changed-files:
- any-glob-to-any-file:
- 'packages/common/y-indexeddb/**/*'
app:core: 'apps/core/**/*'
app:core:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/core/**/*'
app:electron: 'apps/electron/**/*'
app:electron:
- changed-files:
- any-glob-to-any-file:
- 'packages/frontend/electron/**/*'
app:server: 'apps/server/**/*'
app:docs: 'apps/docs/**/*'
app:server:
- changed-files:
- any-glob-to-any-file:
- 'packages/backend/server/**/*'

53
.github/renovate.json vendored Normal file
View File

@@ -0,0 +1,53 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base",
"group:allNonMajor",
":preserveSemverRanges",
":disablePeerDependencies"
],
"labels": ["dependencies"],
"packageRules": [
{
"matchPackageNames": ["napi", "napi-build", "napi-derive"],
"groupName": "napi-rs"
},
{
"matchPackagePatterns": ["^eslint", "^@typescript-eslint"],
"groupName": "linter"
},
{
"matchPackagePatterns": ["^@nestjs"],
"groupName": "nestjs"
},
{
"matchPackagePatterns": ["^@opentelemetry"],
"groupName": "opentelemetry"
},
{
"matchPackageNames": [
"@prisma/client",
"@prisma/instrumentation",
"prisma"
],
"groupName": "prisma"
},
{
"matchPackagePatterns": ["^@electron-forge"],
"groupName": "electron-forge"
},
{
"matchPackagePatterns": ["^@blocksuite"],
"excludePackageNames": ["@blocksuite/icons"],
"followTag": "nightly"
}
],
"commitMessagePrefix": "chore: ",
"commitMessageAction": "bump up",
"commitMessageTopic": "{{depName}} version",
"ignoreDeps": [],
"lockFileMaintenance": {
"enabled": true,
"extends": ["schedule:weekly"]
}
}

View File

@@ -9,4 +9,5 @@ jobs:
pull-requests: write
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@v4
- uses: actions/checkout@v4
- uses: actions/labeler@v5

View File

@@ -1,173 +0,0 @@
name: Build(Desktop) & Test
on:
push:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/build-desktop.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
pull_request:
merge_group:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/build-desktop.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
env:
DEBUG: napi:*
BUILD_TYPE: canary
APP_NAME: affine
COVERAGE: true
DISTRIBUTION: desktop
MACOSX_DEPLOYMENT_TARGET: '10.13'
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
jobs:
build-core:
name: Build @affine/core
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Build Plugins
run: yarn run build:plugins
- name: Build Core
run: yarn nx build @affine/core
- name: Upload core artifact
uses: actions/upload-artifact@v3
with:
name: core
path: ./apps/core/dist
if-no-files-found: error
desktop-test:
name: Desktop Test
runs-on: ${{ matrix.spec.os }}
environment: development
strategy:
fail-fast: false
# all combinations: macos-latest x64, macos-latest arm64, windows-latest x64, ubuntu-latest x64
matrix:
spec:
- {
os: macos-latest,
platform: macos,
arch: x64,
target: x86_64-apple-darwin,
test: true,
}
- {
os: macos-latest,
platform: macos,
arch: arm64,
target: aarch64-apple-darwin,
test: false,
}
- {
os: ubuntu-latest,
platform: linux,
arch: x64,
target: x86_64-unknown-linux-gnu,
test: true,
}
- {
os: windows-latest,
platform: windows,
arch: x64,
target: x86_64-pc-windows-msvc,
test: true,
}
needs: build-core
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
timeout-minutes: 10
with:
playwright-install: true
hard-link-nm: false
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
target: ${{ matrix.spec.target }}
package: '@affine/native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Run unit tests
if: ${{ matrix.spec.test }}
shell: bash
run: yarn vitest
working-directory: ./apps/electron
- name: Download core artifact
uses: actions/download-artifact@v3
with:
name: core
path: apps/electron/resources/web-static
- name: Build Plugins
run: yarn run build:plugins
- name: Build Desktop Layers
run: yarn workspace @affine/electron build
- name: Run desktop tests
if: ${{ matrix.spec.test && matrix.spec.os == 'ubuntu-latest' }}
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop e2e
env:
COVERAGE: true
- name: Run desktop tests
if: ${{ matrix.spec.test && matrix.spec.os != 'ubuntu-latest' }}
run: yarn workspace @affine-test/affine-desktop e2e
env:
COVERAGE: true
- name: Make bundle
if: ${{ matrix.spec.os == 'macos-latest' && matrix.spec.arch == 'arm64' }}
env:
SKIP_BUNDLE: true
run: yarn workspace @affine/electron make --platform=darwin --arch=arm64
- name: Output check
if: ${{ matrix.spec.os == 'macos-latest' && matrix.spec.arch == 'arm64' }}
run: |
yarn ts-node-esm ./scripts/macos-arm64-output-check.mts
working-directory: apps/electron
- name: Collect code coverage report
if: ${{ matrix.spec.test }}
run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
- name: Upload e2e test coverage results
if: ${{ matrix.spec.test }}
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/lcov.info
flags: e2etest-${{ matrix.spec.os }}-${{ matrix.spec.arch }}
name: affine
fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-${{ matrix.spec.os }}-${{ matrix.spec.arch }}
path: ./test-results
if-no-files-found: ignore

View File

@@ -1,310 +0,0 @@
name: Build(Server) & Test
on:
push:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/build-server.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
pull_request:
merge_group:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/build-server.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
env:
DEBUG: napi:*
BUILD_TYPE: canary
APP_NAME: affine
COVERAGE: true
DISTRIBUTION: browser
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
jobs:
build-storage:
name: Build Storage
runs-on: ubuntu-latest
env:
RUSTFLAGS: '-C debuginfo=1'
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Setup Rust
uses: ./.github/actions/build-rust
with:
target: 'x86_64-unknown-linux-gnu'
package: '@affine/storage'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload storage.node
uses: actions/upload-artifact@v3
with:
name: storage.node
path: ./packages/storage/storage.node
if-no-files-found: error
server-test:
name: Server Test
runs-on: ubuntu-latest
environment: development
needs: build-storage
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Initialize database
run: |
psql -h localhost -U postgres -c "CREATE DATABASE affine;"
psql -h localhost -U postgres -c "CREATE USER affine WITH PASSWORD 'affine';"
psql -h localhost -U postgres -c "ALTER USER affine WITH SUPERUSER;"
env:
PGPASSWORD: affine
- name: Generate prisma client
run: |
yarn workspace @affine/server exec prisma generate
yarn workspace @affine/server exec prisma db push
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Run init-db script
run: yarn workspace @affine/server exec ts-node-esm ./scripts/init-db.ts
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./apps/server
- name: Run server tests
run: yarn workspace @affine/server test:coverage
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Upload server test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./apps/server/.coverage/lcov.info
flags: server-test
name: affine
fail_ci_if_error: false
server-e2e-test:
name: Server E2E Test
runs-on: ubuntu-latest
environment: development
needs: build-storage
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
- name: Initialize database
run: |
psql -h localhost -U postgres -c "CREATE DATABASE affine;"
psql -h localhost -U postgres -c "CREATE USER affine WITH PASSWORD 'affine';"
psql -h localhost -U postgres -c "ALTER USER affine WITH SUPERUSER;"
env:
PGPASSWORD: affine
- name: Generate prisma client
run: |
yarn workspace @affine/server exec prisma generate
yarn workspace @affine/server exec prisma db push
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Run init-db script
run: yarn workspace @affine/server exec ts-node-esm ./scripts/init-db.ts
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./apps/server
- name: Run playwright tests
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-cloud e2e --forbid-only
env:
COVERAGE: true
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Collect code coverage report
run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
- name: Upload e2e test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/lcov.info
flags: server-e2etest
name: affine
fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-server
path: ./tests/affine-cloud/test-results
if-no-files-found: ignore
server-desktop-e2e-test:
name: Server Desktop E2E Test
runs-on: ubuntu-latest
environment: development
needs: build-storage
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
hard-link-nm: false
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
target: x86_64-unknown-linux-gnu
package: '@affine/native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Initialize database
run: |
psql -h localhost -U postgres -c "CREATE DATABASE affine;"
psql -h localhost -U postgres -c "CREATE USER affine WITH PASSWORD 'affine';"
psql -h localhost -U postgres -c "ALTER USER affine WITH SUPERUSER;"
env:
PGPASSWORD: affine
- name: Generate prisma client
run: |
yarn exec prisma generate
yarn exec prisma db push
working-directory: apps/server
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Run init-db script
run: yarn exec ts-node-esm ./scripts/init-db.ts
working-directory: apps/server
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./apps/server
- name: Build Plugins
run: yarn run build:plugins
- name: Build Desktop Layers
run: yarn workspace @affine/electron build:dev
- name: Run playwright tests
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" yarn workspace @affine-test/affine-desktop-cloud e2e
env:
COVERAGE: true
DEV_SERVER_URL: http://localhost:8080
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
ENABLE_LOCAL_EMAIL: true
- name: Collect code coverage report
run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
- name: Upload e2e test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/lcov.info
flags: server-e2etest
name: affine
fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-server
path: ./tests/affine-cloud/test-results
if-no-files-found: ignore

603
.github/workflows/build-test.yml vendored Normal file
View File

@@ -0,0 +1,603 @@
name: Build & Test
on:
push:
branches:
- canary
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
pull_request:
env:
DEBUG: napi:*
BUILD_TYPE: canary
APP_NAME: affine
AFFINE_ENV: dev
COVERAGE: true
MACOSX_DEPLOYMENT_TARGET: '10.13'
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
PLAYWRIGHT_BROWSERS_PATH: ${{ github.workspace }}/node_modules/.cache/ms-playwright
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['javascript', 'typescript']
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v4
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v3
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run oxlint
# oxlint is fast, so wrong code will fail quickly
run: yarn dlx $(node -e "console.log(require('./package.json').scripts['lint:ox'].replace('oxlint', 'oxlint@' + require('./package.json').devDependencies.oxlint))")
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Run i18n codegen
run: yarn i18n-codegen gen
- name: Run ESLint
run: yarn lint:eslint --max-warnings=0
- name: Run Prettier
# Set nmMode in `actions/setup-node` will modify the .yarnrc.yml
run: |
git checkout .yarnrc.yml
yarn lint:prettier
- name: Run Type Check
run: yarn typecheck
check-yarn-binary:
name: Check yarn binary
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run check
run: |
yarn set version $(node -e "console.log(require('./package.json').packageManager.split('@')[1])")
git diff --exit-code
e2e-plugin-test:
name: E2E Plugin Test
runs-on: ubuntu-latest
env:
DISTRIBUTION: browser
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
full-cache: true
- name: Run playwright tests
run: yarn e2e --forbid-only
working-directory: tests/affine-plugin
env:
COVERAGE: true
- name: Collect code coverage report
run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
- name: Upload e2e test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/lcov.info
flags: e2e-plugin-test
name: affine
fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-plugin
path: ./test-results
if-no-files-found: ignore
e2e-test:
name: E2E Test
runs-on: ubuntu-latest
env:
DISTRIBUTION: browser
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5]
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
full-cache: true
- name: Run playwright tests
run: yarn workspace @affine-test/affine-local e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-${{ matrix.shard }}
path: ./test-results
if-no-files-found: ignore
e2e-migration-test:
name: E2E Migration Test
runs-on: ubuntu-latest
env:
DISTRIBUTION: browser
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
full-cache: true
- name: Run playwright tests
run: yarn workspace @affine-test/affine-migration e2e --forbid-only
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-migration
path: ./tests/affine-migration/test-results
if-no-files-found: ignore
unit-test:
name: Unit Test
runs-on: ubuntu-latest
needs:
- build-native
env:
DISTRIBUTION: browser
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Download affine.linux-x64-gnu.node
uses: actions/download-artifact@v3
with:
name: affine.linux-x64-gnu.node
path: ./packages/frontend/native
- name: Unit Test
run: yarn nx test:coverage @affine/monorepo
- name: Upload unit test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/store/lcov.info
flags: unittest
name: affine
fail_ci_if_error: false
build-native:
name: Build AFFiNE native (${{ matrix.spec.target }})
runs-on: ${{ matrix.spec.os }}
env:
CARGO_PROFILE_RELEASE_DEBUG: '1'
strategy:
fail-fast: false
matrix:
spec:
- { os: ubuntu-latest, target: x86_64-unknown-linux-gnu }
- { os: windows-latest, target: x86_64-pc-windows-msvc }
- { os: macos-latest, target: x86_64-apple-darwin }
- { os: macos-latest, target: aarch64-apple-darwin }
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
extra-flags: workspaces focus @affine/native
electron-install: false
build-infra: false
build-plugins: false
- name: Setup filename
id: filename
shell: bash
run: |
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
target: ${{ matrix.spec.target }}
package: '@affine/native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload ${{ steps.filename.outputs.filename }}
uses: actions/upload-artifact@v3
with:
name: ${{ steps.filename.outputs.filename }}
path: ./packages/frontend/native/${{ steps.filename.outputs.filename }}
if-no-files-found: error
build-storage:
name: Build Storage
runs-on: ubuntu-latest
env:
CARGO_PROFILE_RELEASE_DEBUG: '1'
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
extra-flags: workspaces focus @affine/storage
electron-install: false
build-infra: false
build-plugins: false
- name: Build Rust
uses: ./.github/actions/build-rust
with:
target: 'x86_64-unknown-linux-gnu'
package: '@affine/storage'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload storage.node
uses: actions/upload-artifact@v3
with:
name: storage.node
path: ./packages/backend/storage/storage.node
if-no-files-found: error
build-core:
name: Build @affine/core
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
build-plugins: false
full-cache: true
- name: Build Core
# always skip cache because its fast, and cache configuration is always changing
run: yarn nx build @affine/core --skip-nx-cache
- name: zip core
run: tar -czf dist.tar.gz --directory=packages/frontend/core/dist .
- name: Upload core artifact
uses: actions/upload-artifact@v3
with:
name: core
path: dist.tar.gz
if-no-files-found: error
server-test:
name: Server Test
runs-on: ubuntu-latest
needs: build-storage
env:
DISTRIBUTION: browser
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
full-cache: true
- name: Initialize database
run: |
psql -h localhost -U postgres -c "CREATE DATABASE affine;"
psql -h localhost -U postgres -c "CREATE USER affine WITH PASSWORD 'affine';"
psql -h localhost -U postgres -c "ALTER USER affine WITH SUPERUSER;"
env:
PGPASSWORD: affine
- name: Generate prisma client
run: |
yarn workspace @affine/server exec prisma generate
yarn workspace @affine/server exec prisma db push
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Run init-db script
run: |
yarn workspace @affine/server data-migration run
yarn workspace @affine/server exec node --loader ts-node/esm/transpile-only ./scripts/init-db.ts
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./packages/backend/server
- name: Run server tests
run: yarn workspace @affine/server test:coverage
env:
CARGO_TARGET_DIR: '${{ github.workspace }}/target'
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Upload server test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./packages/backend/server/.coverage/lcov.info
flags: server-test
name: affine
fail_ci_if_error: false
server-e2e-test:
name: ${{ matrix.tests.name }}
runs-on: ubuntu-latest
env:
DISTRIBUTION: browser
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
strategy:
fail-fast: false
matrix:
tests:
- name: 'Server E2E Test 1/3'
script: yarn workspace @affine-test/affine-cloud e2e --forbid-only --shard=1/3
- name: 'Server E2E Test 2/3'
script: yarn workspace @affine-test/affine-cloud e2e --forbid-only --shard=2/3
- name: 'Server E2E Test 3/3'
script: yarn workspace @affine-test/affine-cloud e2e --forbid-only --shard=3/3
- name: 'Server Desktop E2E Test'
script: |
yarn workspace @affine/electron build:dev
xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop-cloud e2e
needs:
- build-storage
- build-native
services:
postgres:
image: postgres
env:
POSTGRES_PASSWORD: affine
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
mailer:
image: mailhog/mailhog
ports:
- 1025:1025
- 8025:8025
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
hard-link-nm: false
- name: Initialize database
run: |
psql -h localhost -U postgres -c "CREATE DATABASE affine;"
psql -h localhost -U postgres -c "CREATE USER affine WITH PASSWORD 'affine';"
psql -h localhost -U postgres -c "ALTER USER affine WITH SUPERUSER;"
env:
PGPASSWORD: affine
- name: Generate prisma client
run: |
yarn workspace @affine/server exec prisma generate
yarn workspace @affine/server exec prisma db push
env:
DATABASE_URL: postgresql://affine:affine@localhost:5432/affine
- name: Run init-db script
run: |
yarn workspace @affine/server data-migration run
yarn workspace @affine/server exec node --loader ts-node/esm/transpile-only ./scripts/init-db.ts
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./packages/backend/server
- name: Download affine.linux-x64-gnu.node
uses: actions/download-artifact@v3
with:
name: affine.linux-x64-gnu.node
path: ./packages/frontend/native
- name: ${{ matrix.tests.name }}
run: |
${{ matrix.tests.script }}
env:
DEV_SERVER_URL: http://localhost:8080
ENABLE_LOCAL_EMAIL: true
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-server
path: ./tests/affine-cloud/test-results
if-no-files-found: ignore
desktop-test:
name: Desktop Test (${{ matrix.spec.os }}, ${{ matrix.spec.platform }}, ${{ matrix.spec.arch }}, ${{ matrix.spec.target }}, ${{ matrix.spec.test }})
runs-on: ${{ matrix.spec.os }}
strategy:
fail-fast: false
# all combinations: macos-latest x64, macos-latest arm64, windows-latest x64, ubuntu-latest x64
matrix:
spec:
- {
os: macos-latest,
platform: macos,
arch: x64,
target: x86_64-apple-darwin,
test: true,
}
- {
os: macos-latest,
platform: macos,
arch: arm64,
target: aarch64-apple-darwin,
test: false,
}
- {
os: ubuntu-latest,
platform: linux,
arch: x64,
target: x86_64-unknown-linux-gnu,
test: true,
}
- {
os: windows-latest,
platform: windows,
arch: x64,
target: x86_64-pc-windows-msvc,
test: true,
}
needs:
- build-core
- build-native
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
timeout-minutes: 10
with:
extra-flags: workspaces focus @affine/electron @affine/monorepo @affine-test/affine-desktop
playwright-install: true
hard-link-nm: false
enableScripts: false
- name: Setup filename
id: filename
shell: bash
run: |
export PLATFORM_ARCH_ABI=$(node -e "console.log(require('@napi-rs/cli').parseTriple('${{ matrix.spec.target }}').platformArchABI)")
echo "filename=affine.$PLATFORM_ARCH_ABI.node" >> "$GITHUB_OUTPUT"
- name: Download ${{ steps.filename.outputs.filename }}
uses: actions/download-artifact@v3
with:
name: ${{ steps.filename.outputs.filename }}
path: ./packages/frontend/native
- name: Run unit tests
if: ${{ matrix.spec.test }}
shell: bash
run: yarn vitest
working-directory: packages/frontend/electron
- name: Download core artifact
uses: ./.github/actions/download-core
with:
path: packages/frontend/electron/resources/web-static
- name: Build Desktop Layers
run: yarn workspace @affine/electron build
- name: Run desktop tests
if: ${{ matrix.spec.test && matrix.spec.os == 'ubuntu-latest' }}
run: xvfb-run --auto-servernum --server-args="-screen 0 1280x960x24" -- yarn workspace @affine-test/affine-desktop e2e
- name: Run desktop tests
if: ${{ matrix.spec.test && matrix.spec.os != 'ubuntu-latest' }}
run: yarn workspace @affine-test/affine-desktop e2e
- name: Make bundle
if: ${{ matrix.spec.os == 'macos-latest' && matrix.spec.arch == 'arm64' }}
env:
SKIP_BUNDLE: true
SKIP_WEB_BUILD: true
HOIST_NODE_MODULES: 1
run: yarn workspace @affine/electron package --platform=darwin --arch=arm64
- name: Output check
if: ${{ matrix.spec.os == 'macos-latest' && matrix.spec.arch == 'arm64' }}
run: |
yarn workspace @affine/electron exec node --loader ts-node/esm/transpile-only ./scripts/macos-arm64-output-check.ts
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-${{ matrix.spec.os }}-${{ matrix.spec.arch }}
path: ./test-results
if-no-files-found: ignore

View File

@@ -1,285 +0,0 @@
name: Build & Test
on:
push:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/build.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
pull_request:
merge_group:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/build.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
env:
DEBUG: napi:*
BUILD_TYPE: canary
APP_NAME: affine
AFFINE_ENV: dev
COVERAGE: true
DISTRIBUTION: browser
MACOSX_DEPLOYMENT_TARGET: '10.13'
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
- name: Run i18n codegen
run: yarn i18n-codegen gen
- name: Run ESLint
run: yarn lint:eslint --max-warnings=0
- name: Run Prettier
# Set nmMode in `actions/setup-node` will modify the .yarnrc.yml
run: |
git checkout .yarnrc.yml
yarn lint:prettier
- name: Run circular
run: yarn circular
- name: Run Type Check
run: yarn typecheck
check-yarn-binary:
name: Check yarn binary
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Run check
run: |
yarn set version $(node -e "console.log(require('./package.json').packageManager.split('@')[1])")
git diff --exit-code
build-prototype:
name: Build Prototype
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
- name: Build Prototype
run: yarn nx build prototype
- name: Upload prototype artifact
uses: actions/upload-artifact@v3
with:
name: prototype
path: ./apps/prototype/dist
if-no-files-found: error
build-docs:
name: Build Docs
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
- run: yarn nx build @affine/docs
env:
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
e2e-plugin-test:
name: E2E Plugin Test
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
- name: Run playwright tests
run: yarn e2e --forbid-only
working-directory: tests/affine-plugin
env:
COVERAGE: true
- name: Collect code coverage report
run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
- name: Upload e2e test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/lcov.info
flags: e2e-plugin-test
name: affine
fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-plugin
path: ./test-results
if-no-files-found: ignore
e2e-prototype-test:
name: E2E Prototype Test
runs-on: ubuntu-latest
environment: development
needs: build-prototype
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
- name: Download prototype artifact
uses: actions/download-artifact@v3
with:
name: prototype
path: ./apps/prototype/dist
- name: Run playwright tests
run: yarn e2e --forbid-only
working-directory: tests/affine-prototype
env:
COVERAGE: true
# - name: Collect code coverage report
# run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
# - name: Upload e2e test coverage results
# uses: codecov/codecov-action@v3
# with:
# token: ${{ secrets.CODECOV_TOKEN }}
# files: ./.coverage/lcov.info
# flags: e2etest-prototype
# name: affine
# fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-prototype
path: ./test-results
if-no-files-found: ignore
e2e-test:
name: E2E Test
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
shard: [1, 2, 3, 4, 5]
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
- name: Run playwright tests
run: yarn e2e --forbid-only --shard=${{ matrix.shard }}/${{ strategy.job-total }}
working-directory: tests/affine-local
env:
COVERAGE: true
- name: Collect code coverage report
run: yarn exec nyc report -t .nyc_output --report-dir .coverage --reporter=lcov
- name: Upload e2e test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/lcov.info
flags: e2etest
name: affine
fail_ci_if_error: false
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-${{ matrix.shard }}
path: ./test-results
if-no-files-found: ignore
e2e-migration-test:
name: E2E Migration Test
runs-on: ubuntu-latest
environment: development
strategy:
matrix:
spec:
- { package: 0.7.0-canary.18 }
- { package: 0.8.0-canary.7 }
- { package: 0.8.3 }
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
playwright-install: true
electron-install: false
- name: Unzip
run: yarn unzip
working-directory: ./tests/affine-legacy/${{ matrix.spec.package }}
- name: Run playwright tests
run: yarn e2e --forbid-only
working-directory: ./tests/affine-legacy/${{ matrix.spec.package }}
- name: Upload test results
if: ${{ failure() }}
uses: actions/upload-artifact@v3
with:
name: test-results-e2e-migration-${{ matrix.spec.package }}
path: ./tests/affine-legacy/${{ matrix.spec.package }}/test-results
if-no-files-found: ignore
unit-test:
name: Unit Test
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
- name: Unit Test
run: yarn nx test:coverage @affine/monorepo
- name: Upload unit test coverage results
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./.coverage/store/lcov.info
flags: unittest
name: affine
fail_ci_if_error: false

View File

@@ -1,36 +0,0 @@
# https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows#force-deleting-cache-entries
name: Cleanup caches for closed branches
on:
pull_request:
types:
- closed
workflow_dispatch:
jobs:
cleanup:
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Cleanup
run: |
gh extension install actions/gh-actions-cache
REPO=${{ github.repository }}
BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge"
echo "Fetching list of cache key"
cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 )
## Setting this to not fail the workflow while deleting cache keys.
set +e
echo "Deleting caches..."
for cacheKey in $cacheKeysForPR
do
gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm
done
echo "Done"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -1,18 +0,0 @@
name: Cancel
on:
pull_request_target:
types:
- edited
- synchronize
jobs:
cancel:
name: 'Cancel Previous Runs'
runs-on: ubuntu-latest
timeout-minutes: 2
steps:
- uses: styfle/cancel-workflow-action@0.11.0
with:
# See https://api.github.com/repos/toeverything/AFFiNE/actions/workflows
workflow_id: 44038251, 61883931, 65188160, 66789140
access_token: ${{ github.token }}

View File

@@ -1,70 +0,0 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
#
name: 'CodeQL'
on:
push:
branches: [master]
pull_request:
merge_group:
# The branches below must be a subset of the branches above
branches: [master]
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: ['javascript']
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v3
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v2
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v2
# Command-line programs to run using the OS shell.
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
# If the Autobuild fails above, remove it and uncomment the following three lines.
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
# - run: |
# echo "Run, Build Application using script"
# ./location_of_script_within_repo/buildscript.sh
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v2

View File

@@ -0,0 +1,27 @@
name: Deploy Automatically
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-canary.[0-9]+'
schedule:
- cron: '0 9 * * *'
jobs:
dispatch-deploy:
runs-on: ubuntu-latest
name: Setup Deploy
steps:
- name: dispatch deploy by tag
if: ${{ github.event_name == 'push' }}
uses: benc-uk/workflow-dispatch@v1
with:
workflow: deploy.yml
inputs: '{ "flavor": "canary" }'
- name: dispatch deploy by schedule
if: ${{ github.event_name == 'schedule' }}
uses: benc-uk/workflow-dispatch@v1
with:
workflow: deploy.yml
inputs: '{ "flavor": "canary" }'
ref: canary

View File

@@ -1,20 +1,18 @@
name: Deploy
on:
push:
branches:
- master
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-canary.[0-9]+'
workflow_dispatch:
inputs:
flavor:
description: 'Build type (canary, beta, internal or stable)'
type: string
description: 'Select what enverionment to deploy to'
type: choice
default: canary
options:
- canary
- beta
- stable
- internal
env:
BUILD_TYPE: canary
APP_NAME: affine
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
@@ -22,9 +20,11 @@ jobs:
build-server:
name: Build Server
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.flavor }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
@@ -35,45 +35,54 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: server-dist
path: ./apps/server/dist
path: ./packages/backend/server/dist
if-no-files-found: error
build-core:
name: Build @affine/core
runs-on: ubuntu-latest
environment: production
environment: ${{ github.event.inputs.flavor }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Build Plugins
run: yarn run build:plugins
- name: Build Core
run: yarn nx build @affine/core
run: yarn nx build @affine/core --skip-nx-cache
env:
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
BUILD_TYPE_OVERRIDE: ${{ github.event.inputs.flavor }}
BUILD_TYPE: ${{ github.event.inputs.flavor }}
SHOULD_REPORT_TRACE: true
TRACE_REPORT_ENDPOINT: ${{ secrets.TRACE_REPORT_ENDPOINT }}
CAPTCHA_SITE_KEY: ${{ secrets.CAPTCHA_SITE_KEY }}
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
- name: Upload core artifact
uses: actions/upload-artifact@v3
with:
name: core
path: ./apps/core/dist
path: ./packages/frontend/core/dist
if-no-files-found: error
build-storage:
name: Build Storage
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.flavor }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Setup Rust
- name: Build Rust
uses: ./.github/actions/build-rust
with:
target: 'x86_64-unknown-linux-gnu'
@@ -83,34 +92,65 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: storage.node
path: ./packages/storage/storage.node
path: ./packages/backend/storage/storage.node
if-no-files-found: error
build-storage-arm64:
name: Build Storage arm64
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Build Rust
uses: ./.github/actions/build-rust
with:
target: 'aarch64-unknown-linux-gnu'
package: '@affine/storage'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload storage.node
uses: actions/upload-artifact@v3
with:
name: storage.arm64.node
path: ./packages/backend/storage/storage.node
if-no-files-found: error
build-docker:
name: Build Docker
runs-on: ubuntu-latest
environment: ${{ github.event.inputs.flavor }}
needs:
- build-server
- build-core
- build-storage
- build-storage-arm64
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Download core artifact
uses: actions/download-artifact@v3
with:
name: core
path: ./apps/core/dist
path: ./packages/frontend/core/dist
- name: Download server dist
uses: actions/download-artifact@v3
with:
name: server-dist
path: ./apps/server/dist
path: ./packages/backend/server/dist
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./apps/server
path: ./packages/backend/server
- name: Download storage.node arm64
uses: actions/download-artifact@v3
with:
name: storage.arm64.node
path: ./packages/backend/storage
- name: move storage.arm64.node
run: mv ./packages/backend/storage/storage.node ./packages/backend/server/storage.arm64.node
- name: Setup env
run: |
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
@@ -122,18 +162,18 @@ jobs:
fi
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
logout: false
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Build front Dockerfile
uses: docker/build-push-action@v4
uses: docker/build-push-action@v5
with:
context: .
push: true
@@ -146,20 +186,22 @@ jobs:
# setup node without cache configuration
# Prisma cache is not compatible with docker build cache
- name: Setup Node.js
uses: actions/setup-node@v3
uses: actions/setup-node@v4
with:
node-version-file: '.nvmrc'
registry-url: https://npm.pkg.github.com
scope: '@toeverything'
- name: Install Node.js dependencies
run: yarn workspaces focus @affine/server --production
run: |
yarn config set --json supportedArchitectures.cpu '["x64", "arm64"]'
yarn workspaces focus @affine/server --production
- name: Generate Prisma client
run: yarn workspace @affine/server prisma generate
- name: Build graphql Dockerfile
uses: docker/build-push-action@v4
uses: docker/build-push-action@v5
with:
context: .
push: true
@@ -167,11 +209,11 @@ jobs:
platforms: linux/amd64,linux/arm64
provenance: true
file: .github/deployment/node/Dockerfile
tags: ghcr.io/toeverything/affine-graphql:${{env.RELEASE_FLAVOR}}-${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-front:${{env.RELEASE_FLAVOR}}
tags: ghcr.io/toeverything/affine-graphql:${{env.RELEASE_FLAVOR}}-${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-graphql:${{env.RELEASE_FLAVOR}}
deploy:
name: Deploy to cluster
if: ${{ github.event_name == 'workflow_dispatch' || github.ref_type == 'tag' }}
if: ${{ github.event_name == 'workflow_dispatch' }}
environment: ${{ github.event.inputs.flavor }}
permissions:
contents: 'write'
@@ -180,8 +222,11 @@ jobs:
- build-docker
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to dev
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Deploy to ${{ github.event.inputs.flavor }}
uses: ./.github/actions/deploy
with:
build-type: ${{ github.event.inputs.flavor }}
@@ -191,12 +236,15 @@ jobs:
cluster-name: ${{ secrets.GCP_CLUSTER_NAME }}
cluster-location: ${{ secrets.GCP_CLUSTER_LOCATION }}
env:
APP_VERSION: ${{ steps.version.outputs.APP_VERSION }}
DEPLOY_HOST: ${{ secrets.DEPLOY_HOST }}
CANARY_DEPLOY_HOST: ${{ secrets.CANARY_DEPLOY_HOST }}
R2_ACCOUNT_ID: ${{ secrets.R2_ACCOUNT_ID }}
R2_ACCESS_KEY_ID: ${{ secrets.R2_ACCESS_KEY_ID }}
R2_SECRET_ACCESS_KEY: ${{ secrets.R2_SECRET_ACCESS_KEY }}
R2_BUCKET: ${{ secrets.R2_BUCKET }}
ENABLE_CAPTCHA: true
CAPTCHA_TURNSTILE_SECRET: ${{ secrets.CAPTCHA_TURNSTILE_SECRET }}
OAUTH_EMAIL_SENDER: ${{ secrets.OAUTH_EMAIL_SENDER }}
OAUTH_EMAIL_LOGIN: ${{ secrets.OAUTH_EMAIL_LOGIN }}
OAUTH_EMAIL_PASSWORD: ${{ secrets.OAUTH_EMAIL_PASSWORD }}
@@ -212,3 +260,6 @@ jobs:
REDIS_HOST: ${{ secrets.REDIS_HOST }}
REDIS_PASSWORD: ${{ secrets.REDIS_PASSWORD }}
CLOUD_SQL_IAM_ACCOUNT: ${{ secrets.CLOUD_SQL_IAM_ACCOUNT }}
STRIPE_API_KEY: ${{ secrets.STRIPE_API_KEY }}
STRIPE_WEBHOOK_KEY: ${{ secrets.STRIPE_WEBHOOK_KEY }}
STATIC_IP_NAME: ${{ secrets.STATIC_IP_NAME }}

View File

@@ -2,7 +2,7 @@ name: Release Charts
on:
push:
branches: [master]
branches: [canary]
paths:
- '.github/helm/**/Chart.yml'
@@ -11,12 +11,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Checkout Helm chart repo
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: toeverything/helm-charts
path: .helm-chart-repo

View File

@@ -6,7 +6,7 @@ on:
- labeled
- unlabeled
branches:
- master
- canary
jobs:
check_labels:

View File

@@ -2,15 +2,15 @@ name: Languages Sync
on:
push:
branches: ['master']
branches: ['canary']
paths:
- 'packages/i18n/**'
- 'packages/frontend/i18n/**'
- '.github/workflows/languages-sync.yml'
- '!.github/actions/setup-node/action.yml'
pull_request_target:
branches: ['master']
branches: ['canary']
paths:
- 'packages/i18n/**'
- 'packages/frontend/i18n/**'
- '.github/workflows/languages-sync.yml'
- '!.github/actions/setup-node/action.yml'
workflow_dispatch:
@@ -19,17 +19,17 @@ jobs:
main:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Check Language Key
if: github.ref != 'refs/heads/master'
if: github.ref != 'refs/heads/canary'
run: yarn workspace @affine/i18n run sync-languages:check
env:
TOLGEE_API_KEY: ${{ secrets.TOLGEE_API_KEY }}
- name: Sync Languages
if: github.ref == 'refs/heads/master'
if: github.ref == 'refs/heads/canary'
run: yarn workspace @affine/i18n run sync-languages
env:
TOLGEE_API_KEY: ${{ secrets.TOLGEE_API_KEY }}

View File

@@ -1,226 +0,0 @@
name: Build Canary Desktop App on Staging Branch
on:
workflow_dispatch:
push:
branches:
# 0.6.x-staging
- v[0-9]+.[0-9]+.x-staging
# 0.6.1-staging
- v[0-9]+.[0-9]+.[0-9]+-staging
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/nightly-build.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
permissions:
actions: write
contents: write
security-events: write
concurrency:
# The concurrency group contains the workflow name and the branch name for
# pull requests or the commit hash for any other events.
group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
cancel-in-progress: true
env:
BUILD_TYPE: internal
jobs:
set-build-version:
runs-on: ubuntu-latest
environment: production
outputs:
version: 0.0.0-internal.${{ steps.version.outputs.version }}
steps:
- uses: actions/checkout@v3
- uses: toeverything/set-build-version@latest
- id: version
run: echo ::set-output name=version::${{ env.BUILD_VERSION }}
before-make:
runs-on: ubuntu-latest
environment: production
needs:
- set-build-version
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Setup @sentry/cli
uses: ./.github/actions/setup-sentry
- name: Replace Version
run: ./scripts/set-version.sh ${{ needs.set-build-version.outputs.version }}
- name: generate-assets
working-directory: apps/electron
run: yarn generate-assets
env:
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
NEXT_PUBLIC_SENTRY_DSN: ${{ secrets.NEXT_PUBLIC_SENTRY_DSN }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }}
- name: Upload core artifact
uses: actions/upload-artifact@v3
with:
name: core
path: apps/electron/resources/web-static
make-distribution:
environment: production
strategy:
# all combinations: macos-latest x64, macos-latest arm64, ubuntu-latest x64
# For windows, we need a separate approach
matrix:
spec:
- runner: macos-latest
platform: darwin
arch: x64
target: x86_64-apple-darwin
- runner: macos-latest
platform: darwin
arch: arm64
target: aarch64-apple-darwin
- runner: ubuntu-latest
platform: linux
arch: x64
target: x86_64-unknown-linux-gnu
- runner: windows-latest
platform: win32
arch: x64
target: x86_64-pc-windows-msvc
runs-on: ${{ matrix.spec.runner }}
needs:
- before-make
- set-build-version
env:
APPLE_ID: ${{ secrets.APPLE_ID }}
APPLE_PASSWORD: ${{ secrets.APPLE_PASSWORD }}
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
SKIP_GENERATE_ASSETS: 1
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
timeout-minutes: 10
uses: ./.github/actions/setup-node
- name: Setup Maker
timeout-minutes: 10
uses: ./.github/actions/setup-maker
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
target: ${{ matrix.spec.target }}
package: '@affine/native'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Replace Version
run: ./scripts/set-version.sh ${{ needs.set-build-version.outputs.version }}
- uses: actions/download-artifact@v3
with:
name: core
path: apps/electron/resources/web-static
- name: Build Plugins
run: yarn run build:plugins
- name: Build Desktop Layers
run: yarn workspace @affine/electron build
- name: Signing By Apple Developer ID
if: ${{ matrix.spec.platform == 'darwin' }}
uses: apple-actions/import-codesign-certs@v2
with:
p12-file-base64: ${{ secrets.CERTIFICATES_P12 }}
p12-password: ${{ secrets.CERTIFICATES_P12_PASSWORD }}
- name: make
run: yarn workspace @affine/electron make --platform=${{ matrix.spec.platform }} --arch=${{ matrix.spec.arch }}
- name: Save artifacts (mac)
if: ${{ matrix.spec.platform == 'darwin' }}
run: |
mkdir -p builds
mv apps/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
mv apps/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
- name: Save artifacts (windows)
if: ${{ matrix.spec.platform == 'win32' }}
run: |
mkdir -p builds
mv apps/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
mv apps/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
mv apps/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
mv apps/electron/out/*/make/squirrel.windows/x64/*.nupkg ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.nupkg
- name: Save artifacts (linux)
if: ${{ matrix.spec.platform == 'linux' }}
run: |
mkdir -p builds
mv apps/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
mv apps/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: affine-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}-builds
path: builds
release:
needs:
- make-distribution
- set-build-version
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download Artifacts (macos-x64)
uses: actions/download-artifact@v3
with:
name: affine-darwin-x64-builds
path: ./
- name: Download Artifacts (macos-arm64)
uses: actions/download-artifact@v3
with:
name: affine-darwin-arm64-builds
path: ./
- name: Download Artifacts (windows-x64)
uses: actions/download-artifact@v3
with:
name: affine-win32-x64-builds
path: ./
- name: Download Artifacts (linux-x64)
uses: actions/download-artifact@v3
with:
name: affine-linux-x64-builds
path: ./
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 18
- name: Generate Release yml
run: |
cp ./apps/electron/scripts/generate-yml.js .
node generate-yml.js
env:
RELEASE_VERSION: ${{ needs.set-build-version.outputs.version }}
- name: Create Release Draft
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
with:
repository: 'toeverything/AFFiNE-Releases'
name: ${{ needs.set-build-version.outputs.version }}
tag_name: ${{ needs.set-build-version.outputs.version }}
prerelease: true
files: |
./VERSION
./*.zip
./*.dmg
./*.exe
./*.nupkg
./RELEASES
./*.AppImage
./*.apk
./*.yml

View File

@@ -1,54 +0,0 @@
name: NX
on:
push:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/nx.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
pull_request:
merge_group:
branches:
- master
- v[0-9]+.[0-9]+.x-staging
- v[0-9]+.[0-9]+.x
paths-ignore:
- README.md
- .github/**
- '!.github/workflows/nx.yml'
- '!.github/actions/build-rust/action.yml'
- '!.github/actions/setup-node/action.yml'
jobs:
main:
name: Nx Cloud - Main Job
uses: nrwl/ci/.github/workflows/nx-cloud-main.yml@v0.13.0
with:
runs-on: macos-latest
main-branch-name: master
number-of-agents: 5
init-commands: |
yarn exec nx-cloud start-ci-run --stop-agents-after="build" --agent-count=5
environment-variables: |
BUILD_TYPE=canary
# parallel-commands: |
# yarn exec nx-cloud record -- yarn exec nx format:check
parallel-commands-on-agents: |
yarn exec nx affected --target=build --parallel=5
timeout: 60
agents:
name: Nx Cloud - Agents
uses: nrwl/ci/.github/workflows/nx-cloud-agents.yml@v0.13.0
with:
runs-on: macos-latest
number-of-agents: 5
environment-variables: |
BUILD_TYPE=canary
timeout: 60

View File

@@ -9,4 +9,4 @@ jobs:
add-reviews:
runs-on: ubuntu-latest
steps:
- uses: kentaro-m/auto-assign-action@v1.2.4
- uses: kentaro-m/auto-assign-action@v1.2.5

View File

@@ -7,7 +7,7 @@ on:
- edited
- synchronize
branches:
- master
- canary
permissions:
contents: read
@@ -17,7 +17,12 @@ jobs:
name: Check pull request title
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js
uses: ./.github/actions/setup-node
- run: echo "${{ github.event.pull_request.title }}" | npx commitlint -g ./.commitlintrc.json
uses: actions/setup-node@v4
with:
cache: 'yarn'
node-version-file: '.nvmrc'
- name: Install dependencies
run: yarn workspaces focus @affine/commitlint-config
- run: echo "${{ github.event.pull_request.title }}" | yarn workspace @affine/commitlint-config commitlint -g ./.commitlintrc.json

View File

@@ -7,25 +7,23 @@ on:
workflow_dispatch:
push:
branches:
- master
- canary
pull_request:
branches:
- master
- canary
paths-ignore:
- README.md
- .github/**
- apps/server
- apps/docs
- apps/electron
- packages/backend/server
- packages/frontend/electron
- '!.github/workflows/publish-storybook.yml'
jobs:
publish-storybook:
name: Publish Storybook
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.merge_commit_sha }}
# This is required to fetch all commits for chromatic
@@ -38,7 +36,7 @@ jobs:
run: yarn run build:plugins
- uses: chromaui/action-next@v1
with:
workingDir: apps/storybook
workingDir: tests/storybook
buildScriptName: build
exitOnceUploaded: true
onlyChanged: false
@@ -46,7 +44,7 @@ jobs:
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
NODE_OPTIONS: ${{ env.NODE_OPTIONS }}
- uses: actions/upload-artifact@v2
- uses: actions/upload-artifact@v3
if: always()
with:
name: chromatic-build-artifacts-${{ github.run_id }}

View File

@@ -0,0 +1,27 @@
name: Release Desktop Automatically
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-canary.[0-9]+'
schedule:
- cron: '0 9 * * *'
jobs:
dispatch-release-desktop:
runs-on: ubuntu-latest
name: Setup Release Desktop
steps:
- name: dispatch desktop release by tag
if: ${{ github.event_name == 'push' }}
uses: benc-uk/workflow-dispatch@v1
with:
workflow: release-desktop.yml
inputs: '{ "build-type": "canary", "is-draft": false, "is-pre-release": true }'
- name: dispatch desktop release by schedule
if: ${{ github.event_name == 'schedule' }}
uses: benc-uk/workflow-dispatch@v1
with:
workflow: release-desktop.yml
inputs: '{ "build-type": "canary", "is-draft": false, "is-pre-release": true }'
ref: canary

View File

@@ -1,15 +1,17 @@
name: Release Desktop App
on:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+-canary.[0-9]+'
workflow_dispatch:
inputs:
version:
description: App Version
build-type:
description: 'Build Type'
type: choice
required: true
default: 0.0.0
default: canary
options:
- canary
- beta
- stable
is-draft:
description: 'Draft Release?'
type: boolean
@@ -20,11 +22,6 @@ on:
type: boolean
required: true
default: true
build-type:
description: 'Build Type (canary, beta or stable)'
type: string
required: true
default: canary
permissions:
actions: write
@@ -32,7 +29,7 @@ permissions:
security-events: write
env:
BUILD_TYPE: ${{ github.event.inputs.build-type || (github.ref_type == 'tag' && contains(github.ref, 'canary') && 'canary') }}
BUILD_TYPE: ${{ github.event.inputs.build-type }}
DEBUG: napi:*
APP_NAME: affine
MACOSX_DEPLOYMENT_TARGET: '10.13'
@@ -40,42 +37,36 @@ env:
jobs:
before-make:
runs-on: ubuntu-latest
environment: production
environment: ${{ github.event.inputs.build-type }}
outputs:
RELEASE_VERSION: ${{ steps.get-canary-version.outputs.RELEASE_VERSION }}
RELEASE_VERSION: ${{ steps.version.outputs.APP_VERSION }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Setup @sentry/cli
uses: ./.github/actions/setup-sentry
- name: Get canary version
id: get-canary-version
if: ${{ github.ref_type == 'tag' }}
run: |
TAG_VERSION=${GITHUB_REF#refs/tags/v}
PACKAGE_VERSION=$(node -p "require('./apps/electron/package.json').version")
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
echo "Tag version ($TAG_VERSION) does not match package.json version ($PACKAGE_VERSION)"
exit 1
fi
echo "RELEASE_VERSION=$(node -p "require('./apps/electron/package.json').version")" >> $GITHUB_OUTPUT
- name: generate-assets
run: yarn workspace @affine/electron generate-assets
env:
SENTRY_ORG: ${{ secrets.SENTRY_ORG }}
SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }}
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
RELEASE_VERSION: ${{ github.event.inputs.version || steps.get-canary-version.outputs.RELEASE_VERSION }}
SENTRY_DSN: ${{ secrets.SENTRY_DSN }}
RELEASE_VERSION: ${{ steps.version.outputs.APP_VERSION }}
SKIP_PLUGIN_BUILD: 'true'
SKIP_NX_CACHE: 'true'
- name: Upload core artifact
uses: actions/upload-artifact@v3
with:
name: core
path: apps/electron/resources/web-static
path: packages/frontend/electron/resources/web-static
make-distribution:
environment: production
strategy:
# all combinations: macos-latest x64, macos-latest arm64, ubuntu-latest x64
# For windows, we need a separate approach
@@ -101,13 +92,19 @@ jobs:
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
SKIP_GENERATE_ASSETS: 1
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
timeout-minutes: 10
uses: ./.github/actions/setup-node
- name: Setup Maker
timeout-minutes: 10
uses: ./.github/actions/setup-maker
with:
extra-flags: workspaces focus @affine/electron @affine/monorepo
hard-link-nm: false
build-plugins: false
nmHoistingLimits: workspaces
enableScripts: false
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
@@ -117,10 +114,7 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: core
path: apps/electron/resources/web-static
- name: Build Plugins
run: yarn run build:plugins
path: packages/frontend/electron/resources/web-static
- name: Build Desktop Layers
run: yarn workspace @affine/electron build
@@ -134,19 +128,23 @@ jobs:
- name: make
run: yarn workspace @affine/electron make --platform=${{ matrix.spec.platform }} --arch=${{ matrix.spec.arch }}
env:
SKIP_PLUGIN_BUILD: 1
SKIP_WEB_BUILD: 1
HOIST_NODE_MODULES: 1
- name: Save artifacts (mac)
if: ${{ matrix.spec.platform == 'darwin' }}
run: |
mkdir -p builds
mv apps/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
mv apps/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
mv packages/frontend/electron/out/*/make/*.dmg ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.dmg
mv packages/frontend/electron/out/*/make/zip/darwin/${{ matrix.spec.arch }}/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-macos-${{ matrix.spec.arch }}.zip
- name: Save artifacts (linux)
if: ${{ matrix.spec.platform == 'linux' }}
run: |
mkdir -p builds
mv apps/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
mv apps/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
mv packages/frontend/electron/out/*/make/zip/linux/x64/*.zip ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.zip
mv packages/frontend/electron/out/*/make/AppImage/x64/*.AppImage ./builds/affine-${{ env.BUILD_TYPE }}-linux-x64.AppImage
- name: Upload Artifact
uses: actions/upload-artifact@v3
@@ -155,7 +153,6 @@ jobs:
path: builds
package-distribution-windows:
environment: production
strategy:
# all combinations: macos-latest x64, macos-latest arm64, ubuntu-latest x64
# For windows, we need a separate approach
@@ -172,13 +169,18 @@ jobs:
env:
SKIP_GENERATE_ASSETS: 1
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Version
id: version
uses: ./.github/actions/setup-version
- name: Setup Node.js
timeout-minutes: 10
uses: ./.github/actions/setup-node
- name: Setup Maker
timeout-minutes: 10
uses: ./.github/actions/setup-maker
with:
extra-flags: workspaces focus @affine/electron @affine/monorepo
hard-link-nm: false
build-plugins: false
nmHoistingLimits: workspaces
- name: Build AFFiNE native
uses: ./.github/actions/build-rust
with:
@@ -188,7 +190,7 @@ jobs:
- uses: actions/download-artifact@v3
with:
name: core
path: apps/electron/resources/web-static
path: packages/frontend/electron/resources/web-static
- name: Build Plugins
run: yarn run build:plugins
@@ -198,16 +200,20 @@ jobs:
- name: package
run: yarn workspace @affine/electron package --platform=${{ matrix.spec.platform }} --arch=${{ matrix.spec.arch }}
env:
SKIP_PLUGIN_BUILD: 1
SKIP_WEB_BUILD: 1
HOIST_NODE_MODULES: 1
- name: get all files to be signed
id: get_files_to_be_signed
run: |
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path apps/electron/out -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\apps\electron\out\', '') + '"' }) -join ' ')
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path packages/frontend/electron/out -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\packages\frontend\electron\out\', '') + '"' }) -join ' ')
"FILES_TO_BE_SIGNED=$FILES_TO_BE_SIGNED" >> $env:GITHUB_OUTPUT
echo $FILES_TO_BE_SIGNED
- name: Zip artifacts for faster upload
run: Compress-Archive -CompressionLevel Fastest -Path apps/electron/out/* -DestinationPath archive.zip
run: Compress-Archive -CompressionLevel Fastest -Path packages/frontend/electron/out/* -DestinationPath archive.zip
- name: Save packaged artifacts for signing
uses: actions/upload-artifact@v3
@@ -225,7 +231,6 @@ jobs:
artifact-name: packaged-win32-x64
make-windows-installer:
environment: production
needs: sign-packaged-artifacts-windows
strategy:
# all combinations: macos-latest x64, macos-latest arm64, ubuntu-latest x64
@@ -240,7 +245,7 @@ jobs:
outputs:
FILES_TO_BE_SIGNED: ${{ steps.get_files_to_be_signed.outputs.FILES_TO_BE_SIGNED }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- name: Setup Node.js
timeout-minutes: 10
uses: ./.github/actions/setup-node
@@ -250,18 +255,18 @@ jobs:
name: signed-packaged-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}
path: .
- name: unzip file
run: Expand-Archive -Path signed.zip -DestinationPath apps/electron/out
run: Expand-Archive -Path signed.zip -DestinationPath packages/frontend/electron/out
- name: Make squirrel.windows installer
run: yarn workspace @affine/electron make-squirrel --platform=${{ matrix.spec.platform }} --arch=${{ matrix.spec.arch }}
- name: Zip artifacts for faster upload
run: Compress-Archive -CompressionLevel Fastest -Path apps/electron/out/${{ env.BUILD_TYPE }}/make/* -DestinationPath archive.zip
run: Compress-Archive -CompressionLevel Fastest -Path packages/frontend/electron/out/${{ env.BUILD_TYPE }}/make/* -DestinationPath archive.zip
- name: get all files to be signed
id: get_files_to_be_signed
run: |
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path apps/electron/out/${{ env.BUILD_TYPE }}/make -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\apps\electron\out\${{ env.BUILD_TYPE }}\make\', '') + '"' }) -join ' ')
Set-Variable -Name FILES_TO_BE_SIGNED -Value ((Get-ChildItem -Path packages/frontend/electron/out/${{ env.BUILD_TYPE }}/make -Recurse -File | Where-Object { $_.Extension -in @(".exe", ".node", ".dll", ".msi") } | ForEach-Object { '"' + $_.FullName.Replace((Get-Location).Path + '\packages\frontend\electron\out\${{ env.BUILD_TYPE }}\make\', '') + '"' }) -join ' ')
"FILES_TO_BE_SIGNED=$FILES_TO_BE_SIGNED" >> $env:GITHUB_OUTPUT
echo $FILES_TO_BE_SIGNED
@@ -279,7 +284,6 @@ jobs:
artifact-name: installer-win32-x64
finalize-installer-windows:
environment: production
needs: sign-installer-artifacts-windows
strategy:
# all combinations: macos-latest x64, macos-latest arm64, ubuntu-latest x64
@@ -298,14 +302,14 @@ jobs:
name: signed-installer-${{ matrix.spec.platform }}-${{ matrix.spec.arch }}
path: .
- name: unzip file
run: Expand-Archive -Path signed.zip -DestinationPath apps/electron/out/${{ env.BUILD_TYPE }}/make
run: Expand-Archive -Path signed.zip -DestinationPath packages/frontend/electron/out/${{ env.BUILD_TYPE }}/make
- name: Save artifacts
run: |
mkdir -p builds
mv apps/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
mv apps/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
mv apps/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
mv packages/frontend/electron/out/*/make/zip/win32/x64/AFFiNE*-win32-x64-*.zip ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.zip
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.exe ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.exe
mv packages/frontend/electron/out/*/make/squirrel.windows/x64/*.msi ./builds/affine-${{ env.BUILD_TYPE }}-windows-x64.msi
- name: Upload Artifact
uses: actions/upload-artifact@v3
@@ -318,7 +322,13 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
- uses: actions/download-artifact@v3
with:
name: core
path: web-static
- name: Zip web-static
run: zip -r web-static.zip web-static
- name: Download Artifacts (macos-x64)
uses: actions/download-artifact@v3
with:
@@ -339,24 +349,21 @@ jobs:
with:
name: affine-linux-x64-builds
path: ./
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Generate Release yml
run: |
cp ./apps/electron/scripts/generate-yml.js .
node generate-yml.js
node ./packages/frontend/electron/scripts/generate-yml.js
env:
RELEASE_VERSION: ${{ github.event.inputs.version || needs.before-make.outputs.RELEASE_VERSION }}
RELEASE_VERSION: ${{ needs.before-make.outputs.RELEASE_VERSION }}
- name: Create Release Draft
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_TOKEN }}
with:
name: ${{ github.event.inputs.version || needs.before-make.outputs.RELEASE_VERSION }}
name: ${{ needs.before-make.outputs.RELEASE_VERSION }}
body: ''
draft: ${{ github.event.inputs.is-draft || true }}
prerelease: ${{ github.event.inputs.is-pre-release || needs.before-make.outputs.version }}
draft: ${{ github.event.inputs.is-draft }}
prerelease: ${{ github.event.inputs.is-pre-release }}
files: |
./VERSION
./*.zip

View File

@@ -1,165 +0,0 @@
name: Release
on:
push:
branches:
- master
env:
BUILD_TYPE: stable
APP_NAME: affine
COVERAGE: false
DISTRIBUTION: browser
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
jobs:
release:
name: Try publishing npm@latest release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Try publishing to NPM
run: ./scripts/publish.sh
env:
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
build-core:
name: Build @affine/core
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Build Plugins
run: yarn run build:plugins
- name: Build Core
run: yarn nx build @affine/core
- name: Upload core artifact
uses: actions/upload-artifact@v3
with:
name: core
path: ./apps/core/dist
if-no-files-found: error
build-server:
name: Build Server
runs-on: ubuntu-latest
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
with:
electron-install: false
- name: Build Server
run: yarn nx build @affine/server
- name: Upload server dist
uses: actions/upload-artifact@v3
with:
name: server-dist
path: ./apps/server/dist
if-no-files-found: error
build-storage:
name: Build Storage
runs-on: ubuntu-latest
env:
RUSTFLAGS: '-C debuginfo=1'
environment: development
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: ./.github/actions/setup-node
- name: Setup Rust
uses: ./.github/actions/build-rust
with:
target: 'x86_64-unknown-linux-gnu'
package: '@affine/storage'
nx_token: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
- name: Upload storage.node
uses: actions/upload-artifact@v3
with:
name: storage.node
path: ./packages/storage/storage.node
if-no-files-found: error
build-docker:
if: github.ref == 'refs/heads/master'
name: Build Docker
runs-on: ubuntu-latest
needs:
- build-server
- build-core
- build-storage
steps:
- uses: actions/checkout@v3
- name: Download core artifact
uses: actions/download-artifact@v3
with:
name: core
path: ./apps/core/dist
- name: Download server dist
uses: actions/download-artifact@v3
with:
name: server-dist
path: ./apps/server/dist
- name: Download storage.node
uses: actions/download-artifact@v3
with:
name: storage.node
path: ./apps/server
- name: Setup Git short hash
run: |
echo "GIT_SHORT_HASH=$(git rev-parse --short HEAD)" >> "$GITHUB_ENV"
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
logout: false
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Build front Dockerfile
uses: docker/build-push-action@v4
with:
context: .
push: true
pull: true
platforms: linux/amd64,linux/arm64
provenance: true
file: .github/deployment/front/Dockerfile
tags: ghcr.io/toeverything/affine-front:${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-front:latest
# setup node without cache configuration
# Prisma cache is not compatible with docker build cache
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
registry-url: https://npm.pkg.github.com
scope: '@toeverything'
- name: Install Node.js dependencies
run: yarn workspaces focus @affine/server --production
- name: Generate Prisma client
run: yarn workspace @affine/server prisma generate
- name: Build graphql Dockerfile
uses: docker/build-push-action@v4
with:
context: .
push: true
pull: true
platforms: linux/amd64,linux/arm64
provenance: true
file: .github/deployment/node/Dockerfile
tags: ghcr.io/toeverything/affine-graphql:${{ env.GIT_SHORT_HASH }},ghcr.io/toeverything/affine-graphql:latest

View File

@@ -3,20 +3,21 @@ name: Deploy Cloudflare Worker
on:
push:
branches:
- master
- canary
paths:
- packages/workers/**
- tools/workers/**
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
environment: production
environment: stable
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: Publish
uses: cloudflare/wrangler-action@2.0.0
uses: cloudflare/wrangler-action@v3.3.2
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}
workingDirectory: 'packages/workers'
workingDirectory: 'tools/workers'
packageManager: 'yarn'

1
.gitignore vendored
View File

@@ -78,3 +78,4 @@ tsconfig.node.tsbuildinfo
lib
affine.db
apps/web/next-routes.conf
.nx

View File

@@ -1,23 +1,4 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
# check lockfile is up to date
yarn install --mode=skip-build --inline-builds --immutable
# build infra code
yarn -T run build:infra
# generate prisma client type
yarn workspace @affine/server prisma generate
# generate i18n
yarn i18n-codegen gen
# lint staged files
yarn exec lint-staged
# type check
yarn typecheck
# circular dependency check
yarn circular
yarn lint-staged && yarn lint:ox

View File

@@ -3,8 +3,8 @@
"version": 1,
"list": [
{
"input": "./packages/i18n/src/resources/en.json",
"output": "./packages/i18n/src/i18n-generated",
"input": "./packages/frontend/i18n/src/resources/en.json",
"output": "./packages/frontend/i18n/src/i18n-generated",
"parser": {
"type": "i18next",
"contextSeparator": "$",

View File

@@ -2,16 +2,23 @@ yarn.lock
target
lib
test-results
packages/i18n/src/i18n-generated.ts
packages/graphql/src/graphql/index.ts
.next
out
dist
.yarn
tests/affine-legacy/**/static
.github/helm
_next
storybook-static
web-static
public
apps/server/src/schema.gql
packages/backend/server/src/schema.gql
packages/frontend/i18n/src/i18n-generated.ts
packages/frontend/graphql/src/graphql/index.ts
tests/affine-legacy/**/static
.yarnrc.yml
# auto-generated by NAPI-RS
# fixme(@joooye34): need script to check and generate ignore list here
packages/backend/storage/index.d.ts
packages/frontend/native/index.d.ts
packages/frontend/native/index.js

View File

@@ -29,15 +29,7 @@
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"vitest.include": [
"packages/**/*.spec.ts",
"packages/**/*.spec.tsx",
"apps/web/**/*.spec.ts",
"apps/web/**/*.spec.tsx",
"apps/electron/src/**/*.spec.ts",
"tests/unit/**/*.spec.ts",
"tests/unit/**/*.spec.tsx"
],
"vitest.include": ["packages/**/*.spec.ts", "packages/**/*.spec.tsx"],
"rust-analyzer.check.extraEnv": {
"DATABASE_URL": "sqlite:affine.db"
}

View File

@@ -0,0 +1,15 @@
diff --git a/package.json b/package.json
index ca30bca63196b923fa5a27eb85ce2ee890222d36..39e9d08dea40f25568a39bfbc0154458d32c8a66 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,10 @@
"types": "./index.d.ts",
"default": "./index.js"
},
+ "./core": {
+ "types": "./core/index.d.ts",
+ "default": "./core/index.js"
+ },
"./adapters": {
"types": "./adapters.d.ts"
},

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

893
.yarn/releases/yarn-4.0.2.cjs vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -1,19 +1,15 @@
compressionLevel: mixed
enableGlobalCache: true
nmMode: hardlinks-local
nodeLinker: node-modules
npmAuthToken: '${NPM_TOKEN:-NONE}'
npmAuthToken: "${NPM_TOKEN:-NONE}"
npmPublishAccess: public
npmPublishRegistry: 'https://registry.npmjs.org'
npmPublishRegistry: "https://registry.npmjs.org"
plugins:
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
spec: '@yarnpkg/plugin-interactive-tools'
- path: .yarn/plugins/@yarnpkg/plugin-version.cjs
spec: '@yarnpkg/plugin-version'
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
spec: '@yarnpkg/plugin-workspace-tools'
yarnPath: .yarn/releases/yarn-3.6.3.cjs
yarnPath: .yarn/releases/yarn-4.0.2.cjs

742
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
[workspace]
resolver = "2"
members = [
"./packages/native",
"./packages/native/schema",
"./packages/storage",
"./packages/frontend/native",
"./packages/frontend/native/schema",
"./packages/backend/storage",
]
[profile.dev.package.sqlx-macros]

View File

@@ -2,7 +2,7 @@ Copyright (c) 2022-present TOEVERYTHING PTE. LTD. and its affiliates.
Portions of this software are licensed as follows:
- All content that resides under the "apps/server" directory of this repository, if that directory exists, is licensed under the license defined in "apps/server/LICENSE".
- All content that resides under the "packages/backend/server" directory of this repository, if that directory exists, is licensed under the license defined in "packages/backend/server/LICENSE".
- All third party components incorporated into the AFFiNE Software are licensed under the original license provided by the owner of the applicable component.
- Content outside of the above mentioned directories or restrictions above is available under the "MIT" license as defined in "LICENSE-MIT".

View File

@@ -107,12 +107,11 @@ If you have questions, you are welcome to contact us. One of the best places to
## Ecosystem
| Name | | |
| ----------------------------------------------------------------------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [@toeverything/component](https://github.com/toeverything/design/tree/main/packages/components) | Toeverything Shared Component Resources | |
| [@affine/component](packages/component) | AFFiNE Component Resources | [![](https://img.shields.io/codecov/c/github/toeverything/affine?style=flat-square)](https://affine-storybook.vercel.app/) |
| [@toeverything/y-indexeddb](packages/y-indexeddb) | IndexedDB database adapter for Yjs | [![](https://img.shields.io/npm/dm/@toeverything/y-indexeddb?style=flat-square&color=eee)](https://www.npmjs.com/package/@toeverything/y-indexeddb) |
| [@toeverything/theme](packages/theme) | AFFiNE theme | [![](https://img.shields.io/npm/dm/@toeverything/theme?style=flat-square&color=eee)](https://www.npmjs.com/package/@toeverything/theme) |
| Name | | |
| -------------------------------------------------------- | ---------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [@affine/component](packages/frontend/component) | AFFiNE Component Resources | [![](https://img.shields.io/codecov/c/github/toeverything/affine?style=flat-square)](https://affine-storybook.vercel.app/) |
| [@toeverything/y-indexeddb](packages/common/y-indexeddb) | IndexedDB database adapter for Yjs | [![](https://img.shields.io/npm/dm/@toeverything/y-indexeddb?style=flat-square&color=eee)](https://www.npmjs.com/package/@toeverything/y-indexeddb) |
| [@toeverything/theme](packages/common/theme) | AFFiNE theme | [![](https://img.shields.io/npm/dm/@toeverything/theme?style=flat-square&color=eee)](https://www.npmjs.com/package/@toeverything/theme) |
## Plugins
@@ -120,15 +119,14 @@ If you have questions, you are welcome to contact us. One of the best places to
>
> (Currently, the plugin system is under heavy development. You will see the plugin system in the canary release.)
- [@affine/sdk](./packages/sdk) - SDK for developing plugins
- [@affine/plugin-cli](./packages/plugin-cli) - CLI for developing plugins
- [@affine/sdk](./packages/common/sdk) - SDK for developing plugins
- [@affine/plugin-cli](./tools/plugin-cli) - CLI for developing plugins
| Official Plugin | Description | Status |
| ----------------------------------------------------- | ----------------------------------------- | ------ |
| [@affine/bookmark-plugin](plugins/bookmark) | A block for bookmarking a website | |
| [@affine/copilot-plugin](plugins/copilot) | AI Copilot that help you document writing | 🚧 |
| [@affine/image-preview-plugin](plugins/image-preview) | Component for previewing an image | ✅ |
| [@affine/outline](plugins/outline) | Outline for your document | ✅ |
| Official Plugin | Description | Status |
| ---------------------------------------------------------------- | ----------------------------------------- | ------ |
| [@affine/copilot-plugin](./packages/plugins/copilot) | AI Copilot that help you document writing | 🚧 |
| [@affine/image-preview-plugin](./packages/plugins/image-preview) | Component for previewing an image | |
| [@affine/outline](./packages/plugins/outline) | Outline for your document | ✅ |
## Upstreams
@@ -147,18 +145,7 @@ We would also like to give thanks to open-source projects that make AFFiNE possi
Thanks a lot to the community for providing such powerful and simple libraries, so that we can focus more on the implementation of the product logic, and we hope that in the future our projects will also provide a more easy-to-use knowledge base for everyone.
# Contributors
## Current Core members
Team members who are currently maintaining the project:
- [JimmFly](https://github.com/JimmFly) - Jinfei Yang <yangjinfei001@gmail.com> (he/him)
- [pengx17](https://github.com/pengx17) - Peng Xiao <pengxiao@outlook.com> (he/him)
- [QiShaoXuan](https://github.com/QiSHaoXuan) - Shaoxuan Qi <qishaoxuan777@gmail.com> (he/him)
- [himself65](https://github.com/himself65) - Zeyu "Alex" Yang <himself65@outlook.com> (he/him)
## All Contributors
## Contributors
We would like to express our gratitude to all the individuals who have already contributed to AFFiNE! If you have any AFFiNE-related project, documentation, tool or template, please feel free to contribute it by submitting a pull request to our curated list on GitHub: [awesome-affine](https://github.com/toeverything/awesome-affine).
@@ -207,6 +194,13 @@ For feature request, please see [community.affine.pro](https://community.affine.
## Building
### Codespaces
From the GitHub repo main page, click the green "Code" button and select "Create codespace on master". This will open a new Codespace with the (supposedly auto-forked
AFFiNE repo cloned, built, and ready to go.
### Local
See [BUILDING.md] for instructions on how to build AFFiNE from source code.
## Contributing
@@ -232,11 +226,11 @@ See [LICENSE] for details.
[update page]: https://affine.pro/blog?tag=Release%20Note
[jobs available]: ./docs/jobs.md
[latest packages]: https://github.com/toeverything/AFFiNE/pkgs/container/affine-self-hosted
[contributor license agreement]: https://github.com/toeverything/affine/edit/master/.github/CLA.md
[rust-version-icon]: https://img.shields.io/badge/Rust-1.71.0-dea584
[contributor license agreement]: https://github.com/toeverything/affine/edit/canary/.github/CLA.md
[rust-version-icon]: https://img.shields.io/badge/Rust-1.74.1-dea584
[stars-icon]: https://img.shields.io/github/stars/toeverything/AFFiNE.svg?style=flat&logo=github&colorB=red&label=stars
[codecov]: https://codecov.io/gh/toeverything/affine/branch/master/graphs/badge.svg?branch=master
[codecov]: https://codecov.io/gh/toeverything/affine/branch/canary/graphs/badge.svg?branch=canary
[node-version-icon]: https://img.shields.io/badge/node-%3E=18.16.1-success
[typescript-version-icon]: https://img.shields.io/github/package-json/dependency-version/toeverything/affine/dev/typescript
[react-version-icon]: https://img.shields.io/github/package-json/dependency-version/toeverything/AFFiNE/react?filename=apps%2Fcore%2Fpackage.json&color=rgb(97%2C228%2C251)
[blocksuite-icon]: https://img.shields.io/github/package-json/dependency-version/toeverything/AFFiNE/@blocksuite/store?color=6880ff&filename=apps%2Fcore%2Fpackage.json&label=blocksuite
[react-version-icon]: https://img.shields.io/github/package-json/dependency-version/toeverything/AFFiNE/react?filename=packages%2Ffrontend%2Fcore%2Fpackage.json&color=rgb(97%2C228%2C251)
[blocksuite-icon]: https://img.shields.io/github/package-json/dependency-version/toeverything/AFFiNE/@blocksuite/store?color=6880ff&filename=packages%2Ffrontend%2Fcore%2Fpackage.json&label=blocksuite

View File

@@ -1,29 +0,0 @@
# Apps structure
> This is the structure of the `apps` directory.
## docs
AFFiNE Developer Documentation using [waku](https://github.com/dai-shi/waku).
## electron
> `core` needs to be built before electron.
AFFiNE Desktop (macOS, Linux and Windows Distribution) using [Electron](https://www.electronjs.org/).
## server
Server using [Nest.js](https://nestjs.com/).
## storybook
Storybook using [Storybook](https://storybook.js.org/).
## prototype
AFFiNE Prototype using [React.js](https://reactjs.org/) + [Vite](https://vitejs.dev/).
## core
AFFiNE Core Application using [React.js](https://reactjs.org/) + [Webpack](https://webpack.js.org/).

View File

@@ -1,12 +0,0 @@
import type { BuildFlags } from '@affine/cli/config';
export function computeCacheKey(buildFlags: BuildFlags) {
return [
'1',
'node' + process.version,
buildFlags.mode,
buildFlags.distribution,
buildFlags.channel,
...(buildFlags.localBlockSuite ? [buildFlags.localBlockSuite] : []),
].join('-');
}

View File

@@ -1,96 +0,0 @@
{
"name": "@affine/core",
"type": "module",
"private": true,
"version": "0.9.0-canary.13",
"scripts": {
"build": "yarn -T run build-core",
"dev": "yarn -T run dev-core",
"static-server": "yarn -T run dev-core --static"
},
"exports": {
"./app": "./src/app.tsx",
"./router": "./src/router.ts",
"./bootstrap/setup": "./src/bootstrap/setup.ts",
"./bootstrap/register-plugins": "./src/bootstrap/register-plugins.ts"
},
"dependencies": {
"@affine-test/fixtures": "workspace:*",
"@affine/component": "workspace:*",
"@affine/debug": "workspace:*",
"@affine/env": "workspace:*",
"@affine/graphql": "workspace:*",
"@affine/i18n": "workspace:*",
"@affine/templates": "workspace:*",
"@affine/workspace": "workspace:*",
"@blocksuite/block-std": "0.0.0-20230921103931-38d8f07a-nightly",
"@blocksuite/blocks": "0.0.0-20230921103931-38d8f07a-nightly",
"@blocksuite/editor": "0.0.0-20230921103931-38d8f07a-nightly",
"@blocksuite/global": "0.0.0-20230921103931-38d8f07a-nightly",
"@blocksuite/icons": "^2.1.33",
"@blocksuite/lit": "0.0.0-20230921103931-38d8f07a-nightly",
"@blocksuite/store": "0.0.0-20230921103931-38d8f07a-nightly",
"@dnd-kit/core": "^6.0.8",
"@dnd-kit/sortable": "^7.0.2",
"@emotion/cache": "^11.11.0",
"@emotion/react": "^11.11.1",
"@emotion/server": "^11.11.0",
"@emotion/styled": "^11.11.0",
"@mui/material": "^5.14.7",
"@radix-ui/react-select": "^1.2.2",
"@react-hookz/web": "^23.1.0",
"@toeverything/components": "^0.0.42",
"async-call-rpc": "^6.3.1",
"cmdk": "^0.2.0",
"css-spring": "^4.1.0",
"cssnano": "^6.0.1",
"graphql": "^16.8.0",
"intl-segmenter-polyfill-rs": "^0.1.6",
"jotai": "^2.4.1",
"jotai-devtools": "^0.6.2",
"lit": "^2.8.0",
"lottie-web": "^5.12.2",
"mini-css-extract-plugin": "^2.7.6",
"next-auth": "^4.22.1",
"next-themes": "^0.2.1",
"postcss-loader": "^7.3.3",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-is": "18.2.0",
"react-resizable-panels": "^0.0.55",
"react-router-dom": "^6.15.0",
"rxjs": "^7.8.1",
"ses": "^0.18.8",
"swr": "2.2.0",
"valtio": "^1.11.2",
"y-protocols": "^1.0.5",
"yjs": "^13.6.8",
"zod": "^3.22.2"
},
"devDependencies": {
"@aws-sdk/client-s3": "3.400.0",
"@perfsee/webpack": "^1.8.4",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.11",
"@sentry/webpack-plugin": "^2.7.0",
"@svgr/webpack": "^8.1.0",
"@swc/core": "^1.3.81",
"@types/lodash-es": "^4.17.9",
"@types/webpack-env": "^1.18.1",
"copy-webpack-plugin": "^11.0.0",
"css-loader": "^6.8.1",
"express": "^4.18.2",
"html-webpack-plugin": "^5.5.3",
"lodash-es": "^4.17.21",
"mime-types": "^2.1.35",
"raw-loader": "^4.0.2",
"source-map-loader": "^4.0.1",
"style-loader": "^3.3.3",
"swc-loader": "^0.2.3",
"swc-plugin-coverage-instrument": "^0.0.20",
"thread-loader": "^4.0.2",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4",
"webpack-dev-server": "^4.15.1",
"webpack-merge": "^5.9.0"
}
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

View File

@@ -1,93 +0,0 @@
import { PageNotFoundError } from '@affine/env/constant';
import type {
WorkspaceFlavour,
WorkspaceUISchema,
} from '@affine/env/workspace';
import { initEmptyPage } from '@toeverything/infra/blocksuite';
import { lazy, useCallback } from 'react';
import type { OnLoadEditor } from '../../components/page-detail-editor';
import { useCurrentUser } from '../../hooks/affine/use-current-user';
import { useIsWorkspaceOwner } from '../../hooks/affine/use-is-workspace-owner';
import { useWorkspace } from '../../hooks/use-workspace';
import {
BlockSuitePageList,
NewWorkspaceSettingDetail,
PageDetailEditor,
Provider,
WorkspaceHeader,
} from '../shared';
const LoginCard = lazy(() =>
import('../../components/cloud/login-card').then(({ LoginCard }) => ({
default: LoginCard,
}))
);
export const UI = {
Provider,
LoginCard,
Header: WorkspaceHeader,
PageDetail: ({ currentWorkspaceId, currentPageId, onLoadEditor }) => {
const workspace = useWorkspace(currentWorkspaceId);
const page = workspace.blockSuiteWorkspace.getPage(currentPageId);
if (!page) {
throw new PageNotFoundError(workspace.blockSuiteWorkspace, currentPageId);
}
// this should be safe because we are under cloud workspace adapter
const currentUser = useCurrentUser();
const onLoad = useCallback<OnLoadEditor>(
(...args) => {
const dispose = onLoadEditor(...args);
workspace.blockSuiteWorkspace.awarenessStore.awareness.setLocalStateField(
'user',
{
name: currentUser.name,
}
);
return dispose;
},
[currentUser, workspace, onLoadEditor]
);
return (
<>
<PageDetailEditor
pageId={currentPageId}
onInit={useCallback(async page => initEmptyPage(page), [])}
onLoad={onLoad}
workspace={workspace.blockSuiteWorkspace}
/>
</>
);
},
PageList: ({ blockSuiteWorkspace, onOpenPage, collection }) => {
return (
<BlockSuitePageList
listType="all"
collection={collection}
onOpenPage={onOpenPage}
blockSuiteWorkspace={blockSuiteWorkspace}
/>
);
},
NewSettingsDetail: ({
currentWorkspaceId,
onTransformWorkspace,
onDeleteLocalWorkspace,
onDeleteCloudWorkspace,
onLeaveWorkspace,
}) => {
const isOwner = useIsWorkspaceOwner(currentWorkspaceId);
return (
<NewWorkspaceSettingDetail
onDeleteLocalWorkspace={onDeleteLocalWorkspace}
onDeleteCloudWorkspace={onDeleteCloudWorkspace}
onLeaveWorkspace={onLeaveWorkspace}
workspaceId={currentWorkspaceId}
onTransferWorkspace={onTransformWorkspace}
isOwner={isOwner}
/>
);
},
} satisfies WorkspaceUISchema<WorkspaceFlavour.AFFINE_CLOUD>;

Some files were not shown because too many files have changed in this diff Show More