Commit Graph

37 Commits

Author SHA1 Message Date
liuyi
bef266ae3b
refactor(server): reorganize server configs (#5753) 2024-02-02 08:32:07 +00:00
Joooye_34
338c3001b0
feat: support sign-in with subscription coupon (#5768) 2024-02-01 08:43:47 +00:00
Yifeng Wang
fec2090de5
feat: bump blocksuite (#5767)
Co-authored-by: LongYinan <lynweklm@gmail.com>
2024-02-01 16:28:22 +08:00
liuyi
26db1d436d
refactor(server): server errors (#5741)
standardize the error raising in both GraphQL Resolvers and Controllers.

Now, All user aware errors should be throwed with `HttpException`'s variants, for example `NotFoundException`.

> Directly throwing `GraphQLError` are forbidden.
The GraphQL errorFormatter will handle it automatically and set `code`, `status` in error extensions.

At the same time, the frontend `GraphQLError` should be imported from `@affine/graphql`, which introduce a better error extensions type.

----
controller example:
```js
@Get('/docs/${id}')
doc() {
  // ...
  // imported from '@nestjs/common'
  throw new NotFoundException('Doc is not found.');
  // ...
}
```
the above will response as:
```
status: 404 Not Found
{
  "message": "Doc is not found.",
  "statusCode": 404,
  "error": "Not Found"
}
```

resolver example:
```js
@Mutation()
invite() {
  // ...
  throw new PayloadTooLargeException('Workspace seats is full.')
  // ...
}
```

the above will response as:
```
status: 200 Ok
{
  "data": null,
  "errors": [
    {
      "message": "Workspace seats is full.",
      "extensions": {
        "code": 404,
        "status": "Not Found"
      }
    }
  ]
}
```

for frontend GraphQLError user-friend, a helper function introduced:

```js
import { findGraphQLError } from '@affine/graphql'

fetch(query)
  .catch(errOrArr => {
    const e = findGraphQLError(errOrArr, e => e.extensions.code === 404)
    if (e) {
      // handle
    }
})
```
2024-01-31 08:43:03 +00:00
DarkSky
070d5ca471
feat: impl unlimited features (#5659) 2024-01-26 08:28:54 +00:00
JimmFly
25897dc404
feat(workspace): add blob and storage limit (#5535)
close TOV-343 AFF-508 TOV-461 TOV-460 TOV-419

Add `isOverCapacity ` status to detect if blob usage exceeds limits.
Add `onCapacityChange` and `onBlobSet` to monitor if the storage or blob exceeds the capacity limit.
Global modals `LocalQuotaModal` and `CloudQuotaModal` have been added, with the upload size of the blob being limited within the modal components.
The notification component has been adjusted, now you can pass in `action` click events and `actionLabel` .
2024-01-24 07:34:51 +00:00
liuyi
e516e0db23
refactor(server): plugin modules (#5630)
- [x] separates modules into `fundamental`, `core`, `plugins`
- [x] optional modules with `@OptionalModule` decorator to install modules with requirements met(`requires`, `if`)
- [x] `module.contributesTo` defines optional features that will be enabled if module registered
- [x] `AFFiNE.plugins.use('payment', {})` to enable a optional/plugin module
- [x] `PaymentModule` is the first plugin module
- [x] GraphQLSchema will not be generated for non-included modules
- [x] Frontend can use `ServerConfigType` query to detect which features are enabled
- [x] override existing provider globally
2024-01-22 07:40:28 +00:00
Peng Xiao
9a944048e8
feat(core): experimental features ui (#5338)
fix TOV-280

experimental features ui
- enabled in the workspace settings for a cloud workspace; only show for workspace owner + early access
- a disclaimer prompt will be shown before going to the next feature setting page
- for now only show the ai poc switch, which controls the display of the ai tab in editor's sidepanel
2024-01-18 07:53:15 +00:00
DarkSky
ee8ec47a4f
feat: use SafeInt replace Float (#5613) 2024-01-17 12:36:21 +00:00
DarkSky
ee2520ec18
feat: add query quota of workspace (#5603) 2024-01-16 09:45:55 +00:00
liuyi
4c49b62ab7
fix(server): node imports order (#5583) 2024-01-14 05:47:56 +00:00
DarkSky
443908da22
feat: add workspace experimental features api (#5525) 2024-01-06 11:04:49 +00:00
DarkSky
f6ec786ef9
feat: add workspace level feature apis (#5503) 2024-01-05 04:13:49 +00:00
DarkSky
3082d63948
fix: use absolute path in gql client (#5454) 2023-12-29 06:48:04 +00:00
EYHN
0b9cd00fd3
refactor(core): adjust graphql hook (#5339) 2023-12-28 07:43:25 +00:00
DarkSky
aa4d42b36c
feat: use baseurl from server config (#5369) 2023-12-21 12:52:38 +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
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
liuyi
e0cada49f5
refactor(server): do not force init binary when creating workspace (#5146) 2023-12-06 08:35:48 +00:00
LongYinan
7a7cbc45d7
fix: add prefer-readonly rule (#5122) 2023-11-29 15:19:00 +08: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
45690c2756
fix: add no-useless-promise-resolve-reject rule (#5111) 2023-11-29 04:43:47 +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
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
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
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
liuyi
f491ff94cc
refactor(server): separate page visibility from workspace permission (#4836) 2023-11-06 03:49:39 +00:00
Cats Juice
93e286177f
feat(core): billing history pagination (#4787) 2023-10-31 09:47:59 +00:00
DarkSky
de9e7f97a4
feat: add idempotent request support for payment apis (#4753) 2023-10-30 05:54:09 +00: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
Joooye_34
bed9310519
refactor(infra): directory structure (#4615) 2023-10-18 15:30:08 +00:00