diff --git a/src/api/webpack.js b/src/api/webpack.js new file mode 100644 index 0000000..d707950 --- /dev/null +++ b/src/api/webpack.js @@ -0,0 +1,44 @@ +function getModules() { + let modules; + + webpackChunkdiscord_app.push([ + [Math.random().toString(36)], + {}, + (e) => { + modules = e; + }, + ]); + + return modules.c; +} + +function filter(filter, moduleList) { + let modules = []; + for (const mod in moduleList) { + const module = moduleList[mod].exports; + if (module) { + if (module.default && module.__esModule && filter(module.default)) { modules.push(module.default); } + else if (filter(module)) { modules.push(module); } + } + } + return modules; +} + +let webpack = { + modules: getModules(), + filter: filter, + find: (filter)=>webpack.filter(filter, webpack.modules)[0], + findAll: (filter)=>webpack.filter(filter, webpack.modules), + findByProps: (...props) => { + return webpack.find((module) => { + return props.every((prop)=>module[prop]!==undefined) + }) + }, + findByPropsAll: (...props) => { + return webpack.findAll((module) => + props.every((prop)=>module[prop]!==undefined) + ) + } +} + +export default webpack; diff --git a/src/init.js b/src/init.js index 94acad1..cd4bd72 100644 --- a/src/init.js +++ b/src/init.js @@ -1,10 +1,11 @@ import * as patcher from "./api/patcher.js" +import webpack from "./api/webpack.js" + async function init(obj) { obj.demon = { - patcher: { - patcher - } + patcher, + webpack } }