Open SiebeBaree opened 5 months ago
same here!
Edit by maintainer bot: Comment was automatically minimized because it was considered unhelpful. (If you think this was by mistake, let us know). Please only comment if it adds context to the issue. If you want to express that you have the same problem, use the upvote 👍 on the issue description or subscribe to the issue for updates. Thanks!
@SiebeBaree same here. Did you find a workaround?
@SiebeBaree same here. Did you find a workaround?
Yes, turn of declaration and declarationMap in your tsconfig
Does anyone know what to do if another part of the project requires declarationMap & declaration to be set to "true"? Is this a bug in NextAuth?
Team! please respond to this as i am also facing same issue
The inferred type of 'auth' cannot be named without a reference to '@/node_modules/next-auth/lib'. This is likely not portable. A type annotation is necessary.ts(2742)
The inferred type of 'auth' cannot be named without a reference to '@/node_modules/next-auth/lib/types'. This is likely not portable. A type annotation is necessary.ts(2742)
export const { handlers:{GET, POST},signIn, signOut, auth } = NextAuth({
callbacks: {
async signIn({ user, account }) {
console.log(user);
//Allow 0Auth
if(account?.provider!=="credentials") return true
const existingUser= await getUserById(user.id!);
// prevent sign in without email verification
if(!existingUser || !existingUser.emailVerified){
return false
}
return true
},
async session({ session, token }) {
if(token.sub && session.user){
session.user.id = token.sub
}
return session
},
async jwt({ token }) {
if(!token.sub) return token
const existingUser= await getUserById(token.sub)
return token
}
},
secret: process.env.NEXTAUTH_SECRET || "secr3t",
adapter: PrismaAdapter(db),
session: { strategy: "jwt"},
...authConfig,
})
the type error comes from the auth(), but i am using turbo repo and when i remove the "extents" property from tsconfig.ts it works without the error
{
"extends": "@repo/typescript-config/nextjs.json",
"compilerOptions": {
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
"noEmit": true,
"esModuleInterop": true,
"module": "esnext",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./*"]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
}
@shuaibu-shehu just add below lines inside the compilerOptions
"declaration": false,
"declarationMap": false,
sharing workaround (declarationMap & declaration to be set to "true")
import NextAuth, { NextAuthResult } from "next-auth";
const nextAuth = NextAuth(authConfig);
const signIn: NextAuthResult["signIn"] = nextAuth.signIn;
const auth: NextAuthResult["auth"] = nextAuth.auth;
Environment
System: OS: macOS 14.4.1 CPU: (8) arm64 Apple M1 Memory: 63.70 MB / 16.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 21.7.1 - /opt/homebrew/bin/node npm: 10.5.0 - /opt/homebrew/bin/npm pnpm: 8.15.6 - /opt/homebrew/bin/pnpm bun: 1.1.3 - ~/.bun/bin/bun Watchman: 2024.03.25.00 - /opt/homebrew/bin/watchman Browsers: Brave Browser: 123.1.64.122 Chrome: 123.0.6312.123 Safari: 17.4.1 npmPackages: next: 13.5.4 => 13.5.4 next-auth: ^5.0.0-beta.16 => 5.0.0-beta.16 react: ^18 => 18.2.0
Reproduction URL
https://github.com/SiebeBaree/declaration-ts-bug-next-auth-v5
Describe the issue
When turning on
declararation
anddeclarationMap
in the tsconfig.json NextAuth v5 beta 16 will give the following error:The code works perfectly fine in dev mode but will cause build errors during deployment. The error happens in
src/auth.ts
in the reproduction repo linked aboveHow to reproduce
npx create-next-app@latest
(enable TypeScript)npm install next-auth@beta
auth.ts
file like the installation guide recommendsdeclaration
anddeclarationMap
to true in thecompilerOptions
of your tsconfig.jsonThis repository uses Bun but this error is the same on npm, pnpm with node.js runtime.
Expected behavior
That even with
declaration
anddeclarationMap
set to true NextAuth should give any issues when using the newauth()
function.