Main coves client
1/// Identity resolution for atProto.
2///
3/// This module provides the core identity resolution functionality for atProto,
4/// enabling decentralized identity through handle and DID resolution.
5///
6/// ## Key Components
7///
8/// - **IdentityResolver**: Main interface for resolving handles/DIDs to identity info
9/// - **HandleResolver**: Resolves atProto handles (e.g., "alice.bsky.social") to DIDs
10/// - **DidResolver**: Resolves DIDs to DID documents
11/// - **DidDocument**: Represents a DID document with services and handles
12///
13/// ## Why This Matters for Decentralization
14///
15/// This is the **most important module for atProto decentralization**. It enables:
16/// 1. Users to host their data on any PDS, not just bsky.social
17/// 2. Custom domain handles (e.g., "alice.example.com")
18/// 3. Portable identity (change PDS without losing identity)
19///
20/// ## Usage
21///
22/// ```dart
23/// // Create a resolver
24/// final resolver = AtprotoIdentityResolver.withDefaults(
25/// handleResolverUrl: 'https://bsky.social',
26/// );
27///
28/// // Resolve a handle to find their PDS
29/// final pdsUrl = await resolver.resolveToPds('alice.bsky.social');
30/// print('Alice\'s PDS: $pdsUrl');
31///
32/// // Get full identity info
33/// final info = await resolver.resolve('alice.bsky.social');
34/// print('DID: ${info.did}');
35/// print('Handle: ${info.handle}');
36/// print('PDS: ${info.pdsUrl}');
37/// ```
38library;
39
40export 'constants.dart';
41export 'did_document.dart';
42export 'did_helpers.dart';
43export 'did_resolver.dart';
44export 'handle_helpers.dart';
45export 'handle_resolver.dart';
46export 'identity_resolver.dart';
47export 'identity_resolver_error.dart';