this repo has no description
1import { ExtensionWebpackModule, Patch } from "@moonlight-mod/types";
2
3export const patches: Patch[] = [
4 {
5 find: "window.DiscordErrors=",
6 replace: [
7 // replace reporting line with update status
8 {
9 // CvQlAA mapped to ERRORS_ACTION_TO_TAKE
10 // FIXME: Better patch find?
11 match: /,(\(0,(\i)\.jsx\))\("p",{children:\i\.\i\.string\(\i\.\i\.CvQlAA\)}\)/,
12 replacement: (_, createElement, ReactJSX) =>
13 `,${createElement}(require("moonbase_crashScreen")?.UpdateText??${ReactJSX}.Fragment,{state:this.state,setState:this.setState.bind(this)})`
14 },
15
16 // wrap actions field to display error details
17 {
18 match: /(?<=return(\(0,(\i)\.jsx\))\(.+?,)action:(\i),className:/,
19 replacement: (_, createElement, ReactJSX, action) =>
20 `action:require("moonbase_crashScreen")?.wrapAction?${createElement}(require("moonbase_crashScreen").wrapAction,{action:${action},state:this.state}):${action},className:`
21 },
22
23 // add update button
24 // +hivLS -> ERRORS_RELOAD
25 {
26 match: /(?<=\["\+hivLS"\]\)}\),(\(0,(\i)\.jsx\))\(\i,{}\))/,
27 replacement: (_, createElement, ReactJSX) =>
28 `,${createElement}(require("moonbase_crashScreen")?.UpdateButton??${ReactJSX}.Fragment,{state:this.state,setState:this.setState.bind(this)})`
29 }
30 ]
31 }
32];
33
34export const webpackModules: Record<string, ExtensionWebpackModule> = {
35 stores: {
36 dependencies: [{ id: "discord/packages/flux" }, { id: "discord/Dispatcher" }]
37 },
38
39 ui: {
40 dependencies: [
41 { ext: "spacepack", id: "spacepack" },
42 { id: "react" },
43 { id: "discord/components/common/index" },
44 { ext: "moonbase", id: "stores" },
45 { ext: "moonbase", id: "ThemeDarkIcon" },
46 { id: "discord/modules/guild_settings/web/AppCard.css" },
47 { ext: "contextMenu", id: "contextMenu" },
48 { id: "discord/modules/modals/Modals" },
49 "Masks.PANEL_BUTTON",
50 '"Missing channel in Channel.openChannelContextMenu"',
51 ".forumOrHome]:"
52 ]
53 },
54
55 ThemeDarkIcon: {
56 dependencies: [{ ext: "common", id: "icons" }, { id: "react" }]
57 },
58
59 settings: {
60 dependencies: [
61 { ext: "spacepack", id: "spacepack" },
62 { ext: "settings", id: "settings" },
63 { id: "react" },
64 { ext: "moonbase", id: "ui" },
65 { ext: "contextMenu", id: "contextMenu" },
66 ':"USER_SETTINGS_MODAL_SET_SECTION"'
67 ],
68 entrypoint: true
69 },
70
71 updates: {
72 dependencies: [
73 { id: "react" },
74 { ext: "moonbase", id: "stores" },
75 { ext: "moonbase", id: "ThemeDarkIcon" },
76 { ext: "notices", id: "notices" },
77 {
78 ext: "spacepack",
79 id: "spacepack"
80 },
81 { id: "discord/Constants" },
82 { id: "discord/components/common/index" }
83 ],
84 entrypoint: true
85 },
86
87 moonbase: {
88 dependencies: [{ ext: "moonbase", id: "stores" }]
89 },
90
91 crashScreen: {
92 dependencies: [
93 { ext: "spacepack", id: "spacepack" },
94 { id: "react" },
95 { ext: "moonbase", id: "stores" },
96 { id: "discord/packages/flux" },
97 { id: "discord/components/common/index" },
98 /tabBar:"tabBar_[a-z0-9]+",tabBarItem:"tabBarItem_[a-z0-9]+"/
99 ]
100 }
101};