diff options
138 files changed, 572 insertions, 547 deletions
diff --git a/browser/VencordNativeStub.ts b/browser/VencordNativeStub.ts index dca7da8..ef3923b 100644 --- a/browser/VencordNativeStub.ts +++ b/browser/VencordNativeStub.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import IpcEvents from "../src/utils/IpcEvents"; import * as DataStore from "../src/api/DataStore"; +import IpcEvents from "../src/utils/IpcEvents"; // Discord deletes this so need to store in variable const { localStorage } = window; diff --git a/docs/2_PLUGINS.md b/docs/2_PLUGINS.md index 6ac4b24..705ea89 100644 --- a/docs/2_PLUGINS.md +++ b/docs/2_PLUGINS.md @@ -15,7 +15,7 @@ You don't need to run `pnpm build` every time you make a change. Instead, use `p 3. In `index.ts`, copy-paste the following template code: ```ts -import definePlugin from "../../utils/types"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "Epic Plugin", diff --git a/src/VencordNative.ts b/src/VencordNative.ts index c984870..3cd53e1 100644 --- a/src/VencordNative.ts +++ b/src/VencordNative.ts @@ -16,10 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import IPC_EVENTS from "@utils/IpcEvents"; import { IpcRenderer, ipcRenderer } from "electron"; -import IPC_EVENTS from "./utils/IpcEvents"; - function assertEventAllowed(event: string) { if (!(event in IPC_EVENTS)) throw new Error(`Event ${event} not allowed.`); } diff --git a/src/api/Commands/commandHelpers.ts b/src/api/Commands/commandHelpers.ts index 8986248..d363d6e 100644 --- a/src/api/Commands/commandHelpers.ts +++ b/src/api/Commands/commandHelpers.ts @@ -16,15 +16,15 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { mergeDefaults } from "@utils/misc"; +import { findByCodeLazy, findByPropsLazy, waitFor } from "@webpack"; import { Message } from "discord-types/general"; import type { PartialDeep } from "type-fest"; -import { lazyWebpack, mergeDefaults } from "../../utils/misc"; -import { filters, waitFor } from "../../webpack"; import { Argument } from "./types"; -const createBotMessage = lazyWebpack(filters.byCode('username:"Clyde"')); -const MessageSender = lazyWebpack(filters.byProps("receiveMessage")); +const createBotMessage = findByCodeLazy('username:"Clyde"'); +const MessageSender = findByPropsLazy("receiveMessage"); let SnowflakeUtils: any; waitFor("fromTimestamp", m => SnowflakeUtils = m); diff --git a/src/api/Commands/index.ts b/src/api/Commands/index.ts index f31043c..88139d4 100644 --- a/src/api/Commands/index.ts +++ b/src/api/Commands/index.ts @@ -16,7 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { makeCodeblock } from "../../utils/misc"; +import { makeCodeblock } from "@utils/misc"; + import { sendBotMessage } from "./commandHelpers"; import { ApplicationCommandInputType, ApplicationCommandOptionType, ApplicationCommandType, Argument, Command, CommandContext, Option } from "./types"; diff --git a/src/api/MessageEvents.ts b/src/api/MessageEvents.ts index 02638b2..1bf6b0b 100644 --- a/src/api/MessageEvents.ts +++ b/src/api/MessageEvents.ts @@ -16,11 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import Logger from "@utils/Logger"; +import { MessageStore } from "@webpack/common"; import type { Channel, Message } from "discord-types/general"; -import Logger from "../utils/Logger"; -import { MessageStore } from "../webpack/common"; - const MessageEventsLogger = new Logger("MessageEvents", "#e5c890"); export interface Emoji { diff --git a/src/api/Notices.ts b/src/api/Notices.ts index 4364ca5..6d20087 100644 --- a/src/api/Notices.ts +++ b/src/api/Notices.ts @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { waitFor } from "../webpack"; +import { waitFor } from "@webpack"; let NoticesModule: any; waitFor(m => m.show && m.dismiss && !m.suppressAll, m => NoticesModule = m); diff --git a/src/api/ServerList.ts b/src/api/ServerList.ts index d3a9a11..c98b174 100644 --- a/src/api/ServerList.ts +++ b/src/api/ServerList.ts @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import Logger from "../utils/Logger"; +import Logger from "@utils/Logger"; const logger = new Logger("ServerListAPI"); diff --git a/src/api/settings.ts b/src/api/settings.ts index dd8692a..b7499d1 100644 --- a/src/api/settings.ts +++ b/src/api/settings.ts @@ -16,13 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import plugins from "~plugins"; +import IpcEvents from "@utils/IpcEvents"; +import Logger from "@utils/Logger"; +import { mergeDefaults } from "@utils/misc"; +import { OptionType } from "@utils/types"; +import { React } from "@webpack/common"; -import IpcEvents from "../utils/IpcEvents"; -import Logger from "../utils/Logger"; -import { mergeDefaults } from "../utils/misc"; -import { OptionType } from "../utils/types"; -import { React } from "../webpack/common"; +import plugins from "~plugins"; const logger = new Logger("Settings"); export interface Settings { diff --git a/src/components/CheckedTextInput.tsx b/src/components/CheckedTextInput.tsx index e97519d..cf4aa11 100644 --- a/src/components/CheckedTextInput.tsx +++ b/src/components/CheckedTextInput.tsx @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { React, TextInput } from "../webpack/common"; +import { React, TextInput } from "@webpack/common"; // TODO: Refactor settings to use this as well interface TextInputProps { diff --git a/src/components/DonateButton.tsx b/src/components/DonateButton.tsx index 6aae8ad..49f079b 100644 --- a/src/components/DonateButton.tsx +++ b/src/components/DonateButton.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import IpcEvents from "../utils/IpcEvents"; -import { Button } from "../webpack/common"; +import IpcEvents from "@utils/IpcEvents"; +import { Button } from "@webpack/common"; + import { Heart } from "./Heart"; export default function DonateButton(props: any) { diff --git a/src/components/ErrorBoundary.tsx b/src/components/ErrorBoundary.tsx index 86a5946..8ebc61b 100644 --- a/src/components/ErrorBoundary.tsx +++ b/src/components/ErrorBoundary.tsx @@ -16,9 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import Logger from "../utils/Logger"; -import { LazyComponent } from "../utils/misc"; -import { Margins, React } from "../webpack/common"; +import Logger from "@utils/Logger"; +import { LazyComponent } from "@utils/misc"; +import { Margins, React } from "@webpack/common"; + import { ErrorCard } from "./ErrorCard"; interface Props { diff --git a/src/components/ErrorCard.tsx b/src/components/ErrorCard.tsx index f83be38..e749ea4 100644 --- a/src/components/ErrorCard.tsx +++ b/src/components/ErrorCard.tsx @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Card } from "../webpack/common"; +import { Card } from "@webpack/common"; interface Props { style?: React.CSSProperties; diff --git a/src/components/Flex.tsx b/src/components/Flex.tsx index 1987fab..430d857 100644 --- a/src/components/Flex.tsx +++ b/src/components/Flex.tsx @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import type { React } from "../webpack/common"; +import type { React } from "@webpack/common"; export function Flex(props: React.PropsWithChildren<{ flexDirection?: React.CSSProperties["flexDirection"]; diff --git a/src/components/Link.tsx b/src/components/Link.tsx index 2400ea6..0f4eb07 100644 --- a/src/components/Link.tsx +++ b/src/components/Link.tsx @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { React } from "../webpack/common"; +import { React } from "@webpack/common"; interface Props extends React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement> { disabled?: boolean; diff --git a/src/components/Monaco.ts b/src/components/Monaco.ts index 6d16c76..aa98f99 100644 --- a/src/components/Monaco.ts +++ b/src/components/Monaco.ts @@ -16,12 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import monacoHtml from "~fileContent/monacoWin.html"; +import { debounce } from "@utils/debounce"; +import IpcEvents from "@utils/IpcEvents"; +import { Queue } from "@utils/Queue"; +import { find } from "@webpack"; -import { debounce } from "../utils/debounce"; -import IpcEvents from "../utils/IpcEvents"; -import { Queue } from "../utils/Queue"; -import { find } from "../webpack/webpack"; +import monacoHtml from "~fileContent/monacoWin.html"; const queue = new Queue(); const setCss = debounce((css: string) => { diff --git a/src/components/PatchHelper.tsx b/src/components/PatchHelper.tsx index 0314de8..22c2b4d 100644 --- a/src/components/PatchHelper.tsx +++ b/src/components/PatchHelper.tsx @@ -16,10 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { debounce } from "../utils/debounce"; -import { makeCodeblock } from "../utils/misc"; -import { Button, Clipboard, Forms, Margins, Parser, React, Switch, Text, TextInput } from "../webpack/common"; -import { search } from "../webpack/webpack"; +import { debounce } from "@utils/debounce"; +import { makeCodeblock } from "@utils/misc"; +import { search } from "@webpack"; +import { Button, Clipboard, Forms, Margins, Parser, React, Switch, Text, TextInput } from "@webpack/common"; + import { CheckedTextInput } from "./CheckedTextInput"; import ErrorBoundary from "./ErrorBoundary"; diff --git a/src/components/PluginSettings/PluginModal.tsx b/src/components/PluginSettings/PluginModal.tsx index 7331fff..275d370 100644 --- a/src/components/PluginSettings/PluginModal.tsx +++ b/src/components/PluginSettings/PluginModal.tsx @@ -16,17 +16,17 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { generateId } from "@api/Commands"; +import { useSettings } from "@api/settings"; +import { LazyComponent } from "@utils/misc"; +import { ModalContent, ModalFooter, ModalHeader, ModalProps, ModalRoot, ModalSize } from "@utils/modal"; +import { proxyLazy } from "@utils/proxyLazy"; +import { OptionType, Plugin } from "@utils/types"; +import { findByCode, findByPropsLazy } from "@webpack"; +import { Button, FluxDispatcher, Forms, React, Text, Tooltip, UserStore, UserUtils } from "@webpack/common"; import { User } from "discord-types/general"; import { Constructor } from "type-fest"; -import { generateId } from "../../api/Commands"; -import { useSettings } from "../../api/settings"; -import { LazyComponent, lazyWebpack } from "../../utils/misc"; -import { ModalContent, ModalFooter, ModalHeader, ModalProps, ModalRoot, ModalSize } from "../../utils/modal"; -import { proxyLazy } from "../../utils/proxyLazy"; -import { OptionType, Plugin } from "../../utils/types"; -import { filters, findByCode } from "../../webpack"; -import { Button, FluxDispatcher, Forms, React, Text, Tooltip, UserStore, UserUtils } from "../../webpack/common"; import ErrorBoundary from "../ErrorBoundary"; import { Flex } from "../Flex"; import { @@ -40,7 +40,7 @@ import { } from "./components"; const UserSummaryItem = LazyComponent(() => findByCode("defaultRenderUser", "showDefaultAvatarsForNullUsers")); -const AvatarStyles = lazyWebpack(filters.byProps("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar")); +const AvatarStyles = findByPropsLazy("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar"); const UserRecord: Constructor<Partial<User>> = proxyLazy(() => UserStore.getCurrentUser().constructor) as any; interface PluginModalProps extends ModalProps { diff --git a/src/components/PluginSettings/components/SettingBooleanComponent.tsx b/src/components/PluginSettings/components/SettingBooleanComponent.tsx index 99c1eae..0aaafa0 100644 --- a/src/components/PluginSettings/components/SettingBooleanComponent.tsx +++ b/src/components/PluginSettings/components/SettingBooleanComponent.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PluginOptionBoolean } from "../../../utils/types"; -import { Forms, React, Select } from "../../../webpack/common"; +import { PluginOptionBoolean } from "@utils/types"; +import { Forms, React, Select } from "@webpack/common"; + import { ISettingElementProps } from "."; export function SettingBooleanComponent({ option, pluginSettings, id, onChange, onError }: ISettingElementProps<PluginOptionBoolean>) { diff --git a/src/components/PluginSettings/components/SettingCustomComponent.tsx b/src/components/PluginSettings/components/SettingCustomComponent.tsx index dd704bf..af7192f 100644 --- a/src/components/PluginSettings/components/SettingCustomComponent.tsx +++ b/src/components/PluginSettings/components/SettingCustomComponent.tsx @@ -16,7 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PluginOptionComponent } from "../../../utils/types"; +import { PluginOptionComponent } from "@utils/types"; + import { ISettingElementProps } from "."; export function SettingCustomComponent({ option, onChange, onError }: ISettingElementProps<PluginOptionComponent>) { diff --git a/src/components/PluginSettings/components/SettingNumericComponent.tsx b/src/components/PluginSettings/components/SettingNumericComponent.tsx index 01e72dc..3457783 100644 --- a/src/components/PluginSettings/components/SettingNumericComponent.tsx +++ b/src/components/PluginSettings/components/SettingNumericComponent.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { OptionType, PluginOptionNumber } from "../../../utils/types"; -import { Forms, React, TextInput } from "../../../webpack/common"; +import { OptionType, PluginOptionNumber } from "@utils/types"; +import { Forms, React, TextInput } from "@webpack/common"; + import { ISettingElementProps } from "."; const MAX_SAFE_NUMBER = BigInt(Number.MAX_SAFE_INTEGER); diff --git a/src/components/PluginSettings/components/SettingSelectComponent.tsx b/src/components/PluginSettings/components/SettingSelectComponent.tsx index ce35675..8a5bee1 100644 --- a/src/components/PluginSettings/components/SettingSelectComponent.tsx +++ b/src/components/PluginSettings/components/SettingSelectComponent.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PluginOptionSelect } from "../../../utils/types"; -import { Forms, React, Select } from "../../../webpack/common"; +import { PluginOptionSelect } from "@utils/types"; +import { Forms, React, Select } from "@webpack/common"; + import { ISettingElementProps } from "."; export function SettingSelectComponent({ option, pluginSettings, onChange, onError, id }: ISettingElementProps<PluginOptionSelect>) { diff --git a/src/components/PluginSettings/components/SettingSliderComponent.tsx b/src/components/PluginSettings/components/SettingSliderComponent.tsx index ff1c491..2d31696 100644 --- a/src/components/PluginSettings/components/SettingSliderComponent.tsx +++ b/src/components/PluginSettings/components/SettingSliderComponent.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PluginOptionSlider } from "../../../utils/types"; -import { Forms, React, Slider } from "../../../webpack/common"; +import { PluginOptionSlider } from "@utils/types"; +import { Forms, React, Slider } from "@webpack/common"; + import { ISettingElementProps } from "."; export function makeRange(start: number, end: number, step = 1) { diff --git a/src/components/PluginSettings/components/SettingTextComponent.tsx b/src/components/PluginSettings/components/SettingTextComponent.tsx index f76bd58..b92fcec 100644 --- a/src/components/PluginSettings/components/SettingTextComponent.tsx +++ b/src/components/PluginSettings/components/SettingTextComponent.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PluginOptionString } from "../../../utils/types"; -import { Forms, React, TextInput } from "../../../webpack/common"; +import { PluginOptionString } from "@utils/types"; +import { Forms, React, TextInput } from "@webpack/common"; + import { ISettingElementProps } from "."; export function SettingTextComponent({ option, pluginSettings, id, onChange, onError }: ISettingElementProps<PluginOptionString>) { diff --git a/src/components/PluginSettings/components/index.ts b/src/components/PluginSettings/components/index.ts index 507b53a..9e75068 100644 --- a/src/components/PluginSettings/components/index.ts +++ b/src/components/PluginSettings/components/index.ts @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { PluginOptionBase } from "../../../utils/types"; +import { PluginOptionBase } from "@utils/types"; export interface ISettingElementProps<T extends PluginOptionBase> { option: T; @@ -35,3 +35,4 @@ export * from "./SettingNumericComponent"; export * from "./SettingSelectComponent"; export * from "./SettingSliderComponent"; export * from "./SettingTextComponent"; + diff --git a/src/components/PluginSettings/index.tsx b/src/components/PluginSettings/index.tsx index f16d55c..495a509 100644 --- a/src/components/PluginSettings/index.tsx +++ b/src/components/PluginSettings/index.tsx @@ -16,18 +16,19 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { showNotice } from "@api/Notices"; +import { Settings, useSettings } from "@api/settings"; +import { ChangeList } from "@utils/ChangeList"; +import Logger from "@utils/Logger"; +import { classes, LazyComponent } from "@utils/misc"; +import { openModalLazy } from "@utils/modal"; +import { Plugin } from "@utils/types"; +import { findByCode, findByPropsLazy } from "@webpack"; +import { Alerts, Button, Forms, Margins, Parser, React, Select, Switch, Text, TextInput, Toasts, Tooltip } from "@webpack/common"; + import Plugins from "~plugins"; -import { showNotice } from "../../api/Notices"; -import { Settings, useSettings } from "../../api/settings"; import { startDependenciesRecursive, startPlugin, stopPlugin } from "../../plugins"; -import { ChangeList } from "../../utils/ChangeList"; -import Logger from "../../utils/Logger"; -import { classes, LazyComponent, lazyWebpack } from "../../utils/misc"; -import { openModalLazy } from "../../utils/modal"; -import { Plugin } from "../../utils/types"; -import { filters, findByCode } from "../../webpack"; -import { Alerts, Button, Forms, Margins, Parser, React, Select, Switch, Text, TextInput, Toasts, Tooltip } from "../../webpack/common"; import ErrorBoundary from "../ErrorBoundary"; import { ErrorCard } from "../ErrorCard"; import { Flex } from "../Flex"; @@ -37,7 +38,7 @@ import * as styles from "./styles"; const logger = new Logger("PluginSettings", "#a6d189"); -const InputStyles = lazyWebpack(filters.byProps("inputDefault", "inputWrapper")); +const InputStyles = findByPropsLazy("inputDefault", "inputWrapper"); const CogWheel = LazyComponent(() => findByCode("18.564C15.797 19.099 14.932 19.498 14 19.738V22H10V19.738C9.069")); const InfoIcon = LazyComponent(() => findByCode("4.4408921e-16 C4.4771525,-1.77635684e-15 4.4408921e-16")); diff --git a/src/components/VencordSettings/BackupRestoreTab.tsx b/src/components/VencordSettings/BackupRestoreTab.tsx index ce0bdaa..73a1309 100644 --- a/src/components/VencordSettings/BackupRestoreTab.tsx +++ b/src/components/VencordSettings/BackupRestoreTab.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { downloadSettingsBackup, uploadSettingsBackup } from "../../utils/settingsSync"; -import { Button, Card, Forms, Margins, Text } from "../../webpack/common"; +import { downloadSettingsBackup, uploadSettingsBackup } from "@utils/settingsSync"; +import { Button, Card, Forms, Margins, Text } from "@webpack/common"; + import ErrorBoundary from "../ErrorBoundary"; import { Flex } from "../Flex"; diff --git a/src/components/VencordSettings/Updater.tsx b/src/components/VencordSettings/Updater.tsx index 8f2b75b..7abfad9 100644 --- a/src/components/VencordSettings/Updater.tsx +++ b/src/components/VencordSettings/Updater.tsx @@ -16,11 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { classes, useAwaiter } from "@utils/misc"; +import { changes, checkForUpdates, getRepo, isNewer, rebuild, update, updateError, UpdateLogger } from "@utils/updater"; +import { Alerts, Button, Card, Forms, Margins, Parser, React, Toasts } from "@webpack/common"; + import gitHash from "~git-hash"; -import { classes, useAwaiter } from "../../utils/misc"; -import { changes, checkForUpdates, getRepo, isNewer, rebuild, update, updateError, UpdateLogger } from "../../utils/updater"; -import { Alerts, Button, Card, Forms, Margins, Parser, React, Toasts } from "../../webpack/common"; import ErrorBoundary from "../ErrorBoundary"; import { ErrorCard } from "../ErrorCard"; import { Flex } from "../Flex"; diff --git a/src/components/VencordSettings/VencordTab.tsx b/src/components/VencordSettings/VencordTab.tsx index 0e5846f..3a3f45f 100644 --- a/src/components/VencordSettings/VencordTab.tsx +++ b/src/components/VencordSettings/VencordTab.tsx @@ -17,10 +17,11 @@ */ -import { useSettings } from "../../api/settings"; -import IpcEvents from "../../utils/IpcEvents"; -import { useAwaiter } from "../../utils/misc"; -import { Button, Card, Forms, React, Switch } from "../../webpack/common"; +import { useSettings } from "@api/settings"; +import IpcEvents from "@utils/IpcEvents"; +import { useAwaiter } from "@utils/misc"; +import { Button, Card, Forms, React, Switch } from "@webpack/common"; + import DonateButton from "../DonateButton"; import ErrorBoundary from "../ErrorBoundary"; diff --git a/src/components/VencordSettings/index.tsx b/src/components/VencordSettings/index.tsx index 028bd5e..4b6fb4e 100644 --- a/src/components/VencordSettings/index.tsx +++ b/src/components/VencordSettings/index.tsx @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { findByCodeLazy } from "@webpack"; +import { Forms, Router, Text } from "@webpack/common"; + import cssText from "~fileContent/settingsStyles.css"; -import { lazyWebpack } from "../../utils/misc"; -import { filters } from "../../webpack"; -import { Forms, React, Router, Text } from "../../webpack/common"; import ErrorBoundary from "../ErrorBoundary"; import BackupRestoreTab from "./BackupRestoreTab"; import PluginsTab from "./PluginsTab"; @@ -33,7 +33,7 @@ document.head.appendChild(style); const st = (style: string) => `vcSettings${style}`; -const TabBar = lazyWebpack(filters.byCode('[role="tab"][aria-disabled="false"]')); +const TabBar = findByCodeLazy('[role="tab"][aria-disabled="false"]'); interface SettingsProps { tab: string; diff --git a/src/components/handleComponentFailed.ts b/src/components/handleComponentFailed.ts index 34f3ab9..020e8ef 100644 --- a/src/components/handleComponentFailed.ts +++ b/src/components/handleComponentFailed.ts @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { isOutdated, rebuild, update } from "../utils/updater"; +import { isOutdated, rebuild, update } from "@utils/updater"; export async function handleComponentFailed() { if (isOutdated) { diff --git a/src/debug/Tracer.ts b/src/debug/Tracer.ts index 4e17143..185915a 100644 --- a/src/debug/Tracer.ts +++ b/src/debug/Tracer.ts @@ -16,7 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import Logger from "../utils/Logger"; +import Logger from "@utils/Logger"; if (IS_DEV) { var traces = {} as Record<string, [number, any[]]>; diff --git a/src/ipcMain/index.ts b/src/ipcMain/index.ts index 535c005..ba85eeb 100644 --- a/src/ipcMain/index.ts +++ b/src/ipcMain/index.ts @@ -18,6 +18,9 @@ import "./updater"; +import { debounce } from "@utils/debounce"; +import IpcEvents from "@utils/IpcEvents"; +import { Queue } from "@utils/Queue"; import { BrowserWindow, desktopCapturer, ipcMain, shell } from "electron"; import { mkdirSync, readFileSync, watch } from "fs"; import { open, readFile, writeFile } from "fs/promises"; @@ -25,9 +28,6 @@ import { join } from "path"; import monacoHtml from "~fileContent/../components/monacoWin.html;base64"; -import { debounce } from "../utils/debounce"; -import IpcEvents from "../utils/IpcEvents"; -import { Queue } from "../utils/Queue"; import { ALLOWED_PROTOCOLS, QUICKCSS_PATH, SETTINGS_DIR, SETTINGS_FILE } from "./constants"; mkdirSync(SETTINGS_DIR, { recursive: true }); diff --git a/src/ipcMain/updater/git.ts b/src/ipcMain/updater/git.ts index 7e4176a..07c94cb 100644 --- a/src/ipcMain/updater/git.ts +++ b/src/ipcMain/updater/git.ts @@ -16,12 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import IpcEvents from "@utils/IpcEvents"; import { execFile as cpExecFile } from "child_process"; import { ipcMain } from "electron"; import { join } from "path"; import { promisify } from "util"; -import IpcEvents from "../../utils/IpcEvents"; import { calculateHashes, serializeErrors } from "./common"; const VENCORD_SRC_DIR = join(__dirname, ".."); diff --git a/src/ipcMain/updater/http.ts b/src/ipcMain/updater/http.ts index 523340f..902d644 100644 --- a/src/ipcMain/updater/http.ts +++ b/src/ipcMain/updater/http.ts @@ -16,6 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { VENCORD_USER_AGENT } from "@utils/constants"; +import IpcEvents from "@utils/IpcEvents"; import { ipcMain } from "electron"; import { writeFile } from "fs/promises"; import { join } from "path"; @@ -23,8 +25,6 @@ import { join } from "path"; import gitHash from "~git-hash"; import gitRemote from "~git-remote"; -import { VENCORD_USER_AGENT } from "../../utils/constants"; -import IpcEvents from "../../utils/IpcEvents"; import { get } from "../simpleGet"; import { calculateHashes, serializeErrors } from "./common"; diff --git a/src/modules.d.ts b/src/modules.d.ts index 78cc9a5..6901260 100644 --- a/src/modules.d.ts +++ b/src/modules.d.ts @@ -20,7 +20,7 @@ /// <reference types="standalone-electron-types"/> declare module "~plugins" { - const plugins: Record<string, import("./utils/types").Plugin>; + const plugins: Record<string, import("@utils/types").Plugin>; export default plugins; } diff --git a/src/patcher.ts b/src/patcher.ts index 28910b7..12cefc0 100644 --- a/src/patcher.ts +++ b/src/patcher.ts @@ -16,6 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { onceDefined } from "@utils/onceDefined"; import electron, { app, BrowserWindowConstructorOptions } from "electron"; import { readFileSync } from "fs"; import { dirname, join } from "path"; @@ -23,7 +24,6 @@ import { dirname, join } from "path"; import { initIpc } from "./ipcMain"; import { installExt } from "./ipcMain/extensions"; import { readSettings } from "./ipcMain/index"; -import { onceDefined } from "./utils/onceDefined"; console.log("[Vencord] Starting up..."); diff --git a/src/plugins/BetterNotes.ts b/src/plugins/BetterNotes.ts index 15282b6..4184259 100644 --- a/src/plugins/BetterNotes.ts +++ b/src/plugins/BetterNotes.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Settings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import { makeLazy } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import { makeLazy } from "@utils/misc"; +import definePlugin, { OptionType } from "@utils/types"; export default definePlugin({ name: "BetterNotesBox", diff --git a/src/plugins/HideAttachments.tsx b/src/plugins/HideAttachments.tsx index 0789214..2c1a0d4 100644 --- a/src/plugins/HideAttachments.tsx +++ b/src/plugins/HideAttachments.tsx @@ -16,14 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { get, set } from "@api/DataStore"; +import { Devs } from "@utils/constants"; +import Logger from "@utils/Logger"; +import definePlugin from "@utils/types"; +import { ChannelStore, FluxDispatcher } from "@webpack/common"; import { Message } from "discord-types/general"; -import { get, set } from "../api/DataStore"; -import { Devs } from "../utils/constants"; -import Logger from "../utils/Logger"; -import definePlugin from "../utils/types"; -import { ChannelStore, FluxDispatcher } from "../webpack/common"; - let style: HTMLStyleElement; const KEY = "HideAttachments_HiddenIds"; diff --git a/src/plugins/TimeBarAllActivities.ts b/src/plugins/TimeBarAllActivities.ts index d4fe639..223f182 100644 --- a/src/plugins/TimeBarAllActivities.ts +++ b/src/plugins/TimeBarAllActivities.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "TimeBarAllActivities", diff --git a/src/plugins/anonymiseFileNames.ts b/src/plugins/anonymiseFileNames.ts index c7c3ed5..f953a14 100644 --- a/src/plugins/anonymiseFileNames.ts +++ b/src/plugins/anonymiseFileNames.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; enum Methods { Random, diff --git a/src/plugins/apiBadges.tsx b/src/plugins/apiBadges.tsx index 831bf86..77ea46e 100644 --- a/src/plugins/apiBadges.tsx +++ b/src/plugins/apiBadges.tsx @@ -16,17 +16,17 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { BadgePosition, ProfileBadge } from "../api/Badges"; -import DonateButton from "../components/DonateButton"; -import ErrorBoundary from "../components/ErrorBoundary"; -import { Flex } from "../components/Flex"; -import { Heart } from "../components/Heart"; -import { Devs } from "../utils/constants"; -import IpcEvents from "../utils/IpcEvents"; -import Logger from "../utils/Logger"; -import { closeModal, Modals, openModal } from "../utils/modal"; -import definePlugin from "../utils/types"; -import { Forms, Margins } from "../webpack/common"; +import { BadgePosition, ProfileBadge } from "@api/Badges"; +import DonateButton from "@components/DonateButton"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Flex } from "@components/Flex"; +import { Heart } from "@components/Heart"; +import { Devs } from "@utils/constants"; +import IpcEvents from "@utils/IpcEvents"; +import Logger from "@utils/Logger"; +import { closeModal, Modals, openModal } from "@utils/modal"; +import definePlugin from "@utils/types"; +import { Forms, Margins } from "@webpack/common"; const CONTRIBUTOR_BADGE = "https://media.discordapp.net/stickers/1026517526106087454.webp"; diff --git a/src/plugins/apiCommands.ts b/src/plugins/apiCommands.ts index 4136deb..e92b904 100644 --- a/src/plugins/apiCommands.ts +++ b/src/plugins/apiCommands.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "CommandsAPI", diff --git a/src/plugins/apiMenuItemDeobfuscator.ts b/src/plugins/apiMenuItemDeobfuscator.ts index 40d53f1..5703456 100644 --- a/src/plugins/apiMenuItemDeobfuscator.ts +++ b/src/plugins/apiMenuItemDeobfuscator.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; // duplicate values have multiple branches with different types. Just include all to be safe const nameMap = { diff --git a/src/plugins/apiMessageAccessories.ts b/src/plugins/apiMessageAccessories.ts index ee3ee90..0b30b58 100644 --- a/src/plugins/apiMessageAccessories.ts +++ b/src/plugins/apiMessageAccessories.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "MessageAccessoriesAPI", diff --git a/src/plugins/apiMessageEvents.ts b/src/plugins/apiMessageEvents.ts index bf7c7f5..13fbc4c 100644 --- a/src/plugins/apiMessageEvents.ts +++ b/src/plugins/apiMessageEvents.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "MessageEventsAPI", diff --git a/src/plugins/apiNotices.ts b/src/plugins/apiNotices.ts index f53c535..a93334b 100644 --- a/src/plugins/apiNotices.ts +++ b/src/plugins/apiNotices.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; migratePluginSettings("NoticesAPI", "NoticesApi"); diff --git a/src/plugins/apiServerList.ts b/src/plugins/apiServerList.ts index 134870e..77498ac 100644 --- a/src/plugins/apiServerList.ts +++ b/src/plugins/apiServerList.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "ServerListAPI", diff --git a/src/plugins/arRPC.tsx b/src/plugins/arRPC.tsx index 081ea48..cba3504 100644 --- a/src/plugins/arRPC.tsx +++ b/src/plugins/arRPC.tsx @@ -16,13 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { popNotice, showNotice } from "../api/Notices"; -import { Link } from "../components/Link"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin from "../utils/types"; -import { filters, mapMangledModuleLazy } from "../webpack"; -import { FluxDispatcher, Forms, Toasts } from "../webpack/common"; +import { popNotice, showNotice } from "@api/Notices"; +import { Link } from "@components/Link"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { filters, findByCodeLazy, mapMangledModuleLazy } from "@webpack"; +import { FluxDispatcher, Forms, Toasts } from "@webpack/common"; const assetManager = mapMangledModuleLazy( "getAssetImage: size must === [number, number] for Twitch", @@ -31,7 +30,7 @@ const assetManager = mapMangledModuleLazy( } ); -const rpcManager = lazyWebpack(filters.byCode(".APPLICATION_RPC(")); +const rpcManager = findByCodeLazy(".APPLICATION_RPC("); async function lookupAsset(applicationId: string, key: string): Promise<string> { return (await assetManager.getAsset(applicationId, [key, undefined]))[0]; diff --git a/src/plugins/banger.ts b/src/plugins/banger.ts index 6263224..68163cb 100644 --- a/src/plugins/banger.ts +++ b/src/plugins/banger.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; export default definePlugin({ name: "BANger", diff --git a/src/plugins/betterGifAltText.ts b/src/plugins/betterGifAltText.ts index 56d7b54..686ef0a 100644 --- a/src/plugins/betterGifAltText.ts +++ b/src/plugins/betterGifAltText.ts @@ -17,8 +17,8 @@ */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "BetterGifAltText", diff --git a/src/plugins/betterRoleDot.ts b/src/plugins/betterRoleDot.ts index 37a2ea7..3b2ac39 100644 --- a/src/plugins/betterRoleDot.ts +++ b/src/plugins/betterRoleDot.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings, Settings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; -import { Clipboard, Toasts } from "../webpack/common"; +import { migratePluginSettings, Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { Clipboard, Toasts } from "@webpack/common"; migratePluginSettings("BetterRoleDot", "ClickableRoleDot"); export default definePlugin({ diff --git a/src/plugins/betterUploadButton.ts b/src/plugins/betterUploadButton.ts index 94c1f49..64a3785 100644 --- a/src/plugins/betterUploadButton.ts +++ b/src/plugins/betterUploadButton.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "BetterUploadButton", diff --git a/src/plugins/blurNsfw.ts b/src/plugins/blurNsfw.ts index 8f4178f..5521897 100644 --- a/src/plugins/blurNsfw.ts +++ b/src/plugins/blurNsfw.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Settings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; let style: HTMLStyleElement; diff --git a/src/plugins/callTimer.tsx b/src/plugins/callTimer.tsx index 40aa160..6a1d357 100644 --- a/src/plugins/callTimer.tsx +++ b/src/plugins/callTimer.tsx @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Settings } from "../api/settings"; -import ErrorBoundary from "../components/ErrorBoundary"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; -import { React } from "../webpack/common"; +import { Settings } from "@api/settings"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { React } from "@webpack/common"; function formatDuration(ms: number) { // here be dragons (moment fucking sucks) diff --git a/src/plugins/clearURLs/index.ts b/src/plugins/clearURLs/index.ts index f5b8909..178a0e1 100644 --- a/src/plugins/clearURLs/index.ts +++ b/src/plugins/clearURLs/index.ts @@ -22,10 +22,11 @@ import { MessageObject, removePreEditListener, removePreSendListener -} from "../../api/MessageEvents"; -import { migratePluginSettings } from "../../api/settings"; -import { Devs } from "../../utils/constants"; -import definePlugin from "../../utils/types"; +} from "@api/MessageEvents"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; + import { defaultRules } from "./defaultRules"; // From lodash diff --git a/src/plugins/consoleShortcuts.ts b/src/plugins/consoleShortcuts.ts index eeb5d8d..ae0de9f 100644 --- a/src/plugins/consoleShortcuts.ts +++ b/src/plugins/consoleShortcuts.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; const WEB_ONLY = (f: string) => () => { throw new Error(`'${f}' is Discord Desktop only.`); diff --git a/src/plugins/corruptMp4s.ts b/src/plugins/corruptMp4s.ts index 05cdf5f..5ae25ee 100644 --- a/src/plugins/corruptMp4s.ts +++ b/src/plugins/corruptMp4s.ts @@ -16,12 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandOptionType, sendBotMessage } from "../api/Commands"; -import { findOption } from "../api/Commands/commandHelpers"; -import { ApplicationCommandInputType } from "../api/Commands/types"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { findByCode, findByProps } from "../webpack"; +import { ApplicationCommandOptionType, sendBotMessage } from "@api/Commands"; +import { findOption } from "@api/Commands/commandHelpers"; +import { ApplicationCommandInputType } from "@api/Commands/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByCode, findByProps } from "@webpack"; const DRAFT_TYPE = 0; diff --git a/src/plugins/dictionary.ts b/src/plugins/dictionary.ts index 547636d..14ee37b 100644 --- a/src/plugins/dictionary.ts +++ b/src/plugins/dictionary.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandOptionType, sendBotMessage } from "../api/Commands"; -import { ApplicationCommandInputType } from "../api/Commands/types"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { ApplicationCommandOptionType, sendBotMessage } from "@api/Commands"; +import { ApplicationCommandInputType } from "@api/Commands/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "UrbanDictionary", diff --git a/src/plugins/emoteCloner.tsx b/src/plugins/emoteCloner.tsx index 0b1190b..36b283e 100644 --- a/src/plugins/emoteCloner.tsx +++ b/src/plugins/emoteCloner.tsx @@ -16,20 +16,20 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings, Settings } from "../api/settings"; -import { CheckedTextInput } from "../components/CheckedTextInput"; -import { Devs } from "../utils/constants"; -import Logger from "../utils/Logger"; -import { lazyWebpack, makeLazy } from "../utils/misc"; -import { ModalContent, ModalHeader, ModalRoot, openModal } from "../utils/modal"; -import definePlugin from "../utils/types"; -import { filters } from "../webpack"; -import { Forms, GuildStore, Margins, Menu, PermissionStore, React, Toasts, Tooltip, UserStore } from "../webpack/common"; +import { migratePluginSettings, Settings } from "@api/settings"; +import { CheckedTextInput } from "@components/CheckedTextInput"; +import { Devs } from "@utils/constants"; +import Logger from "@utils/Logger"; +import { makeLazy } from "@utils/misc"; +import { ModalContent, ModalHeader, ModalRoot, openModal } from "@utils/modal"; +import definePlugin from "@utils/types"; +import { findByCodeLazy, findByPropsLazy } from "@webpack"; +import { Forms, GuildStore, Margins, Menu, PermissionStore, React, Toasts, Tooltip, UserStore } from "@webpack/common"; const MANAGE_EMOJIS_AND_STICKERS = 1n << 30n; -const GuildEmojiStore = lazyWebpack(filters.byProps("getGuilds", "getGuildEmoji")); -const uploadEmoji = lazyWebpack(filters.byCode('"EMOJI_UPLOAD_START"', "GUILD_EMOJIS(")); +const GuildEmojiStore = findByPropsLazy("getGuilds", "getGuildEmoji"); +const uploadEmoji = findByCodeLazy('"EMOJI_UPLOAD_START"', "GUILD_EMOJIS("); function getGuildCandidates(isAnimated: boolean) { const meId = UserStore.getCurrentUser().id; diff --git a/src/plugins/experiments.tsx b/src/plugins/experiments.tsx index 4f83c5a..3019e64 100644 --- a/src/plugins/experiments.tsx +++ b/src/plugins/experiments.tsx @@ -16,14 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; -import { filters } from "../webpack"; -import { Forms, React } from "../webpack/common"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByPropsLazy } from "@webpack"; +import { Forms, React } from "@webpack/common"; -const KbdStyles = lazyWebpack(filters.byProps("key", "removeBuildOverride")); +const KbdStyles = findByPropsLazy("key", "removeBuildOverride"); export default definePlugin({ name: "Experiments", diff --git a/src/plugins/fakeNitro.ts b/src/plugins/fakeNitro.ts index c682324..0a1985a 100644 --- a/src/plugins/fakeNitro.ts +++ b/src/plugins/fakeNitro.ts @@ -16,18 +16,16 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addPreEditListener, addPreSendListener, removePreEditListener, removePreSendListener } from "../api/MessageEvents"; -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import { ApngDisposeOp, getGifEncoder, importApngJs } from "../utils/dependencies"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; -import { filters } from "../webpack"; -import { ChannelStore, UserStore } from "../webpack/common"; +import { addPreEditListener, addPreSendListener, removePreEditListener, removePreSendListener } from "@api/MessageEvents"; +import { migratePluginSettings, Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import { ApngDisposeOp, getGifEncoder, importApngJs } from "@utils/dependencies"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByCodeLazy, findByPropsLazy } from "@webpack"; +import { ChannelStore, UserStore } from "@webpack/common"; const DRAFT_TYPE = 0; -const promptToUpload = lazyWebpack(filters.byCode("UPLOAD_FILE_LIMIT_ERROR")); +const promptToUpload = findByCodeLazy("UPLOAD_FILE_LIMIT_ERROR"); interface BaseSticker { available: boolean; @@ -225,8 +223,8 @@ export default definePlugin({ return; } - const EmojiStore = lazyWebpack(filters.byProps("getCustomEmojiById")); - const StickerStore = lazyWebpack(filters.byProps("getAllGuildStickers")) as { + const EmojiStore = findByPropsLazy("getCustomEmojiById"); + const StickerStore = findByPropsLazy("getAllGuildStickers") as { getPremiumPacks(): StickerPack[]; getAllGuildStickers(): Map<string, Sticker[]>; getStickerById(id: string): Sticker | undefined; diff --git a/src/plugins/fart.ts b/src/plugins/fart.ts index 88e95af..9404b39 100644 --- a/src/plugins/fart.ts +++ b/src/plugins/fart.ts @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandOptionType } from "../api/Commands"; -import { makeRange } from "../components/PluginSettings/components"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; +import { ApplicationCommandOptionType } from "@api/Commands"; +import { Settings } from "@api/settings"; +import { makeRange } from "@components/PluginSettings/components"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; export default definePlugin({ name: "Fart2", diff --git a/src/plugins/forceOwnerCrown.ts b/src/plugins/forceOwnerCrown.ts index a26e6e2..9345ea7 100644 --- a/src/plugins/forceOwnerCrown.ts +++ b/src/plugins/forceOwnerCrown.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { waitFor } from "../webpack"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { waitFor } from "@webpack"; let GuildStore; waitFor(["getGuild"], m => GuildStore = m); diff --git a/src/plugins/friendInvites.ts b/src/plugins/friendInvites.ts index 24ca50a..73dffd1 100644 --- a/src/plugins/friendInvites.ts +++ b/src/plugins/friendInvites.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandInputType, sendBotMessage } from "../api/Commands"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { findByProps } from "../webpack"; +import { ApplicationCommandInputType, sendBotMessage } from "@api/Commands"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByProps } from "@webpack"; export default definePlugin({ name: "FriendInvites", diff --git a/src/plugins/fxTwitter.ts b/src/plugins/fxTwitter.ts index 4bb00d9..efe1ebc 100644 --- a/src/plugins/fxTwitter.ts +++ b/src/plugins/fxTwitter.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addPreSendListener, MessageObject, removePreSendListener } from "../api/MessageEvents"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { addPreSendListener, MessageObject, removePreSendListener } from "@api/MessageEvents"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; const re = /https?:\/\/twitter\.com(?=\/\w+?\/status\/)/g; diff --git a/src/plugins/iLoveSpam.ts b/src/plugins/iLoveSpam.ts index 7f390f3..79b2e3f 100644 --- a/src/plugins/iLoveSpam.ts +++ b/src/plugins/iLoveSpam.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "iLoveSpam", diff --git a/src/plugins/ignoreActivities.ts b/src/plugins/ignoreActivities.ts index d33d5cc..a39b026 100644 --- a/src/plugins/ignoreActivities.ts +++ b/src/plugins/ignoreActivities.ts @@ -16,11 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { DataStore } from "../api"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin from "../utils/types"; -import { filters } from "../webpack"; +import * as DataStore from "@api/DataStore"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByPropsLazy } from "@webpack"; interface MatchAndReplace { match: RegExp; @@ -28,7 +27,7 @@ interface MatchAndReplace { } /** Used to re-render the Registered Games tab to update how our button looks like */ -const RunningGameStoreModule = lazyWebpack(filters.byProps("IgnoreActivities_reRenderGames")); +const RunningGameStoreModule = findByPropsLazy("IgnoreActivities_reRenderGames"); let ignoredActivitiesCache: string[] = []; diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 68a76cb..c0325d4 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -16,13 +16,14 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { registerCommand, unregisterCommand } from "@api/Commands"; +import { Settings } from "@api/settings"; +import Logger from "@utils/Logger"; +import { Patch, Plugin } from "@utils/types"; + import Plugins from "~plugins"; -import { registerCommand, unregisterCommand } from "../api/Commands"; -import { Settings } from "../api/settings"; import { traceFunction } from "../debug/Tracer"; -import Logger from "../utils/Logger"; -import { Patch, Plugin } from "../utils/types"; const logger = new Logger("PluginManager", "#a6d189"); diff --git a/src/plugins/keepCurrentChannel.ts b/src/plugins/keepCurrentChannel.ts index 395fd76..0d7147c 100644 --- a/src/plugins/keepCurrentChannel.ts +++ b/src/plugins/keepCurrentChannel.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { DataStore } from "../api"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { ChannelStore, FluxDispatcher, NavigationRouter, SelectedChannelStore, SelectedGuildStore } from "../webpack/common"; +import * as DataStore from "@api/DataStore"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { ChannelStore, FluxDispatcher, NavigationRouter, SelectedChannelStore, SelectedGuildStore } from "@webpack/common"; export interface LogoutEvent { type: "LOGOUT"; diff --git a/src/plugins/lastfm.tsx b/src/plugins/lastfm.tsx index 280c0ee..bf3f63c 100644 --- a/src/plugins/lastfm.tsx +++ b/src/plugins/lastfm.tsx @@ -16,43 +16,43 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Link } from "../components/Link"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings, Webpack } from "../Vencord"; -import { FluxDispatcher, Forms } from "../webpack/common"; +import { Settings } from "@api/settings"; +import { Link } from "@components/Link"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { filters, findByPropsLazy, mapMangledModuleLazy } from "@webpack"; +import { FluxDispatcher, Forms } from "@webpack/common"; interface ActivityAssets { - large_image?: string - large_text?: string - small_image?: string - small_text?: string + large_image?: string; + large_text?: string; + small_image?: string; + small_text?: string; } interface Activity { - state: string - details?: string + state: string; + details?: string; timestamps?: { - start?: Number - } - assets?: ActivityAssets - buttons?: Array<string> - name: string - application_id: string + start?: Number; + }; + assets?: ActivityAssets; + buttons?: Array<string>; + name: string; + application_id: string; metadata?: { - button_urls?: Array<string> - } - type: Number - flags: Number + button_urls?: Array<string>; + }; + type: Number; + flags: Number; } interface TrackData { - name: string - album: string - artist: string - url: string - imageUrl?: string + name: string; + album: string; + artist: string; + url: string; + imageUrl?: string; } // only relevant enum values @@ -67,11 +67,11 @@ enum ActivityFlag { const applicationId = "1043533871037284423"; -const presenceStore = lazyWebpack(Webpack.filters.byProps("getLocalPresence")); -const assetManager = Webpack.mapMangledModuleLazy( +const presenceStore = findByPropsLazy("getLocalPresence"); +const assetManager = mapMangledModuleLazy( "getAssetImage: size must === [number, number] for Twitch", { - getAsset: Webpack.filters.byCode("apply("), + getAsset: filters.byCode("apply("), } ); @@ -196,9 +196,9 @@ export default definePlugin({ state: hideAlbumName ? trackData.artist : `${trackData.artist} - ${trackData.album}`, assets, - buttons: [ "Open in Last.fm" ], + buttons: ["Open in Last.fm"], metadata: { - button_urls: [ trackData.url ] + button_urls: [trackData.url] }, type: this.settings.useListeningStatus ? ActivityType.LISTENING : ActivityType.PLAYING, diff --git a/src/plugins/loadingQuotes.ts b/src/plugins/loadingQuotes.ts index 7ee55d8..052bfe6 100644 --- a/src/plugins/loadingQuotes.ts +++ b/src/plugins/loadingQuotes.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; // These are Xor encrypted to prevent you from spoiling yourself when you read the source code. // don't worry about it :P diff --git a/src/plugins/messageActions.ts b/src/plugins/messageActions.ts index 05d792f..df4d016 100644 --- a/src/plugins/messageActions.ts +++ b/src/plugins/messageActions.ts @@ -16,13 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addClickListener, removeClickListener } from "../api/MessageEvents"; -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin from "../utils/types"; -import { filters } from "../webpack"; -import { UserStore } from "../webpack/common"; +import { addClickListener, removeClickListener } from "@api/MessageEvents"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByPropsLazy, findLazy } from "@webpack"; +import { UserStore } from "@webpack/common"; let isDeletePressed = false; const keydown = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = true); @@ -37,10 +36,10 @@ export default definePlugin({ dependencies: ["MessageEventsAPI"], start() { - const MessageActions = lazyWebpack(filters.byProps("deleteMessage", "startEditMessage")); - const PermissionStore = lazyWebpack(filters.byProps("can", "initialize")); - const Permissions = lazyWebpack(m => typeof m.MANAGE_MESSAGES === "bigint"); - const EditStore = lazyWebpack(filters.byProps("isEditing", "isEditingAny")); + const MessageActions = findByPropsLazy("deleteMessage", "startEditMessage"); + const PermissionStore = findByPropsLazy("can", "initialize"); + const Permissions = findLazy(m => typeof m.MANAGE_MESSAGES === "bigint"); + const EditStore = findByPropsLazy("isEditing", "isEditingAny"); document.addEventListener("keydown", keydown); document.addEventListener("keyup", keyup); diff --git a/src/plugins/messageLogger/index.tsx b/src/plugins/messageLogger/index.tsx index 7b6bf56..5a1ac92 100644 --- a/src/plugins/messageLogger/index.tsx +++ b/src/plugins/messageLogger/index.tsx @@ -16,14 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Settings } from "../../api/settings"; -import ErrorBoundary from "../../components/ErrorBoundary"; -import { Devs } from "../../utils/constants"; -import Logger from "../../utils/Logger"; -import { lazyWebpack } from "../../utils/misc"; -import definePlugin, { OptionType } from "../../utils/types"; -import { filters } from "../../webpack"; -import { Parser, UserStore } from "../../webpack/common"; +import { Settings } from "@api/settings"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Devs } from "@utils/constants"; +import Logger from "@utils/Logger"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByPropsLazy } from "@webpack"; +import { Parser, UserStore } from "@webpack/common"; function addDeleteStyleClass() { if (Settings.plugins.MessageLogger.deleteStyle === "text") { @@ -74,8 +73,8 @@ export default definePlugin({ `, start() { - this.moment = lazyWebpack(filters.byProps("relativeTimeRounding", "relativeTimeThreshold")); - this.timestampModule = lazyWebpack(filters.byProps("messageLogger_TimestampComponent")); + this.moment = findByPropsLazy("relativeTimeRounding", "relativeTimeThreshold"); + this.timestampModule = findByPropsLazy("messageLogger_TimestampComponent"); const style = this.style = document.createElement("style"); style.textContent = this.css; diff --git a/src/plugins/messageTags.ts b/src/plugins/messageTags.ts index bf01cad..490edc3 100644 --- a/src/plugins/messageTags.ts +++ b/src/plugins/messageTags.ts @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { DataStore } from "../api"; -import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, registerCommand, sendBotMessage, unregisterCommand } from "../api/Commands"; -import { Settings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; +import { ApplicationCommandInputType, ApplicationCommandOptionType, findOption, registerCommand, sendBotMessage, unregisterCommand } from "@api/Commands"; +import * as DataStore from "@api/DataStore"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; const EMOTE = "<:luna:1035316192220553236>"; const DATA_KEY = "MessageTags_TAGS"; diff --git a/src/plugins/moreCommands.ts b/src/plugins/moreCommands.ts index 0a23aaf..61312ac 100644 --- a/src/plugins/moreCommands.ts +++ b/src/plugins/moreCommands.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandInputType, findOption, OptionalMessageOption, RequiredMessageOption, sendBotMessage } from "../api/Commands"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { ApplicationCommandInputType, findOption, OptionalMessageOption, RequiredMessageOption, sendBotMessage } from "@api/Commands"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; function mock(input: string): string { diff --git a/src/plugins/moreKaomoji.ts b/src/plugins/moreKaomoji.ts index ef6dc0f..a5e40d2 100644 --- a/src/plugins/moreKaomoji.ts +++ b/src/plugins/moreKaomoji.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { findOption, OptionalMessageOption } from "../api/Commands"; -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { findOption, OptionalMessageOption } from "@api/Commands"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; migratePluginSettings("MoreKaomoji", "moarKaomojis"); export default definePlugin({ diff --git a/src/plugins/moyai.ts b/src/plugins/moyai.ts index 5427fed..fabc97f 100644 --- a/src/plugins/moyai.ts +++ b/src/plugins/moyai.ts @@ -16,15 +16,14 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { Settings } from "@api/settings"; +import { makeRange } from "@components/PluginSettings/components/SettingSliderComponent"; +import { Devs } from "@utils/constants"; +import { sleep } from "@utils/misc"; +import definePlugin, { OptionType } from "@utils/types"; +import { FluxDispatcher, SelectedChannelStore, UserStore } from "@webpack/common"; import { Message, ReactionEmoji } from "discord-types/general"; -import { makeRange } from "../components/PluginSettings/components/SettingSliderComponent"; -import { Devs } from "../utils/constants"; -import { sleep } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; -import { FluxDispatcher, SelectedChannelStore, UserStore } from "../webpack/common"; - interface IMessageCreate { type: "MESSAGE_CREATE"; optimistic: boolean; diff --git a/src/plugins/muteNewGuild.ts b/src/plugins/muteNewGuild.ts index e4ca1d5..12b9b60 100644 --- a/src/plugins/muteNewGuild.ts +++ b/src/plugins/muteNewGuild.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "MuteNewGuild", diff --git a/src/plugins/noBlockedMessages.ts b/src/plugins/noBlockedMessages.ts index e46e7c3..bd72ce5 100644 --- a/src/plugins/noBlockedMessages.ts +++ b/src/plugins/noBlockedMessages.ts @@ -16,12 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; -import { filters } from "../webpack"; -const RelationshipStore = lazyWebpack(filters.byProps("getRelationships", "isBlocked")); +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByPropsLazy } from "@webpack"; + +const RelationshipStore = findByPropsLazy("getRelationships", "isBlocked"); export default definePlugin({ name: "NoBlockedMessages", diff --git a/src/plugins/noCanaryMessageLinks.ts b/src/plugins/noCanaryMessageLinks.ts index 67c9176..ebd6782 100644 --- a/src/plugins/noCanaryMessageLinks.ts +++ b/src/plugins/noCanaryMessageLinks.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addPreSendListener, MessageObject, removePreSendListener } from "../api/MessageEvents"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; +import { addPreSendListener, MessageObject, removePreSendListener } from "@api/MessageEvents"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; export default definePlugin({ name: "NoCanaryMessageLinks", diff --git a/src/plugins/noDevtoolsWarning.ts b/src/plugins/noDevtoolsWarning.ts index 2ceb0c3..8980ed8 100644 --- a/src/plugins/noDevtoolsWarning.ts +++ b/src/plugins/noDevtoolsWarning.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; migratePluginSettings("NoDevtoolsWarning", "STFU"); diff --git a/src/plugins/noF1.ts b/src/plugins/noF1.ts index 22e351a..5c23b73 100644 --- a/src/plugins/noF1.ts +++ b/src/plugins/noF1.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "No F1", diff --git a/src/plugins/noRPC.ts b/src/plugins/noRPC.ts index ca82c2b..e56c7af 100644 --- a/src/plugins/noRPC.ts +++ b/src/plugins/noRPC.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "No RPC", diff --git a/src/plugins/noReplyMention.ts b/src/plugins/noReplyMention.ts index 2e5e969..620274c 100644 --- a/src/plugins/noReplyMention.ts +++ b/src/plugins/noReplyMention.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "NoReplyMention", diff --git a/src/plugins/noSystemBadge.ts b/src/plugins/noSystemBadge.ts index 2571be5..e487a97 100644 --- a/src/plugins/noSystemBadge.ts +++ b/src/plugins/noSystemBadge.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "NoSystemBadge", diff --git a/src/plugins/noTrack.ts b/src/plugins/noTrack.ts index a86e0af..27ff430 100644 --- a/src/plugins/noTrack.ts +++ b/src/plugins/noTrack.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "NoTrack", diff --git a/src/plugins/noUnblockToJump.ts b/src/plugins/noUnblockToJump.ts index e0194ca..15f602b 100644 --- a/src/plugins/noUnblockToJump.ts +++ b/src/plugins/noUnblockToJump.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ diff --git a/src/plugins/oneko.ts b/src/plugins/oneko.ts index 67db2d7..ef2f5d6 100644 --- a/src/plugins/oneko.ts +++ b/src/plugins/oneko.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "oneko", diff --git a/src/plugins/petpet.ts b/src/plugins/petpet.ts index 7a794fd..a8281d0 100644 --- a/src/plugins/petpet.ts +++ b/src/plugins/petpet.ts @@ -16,12 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandInputType, ApplicationCommandOptionType, Argument, CommandContext, findOption, sendBotMessage } from "../api/Commands"; -import { Devs } from "../utils/constants"; -import { getGifEncoder } from "../utils/dependencies"; -import { lazyWebpack, makeLazy } from "../utils/misc"; -import definePlugin from "../utils/types"; -import { filters } from "../webpack"; +import { ApplicationCommandInputType, ApplicationCommandOptionType, Argument, CommandContext, findOption, sendBotMessage } from "@api/Commands"; +import { Devs } from "@utils/constants"; +import { getGifEncoder } from "@utils/dependencies"; +import { makeLazy } from "@utils/misc"; +import definePlugin from "@utils/types"; +import { findByCodeLazy, findByPropsLazy } from "@webpack"; const DRAFT_TYPE = 0; const DEFAULT_DELAY = 20; @@ -35,9 +35,9 @@ const getFrames = makeLazy(() => Promise.all( )) ); -const fetchUser = lazyWebpack(filters.byCode(".USER(")); -const promptToUpload = lazyWebpack(filters.byCode("UPLOAD_FILE_LIMIT_ERROR")); -const UploadStore = lazyWebpack(filters.byProps("getUploads")); +const fetchUser = findByCodeLazy(".USER("); +const promptToUpload = findByCodeLazy("UPLOAD_FILE_LIMIT_ERROR"); +const UploadStore = findByPropsLazy("getUploads"); function loadImage(source: File | string) { const isFile = source instanceof File; diff --git a/src/plugins/plainFolderIcon.ts b/src/plugins/plainFolderIcon.ts index 35f903f..5c01ea9 100644 --- a/src/plugins/plainFolderIcon.ts +++ b/src/plugins/plainFolderIcon.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "PlainFolderIcon", diff --git a/src/plugins/platformIndicators.tsx b/src/plugins/platformIndicators.tsx index 1c9bbf1..5cae38f 100644 --- a/src/plugins/platformIndicators.tsx +++ b/src/plugins/platformIndicators.tsx @@ -16,16 +16,14 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { Settings } from "@api/settings"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { findByCodeLazy } from "@webpack"; +import { PresenceStore, Tooltip } from "@webpack/common"; import { User } from "discord-types/general"; -import { Settings } from "../api/settings"; -import ErrorBoundary from "../components/ErrorBoundary"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin, { OptionType } from "../utils/types"; -import { filters } from "../webpack"; -import { PresenceStore, Tooltip } from "../webpack/common"; - function Icon(path: string, viewBox = "0 0 24 24") { return ({ color, tooltip }: { color: string; tooltip: string; }) => ( <Tooltip text={tooltip} > @@ -52,7 +50,7 @@ const Icons = { }; type Platform = keyof typeof Icons; -const getStatusColor = lazyWebpack(filters.byCode("STATUS_YELLOW", "TWITCH", "STATUS_GREY")); +const getStatusColor = findByCodeLazy("STATUS_YELLOW", "TWITCH", "STATUS_GREY"); const PlatformIcon = ({ platform, status }: { platform: Platform, status: string; }) => { const tooltip = platform[0].toUpperCase() + platform.slice(1); diff --git a/src/plugins/pronoundb/components/PronounsAboutComponent.tsx b/src/plugins/pronoundb/components/PronounsAboutComponent.tsx index 3f288d5..255c6d3 100644 --- a/src/plugins/pronoundb/components/PronounsAboutComponent.tsx +++ b/src/plugins/pronoundb/components/PronounsAboutComponent.tsx @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Link } from "../../../components/Link"; -import { Forms, React } from "../../../webpack/common"; +import { Link } from "@components/Link"; +import { Forms, React } from "@webpack/common"; export default function PronounsAboutComponent() { return ( diff --git a/src/plugins/pronoundb/components/PronounsChatComponent.tsx b/src/plugins/pronoundb/components/PronounsChatComponent.tsx index 57033cc..9225fc5 100644 --- a/src/plugins/pronoundb/components/PronounsChatComponent.tsx +++ b/src/plugins/pronoundb/components/PronounsChatComponent.tsx @@ -16,16 +16,16 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { Settings } from "@api/settings"; +import { classes, useAwaiter } from "@utils/misc"; +import { findByPropsLazy } from "@webpack"; +import { UserStore } from "@webpack/common"; import { Message } from "discord-types/general"; -import { classes, lazyWebpack, useAwaiter } from "../../../utils/misc"; -import { Settings } from "../../../Vencord"; -import { filters } from "../../../webpack"; -import { UserStore } from "../../../webpack/common"; import { fetchPronouns, formatPronouns } from "../pronoundbUtils"; import { PronounMapping } from "../types"; -const styles: Record<string, string> = lazyWebpack(filters.byProps("timestampInline")); +const styles: Record<string, string> = findByPropsLazy("timestampInline"); export default function PronounsChatComponentWrapper({ message }: { message: Message; }) { // Don't bother fetching bot or system users diff --git a/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx b/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx index b39f4ed..9540bb9 100644 --- a/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx +++ b/src/plugins/pronoundb/components/PronounsProfileWrapper.tsx @@ -16,9 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { useAwaiter } from "../../../utils/misc"; -import { Settings } from "../../../Vencord"; -import { UserStore } from "../../../webpack/common"; +import { Settings } from "@api/settings"; +import { useAwaiter } from "@utils/misc"; +import { UserStore } from "@webpack/common"; + import { fetchPronouns, formatPronouns } from "../pronoundbUtils"; import { PronounMapping, UserProfilePronounsProps, UserProfileProps } from "../types"; diff --git a/src/plugins/pronoundb/index.ts b/src/plugins/pronoundb/index.ts index 39637e2..49b25f7 100644 --- a/src/plugins/pronoundb/index.ts +++ b/src/plugins/pronoundb/index.ts @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../../utils/constants"; -import definePlugin, { OptionType } from "../../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; + import PronounsAboutComponent from "./components/PronounsAboutComponent"; import PronounsChatComponent from "./components/PronounsChatComponent"; import PronounsProfileWrapper from "./components/PronounsProfileWrapper"; diff --git a/src/plugins/pronoundb/pronoundbUtils.ts b/src/plugins/pronoundb/pronoundbUtils.ts index 73ec7b6..afeea95 100644 --- a/src/plugins/pronoundb/pronoundbUtils.ts +++ b/src/plugins/pronoundb/pronoundbUtils.ts @@ -16,9 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { VENCORD_USER_AGENT } from "../../utils/constants"; -import { debounce } from "../../utils/debounce"; -import { Settings } from "../../Vencord"; +import { Settings } from "@api/settings"; +import { VENCORD_USER_AGENT } from "@utils/constants"; +import { debounce } from "@utils/debounce"; + import { PronounsFormat } from "."; import { PronounCode, PronounMapping, PronounsResponse } from "./types"; diff --git a/src/plugins/quickMention.tsx b/src/plugins/quickMention.tsx index 0f8410b..1c0a6c6 100644 --- a/src/plugins/quickMention.tsx +++ b/src/plugins/quickMention.tsx @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findLazy } from "@webpack"; -const ComponentDispatch = lazyWebpack(m => m.emitter?._events?.INSERT_TEXT); +const ComponentDispatch = findLazy(m => m.emitter?._events?.INSERT_TEXT); export default definePlugin({ name: "QuickMention", diff --git a/src/plugins/quickReply.ts b/src/plugins/quickReply.ts index 2903b39..a499ea4 100644 --- a/src/plugins/quickReply.ts +++ b/src/plugins/quickReply.ts @@ -16,16 +16,14 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByPropsLazy } from "@webpack"; +import { ChannelStore, FluxDispatcher as Dispatcher, MessageStore, SelectedChannelStore, UserStore } from "@webpack/common"; import { Message } from "discord-types/general"; -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin from "../utils/types"; -import { filters } from "../webpack"; -import { ChannelStore, FluxDispatcher as Dispatcher, MessageStore, SelectedChannelStore, UserStore } from "../webpack/common"; - -const Kangaroo = lazyWebpack(filters.byProps("jumpToMessage")); +const Kangaroo = findByPropsLazy("jumpToMessage"); const isMac = navigator.platform.includes("Mac"); // bruh let replyIdx = -1; diff --git a/src/plugins/readAllNotificationsButton.tsx b/src/plugins/readAllNotificationsButton.tsx index 615702b..ee6ecde 100644 --- a/src/plugins/readAllNotificationsButton.tsx +++ b/src/plugins/readAllNotificationsButton.tsx @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addServerListElement, removeServerListElement, ServerListRenderPosition } from "../api/ServerList"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { Button, FluxDispatcher, GuildChannelStore, GuildStore, React, ReadStateStore } from "../webpack/common"; +import { addServerListElement, removeServerListElement, ServerListRenderPosition } from "@api/ServerList"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { Button, FluxDispatcher, GuildChannelStore, GuildStore, React, ReadStateStore } from "@webpack/common"; function onClick() { const channels: Array<any> = []; diff --git a/src/plugins/reverseImageSearch.tsx b/src/plugins/reverseImageSearch.tsx index 804ac04..26e1003 100644 --- a/src/plugins/reverseImageSearch.tsx +++ b/src/plugins/reverseImageSearch.tsx @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { Menu } from "../webpack/common"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { Menu } from "@webpack/common"; const Engines = { Google: "https://www.google.com/searchbyimage?image_url=", diff --git a/src/plugins/reviewDB/Utils/ReviewDBAPI.ts b/src/plugins/reviewDB/Utils/ReviewDBAPI.ts index 71e6e81..a4c8dbf 100644 --- a/src/plugins/reviewDB/Utils/ReviewDBAPI.ts +++ b/src/plugins/reviewDB/Utils/ReviewDBAPI.ts @@ -16,7 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Settings } from "../../../Vencord"; +import { Settings } from "@api/settings"; + import { Review } from "../entities/Review"; import { authorize, showToast } from "./Utils"; diff --git a/src/plugins/reviewDB/Utils/Utils.tsx b/src/plugins/reviewDB/Utils/Utils.tsx index 1093c95..79d768c 100644 --- a/src/plugins/reviewDB/Utils/Utils.tsx +++ b/src/plugins/reviewDB/Utils/Utils.tsx @@ -16,12 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../../../utils/constants"; -import Logger from "../../../utils/Logger"; -import { openModal } from "../../../utils/modal"; -import { Settings } from "../../../Vencord"; -import { findByProps } from "../../../webpack"; -import { FluxDispatcher, React, SelectedChannelStore, Toasts, UserUtils } from "../../../webpack/common"; +import { Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import Logger from "@utils/Logger"; +import { openModal } from "@utils/modal"; +import { findByProps } from "@webpack"; +import { FluxDispatcher, React, SelectedChannelStore, Toasts, UserUtils } from "@webpack/common"; + import { Review } from "../entities/Review"; export async function openUserProfileModal(userId: string) { diff --git a/src/plugins/reviewDB/components/MessageButton.tsx b/src/plugins/reviewDB/components/MessageButton.tsx index 7d16630..c334ddd 100644 --- a/src/plugins/reviewDB/components/MessageButton.tsx +++ b/src/plugins/reviewDB/components/MessageButton.tsx @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { classes, LazyComponent } from "../../../utils/misc"; -import { findByProps } from "../../../webpack"; +import { classes, LazyComponent } from "@utils/misc"; +import { findByProps } from "@webpack"; export default LazyComponent(() => { const { button, dangerous } = findByProps("button", "wrapper", "disabled"); diff --git a/src/plugins/reviewDB/components/ReviewComponent.tsx b/src/plugins/reviewDB/components/ReviewComponent.tsx index ecd12da..8808ccd 100644 --- a/src/plugins/reviewDB/components/ReviewComponent.tsx +++ b/src/plugins/reviewDB/components/ReviewComponent.tsx @@ -16,9 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { classes, LazyComponent } from "../../../utils/misc"; -import { filters, findBulk } from "../../../webpack"; -import { Alerts, UserStore } from "../../../webpack/common"; +import { classes, LazyComponent } from "@utils/misc"; +import { filters, findBulk } from "@webpack"; +import { Alerts, UserStore } from "@webpack/common"; + import { Review } from "../entities/Review"; import { deleteReview, reportReview } from "../Utils/ReviewDBAPI"; import { canDeleteReview, openUserProfileModal, showToast } from "../Utils/Utils"; diff --git a/src/plugins/reviewDB/components/ReviewsView.tsx b/src/plugins/reviewDB/components/ReviewsView.tsx index 363b624..999b970 100644 --- a/src/plugins/reviewDB/components/ReviewsView.tsx +++ b/src/plugins/reviewDB/components/ReviewsView.tsx @@ -16,14 +16,15 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { classes, useAwaiter } from "@utils/misc"; +import { findLazy } from "@webpack"; +import { Forms, Text, UserStore } from "@webpack/common"; import type { KeyboardEvent } from "react"; -import { classes, lazyWebpack, useAwaiter } from "../../../utils/misc"; -import { Forms, Text, UserStore } from "../../../webpack/common"; import { addReview, getReviews } from "../Utils/ReviewDBAPI"; import ReviewComponent from "./ReviewComponent"; -const Classes = lazyWebpack(m => typeof m.textarea === "string"); +const Classes = findLazy(m => typeof m.textarea === "string"); export default function ReviewsView({ userId }: { userId: string; }) { const [reviews, _, isLoading, refetch] = useAwaiter(() => getReviews(userId), []); diff --git a/src/plugins/reviewDB/index.tsx b/src/plugins/reviewDB/index.tsx index 0349ea9..744c2d6 100644 --- a/src/plugins/reviewDB/index.tsx +++ b/src/plugins/reviewDB/index.tsx @@ -16,13 +16,13 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { Settings } from "@api/settings"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; +import { Button, UserStore } from "@webpack/common"; import { User } from "discord-types/general"; -import ErrorBoundary from "../../components/ErrorBoundary"; -import { Devs } from "../../utils/constants"; -import definePlugin, { OptionType } from "../../utils/types"; -import { Settings } from "../../Vencord"; -import { Button, UserStore } from "../../webpack/common"; import ReviewsView from "./components/ReviewsView"; import { getLastReviewID } from "./Utils/ReviewDBAPI"; import { authorize, showToast } from "./Utils/Utils"; diff --git a/src/plugins/settings.tsx b/src/plugins/settings.tsx index 2777572..975c399 100644 --- a/src/plugins/settings.tsx +++ b/src/plugins/settings.tsx @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import gitHash from "~git-hash"; +import { Devs } from "@utils/constants"; +import { LazyComponent } from "@utils/misc"; +import definePlugin from "@utils/types"; -import { Devs } from "../utils/constants"; -import { LazyComponent } from "../utils/misc"; -import definePlugin from "../utils/types"; +import gitHash from "~git-hash"; const SettingsComponent = LazyComponent(() => require("../components/VencordSettings").default); diff --git a/src/plugins/showHiddenChannels.tsx b/src/plugins/showHiddenChannels.tsx index 8dc92bf..70b8406 100644 --- a/src/plugins/showHiddenChannels.tsx +++ b/src/plugins/showHiddenChannels.tsx @@ -17,13 +17,13 @@ */ -import { Flex } from "../components/Flex"; -import { Devs } from "../utils/constants"; -import { ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "../utils/modal"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; -import { waitFor } from "../webpack"; -import { Button, ChannelStore, Text } from "../webpack/common"; +import { Settings } from "@api/settings"; +import { Flex } from "@components/Flex"; +import { Devs } from "@utils/constants"; +import { ModalContent, ModalFooter, ModalHeader, ModalRoot, ModalSize, openModal } from "@utils/modal"; +import definePlugin, { OptionType } from "@utils/types"; +import { waitFor } from "@webpack"; +import { Button, ChannelStore, Text } from "@webpack/common"; const CONNECT = 1048576n; const VIEW_CHANNEL = 1024n; diff --git a/src/plugins/silentTyping.ts b/src/plugins/silentTyping.ts index 1f79125..8680a86 100644 --- a/src/plugins/silentTyping.ts +++ b/src/plugins/silentTyping.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "SilentTyping", diff --git a/src/plugins/spotifyControls/PlayerComponent.tsx b/src/plugins/spotifyControls/PlayerComponent.tsx index 6396e02..24394c6 100644 --- a/src/plugins/spotifyControls/PlayerComponent.tsx +++ b/src/plugins/spotifyControls/PlayerComponent.tsx @@ -16,13 +16,14 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import ErrorBoundary from "../../components/ErrorBoundary"; -import { Flex } from "../../components/Flex"; -import { Link } from "../../components/Link"; -import { debounce } from "../../utils/debounce"; -import { classes, LazyComponent, lazyWebpack } from "../../utils/misc"; -import { ContextMenu, FluxDispatcher, Forms, Menu, React } from "../../webpack/common"; -import { filters, find } from "../../webpack/webpack"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Flex } from "@components/Flex"; +import { Link } from "@components/Link"; +import { debounce } from "@utils/debounce"; +import { classes, LazyComponent } from "@utils/misc"; +import { filters, find, findByCodeLazy } from "@webpack"; +import { ContextMenu, FluxDispatcher, Forms, Menu, React } from "@webpack/common"; + import { SpotifyStore, Track } from "./SpotifyStore"; const cl = (className: string) => `vc-spotify-${className}`; @@ -40,7 +41,7 @@ const useStateFromStores: <T>( idk?: null, compare?: (old: T, newer: T) => boolean ) => T - = lazyWebpack(filters.byCode("useStateFromStores")); + = findByCodeLazy("useStateFromStores"); function Svg(path: string, label: string) { return () => ( diff --git a/src/plugins/spotifyControls/SpotifyStore.ts b/src/plugins/spotifyControls/SpotifyStore.ts index 14f2331..75448dc 100644 --- a/src/plugins/spotifyControls/SpotifyStore.ts +++ b/src/plugins/spotifyControls/SpotifyStore.ts @@ -16,13 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import cssText from "~fileContent/spotifyStyles.css"; +import IpcEvents from "@utils/IpcEvents"; +import { proxyLazy } from "@utils/proxyLazy"; +import { findByPropsLazy } from "@webpack"; +import { Flux, FluxDispatcher } from "@webpack/common"; -import IpcEvents from "../../utils/IpcEvents"; -import { lazyWebpack } from "../../utils/misc"; -import { proxyLazy } from "../../utils/proxyLazy"; -import { filters } from "../../webpack"; -import { Flux, FluxDispatcher } from "../../webpack/common"; +import cssText from "~fileContent/spotifyStyles.css"; export interface Track { id: string; @@ -78,8 +77,8 @@ export const SpotifyStore = proxyLazy(() => { // For some reason ts hates extends Flux.Store const { Store } = Flux; - const SpotifySocket = lazyWebpack(filters.byProps("getActiveSocketAndDevice")); - const SpotifyAPI = lazyWebpack(filters.byProps("SpotifyAPIMarker")); + const SpotifySocket = findByPropsLazy("getActiveSocketAndDevice"); + const SpotifyAPI = findByPropsLazy("SpotifyAPIMarker"); const API_BASE = "https://api.spotify.com/v1/me/player"; diff --git a/src/plugins/spotifyControls/index.tsx b/src/plugins/spotifyControls/index.tsx index 14c7a93..7ab1e37 100644 --- a/src/plugins/spotifyControls/index.tsx +++ b/src/plugins/spotifyControls/index.tsx @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../../utils/constants"; -import definePlugin from "../../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; + import { Player } from "./PlayerComponent"; export default definePlugin({ diff --git a/src/plugins/spotifyCrack.ts b/src/plugins/spotifyCrack.ts index b9f68ed..c64154a 100644 --- a/src/plugins/spotifyCrack.ts +++ b/src/plugins/spotifyCrack.ts @@ -16,10 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; -import { Settings } from "../Vencord"; +import { migratePluginSettings, Settings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; migratePluginSettings("SpotifyCrack", "Ify"); export default definePlugin({ diff --git a/src/plugins/spotifyShareCommands.ts b/src/plugins/spotifyShareCommands.ts index e5b247b..ce29b75 100644 --- a/src/plugins/spotifyShareCommands.ts +++ b/src/plugins/spotifyShareCommands.ts @@ -16,13 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { ApplicationCommandInputType, sendBotMessage } from "../api/Commands"; -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import { lazyWebpack } from "../utils/misc"; -import definePlugin from "../utils/types"; -import { filters } from "../webpack"; -import { FluxDispatcher } from "../webpack/common"; +import { ApplicationCommandInputType, sendBotMessage } from "@api/Commands"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { findByPropsLazy } from "@webpack"; +import { FluxDispatcher } from "@webpack/common"; interface Album { id: string; @@ -54,9 +53,9 @@ interface Track { name: string; } -const Spotify = lazyWebpack(filters.byProps("getPlayerState")); -const MessageCreator = lazyWebpack(filters.byProps("getSendMessageOptionsForReply", "sendMessage")); -const PendingReplyStore = lazyWebpack(filters.byProps("getPendingReply")); +const Spotify = findByPropsLazy("getPlayerState"); +const MessageCreator = findByPropsLazy("getSendMessageOptionsForReply", "sendMessage"); +const PendingReplyStore = findByPropsLazy("getPendingReply"); function sendMessage(channelId, message) { message = { diff --git a/src/plugins/startupTimings/StartupTimingPage.tsx b/src/plugins/startupTimings/StartupTimingPage.tsx index f0c14ed..c8cf51d 100644 --- a/src/plugins/startupTimings/StartupTimingPage.tsx +++ b/src/plugins/startupTimings/StartupTimingPage.tsx @@ -16,11 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import ErrorBoundary from "../../components/ErrorBoundary"; -import { Flex } from "../../components/Flex"; -import { lazyWebpack } from "../../utils/misc"; -import { Forms, React } from "../../webpack/common"; -import { filters } from "../../webpack/webpack"; +import ErrorBoundary from "@components/ErrorBoundary"; +import { Flex } from "@components/Flex"; +import { findByPropsLazy } from "@webpack"; +import { Forms, React } from "@webpack/common"; interface AppStartPerformance { prefix: string; @@ -46,7 +45,7 @@ interface Log { delta?: number; } -const AppStartPerformance = lazyWebpack(filters.byProps("markWithDelta", "markAndLog", "markAt")) as AppStartPerformance; +const AppStartPerformance = findByPropsLazy("markWithDelta", "markAndLog", "markAt") as AppStartPerformance; interface TimerItemProps extends Log { instance: { diff --git a/src/plugins/startupTimings/index.tsx b/src/plugins/startupTimings/index.tsx index d5493c1..1dd7139 100644 --- a/src/plugins/startupTimings/index.tsx +++ b/src/plugins/startupTimings/index.tsx @@ -17,9 +17,9 @@ */ -import { Devs } from "../../utils/constants"; -import { LazyComponent } from "../../utils/misc"; -import definePlugin from "../../utils/types"; +import { Devs } from "@utils/constants"; +import { LazyComponent } from "@utils/misc"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "StartupTimings", diff --git a/src/plugins/unindent.ts b/src/plugins/unindent.ts index 0206095..a197ef4 100644 --- a/src/plugins/unindent.ts +++ b/src/plugins/unindent.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addPreEditListener, addPreSendListener, MessageObject, removePreEditListener,removePreSendListener } from "../api/MessageEvents"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { addPreEditListener, addPreSendListener, MessageObject, removePreEditListener, removePreSendListener } from "@api/MessageEvents"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "Unindent", diff --git a/src/plugins/unminifyErrors.ts b/src/plugins/unminifyErrors.ts index f0ee77c..2332d45 100644 --- a/src/plugins/unminifyErrors.ts +++ b/src/plugins/unminifyErrors.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; let ERROR_CODES: any; const CODES_URL = diff --git a/src/plugins/uwuify.ts b/src/plugins/uwuify.ts index 804c741..1c7d2cb 100644 --- a/src/plugins/uwuify.ts +++ b/src/plugins/uwuify.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { findOption, RequiredMessageOption } from "../api/Commands"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { findOption, RequiredMessageOption } from "@api/Commands"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; const endings = [ "owo", "UwU", ">w<", "^w^", "āwā", "āwā", "šØššØ", "(įįØį)", "(ā°ĖvĖā°)", diff --git a/src/plugins/vcDoubleClick.ts b/src/plugins/vcDoubleClick.ts index 68dc480..de573f1 100644 --- a/src/plugins/vcDoubleClick.ts +++ b/src/plugins/vcDoubleClick.ts @@ -16,10 +16,10 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { migratePluginSettings } from "../api/settings"; -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; -import { SelectedChannelStore } from "../webpack/common"; +import { migratePluginSettings } from "@api/settings"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; +import { SelectedChannelStore } from "@webpack/common"; const timers = {} as Record<string, { timeout?: NodeJS.Timeout; diff --git a/src/plugins/viewIcons.tsx b/src/plugins/viewIcons.tsx index a0d08a9..1b96527 100644 --- a/src/plugins/viewIcons.tsx +++ b/src/plugins/viewIcons.tsx @@ -16,19 +16,18 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { Devs } from "@utils/constants"; +import { LazyComponent } from "@utils/misc"; +import { ModalRoot, ModalSize, openModal } from "@utils/modal"; +import { PluginDef } from "@utils/types"; +import { find, findByPropsLazy } from "@webpack"; +import { Menu } from "@webpack/common"; import type { Guild } from "discord-types/general"; -import { Devs } from "../utils/constants"; -import { LazyComponent, lazyWebpack } from "../utils/misc"; -import { ModalRoot, ModalSize, openModal } from "../utils/modal"; -import { PluginDef } from "../utils/types"; -import { filters, find } from "../webpack"; -import { Menu } from "../webpack/common"; - const ImageModal = LazyComponent(() => find(m => m.prototype?.render?.toString().includes("OPEN_ORIGINAL_IMAGE"))); const MaskedLink = LazyComponent(() => find(m => m.type?.toString().includes("MASKED_LINK)"))); -const GuildBannerStore = lazyWebpack(filters.byProps("getGuildBannerURL")); +const GuildBannerStore = findByPropsLazy("getGuildBannerURL"); const OPEN_URL = "Vencord.Plugins.plugins.ViewIcons.openImage("; export default new class ViewIcons implements PluginDef { diff --git a/src/plugins/volumeBooster.ts b/src/plugins/volumeBooster.ts index fddf650..dab6b93 100644 --- a/src/plugins/volumeBooster.ts +++ b/src/plugins/volumeBooster.ts @@ -16,9 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { makeRange } from "../components/PluginSettings/components/SettingSliderComponent"; -import { Devs } from "../utils/constants"; -import definePlugin, { OptionType } from "../utils/types"; +import { makeRange } from "@components/PluginSettings/components/SettingSliderComponent"; +import { Devs } from "@utils/constants"; +import definePlugin, { OptionType } from "@utils/types"; export default definePlugin({ name: "VolumeBooster", diff --git a/src/plugins/webContextMenus.ts b/src/plugins/webContextMenus.ts index 7179082..6419cfd 100644 --- a/src/plugins/webContextMenus.ts +++ b/src/plugins/webContextMenus.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "WebContextMenus", diff --git a/src/plugins/webhookTags.ts b/src/plugins/webhookTags.ts index e02895a..51d68fa 100644 --- a/src/plugins/webhookTags.ts +++ b/src/plugins/webhookTags.ts @@ -16,8 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Devs } from "../utils/constants"; -import definePlugin from "../utils/types"; +import { Devs } from "@utils/constants"; +import definePlugin from "@utils/types"; export default definePlugin({ name: "Webhook Tags", diff --git a/src/plugins/whoReacted.tsx b/src/plugins/whoReacted.tsx index b1fb27d..685d954 100644 --- a/src/plugins/whoReacted.tsx +++ b/src/plugins/whoReacted.tsx @@ -16,20 +16,19 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import ErrorBoundary from "@components/ErrorBoundary"; +import { Devs } from "@utils/constants"; +import { LazyComponent, sleep, useForceUpdater } from "@utils/misc"; +import { Queue } from "@utils/Queue"; +import definePlugin from "@utils/types"; +import { findByCode, findByPropsLazy } from "@webpack"; +import { ChannelStore, FluxDispatcher, React, RestAPI, Tooltip } from "@webpack/common"; import { ReactionEmoji, User } from "discord-types/general"; -import ErrorBoundary from "../components/ErrorBoundary"; -import { Devs } from "../utils/constants"; -import { LazyComponent, lazyWebpack, sleep, useForceUpdater } from "../utils/misc"; -import { Queue } from "../utils/Queue"; -import definePlugin from "../utils/types"; -import { filters, findByCode } from "../webpack"; -import { ChannelStore, FluxDispatcher, React, RestAPI, Tooltip } from "../webpack/common"; - const UserSummaryItem = LazyComponent(() => findByCode("defaultRenderUser", "showDefaultAvatarsForNullUsers")); -const AvatarStyles = lazyWebpack(filters.byProps("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar")); +const AvatarStyles = findByPropsLazy("moreUsers", "emptyUser", "avatarContainer", "clickableAvatar"); -const ReactionStore = lazyWebpack(filters.byProps("getReactions")); +const ReactionStore = findByPropsLazy("getReactions"); const queue = new Queue(); diff --git a/src/preload.ts b/src/preload.ts index fccc024..dcf2554 100644 --- a/src/preload.ts +++ b/src/preload.ts @@ -16,12 +16,12 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { debounce } from "@utils/debounce"; +import IpcEvents from "@utils/IpcEvents"; import electron, { contextBridge, ipcRenderer, webFrame } from "electron"; import { readFileSync } from "fs"; import { join } from "path"; -import { debounce } from "./utils/debounce"; -import IpcEvents from "./utils/IpcEvents"; import VencordNative from "./VencordNative"; if (electron.desktopCapturer === void 0) { diff --git a/src/utils/discord.ts b/src/utils/discord.ts index 7fc5064..f1a1f8a 100644 --- a/src/utils/discord.ts +++ b/src/utils/discord.ts @@ -16,10 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { ChannelStore, GuildStore, PrivateChannelsStore, SelectedChannelStore } from "@webpack/common"; import { Guild } from "discord-types/general"; -import { ChannelStore, GuildStore, PrivateChannelsStore, SelectedChannelStore } from "../webpack/common"; - export function getCurrentChannel() { return ChannelStore.getChannel(SelectedChannelStore.getChannelId()); } diff --git a/src/utils/misc.tsx b/src/utils/misc.tsx index 7389cc2..4ae3fd5 100644 --- a/src/utils/misc.tsx +++ b/src/utils/misc.tsx @@ -16,9 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { FilterFn, find } from "../webpack"; -import { React } from "../webpack/common"; -import { proxyLazy } from "./proxyLazy"; +import { React } from "@webpack/common"; /** * Makes a lazy function. On first call, the value is computed. @@ -29,16 +27,6 @@ export function makeLazy<T>(factory: () => T): () => T { let cache: T; return () => cache ?? (cache = factory()); } -export const lazy = makeLazy; - -/** - * Do a lazy webpack search. Searches the module on first property access - * @param filter Filter function - * @returns A proxy to the webpack module. Not all traps are implemented, may produce unexpected results. - */ -export function lazyWebpack<T = any>(filter: FilterFn): T { - return proxyLazy(() => find(filter)); -} type AwaiterRes<T> = [T, any, boolean, () => void]; /** diff --git a/src/utils/modal.tsx b/src/utils/modal.tsx index 886e325..9a90460 100644 --- a/src/utils/modal.tsx +++ b/src/utils/modal.tsx @@ -16,8 +16,7 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { filters } from "../webpack"; -import { mapMangledModuleLazy } from "../webpack/webpack"; +import { filters, mapMangledModuleLazy } from "@webpack"; export enum ModalSize { SMALL = "small", diff --git a/src/utils/proxyLazy.ts b/src/utils/proxyLazy.ts index 364dd56..42b5a91 100644 --- a/src/utils/proxyLazy.ts +++ b/src/utils/proxyLazy.ts @@ -63,7 +63,7 @@ handler.getOwnPropertyDescriptor = (target, p) => { * @param factory lazy factory * @returns Proxy * - * Note that the example below exists already as an api, see {@link lazyWebpack} + * Note that the example below exists already as an api, see {@link findByPropsLazy} * @example const mod = proxyLazy(() => findByProps("blah")); console.log(mod.blah); */ export function proxyLazy<T>(factory: () => T): T { diff --git a/src/utils/quickCss.ts b/src/utils/quickCss.ts index 0ce1f58..1f9f235 100644 --- a/src/utils/quickCss.ts +++ b/src/utils/quickCss.ts @@ -16,7 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { addSettingsListener, Settings } from "../api/settings"; +import { addSettingsListener, Settings } from "@api/settings"; + import IpcEvents from "./IpcEvents"; let style: HTMLStyleElement; diff --git a/src/utils/settingsSync.ts b/src/utils/settingsSync.ts index ecf6665..5cd81e7 100644 --- a/src/utils/settingsSync.ts +++ b/src/utils/settingsSync.ts @@ -16,7 +16,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { Toasts } from "../webpack/common"; +import { Toasts } from "@webpack/common"; + import IpcEvents from "./IpcEvents"; import Logger from "./Logger"; diff --git a/src/utils/types.ts b/src/utils/types.ts index 30c603f..310fbea 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -16,10 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { Command } from "@api/Commands"; import { Promisable } from "type-fest"; -import { Command } from "../api/Commands"; - // exists to export default definePlugin({...}) export default function definePlugin<P extends PluginDef>(p: P & Record<string, any>) { return p; diff --git a/src/webpack/common.tsx b/src/webpack/common.tsx index 32f47e6..e606f16 100644 --- a/src/webpack/common.tsx +++ b/src/webpack/common.tsx @@ -16,31 +16,33 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import { LazyComponent } from "@utils/misc"; +import { proxyLazy } from "@utils/proxyLazy"; import type Components from "discord-types/components"; import { User } from "discord-types/general"; import type Other from "discord-types/other"; import type Stores from "discord-types/stores"; -import { LazyComponent, lazyWebpack } from "../utils/misc"; -import { proxyLazy } from "../utils/proxyLazy"; -import { _resolveReady, filters, findByCode, mapMangledModule, mapMangledModuleLazy, waitFor } from "./webpack"; +import { _resolveReady, filters, findByCode, findByCodeLazy, findByPropsLazy, mapMangledModule, mapMangledModuleLazy, waitFor } from "./webpack"; -export const Margins = lazyWebpack(filters.byProps("marginTop20")); +export const Margins = findByPropsLazy("marginTop20"); export let FluxDispatcher: Other.FluxDispatcher; -export const Flux = lazyWebpack(filters.byProps("connectStores")); +export const Flux = findByPropsLazy("connectStores"); export let React: typeof import("react"); -export const ReactDOM: typeof import("react-dom") = lazyWebpack(filters.byProps("createPortal", "render")); +export const ReactDOM: typeof import("react-dom") = findByPropsLazy("createPortal", "render"); -export const RestAPI = lazyWebpack(filters.byProps("getAPIBaseURL", "get")); -export const moment: typeof import("moment") = lazyWebpack(filters.byProps("parseTwoDigitYear")); +export const RestAPI = findByPropsLazy("getAPIBaseURL", "get"); +export const moment: typeof import("moment") = findByPropsLazy("parseTwoDigitYear"); -export const MessageStore = lazyWebpack(filters.byProps("getRawMessages")) as Omit<Stores.MessageStore, "getMessages"> & { getMessages(chanId: string): any; }; -export const PermissionStore = lazyWebpack(filters.byProps("can", "getGuildPermissions")); -export const PrivateChannelsStore = lazyWebpack(filters.byProps("openPrivateChannel")); -export const GuildChannelStore = lazyWebpack(filters.byProps("getChannels")); -export const ReadStateStore = lazyWebpack(filters.byProps("lastMessageId")); -export const PresenceStore = lazyWebpack(filters.byProps("setCurrentUserOnConnectionOpen")); +export const MessageStore = findByPropsLazy("getRawMessages") as Omit<Stores.MessageStore, "getMessages"> & { + getMessages(chanId: string): any; +}; +export const PermissionStore = findByPropsLazy("can", "getGuildPermissions"); +export const PrivateChannelsStore = findByPropsLazy("openPrivateChannel"); +export const GuildChannelStore = findByPropsLazy("getChannels"); +export const ReadStateStore = findByPropsLazy("lastMessageId"); +export const PresenceStore = findByPropsLazy("setCurrentUserOnConnectionOpen"); export let GuildStore: Stores.GuildStore; export let UserStore: Stores.UserStore; export let SelectedChannelStore: Stores.SelectedChannelStore; @@ -121,7 +123,7 @@ export const Toasts = { }; export const UserUtils = { - fetchUser: lazyWebpack(filters.byCode(".USER(", "getUser")) as (id: string) => Promise<User>, + fetchUser: findByCodeLazy(".USER(", "getUser") as (id: string) => Promise<User>, }; export const Clipboard = mapMangledModuleLazy('document.queryCommandEnabled("copy")||document.queryCommandSupported("copy")', { diff --git a/src/webpack/patchWebpack.ts b/src/webpack/patchWebpack.ts index e17ddfc..273a062 100644 --- a/src/webpack/patchWebpack.ts +++ b/src/webpack/patchWebpack.ts @@ -16,8 +16,9 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -import { WEBPACK_CHUNK } from "../utils/constants"; -import Logger from "../utils/Logger"; +import { WEBPACK_CHUNK } from "@utils/constants"; +import Logger from "@utils/Logger"; + import { _initWebpack } from "."; let webpackChunk: any[]; diff --git a/src/webpack/webpack.ts b/src/webpack/webpack.ts index bd06b03..0bbd815 100644 --- a/src/webpack/webpack.ts +++ b/src/webpack/webpack.ts @@ -16,11 +16,11 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ +import Logger from "@utils/Logger"; +import { proxyLazy } from "@utils/proxyLazy"; import type { WebpackInstance } from "discord-types/other"; import { traceFunction } from "../debug/Tracer"; -import Logger from "../utils/Logger"; -import { proxyLazy } from "../utils/proxyLazy"; const logger = new Logger("Webpack"); @@ -113,6 +113,13 @@ export const find = traceFunction("find", function find(filter: FilterFn, getDef return null; }); +/** + * find but lazy + */ +export function findLazy(filter: FilterFn, getDefault = true) { + return proxyLazy(() => find(filter, getDefault)); +} + export function findAll(filter: FilterFn, getDefault = true) { if (typeof filter !== "function") throw new Error("Invalid filter. Expected a function got " + typeof filter); @@ -292,6 +299,13 @@ export function findByProps(...props: string[]) { } /** + * findByProps but lazy + */ +export function findByPropsLazy(...props: string[]) { + return findLazy(filters.byProps(...props)); +} + +/** * Find all modules that have the specified properties */ export function findAllByProps(...props: string[]) { @@ -306,6 +320,13 @@ export function findByCode(...code: string[]) { } /** + * findByCode but lazy + */ +export function findByCodeLazy(...code: string[]) { + return findLazy(filters.byCode(...code)); +} + +/** * Wait for a module that matches the provided filter to be registered, * then call the callback with the module as the first argument */ diff --git a/tsconfig.json b/tsconfig.json index aa12532..a55c1fe 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -14,7 +14,16 @@ "strict": true, "noImplicitAny": false, "target": "ESNEXT", - "jsx": "preserve" + "jsx": "preserve", + + "baseUrl": "./src/", + "paths": { + "@webpack": ["./webpack"], + "@webpack/common": ["./webpack/common"], + "@utils/*": ["./utils/*"], + "@api/*": ["./api/*"], + "@components/*": ["./components/*"] + } }, "include": ["src/**/*"] } |