index.ts raw

   1  /**
   2   * Feed Bounded Context
   3   *
   4   * Handles timeline management, feed configuration, note composition,
   5   * and content filtering.
   6   */
   7  
   8  // Aggregates
   9  export { Feed, type FeedState, type FeedSwitchOptions, type TimelineQueryOptions } from './Feed'
  10  export {
  11    NoteComposer,
  12    type NoteComposerOptions,
  13    type PollOption,
  14    type PollConfig,
  15    type ValidationResult,
  16    type ExtractedContent
  17  } from './NoteComposer'
  18  
  19  // Value Objects
  20  export { FeedType, type FeedTypeValue } from './FeedType'
  21  export {
  22    MediaAttachment,
  23    type MediaType,
  24    type UploadStatus,
  25    type ImageMetadata
  26  } from './MediaAttachment'
  27  export {
  28    Mention,
  29    MentionList,
  30    type MentionType
  31  } from './Mention'
  32  export {
  33    ContentFilter,
  34    type NsfwDisplayPolicy,
  35    type FilterContext,
  36    type FilterResult,
  37    type FilterReason
  38  } from './ContentFilter'
  39  export {
  40    RelayStrategy,
  41    type RelayStrategyType,
  42    type RelayListResolver
  43  } from './RelayStrategy'
  44  export {
  45    TimelineQuery,
  46    DEFAULT_TIMELINE_KINDS,
  47    DEFAULT_TIMELINE_LIMIT,
  48    type TimelineQueryParams
  49  } from './TimelineQuery'
  50  export { ReplyContext, type EventReference } from './ReplyContext'
  51  export { QuoteContext } from './QuoteContext'
  52  
  53  // Domain Services
  54  export {
  55    FeedFilter,
  56    SimpleMuteChecker,
  57    SimpleTrustChecker,
  58    SimpleDeletionChecker,
  59    SimplePinnedChecker,
  60    type MuteChecker,
  61    type TrustChecker,
  62    type DeletionChecker,
  63    type PinnedChecker,
  64    type FilteredEvent,
  65    type FilterStats
  66  } from './FeedFilter'
  67  
  68  // Domain Events
  69  export {
  70    // Feed configuration events
  71    FeedSwitched,
  72    ContentFilterUpdated,
  73    FeedRefreshed,
  74    // Note lifecycle events
  75    NoteCreated,
  76    NoteDeleted,
  77    NoteReplied,
  78    UsersMentioned,
  79    // Timeline events
  80    TimelineEventsReceived,
  81    TimelineEOSED,
  82    TimelineLoadedMore
  83  } from './events'
  84  
  85  // Repository Interfaces
  86  export type {
  87    FeedRepository,
  88    TimelineRepository,
  89    TimelineSubscription,
  90    TimelineResult,
  91    TimelineEventCallback,
  92    TimelineEOSECallback,
  93    TimelineCacheRepository,
  94    DraftRepository,
  95    Draft,
  96    DraftMetadata
  97  } from './repositories'
  98  
  99  // Adapters for migration
 100  export {
 101    // FeedType adapters
 102    toFeedType,
 103    tryToFeedType,
 104    fromFeedType,
 105    // Feed adapters
 106    toFeed,
 107    fromFeed,
 108    // FeedState adapters
 109    toFeedState,
 110    fromFeedState,
 111    // RelayUrl adapters
 112    toRelayUrls,
 113    fromRelayUrls,
 114    // Comparison utilities
 115    isSameFeedInfo,
 116    feedMatchesInfo
 117  } from './adapters'
 118