92 lines
2.9 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
"Masks.PANEL_BUTTON",
47
'"Missing channel in Channel.openChannelContextMenu"',
48
".forumOrHome]:"
49
]
50
},
51
52
settings: {
53
dependencies: [
54
{ ext: "spacepack", id: "spacepack" },
55
{ ext: "settings", id: "settings" },
56
{ id: "react" },
57
{ ext: "moonbase", id: "ui" },
58
':"USER_SETTINGS_MODAL_SET_SECTION"'
59
],
60
entrypoint: true
61
},
62
63
updates: {
64
dependencies: [
65
{ id: "react" },
66
{ ext: "moonbase", id: "stores" },
67
{ ext: "notices", id: "notices" },
68
{
69
ext: "spacepack",
70
id: "spacepack"
71
},
72
{ id: "discord/Constants" },
73
{ id: "discord/components/common/index" }
74
],
75
entrypoint: true
76
},
77
78
moonbase: {
79
dependencies: [{ ext: "moonbase", id: "stores" }]
80
},
81
82
crashScreen: {
83
dependencies: [
84
{ ext: "spacepack", id: "spacepack" },
85
{ id: "react" },
86
{ ext: "moonbase", id: "stores" },
87
{ id: "discord/packages/flux" },
88
{ id: "discord/components/common/index" },
89
/tabBar:"tabBar_[a-z0-9]+",tabBarItem:"tabBarItem_[a-z0-9]+"/
90
]
91
}
92
};
93