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

- + TypeScript - - npm + + npm - - Downloads + + Downloads Github Stars 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",