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