serverless #atproto jetstream to webhook connector, powered by cloudflare durable objects
at main 39 lines 679 B view raw
1export interface JetstreamEvent { 2 did: string; 3 time_us: number; 4 kind: "commit" | "identity" | "account"; 5 commit?: { 6 rev: string; 7 operation: "create" | "update" | "delete"; 8 collection: string; 9 rkey: string; 10 record?: any; 11 cid?: string; 12 }; 13 identity?: { 14 did: string; 15 handle: string; 16 seq: number; 17 time: string; 18 }; 19 account?: { 20 active: boolean; 21 did: string; 22 seq: number; 23 time: string; 24 }; 25} 26 27export interface StoredStats { 28 cursor: number; 29 eventCounts: Record<string, number>; 30 totalEvents: number; 31 totalReceived: number; 32 lastEventTime: string; 33} 34 35export interface QueueMessage { 36 event: JetstreamEvent; 37 queuedAt: string; 38 retryCount?: number; 39}