95 lines
3.0 kB
1
import { ExtensionWebpackModule, Patch } from "@moonlight-mod/types";
2
3
export 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,(.)\.jsx\))\("p",{children:.\.intl\.string\(.\..\.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,(.)\.jsx\))\(.+?,)action:(.),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,(.)\.jsx\))\(.,{}\))/,
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
34
export 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
{ id: "discord/modules/guild_settings/web/AppCard.css" },
46
{ ext: "contextMenu", id: "contextMenu" },
47
{ id: "discord/modules/modals/Modals" },
48
"Masks.PANEL_BUTTON",
49
'"Missing channel in Channel.openChannelContextMenu"',
50
".forumOrHome]:"
51
]
52
},
53
54
settings: {
55
dependencies: [
56
{ ext: "spacepack", id: "spacepack" },
57
{ ext: "settings", id: "settings" },
58
{ id: "react" },
59
{ ext: "moonbase", id: "ui" },
60
{ ext: "contextMenu", id: "contextMenu" },
61
':"USER_SETTINGS_MODAL_SET_SECTION"'
62
],
63
entrypoint: true
64
},
65
66
updates: {
67
dependencies: [
68
{ id: "react" },
69
{ ext: "moonbase", id: "stores" },
70
{ ext: "notices", id: "notices" },
71
{
72
ext: "spacepack",
73
id: "spacepack"
74
},
75
{ id: "discord/Constants" },
76
{ id: "discord/components/common/index" }
77
],
78
entrypoint: true
79
},
80
81
moonbase: {
82
dependencies: [{ ext: "moonbase", id: "stores" }]
83
},
84
85
crashScreen: {
86
dependencies: [
87
{ ext: "spacepack", id: "spacepack" },
88
{ id: "react" },
89
{ ext: "moonbase", id: "stores" },
90
{ id: "discord/packages/flux" },
91
{ id: "discord/components/common/index" },
92
/tabBar:"tabBar_[a-z0-9]+",tabBarItem:"tabBarItem_[a-z0-9]+"/
93
]
94
}
95
};
96