1import{N as l,i as r,b as c}from"#entry";const u=l("protocols",()=>{const n=r([{id:3,label:"Shadowsocks",link:"outline",appname:"Outline",icon:"/img/applications/outline.webp",platforms:[{name:"ios",link:"https://apps.apple.com/ru/app/outline-app/id1356177741"},{name:"android",link:"https://play.google.com/store/apps/details?id=org.outline.android.client&hl=ru"},{name:"windows",link:"https://s3.amazonaws.com/outline-releases/manager/windows/stable/Outline-Manager.exe"},{name:"macos",link:"https://apps.apple.com/ru/app/outline-app/id1356177741"}],supportedApplications:["v2box","v2ray","v2rayn","clash","alicevpn","sagernet","karing","shadowrocket"]},{id:1,label:"Vless",link:"vless",appname:"V2Ray",icon:"/img/applications/v2ray_small.webp",platforms:[{name:"ios",link:"https://apps.apple.com/ru/app/v2ray-client/id6747379524"},{name:"android",link:"https://play.google.com/store/apps/details?id=com.v2ray.client&hl=ru"},{name:"windows",link:"https://disk.yandex.ru/d/RiFyftya5VUdMQ"},{name:"macos",link:"https://apps.apple.com/ru/app/v2ray-client/id6747379524"}],supportedApplications:["v2box","v2ray","v2rayn","clash","alicevpn","sagernet","karing","shadowrocket"]},{id:2,label:"Wireguard",link:"wireguard",appname:"WireGuard",icon:"/img/applications/wireguard.webp",platforms:[{name:"ios",link:"https://apps.apple.com/ru/app/wireguard/id1441195209"},{name:"android",link:"https://play.google.com/store/apps/details?id=com.wireguard.android"},{name:"windows",link:"https://www.wireguard.com/install/"},{name:"macos",link:"https://apps.apple.com/ru/app/wireguard/id1451685025?mt=12"}],supportedApplications:["v2box","v2ray","v2rayn","clash","alicevpn","sagernet","karing","shadowrocket","wireguard"]},{id:5,label:"OpenVPN",link:"openvpn",appname:"OpenVPN",icon:"/img/applications/openvpn.webp",platforms:[{name:"ios",link:"https://apps.apple.com/ru/app/openvpn-connect/id590379981"},{name:"android",link:"https://play.google.com/store/apps/details?id=net.openvpn.openvpn"},{name:"windows",link:"https://openvpn.net/client/"},{name:"macos",link:"https://openvpn.net/client-connect-vpn-for-mac-os/"}],supportedApplications:["v2box","v2ray","v2rayn","clash","alicevpn","sagernet","karing","shadowrocket","openvpn"]},{id:6,label:"SSTP",link:"sstp",appname:"SSTP",icon:"",platforms:[{name:"ios",link:"https://apps.apple.com/ru/app/sstp-connect/id1543667909"},{name:"android",link:"https://play.google.com/store/apps/details?id=kittoku.osc"},{name:"windows",link:"https://dzen.ru/a/aDXMuk3si3fbxLPP"},{name:"macos",link:"https://apps.apple.com/ru/app/sstp-connect/id1543667909"}],supportedApplications:["v2box","v2ray","v2rayn","clash","alicevpn","sagernet","karing","shadowrocket"]}]);function e(t){return n.value.find(a=>a.label.toLowerCase()===t.toLowerCase()||a.link===t.toLowerCase())}function s(t){const a=e(t);return a?a.supportedApplications:[]}return{protocols:n,getProtocol:e,getApplicationKeysForProtocol:s}}),d=()=>new m;class m{auth="ODM2NmFhYTMtZDc3MS00M2Q4LWI4MDUtYjk3YmM4ZTdjODRm";authHeader="MjAzYzk3ZTYtOGIxMC00OWE0LWE4N2QtOTFkNGQzOTMxMDM2";userState;protocols;countries;keyList;constructor(){this.keyList=r([]),this.userState=c("user"),this.protocols=u(),this.countries=h()}async getKeyList(e={}){let s={};this.userState.value&&(e.user_token=this.userState.value.remember_token),s=await this.sendApiRequest("key-list",e);for(let t of s){const a=this.protocols.getProtocol(t.protocol),p=this.countries.getCountryByCode(t.country_id.toLowerCase());let o=new Date(t.expires_at);t.is_premium=!0;let i={id:t.uuid,protocol:a,country_id:0,country:p,hosting:t.hosting,expire_at:o.setHours(o.getHours()-3),created_at:t.created_at,config:t.key,qr_code:"https://avatars.mds.yandex.net/i?id=15872da994f54ec9162dca6d388f28b6_l-5240048-images-thumbs&n=13",is_premium:!!t.is_premium};this.keyList.value.push(i)}}async authUserByEmail(e=null,s=null){return await this.sendApiRequest("auth-user",{email:e,code:s})??{status:!1}}async authUser(e){return await this.sendApiRequest("auth-by-token",{user_token:e})}async changeUserEmail(e,s){return await this.sendApiRequest("change-email",{user_token:e,new_email:s})}async getCountries(){return await this.sendApiRequest("countries-list")}async oneClickBuy(e){return await this.sendApiRequest("one-click-buy",{email:e})}async cancelSubscription(e){return await this.sendApiRequest("toggle-subscription",{user_token:e})}async deletePaymentMethod(e,s){return await this.sendApiRequest("delete-payment-method",{user_token:e,method_id:s})}async deleteAccount(e){return await this.sendApiRequest("delete-account",{user_token:e})}async sendApiRequest(e,s=null){console.log("is server: false");const t={};return await $fetch(`/api/${e}`,{method:"POST",responseType:"json",headers:{...t,Authorization:this.authHeader,Accept:"application/json"},body:s})}}const h=l("countries",()=>{const n=r([]),e=r(!1);async function s(){try{if(n.value?.length>0)return;const i=await d().getCountries();n.value=i}catch(o){console.error("Error getting countries: ",o)}}function t(){return n.value}function a(o){return n.value.find(i=>i.code===o)}function p(o){return n.value.find(i=>i.url===o)}return{isInitialized:e,countries:n,loadCountries:s,getCountries:t,getCountryByCode:
1a,getCountryByUrl:p}});export{u as a,h as b,d as u};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.