diff --git a/.github/ISSUE_TEMPLATE/3_bug_adapter.yml b/.github/ISSUE_TEMPLATE/3_bug_adapter.yml
index 1eea75b39e..72d97c57fa 100644
--- a/.github/ISSUE_TEMPLATE/3_bug_adapter.yml
+++ b/.github/ISSUE_TEMPLATE/3_bug_adapter.yml
@@ -29,7 +29,7 @@ body:
- "@next-auth/mongodb-adapter"
- "@next-auth/neo4j-adapter"
- "@next-auth/pouchdb-adapter"
- - "@next-auth/prisma-adapter"
+ - "@auth/prisma-adapter"
- "@next-auth/sequelize-adapter"
- "@next-auth/supabase-adapter"
- "@next-auth/typeorm-legacy-adapter"
diff --git a/.github/issue-labeler.yml b/.github/issue-labeler.yml
index 90382e84d1..f09c9da394 100644
--- a/.github/issue-labeler.yml
+++ b/.github/issue-labeler.yml
@@ -25,7 +25,7 @@ pouchdb:
- "@next-auth/pouchdb-adapter"
prisma:
- - "@next-auth/prisma-adapter"
+ - "@auth/prisma-adapter"
sequelize:
- "@next-auth/sequelize-adapter"
diff --git a/apps/dev/nextjs-v4/package.json b/apps/dev/nextjs-v4/package.json
index 9ec2161e88..f72120858f 100644
--- a/apps/dev/nextjs-v4/package.json
+++ b/apps/dev/nextjs-v4/package.json
@@ -15,7 +15,7 @@
"license": "ISC",
"dependencies": {
"@next-auth/fauna-adapter": "workspace:*",
- "@next-auth/prisma-adapter": "workspace:*",
+ "@auth/prisma-adapter": "workspace:*",
"@next-auth/supabase-adapter": "workspace:*",
"@next-auth/typeorm-legacy-adapter": "workspace:*",
"@prisma/client": "^3",
diff --git a/apps/dev/nextjs-v4/pages/api/auth-old/[...nextauth].ts b/apps/dev/nextjs-v4/pages/api/auth-old/[...nextauth].ts
index 7654451a1e..c636cf2b97 100644
--- a/apps/dev/nextjs-v4/pages/api/auth-old/[...nextauth].ts
+++ b/apps/dev/nextjs-v4/pages/api/auth-old/[...nextauth].ts
@@ -37,7 +37,7 @@ import WorkOS from "next-auth/providers/workos"
// // Prisma
// import { PrismaClient } from "@prisma/client"
-// import { PrismaAdapter } from "@next-auth/prisma-adapter"
+// import { PrismaAdapter } from "@auth/prisma-adapter"
// const client = globalThis.prisma || new PrismaClient()
// if (process.env.NODE_ENV !== "production") globalThis.prisma = client
// const adapter = PrismaAdapter(client)
diff --git a/apps/dev/nextjs/package.json b/apps/dev/nextjs/package.json
index e723cacc2b..5e609ba7bb 100644
--- a/apps/dev/nextjs/package.json
+++ b/apps/dev/nextjs/package.json
@@ -16,7 +16,7 @@
"dependencies": {
"@auth/core": "workspace:*",
"@next-auth/fauna-adapter": "workspace:*",
- "@next-auth/prisma-adapter": "workspace:*",
+ "@auth/prisma-adapter": "workspace:*",
"@next-auth/supabase-adapter": "workspace:*",
"@next-auth/typeorm-legacy-adapter": "workspace:*",
"@prisma/client": "^3",
diff --git a/apps/dev/nextjs/pages/api/auth/[...nextauth].ts b/apps/dev/nextjs/pages/api/auth/[...nextauth].ts
index d447ea83fb..f47a702df1 100644
--- a/apps/dev/nextjs/pages/api/auth/[...nextauth].ts
+++ b/apps/dev/nextjs/pages/api/auth/[...nextauth].ts
@@ -41,7 +41,7 @@ import WorkOS from "@auth/core/providers/workos"
// // Prisma
// import { PrismaClient } from "@prisma/client"
-// import { PrismaAdapter } from "@next-auth/prisma-adapter"
+// import { PrismaAdapter } from "@auth/prisma-adapter"
// const client = globalThis.prisma || new PrismaClient()
// if (process.env.NODE_ENV !== "production") globalThis.prisma = client
// const adapter = PrismaAdapter(client)
diff --git a/docs/docs/guides/basics/refresh-token-rotation.md b/docs/docs/guides/basics/refresh-token-rotation.md
index 4e3db0ccfd..7c8297c56e 100644
--- a/docs/docs/guides/basics/refresh-token-rotation.md
+++ b/docs/docs/guides/basics/refresh-token-rotation.md
@@ -117,7 +117,7 @@ Using the database strategy is very similar, but instead of preserving the `acce
import { Auth } from "@auth/core"
import { type TokenSet } from "@auth/core/types"
import Google from "@auth/core/providers/google"
-import { PrismaAdapter } from "@next-auth/prisma-adapter"
+import { PrismaAdapter } from "@auth/prisma-adapter"
import { PrismaClient } from "@prisma/client"
const prisma = new PrismaClient()
diff --git a/packages/adapter-prisma/README.md b/packages/adapter-prisma/README.md
index ae582a7c71..a0e07ca5eb 100644
--- a/packages/adapter-prisma/README.md
+++ b/packages/adapter-prisma/README.md
@@ -8,14 +8,14 @@
Prisma Adapter - NextAuth.js / Auth.js
-
+
-
-
+
+
-
-
+
+
diff --git a/packages/adapter-prisma/package.json b/packages/adapter-prisma/package.json
index f224863396..a2c8fc1ffe 100644
--- a/packages/adapter-prisma/package.json
+++ b/packages/adapter-prisma/package.json
@@ -1,14 +1,29 @@
{
- "name": "@next-auth/prisma-adapter",
- "version": "1.0.7",
- "description": "Prisma adapter for next-auth.",
- "homepage": "https://authjs.dev",
+ "name": "@auth/prisma-adapter",
+ "version": "0.0.0",
+ "description": "Prisma adapter for Auth.js",
+ "homepage": "https://authjs.dev/reference/adapter/prisma",
"repository": "https://github.com/nextauthjs/next-auth",
"bugs": {
"url": "https://github.com/nextauthjs/next-auth/issues"
},
"author": "William Luke",
- "main": "dist/index.js",
+ "contributors": [
+ "Balázs Orbán "
+ ],
+ "type": "module",
+ "types": "./index.d.ts",
+ "files": [
+ "*.js",
+ "*.d.ts*",
+ "src"
+ ],
+ "exports": {
+ ".": {
+ "types": "./index.d.ts",
+ "import": "./index.js"
+ }
+ },
"license": "ISC",
"keywords": [
"next-auth",
@@ -32,24 +47,21 @@
"dev": "prisma generate && tsc -w",
"studio": "prisma studio"
},
- "files": [
- "README.md",
- "dist"
- ],
+ "dependencies": {
+ "@auth/core": "workspace:*"
+ },
"peerDependencies": {
- "@prisma/client": ">=2.26.0 || >=3",
- "next-auth": "^4"
+ "@prisma/client": ">=2.26.0 || >=3 || >=4"
},
"devDependencies": {
"@next-auth/adapter-test": "workspace:*",
"@next-auth/tsconfig": "workspace:*",
- "@prisma/client": "^3.10.0",
+ "@prisma/client": "^4.15.0",
"jest": "^27.4.3",
"mongodb": "^4.4.0",
- "next-auth": "workspace:*",
- "prisma": "^3.10.0"
+ "prisma": "^4.15.0"
},
"jest": {
"preset": "@next-auth/adapter-test/jest"
}
-}
\ No newline at end of file
+}
diff --git a/packages/adapter-prisma/src/index.ts b/packages/adapter-prisma/src/index.ts
index 264f83ce4a..b1627d4faa 100644
--- a/packages/adapter-prisma/src/index.ts
+++ b/packages/adapter-prisma/src/index.ts
@@ -9,14 +9,14 @@
* ## Installation
*
* ```bash npm2yarn2pnpm
- * npm install next-auth @prisma/client @next-auth/prisma-adapter
+ * npm install @prisma/client @auth/prisma-adapter
* npm install prisma --save-dev
* ```
*
- * @module @next-auth/prisma-adapter
+ * @module @auth/prisma-adapter
*/
import type { PrismaClient, Prisma } from "@prisma/client"
-import type { Adapter, AdapterAccount } from "next-auth/adapters"
+import type { Adapter, AdapterAccount } from "@auth/core/adapters"
/**
* ## Setup
@@ -26,7 +26,7 @@ import type { Adapter, AdapterAccount } from "next-auth/adapters"
* ```js title="pages/api/auth/[...nextauth].js"
* import NextAuth from "next-auth"
* import GoogleProvider from "next-auth/providers/google"
- * import { PrismaAdapter } from "@next-auth/prisma-adapter"
+ * import { PrismaAdapter } from "@auth/prisma-adapter"
* import { PrismaClient } from "@prisma/client"
*
* const prisma = new PrismaClient()
diff --git a/packages/adapter-prisma/tsconfig.json b/packages/adapter-prisma/tsconfig.json
index 2cb9d1742a..726c2dc177 100644
--- a/packages/adapter-prisma/tsconfig.json
+++ b/packages/adapter-prisma/tsconfig.json
@@ -1,9 +1,25 @@
{
- "extends": "@next-auth/tsconfig/tsconfig.adapters.json",
+ "extends": "@next-auth/tsconfig/tsconfig.base.json",
"compilerOptions": {
+ "allowJs": true,
+ "baseUrl": ".",
+ "isolatedModules": true,
+ "target": "ES2020",
+ "module": "ESNext",
+ "moduleResolution": "node",
+ "outDir": ".",
"rootDir": "src",
- "outDir": "dist"
+ "skipDefaultLibCheck": true,
+ "strictNullChecks": true,
+ "stripInternal": true,
+ "declarationMap": true,
+ "declaration": true
},
- "include": ["."],
- "exclude": ["tests", "dist", "jest.config.js"]
-}
+ "include": [
+ "src/**/*"
+ ],
+ "exclude": [
+ "*.js",
+ "*.d.ts",
+ ]
+}
\ No newline at end of file
diff --git a/packages/adapter-test/index.ts b/packages/adapter-test/index.ts
index 2cc67dfa78..175757307a 100644
--- a/packages/adapter-test/index.ts
+++ b/packages/adapter-test/index.ts
@@ -1,4 +1,4 @@
-import type { Adapter } from "next-auth/adapters"
+import type { Adapter } from "@auth/core/adapters"
import { createHash, randomUUID } from "crypto"
const requiredMethods = [
@@ -58,7 +58,8 @@ export async function runBasicTests(options: TestOptions) {
await options.db.connect?.()
})
- const { adapter, db, skipTests } = options
+ const { adapter: _adapter, db, skipTests } = options
+ const adapter = _adapter as Required
afterAll(async () => {
// @ts-expect-error This is only used for the TypeORM adapter
@@ -88,7 +89,7 @@ export async function runBasicTests(options: TestOptions) {
providerAccountId: randomUUID(),
type: "oauth",
access_token: randomUUID(),
- expires_at: ONE_MONTH,
+ expires_at: ONE_MONTH / 1000,
id_token: randomUUID(),
refresh_token: randomUUID(),
token_type: "bearer",
diff --git a/packages/adapter-test/package.json b/packages/adapter-test/package.json
index a3d729fbdd..1ff1cbf669 100644
--- a/packages/adapter-test/package.json
+++ b/packages/adapter-test/package.json
@@ -12,13 +12,13 @@
"license": "ISC",
"private": true,
"devDependencies": {
+ "@auth/core": "workspace:*",
"@babel/cli": "^7.14.3",
"@babel/plugin-transform-runtime": "^7.14.3",
"@babel/preset-env": "^7.14.2",
"@types/jest": "^26.0.23",
"@types/nodemailer": "^6.4.4",
"jest": "^27.0.3",
- "next-auth": "workspace:*",
"ts-jest": "^27.0.3",
"typescript": "^4.2.4"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 6315880c7f..5a95549566 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -54,8 +54,8 @@ importers:
apps/dev/nextjs:
specifiers:
'@auth/core': workspace:*
+ '@auth/prisma-adapter': workspace:*
'@next-auth/fauna-adapter': workspace:*
- '@next-auth/prisma-adapter': workspace:*
'@next-auth/supabase-adapter': workspace:*
'@next-auth/typeorm-legacy-adapter': workspace:*
'@playwright/test': 1.29.2
@@ -78,8 +78,8 @@ importers:
typeorm: 0.3.7
dependencies:
'@auth/core': link:../../../packages/core
+ '@auth/prisma-adapter': link:../../../packages/adapter-prisma
'@next-auth/fauna-adapter': link:../../../packages/adapter-fauna
- '@next-auth/prisma-adapter': link:../../../packages/adapter-prisma
'@next-auth/supabase-adapter': link:../../../packages/adapter-supabase
'@next-auth/typeorm-legacy-adapter': link:../../../packages/adapter-typeorm-legacy
'@prisma/client': 3.15.2_prisma@3.15.2
@@ -104,8 +104,8 @@ importers:
apps/dev/nextjs-v4:
specifiers:
+ '@auth/prisma-adapter': workspace:*
'@next-auth/fauna-adapter': workspace:*
- '@next-auth/prisma-adapter': workspace:*
'@next-auth/supabase-adapter': workspace:*
'@next-auth/typeorm-legacy-adapter': workspace:*
'@prisma/client': ^3
@@ -125,8 +125,8 @@ importers:
sqlite3: ^5.0.8
typeorm: 0.3.7
dependencies:
+ '@auth/prisma-adapter': link:../../../packages/adapter-prisma
'@next-auth/fauna-adapter': link:../../../packages/adapter-fauna
- '@next-auth/prisma-adapter': link:../../../packages/adapter-prisma
'@next-auth/supabase-adapter': link:../../../packages/adapter-supabase
'@next-auth/typeorm-legacy-adapter': link:../../../packages/adapter-typeorm-legacy
'@prisma/client': 3.15.2_prisma@3.15.2
@@ -408,21 +408,22 @@ importers:
packages/adapter-prisma:
specifiers:
+ '@auth/core': workspace:*
'@next-auth/adapter-test': workspace:*
'@next-auth/tsconfig': workspace:*
- '@prisma/client': ^3.10.0
+ '@prisma/client': ^4.15.0
jest: ^27.4.3
mongodb: ^4.4.0
- next-auth: workspace:*
- prisma: ^3.10.0
+ prisma: ^4.15.0
+ dependencies:
+ '@auth/core': link:../core
devDependencies:
'@next-auth/adapter-test': link:../adapter-test
'@next-auth/tsconfig': link:../tsconfig
- '@prisma/client': 3.15.2_prisma@3.15.2
+ '@prisma/client': 4.15.0_prisma@4.15.0
jest: 27.5.1
mongodb: 4.7.0
- next-auth: link:../next-auth
- prisma: 3.15.2
+ prisma: 4.15.0
packages/adapter-sequelize:
specifiers:
@@ -454,23 +455,23 @@ importers:
packages/adapter-test:
specifiers:
+ '@auth/core': workspace:*
'@babel/cli': ^7.14.3
'@babel/plugin-transform-runtime': ^7.14.3
'@babel/preset-env': ^7.14.2
'@types/jest': ^26.0.23
'@types/nodemailer': ^6.4.4
jest: ^27.0.3
- next-auth: workspace:*
ts-jest: ^27.0.3
typescript: ^4.2.4
devDependencies:
+ '@auth/core': link:../core
'@babel/cli': 7.17.10
'@babel/plugin-transform-runtime': 7.18.5
'@babel/preset-env': 7.18.2
'@types/jest': 26.0.24
'@types/nodemailer': 6.4.4
jest: 27.5.1
- next-auth: link:../next-auth
ts-jest: 27.1.5_r5n7iohbfbguzk5ispbdybm75m
typescript: 4.7.4
@@ -9735,14 +9736,39 @@ packages:
dependencies:
'@prisma/engines-version': 3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e
prisma: 3.15.2
+ dev: false
+
+ /@prisma/client/4.15.0_prisma@4.15.0:
+ resolution: {integrity: sha512-xnROvyABcGiwqRNdrObHVZkD9EjkJYHOmVdlKy1yGgI+XOzvMzJ4tRg3dz1pUlsyhKxXGCnjIQjWW+2ur+YXuw==}
+ engines: {node: '>=14.17'}
+ requiresBuild: true
+ peerDependencies:
+ prisma: '*'
+ peerDependenciesMeta:
+ prisma:
+ optional: true
+ dependencies:
+ '@prisma/engines-version': 4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944
+ prisma: 4.15.0
+ dev: true
/@prisma/engines-version/3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e:
resolution: {integrity: sha512-e3k2Vd606efd1ZYy2NQKkT4C/pn31nehyLhVug6To/q8JT8FpiMrDy7zmm3KLF0L98NOQQcutaVtAPhzKhzn9w==}
+ dev: false
+
+ /@prisma/engines-version/4.15.0-28.8fbc245156db7124f997f4cecdd8d1219e360944:
+ resolution: {integrity: sha512-sVOig4tjGxxlYaFcXgE71f/rtFhzyYrfyfNFUsxCIEJyVKU9rdOWIlIwQ2NQ7PntvGnn+x0XuFo4OC1jvPJKzg==}
+ dev: true
/@prisma/engines/3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e:
resolution: {integrity: sha512-NHlojO1DFTsSi3FtEleL9QWXeSF/UjhCW0fgpi7bumnNZ4wj/eQ+BJJ5n2pgoOliTOGv9nX2qXvmHap7rJMNmg==}
requiresBuild: true
+ /@prisma/engines/4.15.0:
+ resolution: {integrity: sha512-FTaOCGs0LL0OW68juZlGxFtYviZa4xdQj/rQEdat2txw0s3Vu/saAPKjNVXfIgUsGXmQ72HPgNr6935/P8FNAA==}
+ requiresBuild: true
+ dev: true
+
/@protobufjs/aspromise/1.1.2:
resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
dev: true
@@ -28405,6 +28431,15 @@ packages:
dependencies:
'@prisma/engines': 3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e
+ /prisma/4.15.0:
+ resolution: {integrity: sha512-iKZZpobPl48gTcSZVawLMQ3lEy6BnXwtoMj7hluoGFYu2kQ6F9LBuBrUyF95zRVnNo8/3KzLXJXJ5TEnLSJFiA==}
+ engines: {node: '>=14.17'}
+ hasBin: true
+ requiresBuild: true
+ dependencies:
+ '@prisma/engines': 4.15.0
+ dev: true
+
/prismjs/1.28.0:
resolution: {integrity: sha512-8aaXdYvl1F7iC7Xm1spqSaY/OJBpYW3v+KJ+F17iYxvdc8sfjW194COK5wVhMZX45tGteiBQgdvD/nhxcRwylw==}
engines: {node: '>=6'}
diff --git a/turbo.json b/turbo.json
index 21d096093b..7758e5e8d6 100644
--- a/turbo.json
+++ b/turbo.json
@@ -3,7 +3,7 @@
"pipeline": {
"build": {
"dependsOn": ["^build"],
- "outputs": ["dist/**/*"]
+ "outputs": ["dist/**/*", "*.js", "*.d.ts", "*.d.ts.map"]
},
"next-auth#build": {
"dependsOn": ["^build"],
@@ -53,6 +53,7 @@
"docs#dev": {
"dependsOn": [
"@auth/core#build",
+ "@auth/prisma-adapter#build",
"@auth/sveltekit#build",
"@next-auth/dgraph-adapter#build",
"@next-auth/dynamodb-adapter#build",
@@ -62,7 +63,6 @@
"@next-auth/mongodb-adapter#build",
"@next-auth/neo4j-adapter#build",
"@next-auth/pouchdb-adapter#build",
- "@next-auth/prisma-adapter#build",
"@next-auth/sequelize-adapter#build",
"@next-auth/supabase-adapter#build",
"@next-auth/typeorm-legacy-adapter#build",
@@ -76,6 +76,7 @@
"docs#build": {
"dependsOn": [
"@auth/core#build",
+ "@auth/prisma-adapter#build",
"@auth/sveltekit#build",
"@next-auth/dgraph-adapter#build",
"@next-auth/dynamodb-adapter#build",
@@ -85,7 +86,6 @@
"@next-auth/mongodb-adapter#build",
"@next-auth/neo4j-adapter#build",
"@next-auth/pouchdb-adapter#build",
- "@next-auth/prisma-adapter#build",
"@next-auth/sequelize-adapter#build",
"@next-auth/supabase-adapter#build",
"@next-auth/typeorm-legacy-adapter#build",