UNPKG

userdo

Version:

A Durable Object base class that provides user authentication, per-user data storage, and real-time updates for Cloudflare Workers applications.

55 lines (54 loc) 1.72 kB
export interface AuthResponse { user: { id: string; email: string; }; token: string; refreshToken: string; } type ChangeListener = (data: any) => void; declare class UserDOClient { private baseUrl; private user; private authListeners; private ws; private changeListeners; constructor(baseUrl: string); private get headers(); private checkAuthStatus; private emitAuthChange; private connectWebSocket; private disconnectWebSocket; private handleRealtimeMessage; onAuthStateChanged(listener: (user: { id: string; email: string; } | null) => void): void; offAuthStateChanged(listener: (user: { id: string; email: string; } | null) => void): void; signup(email: string, password: string): Promise<AuthResponse>; login(email: string, password: string): Promise<AuthResponse>; logout(): Promise<void>; get(key: string): Promise<any>; set(key: string, value: any): Promise<{ ok: boolean; }>; onChange(key: string, listener: ChangeListener): () => void; collection(name: string): { create(data: any): Promise<unknown>; findById(id: string): Promise<unknown>; update(id: string, updates: any): Promise<unknown>; delete(id: string): Promise<void>; onChange(listener: ChangeListener): () => void; query(): { where(field: string, op: string, value: any): /*elided*/ any; orderBy(field: string, dir?: "asc" | "desc"): /*elided*/ any; limit(count: number): /*elided*/ any; get(): Promise<unknown>; }; }; } export { UserDOClient }; export default UserDOClient;