payload-authjs
Version:
A Payload CMS 3 plugin for Auth.js 5
86 lines (85 loc) • 3.07 kB
TypeScript
import { type AdapterAccount, type AdapterAuthenticator, type AdapterSession, type AdapterUser, type VerificationToken as AdapterVerificationToken } from "next-auth/adapters";
import type { DataFromCollectionSlug } from "payload";
import type { AuthCollectionSlug } from "../../payload/plugin";
type User = Omit<DataFromCollectionSlug<AuthCollectionSlug>, "createdAt" | "updatedAt">;
type Account = NonNullable<User["accounts"]>[0];
type Session = NonNullable<User["sessions"]>[0];
type VerificationToken = NonNullable<User["verificationTokens"]>[0];
type Authenticator = NonNullable<User["authenticators"]>[0];
/**
* Transform payload objects and adapter objects back and forth
*
* @see https://authjs.dev/guides/creating-a-database-adapter#official-adapter-guidelines
*/
export declare const transform: {
user: {
/**
* Modifications:
* - ~`accounts`~
* - ~`sessions`~
* - ~`verificationTokens`~
* - ~`authenticators`~
*/
toAdapter: (user: User) => AdapterUser;
/**
* No modifications
*/
fromAdapter: (adapterUser: AdapterUser) => Omit<User, "accounts" | "sessions" | "verificationTokens" | "authenticators">;
/**
* No modifications
*/
fromPartialAdapter: (adapterUser: Partial<AdapterUser>) => Partial<Omit<User, "accounts" | "sessions" | "verificationTokens" | "authenticators">>;
};
account: {
/**
* Modifications:
* - `user.id` --> `userId`
*/
toAdapter: (user: Pick<User, "id">, account: Account) => AdapterAccount;
/**
* Modifications:
* - ~`userId`~
*/
fromAdapter: (adapterAccount: AdapterAccount) => Account;
};
session: {
toAdapter: (user: Pick<User, "id">, session: Session) => AdapterSession;
/**
* Modifications:
* - ~`userId`~
*/
fromAdapter: (adapterSession: AdapterSession) => Session;
/**
* Modifications:
* - ~`userId`~
*/
fromPartialAdapter: (adapterSession: Partial<AdapterSession>) => Partial<Session>;
};
verificationToken: {
/**
* Modifications:
* - `user.email` --> `identifier`
*/
toAdapter: (user: Pick<User, "email">, verificationToken: VerificationToken) => AdapterVerificationToken;
/**
* Modifications:
* - ~`identifier`~
*/
fromAdapter: (adapterVerificationToken: AdapterVerificationToken) => VerificationToken;
};
authenticator: {
/**
* Modifications:
* - `user.id` --> `userId`
* - `authenticator.credentialID` --> `providerAccountId`
*/
toAdapter: (user: Pick<User, "id">, authenticator: Authenticator) => AdapterAuthenticator;
/**
* Modifications:
* - ~`userId`~
* - ~`providerAccountId`~
*/
fromAdapter: (adapterAuthenticator: AdapterAuthenticator) => Authenticator;
};
};
export {};