import{dS as i}from"./index-BOwCLZTK.js";async function d(e,r=10){return i("/api/ping_neighbor",{method:"POST",body:JSON.stringify({target_id:e,timeout:r})})}const u=["Chat Node","Repeater","Room Server","Hybrid Node","Unknown"];async function f(e){const r=e.toLowerCase();for(const o of u)try{const s=await i(`/api/adverts_by_contact_type?contact_type=${encodeURIComponent(o)}&hours=168`),t=s.success&&s.data?s.data:s,n=(Array.isArray(t)?t:[]).find(c=>c.node_name&&c.node_name.toLowerCase()===r);if(n&&n.pubkey)return`0x${n.pubkey.substring(0,2)}`}catch{continue}return null}function p(e){return e.rtt_ms>500||e.rssi<-120?"Poor":e.rtt_ms>250||e.rssi<-100?"Fair":e.rtt_ms>100||e.rssi<-80?"Good":"Excellent"}async function m(e,r=10){if(r<1||r>60)return{success:!1,error:"Timeout must be 1-60 seconds"};let o;const s=e.match(/^(0x)?([0-9a-fA-F]{1,2})$/);if(s)o=`0x${s[2].padStart(2,"0")}`;else{const n=await f(e);if(!n)return{success:!1,error:`Node '${e}' not found`};o=n}const t=await d(o,r);if(!t.success||!t.data)return{success:!1,error:t.error||"Ping failed"};const a=p(t.data);return{success:!0,data:{...t.data,quality:a}}}export{m as a,d as p};
