simple list of pds servers with open registration
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 84 lines 2.2 kB view raw
1/** A PDS server as stored in the database */ 2export type PdsServer = { 3 url: string; 4 first_seen: string; 5 last_seen: string; 6 last_enriched: string | null; 7 version: string | null; 8 pds_software: string | null; 9 did: string | null; 10 invite_code_required: boolean; 11 phone_verification: boolean; 12 user_domains: string[]; 13 contact_email: string | null; 14 privacy_policy: string | null; 15 terms_of_service: string | null; 16 user_count: number | null; 17 country_code: string | null; 18 country_name: string | null; 19 ip_address: string | null; 20 is_open: boolean; 21 error_at: number | null; 22}; 23 24/** Maps software ID to its latest version string */ 25export type LatestVersionMap = Record<string, string>; 26 27/** Maps a version string to the software ID that uses it */ 28export type VersionSoftwareMap = Record<string, string>; 29 30/** Raw PDS entry from mary-ext/atproto-scraping state.json */ 31export type StatePdsEntry = { 32 inviteCodeRequired: boolean; 33 version: string; 34 errorAt?: number; 35}; 36 37/** Shape of state.json from atproto-scraping */ 38export type StateJson = { 39 pdses: Record<string, StatePdsEntry>; 40}; 41 42/** Response from PDS describeServer endpoint */ 43export type DescribeServerResponse = { 44 did: string; 45 availableUserDomains: string[]; 46 inviteCodeRequired?: boolean; 47 phoneVerificationRequired?: boolean; 48 contact?: { email?: string }; 49 links?: { 50 privacyPolicy?: string; 51 termsOfService?: string; 52 }; 53}; 54 55/** Response from PDS _health endpoint */ 56export type HealthResponse = { 57 version?: string; 58}; 59 60/** Response from dns.google resolve API */ 61export type DnsResponse = { 62 Answer?: Array<{ data: string }>; 63}; 64 65/** Single entry in ip-api.com batch response */ 66export type GeoIpResult = { 67 status: string; 68 query: string; 69 country: string; 70 countryCode: string; 71}; 72 73/** Server data passed into enrichment (includes cached DNS/geo) */ 74export type ServerToEnrich = { 75 url: string; 76 ipAddress: string | null; 77 countryCode: string | null; 78 countryName: string | null; 79 lastEnriched: string | null; 80}; 81 82/** Sort options for the directory listing */ 83export type SortField = "trust"; 84export type SortDirection = "desc";