index.ts raw
1 /**
2 * Social Bounded Context
3 *
4 * Handles following, muting, and other social graph relationships.
5 */
6
7 // Aggregates
8 export { FollowList } from './FollowList'
9 export type { FollowEntry, FollowListChange } from './FollowList'
10
11 export { MuteList } from './MuteList'
12 export type { MuteEntry, MuteVisibility, MuteListChange } from './MuteList'
13
14 export { PinnedUsersList, tryToPinnedUsersList } from './PinnedUsersList'
15 export type { PinnedUserEntry, PinnedUsersListChange } from './PinnedUsersList'
16
17 // Domain Events
18 export {
19 DomainEvent,
20 UserFollowed,
21 UserUnfollowed,
22 FollowListPublished,
23 UserMuted,
24 UserUnmuted,
25 MuteVisibilityChanged,
26 MuteListPublished
27 } from './events'
28 export type { SocialDomainEvent } from './events'
29
30 // Errors
31 export {
32 CannotFollowSelfError,
33 CannotMuteSelfError,
34 NotAuthenticatedError,
35 FollowListOperationError,
36 MuteListOperationError
37 } from './errors'
38
39 // Repository Interfaces
40 export type { FollowListRepository, MuteListRepository, PinnedUsersListRepository } from './repositories'
41
42 // Adapters for migration
43 export {
44 // FollowList adapters
45 toFollowList,
46 tryToFollowList,
47 fromFollowListToHexSet,
48 fromFollowListToHexArray,
49 isFollowingHex,
50 followByHex,
51 unfollowByHex,
52 // MuteList adapters
53 toMuteList,
54 tryToMuteList,
55 fromMuteListToHexSet,
56 fromMuteListToPublicHexSet,
57 fromMuteListToPrivateHexSet,
58 isMutedHex,
59 getMuteVisibilityByHex,
60 mutePubliclyByHex,
61 mutePrivatelyByHex,
62 unmuteByHex,
63 // PinnedUsersList adapters
64 toPinnedUsersList,
65 fromPinnedUsersListToHexSet,
66 isPinnedHex,
67 pinByHex,
68 unpinByHex,
69 // Combined adapters
70 createMuteFilter,
71 createFollowFilter,
72 createPinnedFilter
73 } from './adapters'
74