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}