Open SiebeBaree opened 7 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;
It's been months and this issue is still not resolved.
they meant it when they said beta ^5.0.0-beta.24
well in turbo-repo declaration and declarationMap
is true by default so the only change is this:
const nextAuth = NextAuth(authOptions);
export const auth: NextAuthResult["auth"] = nextAuth.auth;
export const {
handlers: { GET, POST },
signIn,
signOut,
unstable_update
} = nextAuth;
EDIT:
after 3 weeks now I am getting error in signIn :/
The inferred type of signIn cannot be named without a reference to next-auth/node_modules/@auth/core/providers . This is likely not portable. A type annotation is necessary.
reason: deleted and re-installed node_modules
with .lock.json files
after changes:
// need to do that coz of: https://github.com/nextauthjs/next-auth/issues/10568 export const auth: NextAuthResult["auth"] = nextAuth.auth; export const signIn: NextAuthResult["signIn"] = nextAuth.signIn; export const { handlers: { GET, POST }, // signIn, // giving stupid error after just a simple re-install of node_modules signOut, unstable_update, } = nextAuth;
import type { Adapter } from "next-auth/adapters";
adapter: PrismaAdapter(db) as Adapter,
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.