/**
 * Minified by jsDelivr using Terser v5.39.0.
 * Original file: /npm/podcast-feed-parser@1.0.4/index.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
const fetch=require("isomorphic-fetch"),parseString=require("xml2js").parseString,ERRORS=exports.ERRORS={parsingError:new Error("Parsing error."),requiredError:new Error("One or more required values are missing from feed."),fetchingError:new Error("Fetching error."),optionsError:new Error("Invalid options.")},DEFAULT=exports.DEFAULT={fields:{meta:["title","description","subtitle","imageURL","lastUpdated","link","language","editor","author","summary","categories","owner","explicit","complete","blocked"],episodes:["title","description","subtitle","imageURL","pubDate","link","language","enclosure","duration","summary","blocked","explicit","order"]},required:{meta:[],episodes:[]},uncleaned:{meta:[],episodes:[]}};function mergeDedupe(e){return[...new Set([].concat(...e))]}const buildOptions=exports.buildOptions=function(e){try{let t={fields:{meta:["title","description","subtitle","imageURL","lastUpdated","link","language","editor","author","summary","categories","owner","explicit","complete","blocked"],episodes:["title","description","subtitle","imageURL","pubDate","link","language","enclosure","duration","summary","blocked","explicit","order"]},required:{meta:[],episodes:[]},uncleaned:{meta:[],episodes:[]}};return void 0===e?(t=DEFAULT,t):(Object.keys(t).forEach((r=>{void 0!==e[r]&&Object.assign(t[r],e[r])})),t.fields.meta.includes("default")&&(t.fields.meta=mergeDedupe([DEFAULT.fields.meta,e.fields.meta]),t.fields.meta.splice(t.fields.meta.indexOf("default"),1)),t.fields.episodes.includes("default")&&(t.fields.episodes=mergeDedupe([DEFAULT.fields.episodes,e.fields.episodes]),t.fields.episodes.splice(t.fields.episodes.indexOf("default"),1)),t)}catch(e){throw ERRORS.optionsError}},GET=exports.GET={imageURL:function(e){return e.image?e.image[0].url[0]:e["itunes:image"]?e["itunes:image"][0].$.href:void 0},subtitle:function(e){return e["itunes:subtitle"]},lastUpdated:function(e){return e.lastBuildDate},editor:function(e){return e.managingEditor},author:function(e){return e["itunes:author"]},summary:function(e){return e["itunes:summary"]},owner:function(e){return e["itunes:owner"]},explicit:function(e){return e["itunes:explicit"]},complete:function(e){return e["itunes:complete"]},blocked:function(e){return e["itunes:block"]},order:function(e){return e["itunes:order"]},guid:function(e){return e.guid&&e.guid[0]},duration:function(e){return e["itunes:duration"]},categories:function(e){let t=[];return e["itunes:category"]&&e["itunes:category"].length>0&&(t=e["itunes:category"].map((e=>{let t=[];return t.push(e.$.text),e["itunes:category"]&&t.push(e["itunes:category"][0].$.text),t}))),t}},getDefault=exports.getDefault=function(e,t){return e[t]?e[t]:void 0},CLEAN=exports.CLEAN={enclosure:function(e){return{length:e[0].$.length,type:e[0].$.type,url:e[0].$.url}},duration:function(e){let t=e[0].split(":"),r=0,n=1;for(;t.length>0;)r+=n*parseInt(t.pop()),n*=60;return r},owner:function(e){let t={};return e[0].hasOwnProperty("itunes:name")&&(t.name=e[0]["itunes:name"][0]),e[0].hasOwnProperty("itunes:email")&&(t.email=e[0]["itunes:email"][0]),t},lastUpdated:function(e){return new Date(e).toISOString()},pubDate:function(e){return new Date(e).toISOString()},guid:function(e){return"object"==typeof e&&"_"in e?e._:e},complete:function(e){return"yes"==e[0].toLowerCase},blocked:function(e){return"yes"==e.toLowerCase},explicit:function(e){return!!["yes","explicit","true"].includes(e[0].toLowerCase())||!["clean","no","false"].includes(e[0].toLowerCase())&&void 0},imageURL:function(e){return e}},cleanDefault=exports.cleanDefault=function(e){return void 0!==e&&void 0!==e[0]?e[0]:e},getInfo=exports.getInfo=function(e,t,r){var n;return n=GET[t]?GET[t].call(this,e):getDefault(e,t),r||void 0===n||(n=CLEAN[t]?CLEAN[t].call(this,n):cleanDefault(n)),n};function createMetaObjectFromFeed(e,t){const r={};return t.fields.meta.forEach((n=>{const i={};var o=!1;if(t.uncleaned&&t.uncleaned.meta)o=t.uncleaned.meta.includes(n);i[n]=getInfo(e,n,o),Object.assign(r,i)})),t.required&&t.required.meta&&t.required.meta.forEach((e=>{if(!Object.keys(r).includes(e))throw ERRORS.requiredError})),r}function createEpisodesObjectFromFeed(e,t){let r=[];return e.item.forEach((e=>{const n={};t.fields.episodes.forEach((r=>{const i={};var o=!1;if(t.uncleaned&&t.uncleaned.episodes)o=t.uncleaned.episodes.includes(r);i[r]=getInfo(e,r,o),Object.assign(n,i)})),t.required&&t.required.episodes&&t.required.episodes.forEach((e=>{if(!Object.keys(n).includes(e))throw ERRORS.requiredError})),r.push(n)})),r.sort((function(e,t){return e.order==t.order?e.pubDate==t.pubDate?e.title>t.title?-1:1:t.pubDate>e.pubDate?1:-1:e.order&&!t.order?1:t.order&&!e.order||e.order>t.order?-1:1})),r}function promiseParseXMLFeed(e){return new Promise(((t,r)=>{parseString(e,((e,n)=>{e&&r(ERRORS.parsingError),t(n)}))}))}function parseXMLFeed(e){let t={};return parseString(e,((e,r)=>{if(e)throw ERRORS.parsingError;return Object.assign(t,r),r})),t}async function fetchFeed(e){try{const t=await fetch(e),r=await t.text();return await promiseParseXMLFeed(r)}catch(e){throw ERRORS.fetchingError}}const getPodcastFromURL=exports.getPodcastFromURL=async function(e,t){try{const r=buildOptions(t),n=(await fetchFeed(e)).rss.channel[0];if(n["itunes:new-feed-url"]){if(n["itunes:new-feed-url"][0]!=e)return await getPodcastFromURL(n["itunes:new-feed-url"][0],t)}const i=createMetaObjectFromFeed(n,r);return{meta:i,episodes:createEpisodesObjectFromFeed(n,r)}}catch(e){throw e}},getPodcastFromFeed=exports.getPodcastFromFeed=function(e,t){try{const r=buildOptions(t),n=parseXMLFeed(e).rss.channel[0];n["itunes:new-feed-url"]&&console.warn("\nWarning: Feed includes <itunes:new-feed-url> element, which indicates that the feed being parsed may be outdated.\n");const i=createMetaObjectFromFeed(n,r);return{meta:i,episodes:createEpisodesObjectFromFeed(n,r)}}catch(e){throw e}};
//# sourceMappingURL=/sm/de2a5608495cafacd3bd4811d556ed403bd9565030c2fc278ff28fcf5d124687.map