32 lines
36 KiB
JavaScript
32 lines
36 KiB
JavaScript
// Vencord cba0eb9
|
|
// Standalone: true
|
|
// Platform: Universal
|
|
// Updater Disabled: false
|
|
"use strict";var Ue=Object.defineProperty;var Gr=Object.getOwnPropertyDescriptor;var zr=Object.getOwnPropertyNames;var Fr=Object.prototype.hasOwnProperty;var z=(t,e)=>()=>(t&&(e=t(t=0)),e);var re=(t,e)=>{for(var r in e)Ue(t,r,{get:e[r],enumerable:!0})},Wr=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of zr(e))!Fr.call(t,i)&&i!==r&&Ue(t,i,{get:()=>e[i],enumerable:!(n=Gr(e,i))||n.enumerable});return t};var Zr=t=>Wr(Ue({},"__esModule",{value:!0}),t);var c=z(()=>{"use strict"});var ne=z(()=>{"use strict";c()});async function Ot(t,e){try{var r=await fetch(t,e)}catch(i){throw i instanceof Error&&i.cause&&(i=i.cause),new Error(`${e?.method??"GET"} ${t} failed: ${i}`)}if(r.ok)return r;let n=`${e?.method??"GET"} ${t}: ${r.status} ${r.statusText}`;try{let i=await r.text();n+=`
|
|
${i}`}catch{}throw new Error(n)}async function kt(t,e){return(await Ot(t,e)).json()}async function Te(t,e){let n=await(await Ot(t,e)).arrayBuffer();return Buffer.from(n)}var Yr,$e=z(()=>{"use strict";c();Yr=require("original-fs")});var de,Be=z(()=>{c();de="cba0eb9"});var se,Ye=z(()=>{c();se="Vendicated/Vencord"});var Re,Je=z(()=>{"use strict";c();Be();Ye();Re=`Vencord/${de}${se?` (https://github.com/${se})`:""}`});function ve(t){return async function(){try{return{ok:!0,value:await t(...arguments)}}catch(e){return{ok:!1,error:e instanceof Error?{...e,message:e.message,name:e.name,stack:e.stack}:e}}}}var Mt,Lt=z(()=>{"use strict";c();Mt=["vencordDesktopMain.js","vencordDesktopPreload.js","vencordDesktopRenderer.js","vencordDesktopRenderer.css"]});var Xr={};async function Nt(t){return kt(Jr+t,{headers:{Accept:"application/vnd.github+json","User-Agent":Re}})}async function Kr(){return await Gt()?(await Nt(`/compare/${de}...HEAD`)).commits.map(r=>({hash:r.sha.slice(0,7),author:r.author.login,message:r.commit.message.split(`
|
|
`)[0]})):[]}async function Gt(){let t=await Nt("/releases/latest");return t.name.slice(t.name.lastIndexOf(" ")+1)===de?!1:(t.assets.forEach(({name:r,browser_download_url:n})=>{Mt.some(i=>r.startsWith(i))&&Ke.push([r,n])}),!0)}async function qr(){let t=await Promise.all(Ke.map(async([e,r])=>{let n=await Te(r);return[(0,Ut.join)(__dirname,e),n]}));return await Promise.all(t.map(async([e,r])=>(0,Vt.writeFile)(e,r))),Ke=[],!0}var me,Vt,Ut,Jr,Ke,zt=z(()=>{"use strict";c();$e();ne();Je();me=require("electron"),Vt=require("fs/promises"),Ut=require("path");Be();Ye();Lt();Jr=`https://api.github.com/repos/${se}`,Ke=[];me.ipcMain.handle("VencordGetRepo",ve(()=>`https://github.com/${se}`));me.ipcMain.handle("VencordGetUpdates",ve(Kr));me.ipcMain.handle("VencordUpdate",ve(Gt));me.ipcMain.handle("VencordBuild",ve(qr))});c();var K=require("electron"),kr=require("path"),vt=require("url");c();c();ne();c();var Ne=Symbol("SettingsStore.isProxy"),Rt=Symbol("SettingsStore.getRawTarget"),pe=class{pathListeners=new Map;prefixListeners=new Map;globalListeners=new Set;proxyContexts=new WeakMap;proxyHandler=(()=>{let e=this;return{get(r,n,i){if(n===Ne)return!0;if(n===Rt)return r;let o=Reflect.get(r,n,i),s=e.proxyContexts.get(r);if(s==null)return o;let{root:a,path:l}=s;if(!(n in r)&&e.getDefaultValue!=null&&(o=e.getDefaultValue({target:r,key:n,root:a,path:l})),typeof o=="object"&&o!==null&&!o[Ne]){let v=`${l}${l&&"."}${n}`;return e.makeProxy(o,a,v)}return o},set(r,n,i){if(i?.[Ne]&&(i=i[Rt]),r[n]===i)return!0;if(!Reflect.set(r,n,i))return!1;let o=e.proxyContexts.get(r);if(o==null)return!0;let{root:s,path:a}=o,l=`${a}${a&&"."}${n}`;return e.notifyListeners(l,i,s),!0},deleteProperty(r,n){if(!Reflect.deleteProperty(r,n))return!1;let i=e.proxyContexts.get(r);if(i==null)return!0;let{root:o,path:s}=i,a=`${s}${s&&"."}${n}`;return e.notifyListeners(a,void 0,o),!0}}})();constructor(e,r={}){this.plain=e,this.store=this.makeProxy(e),Object.assign(this,r)}makeProxy(e,r=e,n=""){return this.proxyContexts.set(e,{root:r,path:n}),new Proxy(e,this.proxyHandler)}notifyPrefixListeners(e,r,n){for(let i=1;i<=r.length;i++){let o=r.slice(0,i).join(".");this.prefixListeners.get(o)?.forEach(s=>s(n,e))}}notifyListeners(e,r,n){let i=e.split(".");if(i.length>3&&i[0]==="plugins"){let o=i.slice(0,3),s=o.join("."),a=o.reduce((l,v)=>l[v],n);this.globalListeners.forEach(l=>l(n,s)),this.pathListeners.get(s)?.forEach(l=>l(a))}else this.globalListeners.forEach(o=>o(n,e));this.pathListeners.get(e)?.forEach(o=>o(r)),this.notifyPrefixListeners(e,i,r)}setData(e,r){if(this.readOnly)throw new Error("SettingsStore is read-only");if(this.plain=e,this.store=this.makeProxy(e),r){let n=e,i=r.split(".");for(let o of i){if(!n){console.warn(`Settings#setData: Path ${r} does not exist in new data. Not dispatching update`);return}n=n[o]}this.pathListeners.get(r)?.forEach(o=>o(n)),this.notifyPrefixListeners(r,i,n)}this.markAsChanged()}addGlobalChangeListener(e){this.globalListeners.add(e)}addChangeListener(e,r){let n=this.pathListeners.get(e)??new Set;n.add(r),this.pathListeners.set(e,n)}addPrefixChangeListener(e,r){let n=this.prefixListeners.get(e)??new Set;n.add(r),this.prefixListeners.set(e,n)}removeGlobalChangeListener(e){this.globalListeners.delete(e)}removeChangeListener(e,r){let n=this.pathListeners.get(e);n&&(n.delete(r),n.size||this.pathListeners.delete(e))}removePrefixChangeListener(e,r){let n=this.prefixListeners.get(e);n&&(n.delete(r),n.size||this.prefixListeners.delete(e))}markAsChanged(){this.globalListeners.forEach(e=>e(this.plain,""))}};c();function Ge(t,e){for(let r in e){let n=e[r];typeof n=="object"&&!Array.isArray(n)?(t[r]??={},Ge(t[r],n)):t[r]??=n}return t}var We=require("electron"),$=require("fs");c();var Dt=require("electron"),F=require("path"),xe=process.env.VENCORD_USER_DATA_DIR??(process.env.DISCORD_USER_DATA_DIR?(0,F.join)(process.env.DISCORD_USER_DATA_DIR,"..","VencordData"):(0,F.join)(Dt.app.getPath("userData"),"..","Vencord")),H=(0,F.join)(xe,"settings"),W=(0,F.join)(xe,"themes"),ie=(0,F.join)(H,"quickCss.css"),ze=(0,F.join)(H,"settings.json"),Fe=(0,F.join)(H,"native-settings.json"),It=["https:","http:","steam:","spotify:","com.epicgames.launcher:","tidal:","itunes:"];(0,$.mkdirSync)(H,{recursive:!0});function bt(t,e){try{return JSON.parse((0,$.readFileSync)(e,"utf-8"))}catch(r){return r?.code!=="ENOENT"&&console.error(`Failed to read ${t} settings`,r),{}}}var T=new pe(bt("renderer",ze));T.addGlobalChangeListener(()=>{try{(0,$.writeFileSync)(ze,JSON.stringify(T.plain,null,4))}catch(t){console.error("Failed to write renderer settings",t)}});We.ipcMain.on("VencordGetSettings",t=>t.returnValue=T.plain);We.ipcMain.handle("VencordSetSettings",(t,e,r)=>{T.setData(e,r)});var jr={plugins:{},customCspRules:{}},Ct=bt("native",Fe);Ge(Ct,jr);var O=new pe(Ct);O.addGlobalChangeListener(()=>{try{(0,$.writeFileSync)(Fe,JSON.stringify(O.plain,null,4))}catch(t){console.error("Failed to write native settings",t)}});var Ze=require("electron"),oe=["connect-src"],b=[...oe,"img-src"],_t=["style-src","font-src"],y=[...b,..._t],Pt=[...y,"script-src","worker-src"],He={"http://localhost:*":y,"http://127.0.0.1:*":y,"localhost:*":y,"127.0.0.1:*":y,"*.github.io":y,"github.com":y,"raw.githubusercontent.com":y,"*.gitlab.io":y,"gitlab.com":y,"*.codeberg.page":y,"codeberg.org":y,"*.githack.com":y,"jsdelivr.net":y,"fonts.googleapis.com":_t,"i.imgur.com":b,"i.ibb.co":b,"i.pinimg.com":b,"*.tenor.com":b,"files.catbox.moe":y,"cdn.discordapp.com":y,"media.discordapp.net":b,"cdnjs.cloudflare.com":Pt,"cdn.jsdelivr.net":Pt,"api.github.com":oe,"ws.audioscrobbler.com":oe,"translate-pa.googleapis.com":oe,"*.vencord.dev":b,"manti.vendicated.dev":b,"decor.fieryflames.dev":oe,"ugc.decor.fieryflames.dev":b,"sponsor.ajay.app":oe,"dearrow-thumb.ajay.app":b,"usrbg.is-hardly.online":b,"icons.duckduckgo.com":b},je=(t,e)=>Object.keys(t).find(r=>r.toLowerCase()===e),Hr=t=>{let e={};return t.split(";").forEach(r=>{let[n,...i]=r.trim().split(/\s+/g);n&&!Object.prototype.hasOwnProperty.call(e,n)&&(e[n]=i)}),e},$r=t=>Object.entries(t).filter(([,e])=>e?.length).map(e=>e.flat().join(" ")).join("; "),Br=t=>{let e=je(t,"content-security-policy-report-only");e&&delete t[e];let r=je(t,"content-security-policy");if(r){let n=Hr(t[r][0]),i=(o,...s)=>{n[o]??=[...n["default-src"]??[]],n[o].push(...s)};i("style-src","'unsafe-inline'"),i("script-src","'unsafe-inline'","'unsafe-eval'");for(let o of["style-src","connect-src","img-src","font-src","media-src","worker-src"])i(o,"blob:","data:","vencord:","vesktop:");for(let[o,s]of Object.entries(O.store.customCspRules))for(let a of s)i(a,o);for(let[o,s]of Object.entries(He))for(let a of s)i(a,o);t[r]=[$r(n)]}};function At(){Ze.session.defaultSession.webRequest.onHeadersReceived(({responseHeaders:t,resourceType:e},r)=>{if(t&&(e==="mainFrame"&&Br(t),e==="stylesheet")){let n=je(t,"content-type");n&&(t[n]=["text/css"])}r({cancel:!1,responseHeaders:t})}),Ze.session.defaultSession.webRequest.onHeadersReceived=()=>{}}c();c();zt();c();ne();var ot=require("electron");c();var Xe={};re(Xe,{fetchTrackData:()=>en});c();Je();var Ft=require("child_process"),Wt=require("util"),Zt=(0,Wt.promisify)(Ft.execFile);async function qe(t){let{stdout:e}=await Zt("osascript",t.map(r=>["-e",r]).flat());return e}var P=null;async function Qr({id:t,name:e,artist:r,album:n}){if(t===P?.id){if("data"in P)return P.data;if("failures"in P&&P.failures>=5)return null}try{let i=new URL("https://itunes.apple.com/search");i.searchParams.set("term",`${e} ${r} ${n}`),i.searchParams.set("media","music"),i.searchParams.set("entity","song");let o=await fetch(i,{headers:{"user-agent":Re}}).then(a=>a.json()).then(a=>a.results.find(l=>l.collectionName===n)||a.results[0]),s=await fetch(o.artistViewUrl).then(a=>a.text()).then(a=>{let l=a.match(/<meta property="og:image" content="(.+?)">/);return l?l[1].replace(/[0-9]+x.+/,"220x220bb-60.png"):void 0}).catch(()=>{});return P={id:t,data:{appleMusicLink:o.trackViewUrl,songLink:`https://song.link/i/${new URL(o.trackViewUrl).searchParams.get("i")}`,albumArtwork:o.artworkUrl100.replace("100x100","512x512"),artistArtwork:s}},P.data}catch(i){return console.error("[AppleMusicRichPresence] Failed to fetch remote data:",i),P={id:t,failures:(t===P?.id&&"failures"in P?P.failures:0)+1},null}}async function en(){try{await Zt("pgrep",["^Music$"])}catch{return null}if(await qe(['tell application "Music"',"get player state","end tell"]).then(f=>f.trim())!=="playing")return null;let e=await qe(['tell application "Music"',"get player position","end tell"]).then(f=>Number.parseFloat(f.trim())),r=await qe(['set output to ""','tell application "Music"',"set t_id to database id of current track","set t_name to name of current track","set t_album to album of current track","set t_artist to artist of current track","set t_duration to duration of current track",'set output to "" & t_id & "\\n" & t_name & "\\n" & t_album & "\\n" & t_artist & "\\n" & t_duration',"end tell","return output"]),[n,i,o,s,a]=r.split(`
|
|
`).filter(f=>!!f),l=Number.parseFloat(a),v=await Qr({id:n,name:i,artist:s,album:o});return{name:i,album:o,artist:s,playerPosition:e,duration:l,...v}}var Qe={};re(Qe,{initDevtoolsOpenEagerLoad:()=>tn});c();function tn(t){let e=()=>t.sender.executeJavaScript("Vencord.Plugins.plugins.ConsoleShortcuts.eagerLoad(true)");t.sender.isDevToolsOpened()?e():t.sender.once("devtools-opened",()=>e())}var Ht={};c();var Ie=require("electron"),De=[];function jt(){let t=[];for(let e=De.length-1;e>=0;e--){let{processId:r,routingId:n}=De[e],i=Ie.webFrameMain.fromId(r,n);if(!i){De.splice(e,1);continue}t.push(i)}return t}Ie.app.on("browser-window-created",(t,e)=>{e.webContents.on("frame-created",(r,{frame:n})=>{n?.once("dom-ready",()=>{if(n.url.startsWith("https://open.spotify.com/embed/")){jt();let{routingId:i,processId:o}=n;De.push({routingId:i,processId:o});let s=T.store.plugins?.FixSpotifyEmbeds;if(!s?.enabled)return;n.executeJavaScript(`
|
|
globalThis._vcVolume = ${s.volume/100};
|
|
const original = Audio.prototype.play;
|
|
Audio.prototype.play = function() {
|
|
this.volume = _vcVolume;
|
|
return original.apply(this, arguments);
|
|
}
|
|
`)}})}),T.addChangeListener("plugins.FixSpotifyEmbeds.volume",r=>{try{jt().forEach(n=>n.executeJavaScript(`globalThis._vcVolume = ${r/100}`))}catch(n){console.error("FixSpotifyEmbeds: Failed to update volume",n)}})});var Bt={};c();var $t=require("electron");$t.app.on("browser-window-created",(t,e)=>{e.webContents.on("frame-created",(r,{frame:n})=>{n?.once("dom-ready",()=>{if(n.url.startsWith("https://www.youtube.com/")){if(!T.store.plugins?.FixYoutubeEmbeds?.enabled)return;n.executeJavaScript(`
|
|
new MutationObserver(() => {
|
|
if(
|
|
document.querySelector('div.ytp-error-content-wrap-subreason a[href*="www.youtube.com/watch?v="]')
|
|
) location.reload()
|
|
}).observe(document.body, { childList: true, subtree:true });
|
|
`)}})})});var et={};re(et,{resolveRedirect:()=>nn});c();var Yt=require("https"),rn=/^https:\/\/(spotify\.link|s\.team)\/.+$/;function Jt(t){return new Promise((e,r)=>{let n=(0,Yt.request)(new URL(t),{method:"HEAD"},i=>{e(i.headers.location?Jt(i.headers.location):t)});n.on("error",r),n.end()})}async function nn(t,e){return rn.test(e)?Jt(e):e}var tt={};re(tt,{makeDeeplTranslateRequest:()=>on});c();async function on(t,e,r,n){let i=e?"https://api.deepl.com/v2/translate":"https://api-free.deepl.com/v2/translate";try{let o=await fetch(i,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`DeepL-Auth-Key ${r}`},body:n}),s=await o.text();return{status:o.status,data:s}}catch(o){return{status:-1,data:String(o)}}}var rt={};re(rt,{readRecording:()=>sn});c();var Kt=require("electron"),be=require("fs/promises"),ge=require("path");async function sn(t,e){e=(0,ge.normalize)(e);let r=(0,ge.basename)(e),n=(0,ge.normalize)(Kt.app.getPath("userData")+"/");if(!/^\d*recording\.ogg$/.test(r)||!e.startsWith(n))return null;try{let i=await(0,be.readFile)(e);return(0,be.rm)(e).catch(()=>{}),new Uint8Array(i.buffer)}catch{return null}}var nt={};re(nt,{sendToOverlay:()=>an});c();var Xt=require("dgram"),qt;function an(t,e){e.messageType=e.type;let r=JSON.stringify(e);qt??=(0,Xt.createSocket)("udp4"),qt.send(r,42069,"127.0.0.1")}var er={};c();var Qt=require("electron");c();var it=`"use strict";const hiddenCSS=["#__ffYoutube1","#__ffYoutube2","#__ffYoutube3","#__ffYoutube4","#feed-pyv-container","#feedmodule-PRO","#homepage-chrome-side-promo","#merch-shelf","#offer-module",'#pla-shelf > ytd-pla-shelf-renderer[class="style-scope ytd-watch"]',"#pla-shelf","#premium-yva","#promo-info","#promo-list","#promotion-shelf","#related > ytd-watch-next-secondary-results-renderer > #items > ytd-compact-promoted-video-renderer.ytd-watch-next-secondary-results-renderer","#search-pva","#shelf-pyv-container","#video-masthead","#watch-branded-actions","#watch-buy-urls","#watch-channel-brand-div","#watch7-branded-banner","#YtKevlarVisibilityIdentifier","#YtSparklesVisibilityIdentifier",".carousel-offer-url-container",".companion-ad-container",".GoogleActiveViewElement",'.list-view[style="margin: 7px 0pt;"]',".promoted-sparkles-text-search-root-container",".promoted-videos",".searchView.list-view",".sparkles-light-cta",".watch-extra-info-column",".watch-extra-info-right",".ytd-carousel-ad-renderer",".ytd-compact-promoted-video-renderer",".ytd-companion-slot-renderer",".ytd-merch-shelf-renderer",".ytd-player-legacy-desktop-watch-ads-renderer",".ytd-promoted-sparkles-text-search-renderer",".ytd-promoted-video-renderer",".ytd-search-pyv-renderer",".ytd-video-masthead-ad-v3-renderer",".ytp-ad-action-interstitial-background-container",".ytp-ad-action-interstitial-slot",".ytp-ad-image-overlay",".ytp-ad-overlay-container",".ytp-ad-progress",".ytp-ad-progress-list",'[class*="ytd-display-ad-"]','[layout*="display-ad-"]','a[href^="http://www.youtube.com/cthru?"]','a[href^="https://www.youtube.com/cthru?"]',"ytd-action-companion-ad-renderer","ytd-banner-promo-renderer","ytd-compact-promoted-video-renderer","ytd-companion-slot-renderer","ytd-display-ad-renderer","ytd-promoted-sparkles-text-search-renderer","ytd-promoted-sparkles-web-renderer","ytd-search-pyv-renderer","ytd-single-option-survey-renderer","ytd-video-masthead-ad-advertiser-info-renderer","ytd-video-masthead-ad-v3-renderer","YTM-PROMOTED-VIDEO-RENDERER"],hideElements=()=>{const e=hiddenCSS;if(!e)return;const t=e.join(", ")+" { display: none!important; }",r=document.createElement("style");r.textContent=t,document.head.appendChild(r)},observeDomChanges=e=>{new MutationObserver(r=>{e(r)}).observe(document.documentElement,{childList:!0,subtree:!0})},hideDynamicAds=()=>{const e=document.querySelectorAll("#contents > ytd-rich-item-renderer ytd-display-ad-renderer");e.length!==0&&e.forEach(t=>{if(t.parentNode&&t.parentNode.parentNode){const r=t.parentNode.parentNode;r.localName==="ytd-rich-item-renderer"&&(r.style.display="none")}})},autoSkipAds=()=>{if(document.querySelector(".ad-showing")){const e=document.querySelector("video");e&&e.duration&&(e.currentTime=e.duration,setTimeout(()=>{const t=document.querySelector("button.ytp-ad-skip-button");t&&t.click()},100))}},overrideObject=(e,t,r)=>{if(!e)return!1;let n=!1;for(const o in e)e.hasOwnProperty(o)&&o===t?(e[o]=r,n=!0):e.hasOwnProperty(o)&&typeof e[o]=="object"&&overrideObject(e[o],t,r)&&(n=!0);return n},jsonOverride=(e,t)=>{const r=JSON.parse;JSON.parse=(...n)=>{const o=r.apply(this,n);return overrideObject(o,e,t),o},Response.prototype.json=new Proxy(Response.prototype.json,{async apply(...n){const o=await Reflect.apply(...n);return overrideObject(o,e,t),o}})};jsonOverride("adPlacements",[]),jsonOverride("playerAds",[]),hideElements(),hideDynamicAds(),autoSkipAds(),observeDomChanges(()=>{hideDynamicAds(),autoSkipAds()});
|
|
`;Qt.app.on("browser-window-created",(t,e)=>{e.webContents.on("frame-created",(r,{frame:n})=>{n?.once("dom-ready",()=>{T.store.plugins?.YoutubeAdblock?.enabled&&(n.url.includes("youtube.com/embed/")?n.executeJavaScript(it):n.parent?.url.includes("youtube.com/embed/")&&n.parent.executeJavaScript(it))})})});var tr={AppleMusicRichPresence:Xe,ConsoleShortcuts:Qe,FixSpotifyEmbeds:Ht,FixYoutubeEmbeds:Bt,OpenInApp:et,Translate:tt,VoiceMessages:rt,XSOverlay:nt,YoutubeAdblock:er};var rr={};for(let[t,e]of Object.entries(tr)){let r=Object.entries(e);if(!r.length)continue;let n=rr[t]={};for(let[i,o]of r){let s=`VencordPluginNative_${t}_${i}`;ot.ipcMain.handle(s,o),n[i]=s}}ot.ipcMain.on("VencordGetPluginIpcMethodMap",t=>{t.returnValue=rr});c();function st(t,e=300){let r;return function(...n){clearTimeout(r),r=setTimeout(()=>{t(...n)},e)}}ne();var g=require("electron");c();var nr="PCFkb2N0eXBlIGh0bWw+PGh0bWwgbGFuZz0iZW4iPjxoZWFkPjxtZXRhIGNoYXJzZXQ9InV0Zi04Ij48dGl0bGU+VmVuY29yZCBRdWlja0NTUyBFZGl0b3I8L3RpdGxlPjxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQDAuNTAuMC9taW4vdnMvZWRpdG9yL2VkaXRvci5tYWluLmNzcyIgaW50ZWdyaXR5PSJzaGEyNTYtdGlKUFEyTzA0ei9wWi9Bd2R5SWdock9NemV3ZitQSXZFbDFZS2JRdnNaaz0iIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiIHJlZmVycmVycG9saWN5PSJuby1yZWZlcnJlciI+PHN0eWxlPiNjb250YWluZXIsYm9keSxodG1se3Bvc2l0aW9uOmFic29sdXRlO2xlZnQ6MDt0b3A6MDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDtvdmVyZmxvdzpoaWRkZW59PC9zdHlsZT48L2hlYWQ+PGJvZHk+PGRpdiBpZD0iY29udGFpbmVyIj48L2Rpdj48c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9tb25hY28tZWRpdG9yQDAuNTAuMC9taW4vdnMvbG9hZGVyLmpzIiBpbnRlZ3JpdHk9InNoYTI1Ni1LY1U0OFRHcjg0cjd1bkY3SjVJZ0JvOTVhZVZyRWJyR2UwNFM3VGNGVWpzPSIgY3Jvc3NvcmlnaW49ImFub255bW91cyIgcmVmZXJyZXJwb2xpY3k9Im5vLXJlZmVycmVyIj48L3NjcmlwdD48c2NyaXB0PnJlcXVpcmUuY29uZmlnKHtwYXRoczp7dnM6Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbW9uYWNvLWVkaXRvckAwLjUwLjAvbWluL3ZzIn19KSxyZXF1aXJlKFsidnMvZWRpdG9yL2VkaXRvci5tYWluIl0sKCgpPT57Z2V0Q3VycmVudENzcygpLnRoZW4oKGU9Pnt2YXIgdD1tb25hY28uZWRpdG9yLmNyZWF0ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIikse3ZhbHVlOmUsbGFuZ3VhZ2U6ImNzcyIsdGhlbWU6Z2V0VGhlbWUoKX0pO3Qub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKCgpPT5zZXRDc3ModC5nZXRWYWx1ZSgpKSkpLHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCgoKT0+e3QubGF5b3V0KCl9KSl9KSl9KSk8L3NjcmlwdD48L2JvZHk+PC9odG1sPg==";var B=require("fs"),Z=require("fs/promises"),Y=require("path");c();ne();var ae=require("electron");function ir(){ae.ipcMain.handle("VencordCspRemoveOverride",fn),ae.ipcMain.handle("VencordCspRequestAddOverride",un),ae.ipcMain.handle("VencordCspIsDomainAllowed",hn)}function cn(t,e){try{let{host:r}=new URL(t);if(/[;'"\\]/.test(r))return!1}catch{return!1}return!(e.length===0||e.some(r=>!y.includes(r)))}function ln(t,e,r){let n=new URL(t).host,i=`${r} wants to allow connections to ${n}`,o=`Unless you recognise and fully trust ${n}, you should cancel this request!
|
|
|
|
You will have to fully close and restart Vesktop for the changes to take effect.`;if(e.length===1&&e[0]==="connect-src")return{message:i,detail:o};let s=e.filter(a=>a!=="connect-src").map(a=>{switch(a){case"img-src":return"Images";case"style-src":return"CSS & Themes";case"font-src":return"Fonts";default:throw new Error(`Illegal CSP directive: ${a}`)}}).sort().join(", ");return o=`The following types of content will be allowed to load from ${n}:
|
|
${s}
|
|
|
|
${o}`,{message:i,detail:o}}async function un(t,e,r,n){if(!cn(e,r))return"invalid";let i=new URL(e).host;if(i in O.store.customCspRules)return"conflict";let{checkboxChecked:o,response:s}=await ae.dialog.showMessageBox({...ln(e,r,n),type:n?"info":"warning",title:"Vencord Host Permissions",buttons:["Cancel","Allow"],defaultId:0,cancelId:0,checkboxLabel:`I fully trust ${i} and understand the risks of allowing connections to it.`,checkboxChecked:!1});return s!==1?"cancelled":o?(O.store.customCspRules[i]=r,"ok"):"unchecked"}function fn(t,e){return e in O.store.customCspRules?(delete O.store.customCspRules[e],!0):!1}function hn(t,e,r){try{let n=new URL(e).host,i=He[n]??O.store.customCspRules[n];return i?r.every(o=>i.includes(o)):!1}catch{return!1}}c();var pn=/[^\S\r\n]*?\r?(?:\r\n|\n)[^\S\r\n]*?\*[^\S\r\n]?/,dn=/^\\@/;function at(t,e={}){return{fileName:t,name:e.name??t.replace(/\.css$/i,""),author:e.author??"Unknown Author",description:e.description??"A Discord Theme.",version:e.version,license:e.license,source:e.source,website:e.website,invite:e.invite}}function or(t){return t.charCodeAt(0)===65279&&(t=t.slice(1)),t}function sr(t,e){if(!t)return at(e);let r=t.split("/**",2)?.[1]?.split("*/",1)?.[0];if(!r)return at(e);let n={},i="",o="";for(let s of r.split(pn))if(s.length!==0)if(s.charAt(0)==="@"&&s.charAt(1)!==" "){n[i]=o.trim();let a=s.indexOf(" ");i=s.substring(1,a),o=s.substring(a+1)}else o+=" "+s.replace("\\n",`
|
|
`).replace(dn,"@");return n[i]=o.trim(),delete n[""],at(e,n)}c();var ar=require("electron");function cr(t){t.webContents.setWindowOpenHandler(({url:e})=>{switch(e){case"about:blank":case"https://discord.com/popout":case"https://ptb.discord.com/popout":case"https://canary.discord.com/popout":return{action:"allow"}}try{var{protocol:r}=new URL(e)}catch{return{action:"deny"}}switch(r){case"http:":case"https:":case"mailto:":case"steam:":case"spotify:":ar.shell.openExternal(e)}return{action:"deny"}})}var vn=(0,Y.join)(__dirname,"vencordDesktopRenderer.css");(0,B.mkdirSync)(W,{recursive:!0});ir();function ct(t,e){let r=(0,Y.normalize)(t+"/"),n=(0,Y.join)(t,e),i=(0,Y.normalize)(n);return i.startsWith(r)?i:null}function lr(){return(0,Z.readFile)(ie,"utf-8").catch(()=>"")}async function mn(){let t=await(0,Z.readdir)(W).catch(()=>[]),e=[];for(let r of t){if(!r.endsWith(".css"))continue;let n=await ur(r).then(or).catch(()=>null);n!=null&&e.push(sr(n,r))}return e}function ur(t){t=t.replace(/\?v=\d+$/,"");let e=ct(W,t);return e?(0,Z.readFile)(e,"utf-8"):Promise.reject(`Unsafe path ${t}`)}g.ipcMain.handle("VencordOpenQuickCss",()=>g.shell.openPath(ie));g.ipcMain.handle("VencordOpenExternal",(t,e)=>{try{var{protocol:r}=new URL(e)}catch{throw"Malformed URL"}if(!It.includes(r))throw"Disallowed protocol.";g.shell.openExternal(e)});g.ipcMain.handle("VencordGetQuickCss",()=>lr());g.ipcMain.handle("VencordSetQuickCss",(t,e)=>(0,B.writeFileSync)(ie,e));g.ipcMain.handle("VencordGetThemesList",()=>mn());g.ipcMain.handle("VencordGetThemeData",(t,e)=>ur(e));g.ipcMain.handle("VencordGetThemeSystemValues",()=>{let t=g.systemPreferences.getAccentColor?.()??"";return t.length&&t[0]!=="#"&&(t=`#${t}`),{"os-accent-color":t}});g.ipcMain.handle("VencordOpenThemesFolder",()=>g.shell.openPath(W));g.ipcMain.handle("VencordOpenSettingsFolder",()=>g.shell.openPath(H));g.ipcMain.handle("VencordInitFileWatchers",({sender:t})=>{let e,r;(0,Z.open)(ie,"a+").then(i=>{i.close(),e=(0,B.watch)(ie,{persistent:!1},st(async()=>{t.postMessage("VencordQuickCssUpdate",await lr())},50))}).catch(()=>{});let n=(0,B.watch)(W,{persistent:!1},st(()=>{t.postMessage("VencordThemeUpdate",void 0)}));t.once("destroyed",()=>{e?.close(),n.close(),r?.close()})});g.ipcMain.on("VencordGetMonacoTheme",t=>{t.returnValue=g.nativeTheme.shouldUseDarkColors?"vs-dark":"vs-light"});g.ipcMain.handle("VencordOpenMonacoEditor",async()=>{let t="Vencord QuickCSS Editor",e=g.BrowserWindow.getAllWindows().find(n=>n.title===t);if(e&&!e.isDestroyed()){e.focus();return}let r=new g.BrowserWindow({title:t,autoHideMenuBar:!0,darkTheme:!0,webPreferences:{preload:(0,Y.join)(__dirname,"vencordDesktopPreload.js"),contextIsolation:!0,nodeIntegration:!1,sandbox:!1}});cr(r),await r.loadURL(`data:text/html;base64,${nr}`)});g.ipcMain.handle("VencordGetRendererCss",()=>(0,Z.readFile)(vn,"utf-8"));c();var _r=require("electron");c();var pr=require("module"),gn=(0,pr.createRequire)("/"),Pe,yn=";var __w=require('worker_threads');__w.parentPort.on('message',function(m){onmessage({data:m})}),postMessage=function(m,t){__w.parentPort.postMessage(m,t)},close=process.exit;self=global";try{Pe=gn("worker_threads").Worker}catch{}var wn=Pe?function(t,e,r,n,i){var o=!1,s=new Pe(t+yn,{eval:!0}).on("error",function(a){return i(a,null)}).on("message",function(a){return i(null,a)}).on("exit",function(a){a&&!o&&i(new Error("exited with code "+a),null)});return s.postMessage(r,n),s.terminate=function(){return o=!0,Pe.prototype.terminate.call(s)},s}:function(t,e,r,n,i){setImmediate(function(){return i(new Error("async operations unsupported - update to Node 12+ (or Node 10-11 with the --experimental-worker CLI flag)"),null)});var o=function(){};return{terminate:o,postMessage:o}},E=Uint8Array,J=Uint16Array,dr=Int32Array,ft=new E([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),ht=new E([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),vr=new E([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),mr=function(t,e){for(var r=new J(31),n=0;n<31;++n)r[n]=e+=1<<t[n-1];for(var i=new dr(r[30]),n=1;n<30;++n)for(var o=r[n];o<r[n+1];++o)i[o]=o-r[n]<<5|n;return{b:r,r:i}},gr=mr(ft,2),pt=gr.b,Sn=gr.r;pt[28]=258,Sn[258]=28;var yr=mr(ht,0),wr=yr.b,So=yr.r,Oe=new J(32768);for(d=0;d<32768;++d)U=(d&43690)>>1|(d&21845)<<1,U=(U&52428)>>2|(U&13107)<<2,U=(U&61680)>>4|(U&3855)<<4,Oe[d]=((U&65280)>>8|(U&255)<<8)>>1;var U,d,ce=(function(t,e,r){for(var n=t.length,i=0,o=new J(e);i<n;++i)t[i]&&++o[t[i]-1];var s=new J(e);for(i=1;i<e;++i)s[i]=s[i-1]+o[i-1]<<1;var a;if(r){a=new J(1<<e);var l=15-e;for(i=0;i<n;++i)if(t[i])for(var v=i<<4|t[i],f=e-t[i],u=s[t[i]-1]++<<f,m=u|(1<<f)-1;u<=m;++u)a[Oe[u]>>l]=v}else for(a=new J(n),i=0;i<n;++i)t[i]&&(a[i]=Oe[s[t[i]-1]++]>>15-t[i]);return a}),ye=new E(288);for(d=0;d<144;++d)ye[d]=8;var d;for(d=144;d<256;++d)ye[d]=9;var d;for(d=256;d<280;++d)ye[d]=7;var d;for(d=280;d<288;++d)ye[d]=8;var d,Sr=new E(32);for(d=0;d<32;++d)Sr[d]=5;var d;var xr=ce(ye,9,1);var Er=ce(Sr,5,1),_e=function(t){for(var e=t[0],r=1;r<t.length;++r)t[r]>e&&(e=t[r]);return e},C=function(t,e,r){var n=e/8|0;return(t[n]|t[n+1]<<8)>>(e&7)&r},Ae=function(t,e){var r=e/8|0;return(t[r]|t[r+1]<<8|t[r+2]<<16)>>(e&7)},Tr=function(t){return(t+7)/8|0},ke=function(t,e,r){return(e==null||e<0)&&(e=0),(r==null||r>t.length)&&(r=t.length),new E(t.subarray(e,r))};var Rr=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],x=function(t,e,r){var n=new Error(e||Rr[t]);if(n.code=t,Error.captureStackTrace&&Error.captureStackTrace(n,x),!r)throw n;return n},Dr=function(t,e,r,n){var i=t.length,o=n?n.length:0;if(!i||e.f&&!e.l)return r||new E(0);var s=!r,a=s||e.i!=2,l=e.i;s&&(r=new E(i*3));var v=function(xt){var Et=r.length;if(xt>Et){var Tt=new E(Math.max(Et*2,xt));Tt.set(r),r=Tt}},f=e.f||0,u=e.p||0,m=e.b||0,A=e.l,q=e.d,L=e.m,R=e.n,D=i*8;do{if(!A){f=C(t,u,1);var N=C(t,u+1,3);if(u+=3,N)if(N==1)A=xr,q=Er,L=9,R=5;else if(N==2){var ue=C(t,u,31)+257,we=C(t,u+10,15)+4,j=ue+C(t,u+5,31)+1;u+=14;for(var I=new E(j),Q=new E(19),w=0;w<we;++w)Q[vr[w]]=C(t,u+w*3,7);u+=we*3;for(var fe=_e(Q),Mr=(1<<fe)-1,Lr=ce(Q,fe,1),w=0;w<j;){var mt=Lr[C(t,u,Mr)];u+=mt&15;var S=mt>>4;if(S<16)I[w++]=S;else{var ee=0,Se=0;for(S==16?(Se=3+C(t,u,3),u+=2,ee=I[w-1]):S==17?(Se=3+C(t,u,7),u+=3):S==18&&(Se=11+C(t,u,127),u+=7);Se--;)I[w++]=ee}}var gt=I.subarray(0,ue),G=I.subarray(ue);L=_e(gt),R=_e(G),A=ce(gt,L,1),q=ce(G,R,1)}else x(1);else{var S=Tr(u)+4,V=t[S-4]|t[S-3]<<8,X=S+V;if(X>i){l&&x(0);break}a&&v(m+V),r.set(t.subarray(S,X),m),e.b=m+=V,e.p=u=X*8,e.f=f;continue}if(u>D){l&&x(0);break}}a&&v(m+131072);for(var Vr=(1<<L)-1,Ur=(1<<R)-1,Me=u;;Me=u){var ee=A[Ae(t,u)&Vr],te=ee>>4;if(u+=ee&15,u>D){l&&x(0);break}if(ee||x(2),te<256)r[m++]=te;else if(te==256){Me=u,A=null;break}else{var yt=te-254;if(te>264){var w=te-257,he=ft[w];yt=C(t,u,(1<<he)-1)+pt[w],u+=he}var Le=q[Ae(t,u)&Ur],Ve=Le>>4;Le||x(3),u+=Le&15;var G=wr[Ve];if(Ve>3){var he=ht[Ve];G+=Ae(t,u)&(1<<he)-1,u+=he}if(u>D){l&&x(0);break}a&&v(m+131072);var wt=m+yt;if(m<G){var St=o-G,Nr=Math.min(G,wt);for(St+m<0&&x(3);m<Nr;++m)r[m]=n[St+m]}for(;m<wt;++m)r[m]=r[m-G]}}e.l=A,e.p=Me,e.b=m,e.f=f,A&&(f=1,e.m=L,e.d=q,e.n=R)}while(!f);return m!=r.length&&s?ke(r,0,m):r.subarray(0,m)};var xn=new E(0);var En=function(t,e){var r={};for(var n in t)r[n]=t[n];for(var n in e)r[n]=e[n];return r},fr=function(t,e,r){for(var n=t(),i=t.toString(),o=i.slice(i.indexOf("[")+1,i.lastIndexOf("]")).replace(/\s+/g,"").split(","),s=0;s<n.length;++s){var a=n[s],l=o[s];if(typeof a=="function"){e+=";"+l+"=";var v=a.toString();if(a.prototype)if(v.indexOf("[native code]")!=-1){var f=v.indexOf(" ",8)+1;e+=v.slice(f,v.indexOf("(",f))}else{e+=v;for(var u in a.prototype)e+=";"+l+".prototype."+u+"="+a.prototype[u].toString()}else e+=v}else r[l]=a}return e},Ce=[],Tn=function(t){var e=[];for(var r in t)t[r].buffer&&e.push((t[r]=new t[r].constructor(t[r])).buffer);return e},Rn=function(t,e,r,n){if(!Ce[r]){for(var i="",o={},s=t.length-1,a=0;a<s;++a)i=fr(t[a],i,o);Ce[r]={c:fr(t[s],i,o),e:o}}var l=En({},Ce[r].e);return wn(Ce[r].c+";onmessage=function(e){for(var k in e.data)self[k]=e.data[k];onmessage="+e.toString()+"}",r,l,Tn(l),n)},Dn=function(){return[E,J,dr,ft,ht,vr,pt,wr,xr,Er,Oe,Rr,ce,_e,C,Ae,Tr,ke,x,Dr,dt,Ir,br]};var Ir=function(t){return postMessage(t,[t.buffer])},br=function(t){return t&&{out:t.size&&new E(t.size),dictionary:t.dictionary}},In=function(t,e,r,n,i,o){var s=Rn(r,n,i,function(a,l){s.terminate(),o(a,l)});return s.postMessage([t,e],e.consume?[t.buffer]:[]),function(){s.terminate()}};var k=function(t,e){return t[e]|t[e+1]<<8},_=function(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16|t[e+3]<<24)>>>0},lt=function(t,e){return _(t,e)+_(t,e+4)*4294967296};function bn(t,e,r){return r||(r=e,e={}),typeof r!="function"&&x(7),In(t,e,[Dn],function(n){return Ir(dt(n.data[0],br(n.data[1])))},1,r)}function dt(t,e){return Dr(t,{i:2},e&&e.out,e&&e.dictionary)}var ut=typeof TextDecoder<"u"&&new TextDecoder,Cn=0;try{ut.decode(xn,{stream:!0}),Cn=1}catch{}var Pn=function(t){for(var e="",r=0;;){var n=t[r++],i=(n>127)+(n>223)+(n>239);if(r+i>t.length)return{s:e,r:ke(t,r-1)};i?i==3?(n=((n&15)<<18|(t[r++]&63)<<12|(t[r++]&63)<<6|t[r++]&63)-65536,e+=String.fromCharCode(55296|n>>10,56320|n&1023)):i&1?e+=String.fromCharCode((n&31)<<6|t[r++]&63):e+=String.fromCharCode((n&15)<<12|(t[r++]&63)<<6|t[r++]&63):e+=String.fromCharCode(n)}};function _n(t,e){if(e){for(var r="",n=0;n<t.length;n+=16384)r+=String.fromCharCode.apply(null,t.subarray(n,n+16384));return r}else{if(ut)return ut.decode(t);var i=Pn(t),o=i.s,r=i.r;return r.length&&x(8),o}}var An=function(t,e){return e+30+k(t,e+26)+k(t,e+28)},On=function(t,e,r){var n=k(t,e+28),i=_n(t.subarray(e+46,e+46+n),!(k(t,e+8)&2048)),o=e+46+n,s=_(t,e+20),a=r&&s==4294967295?kn(t,o):[s,_(t,e+24),_(t,e+42)],l=a[0],v=a[1],f=a[2];return[k(t,e+10),l,v,i,o+k(t,e+30)+k(t,e+32),f]},kn=function(t,e){for(;k(t,e)!=1;e+=4+k(t,e+2));return[lt(t,e+12),lt(t,e+4),lt(t,e+20)]};var hr=typeof queueMicrotask=="function"?queueMicrotask:typeof setTimeout=="function"?setTimeout:function(t){t()};function Cr(t,e,r){r||(r=e,e={}),typeof r!="function"&&x(7);var n=[],i=function(){for(var R=0;R<n.length;++R)n[R]()},o={},s=function(R,D){hr(function(){r(R,D)})};hr(function(){s=r});for(var a=t.length-22;_(t,a)!=101010256;--a)if(!a||t.length-a>65558)return s(x(13,0,1),null),i;var l=k(t,a+8);if(l){var v=l,f=_(t,a+16),u=f==4294967295||v==65535;if(u){var m=_(t,a-12);u=_(t,m)==101075792,u&&(v=l=_(t,m+32),f=_(t,m+48))}for(var A=e&&e.filter,q=function(R){var D=On(t,f,u),N=D[0],S=D[1],V=D[2],X=D[3],ue=D[4],we=D[5],j=An(t,we);f=ue;var I=function(w,fe){w?(i(),s(w,null)):(fe&&(o[X]=fe),--l||s(null,o))};if(!A||A({name:X,size:S,originalSize:V,compression:N}))if(!N)I(null,ke(t,j,j+S));else if(N==8){var Q=t.subarray(j,j+S);if(V<524288||S>.8*V)try{I(null,dt(Q,{out:new E(V)}))}catch(w){I(w,null)}else n.push(bn(Q,{size:V},I))}else I(x(14,"unknown compression type "+N,1),null);else I(null,null)},L=0;L<v;++L)q(L)}else s(null,{});return i}var Ar=require("fs"),M=require("fs/promises"),le=require("path");c();function Pr(t){function e(s,a,l,v){let f=0;return f+=s<<0,f+=a<<8,f+=l<<16,f+=v<<24>>>0,f}if(t[0]===80&&t[1]===75&&t[2]===3&&t[3]===4)return t;if(t[0]!==67||t[1]!==114||t[2]!==50||t[3]!==52)throw new Error("Invalid header: Does not start with Cr24");let r=t[4]===3,n=t[4]===2;if(!n&&!r||t[5]||t[6]||t[7])throw new Error("Unexpected crx format version number.");if(n){let s=e(t[8],t[9],t[10],t[11]),a=e(t[12],t[13],t[14],t[15]),l=16+s+a;return t.subarray(l,t.length)}let o=12+e(t[8],t[9],t[10],t[11]);return t.subarray(o,t.length)}$e();var Mn=(0,le.join)(xe,"ExtensionCache");async function Ln(t,e){return await(0,M.mkdir)(e,{recursive:!0}),new Promise((r,n)=>{Cr(t,(i,o)=>{if(i)return void n(i);Promise.all(Object.keys(o).map(async s=>{if(s.startsWith("_metadata/"))return;if(s.endsWith("/"))return void(0,M.mkdir)((0,le.join)(e,s),{recursive:!0});let a=s.split("/"),l=a.pop(),v=a.join("/"),f=(0,le.join)(e,v);v&&await(0,M.mkdir)(f,{recursive:!0}),await(0,M.writeFile)((0,le.join)(f,l),o[s])})).then(()=>r()).catch(s=>{(0,M.rm)(e,{recursive:!0,force:!0}),n(s)})})})}async function Or(t){let e=(0,le.join)(Mn,`${t}`);try{await(0,M.access)(e,Ar.constants.F_OK)}catch{let n=`https://clients2.google.com/service/update2/crx?response=redirect&acceptformat=crx2,crx3&x=id%3D${t}%26uc&prodversion=${process.versions.chrome}`,i=await Te(n,{headers:{"User-Agent":`Electron ${process.versions.electron} ~ Vencord (https://github.com/Vendicated/Vencord)`}});await Ln(Pr(i),e).catch(o=>console.error(`Failed to extract extension ${t}`,o))}_r.session.defaultSession.loadExtension(e)}K.app.whenReady().then(()=>{K.protocol.handle("vencord",({url:t})=>{let e=decodeURI(t).slice(10).replace(/\?v=\d+$/,"");if(e.endsWith("/")&&(e=e.slice(0,-1)),e.startsWith("/themes/")){let r=e.slice(8),n=ct(W,r);return n?K.net.fetch((0,vt.pathToFileURL)(n).toString()):new Response(null,{status:404})}switch(e){case"renderer.js.map":case"vencordDesktopRenderer.js.map":case"preload.js.map":case"vencordDesktopPreload.js.map":case"patcher.js.map":case"vencordDesktopMain.js.map":return K.net.fetch((0,vt.pathToFileURL)((0,kr.join)(__dirname,e)).toString());default:return new Response(null,{status:404})}});try{T.store.enableReactDevtools&&Or("fmkadmapgofadopljbjfkapdkoienihi").then(()=>console.info("[Vencord] Installed React Developer Tools")).catch(t=>console.error("[Vencord] Failed to install React Developer Tools",t))}catch{}At()});
|
|
//# sourceURL=file:///VencordDesktopMain
|
|
//# sourceMappingURL=vencord://vencordDesktopMain.js.map
|
|
/*! For license information please see vencordDesktopMain.js.LEGAL.txt */
|