1pub(crate) mod circles;
12mod cloud_home_setup;
13mod cloud_outbox_live_query;
14pub(crate) mod coven;
15mod device_pairing;
16mod handle;
17#[cfg(test)]
18mod host_callback_error_tests;
19mod live_query;
20#[cfg(test)]
21mod live_query_tests;
22mod read;
23mod read_handle;
24pub(crate) mod store_blobs;
25pub(crate) mod store_circles;
26pub(crate) mod store_cloud_storage;
27pub(crate) mod store_joining;
28pub(crate) mod store_membership;
29pub(crate) mod store_recovery;
30pub(crate) mod store_rows;
31pub(crate) mod store_security;
32pub(crate) mod store_sync;
33#[cfg(test)]
34mod test_support;
35
36#[cfg(test)]
37mod blob_facade_tests;
38#[cfg(test)]
39mod prepared_external_blob_tests;
40#[cfg(test)]
41mod store_key_ownership_tests;
42
43pub use coven_database::rusqlite;
44
45pub use circles::{CircleError, Circles};
46pub use cloud_home_setup::{
47 CloudHomeRollbackError, CloudHomeSetupError, CloudHomeSetupFailure, CloudHomeUnlockError,
48 ConnectedCloudHome,
49};
50pub use cloud_outbox_live_query::CloudOutboxLiveQuery;
51pub use coven::{Coven, CovenBuilder, CovenConfig, CovenError, CovenResult};
52pub use coven_database::prepare_external_blob;
53pub use coven_database::{
54 BlobFileFailure, BlobFileFailures, CloudOutboxSnapshot, DbError, ExternalBlob,
55 MakeRemoteProgress, OutboxFailure, OutboxFailureKind, PreparedExternalBlob, QueuedDelete,
56 QueuedMakeRemote, QueuedUpload, QueuedUploadPhase, SqlContext, SqlReadContext,
57 StuckReclaimOperation, WriteBatch,
58};
59pub use coven_database::{CovenMigrationError, CovenMigrationPolicy};
60pub use coven_database::{Migration, MigrationContext, MigrationError, MigrationStep};
61pub use coven_domain::joining::{join_with_device_pairing, DeviceJoinTransportOutcome};
62pub use coven_domain::joining::{
63 BootstrapError, DevicePairingError, DevicePairingHost, DevicePairingOffer, DevicePairingPhase,
64 DevicePairingRequest, DevicePairingTransportError, PreparedDevicePairing,
65 SealedDevicePairingRequest,
66};
67pub use coven_domain::restoration::{
68 decode_restore_code_info, restore_from_cloud, restore_from_code, ActivatedContinuation,
69 OwnerRecoveryAuthority, RestoreAuthority, RestoreCodeError, RestoreCodeInfo, RestoreSource,
70};
71pub use coven_foundation::atomic_file::{write_atomic, WriteError};
72pub use coven_foundation::changeset::{ChangeOp, RowChange};
73#[cfg(any(test, feature = "test-utils"))]
74pub use coven_foundation::clock::FixedClock;
75pub use coven_foundation::clock::{Clock, ClockRef, SystemClock};
76pub use coven_foundation::config::{
77 CloudHomeConfig, CloudProvider, Config, ConfigError, ExactUploadVerification, HomeStorage,
78};
79#[cfg(any(test, feature = "test-utils"))]
80pub use coven_foundation::id_provider::SequentialIdProvider;
81pub use coven_foundation::id_provider::{IdProvider, IdRef, UuidProvider};
82pub use coven_foundation::store_dir::{StoreDir, StoreLayout};
83pub use coven_keys::custody::{KeyCustody, Passphrase};
84#[cfg(any(test, feature = "test-utils"))]
85pub use coven_keys::encryption::EncryptionService;
86pub use coven_keys::encryption::{
87 EncryptionError, KeyFingerprint, MasterKeyring, SealError, CHUNK_SIZE,
88};
89pub use coven_keys::identity_custody::IdentityCustody;
90#[cfg(any(test, feature = "test-utils", debug_assertions))]
91pub use coven_keys::keys::test_keyring::install_for_service as install_test_keyring_service;
92#[cfg(all(
93 any(test, feature = "test-utils"),
94 any(target_os = "macos", target_os = "ios")
95))]
96pub use coven_keys::keys::{apple_keyring_entry_facts_for_test, AppleKeyringEntryFacts};
97pub use coven_keys::keys::{
98 keyring_service, set_keyring_service, CloudHomeCredentials, DeviceIdentityCustody,
99 IdentityError, KeyError, MasterKeyCustody, MasterKeyError, StoreKeys, UserKeypair,
100};
101pub use coven_protocol::blob::{
102 content_hash, BlobRef, BlobReplacement, BlobScope, BlobTransitionObserver, CacheFill,
103 Provenance, RowBlobAuthority, RowBlobRef, TransferLimits,
104};
105pub use coven_protocol::hlc::Timestamp;
106pub use coven_protocol::objects::{
107 ExactObjectRef, ObjectSlot, PhysicalObjectLocator, StorageError,
108};
109pub use coven_protocol::reclaim::ReclaimTarget;
110pub use coven_protocol::synced_schema::{BlobDecl, RowIdentity, SyncedTable};
111pub use coven_protocol::write::{
112 AffectedRow, PendingWrite, PublishedPosition, PublishedWrite, SnapshotCoveredPosition,
113 WriteBlock, WriteId, WriteRebaseConflict, WriteRebaseConflictReason, WriteReceipt,
114 WriteResolution, WriteStatus,
115};
116pub use coven_protocol::{
117 Audience, Circle, CircleCloseParticipant, CircleCloseSettlement, CircleCloseStatus,
118 CircleControlCoord, CircleEpochCloseId, CircleId, CircleMemberInfo, CircleOperationBlock,
119 CircleOperationId, CircleOperationInfo, CircleOperationKind, CircleOperationState, CircleRole,
120 CircleState, CommitFrontier, CrossPrincipalProbeReceipt, DeviceJoinAttemptId,
121 ExactSlotProbeReceipt, MemberInfo, MemberRole, ObjectHash, ProviderAccessLocator,
122 ProviderAccessWithdrawal, ProviderAdminGrantId, ProviderAdminGrantRecord,
123 ProviderCapabilityProof, StoreBatchCommitRef, StoreCommitCoord, StoreDeviceId,
124 StoreMemberProviderAccessGrantRef,
125};
126pub use coven_protocol::{
127 AwsPrincipal, CloudKitEnvironment, GoogleDriveCorpus, ProviderDeviceBinding,
128 ProviderPrincipalId, ResolvedProviderBinding, S3EndpointBinding, StoreProviderBinding,
129};
130pub use coven_replication::blob::{
131 DrainOutcome, UploadFailure, UploadFailureCause, UploadFailures,
132};
133pub use coven_replication::blob::{MakeLocalError, MakeRemoteError, MakeRemoteRoot};
134pub use coven_replication::sync::{
135 AdmittingDeviceJoinProgress, BlobCacheError, BlobStream, BlockedOperation, BlockedOperationId,
136 DeviceActivity, DeviceJoinAbandonment, DeviceJoinAction, DeviceJoinActivation,
137 DeviceJoinApproval, DeviceJoinApprovalPolicy, DeviceJoinDriveOutcome, DeviceJoinError,
138 DeviceJoinJournalDatabase, DeviceJoinJournalRecord, DeviceJoinOffer, DeviceJoinOfferBundle,
139 DeviceJoinReadiness, DeviceJoinRole, DeviceJoinStatus, DeviceJoinTransportError,
140 DeviceJoinTransportKind, DeviceJoinTransportParams, DeviceJoinTransportTiming,
141 DeviceProviderAccessAdministrator, DeviceProviderAccessRequest,
142 DeviceProviderAdmissionApproval, DeviceProviderAdmissionCompletion, DeviceProviderReadiness,
143 DeviceRegistrationRequest, EagerCacheFillError, EagerCacheFillProgress, EagerCacheFillStatus,
144 HeldStoreCoordinate, HeldStorePosition, HeldStorePositionReason, JoinedStore,
145 JoiningDeviceJoinProgress, JoiningDeviceJoinProgressObserver, ProviderReadyDeviceBootstrap,
146 ProvisionalDeviceBootstrap, RetryStuckReclaimError, SyncError, SyncLoopAlerts, SyncLoopFailure,
147 SyncLoopStatus, SyncLoopSuccess,
148};
149#[cfg(feature = "oauth-providers")]
150pub use coven_storage::fetch_account_email;
151pub use coven_storage::no_progress;
152#[cfg(feature = "oauth-providers")]
153pub use coven_storage::oauth::OAuthError;
154#[cfg(feature = "oauth-providers")]
155pub use coven_storage::oauth::{AuthorizeRequest, OAuthClientCreds, OAuthClientCredsError};
156pub use coven_storage::oauth::{OAuthClients, OAuthTokens};
157#[cfg(feature = "test-utils")]
158pub use coven_storage::CloudCipher;
159#[cfg(any(test, feature = "test-utils"))]
160pub use coven_storage::InMemoryCloudHome;
161pub use coven_storage::{
162 write_cloud_object_stream, BlobBody, BoxPartSink, CloudAccessOutcome, CloudAccessState,
163 CloudFileReadError, CloudHome, CloudHomeError, CloudHomeJoinInfo, CloudKitAcceptedShareRecord,
164 CloudKitAtomicCreateBatch, CloudKitOps, CloudKitProviderIdentity, CloudKitRecordCreate,
165 CloudKitRecordVersion, CloudKitScope, CloudKitShare, CloudKitShareAcceptance,
166 CloudKitSharePermission, CloudObjectStream, CloudObjectVersion, CloudVersionedObject,
167 ConditionalWriteOutcome, DownloadProgress, ExactCloudHome, ExactCreateOutcome,
168 ExactSlotStorage, ExactUpload, ExactUploadSource, PartSink, S3CloudHome, UploadControl,
169 UploadProgress,
170};
171pub use device_pairing::{ApproveDevicePairingError, StartDevicePairingError};
172pub use handle::{CovenHandle, RetryBlockedOperationError};
173pub use live_query::{
174 LiveQuery, LiveQueryClosed, LiveQueryRequests, LiveQueryRevision, ReconfigurableLiveQuery,
175 ReconfigurableLiveQueryCause, ReconfigurableLiveQueryEvent,
176};
177pub use read::Read;
178pub use read_handle::CovenReadHandle;
179pub use store_joining::DeviceAdmissionError;
180pub use store_security::CloudHomeKeyState;