Feed Core Types
Core type definitions for the feed system, providing structured ways to query and filter Nostr events.
Feed Types
typescript
export enum FeedType {
Address = "address",
Author = "author",
CreatedAt = "created_at",
DVM = "dvm",
Difference = "difference",
ID = "id",
Intersection = "intersection",
Global = "global",
Kind = "kind",
List = "list",
Label = "label",
WOT = "wot",
Relay = "relay",
Scope = "scope",
Search = "search",
Tag = "tag",
Union = "union",
}
export enum Scope {
Followers = "followers",
Follows = "follows",
Network = "network",
Self = "self",
}
Item Types
typescript
export type DVMItem = {
kind: number
tags?: string[][]
relays?: string[]
mappings?: TagFeedMapping[]
}
export type ListItem = {
addresses: string[]
mappings?: TagFeedMapping[]
}
export type LabelItem = {
relays?: string[]
authors?: string[]
[key: `#${string}`]: string[]
mappings?: TagFeedMapping[]
}
export type WOTItem = {
min?: number
max?: number
}
export type CreatedAtItem = {
since?: number
until?: number
relative?: string[]
}
export type RequestItem = {
relays?: string[]
filters?: Filter[]
}
Feed Definitions
typescript
export type AddressFeed = [type: FeedType.Address, ...addresses: string[]]
export type AuthorFeed = [type: FeedType.Author, ...pubkeys: string[]]
export type CreatedAtFeed = [type: FeedType.CreatedAt, ...items: CreatedAtItem[]]
export type DVMFeed = [type: FeedType.DVM, ...items: DVMItem[]]
export type DifferenceFeed = [type: FeedType.Difference, ...feeds: Feed[]]
export type IDFeed = [type: FeedType.ID, ...ids: string[]]
export type IntersectionFeed = [type: FeedType.Intersection, ...feeds: Feed[]]
export type GlobalFeed = [type: FeedType.Global, ...feeds: Feed[]]
export type KindFeed = [type: FeedType.Kind, ...kinds: number[]]
export type ListFeed = [type: FeedType.List, ...items: ListItem[]]
export type LabelFeed = [type: FeedType.Label, ...items: LabelItem[]]
export type WOTFeed = [type: FeedType.WOT, ...items: WOTItem[]]
export type RelayFeed = [type: FeedType.Relay, ...urls: string[]]
export type ScopeFeed = [type: FeedType.Scope, ...scopes: Scope[]]
export type SearchFeed = [type: FeedType.Search, ...searches: string[]]
export type TagFeed = [type: FeedType.Tag, key: string, ...values: string[]]
export type UnionFeed = [type: FeedType.Union, ...feeds: Feed[]]
export type Feed = /* union of all feed types */