import{O as e,T as t,j as n,t as r,w as i,y as a}from"./dist-DPmmj29U.js";import{u as o}from"./esm-CRVqHnq2.js";import{h as s,t as c}from"./useQuery-CQCUTxAw.js";import{t as l}from"./useAppContext-ZpOJAKgd.js";import{f as u,p as d,u as f}from"./useCurrentUser-boOMG5Xx.js";import{t as p}from"./nostrId-DcIQ4FCD.js";import{o as m}from"./appRelays-Clm5NPIe.js";import{n as h}from"./ExternalFavicon-C4RKLGFC.js";function g(e){if(e.kind>=3e4&&e.kind<4e4){let t=e.tags.find(([e])=>e===`d`)?.[1];if(t)return o.naddrEncode({kind:e.kind,pubkey:e.pubkey,identifier:t})}return e.kind>=1e4&&e.kind<2e4||_(e.kind)?o.naddrEncode({kind:e.kind,pubkey:e.pubkey,identifier:``}):o.neventEncode({id:e.id,author:e.pubkey})}function _(e){return e===0||e===3||e===41}var v=[32267,30063,3063];async function y(e,t,n,r){if(t.length===0)return null;try{let i=await e.group(t).query(n,{signal:r});return i.length>0?i[0]:null}catch{return null}}async function b(e){return e.length===0?null:new Promise(t=>{let n=e.length;for(let r of e)r.then(e=>{e?t(e):--n===0&&t(null)},()=>{--n===0&&t(null)})})}async function x(e,t,n,r){try{let i=await f(e,t,r);return i.length===0?null:await y(e,i,n,AbortSignal.any([r,AbortSignal.timeout(6e3)]))}catch{return null}}async function S(e,t,n,r){try{let i=AbortSignal.any([r,AbortSignal.timeout(5e3)]),a=await e.query([{"#e":[t],limit:20},{"#q":[t],limit:20}],{signal:i});if(a.length===0)return null;let o=new Set,s=[],c=e=>{e&&p(e)&&!s.includes(e)&&s.push(e)},l=e=>{if(e)try{let t=new URL(e);t.protocol===`wss:`&&o.add(t.href)}catch{}};for(let e of a)for(let n of e.tags)(n[0]===`e`||n[0]===`q`)&&n[1]===t&&(l(n[2]),c(n[3]));for(let e of a){for(let t of e.tags)t[0]===`p`&&c(t[1]);c(e.pubkey)}let u=[];o.size>0&&u.push(y(e,[...o].slice(0,5),n,AbortSignal.timeout(6e3)));for(let t of s.slice(0,3))u.push(x(e,t,n,AbortSignal.timeout(8e3)));return await b(u)}catch{return null}}function C(e,t,n){let{nostr:i}=r(),{store:a}=d(),o=s();return c({queryKey:[`event`,e??``,t??[],n??``],queryFn:async()=>{if(!e)return null;let r=[{ids:[e],limit:1}],s=o.getQueryData([`event`,e]);if(s)return s;let c=await(async()=>{let[o]=await a.query(r);if(o)return o;try{let e=await i.query(r,{signal:AbortSignal.timeout(5e3)});if(e.length>0)return e[0]}catch{}let s=[];t&&t.length>0&&s.push(y(i,t,r,AbortSignal.timeout(6e3))),n&&s.push(x(i,n,r,AbortSignal.timeout(8e3)));let c=await b(s);if(c)return a.event(c),c;let l=await S(i,e,r,AbortSignal.timeout(15e3));return l?(a.event(l),l):null})();return c&&!o.getQueryData([`event`,e])&&o.setQueryData([`event`,e],c),c},initialData:()=>o.getQueryData([`event`,e??``]),initialDataUpdatedAt:()=>o.getQueryState([`event`,e??``])?.dataUpdatedAt,enabled:!!e,staleTime:300*1e3})}function w(e){return e>=3e4&&e<4e4}function T(e,t){let{nostr:n}=r(),{store:i}=d();return u({queryKey:e?[`addr-event`,e.kind,e.pubkey,e.identifier]:void 0,filter:e?w(e.kind)?{kinds:[e.kind],authors:[e.pubkey],"#d":[e.identifier]}:{kinds:[e.kind],authors:[e.pubkey]}:{kinds:[],authors:[]},toData:e=>e,getEvent:e=>e??void 0}),c({queryKey:[`addr-event`,e?.kind??0,e?.pubkey??``,e?.identifier??``],queryFn:async()=>{if(!e)return null;let r=w(e.kind),a={kinds:[e.kind],authors:[e.pubkey],limit:1};r&&(a[`#d`]=[e.identifier]);let o=[a],s=r?{kinds:[e.kind],authors:[e.pubkey],"#d":[e.identifier]}:{kinds:[e.kind],authors:[e.pubkey]};if(v.includes(e.kind))try{let e=await n.relay(m).query(o,{signal:AbortSignal.timeout(5e3)});if(e.length>0)return i.event(e[0]),e[0]}catch{}try{let e=await n.query(o,{signal:AbortSignal.timeout(5e3)});if(e.length>0)return e[0]}catch{}let c=[x(n,e.pubkey,o,AbortSignal.timeout(8e3))];t&&t.length>0&&c.push(y(n,t,o,AbortSignal.timeout(6e3)));let l=await b(c);if(l)return i.event(l),l;let[u]=await i.query([s]);return u??null},enabled:!!e,staleTime:300*1e3})}var E=t({type:a([`link`,`photo`,`video`,`rich`]),version:e().optional(),title:e().optional(),author_name:e().optional(),author_url:n().optional(),provider_name:e().optional(),provider_url:n().optional(),thumbnail_url:n().optional(),thumbnail_width:i().optional(),thumbnail_height:i().optional(),url:n().optional(),html:e().optional(),width:i().optional(),height:i().optional()});async function D(e,t){try{let n=new URL(e),r=n.hostname.replace(/^www\./,``).replace(/^m\./,``);if(r===`youtube.com`||r===`youtu.be`)return await k(`https://www.youtube.com/oembed?url=${encodeURIComponent(e)}&format=json`,t);if(r===`open.spotify.com`)return await k(`https://open.spotify.com/oembed?url=${encodeURIComponent(e)}`,t);if(r===`reddit.com`||r===`old.reddit.com`||r===`new.reddit.com`)return await k(`https://www.reddit.com/oembed?url=${encodeURIComponent(e)}`,t);if(r===`archive.org`){let e=n.pathname.match(/^\/(details|embed)\/([^/?#]+)/);if(e)return await O(e[2],t)}return null}catch{return null}}async function O(e,t){try{let n=await fetch(`https://archive.org/metadata/${e}`,{signal:t});if(!n.ok)return null;let r=(await n.json()).metadata;return r?{type:`link`,title:r.title||void 0,author_name:r.creator||void 0,provider_name:`Internet Archive`,thumbnail_url:`https://archive.org/services/img/${e}`}:null}catch{return null}}async function k(e,t){try{let n=await fetch(e,{signal:t,headers:{Accept:`application/json`}});if(!n.ok)return null;let r=E.safeParse(await n.json());return r.success?r.data:null}catch{return null}}async function A(e,t,n){return await D(e,n)||k(h({template:t,url:e}),n)}function j(e){let{config:t}=l();return c({queryKey:[`link-preview`,e,t.linkPreviewUrl],queryFn:({signal:n})=>A(e,t.linkPreviewUrl,n),enabled:!!e,staleTime:1e3*60*60,gcTime:1e3*60*60*24,retry:!1})}export{g as i,T as n,C as r,j as t};