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
TypeScript
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 };