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
12 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 s=t[r].exports;s&&(s.default&&s.__esModule&&e(s.default)?n.push(s.default):e(s)&&n.push(s))}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],s=1;for(;s<e.length;){var r=e[s];const o=e[s+1];if(s+=2,("optionalAccess"===r||"optionalCall"===r)&&null==n)return;"access"===r||"optionalAccess"===r?(t=n,n=o(n)):"call"!==r&&"optionalCall"!==r||(n=o((...e)=>n.call(t,...e)),t=void 0)}return n}([e,"optionalAccess",e=>e.displayName])===t),findByStrings:(...e)=>n.find(t=>e.every(e=>t.toString().contains(e))),reloadModules:()=>{n.modules=e()}};function o(n){return new Promise((e,t)=>{n.oncomplete=n.onsuccess=()=>e(n.result),n.onabort=n.onerror=()=>t(n.error)})}function t(t,s){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(s),o(e)});var n;return(t,n)=>e.then(e=>n(e.transaction(s,t).objectStore(s)))}let s;function i(){return s=s||t("keyval-store","keyval")}function r(t,e=i()){return e("readonly",e=>o(e.get(t)))}function a(t,n,e=i()){return e("readwrite",e=>(e.put(n,t),o(e.transaction)))}function l(e,t){return e.openCursor().onsuccess=function(){this.result&&(t(this.result),this.result.continue())},o(e.transaction)}var c=Object.freeze({__proto__:null,clear:function(e=i()){return e("readwrite",e=>(e.clear(),o(e.transaction)))},createStore:t,del:function(t,e=i()){return e("readwrite",e=>(e.delete(t),o(e.transaction)))},delMany:function(e,t=i()){return t("readwrite",t=>(e.forEach(e=>t.delete(e)),o(t.transaction)))},entries:function(n=i()){return n("readonly",e=>{if(e.getAll&&e.getAllKeys)return Promise.all([o(e.getAllKeys()),o(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=>o(t.get(e)))))},keys:function(e=i()){return e("readonly",e=>{if(e.getAllKeys)return o(e.getAllKeys());const t=[];return l(e,e=>t.push(e.key)).then(()=>t)})},promisifyRequest:o,set:a,setMany:function(e,t=i()){return t("readwrite",t=>(e.forEach(e=>t.put(e[1],e[0])),o(t.transaction)))},update:function(s,r,e=i()){return e("readwrite",n=>new Promise((e,t)=>{n.get(s).onsuccess=function(){try{n.put(r(this.result),s),e(o(n.transaction))}catch(e){t(e)}}}))},values:function(e=i()){return e("readonly",e=>{if(e.getAll)return o(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 s=(e,t)=>{this.off(e,s),n(e,t)};this.on(e,s)},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 m(e={},{nestArrays:a=!0}={}){const l=new d;return Object.assign({store:function r(e,o,i){return new Proxy(e,{get(e,t){var n=[...i,t],s=e[t];return null!=s?(l.get({path:n,value:s}),!a&&Array.isArray(s)||"object"!=typeof s?s:r(s,o,n)):r(e[t]={},o,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 f=Object.freeze({__proto__:null,Events:u,make:m});const{useRef:p,useReducer:g,useEffect:h}=n.findByProps("__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createElement");function y(t,n=!1,s=()=>!0){p(t.ghost);const[,r]=g(e=>~e,0);h(()=>{function e(e,t){s(e,t)&&r()}return t.on(u.UPDATE,e),n||(t.on(u.SET,e),t.on(u.DELETE,e)),()=>{t.off(u.UPDATE,e),n||(t.off(u.SET,e),t.off(u.DELETE,e))}},[]),t.ghost}const _=n["findByProps"],v=_("__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","createElement");c={React:v,ReactDOM:_("__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","hydrate"),dispatch:_("dirtyDispatch").__proto__,idb:c,nests:f};function E(o,i=!1){return function(e,...t){t=t.join(""),void 0===e&&(e=["Default"],E("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],s=[],r="";i&&n.splice(0,1);for(let e=0;e<n.length;e++)e===n.length-1?(r+="%c"+n[e],s.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 ",s.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",""));o(r,...s)}}f={logger:{log:E(console.log),warn:E(console.warn),error:E(console.error),trace:E(console.trace),makeLogger:E}};const w=m();async function b(e){const t=demon.require("internal/nest"),n=await r("demon");var s;n.plugins[e]&&n.status[e].running&&(s=w.store[e].ctx,(0,eval)(n.plugins[e].initialize).onStop(s)),delete n.status[e],delete n.plugins[e],t.store.pluginsList=n.plugins,t.store.pluginsStatus=n.status,await a("demon",n)}async function x(t){const e=demon.require("internal/nest"),n=await r("demon");var s;n.plugins[t]&&(!function(e){let t=void 0,n=e[0],s=1;for(;s<e.length;){var r=e[s];const o=e[s+1];if(s+=2,("optionalAccess"===r||"optionalCall"===r)&&null==n)return;"access"===r||"optionalAccess"===r?(t=n,n=o(n)):"call"!==r&&"optionalCall"!==r||(n=o((...e)=>n.call(t,...e)),t=void 0)}return n}([n,"access",e=>e.status,"access",e=>e[t],"optionalAccess",e=>e.running])?(s=(0,eval)(n.plugins[t].initialize).onStart(),w.store[t].ctx=s,n.status[t]={running:!0}):(console.log(n.status[t].ctx),s=w.store[t].ctx,(0,eval)(n.plugins[t].initialize).onStop(s),n.status[t].running=!1)),e.store.pluginsList=n.plugins,e.store.pluginsStatus=n.status,await a("demon",n)}var N={init:async function(){const e=demon.require("internal/nest"),s=(window.__demon||(window.__demon={}),await r("demon")||await a("demon",{status:{},plugins:{}}),await r("demon"));s.status={},Object.keys(s.plugins).forEach(e=>{e=s.plugins[e];const t=(0,eval)(e.initialize);var n=t.onStart();w.store[e.meta.name].ctx=n,s.status[e.meta.name]={running:!0}}),e.store.pluginsList=s.plugins,e.store.pluginsStatus=s.status,await a("demon",s)},add:async function(e,t){const n=demon.require("internal/nest"),s=await r("demon");s.plugins[t.name]={initialize:e,meta:t},n.store.pluginsList=s.plugins,n.store.pluginsStatus=s.status,await a("demon",s)},del:b,toggle:x};const S=["a","b","i"],D=new Map;var A;A="a";const B=(i,a,e,s=!1)=>{if("function"!=typeof a[i])throw new Error(i+" is not a function in "+a.constructor.name);D.has(a)||D.set(a,{});const t=D.get(a);if(!t[i]){const o=a[i],c=(t[i]={o:o,b:new Map,i:new Map,a:new Map},(e,t,n)=>{t=function(e,t,n,s,r){const o=D.get(t)?.[e];if(!o)return r?Reflect.construct(t[e],n,s):t[e].apply(s,n);for(const c of o.b.values()){var i=c.call(s,n);Array.isArray(i)&&(n=i)}let a=(...e)=>r?Reflect.construct(o.o,e,s):o.o.apply(s,e);for(const u of o.i.values()){const d=a;a=(...e)=>u.call(s,e,d)}let l=a(...n);for(const m of o.a.values())l=m.call(s,n,l)??l;return l}(i,a,t,e,n);return s&&r(),t});var n=new Proxy(o,{apply:(e,t,n)=>c(t,n,!1),construct:(e,t)=>c(o,t,!0),get:(e,t,n)=>"toString"==t?o.toString.bind(o):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,s=A;const r=D.get(e),o=r?.[t];return!!o?.[s].has(n)&&(o[s].delete(n),S.every(e=>0===o[e].size)&&(Reflect.defineProperty(e,t,{value:o.o,writable:!0,configurable:!0})||(e[t]=o.o),delete r[t]),0==Object.keys(r).length&&D.delete(e),!0)}};return t[i][A].set(l,e),r},P="/home/ruthenic/Coding/Javascript/demoncord/demoncord-rewrite/src/api/ui/settings/plugincard.jsx",C=n.findByProps("Sizes","Tags"),T=n.findByDisplayName("Card"),L=(n.findByDisplayName("Flex"),n.findByDisplayName("FormText")),M=(n.findByProps("BorderColors","Colors"),n.findByDisplayName("FormDivider"),n.findByDisplayName("Switch"));var j=e=>(y(e.nest),e.nest.ghost.pluginsList[e.name]?v.createElement(v.Fragment,null,v.createElement(T,{type:"cardPrimary",outline:!1,editable:!1,__self:void 0,__source:{fileName:P,lineNumber:19}},v.createElement(C,{className:"demon-settings-card-header",size:C.Sizes.SIZE_20,__self:void 0,__source:{fileName:P,lineNumber:20}},e.name),v.createElement("hr",{className:"demon-settings-card-divider",__self:void 0,__source:{fileName:P,lineNumber:23}}),v.createElement(L,{className:"demon-settings-card-desc",__self:void 0,__source:{fileName:P,lineNumber:24}},e.nest.ghost.pluginsList[e.name].meta.desc),v.createElement("svg",{position:"top",onClick:async()=>{b(e.name)},className:"demon-settings-card-delete",viewBox:"0 0 24 24",__self:void 0,__source:{fileName:P,lineNumber:27}},v.createElement("path",{fill:"var(--text-muted)",d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zm2.46-7.12 1.41-1.41L12 12.59l2.12-2.12 1.41 1.41L13.41 14l2.12 2.12-1.41 1.41L12 15.41l-2.12 2.12-1.41-1.41L10.59 14l-2.13-2.12zM15.5 4l-1-1h-5l-1 1H5v2h14V4z",__self:void 0,__source:{fileName:P,lineNumber:35}})),v.createElement(M,{className:"demon-settings-card-switch",checked:e.nest.ghost.pluginsStatus[e.name].running,onChange:async()=>{x(e.name)},__self:void 0,__source:{fileName:P,lineNumber:37}}))):null);const O="/home/ruthenic/Coding/Javascript/demoncord/demoncord-rewrite/src/api/ui/settings/plugins.jsx",k=n.findByProps("Sizes","Tags"),I=(n.findByDisplayName("FormTitle"),n.findByDisplayName("FormSection"),n.findByDisplayName("FormDivider"));var F=()=>{const t=demon.require("internal/nest");return y(t),v.createElement(v.Fragment,null,v.createElement(k,{size:"demon-settings-header-size30",__self:void 0,__source:{fileName:O,lineNumber:14}},"Plugins"),v.createElement(I,{className:"demon-settings-divider",__self:void 0,__source:{fileName:O,lineNumber:15}}),Object.keys(t.ghost.pluginsList).map(e=>v.createElement(v.Fragment,null,v.createElement(j,{name:e,nest:t,__self:void 0,__source:{fileName:O,lineNumber:18}}))))};function R(e){const t=document.createElement("style");t.className="demon-element-css",t.innerHTML=e,document.head.appendChild(t)}var z={injectCSS:R,createClass:function(e,t){R(`.${e} {${Object.entries(t).map(([e,t])=>e+":"+t).join(";")}}`)}};const U=n.findByDisplayName("SettingsView");var q={init:function(){z.createClass("demon-settings-divider",{"margin-top":"10px","margin-bottom":"10px",height:"1px"}),z.createClass("demon-settings-card-divider",{"margin-top":"5px","margin-bottom":"5px","margin-left":"10px","margin-right":"10px",height:"1px",border:"thin solid var(--background-modifier-accent)"}),z.createClass("demon-settings-card-header",{"margin-left":"10px","margin-top":"10px"}),z.createClass("demon-settings-card-desc",{color:"var(--header-secondary)",display:"inline-block","font-size":"15px","line-height":"15px","margin-left":"10px","margin-top":"5px","margin-bottom":"10px"}),z.createClass("demon-settings-card-switch",{"margin-right":"10px","margin-top":"0px","margin-bottom":"10px",float:"right"}),z.createClass("demon-settings-card-delete",{"margin-right":"5px",float:"right",width:"24px",cursor:"pointer"}),z.createClass("demon-settings-header-size30",{"font-size":"30px","line-height":"34px"}),B("getPredicateSections",U.prototype,(e,t)=>(t.unshift({section:"HEADER",label:"Demoncord"},{section:"demoncord",label:"Plugins",element:F},{section:"DIVIDER"}),t))}};if(!window.DiscordNative)throw new Error("Sorry, Demoncord cannot be used on web!");const H={modules:{webpack:n,common:c},utils:f,plugins:N,internal:{nest:c.nests.make()},css:z};window.demon={require:function(e){const t=e.split("/");let n=H;return t.forEach(e=>{if(!(e in n))throw new Error("Module does not exist!");n=n[e]}),n}},N.init(),q.init()}();