Graphical PDS migrator for AT Protocol
1import type { 2 NodeSavedSession, 3 NodeSavedSessionStore, 4 NodeSavedState, 5 NodeSavedStateStore, 6} from "jsr:@bigmoves/atproto-oauth-client"; 7 8export class StateStore implements NodeSavedStateStore { 9 constructor(private db: Deno.Kv) {} 10 async get(key: string): Promise<NodeSavedState | undefined> { 11 const result = await this.db.get<NodeSavedState>(["auth_state", key]); 12 return result.value ?? undefined; 13 } 14 async set(key: string, val: NodeSavedState) { 15 await this.db.set(["auth_state", key], val); 16 } 17 async del(key: string) { 18 await this.db.delete(["auth_state", key]); 19 } 20} 21 22export class SessionStore implements NodeSavedSessionStore { 23 constructor(private db: Deno.Kv) {} 24 async get(key: string): Promise<NodeSavedSession | undefined> { 25 const result = await this.db.get<NodeSavedSession>(["auth_session", key]); 26 return result.value ?? undefined; 27 } 28 async set(key: string, val: NodeSavedSession) { 29 await this.db.set(["auth_session", key], val); 30 } 31 async del(key: string) { 32 await this.db.delete(["auth_session", key]); 33 } 34}