You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
demoncord-rewrite/dist/build.js

2 lines
8.7 KiB

!function(){"use strict";function e(){let t={};return window.webpackChunkdiscord_app.push([[Math.random().toString(36)],{},e=>{t=e}]),t.c}let n={modules:e(),filter:function(e,t){let n=[];for(const r in t){var o=t[r].exports;o&&(o.default&&o.__esModule&&e(o.default)?n.push(o.default):e(o)&&n.push(o))}return n},find:e=>n.filter(e,n.modules)[0],findAll:e=>n.filter(e,n.modules),findByProps:(...e)=>n.find(t=>e.every(e=>void 0!==t[e])),findByPropsAll:(...e)=>n.findAll(t=>e.every(e=>void 0!==t[e])),findByDisplayName:t=>n.find(e=>function(e){let t=void 0,n=e[0],o=1;for(;o<e.length;){var r=e[o];const s=e[o+1];if(o+=2,("optionalAccess"===r||"optionalCall"===r)&&null==n)return;"access"===r||"optionalAccess"===r?(t=n,n=s(n)):"call"!==r&&"optionalCall"!==r||(n=s((...e)=>n.call(t,...e)),t=void 0)}return n}([e,"optionalAccess",e=>e.default,"optionalAccess",e=>e.displayName])===t),findByStrings:(...e)=>n.find(t=>e.every(e=>t.toString().contains(e))),reloadModules:()=>{n.modules=e()}};function s(n){return new Promise((e,t)=>{n.oncomplete=n.onsuccess=()=>e(n.result),n.onabort=n.onerror=()=>t(n.error)})}function t(t,o){const e=(!navigator.userAgentData&&/Safari\//.test(navigator.userAgent)&&!/Chrom(e|ium)\//.test(navigator.userAgent)&&indexedDB.databases?new Promise(function(e){function t(){return indexedDB.databases().finally(e)}n=setInterval(t,100),t()}).finally(function(){return clearInterval(n)}):Promise.resolve()).then(()=>{const e=indexedDB.open(t);return e.onupgradeneeded=()=>e.result.createObjectStore(o),s(e)});var n;return(t,n)=>e.then(e=>n(e.transaction(o,t).objectStore(o)))}let o;function i(){return o=o||t("keyval-store","keyval")}function r(t,e=i()){return e("readonly",e=>s(e.get(t)))}function a(t,n,e=i()){return e("readwrite",e=>(e.put(n,t),s(e.transaction)))}function l(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},s(e.transaction)}var c=Object.freeze({__proto__:null,clear:function(e=i()){return e("readwrite",e=>(e.clear(),s(e.transaction)))},createStore:t,del:function(t,e=i()){return e("readwrite",e=>(e.delete(t),s(e.transaction)))},delMany:function(e,t=i()){return t("readwrite",t=>(e.forEach(e=>t.delete(e)),s(t.transaction)))},entries:function(n=i()){return n("readonly",e=>{if(e.getAll&&e.getAllKeys)return Promise.all([s(e.getAllKeys()),s(e.getAll())]).then(([e,n])=>e.map((e,t)=>[e,n[t]]));const t=[];return n("readonly",e=>l(e,e=>t.push([e.key,e.value])).then(()=>t))})},get:r,getMany:function(e,t=i()){return t("readonly",t=>Promise.all(e.map(e=>s(t.get(e)))))},keys:function(e=i()){return e("readonly",e=>{if(e.getAllKeys)return s(e.getAllKeys());const t=[];return l(e,e=>t.push(e.key)).then(()=>t)})},promisifyRequest:s,set:a,setMany:function(e,t=i()){return t("readwrite",t=>(e.forEach(e=>t.put(e[1],e[0])),s(t.transaction)))},update:function(o,r,e=i()){return e("readwrite",n=>new Promise((e,t)=>{n.get(o).onsuccess=function(){try{n.put(r(this.result),o),e(s(n.transaction))}catch(e){t(e)}}}))},values:function(e=i()){return e("readonly",e=>{if(e.getAll)return s(e.getAll());const t=[];return l(e,e=>t.push(e.value)).then(()=>t)})}}),u=Object.freeze({GET:"GET",SET:"SET",DELETE:"DELETE",UPDATE:"UPDATE"});class d{constructor(){this.listeners=Object.values(u).reduce((e,t)=>(e[t]=new Set,e),{}),this.on=function(e,t){if(this.listeners[e].has(t))throw Error(`This listener on ${e} already exists.`);this.listeners[e].add(t)},this.once=function(e,n){const o=(e,t)=>{this.off(e,o),n(e,t)};this.on(e,o)},this.off=function(e,t){this.listeners[e].delete(t)},this.emit=function(e,t){for(const n of this.listeners[e])n(e,t)};for(const t of Object.values(u))this[t.toLowerCase()]=e=>{this.emit(t,e)}}}function f(e={},{nestArrays:a=!0}={}){const l=new d;return Object.assign({store:function r(e,s,i){return new Proxy(e,{get(e,t){var n=[...i,t],o=e[t];return null!=o?(l.get({path:n,value:o}),!a&&Array.isArray(o)||"object"!=typeof o?o:r(o,s,n)):r(e[t]={},s,n)},set(e,t,n){return e[t]=n,l.set({path:[...i,t],value:n}),!0},deleteProperty(e,t){return delete e[t]&&(l.delete({path:[...i,t]}),!0)},has(e,t){return("object"!=typeof e[t]||0!==Object.keys(e[t]).length)&&t in e}})}(e,e,[]),ghost:e},l)}var p=Object.freeze({__proto__:null,Events:u,make:f});const g=n["findByProps"],h=g("__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createElement");c={React:h,ReactDOM:g("__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","hydrate"),dispatch:g("dirtyDispatch").__proto__,idb:c,nests:p};function m(s,i=!1){return function(e,...t){t=t.join(""),void 0===e&&(e=["Default"],m("warn")("Requested hierarchy has not been passed to logger function, defaulting to default string",["Logger"])),"string"==typeof e&&(t=e,e=["Default"]);let n=["Demoncord",...e,t],o=[],r="";i&&n.splice(0,1);for(let e=0;e<n.length;e++)e===n.length-1?(r+="%c"+n[e],o.push("\n\n@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@700&display=swap');\nfont-family: 'IBM Plex Mono', monospace;\n\ncolor: #E2EECE;\nfont-weight: 500;\nfont-size: 0.9em;\n")):(r+="%c"+n[e]+"%c ",o.push("\n\n@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@700&display=swap');\nfont-family: 'IBM Plex Mono', monospace;\n\ncolor: #1d1131;\nbackground-color: #aa8dd8;\nfont-weight: 600;\nfont-size: 0.9em;\npadding: 0px 5px 1px 5px;\nborder-radius: 5px;\n",""));s(r,...o)}}p={logger:{log:m(console.log),warn:m(console.warn),error:m(console.error),trace:m(console.trace),makeLogger:m}};const y=f();var w={init:async function(){const e=demon.require("internal/nest"),o=(window.__demon||(window.__demon={}),await r("demon")||await a("demon",{status:{},plugins:{}}),await r("demon"));o.status={},Object.keys(o.plugins).forEach(e=>{e=o.plugins[e];const t=(0,eval)(e.initialize);var n=t.onStart();y.store[e.meta.name].ctx=n,o.status[e.meta.name]={running:!0}}),e.store.pluginsList=o.plugins,await a("demon",o)},add:async function(e,t){const n=await r("demon");n.plugins[t.name]={initialize:e,meta:t},extNest.store.pluginsList=n.plugins,await a("demon",n)},del:async function(e){const t=await r("demon");var n;t.plugins[e]&&t.status[e].running&&(n=y.store[e].ctx,(0,eval)(t.plugins[e].initialize).onStop(n)),delete t.status[e],delete t.plugins[e],extNest.store.pluginsList=t.plugins,await a("demon",t)},toggle:async function(t){const e=await r("demon");var n;e.plugins[t]&&(!function(e){let t=void 0,n=e[0],o=1;for(;o<e.length;){var r=e[o];const s=e[o+1];if(o+=2,("optionalAccess"===r||"optionalCall"===r)&&null==n)return;"access"===r||"optionalAccess"===r?(t=n,n=s(n)):"call"!==r&&"optionalCall"!==r||(n=s((...e)=>n.call(t,...e)),t=void 0)}return n}([e,"access",e=>e.status,"access",e=>e[t],"optionalAccess",e=>e.running])?(n=(0,eval)(e.plugins[t].initialize).onStart(),y.store[t].ctx=n,e.status[t]={running:!0}):(console.log(e.status[t].ctx),n=y.store[t].ctx,(0,eval)(e.plugins[t].initialize).onStop(n),e.status[t].running=!1)),await a("demon",e)}};const v=["a","b","i"],_=new Map;var E;E="a";const b=(i,a,e,o=!1)=>{if("function"!=typeof a[i])throw new Error(i+" is not a function in "+a.constructor.name);_.has(a)||_.set(a,{});const t=_.get(a);if(!t[i]){const s=a[i],c=(t[i]={o:s,b:new Map,i:new Map,a:new Map},(e,t,n)=>{t=function(e,t,n,o,r){const s=_.get(t)?.[e];if(!s)return r?Reflect.construct(t[e],n,o):t[e].apply(o,n);for(const c of s.b.values()){var i=c.call(o,n);Array.isArray(i)&&(n=i)}let a=(...e)=>r?Reflect.construct(s.o,e,o):s.o.apply(o,e);for(const u of s.i.values()){const d=a;a=(...e)=>u.call(o,e,d)}let l=a(...n);for(const f of s.a.values())l=f.call(o,n,l)??l;return l}(i,a,t,e,n);return o&&r(),t});var n=new Proxy(s,{apply:(e,t,n)=>c(t,n,!1),construct:(e,t)=>c(s,t,!0),get:(e,t,n)=>"toString"==t?s.toString.bind(s):Reflect.get(e,t,n)});Reflect.defineProperty(a,i,{value:n,configurable:!0,writable:!0})||(a[i]=n)}const l=Symbol(),r=()=>{{var e=a,t=i,n=l,o=E;const r=_.get(e),s=r?.[t];return!!s?.[o].has(n)&&(s[o].delete(n),v.every(e=>0===s[e].size)&&(Reflect.defineProperty(e,t,{value:s.o,writable:!0,configurable:!0})||(e[t]=s.o),delete r[t]),0==Object.keys(r).length&&_.delete(e),!0)}};return t[i][E].set(l,e),r},A="/home/ruthenic/Coding/Javascript/demoncord/demoncord-rewrite/src/api/ui/settings/test.jsx";var S=()=>{var e=demon.require("internal/nest"),e=Object.keys(e.ghost.pluginsList);return h.createElement("h1",{__self:void 0,__source:{fileName:A,lineNumber:7}},e)};const x=n.findByDisplayName("SettingsView");var D={init:function(){b("getPredicateSections",x.default.prototype,(e,t)=>(t.unshift({section:"HEADER",label:"Demoncord"},{section:"demoncord",label:"Plugins",element:S},{section:"DIVIDER"}),t))}};if(!window.DiscordNative)throw new Error("Sorry, Demoncord cannot be used on web!");const P={modules:{webpack:n,common:c},utils:p,plugins:w,internal:{nest:c.nests.make()}};window.demon={require:function(e){const t=e.split("/");let n=P;return t.forEach(e=>{if(!(e in n))throw new Error("Module does not exist!");n=n[e]}),n}},w.init(),D.init()}();