// mostly compat with 'feed' package
import typia from 'typia';
export const isRssOptions = (() => { const _io0 = input => (undefined === input.id || "string" === typeof input.id) && "string" === typeof input.title && (undefined === input.updated || "string" === typeof input.updated || "number" === typeof input.updated) && (undefined === input.generator || "string" === typeof input.generator) && (undefined === input.language || "string" === typeof input.language) && (undefined === input.ttl || "number" === typeof input.ttl) && (undefined === input.stylesheet || "string" === typeof input.stylesheet) && (undefined === input.feed || "string" === typeof input.feed) && (undefined === input.feedLinks || "object" === typeof input.feedLinks && null !== input.feedLinks && false === Array.isArray(input.feedLinks) && _io1(input.feedLinks)) && (undefined === input.hub || "string" === typeof input.hub) && (undefined === input.docs || "string" === typeof input.docs) && (undefined === input.podcast || "boolean" === typeof input.podcast) && (undefined === input.category || "string" === typeof input.category) && (undefined === input.author || "object" === typeof input.author && null !== input.author && false === Array.isArray(input.author) && _io2(input.author)) && (undefined === input.link || "string" === typeof input.link) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.image || "string" === typeof input.image) && (undefined === input.favicon || "string" === typeof input.favicon) && (undefined === input.copyright || "string" === typeof input.copyright); const _io1 = input => (undefined === input.rss || "string" === typeof input.rss) && (undefined === input.atom || "string" === typeof input.atom) && (undefined === input.json || "string" === typeof input.json) && Object.keys(input).every(key => {
    if (["rss", "atom", "json"].some(prop => key === prop))
        return true;
    const value = input[key];
    if (undefined === value)
        return true;
    return undefined === value || "string" === typeof value;
}); const _io2 = input => (undefined === input.name || "string" === typeof input.name) && (undefined === input.email || "string" === typeof input.email) && (undefined === input.link || "string" === typeof input.link) && (undefined === input.avatar || "string" === typeof input.avatar); return input => "object" === typeof input && null !== input && _io0(input); })();
export const isRssItem = (() => { const _io0 = input => (undefined === input.title || "string" === typeof input.title) && (undefined === input.id || "string" === typeof input.id) && (undefined === input.link || "string" === typeof input.link) && (undefined === input.date || "string" === typeof input.date || "number" === typeof input.date) && (undefined === input.description || "string" === typeof input.description) && (undefined === input.content || "string" === typeof input.content) && (undefined === input.category || Array.isArray(input.category) && input.category.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io1(elem))) && (undefined === input.guid || "string" === typeof input.guid) && (null !== input.image && (undefined === input.image || "string" === typeof input.image || "object" === typeof input.image && null !== input.image && _io2(input.image))) && (null !== input.audio && (undefined === input.audio || "string" === typeof input.audio || "object" === typeof input.audio && null !== input.audio && _io2(input.audio))) && (null !== input.video && (undefined === input.video || "string" === typeof input.video || "object" === typeof input.video && null !== input.video && _io2(input.video))) && (undefined === input.enclosure || "object" === typeof input.enclosure && null !== input.enclosure && _io2(input.enclosure)) && (undefined === input.author || Array.isArray(input.author) && input.author.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io3(elem))) && (undefined === input.contributor || Array.isArray(input.contributor) && input.contributor.every(elem => "object" === typeof elem && null !== elem && false === Array.isArray(elem) && _io3(elem))) && (undefined === input.published || "string" === typeof input.published || "number" === typeof input.published) && (undefined === input.copyright || "string" === typeof input.copyright) && (undefined === input.extensions || Array.isArray(input.extensions) && input.extensions.every(elem => "object" === typeof elem && null !== elem && _io4(elem))); const _io1 = input => (undefined === input.name || "string" === typeof input.name) && (undefined === input.domain || "string" === typeof input.domain) && (undefined === input.scheme || "string" === typeof input.scheme) && (undefined === input.term || "string" === typeof input.term); const _io2 = input => "string" === typeof input.url && (undefined === input.type || "string" === typeof input.type) && (undefined === input.length || "number" === typeof input.length) && (undefined === input.title || "string" === typeof input.title) && (undefined === input.duration || "number" === typeof input.duration); const _io3 = input => (undefined === input.name || "string" === typeof input.name) && (undefined === input.email || "string" === typeof input.email) && (undefined === input.link || "string" === typeof input.link) && (undefined === input.avatar || "string" === typeof input.avatar); const _io4 = input => "string" === typeof input.name && true; return input => "object" === typeof input && null !== input && false === Array.isArray(input) && _io0(input); })();
