import{Maa as P,Q6 as Q,S6 as M,eba as R}from"./cli-0.5.12-g4wb8mj2.mjs";import{fga as G,iga as C}from"./cli-0.5.12-p5ps8gf0.mjs";import{aoa as j}from"./cli-0.5.12-xzeb7mtb.mjs";import{promises as I}from"node:fs";import{homedir as y}from"node:os";import K from"node:path";function O(q){let z;try{z=new URL(q)}catch(A){throw Error(`Invalid URL format: ${q}`)}if(z.protocol!=="http:"&&z.protocol!=="https:")throw Error(`Invalid URL protocol: must use http:// or https://, got ${z.protocol}`)}async function g(q){try{let z=process.platform;if(z==="win32"){let{code:V}=await Q("explorer",[q]);return V===0}let A=z==="darwin"?"open":"xdg-open",{code:J}=await Q(A,[q]);return J===0}catch(z){return!1}}function U(){let q=process.env.XDG_DATA_HOME&&process.env.XDG_DATA_HOME.length>0?process.env.XDG_DATA_HOME:K.join(y(),".local","share");return[K.join(q,"applications"),"/usr/local/share/applications","/usr/share/applications","/var/lib/snapd/desktop/applications","/var/lib/flatpak/exports/share/applications"]}function k(q){let z=q.split(`
`),A=!1;for(let J of z){let V=J.trim();if(V.startsWith("[")){A=V==="[Desktop Entry]";continue}if(!A)continue;if(!V.startsWith("Exec="))continue;let $=V.slice(5).replace(S,"").replace(/%%/g,"%").trim();if($.length===0)return null;let Y=$.match(/^"([^"]+)"|^(\S+)/);if(!Y)return null;return Y[1]??Y[2]??null}return null}async function L(q){for(let z of U()){let A=K.join(z,q);try{return await I.readFile(A,"utf8")}catch(J){}}return null}async function _(q){let{code:z}=await Q("which",[q],{timeout:X,useCwd:!1});return z===0}async function N(){let{code:q,stdout:z}=await Q("xdg-settings",["get","default-web-browser"],{timeout:X,useCwd:!1});if(q!==0)return null;let A=z.trim();if(A.length===0||!A.endsWith(".desktop"))return null;let J=await L(A);if(J==null)return null;return k(J)}async function B(){for(let q of v)if(await _(q))return q;return null}async function m(){if(Z!==void 0)return Z;try{let q=await N();if(q)return Z=q,q}catch(q){G(`browser: xdg-settings detection failed: ${String(q)}`)}try{let q=await B();return Z=q,q}catch(q){return G(`browser: probe list failed: ${String(q)}`),Z=null,null}}async function W(q,z){let{code:A}=await Q(q,[z]);return A===0}async function w(q){try{O(q);let z=process.env.BROWSER,A=process.platform;if(A==="win32"){if(z){let{code:H}=await Q(z,[`"${q}"`]);return H===0}let{code:Y}=await Q("rundll32",["url,OpenURL",q],{});return Y===0}if(A==="darwin"){let Y=z||"open",{code:H}=await Q(Y,[q]);return H===0}if(z){if(await W(z,q))return!0}let J;try{J=P().oauthBrowser}catch(Y){G(`browser: failed to read oauthBrowser setting: ${String(Y)}`)}if(J&&J.length>0){if(await W(J,q))return!0}let V=await m();if(V){if(await W(V,q))return!0}let{code:$}=await Q("xdg-open",[q]);return $===0}catch(z){return!1}}var S,v,X=2000,Z=void 0;var f=j(()=>{M();C();R();S=/%[fFuUdDnNickvm]/g,v=["brave-browser","brave","firefox","chromium","google-chrome","microsoft-edge"]});
export{g as B4,w as C4,f as D4};
