From b249939093e46835f79400b84ed95f445b5c20eb Mon Sep 17 00:00:00 2001
From: renovate <29139614+renovate@users.noreply.github.com>
Date: Tue, 15 Apr 2025 09:05:00 +0000
Subject: [PATCH] chore: bump up prisma monorepo to v6 (major) (#8964)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR contains the following updates:
| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@prisma/client](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/client)) | [`^5.22.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/@prisma%2fclient/5.22.0/6.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
| [@prisma/instrumentation](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/instrumentation)) | [`^5.22.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/@prisma%2finstrumentation/5.22.0/6.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
| [prisma](https://www.prisma.io) ([source](https://redirect.github.com/prisma/prisma/tree/HEAD/packages/cli)) | [`^5.22.0` -> `^6.0.0`](https://renovatebot.com/diffs/npm/prisma/5.22.0/6.0.1) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) | [](https://docs.renovatebot.com/merge-confidence/) |
---
### Release Notes
prisma/prisma (@prisma/client)
### [`v6.0.1`](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)
### [`v6.0.0`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.0)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.22.0...6.0.0)
We’re excited to share the Prisma ORM v6 release today 🎉
As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6) to understand the impact on your application.
If you want to have an overview of what we accomplished since v5, check out our announcement blog post: [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](https://www.prisma.io/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql).
🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v6.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/6.0.0) about the release.**
##### Breaking changes
⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️
##### Minimum supported Node.js versions
The new minimum supported Node.js versions for Prisma ORM v6 are:
- for Node.js 18 the minimum supported version is **18.18.0**
- for Node.js 20 the minimum supported version is **20.9.0**
- for Node.js 22 the minimum supported version is **22.11.0**
There is no official support for Node.js <18.18.0, 19, 21, 23.
##### Minimum supported TypeScript version
The new minimum supported TypeScript version for Prisma ORM v6 is: **5.1.0**.
##### Schema change for implicit m-n relations on PostgreSQL
If you're using PostgreSQL and are defining [implicit many-to-many relations](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#implicit-many-to-many-relations) in your Prisma schema, Prisma ORM maintains the [relation table](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#relation-tables) for you under the hood. This relation table has `A` and `B` columns to represent the tables of the models that are part of this relation.
Previous versions of Prisma ORM used to create a *unique index* on these two columns. In Prisma v6, this unique index is changing to a *primary key* in order to [simplify for the default replica identity behaviour](https://redirect.github.com/prisma/prisma/issues/25196).
If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain `ALTER TABLE` statements for *all* the relation tables that belong to these relations.
##### Full-text search on PostgreSQL
The `fullTextSearch` Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new `fullTextSearchPostgres` Preview feature.
##### Usage of `Buffer`
Prisma v6 replaces the usage of [`Buffer`](https://nodejs.org/api/buffer.html) with [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to represent fields of type `Bytes`. Make sure to replace all your occurrences of the `Buffer` type with the new `Uint8Array`.
##### Removed `NotFoundError`
In Prisma v6, we removed the `NotFoundError` in favor of `PrismaClientKnownRequestError` with error code [`P2025`](https://www.prisma.io/docs/orm/reference/error-reference#p2025) in [`findUniqueOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#finduniqueorthrow) and [`findFirstOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#findfirstorthrow). If you've relied on catching `NotFoundError` instances in your code, you need to adjust the code accordingly.
##### New keywords that can't be used as model names: `async`, `await`, `using`
With this release, you can't use `async`, `await` and `using` as model names any more.
***
⚠️ **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️
##### Preview features promoted to General Availability
In this release, we are promoting a number of [Preview](https://www.prisma.io/docs/orm/more/releases#preview) features to [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga).
##### `fullTextIndex`
If you use the [full-text index](https://www.prisma.io/docs/orm/prisma-schema/data-model/indexes#full-text-indexes-mysql-and-mongodb) feature in your app, you can now remove `fullTextIndex` from the `previewFeatures` in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}
```
##### `fullTextSearch`
If you use the [full-text search](https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search) feature with **MySQL** in your app, you can now remove `fullTextSearch` from the `previewFeatures` in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}
```
If you are using it with **PostgreSQL**, you need to update the name of the feature flag to `fullTextSearchPostgres`:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
+ previewFeatures = ["fullTextSearchPostgres"]
}
```
##### New features
We are also releasing new features with this release:
- [cuid2() support](https://redirect.github.com/prisma/prisma-engines/pull/5047)
- [Include unused enum definitions in `prisma generate`'s output](https://redirect.github.com/prisma/prisma/pull/25740)
- [Improved compatibility with Deno 2](https://redirect.github.com/prisma/prisma/pull/25734)
##### Company news
##### 🚀 Prisma Postgres is free during Early Access
In case you missed it: We recently launched [Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access), a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!
##### ✨ Let us know what you think of Prisma ORM
We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this [2min survey](https://pris.ly/orm/survey/release-5-22).
prisma/prisma (@prisma/instrumentation)
### [`v6.0.1`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.1)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)
Today we are releasing the `6.0.1` patch release to address an issue with using Prisma Client generated in a custom output path with Next.js.
##### Changes
- [Revert `"type": "commonjs"` addition in generated `package.json`](https://redirect.github.com/prisma/prisma/pull/25767)
### [`v6.0.0`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.0)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.22.0...6.0.0)
We’re excited to share the Prisma ORM v6 release today 🎉
As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6) to understand the impact on your application.
If you want to have an overview of what we accomplished since v5, check out our announcement blog post: [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](https://www.prisma.io/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql).
🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v6.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/6.0.0) about the release.**
#### Breaking changes
⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️
##### Minimum supported Node.js versions
The new minimum supported Node.js versions for Prisma ORM v6 are:
- for Node.js 18 the minimum supported version is **18.18.0**
- for Node.js 20 the minimum supported version is **20.9.0**
- for Node.js 22 the minimum supported version is **22.11.0**
There is no official support for Node.js <18.18.0, 19, 21, 23.
##### Minimum supported TypeScript version
The new minimum supported TypeScript version for Prisma ORM v6 is: **5.1.0**.
##### Schema change for implicit m-n relations on PostgreSQL
If you're using PostgreSQL and are defining [implicit many-to-many relations](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#implicit-many-to-many-relations) in your Prisma schema, Prisma ORM maintains the [relation table](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#relation-tables) for you under the hood. This relation table has `A` and `B` columns to represent the tables of the models that are part of this relation.
Previous versions of Prisma ORM used to create a *unique index* on these two columns. In Prisma v6, this unique index is changing to a *primary key* in order to [simplify for the default replica identity behaviour](https://redirect.github.com/prisma/prisma/issues/25196).
If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain `ALTER TABLE` statements for *all* the relation tables that belong to these relations.
##### Full-text search on PostgreSQL
The `fullTextSearch` Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new `fullTextSearchPostgres` Preview feature.
##### Usage of `Buffer`
Prisma v6 replaces the usage of [`Buffer`](https://nodejs.org/api/buffer.html) with [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to represent fields of type `Bytes`. Make sure to replace all your occurrences of the `Buffer` type with the new `Uint8Array`.
##### Removed `NotFoundError`
In Prisma v6, we removed the `NotFoundError` in favor of `PrismaClientKnownRequestError` with error code [`P2025`](https://www.prisma.io/docs/orm/reference/error-reference#p2025) in [`findUniqueOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#finduniqueorthrow) and [`findFirstOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#findfirstorthrow). If you've relied on catching `NotFoundError` instances in your code, you need to adjust the code accordingly.
##### New keywords that can't be used as model names: `async`, `await`, `using`
With this release, you can't use `async`, `await` and `using` as model names any more.
***
⚠️ **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️
#### Preview features promoted to General Availability
In this release, we are promoting a number of [Preview](https://www.prisma.io/docs/orm/more/releases#preview) features to [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga).
##### `fullTextIndex`
If you use the [full-text index](https://www.prisma.io/docs/orm/prisma-schema/data-model/indexes#full-text-indexes-mysql-and-mongodb) feature in your app, you can now remove `fullTextIndex` from the `previewFeatures` in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}
```
##### `fullTextSearch`
If you use the [full-text search](https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search) feature with **MySQL** in your app, you can now remove `fullTextSearch` from the `previewFeatures` in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}
```
If you are using it with **PostgreSQL**, you need to update the name of the feature flag to `fullTextSearchPostgres`:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
+ previewFeatures = ["fullTextSearchPostgres"]
}
```
#### New features
We are also releasing new features with this release:
- [cuid2() support](https://redirect.github.com/prisma/prisma-engines/pull/5047)
- [Include unused enum definitions in `prisma generate`'s output](https://redirect.github.com/prisma/prisma/pull/25740)
- [Improved compatibility with Deno 2](https://redirect.github.com/prisma/prisma/pull/25734)
#### Company news
##### 🚀 Prisma Postgres is free during Early Access
In case you missed it: We recently launched [Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access), a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!
##### ✨ Let us know what you think of Prisma ORM
We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this [2min survey](https://pris.ly/orm/survey/release-5-22).
prisma/prisma (prisma)
### [`v6.0.1`](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/6.0.0...6.0.1)
### [`v6.0.0`](https://redirect.github.com/prisma/prisma/releases/tag/6.0.0)
[Compare Source](https://redirect.github.com/prisma/prisma/compare/5.22.0...6.0.0)
We’re excited to share the Prisma ORM v6 release today 🎉
As this is a major release, it includes a few breaking changes that may affect your application. Before upgrading, we recommend that you check out our [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6) to understand the impact on your application.
If you want to have an overview of what we accomplished since v5, check out our announcement blog post: [Prisma 6: Better Performance, More Flexibility & Type-Safe SQL](https://www.prisma.io/blog/prisma-6-better-performance-more-flexibility-and-type-safe-sql).
🌟 **Help us spread the word about Prisma by starring the repo ☝️ or [posting on X](https://twitter.com/intent/tweet?text=Check%20out%20the%20latest%20@prisma%20release%20v6.0.0%20%F0%9F%9A%80%0D%0A%0D%0Ahttps://github.com/prisma/prisma/releases/tag/6.0.0) about the release.**
##### Breaking changes
⚠️ This section contains a list of breaking changes. If you upgrade your application to Prisma ORM v6 without addressing these, your application is going to break! **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️
##### Minimum supported Node.js versions
The new minimum supported Node.js versions for Prisma ORM v6 are:
- for Node.js 18 the minimum supported version is **18.18.0**
- for Node.js 20 the minimum supported version is **20.9.0**
- for Node.js 22 the minimum supported version is **22.11.0**
There is no official support for Node.js <18.18.0, 19, 21, 23.
##### Minimum supported TypeScript version
The new minimum supported TypeScript version for Prisma ORM v6 is: **5.1.0**.
##### Schema change for implicit m-n relations on PostgreSQL
If you're using PostgreSQL and are defining [implicit many-to-many relations](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#implicit-many-to-many-relations) in your Prisma schema, Prisma ORM maintains the [relation table](https://www.prisma.io/docs/orm/prisma-schema/data-model/relations/many-to-many-relations#relation-tables) for you under the hood. This relation table has `A` and `B` columns to represent the tables of the models that are part of this relation.
Previous versions of Prisma ORM used to create a *unique index* on these two columns. In Prisma v6, this unique index is changing to a *primary key* in order to [simplify for the default replica identity behaviour](https://redirect.github.com/prisma/prisma/issues/25196).
If you're defining implicit m-n relations in your Prisma schema, the next migration you'll create will contain `ALTER TABLE` statements for *all* the relation tables that belong to these relations.
##### Full-text search on PostgreSQL
The `fullTextSearch` Preview feature is promoted to General Availability only for MySQL. This means that if you're using PostgreSQL and currently make use of this Preview feature, you now need to use the new `fullTextSearchPostgres` Preview feature.
##### Usage of `Buffer`
Prisma v6 replaces the usage of [`Buffer`](https://nodejs.org/api/buffer.html) with [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) to represent fields of type `Bytes`. Make sure to replace all your occurrences of the `Buffer` type with the new `Uint8Array`.
##### Removed `NotFoundError`
In Prisma v6, we removed the `NotFoundError` in favor of `PrismaClientKnownRequestError` with error code [`P2025`](https://www.prisma.io/docs/orm/reference/error-reference#p2025) in [`findUniqueOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#finduniqueorthrow) and [`findFirstOrThrow()`](https://www.prisma.io/docs/orm/reference/prisma-client-reference#findfirstorthrow). If you've relied on catching `NotFoundError` instances in your code, you need to adjust the code accordingly.
##### New keywords that can't be used as model names: `async`, `await`, `using`
With this release, you can't use `async`, `await` and `using` as model names any more.
***
⚠️ **For detailed upgrade instructions, check out the [upgrade guide](https://www.prisma.io/docs/orm/more/upgrade-guides/upgrading-versions/upgrading-to-prisma-6).** ⚠️
##### Preview features promoted to General Availability
In this release, we are promoting a number of [Preview](https://www.prisma.io/docs/orm/more/releases#preview) features to [General Availability](https://www.prisma.io/docs/orm/more/releases#generally-available-ga).
##### `fullTextIndex`
If you use the [full-text index](https://www.prisma.io/docs/orm/prisma-schema/data-model/indexes#full-text-indexes-mysql-and-mongodb) feature in your app, you can now remove `fullTextIndex` from the `previewFeatures` in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextIndex"]
}
```
##### `fullTextSearch`
If you use the [full-text search](https://www.prisma.io/docs/orm/prisma-client/queries/full-text-search) feature with **MySQL** in your app, you can now remove `fullTextSearch` from the `previewFeatures` in your Prisma schema:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
}
```
If you are using it with **PostgreSQL**, you need to update the name of the feature flag to `fullTextSearchPostgres`:
```diff
generator client {
provider = "prisma-client-js"
- previewFeatures = ["fullTextSearch"]
+ previewFeatures = ["fullTextSearchPostgres"]
}
```
##### New features
We are also releasing new features with this release:
- [cuid2() support](https://redirect.github.com/prisma/prisma-engines/pull/5047)
- [Include unused enum definitions in `prisma generate`'s output](https://redirect.github.com/prisma/prisma/pull/25740)
- [Improved compatibility with Deno 2](https://redirect.github.com/prisma/prisma/pull/25734)
##### Company news
##### 🚀 Prisma Postgres is free during Early Access
In case you missed it: We recently launched [Prisma Postgres](https://www.prisma.io/blog/announcing-prisma-postgres-early-access), a serverless database with zero cold starts, a generous free tier, connection pooling, real-time events, and a lot more! It’s entirely free during the Early Access phase, try it now!
##### ✨ Let us know what you think of Prisma ORM
We're always trying to improve! If you've recently used Prisma ORM, we'd appreciate hearing your thoughts about your experience via this [2min survey](https://pris.ly/orm/survey/release-5-22).
---
### 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.
---
- [ ] If you want to rebase/retry this PR, check this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/toeverything/AFFiNE).
---
packages/backend/server/package.json | 6 +-
packages/backend/server/schema.prisma | 1 +
.../server/src/__tests__/doc/history.spec.ts | 6 +-
.../server/src/__tests__/models/doc.spec.ts | 10 +-
.../src/__tests__/models/user-doc.spec.ts | 4 +-
.../__tests__/reader-from-database.spec.ts | 2 +-
.../doc/__tests__/reader-from-rpc.spec.ts | 2 +-
.../server/src/core/notification/service.ts | 4 +-
.../src/models/__tests__/history.spec.ts | 2 +-
.../backend/server/src/models/common/doc.ts | 2 +-
packages/backend/server/src/models/history.ts | 2 +-
yarn.lock | 160 +++++++++---------
12 files changed, 98 insertions(+), 103 deletions(-)
diff --git a/packages/backend/server/package.json b/packages/backend/server/package.json
index 332192e9f6..5f8546a224 100644
--- a/packages/backend/server/package.json
+++ b/packages/backend/server/package.json
@@ -65,8 +65,8 @@
"@opentelemetry/sdk-node": "^0.57.0",
"@opentelemetry/sdk-trace-node": "^1.29.0",
"@opentelemetry/semantic-conventions": "^1.28.0",
- "@prisma/client": "^5.22.0",
- "@prisma/instrumentation": "^5.22.0",
+ "@prisma/client": "^6.6.0",
+ "@prisma/instrumentation": "^6.6.0",
"@react-email/components": "0.0.36",
"@socket.io/redis-adapter": "^8.3.0",
"ai": "^4.3.4",
@@ -97,7 +97,7 @@
"nodemailer": "^6.9.16",
"on-headers": "^1.0.2",
"piscina": "^5.0.0-alpha.0",
- "prisma": "^5.22.0",
+ "prisma": "^6.6.0",
"react": "19.1.0",
"react-dom": "19.1.0",
"reflect-metadata": "^0.2.2",
diff --git a/packages/backend/server/schema.prisma b/packages/backend/server/schema.prisma
index d91469652c..59c708dcbd 100644
--- a/packages/backend/server/schema.prisma
+++ b/packages/backend/server/schema.prisma
@@ -1,5 +1,6 @@
generator client {
provider = "prisma-client-js"
+ output = "./node_modules/.prisma/client"
binaryTargets = ["native", "debian-openssl-3.0.x", "linux-arm64-openssl-3.0.x"]
previewFeatures = ["metrics", "relationJoins", "nativeDistinct", "postgresqlExtensions"]
}
diff --git a/packages/backend/server/src/__tests__/doc/history.spec.ts b/packages/backend/server/src/__tests__/doc/history.spec.ts
index ad280de671..8600863edd 100644
--- a/packages/backend/server/src/__tests__/doc/history.spec.ts
+++ b/packages/backend/server/src/__tests__/doc/history.spec.ts
@@ -39,8 +39,8 @@ test.after.always(async () => {
const snapshot: Snapshot = {
workspaceId: '1',
id: 'doc1',
- blob: Buffer.from([1, 0]),
- state: Buffer.from([0]),
+ blob: Uint8Array.from([1, 0]),
+ state: Uint8Array.from([0]),
seq: 0,
updatedAt: new Date(),
createdAt: new Date(),
@@ -276,5 +276,5 @@ test('should be able to recover from history', async t => {
t.is(history2.timestamp.getTime(), snapshot.updatedAt.getTime());
// new history data force created with snapshot state before recovered
- t.deepEqual(history2.blob, Buffer.from([1, 1]));
+ t.deepEqual(history2.blob, Uint8Array.from([1, 1]));
});
diff --git a/packages/backend/server/src/__tests__/models/doc.spec.ts b/packages/backend/server/src/__tests__/models/doc.spec.ts
index 55a4b231a5..91dfd37d1f 100644
--- a/packages/backend/server/src/__tests__/models/doc.spec.ts
+++ b/packages/backend/server/src/__tests__/models/doc.spec.ts
@@ -101,22 +101,22 @@ test('should find updates by spaceId and docId', async t => {
{
spaceId: workspace.id,
docId,
- blob: Buffer.from('blob1'),
+ blob: Uint8Array.from([1, 2, 3]),
timestamp: Date.now(),
editorId: user.id,
},
{
spaceId: workspace.id,
docId,
- blob: Buffer.from('blob2'),
+ blob: Uint8Array.from([4, 5, 6]),
timestamp: Date.now() + 1000,
editorId: user.id,
},
]);
const foundUpdates = await t.context.doc.findUpdates(workspace.id, docId);
t.is(foundUpdates.length, 2);
- t.deepEqual(foundUpdates[0].blob, Buffer.from('blob1'));
- t.deepEqual(foundUpdates[1].blob, Buffer.from('blob2'));
+ t.deepEqual(foundUpdates[0].blob, Uint8Array.from([1, 2, 3]));
+ t.deepEqual(foundUpdates[1].blob, Uint8Array.from([4, 5, 6]));
let count = await t.context.doc.getUpdateCount(workspace.id, docId);
t.is(count, 2);
@@ -199,7 +199,7 @@ test('should upsert a doc', async t => {
const snapshot = {
spaceId: workspace.id,
docId: randomUUID(),
- blob: Buffer.from('blob1'),
+ blob: Uint8Array.from([1, 2, 3]),
timestamp: Date.now(),
editorId: user.id,
};
diff --git a/packages/backend/server/src/__tests__/models/user-doc.spec.ts b/packages/backend/server/src/__tests__/models/user-doc.spec.ts
index 9e213c0ea8..73b42ac3f6 100644
--- a/packages/backend/server/src/__tests__/models/user-doc.spec.ts
+++ b/packages/backend/server/src/__tests__/models/user-doc.spec.ts
@@ -81,7 +81,7 @@ test('should get a doc', async t => {
const doc = await t.context.doc.upsert({
spaceId: user.id,
docId,
- blob: Buffer.from('hello'),
+ blob: Uint8Array.from([1, 2, 3]),
timestamp: Date.now(),
editorId: user.id,
});
@@ -89,7 +89,7 @@ test('should get a doc', async t => {
const doc2 = await t.context.doc.get(user.id, docId);
t.truthy(doc2);
t.is(doc2!.docId, docId);
- t.deepEqual(doc2!.blob, Buffer.from('hello'));
+ t.deepEqual(doc2!.blob, Uint8Array.from([1, 2, 3]));
// get a non-exist doc
const doc3 = await t.context.doc.get(user.id, randomUUID());
t.is(doc3, null);
diff --git a/packages/backend/server/src/core/doc/__tests__/reader-from-database.spec.ts b/packages/backend/server/src/core/doc/__tests__/reader-from-database.spec.ts
index a4d7385349..1554d93130 100644
--- a/packages/backend/server/src/core/doc/__tests__/reader-from-database.spec.ts
+++ b/packages/backend/server/src/core/doc/__tests__/reader-from-database.spec.ts
@@ -73,7 +73,7 @@ test('should return doc when found', async t => {
const doc = await docReader.getDoc(workspace.id, docId);
t.truthy(doc);
- t.is(doc!.bin.toString(), 'blob1 data');
+ t.is(Buffer.from(doc!.bin).toString('utf8'), 'blob1 data');
t.is(doc!.timestamp, timestamp);
t.is(doc!.editor, user.id);
});
diff --git a/packages/backend/server/src/core/doc/__tests__/reader-from-rpc.spec.ts b/packages/backend/server/src/core/doc/__tests__/reader-from-rpc.spec.ts
index 9f7eb87734..5ae92beeba 100644
--- a/packages/backend/server/src/core/doc/__tests__/reader-from-rpc.spec.ts
+++ b/packages/backend/server/src/core/doc/__tests__/reader-from-rpc.spec.ts
@@ -137,7 +137,7 @@ test('should fallback to database doc reader when endpoint network error', async
const doc = await docReader.getDoc(workspace.id, docId);
t.truthy(doc);
- t.is(doc!.bin.toString(), 'blob1 data');
+ t.is(Buffer.from(doc!.bin).toString('utf8'), 'blob1 data');
t.is(doc!.timestamp, timestamp);
t.is(doc!.editor, user.id);
});
diff --git a/packages/backend/server/src/core/notification/service.ts b/packages/backend/server/src/core/notification/service.ts
index d699bd5f74..4a13ab392f 100644
--- a/packages/backend/server/src/core/notification/service.ts
+++ b/packages/backend/server/src/core/notification/service.ts
@@ -1,5 +1,5 @@
import { Injectable, Logger } from '@nestjs/common';
-import { PrismaClientKnownRequestError } from '@prisma/client/runtime/library';
+import { Prisma } from '@prisma/client';
import { NotificationNotFound, PaginationInput, URLHelper } from '../../base';
import {
@@ -335,7 +335,7 @@ export class NotificationService {
await this.models.notification.markAsRead(notificationId, userId);
} catch (err) {
if (
- err instanceof PrismaClientKnownRequestError &&
+ err instanceof Prisma.PrismaClientKnownRequestError &&
err.code === 'P2025'
) {
// https://www.prisma.io/docs/orm/reference/error-reference#p2025
diff --git a/packages/backend/server/src/models/__tests__/history.spec.ts b/packages/backend/server/src/models/__tests__/history.spec.ts
index f1db7ecfa4..2a26c1ec4d 100644
--- a/packages/backend/server/src/models/__tests__/history.spec.ts
+++ b/packages/backend/server/src/models/__tests__/history.spec.ts
@@ -50,7 +50,7 @@ test('should create a history record', async t => {
const snapshot = {
spaceId: workspace.id,
docId: randomUUID(),
- blob: Buffer.from('blob1'),
+ blob: Uint8Array.from([1, 2, 3]),
timestamp: Date.now(),
editorId: user.id,
};
diff --git a/packages/backend/server/src/models/common/doc.ts b/packages/backend/server/src/models/common/doc.ts
index 5259df201e..e25c79df12 100644
--- a/packages/backend/server/src/models/common/doc.ts
+++ b/packages/backend/server/src/models/common/doc.ts
@@ -6,7 +6,7 @@ export interface Doc {
*/
spaceId: string;
docId: string;
- blob: Buffer;
+ blob: Uint8Array;
timestamp: number;
editorId?: string;
}
diff --git a/packages/backend/server/src/models/history.ts b/packages/backend/server/src/models/history.ts
index d0dffb6a4e..65b2dd00d6 100644
--- a/packages/backend/server/src/models/history.ts
+++ b/packages/backend/server/src/models/history.ts
@@ -9,7 +9,7 @@ export interface DocHistorySimple {
}
export interface DocHistory {
- blob: Buffer;
+ blob: Uint8Array;
timestamp: number;
editor: DocEditor | null;
}
diff --git a/yarn.lock b/yarn.lock
index a98bacf62f..d870c37eb3 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -911,8 +911,8 @@ __metadata:
"@opentelemetry/sdk-node": "npm:^0.57.0"
"@opentelemetry/sdk-trace-node": "npm:^1.29.0"
"@opentelemetry/semantic-conventions": "npm:^1.28.0"
- "@prisma/client": "npm:^5.22.0"
- "@prisma/instrumentation": "npm:^5.22.0"
+ "@prisma/client": "npm:^6.6.0"
+ "@prisma/instrumentation": "npm:^6.6.0"
"@react-email/components": "npm:0.0.36"
"@socket.io/redis-adapter": "npm:^8.3.0"
"@types/cookie-parser": "npm:^1.4.8"
@@ -963,7 +963,7 @@ __metadata:
nodemon: "npm:^3.1.7"
on-headers: "npm:^1.0.2"
piscina: "npm:^5.0.0-alpha.0"
- prisma: "npm:^5.22.0"
+ prisma: "npm:^6.6.0"
react: "npm:19.1.0"
react-dom: "npm:19.1.0"
react-email: "npm:4.0.7"
@@ -9500,15 +9500,6 @@ __metadata:
languageName: node
linkType: hard
-"@opentelemetry/api-logs@npm:0.53.0":
- version: 0.53.0
- resolution: "@opentelemetry/api-logs@npm:0.53.0"
- dependencies:
- "@opentelemetry/api": "npm:^1.0.0"
- checksum: 10/347b4554d6ee01afb29bd39e8f9cbbccd80abb0883fe6a84e3bcce8ab4dbfe357a2729246d2f66de0de6272846fd1bb2d71e286e18ad2690d9e7f46f02f00f73
- languageName: node
- linkType: hard
-
"@opentelemetry/api-logs@npm:0.57.2":
version: 0.57.2
resolution: "@opentelemetry/api-logs@npm:0.57.2"
@@ -9518,7 +9509,7 @@ __metadata:
languageName: node
linkType: hard
-"@opentelemetry/api@npm:1.9.0, @opentelemetry/api@npm:^1.0.0, @opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.8, @opentelemetry/api@npm:^1.9.0":
+"@opentelemetry/api@npm:1.9.0, @opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.9.0":
version: 1.9.0
resolution: "@opentelemetry/api@npm:1.9.0"
checksum: 10/a607f0eef971893c4f2ee2a4c2069aade6ec3e84e2a1f5c2aac19f65c5d9eeea41aa72db917c1029faafdd71789a1a040bdc18f40d63690e22ccae5d7070f194
@@ -10059,22 +10050,6 @@ __metadata:
languageName: node
linkType: hard
-"@opentelemetry/instrumentation@npm:^0.49 || ^0.50 || ^0.51 || ^0.52.0 || ^0.53.0":
- version: 0.53.0
- resolution: "@opentelemetry/instrumentation@npm:0.53.0"
- dependencies:
- "@opentelemetry/api-logs": "npm:0.53.0"
- "@types/shimmer": "npm:^1.2.0"
- import-in-the-middle: "npm:^1.8.1"
- require-in-the-middle: "npm:^7.1.1"
- semver: "npm:^7.5.2"
- shimmer: "npm:^1.2.1"
- peerDependencies:
- "@opentelemetry/api": ^1.3.0
- checksum: 10/4b994c8568a503a15655cba249b1dbdef3f67dfda37938abba6267ba75b6d72a9aa276be4b0c8874e86f98ab89d92877e1874e0565a7e67f062c43dfcbbb16a5
- languageName: node
- linkType: hard
-
"@opentelemetry/otlp-exporter-base@npm:0.57.2":
version: 0.57.2
resolution: "@opentelemetry/otlp-exporter-base@npm:0.57.2"
@@ -10214,7 +10189,7 @@ __metadata:
languageName: node
linkType: hard
-"@opentelemetry/sdk-trace-base@npm:1.30.1, @opentelemetry/sdk-trace-base@npm:^1.22, @opentelemetry/sdk-trace-base@npm:^1.30.1":
+"@opentelemetry/sdk-trace-base@npm:1.30.1, @opentelemetry/sdk-trace-base@npm:^1.30.1":
version: 1.30.1
resolution: "@opentelemetry/sdk-trace-base@npm:1.30.1"
dependencies:
@@ -10472,61 +10447,74 @@ __metadata:
languageName: node
linkType: hard
-"@prisma/client@npm:^5.22.0":
- version: 5.22.0
- resolution: "@prisma/client@npm:5.22.0"
+"@prisma/client@npm:^6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/client@npm:6.6.0"
peerDependencies:
prisma: "*"
+ typescript: ">=5.1.0"
peerDependenciesMeta:
prisma:
optional: true
- checksum: 10/991d7410ded2d6c824303ac222ae94df4f1bf42240dda97c710cfee3a3bc59fef65c73e1ee55177e38d12f4d7dfc0a047748f98b4e3026dddd65f462684cd2d1
+ typescript:
+ optional: true
+ checksum: 10/5093062b45597f25ebdd84e86ac29e38fdac2a35809267a69181f97842cf54877d9cb35954a0368509373cd4b4d9062039b8adad400d764f5ca1cf39e8f6de36
languageName: node
linkType: hard
-"@prisma/debug@npm:5.22.0":
- version: 5.22.0
- resolution: "@prisma/debug@npm:5.22.0"
- checksum: 10/e4c425fde57f83c1a3df44d3f9088684a3e1d764022d2378f981209e57b7f421bc773d7f4fc23daa3936aa3e3772fa99fef81d2f2ec9673269f06efe822e3b53
- languageName: node
- linkType: hard
-
-"@prisma/engines-version@npm:5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2":
- version: 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2
- resolution: "@prisma/engines-version@npm:5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2"
- checksum: 10/e9e3563d75482591ca482dfc26afaf8a727796f48bfcc9b550652ca9c66176f5841944d00f8a4cb60a7fd58b117d8e28b1c6b84fc7316123738f7290c91c291d
- languageName: node
- linkType: hard
-
-"@prisma/engines@npm:5.22.0":
- version: 5.22.0
- resolution: "@prisma/engines@npm:5.22.0"
+"@prisma/config@npm:6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/config@npm:6.6.0"
dependencies:
- "@prisma/debug": "npm:5.22.0"
- "@prisma/engines-version": "npm:5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2"
- "@prisma/fetch-engine": "npm:5.22.0"
- "@prisma/get-platform": "npm:5.22.0"
- checksum: 10/887381d8be0acc713159ef70cdc5c4b2ca5af6f3a5d2f6ae73b63c6cf31b74e5c41a9c2dbccb02b1a49bbda19a3d0a75cd1bcc86d76e98991c3a3978e61b622b
+ esbuild: "npm:>=0.12 <1"
+ esbuild-register: "npm:3.6.0"
+ checksum: 10/0793c4d8facfee8eda59fbdab33f46beff2031bcaa18738ecf502d5a444cfef894d41f2cbe95d1f220e204f617050255860839989abbcfee9349d74d06bf0fa1
languageName: node
linkType: hard
-"@prisma/fetch-engine@npm:5.22.0":
- version: 5.22.0
- resolution: "@prisma/fetch-engine@npm:5.22.0"
- dependencies:
- "@prisma/debug": "npm:5.22.0"
- "@prisma/engines-version": "npm:5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2"
- "@prisma/get-platform": "npm:5.22.0"
- checksum: 10/512ce722e582a72429c90d438a63c730b230faa1235300215ab6cd1c5a0dfb2aa63704a66ee72c57222d9c094477ea198b1c154b9779dcab78ebf36e09f79161
+"@prisma/debug@npm:6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/debug@npm:6.6.0"
+ checksum: 10/55c9817a43aaa34eac8388b866a75a113dc2109b45bbb735a82ad2b74ee312d840df95058fed1225f48ba21aa8f0b2b441bbc9e50eaea0329ed5b614d71d54b5
languageName: node
linkType: hard
-"@prisma/get-platform@npm:5.22.0":
- version: 5.22.0
- resolution: "@prisma/get-platform@npm:5.22.0"
+"@prisma/engines-version@npm:6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a":
+ version: 6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a
+ resolution: "@prisma/engines-version@npm:6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a"
+ checksum: 10/4e14e15b463729db4bee268477c13e7d2e23d0de1e6756acb801cf8e0df99c250b4326d4512c8ef1b7727be4acc301041cd3477cf528b3f62fbc4c81367b9ff4
+ languageName: node
+ linkType: hard
+
+"@prisma/engines@npm:6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/engines@npm:6.6.0"
dependencies:
- "@prisma/debug": "npm:5.22.0"
- checksum: 10/15db9f38933a59a1b0f3a1d6284a50261803677516d6eedec2f7caaa1767c1c6e94e6465aca9239766b1cc363002476da21f7eeab55cc5329937d6d6d57a5f67
+ "@prisma/debug": "npm:6.6.0"
+ "@prisma/engines-version": "npm:6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a"
+ "@prisma/fetch-engine": "npm:6.6.0"
+ "@prisma/get-platform": "npm:6.6.0"
+ checksum: 10/032b7b3ba7acc664a4022c5018a70aafc5f9ee416db548c27a255ff3871b72b58691dd98ccbc5ceae606c7a1f5bd8b13b1f4f6075fed5a0f07a04e48ac779dd2
+ languageName: node
+ linkType: hard
+
+"@prisma/fetch-engine@npm:6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/fetch-engine@npm:6.6.0"
+ dependencies:
+ "@prisma/debug": "npm:6.6.0"
+ "@prisma/engines-version": "npm:6.6.0-53.f676762280b54cd07c770017ed3711ddde35f37a"
+ "@prisma/get-platform": "npm:6.6.0"
+ checksum: 10/d63b20ed7ad0e930882c5831c3d3984a26e858c1bc6c97d2443e8c64f1720d2ccc1233d69fb7c825632ec27b8513b17ce115eef70208114fa90b42c7499e1639
+ languageName: node
+ linkType: hard
+
+"@prisma/get-platform@npm:6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/get-platform@npm:6.6.0"
+ dependencies:
+ "@prisma/debug": "npm:6.6.0"
+ checksum: 10/e4fd0975298251b80dcf2b71cc46274b6e9d0ac3a5288b70b6e3623057df8cc0cf55ceb5e68db3b2809535e77ba62125ab5345a359a6e5b4087b142aeeb4fc1d
languageName: node
linkType: hard
@@ -10541,14 +10529,14 @@ __metadata:
languageName: node
linkType: hard
-"@prisma/instrumentation@npm:^5.22.0":
- version: 5.22.0
- resolution: "@prisma/instrumentation@npm:5.22.0"
+"@prisma/instrumentation@npm:^6.6.0":
+ version: 6.6.0
+ resolution: "@prisma/instrumentation@npm:6.6.0"
dependencies:
- "@opentelemetry/api": "npm:^1.8"
- "@opentelemetry/instrumentation": "npm:^0.49 || ^0.50 || ^0.51 || ^0.52.0 || ^0.53.0"
- "@opentelemetry/sdk-trace-base": "npm:^1.22"
- checksum: 10/f48fc6b56e17538013033b5cab651d5d8df8bd0a0695ac3bc0d0cc6619a262a280ffe55aab0acade146928c6c2dfdf5532155a792818c5aea15efced67cc19c1
+ "@opentelemetry/instrumentation": "npm:^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0"
+ peerDependencies:
+ "@opentelemetry/api": ^1.8
+ checksum: 10/18480c9dfb2592aeae5b7d43449af7e88e47cf177d58d4ab147d01a90477f4abc91a900f345c22cf0c381171db94c20a2fa74f519cfa775dba060fd9a3eed220
languageName: node
linkType: hard
@@ -20380,7 +20368,7 @@ __metadata:
languageName: node
linkType: hard
-"esbuild-register@npm:^3.5.0":
+"esbuild-register@npm:3.6.0, esbuild-register@npm:^3.5.0":
version: 3.6.0
resolution: "esbuild-register@npm:3.6.0"
dependencies:
@@ -20477,7 +20465,7 @@ __metadata:
languageName: node
linkType: hard
-"esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0, esbuild@npm:^0.25.0, esbuild@npm:esbuild@>=0.17.6 <0.26.0, esbuild@npm:~0.25.0":
+"esbuild@npm:>=0.12 <1, esbuild@npm:^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0, esbuild@npm:^0.25.0, esbuild@npm:esbuild@>=0.17.6 <0.26.0, esbuild@npm:~0.25.0":
version: 0.25.2
resolution: "esbuild@npm:0.25.2"
dependencies:
@@ -29029,18 +29017,24 @@ __metadata:
languageName: node
linkType: hard
-"prisma@npm:^5.22.0":
- version: 5.22.0
- resolution: "prisma@npm:5.22.0"
+"prisma@npm:^6.6.0":
+ version: 6.6.0
+ resolution: "prisma@npm:6.6.0"
dependencies:
- "@prisma/engines": "npm:5.22.0"
+ "@prisma/config": "npm:6.6.0"
+ "@prisma/engines": "npm:6.6.0"
fsevents: "npm:2.3.3"
+ peerDependencies:
+ typescript: ">=5.1.0"
dependenciesMeta:
fsevents:
optional: true
+ peerDependenciesMeta:
+ typescript:
+ optional: true
bin:
prisma: build/index.js
- checksum: 10/7d7a47491b6b5fb6fe23358af4ab36c1b85e837bf439c6994cfb20e98627dd15e7bc9e1be40f9620170fc587e6d0b5c6b871f44e5a380b15b7b684eb89e21037
+ checksum: 10/a0df0eb4595e02cfd20fe5c9cecc5a4e6cae7c850c3adf94afc499314ab2a02e9aab7fdeb8fc0fc5cd5953b3d54d29e0aa3f1c5be07e54f3c9870c26b43c0218
languageName: node
linkType: hard