UNPKG

next-auth-pubkey

Version:

A light-weight Lightning and Nostr auth provider for your Next.js app that's entirely self-hosted and plugs seamlessly into the next-auth framework.

103 lines 2.63 kB
import { QRGenerator, AvatarGenerator, NameGenerator } from "../../generators/types.js"; export type HardConfig = { apis: { create: string; poll: string; callback: string; token: string; lightningSignIn: string; nostrSignIn: string; avatar: string; qr: string; diagnostics: string; }; ids: { wrapper: string; title: string; qr: string; copy: string; button: string; loading: string; error: string; details: string; }; intervals: { refreshToken: number; idToken: number; }; }; export type StorageData = { k1: string; state: string; pubkey?: string | null; sig?: string | null; success?: boolean | null; [key: string | number | symbol]: unknown; }; export type RequiredConfig = { baseUrl: string; secret: string; storage: { set: (args: { k1: string; data: { k1: string; state: string; }; }, url: URL, config: Config) => Promise<undefined>; get: (args: { k1: string; }, url: URL, config: Config) => Promise<StorageData | null | undefined>; update: (args: { k1: string; data: { pubkey: string; sig: string; success: boolean; }; }, url: URL, config: Config) => Promise<undefined>; delete: (args: { k1: string; }, url: URL, config: Config) => Promise<undefined>; }; generateQr: QRGenerator; }; export type ThemeStyles = { background: string; backgroundCard: string; text: string; signInButtonBackground: string; signInButtonText: string; qrBackground: string; qrForeground: string; qrMargin: number; }; type DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]>; } : T; export type OptionalConfig = { pages: { lightningSignIn: string; nostrSignIn: string; error: string; }; generateAvatar: AvatarGenerator | null; generateName: NameGenerator | null; flags: { diagnostics: boolean; logs: boolean; }; theme: { colorScheme?: "dark" | "light"; } & ThemeStyles; intervals: { poll: number; create: number; }; }; export type UserConfig = RequiredConfig & DeepPartial<OptionalConfig>; export type Config = HardConfig & RequiredConfig & OptionalConfig & { theme: ThemeStyles; }; export {}; //# sourceMappingURL=types.d.ts.map