UNPKG

feedsmith

Version:

Fast, all‑in‑one feed parser and generator for RSS, Atom, RDF, and JSON Feed, with support for Podcast, iTunes, Dublin Core, and OPML files.

163 lines 5.46 kB
import { DateLike } from "../../../common/types.js"; import { AdminNs } from "../../../namespaces/admin/common/types.js"; import { CcNs } from "../../../namespaces/cc/common/types.js"; import { CreativeCommonsNs } from "../../../namespaces/creativecommons/common/types.js"; import { DcNs } from "../../../namespaces/dc/common/types.js"; import { DcTermsNs } from "../../../namespaces/dcterms/common/types.js"; import { GeoNs } from "../../../namespaces/geo/common/types.js"; import { GeoRssNs } from "../../../namespaces/georss/common/types.js"; import { GooglePlayNs } from "../../../namespaces/googleplay/common/types.js"; import { ItunesNs } from "../../../namespaces/itunes/common/types.js"; import { MediaNs } from "../../../namespaces/media/common/types.js"; import { OpenSearchNs } from "../../../namespaces/opensearch/common/types.js"; import { PingbackNs } from "../../../namespaces/pingback/common/types.js"; import { PscNs } from "../../../namespaces/psc/common/types.js"; import { SlashNs } from "../../../namespaces/slash/common/types.js"; import { SyNs } from "../../../namespaces/sy/common/types.js"; import { ThrNs } from "../../../namespaces/thr/common/types.js"; import { TrackbackNs } from "../../../namespaces/trackback/common/types.js"; import { WfwNs } from "../../../namespaces/wfw/common/types.js"; import { AtomNs } from "../../../namespaces/atom/common/types.js"; import { ContentNs } from "../../../namespaces/content/common/types.js"; import { AcastNs } from "../../../namespaces/acast/common/types.js"; import { BlogChannelNs } from "../../../namespaces/blogchannel/common/types.js"; import { FeedPressNs } from "../../../namespaces/feedpress/common/types.js"; import { PodcastNs } from "../../../namespaces/podcast/common/types.js"; import { PrismNs } from "../../../namespaces/prism/common/types.js"; import { RawVoiceNs } from "../../../namespaces/rawvoice/common/types.js"; import { SourceNs } from "../../../namespaces/source/common/types.js"; import { SpotifyNs } from "../../../namespaces/spotify/common/types.js"; //#region src/feeds/rss/common/types.d.ts declare namespace Rss { /** @internal Intermediary type before Person refactoring. Do not use downstream. */ type PersonLike = string | { name?: string; email?: string; }; type Person = string; type Category = { name: string; domain?: string; }; type Cloud = { domain: string; port: number; path: string; registerProcedure: string; protocol: string; }; type Image = { url: string; title: string; link: string; description?: string; height?: number; width?: number; }; type TextInput = { title: string; description: string; name: string; link: string; }; type Enclosure = { url: string; length: number; type: string; }; type SkipHours = Array<number>; type SkipDays = Array<string>; type Guid = { value: string; isPermaLink?: boolean; }; type Source = { title: string; url?: string; }; type Item<TDate extends DateLike, TPerson extends PersonLike = Person> = { title?: string; link?: string; description?: string; authors?: Array<TPerson>; categories?: Array<Category>; comments?: string; enclosures?: Array<Enclosure>; guid?: Guid; pubDate?: TDate; source?: Source; atom?: AtomNs.Entry<TDate>; cc?: CcNs.ItemOrFeed; dc?: DcNs.ItemOrFeed<TDate>; content?: ContentNs.Item; creativeCommons?: CreativeCommonsNs.ItemOrFeed; slash?: SlashNs.Item; itunes?: ItunesNs.Item; podcast?: PodcastNs.Item; psc?: PscNs.Item; googleplay?: GooglePlayNs.Item; media?: MediaNs.ItemOrFeed; georss?: GeoRssNs.ItemOrFeed; geo?: GeoNs.ItemOrFeed; thr?: ThrNs.Item; dcterms?: DcTermsNs.ItemOrFeed<TDate>; prism?: PrismNs.Item<TDate>; wfw?: WfwNs.Item; sourceNs?: SourceNs.Item; rawvoice?: RawVoiceNs.Item; spotify?: SpotifyNs.Item; pingback?: PingbackNs.Item; trackback?: TrackbackNs.Item; acast?: AcastNs.Item; } & ({ title: string; } | { description: string; }); type Feed<TDate extends DateLike, TPerson extends PersonLike = Person> = { title: string; link?: string; description: string; language?: string; copyright?: string; managingEditor?: TPerson; webMaster?: TPerson; pubDate?: TDate; lastBuildDate?: TDate; categories?: Array<Category>; generator?: string; docs?: string; cloud?: Cloud; ttl?: number; image?: Image; rating?: string; textInput?: TextInput; skipHours?: Array<number>; skipDays?: Array<string>; items?: Array<Item<TDate, TPerson>>; atom?: AtomNs.Feed<TDate>; cc?: CcNs.ItemOrFeed; dc?: DcNs.ItemOrFeed<TDate>; sy?: SyNs.Feed<TDate>; itunes?: ItunesNs.Feed; podcast?: PodcastNs.Feed<TDate>; googleplay?: GooglePlayNs.Feed; media?: MediaNs.ItemOrFeed; georss?: GeoRssNs.ItemOrFeed; geo?: GeoNs.ItemOrFeed; dcterms?: DcTermsNs.ItemOrFeed<TDate>; prism?: PrismNs.Feed<TDate>; creativeCommons?: CreativeCommonsNs.ItemOrFeed; feedpress?: FeedPressNs.Feed; opensearch?: OpenSearchNs.Feed; admin?: AdminNs.Feed; sourceNs?: SourceNs.Feed; blogChannel?: BlogChannelNs.Feed; rawvoice?: RawVoiceNs.Feed<TDate>; spotify?: SpotifyNs.Feed; pingback?: PingbackNs.Feed; acast?: AcastNs.Feed; }; } //#endregion export { Rss };