vare=Object.defineProperty,t=(e,t,n)=>()=>{if(n)thrown[0];try{returne&&(t=e(e=0)),t}catch(e){thrown=[e],e}},n=(t,n)=>{letr={};for(variint)e(r,i,{get:t[i],enumerable:!0});returnn||e(r,Symbol.toStringTag,{value:`Module`}),r};letr=require("obsidian");vari=globalThis.process?.env?.NODE_ENV,a=i&&!i.toLowerCase().startsWith(`prod`),o=Array.isArray,s=Array.prototype.indexOf,c=Array.prototype.includes,l=Array.from,u=Object.defineProperty,d=Object.getOwnPropertyDescriptor,f=Object.getOwnPropertyDescriptors,p=Object.prototype,m=Array.prototype,h=Object.getPrototypeOf,g=Object.isExtensible;function_(e){returntypeofe==`function`}varv=()=>{};functiony(e){returne()}functionb(e){for(vart=0;t<e.length;t++)e[t]()}functionx(){vare,t;return{promise:newPromise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}functionS(e){"@babel/helpers - typeof";returnS=typeofSymbol==`function`&&typeofSymbol.iterator==`symbol`?function(e){returntypeofe}:function(e){returne&&typeofSymbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeofe},S(e)}functionee(e,t){if(S(e)!=`object`||!e)returne;varn=e[Symbol.toPrimitive];if(n!==void0){varr=n.call(e,t||`default`);if(S(r)!=`object`)returnr;throwTypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}functionte(e){vart=ee(e,`string`);returnS(t)==`symbol`?t:t+``}functionne(e,t,n){return(t=te(t))ine?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}varre=1024,ie=2048,ae=4096,oe=8192,se=16384,ce=32768,le=1<<25,ue=65536,de=1<<19,fe=1<<20,pe=1<<25,me=65536,he=1<<21,ge=1<<22,_e=1<<23,ve=Symbol(`$state`),ye=Symbol(`legacy props`),be=Symbol(``),xe=Symbol(`proxy path`),Se=Symbol(`attributes`),Ce=Symbol(`class`),we=Symbol(`style`),Te=Symbol(`text`),Ee=Symbol(`hmr anchor`),De=newclassextendsError{constructor(...e){super(...e),ne(this,`name`,`StaleReactionError`),ne(this,`message`,"The reaction that called `getAbortSignal()` was re-run or destroyed")}},Oe=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`);functionke(e){returne===this.v}functionAe(e,t){returne==e?e!==t||typeofe==`object`&&!!e||typeofe==`function`:t==t}functionje(e){return!Ae(e,this.v)}functionMe(e){if(a){lett=Error(`lifecycle_outside_component\n\`${e}(...)\` can only be used during component initialisation\nhttps://svelte.dev/e/lifecycle_outside_component`);throwt.name=`Svelte error`,t}throwError(`https://svelte.dev/e/lifecycle_outside_component`)}functionNe(){if(a){lete=Error("async_derived_orphan\nCannot create a `$derived(...)` with an `await` expression outside of an effect tree\nhttps://svelte.dev/e/async_derived_orphan");throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/async_derived_orphan`)}functionPe(){if(a){lete=Error(`derived_references_self
https://svelte.dev/e/derived_references_self`);throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/derived_references_self`)}functionFe(e,t,n){if(a){letr=Error(`each_key_duplicate\n${n?`Keyed each block has duplicate key \`${n}\` at indexes ${e} and ${t}`:`Keyed each block has duplicate key at indexes ${e} and ${t}`}\nhttps://svelte.dev/e/each_key_duplicate`);throwr.name=`Svelte error`,r}throwError(`https://svelte.dev/e/each_key_duplicate`)}functionIe(e,t,n){if(a){letr=Error(`each_key_volatile\nKeyed each block has key that is not idempotent — the key for item at index ${e} was \`${t}\` but is now \`${n}\`. Keys must be the same each time for a given item\nhttps://svelte.dev/e/each_key_volatile`);throwr.name=`Svelte error`,r}throwError(`https://svelte.dev/e/each_key_volatile`)}functionLe(e){if(a){lett=Error(`effect_in_teardown\n\`${e}\` cannot be used inside an effect cleanup function\nhttps://svelte.dev/e/effect_in_teardown`);throwt.name=`Svelte error`,t}throwError(`https://svelte.dev/e/effect_in_teardown`)}functionRe(){if(a){lete=Error(`effect_in_unowned_derived
https://svelte.dev/e/effect_in_unowned_derived`);throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/effect_in_unowned_derived`)}functionze(e){if(a){lett=Error(`effect_orphan\n\`${e}\` can only be used inside an effect (e.g. during component initialisation)\nhttps://svelte.dev/e/effect_orphan`);throwt.name=`Svelte error`,t}throwError(`https://svelte.dev/e/effect_orphan`)}functionBe(){if(a){lete=Error(`effect_update_depth_exceeded
https://svelte.dev/e/effect_update_depth_exceeded`);throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/effect_update_depth_exceeded`)}functionVe(e){if(a){lett=Error(`lifecycle_legacy_only\n\`${e}(...)\` cannot be used in runes mode\nhttps://svelte.dev/e/lifecycle_legacy_only`);throwt.name=`Svelte error`,t}throwError(`https://svelte.dev/e/lifecycle_legacy_only`)}functionHe(e){if(a){lett=Error(`props_invalid_value\nCannot do \`bind:${e}={undefined}\` when \`${e}\` has a fallback value\nhttps://svelte.dev/e/props_invalid_value`);throwt.name=`Svelte error`,t}throwError(`https://svelte.dev/e/props_invalid_value`)}functionUe(e){if(a){lett=Error(`rune_outside_svelte\nThe \`${e}\` rune is only available inside \`.svelte\` and \`.svelte.js/ts\` files\nhttps://svelte.dev/e/rune_outside_svelte`);throwt.name=`Svelte error`,t}throwError(`https://svelte.dev/e/rune_outside_svelte`)}functionWe(){if(a){lete=Error("state_descriptors_fixed\nProperty descriptors defined on `$state` objects must contain `value` and always be `enumerable`, `configurable` and `writable`.\nhttps://svelte.dev/e/state_descriptors_fixed");throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/state_descriptors_fixed`)}functionGe(){if(a){lete=Error(`state_prototype_fixed
https://svelte.dev/e/state_prototype_fixed`);throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/state_prototype_fixed`)}functionKe(){if(a){lete=Error("state_unsafe_mutation\nUpdating state inside `$derived(...)`, `$inspect(...)` or a template expression is forbidden. If the value should not be reactive, declare it without `$state`\nhttps://svelte.dev/e/state_unsafe_mutation");throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/state_unsafe_mutation`)}functionqe(){if(a){lete=Error("svelte_boundary_reset_onerror\nA `<svelte:boundary>` `reset` function cannot be called while an error is still being handled\nhttps://svelte.dev/e/svelte_boundary_reset_onerror");throwe.name=`Svelte error`,e}throwError(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}varJe=!1;functionYe(){Je=!0}varXe={},Ze=Symbol(`uninitialized`),Qe=Symbol(`filename`);function$e(e,t){returne.label=t,et(e.v,t),e}functionet(e,t){returne?.[xe]?.(t),e}functiontt(e){lett=Error(),n=nt();returnn.length===0?null:(n.unshift(`
/* \`min-height\` is a floor, not a cap: the card must grow to fit icon +
name + count. The grid uses min-content rows, so the row grows with it. */height:auto;border:1px solid var(--background-modifier-border);border-radius:0.5rem;text-align:center;background:var(--background-secondary);cursor:pointer;transition:transform 150ms ease,
.progress.svelte-aac6sw:focus-visible {height:0.625rem;}.progress.svelte-aac6sw:focus-visible {outline:2px solid var(--interactive-accent);outline-offset:2px;}.progress__bar.svelte-aac6sw {position:absolute;top:0;left:0;height:100%;background:var(--interactive-accent);border-radius:9999px;transition:width 50ms linear;}`};function Zv(e,t){lt(t,!1),Gs(e,Xv);let n=V(t,`max`,8),r=V(t,`value`,8),i=V(t,`ariaLabel`,8,`Seek`),a=V(t,`valueText`,8,void 0),o=!1,s=V(t,`style`,24,()=>({})),c=A(),l=A(),u=Fc();function d(e,t){u(`click`,{event:e,percent:t})}function f(){o=!0}function p(){o=!1}function m(e){o&&d(e)}function h(e){if(!N(c)||!n())return;let t=n()*.05,i=r();switch(e.key){case`ArrowRight`:case`ArrowUp`:i=Math.min(n(),r()+t);break;case`ArrowLeft`:case`ArrowDown`:i=Math.max(0,r()-t);break;case`Home`:i=0;break;case`End`:i=n();break;case`Enter`:case` `:i=r();break;default:return}e.preventDefault(),d(e,n()?i/n():0)}Zi(()=>F(s()),()=>{j(l,Bc(s()))}),Qi(),Oc();var g=Yv(),_=w(g);C(g),Tc(g,e=>j(c,e),()=>N(c)),ta(e=>{oc(g,`aria-label`,i()),oc(g,`aria-valuemax`,n()),oc(g,`aria-valuenow`,r()),oc(g,`aria-valuetext`,a()),nc(g,N(l)),nc(_,e)},[()=>(F(n()),F(r()),P(()=>`width: ${n()?Math.min(100,r()/n()*100):0}%;`))]),R(`click`,g,d),R(`mousedown`,g,f),R(`mouseup`,g,p),R(`mousemove`,g,m),R(`keydown`,g,h),B(e,g),ut()}function Qv(e,t,n){if(e!==I.Player)return[];let r=t.findIndex(e=>e.title===n.title);if(r===-1||t.length<=1)return[];let i=[],a=r===0,o=r===t.length-1;return a||(i.push({icon:`chevrons-up`,title:`Move to top of queue`,kind:`top`,index:r}),i.push({icon:`chevron-up`,title:`Move up in queue`,kind:`up`,index:r})),o||(i.push({icon:`chevron-down`,title:`Move down in queue`,kind:`down`,index:r}),i.push({icon:`chevrons-down`,title:`Move to bottom of queue`,kind:`bottom`,index:r})),i}function $v(e,t,n,i){let a=new r.Menu;if(n?.play||a.addItem(t=>t.setIcon(`play`).setTitle(`Play`).onClick(()=>{Co.set(e),Io.set(I.Player)})),!n?.markPlayed){let t=E(To),n=i?t[i]?.finished??Ka(e,t):Ka(e,t);a.addItem(t=>t.setIcon(n?`x`:`check`).setTitle(`Mark as ${n?`Unplayed`:`Played`}`).onClick(()=>{n?i?To.markKeyAsUnplayed(i):To.markAsUnplayed(e):To.markAsPlayed(e)}))}if(!n?.download){let t=ho.isEpisodeDownloaded(e);a.addItem(n=>n.setIcon(t?`cross`:`download`).setTitle(t?`Remove file`:`Download`).onClick(()=>{t?zm(e):Pm(e,E(L).settings.download.path).catch(e=>void 0)}))}if(!n?.createNote){let t=!!op(e);a.addItem(n=>n.setIcon(`pencil`).setTitle(`${t?`Open`:`Create`} Note`).onClick(async()=>{if(t)cp(e);else{let{path:t,template:n}=E(L).settings.note;if(!(t&&n)){new r.Notice(`Please set a note path and template in the settings.`);return}await rp(e)}}));let n=ey(e),i=!!Jp(n);a.addItem(e=>e.setIcon(`rss`).setTitle(`${i?`Open`:`Create`} feed note`).onClick(async()=>{if(i)Yp(n);else{let{path:e,template:t}=E(L).settings.feedNote;if(!e||!t){new r.Notice(`Please set a podcast feed note path and template in the settings.`);return}await Xp(n)}}))}if(!n?.favorite){let t=E(Ao).episodes.find(t=>Wa(t,e));a.addItem(n=>n.setIcon(`lucide-star`).setTitle(`${t?`Remove from`:`Add to`} Favorites`).onClick(()=>{t?Ao.update(t=>(t.episodes=t.episodes.filter(t=>!Wa(t,e)),t)):Ao.update(t=>(t.episodes=[...t.episodes,e],t))}))}if(!n?.queue){let t=E(ko).episodes.find(t=>t.title===e.title);a.addItem(n=>n.setIcon(`list-ordered`).setTitle(`${t?`Remove from`:`Add to`} Queue`).onClick(()=>{t?ko.remove(e):ko.add(e)}));let n=Qv(E(Io),E(ko).episodes,e);if(n.length>0){a.addSeparator();for(let t of n)a.addItem(n=>n.setIcon(t.icon).setTitle(t.title).onClick(()=>{let n=E(ko).episodes.findIndex(t=>t.title===e.title);if(n!==-1)switch(t.kind){case`top`:ko.moveToTop(n);break;case`up`:ko.moveUp(n);break;case`down`:ko.moveDown(n);break;case`bottom`:ko.moveToBottom(n)}}))}}if(!n?.playlists){let t=E(Po),n=Object.values(t);if(n.length>0){a.addSeparator();for(let t of n){let n=t.episodes.find(t=>Wa(t,e));a.addItem(r=>r.setIcon(t.icon).setTitle(`${n?`Remove from`:`Add to`} ${t.name}`).onClick(()=>{n?Po.update(n=>(n[t.name].episodes=n[t.name].episodes.filter(t=>!Wa(t,e)),n)):Po.update(n=>{let r=[...n[t.name].episo
.topbar-menu-button.svelte-1uvslqs:disabled {cursor:not-allowed;color:var(--text-faint);opacity:0.5;}`};functionhy(e,t){lt(t,!1),Gs(e,my);letn=A(),r=A(),i=V(t,`viewState`,28,()=>I.PodcastGrid),a=V(t,`canShowEpisodeList`,8,!1),o=V(t,`canShowPlayer`,8,!1);functions(e){i()!==e&&(e===I.EpisodeList&&!a()||e===I.Player&&!o()||i(e))}Zi(()=>F(a()),()=>{j(n,a()?`View episode list`:`Select a podcast or playlist to view its episodes.`)}),Zi(()=>F(o()),()=>{j(r,o()?`Open player`:`Start playing an episode to open the player.`)}),Qi(),Oc();varc=py(),l=w(c),u=ir(()=>s.bind(null,I.PodcastGrid));oc(l,`title`,`Browse podcast grid`),Wc(w(l),{icon:`grid`,size:20,clickable:!1}),C(l);vard=T(l,2),f=ir(()=>s.bind(null,I.EpisodeList));Wc(w(d),{icon:`list-minus`,size:20,clickable:!1}),C(d);varp=T(d,2),m=ir(()=>s.bind(null,I.Player));Wc(w(p),{icon:`play`,size:20,clickable:!1}),C(p),C(c),ta(()=>{ec(l,1,(F(i()),F(I),P(()=>`
`)),`svelte-1uvslqs`),oc(d,`aria-label`,a()?`Episode list`:`Episode list (select a podcast or playlist first)`),oc(d,`aria-pressed`,(F(i()),F(I),P(()=>i()===I.EpisodeList))),d.disabled=!a(),oc(d,`title`,N(n)),ec(p,1,(F(i()),F(I),F(o()),P(()=>`
background-color 120ms ease;}.go-back.svelte-14kt8yt:hover {color:var(--text-normal);background:var(--background-modifier-hover);}.go-back.svelte-14kt8yt:active {background:var(--background-modifier-border);}.playlist-header-icon.svelte-14kt8yt {display:flex;align-items:center;justify-content:center;padding:0.5rem;color:var(--text-muted);}`};functionMy(e,t){lt(t,!1),Gs(e,jy);letn=()=>sn(ko,`$queue`,s),i=()=>sn(Co,`$currentEpisode`,s),a=()=>sn(Fo,`$podcastView`,s),o=()=>sn(Io,`$viewState`,s),[s,c]=ln(),l=A(),u=A([]),d=A(null),f=A(null),p=A(!1),m=A([]),h=A(null),g=A([]),_=[],v=A(!1),y=A(newSet),b=``,x=A([]),S=A(``),ee=!0;Nc(()=>{ee=!1}),Mc(()=>{lete=()=>{lete=Object.values(E(Po)),t=E(ko),n=E(L)?.settings?.autoQueue!==!1||t.episodes.length>0;j(g,[...n?[t]:[],E(Ao),E(No),ce(),...e])},t=()=>{e(),me()},n=[Po.subscribe(t),ko.subscribe(e),Ao.subscribe(t),No.subscribe(t),L.subscribe(e),To.subscribe(()=>{e(),N(p)&&de()})],r=ro.subscribe(e=>{lett=Object.values(e),n=newSet(N(u).map(e=>e.title));j(u,t);letr=t.filter(e=>!n.has(e.title));r.length>0&&ve(r)}),i=E(Io),a=Io.subscribe(e=>{i=e}),o=mo.subscribe(e=>{_=e,i===I.EpisodeList&&!N(d)&&!N(f)&&!N(p)&&j(m,b?wy(b,e):e)});return()=>{o(),a(),r(),n.forEach(e=>e())}});functionte(){lete=E(L)?.settings?.feedCache;returnMath.max(1,e?.ttlHours??6)*60*60*1e3}functionne(){returnE(L)?.settings?.feedCache?.enabled!==!1}functionre(e,t){returne?.length?!t?.length||e.length>t.length:!1}asyncfunctionie(e,t=!0,n=!1){leti=ne(),a=te(),o=E(io)[e.title];if(t&&o&&o.length>0)returno;if(t&&i){lett=Ag(e,a);if(t?.length)returnio.update(n=>({...n,[e.title]:t})),t}try{lett=Wp(e,E(L).feedUrls);if(t===null)return[];letn=awaitnewFp(e).getEpisodes(t);returnio.update(t=>({...t,[e.title]:n})),i&&jg(e,n),n}catch{lets=E(ho);if(s[e.title]?.length)returns[e.title];if(!t){if(o?.length)returno;if(i){lett=Ag(e,a);if(t?.length)returnio.update(n=>({...n,[e.title]:t})),t}}returnn&&newr.Notice(`Could not load episodes for ${e.title}. Check your connection and try again.`),[]}}functionae(){lete=newSet(Ya(E(To)).map(({episode:e})=>e.podcastName));returnN(u).filter(t=>e.has(t.title))}asyncfunctionoe(e,t=!1){letn=ne()?Ag(e,te()):null,r=E(io)[e.title];returnre(r,n)?r:ie(e,!1,t)}asyncfunctionse(e,t=`cached`,n=!1){returnt===`network`?ie(e,!1,n):t===`full`?oe(e,n):ie(e,!0,n)}functionce(){return{...Aa,episodes:Ya(E(To)).map(({episode:e})=>Fv(e)),isVirtual:!0}}functionle(){lete=Object.values(E(io)),t=Object.values(E(ho)),n=Object.values(E(Po)).map(e=>e.episodes);return[...e,...t,E(ko).episodes,E(Ao).episodes,E(No).episodes,...n]}functionue(e,t){if(!t)returne;letn=newMap(e.map(e=>[e.episode,e]));returnwy(t,e.map(e=>e.episode)).map(e=>n.get(e)).filter(e=>!!e)}functionde(){lete=jv(E(To),le());j(h,ue(e,b)),j(m,N(h).map(e=>e.episode))}functionfe(){returnN(p)&&N(f)?.isVirtual&&N(f).name===Aa.name}functionpe(){fe()&&de()}functionme(){if(!N(f)||N(f).isVirtual)return;lete=N(f).name;if(e===E(ko).name)return;lett;if(e===E(Ao).name)t=E(Ao);elseif(e===E(No).name)t=E(No);elseif(t=E(Po)[e],!t){he();return}t&&(j(f,t),j(m,b?wy(b,t.episodes):t.episodes))}functionhe(){j(d,null),j(f,null),j(p,!1),j(h,null),j(m,b?wy(b,_):_),Io.set(I.EpisodeList)}functionge(e){if(`playedEpisodeKey`ine)returntypeofe.playedEpisodeKey==`string`?e.playedEpisodeKey:void0}function_e(e,t){if(!ee)return;letn=newSet(N(y));t?n.add(e):n.delete(e),j(y,n)}functionve(e,t=`cached`){returne.length?Promise.all(e.map(asynce=>{_e(e.title,!0);try{awaitse(e,t)}finally{_e(e.title,!1)}})).then(()=>void0):Promise.resolve()}asyncfunctionye(e){let{feed:t}=e.detail;j(d,t),j(f,null),j(p,!1),j(h,null),j(m,[]),Io.set(I.EpisodeList),_e(t.title,!0);try{lete=awaitoe(t,!0);j(m,b?wy(b,e):e)}finally{_e(t.title,!1)}}functionbe(e){let{episode:t,entry:n}=e.detail;if(!n.isAvailable){newr.Notice(`This played episode is no longer available in current feeds.`);return}Co.set(t),Io.set(I.Player)}functionxe({detail:{event:e,episode:t,entry:n}}){$v(t,e,n.isAvailable?void0:{play:!0,download:!0,createNote:!0,favorite:!0,queue:!0,playlists:!
`,`\r`]),Rx.NEWLINE_REGEXP=/\r\n|[\n\r]/g}));function Bx(){}function Vx(e,t,n){return!t||Ux[e]>Ux[n]?Bx:t[e].bind(t)}function Hx(e){let t=e.logger,n=e.logLevel??`off`;if(!t)return Gx;let r=Kx.get(t);if(r&&r[0]===n)return r[1];let i={error:Vx(`error`,t,n),warn:Vx(`warn`,t,n),info:Vx(`info`,t,n),debug:Vx(`debug`,t,n)};return Kx.set(t,[n,i]),i}var Ux,Wx,Gx,Kx,qx,Jx=t((()=>{Lb(),Ux={off:0,error:200,warn:300,info:400,debug:500},Wx=(e,t,n)=>{if(e){if(kb(Ux,e))return e;Hx(n).warn(`${t}wassetto${JSON.stringify(e)},expectedoneof${JSON.stringify(Object.keys(Ux))}`)}},Gx={error:Bx,warn:Bx,info:Bx,debug:Bx},Kx=new WeakMap,qx=e=>(e.options&&(e.options={...e.options},delete e.options.headers),e.headers&&(e.headers=Object.fromEntries((e.headers instanceof Headers?[...e.headers]:Object.entries(e.headers)).map(([e,t])=>[e,e.toLowerCase()===`authorization`||e.toLowerCase()===`api-key`||e.toLowerCase()===`x-api-key`||e.toLowerCase()===`x-amz-security-token`||e.toLowerCase()===`cookie`||e.toLowerCase()===`set-cookie`?`***`:t]))),`retryOfRequestLogID`in e&&(e.retryOfRequestLogID&&(e.retryOf=e.retryOfRequestLogID),delete e.retryOfRequestLogID),e)}));async function*Yx(e,t){if(!e.body)throw t.abort(),globalThis.navigator!==void 0&&globalThis.navigator.product===`ReactNative`?new K(`Thedefaultreact-nativefetchimplementationdoesnotsupportstreaming.Pleaseuseexpo/fetch:https://docs.expo.dev/versions/latest/sdk/expo/#expofetch-api`):new K(`Attempted to iterate over a response with no body`);let n=new eS,r=new Rx,i=ex(e.body);for await(let e of Xx(i))for(let t of r.decode(e)){let e=n.decode(t);e&&(yield e)}for(let e of r.flush()){let t=n.decode(e);t&&(yield t)}}async function*Xx(e){let t=new Uint8Array;for await(let n of e){if(n==null)continue;let e=n instanceof ArrayBuffer?new Uint8Array(n):typeof n==`string`?kx(n):n,r=new Uint8Array(t.length+e.length);r.set(t),r.set(e,t.length),t=r;let i;for(;(i=Fx(t))!==-1;)yield t.slice(0,i),t=t.slice(i)}t.length>0&&(yield t)}function Zx(e,t){let n=e.indexOf(t);return n===-1?[e,``,``]:[e.substring(0,n),t,e.substring(n+t.length)]}var Qx,$x,eS,tS=t((()=>{rb(),Eb(),nx(),zx(),cb(),Nx(),Jx(),$x=class e{constructor(e,t,n){this.iterator=e,Qx.set(this,void 0),this.controller=t,W(this,Qx,n,`f`)}static fromSSEResponse(t,n,r,i){let a=!1,o=r?Hx(r):console;async function*s(){if(a)throw new K("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");a=!0;let e=!1;try{for await(let r of Yx(t,n))if(!e){if(r.data.startsWith(`[DONE]`)){e=!0;continue}if(r.event===null||!r.event.startsWith(`thread.`)){let e;try{e=JSON.parse(r.data)}catch(e){throw o.error(`Could not parse message into JSON:`,r.data),o.error(`From chunk:`,r.raw),e}if(e&&e.error)throw new lb(void 0,e.error,void 0,t.headers);yield i?{event:r.event,data:e}:e}else{let e;try{e=JSON.parse(r.data)}catch(e){throw e}if(r.event==`error`)throw new lb(void 0,e.error,e.message,void 0);yield{event:r.event,data:e}}}e=!0}catch(e){if(ob(e))return;throw e}finally{e||n.abort()}}return new e(s,n,r)}static fromReadableStream(t,n,r){let i=!1;async function*a(){let e=new Rx,r=t.getReader(),i=!1,a,o=()=>{a??(a=r.cancel()),a.catch(()=>{})};n.signal.addEventListener(`abort`,o,{once:!0});try{if(n.signal.aborted){o();return}for(;;){let{value:t,done:a}=await r.read();if(a){i=!0;break}if(n.signal.aborted)return;for(let r of e.decode(t)){if(n.signal.aborted)return;yield r}}if(n.signal.aborted)return;for(let t of e.flush()){if(n.signal.aborted)return;yield t}}finally{n.signal.removeEventListener(`abort`,o),i||o(),r.releaseLock()}}async function*o(){if(i)throw new K("Cannot iterate over a consumed stream, use `.tee()` to split the stream.");i=!0;let e=!1;try{for await(let t of a())e||t&&(yield JSON.parse(t));e=!0}catch(e){if(n.signal.aborted||ob(e))return;throw e}finally{e||n.abort()}}return new e(o,n,r)}[(Qx=new WeakMap,Symbol.asyncIterator)](){return this.iterator()}tee(){let t=[],n=[],r=this.iterator(),i=e=>({next:()=>{if(e.length===0){let e=r.next();t.push(e),n.push(e)}return e.shift()}});return[new e(()=>i(t),this.controller,G(this,Qx,`f`)),new e(()=>i(n),t
`),raw:this.chunks};return this.event=null,this.data=[],this.chunks=[],e}if(this.chunks.push(e),e.startsWith(`:`))return null;let[t,n,r]=Zx(e,`:`);return r.startsWith(``)&&(r=r.substring(1)),t===`event`?this.event=r:t===`data`&&this.data.push(r),null}}}));async function nS(e,t){let{response:n,requestLogID:r,retryOfRequestLogID:i,startTime:a}=t,o=await(async()=>{if(t.options.stream)return Hx(e).debug(`response`,n.status,n.url,n.headers,n.body),t.options.__streamClass?t.options.__streamClass.fromSSEResponse(n,t.controller,e,t.options.__synthesizeEventData):$x.fromSSEResponse(n,t.controller,e,t.options.__synthesizeEventData);if(n.status===204)return null;if(t.options.__binaryResponse)return n;let r=n.headers.get(`content-type`)?.split(`;`)[0]?.trim();return r?.includes(`application/json`)||r?.endsWith(`+json`)?n.headers.get(`content-length`)===`0`?void 0:rS(await n.json(),n):await n.text()})();return Hx(e).debug(`[${r}]responseparsed`,qx({retryOfRequestLogID:i,url:n.url,status:n.status,body:o,durationMs:Date.now()-a})),o}function rS(e,t){return!e||typeof e!=`object`||Array.isArray(e)?e:Object.defineProperty(e,"_request_id",{value:t.headers.get(`x-request-id`),enumerable:!1})}var iS=t((()=>{tS(),Jx()})),aS,oS,sS=t((()=>{rb(),iS(),oS=class e extends Promise{constructor(e,t,n=nS){super(e=>{e(null)}),this.responsePromise=t,this.parseResponse=n,aS.set(this,void 0),W(this,aS,e,`f`)}_thenUnwrap(t){return new e(G(this,aS,`f`),this.responsePromise,async(e,n)=>rS(t(await this.parseResponse(e,n),n),n.response))}asResponse(){return this.responsePromise.then(e=>e.response)}async withResponse(){let[e,t]=await Promise.all([this.parse(),this.asResponse()]);return{data:e,response:t,request_id:t.headers.get(`x-request-id`)}}parse(){return this.parsedPromise||(this.parsedPromise=this.responsePromise.then(e=>this.parseResponse(G(this,aS,`f`),e))),this.parsedPromise}then(e,t){return this.parse().then(e,t)}catch(e){return this.parse().catch(e)}finally(e){return this.parse().finally(e)}},aS=new WeakMap})),cS,lS,uS,dS,fS,pS,mS,q=t((()=>{rb(),Eb(),iS(),sS(),Lb(),lS=class{constructor(e,t,n,r){cS.set(this,void 0),W(this,cS,e,`f`),this.options=r,this.response=t,this.body=n}hasNextPage(){return this.getPaginatedItems().length?this.nextPageRequestOptions()!=null:!1}async getNextPage(){let e=this.nextPageRequestOptions();if(!e)throw new K("No next page expected; please check `.hasNextPage()` before calling `.getNextPage()`.");return await G(this,cS,`f`).requestAPIList(this.constructor,e)}async*iterPages(){let e=this;for(yield e;e.hasNextPage();)e=await e.getNextPage(),yield e}async*[(cS=new WeakMap,Symbol.asyncIterator)](){for await(let e of this.iterPages())for(let t of e.getPaginatedItems())yield t}},uS=class extends oS{constructor(e,t,n){super(e,t,async(e,t)=>new n(e,t.response,await nS(e,t),t.options))}async*[Symbol.asyncIterator](){let e=await this;for await(let t of e)yield t}},dS=class extends lS{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.object=n.object}getPaginatedItems(){return this.data??[]}nextPageRequestOptions(){return null}},fS=class extends lS{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more!==!1&&super.hasNextPage()}nextPageRequestOptions(){let e=this.getPaginatedItems(),t=e[e.length-1]?.id;return t?{...this.options,query:{...Db(this.options.query),after:t}}:null}},pS=class extends lS{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1,this.last_id=n.last_id||``}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more!==!1&&super.hasNextPage()}nextPageRequestOptions(){let e=this.last_id;return e?{...this.options,query:{...Db(this.options.query),after:e}}:null}},mS=class extends lS{constructor(e,t,n,r){super(e,t,n,r),this.data=n.data||[],this.has_more=n.has_more||!1,this.next=n.next||null}getPaginatedItems(){return this.data??[]}hasNextPage(){return this.has_more!==!1&&super.hasNextPage()}nextPageRequestOptions(){let e=this.next;return e?{...this.option
`)}yieldkx(`--${t}--\r\n`)}asyncfunction*OS(e){if(!(!e||typeofe!=`object`))for(let[t,n]ofObject.entries(e))yield*kS(t,n)}asyncfunction*kS(e,t){if(t!==void0){if(t==null)throwTypeError(`Received null for "${e}"; to pass null in FormData, you must use the string 'null'`);if(typeoft==`string`||typeoft==`number`||typeoft==`boolean`||GS(t))yield{key:e,value:t};elseif(Array.isArray(t))for(letnoft)yield*kS(e+`[]`,n);elseif(typeoft==`object`)for(let[n,r]ofObject.entries(t))yield*kS(`${e}[${n}]`,r);elsethrowTypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${t} instead`)}}functionAS(e){returnWS(e)?e.name:TS(e)??`unknown_file`}functionjS(e){returnWS(e)?e.type||`application/octet-stream`:HS(e)&&e.type?e.type:einstanceofResponse&&e.headers.get(`content-type`)||`application/octet-stream`}functionMS(e){returnWS(e)?e.data:e}asyncfunction*NS(e){if(typeofe==`string`)yieldkx(e);elseif(ArrayBuffer.isView(e))yieldnewUint8Array(e.buffer,e.byteOffset,e.byteLength);elseif(einstanceofArrayBuffer)yieldnewUint8Array(e);elseif(einstanceofResponse)e.body?yield*NS(e.body):yield*NS(awaite.blob());elseif(einstanceofBlob)typeofe.stream==`function`?yield*NS(e.stream()):yieldnewUint8Array(awaite.arrayBuffer());elseif(US(e))forawait(lettofex(e))yield*NS(t);elseif(LS(e))forawait(lettofe)yield*NS(t);elsethrowTypeError(`Invalid streaming file chunk: ${String(e)}`)}functionPS(e){returne.replace(/["\\\r\n]/g,e=>encodeURIComponent(e))}varFS,IS,LS,RS,zS,BS,VS,HS,US,WS,GS,KS,qS,JS,YS,XS=t((()=>{SS(),nx(),Nx(),FS=Symbol(`brand.privateStreamingFile`),IS=()=>{if(typeofFile>`u`){let{process:e}=globalThis,t=typeofe?.versions?.node==`string`&&parseInt(e.versions.node.split(`.`))<20;throwError("`File` is not defined as a global, which is required for file uploads."+(t?" Update to a supported Node.js LTS release, or set `globalThis.File` to `import('node:buffer').File`.":``))}},LS=e=>typeofe==`object`&&!!e&&typeofe[Symbol.asyncIterator]==`function`,RS=async(e,t)=>qS(e.body)?KS(e.body)?JS(e):{...e,body:awaitVS(e.body,t)}:e,zS=async(e,t)=>KS(e.body)?JS(e):{...e,body:awaitVS(e.body,t)},BS=newWeakMap,VS=async(e,t)=>{if(!awaitES(t))throwTypeError(`The provided fetch function does not support file uploads with the current global FormData class.`);letn=newFormData;returnawaitPromise.all(Object.entries(e||{}).map(([e,t])=>YS(n,e,t))),n},HS=e=>einstanceofBlob&&`name`ine,US=e=>typeofe==`object`&&!!e&&`getReader`ine&&typeofe.getReader==`function`,WS=e=>typeofe==`object`&&!!e&&FSine,GS=e=>typeofe==`object`&&!!e&&(einstanceofResponse||LS(e)||US(e)||WS(e)||HS(e)),KS=e=>{if(WS(e)||LS(e)||US(e))return!0;if(Array.isArray(e))returne.some(KS);if(e&&typeofe==`object`&&!HS(e)&&!(einstanceofResponse)){for(lettine)if(KS(e[t]))return!0}return!1},qS=e=>{if(GS(e))return!0;if(Array.isArray(e))returne.some(qS);if(e&&typeofe==`object`){for(lettine)if(qS(e[t]))return!0}return!1},JS=e=>{lett=`openai-${Math.random().toString(36).slice(2)}`,n=$b(DS(e.body,t));return{...e,body:n,headers:J([{"content-type":`multipart/form-data; boundary=${t}`},e.headers])}},YS=async(e,t,n)=>{if(n!==void0){if(n==null)throwTypeError(`Received null for "${t}"; to pass null in FormData, you must use the string 'null'`);if(typeofn==`string`||typeofn==`number`||typeofn==`boolean`)e.append(t,String(n));elseif(ninstanceofResponse)e.append(t,wS([awaitn.blob()],TS(n)));elseif(LS(n))e.append(t,wS([awaitnewResponse($b(n)).blob()],TS(n)));elseif(HS(n))e.append(t,n,TS(n));elseif(Array.isArray(n))awaitPromise.all(n.map(n=>YS(e,t+`[]`,n)));elseif(typeofn==`object`)awaitPromise.all(Object.entries(n).map(([n,r])=>YS(e,`${t}[${n}]`,r)));elsethrowTypeError(`Invalid value given to form, expected a string, number, boolean, object, Array, File or Blob but got ${n} instead`)}}}));asyncfunctionZS(e,t,n){if(IS(),e=awaite,tC(e))returneinstanceofFile?e:wS([awaite.arrayBuffer()],e.name);if(nC(e)){letr=awaite.blob();returnt||(t=newURL(e.url).pathname.split(/[
`)}\n${a}\n${t}`)}returna},Z=sC(aC)})),cC,lC=t((()=>{X(),q(),Q(),cC=classextendsY{list(e,t={},n){returnthis._client.getAPIList(Z`/chat/completions/${e}/messages`,fS,{query:t,...n,__security:{bearerAuth:!0}})}}})),uC=t((()=>{Eb()}));functiondC(e){returne!==void0&&`function`ine&&e.function!==void0}functionfC(e){returne?.$brand===`auto-parseable-response-format`}functionpC(e){returne?.$brand===`auto-parseable-tool`}functionmC(e,t){return!t||!yC(t)?{...e,choices:e.choices.map(e=>(bC(e.message.tool_calls),{...e,message:{...e.message,parsed:null,...e.message.tool_calls?{tool_calls:e.message.tool_calls}:void0}}))}:hC(e,t)}functionhC(e,t){letn=e.choices.map(e=>{if(e.finish_reason===`length`)thrownewxb;if(e.finish_reason===`content_filter`)thrownewSb;returnbC(e.message.tool_calls),{...e,message:{...e.message,...e.message.tool_calls?{tool_calls:e.message.tool_calls?.map(e=>_C(t,e))??void0}:void0,parsed:e.message.content&&!e.message.refusal?gC(t,e.message.content):null}}});return{...e,choices:n}}functiongC(e,t){returne.response_format?.type===`json_schema`&&e.response_format?.type===`json_schema`?`$parseRaw`ine.response_format?e.response_format.$parseRaw(t):JSON.parse(t):null}function_C(e,t){letn=e.tools?.find(e=>dC(e)&&e.function?.name===t.function.name);return{...t,function:{...t.function,parsed_arguments:pC(n)?n.$parseRaw(t.function.arguments):n?.function.strict?JSON.parse(t.function.arguments):null}}}functionvC(e,t){if(!e||!(`tools`ine)||!e.tools)return!1;letn=e.tools?.find(e=>dC(e)&&e.function?.name===t.function.name);returndC(n)&&(pC(n)||n?.function.strict||!1)}functionyC(e){returnfC(e.response_format)?!0:e.tools?.some(e=>pC(e)||e.type===`function`&&e.function.strict===!0)??!1}functionbC(e){for(lettofe||[])if(t.type!==`function`)thrownewK(`Currently only \`function\` tool calls are supported; Received \`${t.type}\``)}functionxC(e){for(lettofe??[]){if(t.type!==`function`)thrownewK(`Currently only \`function\` tool types support auto-parsing; Received \`${t.type}\``);if(t.function.strict!==!0)thrownewK(`The \`${t.function.name}\` tool is not marked with \`strict: true\`. Only strict function tools can be auto-parsed`)}}varSC=t((()=>{uC()})),CC,wC,TC=t((()=>{CC=e=>e?.role===`assistant`,wC=e=>e?.role===`tool`})),EC,DC,OC,kC,AC,jC,MC,NC,PC,FC,IC,LC,RC,zC,BC,VC,HC=t((()=>{rb(),uC(),VC=class{constructor(){EC.add(this),this.controller=newAbortController,DC.set(this,void0),OC.set(this,()=>{}),kC.set(this,()=>{}),AC.set(this,void0),jC.set(this,()=>{}),MC.set(this,()=>{}),NC.set(this,{}),PC.set(this,[]),FC.set(this,!1),IC.set(this,!1),LC.set(this,!1),RC.set(this,!1),W(this,DC,newPromise((e,t)=>{W(this,OC,e,`f`),W(this,kC,t,`f`)}),`f`),W(this,AC,newPromise((e,t)=>{W(this,jC,e,`f`),W(this,MC,t,`f`)}),`f`),G(this,DC,`f`).catch(()=>{}),G(this,AC,`f`).catch(()=>{})}_run(e){setTimeout(()=>{Promise.resolve().then(e).then(()=>{try{this._emitFinal()}catch(e){G(this,EC,`m`,BC).call(this,e);return}this._emit(`end`)},G(this,EC,`m`,BC).bind(this))},0)}_connected(){this.ended||(G(this,OC,`f`).call(this),this._emit(`connect`))}getended(){returnG(this,FC,`f`)}geterrored(){returnG(this,IC,`f`)}getaborted(){returnG(this,LC,`f`)}abort(){this.controller.abort()}_listenForAbort(e){if(!e||this.ended)return;if(e.aborted){this.controller.abort();return}lett=()=>this.controller.abort();e.addEventListener(`abort`,t,{once:!0}),G(this,PC,`f`).push({signal:e,listener:t})}on(e,t){return(G(this,NC,`f`)[e]||(G(this,NC,`f`)[e]=[])).push({listener:t}),this}off(e,t){letn=G(this,NC,`f`)[e];if(!n)returnthis;letr=n.findIndex(e=>e.listener===t);returnr>=0&&n.splice(r,1),this}once(e,t){return(G(this,NC,`f`)[e]||(G(this,NC,`f`)[e]=[])).push({listener:t,once:!0}),this}emitted(e){returnnewPromise((t,n)=>{W(this,RC,!0,`f`),e!==`error`&&this.once(`error`,n),this.once(e,t)})}events(e){lett=[],n=[],r=this.ended,i,a=!1,o=()=>({value:void0,done:!0}),s=()=>{for(;n.length;)n.shift().resolve(o())},c=()=>{!i||a||!n.length||(a=!0,n.shift().reject(i))},l=()=>{this.off(e,u),this.off(`end`,f),e!==`error`&&this.off(`error`,
\r`.includes(e[r]);)r++};return o()},dw=e=>ow(e,sw.ALL^sw.NUM)})),pw=t((()=>{tS()}));function mw(e,t,n){let r={type:`message`,message:t,...n?{tool_call_ids:n}:{}};return{id:e.id,choices:[],created:e.created,model:e.model,object:`${Nw}${JSON.stringify(r)}`}}function hw(e){return`type`in e&&e.type===`message`&&`message`in e||`object`in e&&typeof e.object==`string`&&e.object.startsWith(Nw)}function gw(e){return`type`in e?e:JSON.parse(e.object.slice(30))}function _w(e,t,n){let{id:r,choices:i,created:a,model:o,system_fingerprint:s,...c}=e;return mC({...c,id:r,choices:i.map(({message:t,finish_reason:r,index:i,logprobs:a,...o})=>{let{content:s=null,function_call:c,tool_calls:l,audio:u,...d}=t,f=r??(n.has(i)&&vw(u)?`stop`:null);if(!f)throw new K(`missingfinish_reasonforchoice${i}`);let p=u?{audio:u}:{},m=t.role;if(!m)throw new K(`missingroleforchoice${i}`);if(c){let{arguments:e,name:n}=c;if(e==null)throw new K(`missingfunction_call.argumentsforchoice${i}`);if(!n)throw new K(`missingfunction_call.nameforchoice${i}`);return{...o,message:{...p,content:s,function_call:{arguments:e,name:n},role:m,refusal:t.refusal??null},finish_reason:f,index:i,logprobs:a}}return l?{...o,index:i,finish_reason:f,logprobs:a,message:{...d,...p,role:m,content:s,refusal:t.refusal??null,tool_calls:l.map((t,n)=>{let{function:r,type:a,id:o,...s}=t,{arguments:c,name:l,...u}=r||{};if(a==null)throw new K(`missingchoices[${i}].tool_calls[${n}].type\n${yw(e)}`);if(l==null)throw new K(`missingchoices[${i}].tool_calls[${n}].function.name\n${yw(e)}`);if(c==null)throw new K(`missingchoices[${i}].tool_calls[${n}].function.arguments\n${yw(e)}`);return{...s,id:o||`call_${ib()}`,type:a,function:{...u,name:l,arguments:c}}})}}:{...o,message:{...d,...p,content:s,role:m,refusal:t.refusal??null},finish_reason:f,index:i,logprobs:a}}),created:a,model:o,object:`chat.completion`,...s?{system_fingerprint:s}:{}},t)}function vw(e){return e?.id!=null&&e.data!=null&&e.transcript!=null&&e.expires_at!=null}function yw(e){return JSON.stringify(e)}var bw,xw,Sw,Cw,ww,Tw,Ew,Dw,Ow,kw,Aw,jw,Mw,Nw,Pw,Fw=t((()=>{rb(),fw(),uC(),ab(),SC(),pw(),rw(),Nw=`chat.completion.chunk.message:`,Pw=class e extends nw{constructor(e){super(),bw.add(this),xw.set(this,void 0),Sw.set(this,void 0),Cw.set(this,void 0),ww.set(this,void 0),W(this,xw,e,`f`),W(this,Sw,new Set,`f`),W(this,Cw,[],`f`)}get currentChatCompletionSnapshot(){return G(this,ww,`f`)}static fromReadableStream(t){let n=new e(null);return n._run(()=>n._fromReadableStream(t)),n}static createChatCompletion(t,n,r){let i=new e(n);return i._run(()=>i._runChatCompletion(t,{...n,stream:!0},{...r,headers:{...r?.headers,"X-Stainless-Helper-Method":`stream`}})),i}async _createChatCompletion(e,t,n){super._createChatCompletion,this._listenForAbort(n?.signal),G(this,bw,`m`,Tw).call(this);let r=await e.chat.completions.create({...t,stream:!0},{...n,signal:this.controller.signal});this._connected();for await(let e of r)G(this,bw,`m`,Dw).call(this,e);if(r.controller.signal?.aborted)throw new ub;return this._addChatCompletion(G(this,bw,`m`,Aw).call(this))}async _fromReadableStream(e,t){this._listenForAbort(t?.signal),G(this,bw,`m`,Tw).call(this),this._connected();let n=$x.fromReadableStream(e,this.controller),r;for await(let e of n){if(hw(e)){let t=gw(e);if(G(this,ww,`f`)){let e=G(this,ww,`f`).choices[0]?.message.tool_calls;for(let[n,r]of t.tool_call_ids?.entries()??[]){let t=e?.[n];t&&r&&(t.id=r)}this._addChatCompletion(G(this,bw,`m`,Aw).call(this)),r=void 0}this._addMessage(t.message);continue}let t=e;r&&t.id&&r!==t.id&&this._addChatCompletion(G(this,bw,`m`,Aw).call(this)),G(this,bw,`m`,Dw).call(this,t),t.id&&(r=t.id)}if(n.controller.signal?.aborted)throw new ub;if(G(this,ww,`f`))return this._addChatCompletion(G(this,bw,`m`,Aw).call(this));let i=this._chatCompletions[this._chatCompletions.length-1];if(i)return i;throw new K(`requestendedwithoutsendinganychunks`)}[(xw=new WeakMap,Sw=new WeakMap,Cw=new WeakMap,ww=new WeakMap,bw=new WeakSet,Tw=function(){this.ended||(W(this,Sw,new Set,`f`),W(this,ww,void 0,`f`))},Ew=function(e){let t=G(this,
`)){letn=t.indexOf(`:`);n>=0&&(e[t.substring(0,n).trim()]=t.substring(n+1).trim())}d.defaultHeaders=J([e,d.defaultHeaders])}this._options=d,this._provider=u,c&&(this._workloadIdentityAuth=new_S(c,this.fetch)),this.apiKey=typeofr==`string`?r:null,this.adminAPIKey=i,this.organization=a,this.project=o,this.webhookSecret=s}withOptions(e){lett=this._options.provider,n=e.provider??t,r={...this._options,baseURL:this.baseURL,maxRetries:this.maxRetries,timeout:this.timeout,logger:this.logger,logLevel:this.logLevel,fetch:this.fetch,fetchOptions:this.fetchOptions,apiKey:this._options.apiKey,adminAPIKey:this.adminAPIKey,workloadIdentity:this._options.workloadIdentity,organization:this.organization,project:this.project,webhookSecret:this.webhookSecret};returnn&&(deleter.apiKey,deleter.adminAPIKey,deleter.workloadIdentity,deleter.baseURL,n!==t&&(deleter.organization,deleter.project,deleter.defaultHeaders)),newthis.constructor({...r,...e,provider:n})}defaultQuery(){returnthis._options.defaultQuery}validateHeaders({values:e,nulls:t},n={bearerAuth:!0,adminAPIKeyAuth:!0}){if(!(e.get(`authorization`)||e.get(`api-key`))&&!(t.has(`authorization`)||t.has(`api-key`))&&!(this._workloadIdentityAuth&&n.bearerAuth))throwError(`Could not resolve authentication method. Expected either apiKey or adminAPIKey to be set. Or for one of the "Authorization" or "api-key" headers to be explicitly omitted`)}asyncauthHeaders(e,t={bearerAuth:!0,adminAPIKeyAuth:!0}){returnJ([t.bearerAuth?awaitthis.bearerAuth(e):null,t.adminAPIKeyAuth?awaitthis.adminAPIKeyAuth(e):null])}asyncbearerAuth(e){if(this._workloadIdentityAuth)returnJ([{Authorization:`Bearer ${awaitthis._workloadIdentityAuth.getToken()}`}]);if(this.apiKey!=null)returnJ([{Authorization:`Bearer ${this.apiKey}`}])}asyncadminAPIKeyAuth(e){if(this.adminAPIKey!=null)returnJ([{Authorization:`Bearer ${this.adminAPIKey}`}])}stringifyQuery(e){returnEx(e)}getUserAgent(){return`${this.constructor.name}/JS ${Bb}`}defaultIdempotencyKey(){return`stainless-node-retry-${ib()}`}makeStatusError(e,t,n,r){returnlb.generate(e,t,n,r)}async_callApiKey(){if(this._provider)return!1;lete=this._options.apiKey;if(typeofe!=`function`)return!1;lett;try{t=awaite()}catch(e){throweinstanceofK?e:newK(`Failed to get token from 'apiKey' function: ${e.message}`,{cause:e})}if(typeoft!=`string`||!t)thrownewK(`Expected 'apiKey' function argument to return a string but it returned ${t}`);returnthis.apiKey=t,!0}buildURL(e,t,n){letr=!G(this,Fk,`m`,Rk).call(this)&&n||this.baseURL,i=Mb(e)?newURL(e):newURL(r+(r.endsWith(`/`)&&e.startsWith(`/`)?e.slice(1):e)),a=this.defaultQuery(),o=Object.fromEntries(i.searchParams);return(!Ob(a)||!Ob(o))&&(t={...o,...a,...t}),typeoft==`object`&&t&&!Array.isArray(t)&&(i.search=this.stringifyQuery(t)),i.toString()}asyncprepareOptions(e){this._provider||(e.__security??{bearerAuth:!0}).bearerAuth&&awaitthis._callApiKey()}asyncprepareRequest(e,{url:t,options:n}){}get(e,t){returnthis.methodRequest(`get`,e,t)}post(e,t){returnthis.methodRequest(`post`,e,t)}patch(e,t){returnthis.methodRequest(`patch`,e,t)}put(e,t){returnthis.methodRequest(`put`,e,t)}delete(e,t){returnthis.methodRequest(`delete`,e,t)}methodRequest(e,t,n){returnthis.request(Promise.resolve(n).then(n=>({method:e,path:t,...n})))}request(e,t=null){returnnewoS(this,this.makeRequest(e,t,void0))}asyncmakeRequest(e,t,n){letr=awaite,i=r.maxRetries??this.maxRetries;t??(t=i),awaitthis.prepareOptions(r);let{req:a,url:o,timeout:s}=awaitthis.buildRequest(r,{retryCount:i-t}),c=r.__metadata?.hasStreamingBody===!0;awaitthis.prepareRequest(a,{url:o,options:r}),awaitthis._provider?.prepareRequest?.(a,{url:o,options:r});letl=`log_`+(Math.random()*(1<<24)|0).toString(16).padStart(6,`0`),u=n===void0?``:`, retryOf: ${n}`,d=Date.now();if(Hx(this).debug(`[${l}] sending request`,qx({retryOfRequestLogID:n,method:r.method,url:o,options:r,headers:a.headers})),r.signal?.aborted)thrownewub;letf=r.__security??{bearerAuth:!0},p=newAbortController,m=awaitthis.fetchWithAuth(o,a,s,p,f).catch(sb),h=Date.now();if(minstanceofg
`:``;returnawaitthis.app.vault.modify(n,`${r}${i}${t}`),!0}catch{returnnewr.Notice(`Failed to capture timestamp into episode note`),!1}}asynccaptureTimestampFromMediaSession(){returnthis.captureTimestampInActiveEditor()?!0:awaitthis.appendTimestampToEpisodeNote()}registerMediaSessionHandlers(){this.registerMediaSessionAction(`previoustrack`,()=>{this.captureTimestampFromMediaSession()})}registerMediaSessionAction(e,t){letn=window.navigator?.mediaSession;if(n?.setActionHandler)try{n.setActionHandler(e,t),this.mediaSessionActions.push(e)}catch{}}clearMediaSessionHandlers(){lete=window.navigator?.mediaSession;if(e?.setActionHandler){for(lettofthis.mediaSessionActions)try{e.setActionHandler(t,null)}catch{}this.mediaSessionActions=[]}}onunload(){this.isUnloaded=!0,this.clearLayoutReadyRetry(),this.clearMediaSessionHandlers();for(leteofthis.storeUnsubscribers)e();this.storeUnsubscribers=[],this.volumeUnsubscribe?.(),this.localFilesMirrorUnsubscribe?.(),this.transcriptionService?.dispose(),this.transcriptionService=void0,this.views.clear()}clearLayoutReadyRetry(){this.layoutReadyRetry&&(window.clearTimeout(this.layoutReadyRetry),this.layoutReadyRetry=null)}asyncloadSettings(){try{lete=c_(awaitthis.loadData()),t=e.settings;if(this.credentials??(this.credentials=newiA(this.app.secretStorage)),e.sourceVersion<2||e.retiredPlaintextPresent){try{letn=e.sourceVersion<2?this.credentials.storeValues(e.legacySecrets):{};t={...t,...n},awaitthis.saveData(l_(t,e.unknownFields))}catch(t){thrownewcA(t,!!(e.legacySecrets.openAI||e.legacySecrets.deepgram))}letn=[e.legacySecrets.openAI?`OpenAI`:null,e.legacySecrets.deepgram?`Deepgram`:null].filter(e=>e!==null);n.length>0&&newr.Notice(`Moved your ${n.join(` and `)} API ${n.length===1?`key`:`keys`} into Obsidian SecretStorage.`)}this.feedUrls??(this.feedUrls=newsA(this.app.secretStorage));letn=Gp(t.savedFeeds,this.feedUrls);if(n.replacements.size>0){t=Kp({...t,savedFeeds:n.savedFeeds},n.replacements),Mg([...n.replacements.keys()]),awaitthis.saveData(l_(t,e.unknownFields));leti=n.replacements.size;newr.Notice(`Moved ${i} private feed ${i===1?`URL`:`URLs`} into Obsidian SecretStorage.`)}n.failed.length>0&&newr.Notice(`PodNotes could not protect the private feed ${n.failed.length===1?`URL`:`URLs`} for ${n.failed.join(`, `)}; ${n.failed.length===1?`it stays`:`they stay`} in data.json for now. Restart PodNotes to retry.`,0),this.feedUrls.sweepOrphans(t.savedFeeds),this.settings=t,this.persistenceUnknownFields=e.unknownFields,e.warnings.length}catch(e){throweinstanceofs_?newr.Notice(e.message,0):einstanceofcA&&newr.Notice(e.includedCredentials?`PodNotes could not securely migrate its API keys. Your existing data was kept unchanged. Restart PodNotes to retry.`:`PodNotes could not upgrade its settings data. Your existing data was kept unchanged. Restart PodNotes to retry.`,0),e}}saveSettings(){returnthis.requestSettingsSave().catch(()=>void0)}saveSettingsStrict(){returnthis.requestSettingsSave()}requestSettingsSave(){if(!this.isReady)returnPromise.resolve();try{this.pendingSave=this.cloneSettings()}catch(e){lett=Promise.reject(e);returnt.catch(()=>void0),t}lete=newPromise((e,t)=>{this.pendingSaveWaiters.push({resolve:e,reject:t})});returne.catch(()=>void0),this.saveScheduled||(this.saveScheduled=!0,this.saveChain=this.runSaveLoop()),e}asyncrunSaveLoop(){try{for(;this.pendingSave;){lete=this.pendingSave,t=this.pendingSaveWaiters;this.pendingSave=null,this.pendingSaveWaiters=[];try{awaitthis.saveData(l_(e,this.persistenceUnknownFields));for(leteoft)e.resolve()}catch(e){for(letnoft)n.reject(e)}}}finally{this.saveScheduled=!1}}cloneSettings(){returntypeofstructuredClone==`function`?structuredClone(this.settings):JSON.parse(JSON.stringify(this.settings))}};module.exports=lA;