Open
Description
Environment
System:
OS: macOS 14.6.1
CPU: (10) arm64 Apple M1 Max
Memory: 259.67 MB / 32.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 20.16.0 - ~/.nvm/versions/node/v20.16.0/bin/node
npm: 10.8.1 - ~/.nvm/versions/node/v20.16.0/bin/npm
pnpm: 9.11.0 - ~/Library/pnpm/pnpm
bun: 1.0.2 - ~/.bun/bin/bun
Browsers:
Chrome: 129.0.6668.70
Safari: 17.6
npmPackages:
next: 14.2.13 => 14.2.13
next-auth: ^4.24.8 => 4.24.8
react: ^18 => 18.3.1
Reproduction URL
https://github.com/tacomanator/next-auth-adapter-4.24.8
Describe the issue
In upgrading from 4.24.7 to 4.24.8, the parameter types for the following Adapter
methods are missing (i.e. becoming implicit any
):
- createUser
- linkAccount
- unlinkAccount
How to reproduce
try to build typescript project with custom Adapter. For example, the reproduction repository uses the following:
import { Adapter, AdapterSession, AdapterUser } from "next-auth/adapters";
const data: { user: AdapterUser; session: AdapterSession } = {
user: { id: "test", name: "test", email: "test", emailVerified: new Date() },
session: { sessionToken: "test", userId: "test", expires: new Date() },
};
export default function MyAdapter(): Adapter {
return {
async createUser(user) {
console.log(user);
return;
},
async getUser(id) {
console.log(id);
return null;
},
async getUserByEmail(email) {
console.log(email);
return null;
},
async getUserByAccount({ providerAccountId, provider }) {
console.log(providerAccountId, provider);
return null;
},
async updateUser(user) {
console.log(user);
return data.user;
},
async deleteUser(userId) {
console.log(userId);
return;
},
async linkAccount(account) {
console.log(account);
return null;
},
async unlinkAccount({ providerAccountId, provider }) {
console.log(providerAccountId, provider);
return null;
},
async createSession({ sessionToken, userId, expires }) {
console.log(sessionToken, userId, expires);
return data.session;
},
async getSessionAndUser(sessionToken) {
console.log(sessionToken);
return null;
},
async updateSession({ sessionToken }) {
console.log(sessionToken);
return null;
},
async deleteSession(sessionToken) {
console.log(sessionToken);
return null;
},
async createVerificationToken({ identifier, expires, token }) {
console.log(identifier, expires, token);
return null;
},
async useVerificationToken({ identifier, token }) {
console.log(identifier, token);
return null;
},
};
}
Expected behavior
Types are present for parameters and can build.