From 297afce7e1ae29336dacd1e80c362a5f319f9551 Mon Sep 17 00:00:00 2001 From: ryan-0324 <77452312+ryan-0324@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:07:29 -0400 Subject: [PATCH] refactor: misc. changes --- package.json | 8 +- packages/discord-types/package.json | 8 +- .../scripts/changeReporter/config.mts | 141 ++++----- .../src/flux/ActionHandlersGraph.ts | 70 +++++ packages/discord-types/src/flux/ActionLog.ts | 30 ++ .../discord-types/src/flux/ActionLogger.ts | 34 +++ ...oreListener.ts => BatchedStoreListener.ts} | 9 +- ...xChangeListeners.ts => ChangeListeners.ts} | 15 +- packages/discord-types/src/flux/Dispatcher.ts | 87 ++++++ .../src/flux/{FluxEmitter.ts => Emitter.ts} | 13 +- .../src/flux/FluxActionHandlersGraph.ts | 71 ----- .../discord-types/src/flux/FluxActionLog.ts | 31 -- .../src/flux/FluxActionLogger.ts | 35 --- .../discord-types/src/flux/FluxDispatcher.ts | 90 ------ .../PersistedStore.ts} | 41 ++- .../SnapshotStore.ts} | 21 +- packages/discord-types/src/flux/Store.ts | 65 +++++ .../src/flux/UserAgnosticStore.ts | 15 + packages/discord-types/src/flux/actions.ts | 132 +++++++++ .../discord-types/src/flux/fluxActions.ts | 132 --------- packages/discord-types/src/flux/index.ts | 43 +-- .../src/{stores => flux}/utils.ts | 16 +- .../src/general/ApplicationRecord.ts | 4 +- .../src/general/CompanyRecord.ts | 4 +- .../discord-types/src/general/GuildRecord.ts | 4 +- .../{ImmutableRecord.ts => RecordBase.ts} | 2 +- .../discord-types/src/general/UserRecord.ts | 4 +- packages/discord-types/src/general/index.ts | 3 +- .../src/general/messages/InteractionRecord.ts | 4 +- .../general/messages/MessageSnapshotRecord.ts | 4 +- .../general/messages/MinimalMessageRecord.ts | 4 +- .../{general => }/i18n/FormattedMessage.ts | 2 +- .../src/{general => }/i18n/I18N.ts | 2 +- .../src/{general => }/i18n/I18NMessages.ts | 2 +- .../src/{general => }/i18n/Provider.ts | 0 .../src/{general => }/i18n/index.ts | 0 .../src/{general => }/i18n/utils.ts | 2 +- packages/discord-types/src/index.ts | 1 + .../src/stores/ApplicationStore.ts | 4 +- .../discord-types/src/stores/ChannelStore.ts | 4 +- .../discord-types/src/stores/DraftStore.ts | 4 +- .../discord-types/src/stores/EmojiStore.ts | 4 +- .../src/stores/GuildChannelStore.ts | 4 +- .../src/stores/GuildMemberStore.ts | 4 +- .../discord-types/src/stores/GuildStore.ts | 4 +- .../discord-types/src/stores/MessageStore.ts | 4 +- .../src/stores/PermissionStore.ts | 4 +- .../discord-types/src/stores/PresenceStore.ts | 4 +- .../src/stores/ReadStateStore.ts | 4 +- .../src/stores/RelationshipStore.ts | 4 +- .../src/stores/SelectedChannelStore.ts | 4 +- .../src/stores/SelectedGuildStore.ts | 4 +- .../src/stores/UserProfileStore.ts | 6 +- .../discord-types/src/stores/UserStore.ts | 6 +- .../discord-types/src/stores/WindowStore.ts | 4 +- .../src/stores/abstract/FluxStore.ts | 66 ----- .../stores/abstract/FluxUserAgnosticStore.ts | 16 -- .../src/stores/abstract/index.ts | 10 - packages/discord-types/src/stores/index.ts | 2 - packages/vencord-types/package.json | 2 +- pnpm-lock.yaml | 270 +++++++----------- src/plugins/betterFolders/FolderSideBar.tsx | 4 +- src/plugins/betterFolders/index.tsx | 6 +- src/plugins/betterSessions/index.tsx | 4 +- .../webpack/types/stores.ts | 6 +- src/plugins/clientTheme/index.tsx | 6 +- src/plugins/emoteCloner/index.tsx | 4 +- src/plugins/fakeNitro/index.tsx | 6 +- src/plugins/ignoreActivities/index.tsx | 4 +- src/plugins/implicitRelationships/index.ts | 4 +- src/plugins/index.ts | 14 +- src/plugins/lastfm/index.tsx | 4 +- src/plugins/memberCount/index.tsx | 8 +- src/plugins/messageClickActions/index.ts | 4 +- src/plugins/noPendingCount/index.ts | 4 +- src/plugins/petpet/index.ts | 4 +- src/plugins/pinDms/index.tsx | 4 +- src/plugins/platformIndicators/index.tsx | 4 +- src/plugins/previewMessage/index.tsx | 4 +- src/plugins/pronoundb/pronoundbUtils.ts | 4 +- .../readAllNotificationsButton/index.tsx | 4 +- src/plugins/relationshipNotifier/utils.ts | 4 +- src/plugins/seeSummaries/index.tsx | 4 +- src/plugins/spotifyControls/SpotifyStore.ts | 4 +- src/plugins/spotifyShareCommands/index.ts | 6 +- src/plugins/typingIndicator/index.tsx | 6 +- src/plugins/userVoiceShow/index.tsx | 4 +- src/plugins/vcNarrator/index.tsx | 4 +- src/plugins/voiceMessages/index.tsx | 4 +- src/plugins/voiceMessages/utils.ts | 4 +- src/utils/types.ts | 4 +- src/webpack/common/stores.ts | 12 +- src/webpack/common/utils.ts | 6 +- 93 files changed, 836 insertions(+), 915 deletions(-) create mode 100644 packages/discord-types/src/flux/ActionHandlersGraph.ts create mode 100644 packages/discord-types/src/flux/ActionLog.ts create mode 100644 packages/discord-types/src/flux/ActionLogger.ts rename packages/discord-types/src/flux/{FluxBatchedStoreListener.ts => BatchedStoreListener.ts} (59%) rename packages/discord-types/src/flux/{FluxChangeListeners.ts => ChangeListeners.ts} (53%) create mode 100644 packages/discord-types/src/flux/Dispatcher.ts rename packages/discord-types/src/flux/{FluxEmitter.ts => Emitter.ts} (73%) delete mode 100644 packages/discord-types/src/flux/FluxActionHandlersGraph.ts delete mode 100644 packages/discord-types/src/flux/FluxActionLog.ts delete mode 100644 packages/discord-types/src/flux/FluxActionLogger.ts delete mode 100644 packages/discord-types/src/flux/FluxDispatcher.ts rename packages/discord-types/src/{stores/abstract/FluxPersistedStore.ts => flux/PersistedStore.ts} (69%) rename packages/discord-types/src/{stores/abstract/FluxSnapshotStore.ts => flux/SnapshotStore.ts} (53%) create mode 100644 packages/discord-types/src/flux/Store.ts create mode 100644 packages/discord-types/src/flux/UserAgnosticStore.ts create mode 100644 packages/discord-types/src/flux/actions.ts delete mode 100644 packages/discord-types/src/flux/fluxActions.ts rename packages/discord-types/src/{stores => flux}/utils.ts (85%) rename packages/discord-types/src/general/{ImmutableRecord.ts => RecordBase.ts} (95%) rename packages/discord-types/src/{general => }/i18n/FormattedMessage.ts (98%) rename packages/discord-types/src/{general => }/i18n/I18N.ts (98%) rename packages/discord-types/src/{general => }/i18n/I18NMessages.ts (99%) rename packages/discord-types/src/{general => }/i18n/Provider.ts (100%) rename packages/discord-types/src/{general => }/i18n/index.ts (100%) rename packages/discord-types/src/{general => }/i18n/utils.ts (94%) delete mode 100644 packages/discord-types/src/stores/abstract/FluxStore.ts delete mode 100644 packages/discord-types/src/stores/abstract/FluxUserAgnosticStore.ts delete mode 100644 packages/discord-types/src/stores/abstract/index.ts diff --git a/package.json b/package.json index 0f43f0ea3..fa8aebfe6 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "@types/diff": "^5.2.1", "@types/html-minifier-terser": "^7.0.2", "@types/lodash": "~4.17.7", - "@types/node": "^18.19.45", + "@types/node": "^18.19.46", "@types/react": "~18.2.79", "@types/react-dom": "~18.2.25", "@types/yazl": "^2.4.5", @@ -68,7 +68,7 @@ "highlight.js": "11.8.0", "html-minifier-terser": "^7.2.0", "moment": "2.22.2", - "puppeteer-core": "^23.1.1", + "puppeteer-core": "^23.2.0", "standalone-electron-types": "^1.0.0", "stylelint": "^16.8.2", "stylelint-config-standard": "^36.0.1", @@ -76,11 +76,11 @@ "tsx": "^4.18.0", "type-fest": "^4.25.0", "typescript": "^5.5.4", - "typescript-eslint": "^8.2.0", + "typescript-eslint": "^8.3.0", "typescript-transform-paths": "^3.5.0", "zip-local": "^0.3.5" }, - "packageManager": "pnpm@9.8.0", + "packageManager": "pnpm@9.9.0", "pnpm": { "patchedDependencies": { "@stylistic/eslint-plugin-js@2.6.4": "patches/@stylistic__eslint-plugin-js@2.6.4.patch", diff --git a/packages/discord-types/package.json b/packages/discord-types/package.json index f369cb720..2485d5673 100644 --- a/packages/discord-types/package.json +++ b/packages/discord-types/package.json @@ -32,19 +32,19 @@ "@stylistic/eslint-plugin": "^2.6.4", "@types/node": "^20.16.1", "@types/semver": "^7.5.8", - "@typescript-eslint/typescript-estree": "^8.2.0", + "@typescript-eslint/typescript-estree": "^8.3.0", "eslint": "^9.9.1", "eslint-plugin-check-file": "^2.8.0", - "eslint-plugin-import-x": "^3.1.0", + "eslint-plugin-import-x": "^4.0.0", "eslint-plugin-simple-header": "^1.1.1", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-unicorn": "^55.0.0", "eslint-plugin-unused-imports": "^4.1.3", - "puppeteer-core": "^23.1.1", + "puppeteer-core": "^23.2.0", "semver": "^7.6.3", "tsx": "^4.18.0", "type-fest": "^4.25.0", "typescript": "^5.5.4", - "typescript-eslint": "^8.2.0" + "typescript-eslint": "^8.3.0" } } diff --git a/packages/discord-types/scripts/changeReporter/config.mts b/packages/discord-types/scripts/changeReporter/config.mts index 87f636bce..17ad22283 100644 --- a/packages/discord-types/scripts/changeReporter/config.mts +++ b/packages/discord-types/scripts/changeReporter/config.mts @@ -32,13 +32,13 @@ export default { }, }, src: { - "./flux/FluxActionHandlersGraph.ts": { - FluxActionHandlersGraph: { + "./flux/ActionHandlersGraph.ts": { + ActionHandlersGraph: { type: "class", }, }, - "./flux/FluxActionLog.ts": { - FluxActionLog: { + "./flux/ActionLog.ts": { + ActionLog: { type: "class", find() { return this.Webpack.Common.FluxDispatcher.actionLogger.log( @@ -48,26 +48,26 @@ export default { }, }, }, - "./flux/FluxActionLogger.ts": { - FluxActionLogger: { + "./flux/ActionLogger.ts": { + ActionLogger: { type: "class", }, }, - "./flux/FluxBatchedStoreListener.ts": { - FluxBatchedStoreListener: { + "./flux/BatchedStoreListener.ts": { + BatchedStoreListener: { type: "class", }, }, - "./flux/FluxChangeListeners.ts": { - FluxChangeListeners: { + "./flux/ChangeListeners.ts": { + ChangeListeners: { type: "class", }, }, - "./flux/FluxDispatcher.ts": { - FluxDispatcher: { + "./flux/Dispatcher.ts": { + Dispatcher: { type: "class", }, - FluxDispatchBand: { + DispatchBand: { type: "enum", // Screaming snake case to pascal case (source enum's keys have no underscores) keyMapper: key => key.replace(/(?<=^.).+/, s => s.toLowerCase()), @@ -76,11 +76,47 @@ export default { type: "enum", }, }, - "./flux/FluxEmitter.ts": { - FluxEmitter: { + "./flux/Emitter.ts": { + Emitter: { type: "class", }, }, + "./flux/PersistedStore.ts": { + PersistedStore: { + type: "class", + ignoredAdditions: { + // Overrides + staticMethodsAndFields: ["destroy"], + methods: ["initializeIfNeeded"], + }, + }, + }, + "./flux/SnapshotStore.ts": { + SnapshotStore: { + type: "class", + ignoredRemovals: { + // Exists on type to enforce that subclasses have `displayName` + staticMethodsAndFields: ["displayName"], + }, + }, + }, + "./flux/Store.ts": { + Store: { + type: "class", + }, + }, + "./flux/UserAgnosticStore.ts": { + UserAgnosticStore: { + type: "class", + find() { + return Object.getPrototypeOf(this.Webpack.Common.Flux.DeviceSettingsStore); + }, + ignoredAdditions: { + // Overrides + methods: ["initializeFromState", "initializeIfNeeded", "getState"], + }, + }, + }, "./general/channels/ChannelRecord.ts": { ChannelRecordBase: { type: "class", @@ -256,25 +292,6 @@ export default { }, }, }, - "./general/i18n/FormattedMessage.ts": { - FormattedMessage: { - type: "class", - }, - ASTNodeType: { - type: "enum", - // Undocumented - ignoredRemovals: [["HOOK"]], - }, - }, - "./general/i18n/Provider.ts": { - Provider: { - type: "class", - find() { - const { constructor } = this.Webpack.Common.i18n._provider; - return [Object.getPrototypeOf(constructor), constructor]; - }, - }, - }, "./general/messages/ChannelMessages.ts": { ChannelMessages: { type: "class", @@ -531,15 +548,6 @@ export default { type: "enum", }, }, - "./general/ImmutableRecord.ts": { - ImmutableRecord: { - type: "class", - ignoredRemovals: { - // Exists on type to enforce that subclasses have a valid constructor - constructorDefinition: true, - }, - }, - }, "./general/Permissions.ts": { /* // bigint enums are not yet possible: https://github.com/microsoft/TypeScript/issues/37783 @@ -583,6 +591,15 @@ export default { type: "enum", }, }, + "./general/RecordBase.ts": { + RecordBase: { + type: "class", + ignoredRemovals: { + // Exists on type to enforce that subclasses have a valid constructor + constructorDefinition: true, + }, + }, + }, "./general/Role.ts": { RoleFlags: { type: "enum", @@ -610,39 +627,27 @@ export default { type: "enum", }, }, - "./stores/abstract/FluxPersistedStore.ts": { - FluxPersistedStore: { + "./i18n/FormattedMessage.ts": { + FormattedMessage: { type: "class", - ignoredAdditions: { - // Overrides - staticMethodsAndFields: ["destroy"], - methods: ["initializeIfNeeded"], - }, + }, + ASTNodeType: { + type: "enum", + // Undocumented + ignoredRemovals: [["HOOK"]], }, }, - "./stores/abstract/FluxSnapshotStore.ts": { - FluxSnapshotStore: { - type: "class", - ignoredRemovals: { - // Exists on type to enforce that subclasses have `displayName` - staticMethodsAndFields: ["displayName"], - }, - }, - }, - "./stores/abstract/FluxStore.ts": { - FluxStore: { + "./i18n/I18N.ts": { + I18N: { type: "class", }, }, - "./stores/abstract/FluxUserAgnosticStore.ts": { - FluxUserAgnosticStore: { + "./i18n/Provider.ts": { + Provider: { type: "class", find() { - return Object.getPrototypeOf(this.Webpack.Common.Flux.DeviceSettingsStore); - }, - ignoredAdditions: { - // Overrides - methods: ["initializeFromState", "initializeIfNeeded", "getState"], + const { constructor } = this.Webpack.Common.i18n._provider; + return [Object.getPrototypeOf(constructor), constructor]; }, }, }, diff --git a/packages/discord-types/src/flux/ActionHandlersGraph.ts b/packages/discord-types/src/flux/ActionHandlersGraph.ts new file mode 100644 index 000000000..c3245a5c6 --- /dev/null +++ b/packages/discord-types/src/flux/ActionHandlersGraph.ts @@ -0,0 +1,70 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { DepGraph } from "dependency-graph"; + +import type { IsAny, Nullish, UnionToIntersection } from "../internal"; +import type { Action, ActionHandler, ActionType, ExtractAction } from "./actions"; +import type { DispatchBand } from "./Dispatcher"; + +export declare class ActionHandlersGraph { + _addToBand(dispatchToken: string, dispatchBand: DispatchBand): void; + _bandToken(dispatchBand: DispatchBand): string; + _computeOrderedActionHandlers( + actionType: T + ): OrderedActionHandlers>[]; + _computeOrderedCallbackTokens(): string[]; + _invalidateCaches(): void; + _validateDependencies(fromDispatchToken: string, toDispatchToken: string): void; + addDependencies(fromDispatchToken: string, toDispatchTokens: readonly string[]): void; + createToken(): string; + getOrderedActionHandlers(partialAction: { + type: T; + }): OrderedActionHandlers>; + register( + storeName: string, + actionHandlers: ActionHandlerMap, + storeDidChange: ActionHandler, + dispatchBand: DispatchBand, + dispatchToken?: string | undefined /* = this.createToken() */ + ): string; + + _dependencyGraph: DepGraph; + _lastID: number; + _orderedActionHandlers: { + [T in ActionType]?: OrderedActionHandlers> | Nullish; + }; + _orderedCallbackTokens: string[] | Nullish; +} + +export interface ActionHandlersGraphNode { + actionHandler: Partial; + band: DispatchBand; + /** Store name */ + name: string; + storeDidChange: ActionHandler; +} + +export type ActionHandlerMap + // Workaround to avoid ts(2589) + = UnionToIntersection< + A extends unknown + ? unknown extends ( + IsAny]> + & IsAny]> + & IsAny]> + ) + ? Record void> + : { [T in A["type"]]: (action: A & { type: T; }) => void; } + : never + >; + +export type OrderedActionHandlers = { + actionHandler: ActionHandler; + /** Store name */ + name: string; + storeDidChange: ActionHandler; +}[]; diff --git a/packages/discord-types/src/flux/ActionLog.ts b/packages/discord-types/src/flux/ActionLog.ts new file mode 100644 index 000000000..91fd39d02 --- /dev/null +++ b/packages/discord-types/src/flux/ActionLog.ts @@ -0,0 +1,30 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { Action } from "./actions"; + +export declare class ActionLog { + constructor(actionType: A["type"]); + + get name(): A["type"]; + toJSON(): Pick, "action" | "createdAt" | "traces"> & { + created_at: ActionLog["createdAt"]; + }; + + action: A; + createdAt: Date; + error: Error | undefined; + id: number; + startTime: number; + totalTime: number; + traces: ActionLogTrace[]; +} + +export interface ActionLogTrace { + /** Store name */ + name: string; + time: number; +} diff --git a/packages/discord-types/src/flux/ActionLogger.ts b/packages/discord-types/src/flux/ActionLogger.ts new file mode 100644 index 000000000..a422d86c9 --- /dev/null +++ b/packages/discord-types/src/flux/ActionLogger.ts @@ -0,0 +1,34 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { EventEmitter } from "events"; + +import type { Nullish } from "../internal"; +import type { ActionLog } from "./ActionLog"; +import type { Action, ActionType } from "./actions"; + +export declare class ActionLogger extends EventEmitter { + constructor(options?: { persist?: boolean | undefined; } | undefined); + + getLastActionMetrics( + title: string, + limit?: number | undefined /* = 20 */ + ): ActionMetric[]; + getSlowestActions( + actionType?: T | Nullish, + limit?: number | undefined /* = 20 */ + ): ActionMetric[]; + log( + action: A, + callback: (func: (storeName: string, func: () => T) => T) => void + ): ActionLog; + + logs: ActionLog[]; + persist: boolean; +} + +export type ActionMetric + = [storeName: string, actionType: T, totalTime: number]; diff --git a/packages/discord-types/src/flux/FluxBatchedStoreListener.ts b/packages/discord-types/src/flux/BatchedStoreListener.ts similarity index 59% rename from packages/discord-types/src/flux/FluxBatchedStoreListener.ts rename to packages/discord-types/src/flux/BatchedStoreListener.ts index cb4109563..77d98498f 100644 --- a/packages/discord-types/src/flux/FluxBatchedStoreListener.ts +++ b/packages/discord-types/src/flux/BatchedStoreListener.ts @@ -5,17 +5,16 @@ */ import type { Stringable } from "../internal"; -import type { FluxStore } from "../stores/abstract/FluxStore"; +import type { Store } from "./Store"; -// Original name: BatchedStoreListener -export declare class FluxBatchedStoreListener { - constructor(stores: FluxStore[], changeCallback: () => void); +export declare class BatchedStoreListener { + constructor(stores: Store[], changeCallback: () => void); attach(debugName?: Stringable): void; detach(): void; changeCallback: () => void; handleStoreChange: () => void; - stores: FluxStore[]; + stores: Store[]; storeVersionHandled: number | undefined; } diff --git a/packages/discord-types/src/flux/FluxChangeListeners.ts b/packages/discord-types/src/flux/ChangeListeners.ts similarity index 53% rename from packages/discord-types/src/flux/FluxChangeListeners.ts rename to packages/discord-types/src/flux/ChangeListeners.ts index e227eab74..fde46c93d 100644 --- a/packages/discord-types/src/flux/FluxChangeListeners.ts +++ b/packages/discord-types/src/flux/ChangeListeners.ts @@ -4,25 +4,24 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -// Original name: ChangeListeners -export declare class FluxChangeListeners { - has(listener: FluxChangeListener): boolean; +export declare class ChangeListeners { + has(listener: ChangeListener): boolean; hasAny(): boolean; invokeAll(): void; - add: (listener: FluxChangeListener) => void; + add: (listener: ChangeListener) => void; /** * @param listener The change listener to add. It will be removed when it returns false. */ addConditional: ( - listener: FluxChangeListener, + listener: ChangeListener, immediatelyCall?: boolean | undefined /* = true */ ) => void; - listeners: Set; - remove: (listener: FluxChangeListener) => void; + listeners: Set; + remove: (listener: ChangeListener) => void; } -export type FluxChangeListener +export type ChangeListener = true extends Conditional ? () => unknown : () => void; diff --git a/packages/discord-types/src/flux/Dispatcher.ts b/packages/discord-types/src/flux/Dispatcher.ts new file mode 100644 index 000000000..07c5ab124 --- /dev/null +++ b/packages/discord-types/src/flux/Dispatcher.ts @@ -0,0 +1,87 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { Nullish } from "../internal"; +import type { ActionHandlerMap, ActionHandlersGraph } from "./ActionHandlersGraph"; +import type { ActionLogger } from "./ActionLogger"; +import type { Action, ActionHandler, ActionType, ExtractAction } from "./actions"; + +export declare class Dispatcher { + constructor( + defaultBand?: DispatchBand | undefined /* = DispatchBand.EARLY */, + actionLogger?: ActionLogger | Nullish, + sentryUtils?: SentryUtils | Nullish + ); + + _dispatch( + action: Action, + func: (storeName: string, func: () => T) => T + ): boolean | undefined; + _dispatchWithDevtools(action: Action): void; + _dispatchWithLogging(action: Action): void; + addDependencies(fromDispatchToken: string, toDispatchTokens: readonly string[]): void; + addInterceptor(interceptor: ActionHandler): void; + createToken(): string; + dispatch(action: Action): Promise; + flushWaitQueue(): void; + isDispatching(): boolean; + register( + storeName: string, + actionHandlers: ActionHandlerMap, + storeDidChange: ActionHandler, + dispatchBand?: DispatchBand | Nullish, /* = this._defaultBand */ + dispatchToken?: string | undefined /* = this._actionHandlers.createToken() */ + ): string; + subscribe( + actionType: T, + listener: ActionHandler>): void; + unsubscribe( + actionType: T, + listener: ActionHandler> + ): void; + wait(callback: () => void): void; + + _actionHandlers: ActionHandlersGraph; + _currentDispatchActionType: ActionType | Nullish; + _defaultBand: DispatchBand; + _interceptors: ((action: Action) => boolean)[]; + _processingWaitQueue: boolean; + _sentryUtils: SentryUtils | Nullish; + _subscriptions: { + [T in ActionType]?: Set>> | Nullish; + }; + _waitQueue: (() => void)[]; + actionLogger: ActionLogger; + functionCache: Partial; +} + +// Enum keys made screaming snake case for consistency. +export enum DispatchBand { + EARLY = 0, + DATABASE = 1, + DEFAULT = 2, +} + +export interface SentryUtils { + addBreadcrumb: (breadcrumb: { + category?: string | undefined; + data?: Record | undefined; + event_id?: string | undefined; + level?: SeverityLevel | undefined; + message?: string | undefined; + timestamp?: number | undefined; + type?: string | undefined; + }) => void; +} + +export enum SeverityLevel { + DEBUG = "debug", + ERROR = "error", + FATAL = "fatal", + INFO = "info", + LOG = "log", + WARNING = "warning", +} diff --git a/packages/discord-types/src/flux/FluxEmitter.ts b/packages/discord-types/src/flux/Emitter.ts similarity index 73% rename from packages/discord-types/src/flux/FluxEmitter.ts rename to packages/discord-types/src/flux/Emitter.ts index 2989cd565..0be094d4c 100644 --- a/packages/discord-types/src/flux/FluxEmitter.ts +++ b/packages/discord-types/src/flux/Emitter.ts @@ -4,28 +4,27 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { FluxStore } from "../stores/abstract/FluxStore"; +import type { Store } from "./Store"; -// Original name: Emitter -export declare class FluxEmitter { +export declare class Emitter { batched(callback: () => T): T; destroy(): void; emit(): void; - emitNonReactOnce(syncWiths: Set<() => unknown>, changedStores: Set): void; + emitNonReactOnce(syncWiths: Set<() => unknown>, changedStores: Set): void; emitReactOnce(): void; getChangeSentinel(): number; getIsPaused(): boolean; injectBatchEmitChanges(batchEmitChanges: () => unknown): void; - markChanged(store: FluxStore): void; + markChanged(store: Store): void; /** If timeout is omitted, Emitter will pause until resume is called. */ pause(timeout?: number | undefined): void; resume(shouldEmit?: boolean | undefined /* = true */): void; - changedStores: Set; + changedStores: Set; changeSentinel: number; isBatchEmitting: boolean; isDispatching: boolean; isPaused: boolean; pauseTimer: number | null; - reactChangedStores: Set; + reactChangedStores: Set; } diff --git a/packages/discord-types/src/flux/FluxActionHandlersGraph.ts b/packages/discord-types/src/flux/FluxActionHandlersGraph.ts deleted file mode 100644 index 3af6cf3e3..000000000 --- a/packages/discord-types/src/flux/FluxActionHandlersGraph.ts +++ /dev/null @@ -1,71 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { DepGraph } from "dependency-graph"; - -import type { IsAny, Nullish, UnionToIntersection } from "../internal"; -import type { ExtractAction, FluxAction, FluxActionHandler, FluxActionType } from "./fluxActions"; -import type { FluxDispatchBand } from "./FluxDispatcher"; - -// Original name: ActionHandlersGraph -export declare class FluxActionHandlersGraph { - _addToBand(dispatchToken: string, dispatchBand: FluxDispatchBand): void; - _bandToken(dispatchBand: FluxDispatchBand): string; - _computeOrderedActionHandlers( - actionType: ActionType - ): FluxOrderedActionHandlers>[]; - _computeOrderedCallbackTokens(): string[]; - _invalidateCaches(): void; - _validateDependencies(fromDispatchToken: string, toDispatchToken: string): void; - addDependencies(fromDispatchToken: string, toDispatchTokens: readonly string[]): void; - createToken(): string; - getOrderedActionHandlers(partialAction: { - type: ActionType; - }): FluxOrderedActionHandlers>; - register( - storeName: string, - actionHandlers: FluxActionHandlerMap, - storeDidChange: FluxActionHandler, - dispatchBand: FluxDispatchBand, - dispatchToken?: string | undefined /* = this.createToken() */ - ): string; - - _dependencyGraph: DepGraph; - _lastID: number; - _orderedActionHandlers: { - [ActionType in FluxActionType]?: FluxOrderedActionHandlers> | Nullish; - }; - _orderedCallbackTokens: string[] | Nullish; -} - -export interface FluxActionHandlersGraphNode { - actionHandler: Partial; - band: FluxDispatchBand; - /** Store name */ - name: string; - storeDidChange: FluxActionHandler; -} - -export type FluxActionHandlerMap - // Workaround to avoid ts(2589) - = UnionToIntersection< - Action extends unknown - ? unknown extends ( - IsAny]> - & IsAny]> - & IsAny]> - ) - ? { [ActionType in Action["type"]]: (action: any) => void; } - : { [ActionType in Action["type"]]: (action: Action & { type: ActionType; }) => void; } - : never - >; - -export type FluxOrderedActionHandlers = { - actionHandler: FluxActionHandler; - /** Store name */ - name: string; - storeDidChange: FluxActionHandler; -}[]; diff --git a/packages/discord-types/src/flux/FluxActionLog.ts b/packages/discord-types/src/flux/FluxActionLog.ts deleted file mode 100644 index 5e0c1b9b4..000000000 --- a/packages/discord-types/src/flux/FluxActionLog.ts +++ /dev/null @@ -1,31 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { FluxAction } from "./fluxActions"; - -// Original name: ActionLog -export declare class FluxActionLog { - constructor(actionType: Action["type"]); - - get name(): Action["type"]; - toJSON(): Pick, "action" | "createdAt" | "traces"> & { - created_at: FluxActionLog["createdAt"]; - }; - - action: Action; - createdAt: Date; - error: Error | undefined; - id: number; - startTime: number; - totalTime: number; - traces: FluxActionLogTrace[]; -} - -export interface FluxActionLogTrace { - /** Store name */ - name: string; - time: number; -} diff --git a/packages/discord-types/src/flux/FluxActionLogger.ts b/packages/discord-types/src/flux/FluxActionLogger.ts deleted file mode 100644 index 42ea13f05..000000000 --- a/packages/discord-types/src/flux/FluxActionLogger.ts +++ /dev/null @@ -1,35 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { EventEmitter } from "events"; - -import type { Nullish } from "../internal"; -import type { FluxActionLog } from "./FluxActionLog"; -import type { FluxAction, FluxActionType } from "./fluxActions"; - -// Original name: ActionLogger -export declare class FluxActionLogger extends EventEmitter { - constructor(options?: { persist?: boolean | undefined; } | undefined); - - getLastActionMetrics( - title: string, - limit?: number | undefined /* = 20 */ - ): FluxActionMetric[]; - getSlowestActions( - actionType?: ActionType | Nullish, - limit?: number | undefined /* = 20 */ - ): FluxActionMetric[]; - log( - action: Action, - callback: (func: (storeName: string, func: () => T) => T) => void - ): FluxActionLog; - - logs: FluxActionLog[]; - persist: boolean; -} - -export type FluxActionMetric - = [storeName: string, actionType: ActionType, totalTime: number]; diff --git a/packages/discord-types/src/flux/FluxDispatcher.ts b/packages/discord-types/src/flux/FluxDispatcher.ts deleted file mode 100644 index 4fe08b16b..000000000 --- a/packages/discord-types/src/flux/FluxDispatcher.ts +++ /dev/null @@ -1,90 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { Nullish } from "../internal"; -import type { FluxActionHandlerMap, FluxActionHandlersGraph } from "./FluxActionHandlersGraph"; -import type { FluxActionLogger } from "./FluxActionLogger"; -import type { ExtractAction, FluxAction, FluxActionHandler, FluxActionType } from "./fluxActions"; - -// Original name: Dispatcher -export declare class FluxDispatcher { - constructor( - defaultBand?: FluxDispatchBand | undefined /* = FluxDispatchBand.EARLY */, - actionLogger?: FluxActionLogger | Nullish, - sentryUtils?: SentryUtils | Nullish - ); - - _dispatch( - action: FluxAction, - func: (storeName: string, func: () => T) => T - ): boolean | undefined; - _dispatchWithDevtools(action: FluxAction): void; - _dispatchWithLogging(action: FluxAction): void; - addDependencies(fromDispatchToken: string, toDispatchTokens: readonly string[]): void; - addInterceptor(interceptor: FluxActionHandler): void; - createToken(): string; - dispatch(action: FluxAction): Promise; - flushWaitQueue(): void; - isDispatching(): boolean; - register( - storeName: string, - actionHandlers: FluxActionHandlerMap, - storeDidChange: FluxActionHandler, - dispatchBand?: FluxDispatchBand | Nullish, /* = this._defaultBand */ - dispatchToken?: string | undefined /* = this._actionHandlers.createToken() */ - ): string; - subscribe( - actionType: ActionType, - listener: FluxActionHandler> - ): void; - unsubscribe( - actionType: ActionType, - listener: FluxActionHandler> - ): void; - wait(callback: () => void): void; - - _actionHandlers: FluxActionHandlersGraph; - _currentDispatchActionType: FluxActionType | Nullish; - _defaultBand: FluxDispatchBand; - _interceptors: ((action: FluxAction) => boolean)[]; - _processingWaitQueue: boolean; - _sentryUtils: SentryUtils | Nullish; - _subscriptions: { - [ActionType in FluxActionType]?: Set>> | Nullish; - }; - _waitQueue: (() => void)[]; - actionLogger: FluxActionLogger; - functionCache: Partial; -} - -// Original name: DispatchBand -// Enum keys made screaming snake case for consistency. -export enum FluxDispatchBand { - EARLY = 0, - DATABASE = 1, - DEFAULT = 2, -} - -export interface SentryUtils { - addBreadcrumb: (breadcrumb: { - category?: string | undefined; - data?: Record | undefined; - event_id?: string | undefined; - level?: SeverityLevel | undefined; - message?: string | undefined; - timestamp?: number | undefined; - type?: string | undefined; - }) => void; -} - -export enum SeverityLevel { - DEBUG = "debug", - ERROR = "error", - FATAL = "fatal", - INFO = "info", - LOG = "log", - WARNING = "warning", -} diff --git a/packages/discord-types/src/stores/abstract/FluxPersistedStore.ts b/packages/discord-types/src/flux/PersistedStore.ts similarity index 69% rename from packages/discord-types/src/stores/abstract/FluxPersistedStore.ts rename to packages/discord-types/src/flux/PersistedStore.ts index 3cb209141..17787f39f 100644 --- a/packages/discord-types/src/stores/abstract/FluxPersistedStore.ts +++ b/packages/discord-types/src/flux/PersistedStore.ts @@ -4,24 +4,23 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { FluxActionHandlerMap } from "../../flux/FluxActionHandlersGraph"; -import type { FluxDispatcher } from "../../flux/FluxDispatcher"; -import type { GenericConstructor, Nullish } from "../../internal"; -import type { FluxStore } from "./FluxStore"; +import type { GenericConstructor, Nullish } from "../internal"; +import type { ActionHandlerMap } from "./ActionHandlersGraph"; +import type { Dispatcher } from "./Dispatcher"; +import type { Store } from "./Store"; -// Original name: PersistedStore -export declare abstract class FluxPersistedStore< +export declare abstract class PersistedStore< Constructor extends GenericConstructor = GenericConstructor, State = unknown -> extends FluxStore { - constructor(dispatcher: FluxDispatcher, actionHandlers: Partial); +> extends Store { + constructor(dispatcher: Dispatcher, actionHandlers: Partial); static _clearAllPromise: Promise | Nullish; static _writePromises: Map>; static _writeResolvers: Map void, callbackId: number]>; static allPersistKeys: Set; - static clearAll(options: FluxPersistedStoreClearOptions): Promise; - static clearPersistQueue(options: FluxPersistedStoreClearOptions): void; + static clearAll(options: PersistedStoreClearOptions): Promise; + static clearPersistQueue(options: PersistedStoreClearOptions): void; static disableWrite: boolean; static disableWrites: boolean; static getAllStates(): Promise<{ [persistKey: string]: unknown; }>; @@ -33,17 +32,17 @@ export declare abstract class FluxPersistedStore< States extends readonly [unknown, ...unknown[]] | readonly [...unknown[], unknown] = [unknown] >( persistKey: string, - ...migrations: [] extends FluxPersistedStoreMigrations - ? [migrations?: FluxPersistedStoreMigrations | Nullish] - : [migrations: FluxPersistedStoreMigrations] + ...migrations: [] extends PersistedStoreMigrations + ? [migrations?: PersistedStoreMigrations | Nullish] + : [migrations: PersistedStoreMigrations] ): { requiresPersist: true; state: Tail; } | { requiresPersist: false; state: undefined; }; static migrations: ((oldState: never) => unknown)[] | undefined; /** - * Not present on {@link FluxPersistedStore}'s constructor. + * Not present on {@link PersistedStore}'s constructor. * All subclasses are required to define their own. */ static persistKey: string; - static shouldClear(options: FluxPersistedStoreClearOptions, persistKey: string): boolean; + static shouldClear(options: PersistedStoreClearOptions, persistKey: string): boolean; static throttleDelay: number; static userAgnosticPersistKeys: Set; @@ -64,29 +63,29 @@ export declare abstract class FluxPersistedStore< }; } -export interface FluxPersistedStoreClearOptions { +export interface PersistedStoreClearOptions { /** Array of persist keys */ omit?: readonly string[] | Nullish; type: "all" | "user-data-only"; } -export type FluxPersistedStoreMigrations< +export type PersistedStoreMigrations< States extends readonly [unknown, ...unknown[]] | readonly [...unknown[], unknown] > = States extends readonly [...infer OldStates, infer NewState] ? OldStates extends [...infer OlderStates, infer OldState] - ? [...FluxPersistedStoreMigrations<[...OlderStates, OldState]>, (oldState: OldState) => NewState] + ? [...PersistedStoreMigrations<[...OlderStates, OldState]>, (oldState: OldState) => NewState] : OldStates extends [] ? [] : OldStates extends (infer T)[] ? [] | [...((oldState: T) => T)[], (oldState: T) => NewState] : never - : FluxPersistedStoreMigrationsTrailingRest; + : PersistedStoreMigrationsTrailingRest; -type FluxPersistedStoreMigrationsTrailingRest +type PersistedStoreMigrationsTrailingRest = States extends readonly [infer OldState, ...infer NewStates] ? NewStates extends [infer NewState, ...infer NewerStates] - ? [(oldState: OldState) => NewState, ...FluxPersistedStoreMigrationsTrailingRest<[NewState, ...NewerStates]>] + ? [(oldState: OldState) => NewState, ...PersistedStoreMigrationsTrailingRest<[NewState, ...NewerStates]>] : NewStates extends [] ? [] : NewStates extends (infer T)[] diff --git a/packages/discord-types/src/stores/abstract/FluxSnapshotStore.ts b/packages/discord-types/src/flux/SnapshotStore.ts similarity index 53% rename from packages/discord-types/src/stores/abstract/FluxSnapshotStore.ts rename to packages/discord-types/src/flux/SnapshotStore.ts index 0e066de8b..dbe15808a 100644 --- a/packages/discord-types/src/stores/abstract/FluxSnapshotStore.ts +++ b/packages/discord-types/src/flux/SnapshotStore.ts @@ -4,29 +4,28 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { FluxActionHandlerMap } from "../../flux/FluxActionHandlersGraph"; -import type { GenericConstructor } from "../../internal"; -import type { FluxStore } from "./FluxStore"; +import type { GenericConstructor } from "../internal"; +import type { ActionHandlerMap } from "./ActionHandlersGraph"; +import type { Store } from "./Store"; -export interface FluxSnapshot { +export interface SnapshotStoreSnapshot { data: SnapshotData; version: number; } -// Original name: SnapshotStore -export declare abstract class FluxSnapshotStore< +export declare abstract class SnapshotStore< Constructor extends GenericConstructor = GenericConstructor, SnapshotData = unknown -> extends FluxStore { +> extends Store { constructor( - actionHandlers: Partial + actionHandlers: Partial & Partial> ); - static allStores: FluxSnapshotStore[]; + static allStores: SnapshotStore[]; static clearAll(): void; /** - * Not present on {@link FluxSnapshotStore}'s constructor. + * Not present on {@link SnapshotStore}'s constructor. * All subclasses are required to define their own. */ static displayName: string; @@ -36,5 +35,5 @@ export declare abstract class FluxSnapshotStore< get persistKey(): string; readSnapshot(version: number): SnapshotData | null; save(): void; - abstract takeSnapshot(): FluxSnapshot; + abstract takeSnapshot(): SnapshotStoreSnapshot; } diff --git a/packages/discord-types/src/flux/Store.ts b/packages/discord-types/src/flux/Store.ts new file mode 100644 index 000000000..90338d573 --- /dev/null +++ b/packages/discord-types/src/flux/Store.ts @@ -0,0 +1,65 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { Nullish } from "../internal"; +import type { ActionHandlerMap } from "./ActionHandlersGraph"; +import type { Action } from "./actions"; +import type { ChangeListeners } from "./ChangeListeners"; +import type { DispatchBand, Dispatcher } from "./Dispatcher"; + +export declare abstract class Store { + constructor( + dispatcher: Dispatcher, + actionHandlers?: Partial | Nullish, + dispatchBand?: DispatchBand | Nullish /* = dispatcher._defaultBand */ + ); + + static destroy(): void; + /** Undefined on {@link Store}'s constructor. */ + static displayName: string | undefined; + static getAll(): Store[]; + static initialize(): void; + static initialized: Promise; + + emitChange(): void; + getDispatchToken(): string; + getName(): string; + initialize(...args: never[]): void; + initializeIfNeeded(): void; + mustEmitChanges( + mustEmitChanges?: ((action: Action) => boolean) | Nullish /* = () => true */ + ): void; + registerActionHandlers( + actionHandlers: Partial, + dispatchBand?: DispatchBand | Nullish /* = this._dispatcher._defaultBand */ + ): void; + syncWith( + stores: readonly Store[], + func: () => unknown, + timeout?: number | Nullish + ): void; + waitFor(...stores: Store[]): void; + + __getLocalVars: undefined; + _changeCallbacks: ChangeListeners; + _dispatcher: Dispatcher; + _dispatchToken: string; + _isInitialized: boolean; + _mustEmitChanges: ((action: Action) => boolean) | Nullish; + _reactChangeCallbacks: ChangeListeners; + _syncWiths: { + func: () => unknown; + store: Store; + }[]; + addChangeListener: ChangeListeners["add"]; + /** + * @param listener The change listener to add. It will be removed when it returns false. + */ + addConditionalChangeListener: ChangeListeners["addConditional"]; + addReactChangeListener: ChangeListeners["add"]; + removeChangeListener: ChangeListeners["remove"]; + removeReactChangeListener: ChangeListeners["remove"]; +} diff --git a/packages/discord-types/src/flux/UserAgnosticStore.ts b/packages/discord-types/src/flux/UserAgnosticStore.ts new file mode 100644 index 000000000..521c47871 --- /dev/null +++ b/packages/discord-types/src/flux/UserAgnosticStore.ts @@ -0,0 +1,15 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { GenericConstructor } from "../internal"; +import type { PersistedStore } from "./PersistedStore"; + +export declare abstract class UserAgnosticStore< + Constructor extends GenericConstructor = GenericConstructor, + State = unknown +> extends PersistedStore { + abstract getUserAgnosticState(): State; +} diff --git a/packages/discord-types/src/flux/actions.ts b/packages/discord-types/src/flux/actions.ts new file mode 100644 index 000000000..3d6f7f26a --- /dev/null +++ b/packages/discord-types/src/flux/actions.ts @@ -0,0 +1,132 @@ +/* + * discord-types + * Copyright (C) 2024 Vencord project contributors + * SPDX-License-Identifier: GPL-3.0-or-later + */ + +import type { IsAny, OmitIndexSignature } from "../internal"; + +export type ActionHandler + = A extends unknown + ? unknown extends ( + IsAny]> + & IsAny]> + & IsAny]> + ) + ? (action: any) => Return + : (action: A) => Return + : never; + +export type Action + // Workaround to avoid ts(2589) + = { type: Exclude; } & Record + // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents + | ValidOverrides[keyof ValidOverrides]; + +type ValidOverrides = { + // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents + [Key in keyof OmitIndexSignature & string as ActionOverride[Key]["type"] extends Key + ? Key extends ActionOverride[Key]["type"] + ? Key + : never + : never + ]: ActionOverride[Key]; +}; + +/** + * Augment this interface to override actions of {@link Action} and add action types to {@link ActionType}. + * Actions whose type does not match their key will be omitted. + * @see https://typescriptlang.org/docs/handbook/declaration-merging#module-augmentation + */ +export interface ActionOverride extends Record {} + +export type ExcludeAction + = A extends unknown + // Workaround to avoid ts(2589) + ? Exclude extends never + ? never + : A & { type: Exclude; } + : never; + +export type ExtractAction + = A extends unknown + // Workaround to avoid ts(2589) + ? A["type"] & T extends never + ? never + : A & { type: T; } + : never; + +/* +async function generateActionType() { + const { wreq } = Vencord.Webpack; + + // Load all chunks + await Promise.all(Array.from( + wreq.u.toString().matchAll(/(?<=[{,])\d+(?=:")/g), + async ([id]) => + !(await (await fetch(wreq.p + wreq.u(id))).text()).includes("importScripts(") + && wreq.e(id) + )); + + // Import all modules + await Promise.all(Object.keys(wreq.m).map(async id => { + try { await wreq(id); } catch {} + })); + + const actionTypes = new Set(); + + const { FluxDispatcher } = Vencord.Webpack.Common; + for (const actionType in FluxDispatcher._subscriptions) + actionTypes.add(actionType); + for (const actionType in FluxDispatcher._actionHandlers._orderedActionHandlers) + actionTypes.add(actionType); + const { nodes } = FluxDispatcher._actionHandlers._dependencyGraph; + for (const dispatchToken in nodes) + for (const actionType in nodes[dispatchToken].actionHandler) + actionTypes.add(actionType); + console.log("actionTypes.size: " + actionTypes.size); + + const sortedActionTypes = [...actionTypes].sort((a, b) => { + const x = a.toLowerCase(); + const y = b.toLowerCase(); + return x < y ? -1 : x > y ? 1 : 0; + }); + return `"${sortedActionTypes.join('" | "')}"`; +} +*/ + +/* +function mergeActionTypes(oldActionType, newActionType) { + const actionTypeRE = /(?<=")[^"|]+(?=")/g; + + const oldActionTypes = new Set(oldActionType.match(actionTypeRE)); + console.log("Old action type count: " + oldActionTypes.size); + const newActionTypes = new Set(newActionType.match(actionTypeRE)); + console.log("New action type count: " + newActionTypes.size); + + console.log("Unique old action type count: " + oldActionTypes.difference(newActionTypes).size); + console.log("Unique new action type count: " + newActionTypes.difference(oldActionTypes).size); + + const mergedActionTypes = oldActionTypes.union(newActionTypes); + console.log("Merged action type count: " + mergedActionTypes.size); + + const sortedActionTypes = [...mergedActionTypes].sort((a, b) => { + const x = a.toLowerCase(); + const y = b.toLowerCase(); + return x < y ? -1 : x > y ? 1 : 0; + }); + return `"${sortedActionTypes.join('" | "')}"`; +} +*/ + +export type ActionType = DefaultActionType + // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents + | keyof OmitIndexSignature & string | keyof ValidOverrides; + +/** + * Augment this interface to add action types to {@link ActionType}. + * @see https://typescriptlang.org/docs/handbook/declaration-merging#module-augmentation + */ +export interface ActionTypeOverride extends Record {} + +type DefaultActionType = "ACCESSIBILITY_COLORBLIND_TOGGLE" | "ACCESSIBILITY_DARK_SIDEBAR_TOGGLE" | "ACCESSIBILITY_DESATURATE_ROLES_TOGGLE" | "ACCESSIBILITY_FORCED_COLORS_MODAL_SEEN" | "ACCESSIBILITY_KEYBOARD_MODE_DISABLE" | "ACCESSIBILITY_KEYBOARD_MODE_ENABLE" | "ACCESSIBILITY_LOW_CONTRAST_TOGGLE" | "ACCESSIBILITY_RESET_TO_DEFAULT" | "ACCESSIBILITY_SET_ALWAYS_SHOW_LINK_DECORATIONS" | "ACCESSIBILITY_SET_CONTRAST" | "ACCESSIBILITY_SET_FONT_SIZE" | "ACCESSIBILITY_SET_HIDE_TAGS" | "ACCESSIBILITY_SET_MESSAGE_GROUP_SPACING" | "ACCESSIBILITY_SET_PREFERS_REDUCED_MOTION" | "ACCESSIBILITY_SET_ROLE_STYLE" | "ACCESSIBILITY_SET_SATURATION" | "ACCESSIBILITY_SET_SYNC_FORCED_COLORS" | "ACCESSIBILITY_SET_ZOOM" | "ACCESSIBILITY_SUBMIT_BUTTON_TOGGLE" | "ACCESSIBILITY_SYNC_PROFILE_THEME_WITH_USER_THEME_TOGGLE" | "ACCESSIBILITY_SYSTEM_COLOR_PREFERENCES_CHANGED" | "ACCESSIBILITY_SYSTEM_PREFERS_CONTRAST_CHANGED" | "ACCESSIBILITY_SYSTEM_PREFERS_CROSSFADES_CHANGED" | "ACCESSIBILITY_SYSTEM_PREFERS_REDUCED_MOTION_CHANGED" | "ACK_APPROVED_GUILD_JOIN_REQUEST" | "ACKNOWLEDGE_CHANNEL_SAFETY_WARNING_TOOLTIP" | "ACTIVE_BOGO_PROMOTION_FETCH" | "ACTIVE_BOGO_PROMOTION_FETCH_FAIL" | "ACTIVE_BOGO_PROMOTION_FETCH_SUCCESS" | "ACTIVE_CHANNELS_FETCH_FAILURE" | "ACTIVE_CHANNELS_FETCH_START" | "ACTIVE_CHANNELS_FETCH_SUCCESS" | "ACTIVE_OUTBOUND_PROMOTIONS_FETCH" | "ACTIVE_OUTBOUND_PROMOTIONS_FETCH_FAIL" | "ACTIVE_OUTBOUND_PROMOTIONS_FETCH_SUCCESS" | "ACTIVITIES_WHATS_NEW_ACKNOWLEDGE_SECTION" | "ACTIVITIES_WHATS_NEW_MARK_OPENED_SECTION" | "ACTIVITY_INVITE_EDUCATION_DISMISS" | "ACTIVITY_INVITE_MODAL_CLOSE" | "ACTIVITY_INVITE_MODAL_OPEN" | "ACTIVITY_INVITE_MODAL_QUERY" | "ACTIVITY_INVITE_MODAL_SEND" | "ACTIVITY_JOIN" | "ACTIVITY_JOIN_FAILED" | "ACTIVITY_JOIN_LOADING" | "ACTIVITY_LAUNCH_FAIL" | "ACTIVITY_LAYOUT_MODE_UPDATE" | "ACTIVITY_METADATA_UPDATE" | "ACTIVITY_PLAY" | "ACTIVITY_SCREEN_ORIENTATION_UPDATE" | "ACTIVITY_START" | "ACTIVITY_SYNC" | "ACTIVITY_SYNC_STOP" | "ACTIVITY_UPDATE_FAIL" | "ACTIVITY_UPDATE_START" | "ACTIVITY_UPDATE_SUCCESS" | "ADD_STICKER_PREVIEW" | "ADMIN_ONBOARDING_GUIDE_HIDE" | "ADYEN_CASH_APP_PAY_SUBMIT_SUCCESS" | "ADYEN_CREATE_CASH_APP_PAY_COMPONENT_SUCCESS" | "ADYEN_CREATE_CLIENT_SUCCESS" | "ADYEN_TEARDOWN_CLIENT" | "AFK" | "AGE_GATE_FAILURE_MODAL_OPEN" | "AGE_GATE_LOGOUT_UNDERAGE_NEW_USER" | "AGE_GATE_MODAL_CLOSE" | "AGE_GATE_MODAL_OPEN" | "AGE_GATE_PREVENT_UNDERAGE_REGISTRATION" | "AGE_GATE_SUCCESS_MODAL_OPEN" | "ANALYTICS_LOG_CLEAR" | "APP_ICON_EDITOR_CLOSE" | "APP_ICON_EDITOR_OPEN" | "APP_ICON_EDITOR_RESET" | "APP_ICON_TRACK_IMPRESSION" | "APP_ICON_UPDATED" | "APP_LAUNCHER_DISMISS" | "APP_LAUNCHER_SET_ACTIVE_COMMAND" | "APP_LAUNCHER_SHOW" | "APP_RECOMMENDATIONS_FETCH_RECOMMENDATIONS" | "APP_RECOMMENDATIONS_FETCH_RECOMMENDATIONS_FAILURE" | "APP_RECOMMENDATIONS_FETCH_RECOMMENDATIONS_SUCCESS" | "APP_STATE_UPDATE" | "APP_VIEW_SET_HOME_LINK" | "APPLICATION_ACTIVITY_STATISTICS_FETCH_FAIL" | "APPLICATION_ACTIVITY_STATISTICS_FETCH_START" | "APPLICATION_ACTIVITY_STATISTICS_FETCH_SUCCESS" | "APPLICATION_ASSETS_FETCH" | "APPLICATION_ASSETS_FETCH_SUCCESS" | "APPLICATION_ASSETS_UPDATE" | "APPLICATION_BRANCHES_FETCH_FAIL" | "APPLICATION_BRANCHES_FETCH_SUCCESS" | "APPLICATION_BUILD_FETCH_START" | "APPLICATION_BUILD_FETCH_SUCCESS" | "APPLICATION_BUILD_NOT_FOUND" | "APPLICATION_BUILD_SIZE_FETCH_FAIL" | "APPLICATION_BUILD_SIZE_FETCH_START" | "APPLICATION_BUILD_SIZE_FETCH_SUCCESS" | "APPLICATION_COMMAND_AUTOCOMPLETE_REQUEST" | "APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE" | "APPLICATION_COMMAND_EXECUTE_BAD_VERSION" | "APPLICATION_COMMAND_INDEX_FETCH_FAILURE" | "APPLICATION_COMMAND_INDEX_FETCH_REQUEST" | "APPLICATION_COMMAND_INDEX_FETCH_SUCCESS" | "APPLICATION_COMMAND_SET_ACTIVE_COMMAND" | "APPLICATION_COMMAND_SET_PREFERRED_COMMAND" | "APPLICATION_COMMAND_UPDATE_CHANNEL_STATE" | "APPLICATION_COMMAND_UPDATE_OPTIONS" | "APPLICATION_COMMAND_USED" | "APPLICATION_DIRECTORY_FETCH_APPLICATION" | "APPLICATION_DIRECTORY_FETCH_APPLICATION_FAILURE" | "APPLICATION_DIRECTORY_FETCH_APPLICATION_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_CATEGORIES_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_COLLECTIONS" | "APPLICATION_DIRECTORY_FETCH_COLLECTIONS_FAILURE" | "APPLICATION_DIRECTORY_FETCH_COLLECTIONS_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_SEARCH" | "APPLICATION_DIRECTORY_FETCH_SEARCH_FAILURE" | "APPLICATION_DIRECTORY_FETCH_SEARCH_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_SIMILAR_APPLICATIONS" | "APPLICATION_DIRECTORY_FETCH_SIMILAR_APPLICATIONS_FAILURE" | "APPLICATION_DIRECTORY_FETCH_SIMILAR_APPLICATIONS_SUCCESS" | "APPLICATION_FETCH" | "APPLICATION_FETCH_FAIL" | "APPLICATION_FETCH_SUCCESS" | "APPLICATION_STORE_ACCEPT_EULA" | "APPLICATION_STORE_ACCEPT_STORE_TERMS" | "APPLICATION_STORE_CLEAR_DATA" | "APPLICATION_STORE_DIRECTORY_LAYOUT_FETCH_FAILED" | "APPLICATION_STORE_DIRECTORY_LAYOUT_FETCH_SUCCESS" | "APPLICATION_STORE_DIRECTORY_LAYOUT_FETCHING" | "APPLICATION_STORE_LOCATION_CHANGE" | "APPLICATION_STORE_MATURE_AGREE" | "APPLICATION_STORE_RESET_NAVIGATION" | "APPLICATION_SUBSCRIPTIONS_CHANNEL_NOTICE_DISMISSED" | "APPLICATION_SUBSCRIPTIONS_FETCH_ENTITLEMENTS" | "APPLICATION_SUBSCRIPTIONS_FETCH_ENTITLEMENTS_FAILURE" | "APPLICATION_SUBSCRIPTIONS_FETCH_ENTITLEMENTS_SUCCESS" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTING_FOR_PLAN_SUCCESS" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTINGS" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTINGS_FAILURE" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTINGS_SUCCESS" | "APPLICATION_UPDATE" | "APPLICATIONS_FETCH" | "APPLICATIONS_FETCH_FAIL" | "APPLICATIONS_FETCH_SUCCESS" | "APPLICATIONS_SHELF_FETCH_FAIL" | "APPLICATIONS_SHELF_FETCH_START" | "APPLICATIONS_SHELF_FETCH_SUCCESS" | "APPLIED_BOOSTS_COOLDOWN_FETCH_SUCCESS" | "APPLIED_GUILD_BOOST_COUNT_UPDATE" | "AUDIO_INPUT_DETECTED" | "AUDIO_RESET" | "AUDIO_SET_ATTENUATION" | "AUDIO_SET_AUTOMATIC_GAIN_CONTROL" | "AUDIO_SET_DEBUG_LOGGING" | "AUDIO_SET_DISPLAY_SILENCE_WARNING" | "AUDIO_SET_ECHO_CANCELLATION" | "AUDIO_SET_INPUT_DEVICE" | "AUDIO_SET_INPUT_VOLUME" | "AUDIO_SET_LOCAL_PAN" | "AUDIO_SET_LOCAL_VIDEO_DISABLED" | "AUDIO_SET_LOCAL_VOLUME" | "AUDIO_SET_LOOPBACK" | "AUDIO_SET_MODE" | "AUDIO_SET_NOISE_CANCELLATION" | "AUDIO_SET_NOISE_SUPPRESSION" | "AUDIO_SET_OUTPUT_DEVICE" | "AUDIO_SET_OUTPUT_VOLUME" | "AUDIO_SET_QOS" | "AUDIO_SET_SELF_MUTE" | "AUDIO_SET_SIDECHAIN_COMPRESSION" | "AUDIO_SET_SIDECHAIN_COMPRESSION_STRENGTH" | "AUDIO_SET_SUBSYSTEM" | "AUDIO_SET_TEMPORARY_SELF_MUTE" | "AUDIO_TOGGLE_LOCAL_MUTE" | "AUDIO_TOGGLE_LOCAL_SOUNDBOARD_MUTE" | "AUDIO_TOGGLE_SELF_DEAF" | "AUDIO_TOGGLE_SELF_MUTE" | "AUDIO_VOLUME_CHANGE" | "AUDIT_LOG_FETCH_FAIL" | "AUDIT_LOG_FETCH_NEXT_PAGE_FAIL" | "AUDIT_LOG_FETCH_NEXT_PAGE_START" | "AUDIT_LOG_FETCH_NEXT_PAGE_SUCCESS" | "AUDIT_LOG_FETCH_START" | "AUDIT_LOG_FETCH_SUCCESS" | "AUDIT_LOG_FILTER_BY_ACTION" | "AUDIT_LOG_FILTER_BY_TARGET" | "AUDIT_LOG_FILTER_BY_USER" | "AUTH_INVITE_UPDATE" | "AUTH_SESSION_CHANGE" | "AUTHENTICATOR_CREATE" | "AUTHENTICATOR_DELETE" | "AUTHENTICATOR_UPDATE" | "AUTO_MODERATION_MENTION_RAID_DETECTION" | "AUTO_MODERATION_MENTION_RAID_NOTICE_DISMISS" | "BACKGROUND_SYNC" | "BACKGROUND_SYNC_CHANNEL_MESSAGES" | "BASIC_GUILD_FETCH" | "BASIC_GUILD_FETCH_FAILURE" | "BASIC_GUILD_FETCH_SUCCESS" | "BILLING_CREATE_REFERRAL_PREVIEW_FAIL" | "BILLING_CREATE_REFERRAL_PREVIEW_START" | "BILLING_CREATE_REFERRAL_PREVIEW_SUCCESS" | "BILLING_CREATE_REFERRAL_SUCCESS" | "BILLING_GET_REFERRAL_INCENTIVE_STATUS_FAIL" | "BILLING_GET_REFERRAL_INCENTIVE_STATUS_START" | "BILLING_GET_REFERRAL_INCENTIVE_STATUS_SUCCESS" | "BILLING_IP_COUNTRY_CODE_FAILURE" | "BILLING_IP_COUNTRY_CODE_FETCH_START" | "BILLING_LOCALIZED_PRICING_PROMO_FAILURE" | "BILLING_MOST_RECENT_SUBSCRIPTION_FETCH_SUCCESS" | "BILLING_NITRO_AFFINITY_FETCH_SUCCEEDED" | "BILLING_NITRO_AFFINITY_FETCHED" | "BILLING_PAYMENT_FETCH_SUCCESS" | "BILLING_PAYMENT_SOURCE_CREATE_FAIL" | "BILLING_PAYMENT_SOURCE_CREATE_START" | "BILLING_PAYMENT_SOURCE_CREATE_SUCCESS" | "BILLING_PAYMENT_SOURCE_FETCH_SUCCESS" | "BILLING_PAYMENT_SOURCE_REMOVE_CLEAR_ERROR" | "BILLING_PAYMENT_SOURCE_REMOVE_FAIL" | "BILLING_PAYMENT_SOURCE_REMOVE_START" | "BILLING_PAYMENT_SOURCE_REMOVE_SUCCESS" | "BILLING_PAYMENT_SOURCE_UPDATE_CLEAR_ERROR" | "BILLING_PAYMENT_SOURCE_UPDATE_FAIL" | "BILLING_PAYMENT_SOURCE_UPDATE_START" | "BILLING_PAYMENT_SOURCE_UPDATE_SUCCESS" | "BILLING_PAYMENT_SOURCES_FETCH_FAIL" | "BILLING_PAYMENT_SOURCES_FETCH_START" | "BILLING_PAYMENT_SOURCES_FETCH_SUCCESS" | "BILLING_PAYMENTS_FETCH_SUCCESS" | "BILLING_PERKS_RELEVANCE_FETCH_FAIL" | "BILLING_PERKS_RELEVANCE_FETCH_START" | "BILLING_PERKS_RELEVANCE_FETCH_SUCCESS" | "BILLING_POPUP_BRIDGE_CALLBACK" | "BILLING_POPUP_BRIDGE_STATE_UPDATE" | "BILLING_PREVIOUS_PREMIUM_SUBSCRIPTION_FETCH_SUCCESS" | "BILLING_PURCHASE_TOKEN_AUTH_CLEAR_STATE" | "BILLING_REFERRAL_RESOLVE_FAIL" | "BILLING_REFERRAL_RESOLVE_SUCCESS" | "BILLING_REFERRAL_TRIAL_OFFER_UPDATE" | "BILLING_REFERRALS_REMAINING_FETCH_FAIL" | "BILLING_REFERRALS_REMAINING_FETCH_START" | "BILLING_REFERRALS_REMAINING_FETCH_SUCCESS" | "BILLING_SET_IP_COUNTRY_CODE" | "BILLING_SET_LOCALIZED_PRICING_PROMO" | "BILLING_SUBSCRIPTION_CANCEL_FAIL" | "BILLING_SUBSCRIPTION_CANCEL_START" | "BILLING_SUBSCRIPTION_CANCEL_SUCCESS" | "BILLING_SUBSCRIPTION_FETCH_FAIL" | "BILLING_SUBSCRIPTION_FETCH_START" | "BILLING_SUBSCRIPTION_FETCH_SUCCESS" | "BILLING_SUBSCRIPTION_RESET" | "BILLING_SUBSCRIPTION_UPDATE_FAIL" | "BILLING_SUBSCRIPTION_UPDATE_START" | "BILLING_SUBSCRIPTION_UPDATE_SUCCESS" | "BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS" | "BILLING_USER_OFFER_FETCH_FAIL" | "BILLING_USER_OFFER_FETCH_START" | "BILLING_USER_OFFER_FETCH_SUCCESS" | "BILLING_USER_TRIAL_OFFER_ACKNOWLEDGED_SUCCESS" | "BILLING_USER_TRIAL_OFFER_FETCH_SUCCESS" | "BLOCKED_DOMAIN_LIST_FETCHED" | "BOOSTED_GUILD_GRACE_PERIOD_NOTICE_DISMISS" | "BRAINTREE_CREATE_CLIENT_SUCCESS" | "BRAINTREE_CREATE_PAYPAL_CLIENT_SUCCESS" | "BRAINTREE_CREATE_VENMO_CLIENT_SUCCESS" | "BRAINTREE_TEARDOWN_PAYPAL_CLIENT" | "BRAINTREE_TEARDOWN_VENMO_CLIENT" | "BRAINTREE_TOKENIZE_PAYPAL_FAIL" | "BRAINTREE_TOKENIZE_PAYPAL_START" | "BRAINTREE_TOKENIZE_PAYPAL_SUCCESS" | "BRAINTREE_TOKENIZE_VENMO_FAIL" | "BRAINTREE_TOKENIZE_VENMO_START" | "BRAINTREE_TOKENIZE_VENMO_SUCCESS" | "BROADCAST_START" | "BROADCAST_STOP" | "BROADCAST_VIEWERS_UPDATE" | "BROADCASTER_BUCKETS_RECEIVED" | "BROWSER_HANDOFF_BEGIN" | "BROWSER_HANDOFF_FROM_APP" | "BROWSER_HANDOFF_SET_USER" | "BROWSER_HANDOFF_UNAVAILABLE" | "BUILD_OVERRIDE_RESOLVED" | "BULK_ACK" | "BULK_CLEAR_RECENTS" | "BURST_REACTION_ANIMATION_ADD" | "BURST_REACTION_EFFECT_CLEAR" | "BURST_REACTION_EFFECT_PLAY" | "BURST_REACTION_PICKER_ANIMATION_ADD" | "BURST_REACTION_PICKER_ANIMATION_CLEAR" | "CACHE_LOADED" | "CACHE_LOADED_LAZY" | "CACHE_LOADED_LAZY_NO_CACHE" | "CACHED_EMOJIS_LOADED" | "CACHED_STICKERS_LOADED" | "CALL_CHAT_TOASTS_SET_ENABLED" | "CALL_CONNECT" | "CALL_CONNECT_MULTIPLE" | "CALL_CREATE" | "CALL_DELETE" | "CALL_ENQUEUE_RING" | "CALL_UPDATE" | "CAMPAIGN_CONTEXT_FETCH" | "CAMPAIGN_CONTEXT_FETCH_FAILURE" | "CAMPAIGN_CONTEXT_FETCH_SUCCESS" | "CANDIDATE_GAMES_CHANGE" | "CATEGORY_COLLAPSE" | "CATEGORY_COLLAPSE_ALL" | "CATEGORY_EXPAND" | "CATEGORY_EXPAND_ALL" | "CERTIFIED_DEVICES_SET" | "CHANGE_LOG_FETCH_FAILED" | "CHANGE_LOG_FETCH_SUCCESS" | "CHANGE_LOG_LOCK" | "CHANGE_LOG_MARK_SEEN" | "CHANGE_LOG_SET_CONFIG" | "CHANGE_LOG_SET_OVERRIDE" | "CHANGE_LOG_UNLOCK" | "CHANNEL_ACK" | "CHANNEL_CALL_POPOUT_WINDOW_OPEN" | "CHANNEL_COLLAPSE" | "CHANNEL_CREATE" | "CHANNEL_DELETE" | "CHANNEL_FOLLOWER_CREATED" | "CHANNEL_FOLLOWER_STATS_FETCH_FAILURE" | "CHANNEL_FOLLOWER_STATS_FETCH_SUCCESS" | "CHANNEL_FOLLOWING_PUBLISH_BUMP_DISMISSED" | "CHANNEL_FOLLOWING_PUBLISH_BUMP_HIDE_PERMANENTLY" | "CHANNEL_LOCAL_ACK" | "CHANNEL_MUTE_EXPIRED" | "CHANNEL_PINS_ACK" | "CHANNEL_PINS_UPDATE" | "CHANNEL_PRELOAD" | "CHANNEL_RECIPIENT_ADD" | "CHANNEL_RECIPIENT_REMOVE" | "CHANNEL_RTC_ACTIVE_CHANNELS" | "CHANNEL_RTC_SELECT_PARTICIPANT" | "CHANNEL_RTC_UPDATE_CHAT_OPEN" | "CHANNEL_RTC_UPDATE_LAYOUT" | "CHANNEL_RTC_UPDATE_PARTICIPANTS_OPEN" | "CHANNEL_RTC_UPDATE_STAGE_STREAM_SIZE" | "CHANNEL_RTC_UPDATE_STAGE_VIDEO_LIMIT_BOOST_UPSELL_DISMISSED" | "CHANNEL_RTC_UPDATE_VOICE_PARTICIPANTS_HIDDEN" | "CHANNEL_SAFETY_WARNING_FEEDBACK" | "CHANNEL_SELECT" | "CHANNEL_SETTINGS_CLOSE" | "CHANNEL_SETTINGS_INIT" | "CHANNEL_SETTINGS_LOADED_INVITES" | "CHANNEL_SETTINGS_OPEN" | "CHANNEL_SETTINGS_OVERWRITE_SELECT" | "CHANNEL_SETTINGS_PERMISSIONS_INIT" | "CHANNEL_SETTINGS_PERMISSIONS_SAVE_SUCCESS" | "CHANNEL_SETTINGS_PERMISSIONS_SELECT_PERMISSION" | "CHANNEL_SETTINGS_PERMISSIONS_SET_ADVANCED_MODE" | "CHANNEL_SETTINGS_PERMISSIONS_SUBMITTING" | "CHANNEL_SETTINGS_PERMISSIONS_UPDATE_PERMISSION" | "CHANNEL_SETTINGS_SET_SECTION" | "CHANNEL_SETTINGS_SUBMIT" | "CHANNEL_SETTINGS_SUBMIT_FAILURE" | "CHANNEL_SETTINGS_SUBMIT_SUCCESS" | "CHANNEL_SETTINGS_UPDATE" | "CHANNEL_STATUSES" | "CHANNEL_TOGGLE_MEMBERS_SECTION" | "CHANNEL_TOGGLE_SUMMARIES_SECTION" | "CHANNEL_UPDATES" | "CHECK_LAUNCHABLE_GAME" | "CHECKING_FOR_UPDATES" | "CHECKOUT_RECOVERY_STATUS_FETCH" | "CHECKOUT_RECOVERY_STATUS_FETCH_FAILURE" | "CHECKOUT_RECOVERY_STATUS_FETCH_SUCCESS" | "CLAN_SETTINGS_FETCH_START" | "CLAN_SETTINGS_FETCH_SUCCESS" | "CLAN_SETTINGS_SUBMIT" | "CLAN_SETTINGS_SUBMIT_ERROR" | "CLAN_SETTINGS_SUBMIT_SUCCESS" | "CLAN_SETTINGS_UPDATE" | "CLAN_SETUP_ERROR" | "CLAN_SETUP_RESET" | "CLAN_SETUP_SUBMIT" | "CLAN_SETUP_SUCCESS" | "CLAN_SETUP_UPDATE" | "CLEAR_AUTHENTICATION_ERRORS" | "CLEAR_CACHES" | "CLEAR_CHANNEL_SAFETY_WARNINGS" | "CLEAR_CONVERSATION_SUMMARIES" | "CLEAR_GRAVITY_READ_STATES" | "CLEAR_HANG_STATUS" | "CLEAR_INTERACTION_MODAL_STATE" | "CLEAR_LAST_SESSION_VOICE_CHANNEL_ID" | "CLEAR_MENTIONS" | "CLEAR_MESSAGES" | "CLEAR_OLDEST_UNREAD_MESSAGE" | "CLEAR_PENDING_CHANNEL_AND_ROLE_UPDATES" | "CLEAR_REMOTE_DISCONNECT_VOICE_CHANNEL_ID" | "CLEAR_STICKER_PREVIEW" | "CLIENT_THEMES_EDITOR_CLOSE" | "CLIENT_THEMES_EDITOR_OPEN" | "CLIPS_CLASSIFY_HARDWARE" | "CLIPS_CLEAR_CLIPS_SESSION" | "CLIPS_CLEAR_NEW_CLIP_IDS" | "CLIPS_DELETE_CLIP" | "CLIPS_DISMISS_EDUCATION" | "CLIPS_INIT" | "CLIPS_INIT_FAILURE" | "CLIPS_LOAD_DIRECTORY_SUCCESS" | "CLIPS_RESTART" | "CLIPS_SAVE_ANIMATION_END" | "CLIPS_SAVE_CLIP" | "CLIPS_SAVE_CLIP_ERROR" | "CLIPS_SAVE_CLIP_PLACEHOLDER" | "CLIPS_SAVE_CLIP_PLACEHOLDER_ERROR" | "CLIPS_SAVE_CLIP_START" | "CLIPS_SETTINGS_UPDATE" | "CLIPS_SHOW_CALL_WARNING" | "CLIPS_UPDATE_METADATA" | "CLOSE_SUSPENDED_USER" | "COLLECTIBLES_CATEGORIES_FETCH" | "COLLECTIBLES_CATEGORIES_FETCH_FAILURE" | "COLLECTIBLES_CATEGORIES_FETCH_SUCCESS" | "COLLECTIBLES_CATEGORY_ITEMS_VIEWED" | "COLLECTIBLES_CLAIM" | "COLLECTIBLES_CLAIM_FAILURE" | "COLLECTIBLES_CLAIM_SUCCESS" | "COLLECTIBLES_MARKETING_FETCH" | "COLLECTIBLES_MARKETING_FETCH_SUCCESS" | "COLLECTIBLES_PRODUCT_DETAILS_OPEN" | "COLLECTIBLES_PRODUCT_FETCH" | "COLLECTIBLES_PRODUCT_FETCH_FAILURE" | "COLLECTIBLES_PRODUCT_FETCH_SUCCESS" | "COLLECTIBLES_PURCHASES_FETCH" | "COLLECTIBLES_PURCHASES_FETCH_FAILURE" | "COLLECTIBLES_PURCHASES_FETCH_SUCCESS" | "COLLECTIBLES_SHOP_CLOSE" | "COLLECTIBLES_SHOP_OPEN" | "COMMANDS_MIGRATION_NOTICE_DISMISSED" | "COMMANDS_MIGRATION_OVERVIEW_TOOLTIP_DISMISSED" | "COMMANDS_MIGRATION_TOGGLE_TOOLTIP_DISMISSED" | "COMMANDS_MIGRATION_UPDATE_SUCCESS" | "COMPLETE_NEW_MEMBER_ACTION" | "COMPLETE_SIGN_UP" | "CONNECTED_DEVICE_IGNORE" | "CONNECTED_DEVICE_NEVER_SHOW_MODAL" | "CONNECTED_DEVICE_SET" | "CONNECTION_CLOSED" | "CONNECTION_OPEN" | "CONNECTION_OPEN_SUPPLEMENTAL" | "CONNECTION_RESUMED" | "CONNECTIONS_GRID_MODAL_HIDE" | "CONNECTIONS_GRID_MODAL_SHOW" | "CONSOLE_COMMAND_UPDATE" | "CONTENT_INVENTORY_CLEAR_DELETE_HISTORY_ERROR" | "CONTENT_INVENTORY_CLEAR_FEED" | "CONTENT_INVENTORY_DEBUG_CLEAR_IMPRESSIONS" | "CONTENT_INVENTORY_DEBUG_LOG_IMPRESSIONS" | "CONTENT_INVENTORY_DEBUG_TOGGLE_FAST_IMPRESSION_CAPPING" | "CONTENT_INVENTORY_DEBUG_TOGGLE_IMPRESSION_CAPPING" | "CONTENT_INVENTORY_DELETE_OUTBOX_ENTRY_FAILURE" | "CONTENT_INVENTORY_DELETE_OUTBOX_ENTRY_START" | "CONTENT_INVENTORY_DELETE_OUTBOX_ENTRY_SUCCESS" | "CONTENT_INVENTORY_FETCH_OUTBOX_FAILURE" | "CONTENT_INVENTORY_FETCH_OUTBOX_START" | "CONTENT_INVENTORY_FETCH_OUTBOX_SUCCESS" | "CONTENT_INVENTORY_INBOX_STALE" | "CONTENT_INVENTORY_MANUAL_REFRESH" | "CONTENT_INVENTORY_SET_FEED" | "CONTENT_INVENTORY_SET_FEED_STATE" | "CONTENT_INVENTORY_SET_FILTERS" | "CONTENT_INVENTORY_TOGGLE_FEED_HIDDEN" | "CONTENT_INVENTORY_TRACK_ITEM_IMPRESSIONS" | "CONTEXT_MENU_CLOSE" | "CONTEXT_MENU_OPEN" | "CONVERSATION_SUMMARY_UPDATE" | "CREATE_PENDING_REPLY" | "CREATE_REFERRALS_SUCCESS" | "CREATE_SHALLOW_PENDING_REPLY" | "CREATOR_MONETIZATION_NAG_ACTIVATE_ELIGIBLITY_FETCH_SUCCESS" | "CREATOR_MONETIZATION_PRICE_TIERS_FETCH" | "CREATOR_MONETIZATION_PRICE_TIERS_FETCH_FAILURE" | "CREATOR_MONETIZATION_PRICE_TIERS_FETCH_SUCCESS" | "CURRENT_BUILD_OVERRIDE_RESOLVED" | "CURRENT_USER_UPDATE" | "DCF_DAILY_CAP_OVERRIDE" | "DCF_HANDLE_DC_DISMISSED" | "DCF_HANDLE_DC_SHOWN" | "DCF_RESET" | "DECAY_READ_STATES" | "DELETE_INVALID_HANG_STATUSES" | "DELETE_PENDING_REPLY" | "DELETE_SUMMARY" | "DELETED_ENTITY_IDS" | "DETECTABLE_GAME_SUPPLEMENTAL_FETCH" | "DETECTABLE_GAME_SUPPLEMENTAL_FETCH_FAILURE" | "DETECTABLE_GAME_SUPPLEMENTAL_FETCH_SUCCESS" | "DETECTED_OFF_PLATFORM_PREMIUM_PERKS_DISMISS" | "DEV_TOOLS_DESIGN_TOGGLE_SET" | "DEV_TOOLS_DESIGN_TOGGLE_WEB_SET" | "DEV_TOOLS_DEV_SETTING_SET" | "DEV_TOOLS_SETTINGS_UPDATE" | "DEVELOPER_ACTIVITY_SHELF_FETCH_FAIL" | "DEVELOPER_ACTIVITY_SHELF_FETCH_START" | "DEVELOPER_ACTIVITY_SHELF_FETCH_SUCCESS" | "DEVELOPER_ACTIVITY_SHELF_MARK_ACTIVITY_USED" | "DEVELOPER_ACTIVITY_SHELF_SET_ACTIVITY_URL_OVERRIDE" | "DEVELOPER_ACTIVITY_SHELF_TOGGLE_USE_ACTIVITY_URL_OVERRIDE" | "DEVELOPER_ACTIVITY_SHELF_UPDATE_FILTER" | "DEVELOPER_OPTIONS_UPDATE_SETTINGS" | "DEVELOPER_TEST_MODE_AUTHORIZATION_FAIL" | "DEVELOPER_TEST_MODE_AUTHORIZATION_START" | "DEVELOPER_TEST_MODE_AUTHORIZATION_SUCCESS" | "DEVELOPER_TEST_MODE_RESET" | "DEVELOPER_TEST_MODE_RESET_ERROR" | "DISABLE_AUTOMATIC_ACK" | "DISCOVER_CHECKLIST_FETCH_FAILURE" | "DISCOVER_CHECKLIST_FETCH_START" | "DISCOVER_CHECKLIST_FETCH_SUCCESS" | "DISCOVER_GUILDS_FETCH_FAILURE" | "DISCOVER_GUILDS_FETCH_START" | "DISCOVER_GUILDS_FETCH_SUCCESS" | "DISMISS_CHANNEL_SAFETY_WARNINGS" | "DISMISS_FAVORITE_SUGGESTION" | "DISMISS_MEDIA_POST_SHARE_PROMPT" | "DISMISS_SIGN_UP" | "DISPATCH_APPLICATION_ADD_TO_INSTALLATIONS" | "DISPATCH_APPLICATION_CANCEL" | "DISPATCH_APPLICATION_ERROR" | "DISPATCH_APPLICATION_INSTALL" | "DISPATCH_APPLICATION_INSTALL_SCRIPTS_PROGRESS_UPDATE" | "DISPATCH_APPLICATION_LAUNCH_SETUP_COMPLETE" | "DISPATCH_APPLICATION_LAUNCH_SETUP_START" | "DISPATCH_APPLICATION_MOVE_UP" | "DISPATCH_APPLICATION_REMOVE_FINISHED" | "DISPATCH_APPLICATION_REPAIR" | "DISPATCH_APPLICATION_STATE_UPDATE" | "DISPATCH_APPLICATION_UNINSTALL" | "DISPATCH_APPLICATION_UPDATE" | "DISPLAYED_INVITE_SHOW" | "DOMAIN_MIGRATION_FAILURE" | "DOMAIN_MIGRATION_SKIP" | "DOMAIN_MIGRATION_START" | "DRAFT_CHANGE" | "DRAFT_CLEAR" | "DRAFT_SAVE" | "DRAWER_CLOSE" | "DRAWER_OPEN" | "DRAWER_SELECT_TAB" | "DROPS_ELIGIBILITY_FETCH_SUCCESS" | "DROPS_ENROLLED_USER_FETCH_SUCCESS" | "DROPS_FETCH_PROGRESS_FAILURE" | "DROPS_FETCH_PROGRESS_SUCCESS" | "DROPS_HEARTBEAT_FAILURE" | "DROPS_HEARTBEAT_SUCCESS" | "DROPS_PLATFORM_AVAILABILITY_SUCCESS" | "DROPS_UNENROLL_USER" | "DROPS_USER_STATUS_FETCH_FAILURE" | "DROPS_USER_STATUS_FETCH_SUCCESS" | "EMAIL_SETTINGS_FETCH_SUCCESS" | "EMAIL_SETTINGS_UPDATE" | "EMAIL_SETTINGS_UPDATE_SUCCESS" | "EMBEDDED_ACTIVITY_CLOSE" | "EMBEDDED_ACTIVITY_DEFERRED_OPEN" | "EMBEDDED_ACTIVITY_DISCONNECT" | "EMBEDDED_ACTIVITY_DISMISS_NEW_INDICATOR" | "EMBEDDED_ACTIVITY_FETCH_SHELF" | "EMBEDDED_ACTIVITY_FETCH_SHELF_FAIL" | "EMBEDDED_ACTIVITY_FETCH_SHELF_SUCCESS" | "EMBEDDED_ACTIVITY_LAUNCH_FAIL" | "EMBEDDED_ACTIVITY_LAUNCH_START" | "EMBEDDED_ACTIVITY_LAUNCH_SUCCESS" | "EMBEDDED_ACTIVITY_OPEN" | "EMBEDDED_ACTIVITY_SET_CONFIG" | "EMBEDDED_ACTIVITY_SET_FOCUSED_LAYOUT" | "EMBEDDED_ACTIVITY_SET_ORIENTATION_LOCK_STATE" | "EMBEDDED_ACTIVITY_SET_PANEL_MODE" | "EMBEDDED_ACTIVITY_UPDATE" | "EMBEDDED_ACTIVITY_UPDATE_V2" | "EMOJI_AUTOSUGGESTION_UPDATE" | "EMOJI_CAPTIONS_FETCH" | "EMOJI_CAPTIONS_FETCH_ERROR" | "EMOJI_CAPTIONS_FETCH_SUCCESS" | "EMOJI_DELETE" | "EMOJI_FETCH_FAILURE" | "EMOJI_FETCH_SUCCESS" | "EMOJI_TRACK_USAGE" | "EMOJI_UPLOAD_START" | "EMOJI_UPLOAD_STOP" | "ENABLE_AUTOMATIC_ACK" | "ENABLE_GUILD_SIGN_UP" | "ENABLE_USER_SIGN_UP" | "ENTITLEMENT_CREATE" | "ENTITLEMENT_DELETE" | "ENTITLEMENT_FETCH_APPLICATION_FAIL" | "ENTITLEMENT_FETCH_APPLICATION_START" | "ENTITLEMENT_FETCH_APPLICATION_SUCCESS" | "ENTITLEMENT_UPDATE" | "ENTITLEMENTS_FETCH_FOR_USER_FAIL" | "ENTITLEMENTS_FETCH_FOR_USER_START" | "ENTITLEMENTS_FETCH_FOR_USER_SUCCESS" | "ENTITLEMENTS_GIFTABLE_FETCH_SUCCESS" | "EULA_FETCH_SUCCESS" | "EVENT_DIRECTORY_FETCH_FAILURE" | "EVENT_DIRECTORY_FETCH_START" | "EVENT_DIRECTORY_FETCH_SUCCESS" | "EXPERIMENT_OVERRIDE_BUCKET" | "EXPERIMENTS_FETCH" | "EXPERIMENTS_FETCH_FAILURE" | "EXPERIMENTS_FETCH_SUCCESS" | "FAMILY_CENTER_FETCH_START" | "FAMILY_CENTER_HANDLE_TAB_SELECT" | "FAMILY_CENTER_INITIAL_LOAD" | "FAMILY_CENTER_LINK_CODE_FETCH_SUCCESS" | "FAMILY_CENTER_LINKED_USERS_FETCH_SUCCESS" | "FAMILY_CENTER_REQUEST_LINK_REMOVE_SUCCESS" | "FAMILY_CENTER_REQUEST_LINK_SUCCESS" | "FAMILY_CENTER_REQUEST_LINK_UPDATE_SUCCESS" | "FAMILY_CENTER_TEEN_ACTIVITY_FETCH_SUCCESS" | "FAMILY_CENTER_TEEN_ACTIVITY_MORE_FETCH_SUCCESS" | "FETCH_AUTH_SESSIONS_SUCCESS" | "FETCH_CLAN_DISCOVERY_PROFILE_LIST_SUCCESS" | "FETCH_CLAN_DISCOVERY_SEARCH_RESULT_SUCCESS" | "FETCH_GUILD_EVENT" | "FETCH_GUILD_EVENTS_FOR_GUILD" | "FETCH_GUILD_MEMBER_SUPPLEMENTAL_SUCCESS" | "FETCH_INTEGRATION_APPLICATION_IDS_FOR_MY_GUILDS" | "FETCH_INTEGRATION_APPLICATION_IDS_FOR_MY_GUILDS_FAILURE" | "FETCH_INTEGRATION_APPLICATION_IDS_FOR_MY_GUILDS_SUCCESS" | "FETCH_PRIVATE_CHANNEL_INTEGRATIONS_FAIL" | "FETCH_PRIVATE_CHANNEL_INTEGRATIONS_START" | "FETCH_PRIVATE_CHANNEL_INTEGRATIONS_SUCCESS" | "FETCH_STATIC_CLAN_LIST_FAILURE" | "FETCH_STATIC_CLAN_LIST_START" | "FETCH_STATIC_CLAN_LIST_SUCCESS" | "FINGERPRINT" | "FORCE_INVISIBLE" | "FORGOT_PASSWORD_REQUEST" | "FORGOT_PASSWORD_SENT" | "FORUM_SEARCH_CLEAR" | "FORUM_SEARCH_FAILURE" | "FORUM_SEARCH_QUERY_UPDATED" | "FORUM_SEARCH_START" | "FORUM_SEARCH_SUCCESS" | "FORUM_UNREADS" | "FRIEND_INVITE_CREATE_FAILURE" | "FRIEND_INVITE_CREATE_REQUEST" | "FRIEND_INVITE_CREATE_SUCCESS" | "FRIEND_INVITE_REVOKE_REQUEST" | "FRIEND_INVITE_REVOKE_SUCCESS" | "FRIEND_INVITES_FETCH_REQUEST" | "FRIEND_INVITES_FETCH_RESPONSE" | "FRIEND_SUGGESTION_CREATE" | "FRIEND_SUGGESTION_DELETE" | "FRIENDS_SET_INITIAL_SECTION" | "FRIENDS_SET_SECTION" | "GAME_CLOUD_SYNC_COMPLETE" | "GAME_CLOUD_SYNC_CONFLICT" | "GAME_CLOUD_SYNC_ERROR" | "GAME_CLOUD_SYNC_START" | "GAME_CLOUD_SYNC_UPDATE" | "GAME_CONSOLE_FETCH_DEVICES_FAIL" | "GAME_CONSOLE_FETCH_DEVICES_START" | "GAME_CONSOLE_FETCH_DEVICES_SUCCESS" | "GAME_CONSOLE_SELECT_DEVICE" | "GAME_DETECTION_DEBUGGING_START" | "GAME_DETECTION_DEBUGGING_STOP" | "GAME_DETECTION_DEBUGGING_TICK" | "GAME_DETECTION_WATCH_CANDIDATE_GAMES_START" | "GAME_ICON_UPDATE" | "GAME_INVITE_CLEAR_UNSEEN" | "GAME_INVITE_CREATE" | "GAME_INVITE_DELETE" | "GAME_INVITE_DELETE_MANY" | "GAME_INVITE_UPDATE_STATUS" | "GAME_LAUNCH_FAIL" | "GAME_LAUNCH_START" | "GAME_LAUNCH_SUCCESS" | "GAME_LAUNCHABLE_UPDATE" | "GAME_PROFILE_GET_SIMILAR_GAMES_SUCCESS" | "GAME_PROFILE_OPEN" | "GAMES_DATABASE_FETCH" | "GAMES_DATABASE_FETCH_FAIL" | "GAMES_DATABASE_UPDATE" | "GENERIC_PUSH_NOTIFICATION_SENT" | "GIF_PICKER_INITIALIZE" | "GIF_PICKER_QUERY" | "GIF_PICKER_QUERY_FAILURE" | "GIF_PICKER_QUERY_SUCCESS" | "GIF_PICKER_SUGGESTIONS_SUCCESS" | "GIF_PICKER_TRENDING_FETCH_SUCCESS" | "GIF_PICKER_TRENDING_SEARCH_TERMS_SUCCESS" | "GIFT_CODE_CREATE" | "GIFT_CODE_CREATE_SUCCESS" | "GIFT_CODE_REDEEM" | "GIFT_CODE_REDEEM_FAILURE" | "GIFT_CODE_REDEEM_SUCCESS" | "GIFT_CODE_RESOLVE" | "GIFT_CODE_RESOLVE_FAILURE" | "GIFT_CODE_RESOLVE_SUCCESS" | "GIFT_CODE_REVOKE_SUCCESS" | "GIFT_CODE_UPDATE" | "GIFT_CODES_FETCH" | "GIFT_CODES_FETCH_FAILURE" | "GIFT_CODES_FETCH_SUCCESS" | "GRAVITY_ACK_ITEMS" | "GRAVITY_CUSTOM_SCORES_UPDATED" | "GRAVITY_FEEDBACK_GIVEN" | "GRAVITY_TAB_OPENED" | "GUILD_ACK" | "GUILD_ANALYTICS_ENGAGEMENT_OVERVIEW_FETCH_FAILURE" | "GUILD_ANALYTICS_ENGAGEMENT_OVERVIEW_FETCH_SUCCESS" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_OVERVIEW_FETCH_FAILURE" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_OVERVIEW_FETCH_SUCCESS" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_RETENTION_FETCH_FAILURE" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_RETENTION_FETCH_SUCCESS" | "GUILD_ANALYTICS_MEMBER_INSIGHTS_FETCH_SUCCESS" | "GUILD_APPLICATION_COMMAND_INDEX_UPDATE" | "GUILD_APPLICATIONS_FETCH_SUCCESS" | "GUILD_APPLIED_BOOSTS_FETCH_SUCCESS" | "GUILD_APPLY_BOOST_FAIL" | "GUILD_APPLY_BOOST_START" | "GUILD_APPLY_BOOST_SUCCESS" | "GUILD_BAN_ADD" | "GUILD_BAN_REMOVE" | "GUILD_BOOST_SLOT_CREATE" | "GUILD_BOOST_SLOT_UPDATE" | "GUILD_BOOST_SLOT_UPDATE_SUCCESS" | "GUILD_BOOST_SLOTS_FETCH_SUCCESS" | "GUILD_CREATE" | "GUILD_DELETE" | "GUILD_DIRECTORY_ADMIN_ENTRIES_FETCH_SUCCESS" | "GUILD_DIRECTORY_CACHED_SEARCH" | "GUILD_DIRECTORY_CATEGORY_SELECT" | "GUILD_DIRECTORY_COUNTS_FETCH_SUCCESS" | "GUILD_DIRECTORY_ENTRY_CREATE" | "GUILD_DIRECTORY_ENTRY_DELETE" | "GUILD_DIRECTORY_ENTRY_UPDATE" | "GUILD_DIRECTORY_FETCH_FAILURE" | "GUILD_DIRECTORY_FETCH_START" | "GUILD_DIRECTORY_FETCH_SUCCESS" | "GUILD_DIRECTORY_SEARCH_CLEAR" | "GUILD_DIRECTORY_SEARCH_FAILURE" | "GUILD_DIRECTORY_SEARCH_START" | "GUILD_DIRECTORY_SEARCH_SUCCESS" | "GUILD_DISCOVERY_CATEGORY_ADD" | "GUILD_DISCOVERY_CATEGORY_DELETE" | "GUILD_DISCOVERY_CATEGORY_FETCH_SUCCESS" | "GUILD_DISCOVERY_CATEGORY_UPDATE_FAIL" | "GUILD_DISCOVERY_CLEAR_SEARCH" | "GUILD_DISCOVERY_CLEAR_SEEN_GUILDS" | "GUILD_DISCOVERY_FETCH_FAILURE" | "GUILD_DISCOVERY_FETCH_START" | "GUILD_DISCOVERY_FETCH_SUCCESS" | "GUILD_DISCOVERY_GUILD_SEEN" | "GUILD_DISCOVERY_METADATA_FETCH_FAIL" | "GUILD_DISCOVERY_POPULAR_FETCH_FAILURE" | "GUILD_DISCOVERY_POPULAR_FETCH_START" | "GUILD_DISCOVERY_POPULAR_FETCH_SUCCESS" | "GUILD_DISCOVERY_SEARCH_COUNTS_FAIL" | "GUILD_DISCOVERY_SEARCH_FETCH_FAILURE" | "GUILD_DISCOVERY_SEARCH_FETCH_START" | "GUILD_DISCOVERY_SEARCH_FETCH_SUCCESS" | "GUILD_DISCOVERY_SEARCH_INIT" | "GUILD_DISCOVERY_SEARCH_UPDATE_COUNTS" | "GUILD_DISCOVERY_SELECT_CATEGORY" | "GUILD_DISCOVERY_SLUG_FETCH_FAIL" | "GUILD_DISCOVERY_SLUG_FETCH_SUCCESS" | "GUILD_EMOJIS_UPDATE" | "GUILD_FEATURE_ACK" | "GUILD_FOLDER_COLLAPSE" | "GUILD_FOLDER_CREATE_LOCAL" | "GUILD_FOLDER_DELETE_LOCAL" | "GUILD_FOLDER_EDIT_LOCAL" | "GUILD_GEO_RESTRICTED" | "GUILD_HOME_SETTINGS_FETCH_FAIL" | "GUILD_HOME_SETTINGS_FETCH_START" | "GUILD_HOME_SETTINGS_FETCH_SUCCESS" | "GUILD_HOME_SETTINGS_TOGGLE_ENABLED" | "GUILD_HOME_SETTINGS_UPDATE_FAIL" | "GUILD_HOME_SETTINGS_UPDATE_START" | "GUILD_HOME_SETTINGS_UPDATE_SUCCESS" | "GUILD_IDENTITY_SETTINGS_CLEAR_ERRORS" | "GUILD_IDENTITY_SETTINGS_INIT" | "GUILD_IDENTITY_SETTINGS_RESET_ALL_PENDING" | "GUILD_IDENTITY_SETTINGS_RESET_AND_CLOSE_FORM" | "GUILD_IDENTITY_SETTINGS_RESET_PENDING_MEMBER_CHANGES" | "GUILD_IDENTITY_SETTINGS_RESET_PENDING_PROFILE_CHANGES" | "GUILD_IDENTITY_SETTINGS_SET_GUILD" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_AVATAR" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_AVATAR_DECORATION" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_BANNER" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_BIO" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_NICKNAME" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_PROFILE_EFFECT_ID" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_PRONOUNS" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_THEME_COLORS" | "GUILD_IDENTITY_SETTINGS_SUBMIT" | "GUILD_IDENTITY_SETTINGS_SUBMIT_FAILURE" | "GUILD_IDENTITY_SETTINGS_SUBMIT_SUCCESS" | "GUILD_INTEGRATIONS_UPDATE" | "GUILD_JOIN" | "GUILD_JOIN_REQUEST_BY_ID_FETCH_SUCCESS" | "GUILD_JOIN_REQUEST_CREATE" | "GUILD_JOIN_REQUEST_DELETE" | "GUILD_JOIN_REQUEST_UPDATE" | "GUILD_JOIN_REQUESTS_BULK_ACTION" | "GUILD_JOIN_REQUESTS_FETCH_FAILURE" | "GUILD_JOIN_REQUESTS_FETCH_START" | "GUILD_JOIN_REQUESTS_FETCH_SUCCESS" | "GUILD_JOIN_REQUESTS_SET_APPLICATION_TAB" | "GUILD_JOIN_REQUESTS_SET_SELECTED" | "GUILD_JOIN_REQUESTS_SET_SORT_ORDER" | "GUILD_MEMBER_ADD" | "GUILD_MEMBER_LIST_UPDATE" | "GUILD_MEMBER_PROFILE_UPDATE" | "GUILD_MEMBER_REMOVE" | "GUILD_MEMBER_UPDATE" | "GUILD_MEMBER_UPDATE_LOCAL" | "GUILD_MEMBERS_CHUNK_BATCH" | "GUILD_MEMBERS_REQUEST" | "GUILD_MOVE_BY_ID" | "GUILD_MUTE_EXPIRED" | "GUILD_NEW_MEMBER_ACTION_UPDATE_SUCCESS" | "GUILD_NEW_MEMBER_ACTIONS_DELETE_SUCCESS" | "GUILD_NEW_MEMBER_ACTIONS_FETCH_FAIL" | "GUILD_NEW_MEMBER_ACTIONS_FETCH_START" | "GUILD_NEW_MEMBER_ACTIONS_FETCH_SUCCESS" | "GUILD_NSFW_AGREE" | "GUILD_ONBOARDING_COMPLETE" | "GUILD_ONBOARDING_PROMPTS_FETCH_FAILURE" | "GUILD_ONBOARDING_PROMPTS_FETCH_START" | "GUILD_ONBOARDING_PROMPTS_FETCH_SUCCESS" | "GUILD_ONBOARDING_PROMPTS_LOCAL_UPDATE" | "GUILD_ONBOARDING_SELECT_OPTION" | "GUILD_ONBOARDING_SET_STEP" | "GUILD_ONBOARDING_START" | "GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS" | "GUILD_POPOUT_FETCH_FAILURE" | "GUILD_POPOUT_FETCH_START" | "GUILD_POPOUT_FETCH_SUCCESS" | "GUILD_PRODUCT_CREATE" | "GUILD_PRODUCT_DELETE" | "GUILD_PRODUCT_FETCH" | "GUILD_PRODUCT_FETCH_FAILURE" | "GUILD_PRODUCT_FETCH_SUCCESS" | "GUILD_PRODUCT_UPDATE" | "GUILD_PRODUCTS_FETCH" | "GUILD_PRODUCTS_FETCH_FAILURE" | "GUILD_PRODUCTS_FETCH_SUCCESS" | "GUILD_PROGRESS_COMPLETED_SEEN" | "GUILD_PROGRESS_DISMISS" | "GUILD_PROGRESS_INITIALIZE" | "GUILD_PROMPT_VIEWED" | "GUILD_RECOMMENDATION_FETCH" | "GUILD_RECOMMENDATION_FETCH_FAILURE" | "GUILD_RECOMMENDATION_FETCH_SUCCESS" | "GUILD_RESOURCE_CHANNEL_UPDATE_SUCCESS" | "GUILD_ROLE_CONNECTION_ELIGIBILITY_FETCH_SUCCESS" | "GUILD_ROLE_CONNECTIONS_CONFIGURATIONS_FETCH_SUCCESS" | "GUILD_ROLE_CONNECTIONS_MODAL_SHOW" | "GUILD_ROLE_CREATE" | "GUILD_ROLE_DELETE" | "GUILD_ROLE_MEMBER_ADD" | "GUILD_ROLE_MEMBER_BULK_ADD" | "GUILD_ROLE_MEMBER_COUNT_FETCH_SUCCESS" | "GUILD_ROLE_MEMBER_COUNT_UPDATE" | "GUILD_ROLE_MEMBER_REMOVE" | "GUILD_ROLE_SUBSCRIPTIONS_CREATE_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_DELETE_GROUP_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_DELETE_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTING_FOR_PLAN" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTING_FOR_PLAN_SUCCESS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTINGS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTINGS_FAILURE" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTINGS_SUCCESS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS_ABORTED" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS_FAILURE" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS_SUCCESS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_TEMPLATES" | "GUILD_ROLE_SUBSCRIPTIONS_STASH_TEMPLATE_CHANNELS" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_GROUP_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_SUBSCRIPTION_TRIAL" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_SUBSCRIPTIONS_SETTINGS" | "GUILD_ROLE_UPDATE" | "GUILD_SCHEDULED_EVENT_CREATE" | "GUILD_SCHEDULED_EVENT_DELETE" | "GUILD_SCHEDULED_EVENT_EXCEPTION_CREATE" | "GUILD_SCHEDULED_EVENT_EXCEPTION_DELETE" | "GUILD_SCHEDULED_EVENT_EXCEPTION_UPDATE" | "GUILD_SCHEDULED_EVENT_EXCEPTIONS_DELETE" | "GUILD_SCHEDULED_EVENT_RSVPS_FETCH_SUCESS" | "GUILD_SCHEDULED_EVENT_UPDATE" | "GUILD_SCHEDULED_EVENT_USER_ADD" | "GUILD_SCHEDULED_EVENT_USER_COUNTS_FETCH_SUCCESS" | "GUILD_SCHEDULED_EVENT_USER_REMOVE" | "GUILD_SCHEDULED_EVENT_USERS_FETCH_SUCCESS" | "GUILD_SEARCH_RECENT_MEMBERS" | "GUILD_SETTINGS_CANCEL_CHANGES" | "GUILD_SETTINGS_CLOSE" | "GUILD_SETTINGS_DEFAULT_CHANNELS_RESET" | "GUILD_SETTINGS_DEFAULT_CHANNELS_SAVE_FAILED" | "GUILD_SETTINGS_DEFAULT_CHANNELS_SAVE_SUCCESS" | "GUILD_SETTINGS_DEFAULT_CHANNELS_SUBMIT" | "GUILD_SETTINGS_DEFAULT_CHANNELS_TOGGLE" | "GUILD_SETTINGS_INIT" | "GUILD_SETTINGS_LOADED_BANS" | "GUILD_SETTINGS_LOADED_BANS_BATCH" | "GUILD_SETTINGS_LOADED_INTEGRATIONS" | "GUILD_SETTINGS_LOADED_INVITES" | "GUILD_SETTINGS_ONBOARDING_ADD_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_ADD_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_DELETE_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_DELETE_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_DISMISS_RESOURCE_CHANNEL_SUGGESTION" | "GUILD_SETTINGS_ONBOARDING_EDUCATION_UPSELL_DISMISSED" | "GUILD_SETTINGS_ONBOARDING_HOME_SETTINGS_RESET" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_EDIT" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_ERRORS" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_RESET" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_SAVE_FAILED" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_SAVE_SUCCESS" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_SUBMIT" | "GUILD_SETTINGS_ONBOARDING_REORDER_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_REORDER_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_SET_MODE" | "GUILD_SETTINGS_ONBOARDING_STEP" | "GUILD_SETTINGS_ONBOARDING_UPDATE_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_UPDATE_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_UPDATE_WELCOME_MESSAGE" | "GUILD_SETTINGS_OPEN" | "GUILD_SETTINGS_ROLE_SELECT" | "GUILD_SETTINGS_ROLES_CLEAR_PERMISSIONS" | "GUILD_SETTINGS_ROLES_INIT" | "GUILD_SETTINGS_ROLES_SAVE_FAIL" | "GUILD_SETTINGS_ROLES_SAVE_SUCCESS" | "GUILD_SETTINGS_ROLES_SORT_UPDATE" | "GUILD_SETTINGS_ROLES_SUBMITTING" | "GUILD_SETTINGS_ROLES_UPDATE_COLOR" | "GUILD_SETTINGS_ROLES_UPDATE_DESCRIPTION" | "GUILD_SETTINGS_ROLES_UPDATE_NAME" | "GUILD_SETTINGS_ROLES_UPDATE_PERMISSION_SET" | "GUILD_SETTINGS_ROLES_UPDATE_PERMISSIONS" | "GUILD_SETTINGS_ROLES_UPDATE_ROLE_CONNECTION_CONFIGURATIONS" | "GUILD_SETTINGS_ROLES_UPDATE_ROLE_ICON" | "GUILD_SETTINGS_ROLES_UPDATE_SETTINGS" | "GUILD_SETTINGS_SAFETY_PAGE" | "GUILD_SETTINGS_SAFETY_SET_SUBSECTION" | "GUILD_SETTINGS_SAVE_ROUTE_STACK" | "GUILD_SETTINGS_SET_MFA_SUCCESS" | "GUILD_SETTINGS_SET_SEARCH_QUERY" | "GUILD_SETTINGS_SET_SECTION" | "GUILD_SETTINGS_SET_VANITY_URL" | "GUILD_SETTINGS_SET_WIDGET" | "GUILD_SETTINGS_SUBMIT" | "GUILD_SETTINGS_SUBMIT_FAILURE" | "GUILD_SETTINGS_SUBMIT_SUCCESS" | "GUILD_SETTINGS_UPDATE" | "GUILD_SETTINGS_VANITY_URL_CLOSE" | "GUILD_SETTINGS_VANITY_URL_ERROR" | "GUILD_SETTINGS_VANITY_URL_RESET" | "GUILD_SETTINGS_VANITY_URL_SET" | "GUILD_SOUNDBOARD_FETCH" | "GUILD_SOUNDBOARD_SOUND_CREATE" | "GUILD_SOUNDBOARD_SOUND_DELETE" | "GUILD_SOUNDBOARD_SOUND_PLAY_END" | "GUILD_SOUNDBOARD_SOUND_PLAY_LOCALLY" | "GUILD_SOUNDBOARD_SOUND_PLAY_START" | "GUILD_SOUNDBOARD_SOUND_UPDATE" | "GUILD_SOUNDBOARD_SOUNDS_UPDATE" | "GUILD_STICKERS_CREATE_SUCCESS" | "GUILD_STICKERS_FETCH_SUCCESS" | "GUILD_STICKERS_UPDATE" | "GUILD_STOP_LURKING" | "GUILD_STOP_LURKING_FAILURE" | "GUILD_SUBSCRIPTIONS" | "GUILD_SUBSCRIPTIONS_ADD_MEMBER_UPDATES" | "GUILD_SUBSCRIPTIONS_CHANNEL" | "GUILD_SUBSCRIPTIONS_FLUSH" | "GUILD_SUBSCRIPTIONS_MEMBERS_ADD" | "GUILD_SUBSCRIPTIONS_MEMBERS_REMOVE" | "GUILD_SUBSCRIPTIONS_REMOVE_MEMBER_UPDATES" | "GUILD_TEMPLATE_ACCEPT" | "GUILD_TEMPLATE_ACCEPT_FAILURE" | "GUILD_TEMPLATE_ACCEPT_SUCCESS" | "GUILD_TEMPLATE_CREATE_SUCCESS" | "GUILD_TEMPLATE_DELETE_SUCCESS" | "GUILD_TEMPLATE_DIRTY_TOOLTIP_HIDE" | "GUILD_TEMPLATE_DIRTY_TOOLTIP_REFRESH" | "GUILD_TEMPLATE_LOAD_FOR_GUILD_SUCCESS" | "GUILD_TEMPLATE_MODAL_HIDE" | "GUILD_TEMPLATE_MODAL_SHOW" | "GUILD_TEMPLATE_PROMOTION_TOOLTIP_HIDE" | "GUILD_TEMPLATE_RESOLVE" | "GUILD_TEMPLATE_RESOLVE_FAILURE" | "GUILD_TEMPLATE_RESOLVE_SUCCESS" | "GUILD_TEMPLATE_SYNC_SUCCESS" | "GUILD_TOGGLE_COLLAPSE_MUTED" | "GUILD_TOP_READ_CHANNELS_FETCH_SUCCESS" | "GUILD_UNAPPLY_BOOST_FAIL" | "GUILD_UNAPPLY_BOOST_START" | "GUILD_UNAPPLY_BOOST_SUCCESS" | "GUILD_UNAVAILABLE" | "GUILD_UPDATE" | "GUILD_UPDATE_DISCOVERY_METADATA" | "GUILD_UPDATE_DISCOVERY_METADATA_FAIL" | "GUILD_UPDATE_DISCOVERY_METADATA_FROM_SERVER" | "GUILD_VERIFICATION_CHECK" | "HABITUAL_DND_CLEAR" | "HD_STREAMING_VIEWER_UPDATE_LAST_TRIGGERED" | "HIDE_ACTION_SHEET" | "HIDE_ACTION_SHEET_QUICK_SWITCHER" | "HIDE_KEYBOARD_SHORTCUTS" | "HIGH_FIVE_COMPLETE" | "HIGH_FIVE_COMPLETE_CLEAR" | "HIGH_FIVE_QUEUE" | "HIGH_FIVE_REMOVE" | "HIGH_FIVE_SET_ENABLED" | "HOTSPOT_HIDE" | "HOTSPOT_OVERRIDE_CLEAR" | "HOTSPOT_OVERRIDE_SET" | "HUB_VERIFY_EMAIL_FAILURE" | "HUB_VERIFY_EMAIL_SUCCESS" | "HYPESQUAD_ONLINE_MEMBERSHIP_JOIN_SUCCESS" | "HYPESQUAD_ONLINE_MEMBERSHIP_LEAVE_SUCCESS" | "I18N_LOAD_ERROR" | "I18N_LOAD_START" | "I18N_LOAD_SUCCESS" | "IDLE" | "IMPERSONATE_STOP" | "IMPERSONATE_UPDATE" | "INBOX_OPEN" | "INCOMING_CALL_MOVE" | "INITIALIZE_MEMBER_SAFETY_STORE" | "INSTALLATION_LOCATION_ADD" | "INSTALLATION_LOCATION_FETCH_METADATA" | "INSTALLATION_LOCATION_REMOVE" | "INSTALLATION_LOCATION_UPDATE" | "INSTANT_INVITE_CLEAR" | "INSTANT_INVITE_CREATE" | "INSTANT_INVITE_CREATE_FAILURE" | "INSTANT_INVITE_CREATE_SUCCESS" | "INSTANT_INVITE_REVOKE_SUCCESS" | "INTEGRATION_CREATE" | "INTEGRATION_DELETE" | "INTEGRATION_PERMISSION_SETTINGS_APPLICATION_PERMISSIONS_FETCH_FAILURE" | "INTEGRATION_PERMISSION_SETTINGS_CLEAR" | "INTEGRATION_PERMISSION_SETTINGS_COMMAND_UPDATE" | "INTEGRATION_PERMISSION_SETTINGS_COMMANDS_FETCH_FAILURE" | "INTEGRATION_PERMISSION_SETTINGS_COMMANDS_FETCH_SUCCESS" | "INTEGRATION_PERMISSION_SETTINGS_EDIT" | "INTEGRATION_PERMISSION_SETTINGS_INIT" | "INTEGRATION_PERMISSION_SETTINGS_RESET" | "INTEGRATION_QUERY" | "INTEGRATION_QUERY_FAILURE" | "INTEGRATION_QUERY_SUCCESS" | "INTEGRATION_SETTINGS_INIT" | "INTEGRATION_SETTINGS_SAVE_FAILURE" | "INTEGRATION_SETTINGS_SAVE_SUCCESS" | "INTEGRATION_SETTINGS_SET_SECTION" | "INTEGRATION_SETTINGS_START_EDITING_COMMAND" | "INTEGRATION_SETTINGS_START_EDITING_INTEGRATION" | "INTEGRATION_SETTINGS_START_EDITING_WEBHOOK" | "INTEGRATION_SETTINGS_STOP_EDITING_COMMAND" | "INTEGRATION_SETTINGS_STOP_EDITING_INTEGRATION" | "INTEGRATION_SETTINGS_STOP_EDITING_WEBHOOK" | "INTEGRATION_SETTINGS_SUBMITTING" | "INTEGRATION_SETTINGS_UPDATE_INTEGRATION" | "INTEGRATION_SETTINGS_UPDATE_WEBHOOK" | "INTERACTION_CREATE" | "INTERACTION_FAILURE" | "INTERACTION_IFRAME_MODAL_CLOSE" | "INTERACTION_IFRAME_MODAL_CREATE" | "INTERACTION_IFRAME_MODAL_KEY_CREATE" | "INTERACTION_MODAL_CREATE" | "INTERACTION_QUEUE" | "INTERACTION_SUCCESS" | "INVITE_ACCEPT" | "INVITE_ACCEPT_FAILURE" | "INVITE_ACCEPT_SUCCESS" | "INVITE_APP_NOT_OPENED" | "INVITE_APP_OPENED" | "INVITE_APP_OPENING" | "INVITE_MODAL_CLOSE" | "INVITE_MODAL_ERROR" | "INVITE_MODAL_OPEN" | "INVITE_RESOLVE" | "INVITE_RESOLVE_FAILURE" | "INVITE_RESOLVE_SUCCESS" | "INVITE_SUGGESTIONS_SEARCH" | "KEYBINDS_ADD_KEYBIND" | "KEYBINDS_DELETE_KEYBIND" | "KEYBINDS_ENABLE_ALL_KEYBINDS" | "KEYBINDS_REGISTER_GLOBAL_KEYBIND_ACTIONS" | "KEYBINDS_SET_KEYBIND" | "KEYBOARD_NAVIGATION_EXPLAINER_MODAL_SEEN" | "LAB_FEATURE_TOGGLE" | "LAYER_POP" | "LAYER_POP_ALL" | "LAYER_PUSH" | "LAYOUT_CREATE" | "LAYOUT_CREATE_WIDGETS" | "LAYOUT_DELETE_ALL_WIDGETS" | "LAYOUT_DELETE_WIDGET" | "LAYOUT_SET_PINNED" | "LAYOUT_SET_TOP_WIDGET" | "LAYOUT_UPDATE_WIDGET" | "LIBRARY_APPLICATION_ACTIVE_BRANCH_UPDATE" | "LIBRARY_APPLICATION_ACTIVE_LAUNCH_OPTION_UPDATE" | "LIBRARY_APPLICATION_FILTER_UPDATE" | "LIBRARY_APPLICATION_FLAGS_UPDATE_START" | "LIBRARY_APPLICATION_FLAGS_UPDATE_SUCCESS" | "LIBRARY_APPLICATION_UPDATE" | "LIBRARY_APPLICATIONS_TEST_MODE_ENABLED" | "LIBRARY_FETCH_SUCCESS" | "LIBRARY_TABLE_ACTIVE_ROW_ID_UPDATE" | "LIBRARY_TABLE_SORT_UPDATE" | "LIVE_CHANNEL_NOTICE_HIDE" | "LOAD_ARCHIVED_THREADS" | "LOAD_ARCHIVED_THREADS_FAIL" | "LOAD_ARCHIVED_THREADS_SUCCESS" | "LOAD_CHANNELS" | "LOAD_FORUM_POSTS" | "LOAD_FRIEND_SUGGESTIONS_FAILURE" | "LOAD_FRIEND_SUGGESTIONS_SUCCESS" | "LOAD_GRAVITY_CUSTOM_SCORES" | "LOAD_GRAVITY_DEHYDRATED" | "LOAD_GRAVITY_HYDRATED" | "LOAD_GUILD_AFFINITIES_SUCCESS" | "LOAD_INVITE_SUGGESTIONS" | "LOAD_MESSAGE_INTERACTION_DATA_SUCCESS" | "LOAD_MESSAGE_REQUESTS_SUPPLEMENTAL_DATA_ERROR" | "LOAD_MESSAGE_REQUESTS_SUPPLEMENTAL_DATA_SUCCESS" | "LOAD_MESSAGES" | "LOAD_MESSAGES_AROUND_SUCCESS" | "LOAD_MESSAGES_FAILURE" | "LOAD_MESSAGES_SUCCESS" | "LOAD_MESSAGES_SUCCESS_CACHED" | "LOAD_NOTIFICATION_CENTER_ITEMS" | "LOAD_NOTIFICATION_CENTER_ITEMS_FAILURE" | "LOAD_NOTIFICATION_CENTER_ITEMS_SUCCESS" | "LOAD_PINNED_MESSAGES" | "LOAD_PINNED_MESSAGES_FAILURE" | "LOAD_PINNED_MESSAGES_SUCCESS" | "LOAD_RECENT_MENTIONS" | "LOAD_RECENT_MENTIONS_FAILURE" | "LOAD_RECENT_MENTIONS_SUCCESS" | "LOAD_REGIONS" | "LOAD_RELATIONSHIPS_FAILURE" | "LOAD_RELATIONSHIPS_SUCCESS" | "LOAD_THREADS_SUCCESS" | "LOAD_USER_AFFINITIES" | "LOAD_USER_AFFINITIES_FAILURE" | "LOAD_USER_AFFINITIES_SUCCESS" | "LOAD_USER_AFFINITIES_V2" | "LOAD_USER_AFFINITIES_V2_FAILURE" | "LOAD_USER_AFFINITIES_V2_SUCCESS" | "LOCAL_ACTIVITY_UPDATE" | "LOCAL_MESSAGE_CREATE" | "LOCAL_MESSAGES_LOADED" | "LOGIN" | "LOGIN_ACCOUNT_DISABLED" | "LOGIN_ACCOUNT_SCHEDULED_FOR_DELETION" | "LOGIN_ATTEMPTED" | "LOGIN_FAILURE" | "LOGIN_MFA" | "LOGIN_MFA_FAILURE" | "LOGIN_MFA_SMS" | "LOGIN_MFA_SMS_FAILURE" | "LOGIN_MFA_SMS_REQUEST_SUCCESS" | "LOGIN_MFA_STEP" | "LOGIN_PASSWORD_RECOVERY_PHONE_VERIFICATION" | "LOGIN_PHONE_IP_AUTHORIZATION_REQUIRED" | "LOGIN_RESET" | "LOGIN_STATUS_RESET" | "LOGIN_SUCCESS" | "LOGIN_SUSPENDED_USER" | "LOGOUT" | "LOGOUT_AUTH_SESSIONS_SUCCESS" | "MASKED_LINK_ADD_TRUSTED_DOMAIN" | "MASKED_LINK_ADD_TRUSTED_PROTOCOL" | "MAX_MEMBER_COUNT_NOTICE_DISMISS" | "MEDIA_ENGINE_APPLY_MEDIA_FILTER_SETTINGS" | "MEDIA_ENGINE_APPLY_MEDIA_FILTER_SETTINGS_ERROR" | "MEDIA_ENGINE_APPLY_MEDIA_FILTER_SETTINGS_START" | "MEDIA_ENGINE_DEVICES" | "MEDIA_ENGINE_INTERACTION_REQUIRED" | "MEDIA_ENGINE_NOISE_CANCELLATION_ERROR_RESET" | "MEDIA_ENGINE_PERMISSION" | "MEDIA_ENGINE_SET_AEC_DUMP" | "MEDIA_ENGINE_SET_AUDIO_ENABLED" | "MEDIA_ENGINE_SET_EXPERIMENTAL_ENCODERS" | "MEDIA_ENGINE_SET_EXPERIMENTAL_SOUNDSHARE" | "MEDIA_ENGINE_SET_GO_LIVE_SOURCE" | "MEDIA_ENGINE_SET_HARDWARE_H264" | "MEDIA_ENGINE_SET_OPEN_H264" | "MEDIA_ENGINE_SET_VIDEO_DEVICE" | "MEDIA_ENGINE_SET_VIDEO_ENABLED" | "MEDIA_ENGINE_SET_VIDEO_HOOK" | "MEDIA_ENGINE_SOUNDSHARE_FAILED" | "MEDIA_ENGINE_SOUNDSHARE_TRANSMITTING" | "MEDIA_ENGINE_VIDEO_SOURCE_QUALITY_CHANGED" | "MEDIA_ENGINE_VIDEO_STATE_CHANGED" | "MEDIA_POST_EMBED_FETCH" | "MEDIA_POST_EMBED_FETCH_FAILURE" | "MEDIA_POST_EMBED_FETCH_SUCCESS" | "MEMBER_SAFETY_GUILD_MEMBER_SEARCH_SUCCESS" | "MEMBER_SAFETY_GUILD_MEMBER_UPDATE_BATCH" | "MEMBER_SAFETY_NEW_MEMBER_TIMESTAMP_REFRESH" | "MEMBER_SAFETY_PAGINATION_TOKEN_UPDATE" | "MEMBER_SAFETY_PAGINATION_UPDATE" | "MEMBER_SAFETY_SEARCH_STATE_UPDATE" | "MEMBER_VERIFICATION_FORM_FETCH_FAIL" | "MEMBER_VERIFICATION_FORM_UPDATE" | "MENTION_MODAL_CLOSE" | "MENTION_MODAL_OPEN" | "MESSAGE_ACK" | "MESSAGE_ACKED" | "MESSAGE_CREATE" | "MESSAGE_DELETE" | "MESSAGE_DELETE_BULK" | "MESSAGE_EDIT_FAILED_AUTOMOD" | "MESSAGE_END_EDIT" | "MESSAGE_EXPLICIT_CONTENT_FP_CREATE" | "MESSAGE_EXPLICIT_CONTENT_FP_SUBMIT" | "MESSAGE_EXPLICIT_CONTENT_SCAN_TIMEOUT" | "MESSAGE_LENGTH_UPSELL" | "MESSAGE_NOTIFICATION_SHOWN" | "MESSAGE_PREVIEWS_LOADED" | "MESSAGE_PREVIEWS_LOCALLY_LOADED" | "MESSAGE_REACTION_ADD" | "MESSAGE_REACTION_ADD_MANY" | "MESSAGE_REACTION_ADD_USERS" | "MESSAGE_REACTION_REMOVE" | "MESSAGE_REACTION_REMOVE_ALL" | "MESSAGE_REACTION_REMOVE_EMOJI" | "MESSAGE_REMINDER_NOTIFIED" | "MESSAGE_REQUEST_ACCEPT_OPTIMISTIC" | "MESSAGE_REQUEST_ACK" | "MESSAGE_REQUEST_CLEAR_ACK" | "MESSAGE_REVEAL" | "MESSAGE_SEND_FAILED" | "MESSAGE_SEND_FAILED_AUTOMOD" | "MESSAGE_START_EDIT" | "MESSAGE_UPDATE" | "MESSAGE_UPDATE_EDIT" | "MFA_CLEAR_BACKUP_CODES" | "MFA_DISABLE_SUCCESS" | "MFA_ENABLE_EMAIL_TOKEN" | "MFA_ENABLE_SUCCESS" | "MFA_SEEN_BACKUP_CODE_PROMPT" | "MFA_SEND_VERIFICATION_KEY" | "MFA_SMS_TOGGLE" | "MFA_SMS_TOGGLE_COMPLETE" | "MFA_VIEW_BACKUP_CODES" | "MFA_WEBAUTHN_CREDENTIALS_LOADED" | "MOBILE_NATIVE_UPDATE_CHECK_FINISHED" | "MOBILE_WEB_SIDEBAR_CLOSE" | "MOBILE_WEB_SIDEBAR_OPEN" | "MOD_VIEW_SEARCH_FINISH" | "MODAL_POP" | "MODAL_PUSH" | "MULTI_ACCOUNT_INVALIDATE_PUSH_SYNC_TOKENS" | "MULTI_ACCOUNT_MOBILE_EXPERIMENT_UPDATE" | "MULTI_ACCOUNT_MOVE_ACCOUNT" | "MULTI_ACCOUNT_REMOVE_ACCOUNT" | "MULTI_ACCOUNT_UPDATE_PUSH_SYNC_TOKEN" | "MULTI_ACCOUNT_VALIDATE_TOKEN_FAILURE" | "MULTI_ACCOUNT_VALIDATE_TOKEN_REQUEST" | "MULTI_ACCOUNT_VALIDATE_TOKEN_SUCCESS" | "MUTUAL_FRIENDS_FETCH_FAILURE" | "MUTUAL_FRIENDS_FETCH_START" | "MUTUAL_FRIENDS_FETCH_SUCCESS" | "NATIVE_APP_MODAL_OPEN_FAILED" | "NATIVE_APP_MODAL_OPENED" | "NATIVE_APP_MODAL_OPENING" | "NATIVE_SCREEN_SHARE_PICKER_CANCEL" | "NATIVE_SCREEN_SHARE_PICKER_ERROR" | "NATIVE_SCREEN_SHARE_PICKER_UPDATE" | "NEW_PAYMENT_SOURCE_ADDRESS_INFO_UPDATE" | "NEW_PAYMENT_SOURCE_CARD_INFO_UPDATE" | "NEW_PAYMENT_SOURCE_CLEAR_ERROR" | "NEW_PAYMENT_SOURCE_STRIPE_PAYMENT_REQUEST_UPDATE" | "NEWLY_ADDED_EMOJI_SEEN_ACKNOWLEDGED" | "NEWLY_ADDED_EMOJI_SEEN_PENDING" | "NEWLY_ADDED_EMOJI_SEEN_UPDATED" | "NOTICE_DISABLE" | "NOTICE_DISMISS" | "NOTICE_SHOW" | "NOTIFICATION_CENTER_CLEAR_GUILD_MENTIONS" | "NOTIFICATION_CENTER_ITEM_COMPLETED" | "NOTIFICATION_CENTER_ITEM_CREATE" | "NOTIFICATION_CENTER_ITEM_DELETE" | "NOTIFICATION_CENTER_ITEM_DELETE_FAILURE" | "NOTIFICATION_CENTER_ITEMS_ACK" | "NOTIFICATION_CENTER_ITEMS_ACK_FAILURE" | "NOTIFICATION_CENTER_ITEMS_LOCAL_ACK" | "NOTIFICATION_CENTER_REFRESH" | "NOTIFICATION_CENTER_SET_ACTIVE" | "NOTIFICATION_CENTER_SET_TAB" | "NOTIFICATION_CENTER_TAB_FOCUSED" | "NOTIFICATION_CLICK" | "NOTIFICATION_CREATE" | "NOTIFICATION_SETTINGS_UPDATE" | "NOTIFICATIONS_SET_DESKTOP_TYPE" | "NOTIFICATIONS_SET_DISABLE_UNREAD_BADGE" | "NOTIFICATIONS_SET_DISABLED_SOUNDS" | "NOTIFICATIONS_SET_NOTIFY_MESSAGES_IN_SELECTED_CHANNEL" | "NOTIFICATIONS_SET_PERMISSION_STATE" | "NOTIFICATIONS_SET_TASKBAR_FLASH" | "NOTIFICATIONS_SET_TTS_TYPE" | "NOTIFICATIONS_TOGGLE_ALL_DISABLED" | "NOW_PLAYING_MOUNTED" | "NOW_PLAYING_UNMOUNTED" | "NUF_COMPLETE" | "NUF_NEW_USER" | "OAUTH2_TOKEN_REVOKE" | "ONLINE_GUILD_MEMBER_COUNT_UPDATE" | "OUTBOUND_PROMOTION_NOTICE_DISMISS" | "OUTBOUND_PROMOTIONS_SEEN" | "OVERLAY_ACTIVATE_REGION" | "OVERLAY_CALL_PRIVATE_CHANNEL" | "OVERLAY_CRASHED" | "OVERLAY_DEACTIVATE_ALL_REGIONS" | "OVERLAY_DISABLE_EXTERNAL_LINK_ALERT" | "OVERLAY_FOCUSED" | "OVERLAY_INCOMPATIBLE_APP" | "OVERLAY_INITIALIZE" | "OVERLAY_JOIN_GAME" | "OVERLAY_MESSAGE_EVENT_ACTION" | "OVERLAY_NOTIFICATION_EVENT" | "OVERLAY_NOTIFY_READY_TO_SHOW" | "OVERLAY_READY" | "OVERLAY_SELECT_CALL" | "OVERLAY_SELECT_CHANNEL" | "OVERLAY_SET_ASSOCIATED_GAME" | "OVERLAY_SET_AVATAR_SIZE_MODE" | "OVERLAY_SET_CLICK_ZONES" | "OVERLAY_SET_DISPLAY_NAME_MODE" | "OVERLAY_SET_DISPLAY_USER_MODE" | "OVERLAY_SET_ENABLED" | "OVERLAY_SET_INPUT_LOCKED" | "OVERLAY_SET_NOT_IDLE" | "OVERLAY_SET_NOTIFICATION_POSITION_MODE" | "OVERLAY_SET_PREVIEW_IN_GAME_MODE" | "OVERLAY_SET_SHOW_KEYBIND_INDICATORS" | "OVERLAY_SET_TEXT_CHAT_NOTIFICATION_MODE" | "OVERLAY_SET_TEXT_WIDGET_OPACITY" | "OVERLAY_SET_UI_LOCKED" | "OVERLAY_SOUNDBOARD_SOUNDS_FETCH_REQUEST" | "OVERLAY_START_SESSION" | "OVERLAY_SUCCESSFULLY_SHOWN" | "OVERLAY_WIDGET_CHANGED" | "OWNED_APPLICATION_BRANCHES_FETCH_SUCCESS" | "PASSIVE_UPDATE_V2" | "PASSWORD_UPDATED" | "PASSWORDLESS_FAILURE" | "PASSWORDLESS_START" | "PAYMENT_AUTHENTICATION_CLEAR_ERROR" | "PAYMENT_AUTHENTICATION_ERROR" | "PAYMENT_UPDATE" | "PERMISSION_CLEAR_ELEVATED_PROCESS" | "PERMISSION_CLEAR_PTT_ADMIN_WARNING" | "PERMISSION_CLEAR_SUPPRESS_WARNING" | "PERMISSION_CLEAR_VAD_WARNING" | "PERMISSION_CONTINUE_NONELEVATED_PROCESS" | "PERMISSION_REQUEST_ELEVATED_PROCESS" | "PERMIUM_PERKS_DEMO_FRAME_ANIMATION_PLAYED" | "PHONE_SET_COUNTRY_CODE" | "PICTURE_IN_PICTURE_CLOSE" | "PICTURE_IN_PICTURE_HIDE" | "PICTURE_IN_PICTURE_MOVE" | "PICTURE_IN_PICTURE_OPEN" | "PICTURE_IN_PICTURE_RESIZE" | "PICTURE_IN_PICTURE_SHOW" | "PICTURE_IN_PICTURE_UPDATE_RECT" | "PICTURE_IN_PICTURE_UPDATE_SELECTED_WINDOW" | "POGGERMODE_ACHIEVEMENT_UNLOCK" | "POGGERMODE_SETTINGS_UPDATE" | "POGGERMODE_TEMPORARILY_DISABLED" | "POGGERMODE_UPDATE_COMBO" | "POGGERMODE_UPDATE_MESSAGE_COMBO" | "POMELO_ATTEMPT_FAILURE" | "POMELO_ATTEMPT_SUCCESS" | "POMELO_REGISTRATION_SUGGESTIONS_SUCCESS" | "POMELO_SUGGESTIONS_FETCH" | "POMELO_SUGGESTIONS_RESET" | "POMELO_SUGGESTIONS_SUCCESS" | "POPOUT_WINDOW_ADD_STYLESHEET" | "POPOUT_WINDOW_CLOSE" | "POPOUT_WINDOW_OPEN" | "POPOUT_WINDOW_SET_ALWAYS_ON_TOP" | "POST_CONNECTION_OPEN" | "PREMIUM_MARKETING_DATA_READY" | "PREMIUM_MARKETING_PREVIEW" | "PREMIUM_PAYMENT_ERROR_CLEAR" | "PREMIUM_PAYMENT_MODAL_CLOSE" | "PREMIUM_PAYMENT_MODAL_OPEN" | "PREMIUM_PAYMENT_SUBSCRIBE_FAIL" | "PREMIUM_PAYMENT_SUBSCRIBE_START" | "PREMIUM_PAYMENT_SUBSCRIBE_SUCCESS" | "PREMIUM_PAYMENT_UPDATE_FAIL" | "PREMIUM_PAYMENT_UPDATE_SUCCESS" | "PREMIUM_PERKS_DEMO_ACTIVATE_FAILURE" | "PREMIUM_PERKS_DEMO_ACTIVATE_SUCCESS" | "PREMIUM_PERKS_DEMO_COMPLETE" | "PREMIUM_PERKS_DEMO_ENABLED" | "PREMIUM_PERKS_DEMO_OPT_IN_POPOUT_DISMISSED" | "PREMIUM_PERKS_DEMO_OPT_IN_POPOUT_SHOULD_SHOW" | "PREMIUM_PERKS_DEMO_OVERRIDE" | "PREMIUM_PERKS_DEMO_POPOUT_DISMISSED" | "PREMIUM_PERKS_DEMO_UI_RESET" | "PREMIUM_PERKS_DEMOS_FETCH_FAILURE" | "PREMIUM_PERKS_DEMOS_FETCH_SUCCESS" | "PREMIUM_REQUIRED_MODAL_CLOSE" | "PREMIUM_REQUIRED_MODAL_OPEN" | "PRESENCE_UPDATES" | "PRESENCES_REPLACE" | "PRIVATE_CHANNEL_INTEGRATION_CREATE" | "PRIVATE_CHANNEL_INTEGRATION_DELETE" | "PRIVATE_CHANNEL_INTEGRATION_UPDATE" | "PRIVATE_CHANNEL_RECIPIENTS_ADD_USER" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_CLOSE" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_OPEN" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_QUERY" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_SELECT" | "PRIVATE_CHANNEL_RECIPIENTS_REMOVE_USER" | "PROFILE_CUSTOMIZATION_OPEN_PREVIEW_MODAL" | "PROFILE_EFFECTS_SET_TRY_IT_OUT" | "PROFILE_PANEL_TOGGLE_SECTION" | "PROXY_BLOCKED_REQUEST" | "PUBLIC_UPSELL_NOTICE_DISMISS" | "PURCHASED_ITEMS_FESTIVITY_FETCH_WOW_MOMENT_MEDIA_SUCCESS" | "PURCHASED_ITEMS_FESTIVITY_IS_FETCHING_WOW_MOMENT_MEDIA" | "PURCHASED_ITEMS_FESTIVITY_SET_CAN_PLAY_WOW_MOMENT" | "PUSH_NOTIFICATION_CLICK" | "QUESTS_CLAIM_REWARD_BEGIN" | "QUESTS_CLAIM_REWARD_FAILURE" | "QUESTS_CLAIM_REWARD_SUCCESS" | "QUESTS_DELIVERY_OVERRIDE" | "QUESTS_DISMISS_CONTENT_BEGIN" | "QUESTS_DISMISS_CONTENT_FAILURE" | "QUESTS_DISMISS_CONTENT_SUCCESS" | "QUESTS_DISMISS_PROGRESS_TRACKING_FAILURE_NOTICE" | "QUESTS_ENROLL_BEGIN" | "QUESTS_ENROLL_FAILURE" | "QUESTS_ENROLL_SUCCESS" | "QUESTS_FETCH_CURRENT_QUESTS_BEGIN" | "QUESTS_FETCH_CURRENT_QUESTS_FAILURE" | "QUESTS_FETCH_CURRENT_QUESTS_SUCCESS" | "QUESTS_FETCH_REWARD_CODE_BEGIN" | "QUESTS_FETCH_REWARD_CODE_FAILURE" | "QUESTS_FETCH_REWARD_CODE_SUCCESS" | "QUESTS_PREVIEW_UPDATE_SUCCESS" | "QUESTS_SELECT_TASK_PLATFORM" | "QUESTS_SEND_HEARTBEAT_FAILURE" | "QUESTS_SEND_HEARTBEAT_SUCCESS" | "QUESTS_USER_STATUS_UPDATE" | "QUEUE_INTERACTION_COMPONENT_STATE" | "QUICKSWITCHER_HIDE" | "QUICKSWITCHER_SEARCH" | "QUICKSWITCHER_SELECT" | "QUICKSWITCHER_SHOW" | "QUICKSWITCHER_SWITCH_TO" | "RECEIVE_CHANNEL_AFFINITIES" | "RECEIVE_CHANNEL_SUMMARIES" | "RECEIVE_CHANNEL_SUMMARIES_BULK" | "RECEIVE_CHANNEL_SUMMARY" | "RECENT_MENTION_DELETE" | "RECOMPUTE_READ_STATES" | "REFERRALS_FETCH_ELIGIBLE_USER_FAIL" | "REFERRALS_FETCH_ELIGIBLE_USER_START" | "REFERRALS_FETCH_ELIGIBLE_USER_SUCCESS" | "REGISTER" | "REGISTER_FAILURE" | "REGISTER_SAVE_FORM" | "REGISTER_SUCCESS" | "RELATIONSHIP_ADD" | "RELATIONSHIP_PENDING_INCOMING_REMOVED" | "RELATIONSHIP_REMOVE" | "RELATIONSHIP_UPDATE" | "RELOAD_GRAVITY" | "REMOTE_COMMAND" | "REMOTE_SESSION_CONNECT" | "REMOTE_SESSION_DISCONNECT" | "REMOVE_AUTOMOD_MESSAGE_NOTICE" | "REQUEST_CHANNEL_AFFINITIES" | "REQUEST_CHANNEL_SUMMARIES" | "REQUEST_CHANNEL_SUMMARIES_BULK" | "REQUEST_CHANNEL_SUMMARY" | "REQUEST_FORUM_UNREADS" | "REQUEST_SOUNDBOARD_SOUNDS" | "RESET_NOTIFICATION_CENTER" | "RESET_PAYMENT_ID" | "RESET_PREVIEW_CLIENT_THEME" | "RESET_SOCKET" | "RESORT_THREADS" | "RPC_APP_AUTHENTICATED" | "RPC_APP_CONNECTED" | "RPC_APP_DISCONNECTED" | "RPC_NOTIFICATION_CREATE" | "RPC_SERVER_READY" | "RTC_CONNECTION_CLIENT_CONNECT" | "RTC_CONNECTION_CLIENT_DISCONNECT" | "RTC_CONNECTION_FLAGS" | "RTC_CONNECTION_LOSS_RATE" | "RTC_CONNECTION_PING" | "RTC_CONNECTION_PLATFORM" | "RTC_CONNECTION_ROSTER_MAP_UPDATE" | "RTC_CONNECTION_SECURE_FRAMES_UPDATE" | "RTC_CONNECTION_STATE" | "RTC_CONNECTION_UPDATE_ID" | "RTC_CONNECTION_USER_CREATE" | "RTC_CONNECTION_VIDEO" | "RTC_DEBUG_MODAL_CLOSE" | "RTC_DEBUG_MODAL_OPEN" | "RTC_DEBUG_MODAL_OPEN_REPLAY" | "RTC_DEBUG_MODAL_OPEN_REPLAY_AT_PATH" | "RTC_DEBUG_MODAL_SET_SECTION" | "RTC_DEBUG_MODAL_UPDATE" | "RTC_DEBUG_MODAL_UPDATE_VIDEO_OUTPUT" | "RTC_DEBUG_POPOUT_WINDOW_OPEN" | "RTC_DEBUG_SET_RECORDING_FLAG" | "RTC_DEBUG_SET_SIMULCAST_OVERRIDE" | "RTC_LATENCY_TEST_COMPLETE" | "RUNNING_GAME_ADD_OVERRIDE" | "RUNNING_GAME_DELETE_ENTRY" | "RUNNING_GAME_EDIT_NAME" | "RUNNING_GAME_TOGGLE_DETECTION" | "RUNNING_GAME_TOGGLE_OVERLAY" | "RUNNING_GAMES_CHANGE" | "RUNNING_STREAMER_TOOLS_CHANGE" | "SAFETY_HUB_APPEAL_CLOSE" | "SAFETY_HUB_APPEAL_OPEN" | "SAFETY_HUB_APPEAL_SIGNAL_CUSTOM_INPUT_CHANGE" | "SAFETY_HUB_APPEAL_SIGNAL_SELECT" | "SAFETY_HUB_FETCH_CLASSIFICATION_FAILURE" | "SAFETY_HUB_FETCH_CLASSIFICATION_START" | "SAFETY_HUB_FETCH_CLASSIFICATION_SUCCESS" | "SAFETY_HUB_FETCH_FAILURE" | "SAFETY_HUB_FETCH_START" | "SAFETY_HUB_FETCH_SUCCESS" | "SAFETY_HUB_REQUEST_REVIEW_FAILURE" | "SAFETY_HUB_REQUEST_REVIEW_START" | "SAFETY_HUB_REQUEST_REVIEW_SUCCESS" | "SAVE_LAST_NON_VOICE_ROUTE" | "SAVE_LAST_ROUTE" | "SAVED_MESSAGE_CREATE" | "SAVED_MESSAGE_DELETE" | "SAVED_MESSAGES_UPDATE" | "SEARCH_ADD_HISTORY" | "SEARCH_AUTOCOMPLETE_QUERY_UPDATE" | "SEARCH_CLEAR_HISTORY" | "SEARCH_EDITOR_STATE_CHANGE" | "SEARCH_EDITOR_STATE_CLEAR" | "SEARCH_ENSURE_SEARCH_STATE" | "SEARCH_FINISH" | "SEARCH_INDEXING" | "SEARCH_MODAL_CLOSE" | "SEARCH_MODAL_OPEN" | "SEARCH_REMOVE_HISTORY" | "SEARCH_SCREEN_OPEN" | "SEARCH_SET_SHOW_BLOCKED_RESULTS" | "SEARCH_START" | "SECURE_FRAMES_SETTINGS_UPDATE" | "SECURE_FRAMES_TRANSIENT_KEY_CREATE" | "SECURE_FRAMES_TRANSIENT_KEY_DELETE" | "SECURE_FRAMES_UPLOADED_KEY_VERSION_ADD" | "SECURE_FRAMES_UPLOADED_KEY_VERSION_CLEAR" | "SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE" | "SECURE_FRAMES_VERIFIED_KEY_CREATE" | "SECURE_FRAMES_VERIFIED_KEY_DELETE" | "SELECT_HOME_RESOURCE_CHANNEL" | "SELECT_NEW_MEMBER_ACTION_CHANNEL" | "SELECTIVELY_SYNCED_USER_SETTINGS_UPDATE" | "SELF_PRESENCE_STORE_UPDATE" | "SESSIONS_REPLACE" | "SET_CHANNEL_BITRATE" | "SET_CHANNEL_VIDEO_QUALITY_MODE" | "SET_CONSENT_REQUIRED" | "SET_CREATED_AT_OVERRIDE" | "SET_GRAVITY_FILTERS" | "SET_GRAVITY_SELECTED_CHANNEL" | "SET_GRAVITY_SELECTED_SUMMARY" | "SET_GUILD_FOLDER_EXPANDED" | "SET_HIGHLIGHTED_SUMMARY" | "SET_INTERACTION_COMPONENT_STATE" | "SET_LOCATION_METADATA" | "SET_LOGIN_CREDENTIALS" | "SET_NATIVE_PERMISSION" | "SET_PENDING_REPLY_SHOULD_MENTION" | "SET_PREMIUM_TYPE_OVERRIDE" | "SET_RECENT_MENTIONS_FILTER" | "SET_RECENT_MENTIONS_STALE" | "SET_RECENTLY_ACTIVE_COLLAPSED" | "SET_SELECTED_SUMMARY" | "SET_SOUNDPACK" | "SET_STREAM_APP_INTENT" | "SET_SUMMARY_FEEDBACK" | "SET_TRACK_TRIGGERS" | "SET_TTS_SPEECH_RATE" | "SET_VAD_PERMISSION" | "SHARED_CANVAS_CLEAR_DRAWABLES" | "SHARED_CANVAS_DRAW_LINE_POINT" | "SHARED_CANVAS_SET_DRAW_MODE" | "SHARED_CANVAS_UPDATE_EMOJI_HOSE" | "SHARED_CANVAS_UPDATE_LINE_POINTS" | "SHOW_ACTION_SHEET" | "SHOW_ACTION_SHEET_QUICK_SWITCHER" | "SHOW_KEYBOARD_SHORTCUTS" | "SIDEBAR_CLOSE" | "SIDEBAR_CLOSE_GUILD" | "SIDEBAR_CREATE_THREAD" | "SIDEBAR_VIEW_CHANNEL" | "SIDEBAR_VIEW_GUILD" | "SKU_FETCH_FAIL" | "SKU_FETCH_START" | "SKU_FETCH_SUCCESS" | "SKU_PURCHASE_AWAIT_CONFIRMATION" | "SKU_PURCHASE_CLEAR_ERROR" | "SKU_PURCHASE_FAIL" | "SKU_PURCHASE_MODAL_CLOSE" | "SKU_PURCHASE_MODAL_OPEN" | "SKU_PURCHASE_PREVIEW_FETCH" | "SKU_PURCHASE_PREVIEW_FETCH_FAILURE" | "SKU_PURCHASE_PREVIEW_FETCH_SUCCESS" | "SKU_PURCHASE_SHOW_CONFIRMATION_STEP" | "SKU_PURCHASE_START" | "SKU_PURCHASE_SUCCESS" | "SKU_PURCHASE_UPDATE_IS_GIFT" | "SKUS_FETCH_SUCCESS" | "SLOWMODE_RESET_COOLDOWN" | "SLOWMODE_SET_COOLDOWN" | "SOUNDBOARD_FETCH_DEFAULT_SOUNDS" | "SOUNDBOARD_FETCH_DEFAULT_SOUNDS_SUCCESS" | "SOUNDBOARD_MUTE_JOIN_SOUND" | "SOUNDBOARD_SET_OVERLAY_ENABLED" | "SOUNDBOARD_SOUNDS_RECEIVED" | "SPEAK_MESSAGE" | "SPEAK_TEXT" | "SPEAKING" | "SPEAKING_MESSAGE" | "SPELLCHECK_LEARN_WORD" | "SPELLCHECK_TOGGLE" | "SPELLCHECK_UNLEARN_WORD" | "SPOTIFY_ACCOUNT_ACCESS_TOKEN" | "SPOTIFY_ACCOUNT_ACCESS_TOKEN_REVOKE" | "SPOTIFY_NEW_TRACK" | "SPOTIFY_PLAYER_PAUSE" | "SPOTIFY_PLAYER_PLAY" | "SPOTIFY_PLAYER_STATE" | "SPOTIFY_PROFILE_UPDATE" | "SPOTIFY_SET_ACTIVE_DEVICE" | "SPOTIFY_SET_DEVICES" | "SPOTIFY_SET_PROTOCOL_REGISTERED" | "STAGE_INSTANCE_CREATE" | "STAGE_INSTANCE_DELETE" | "STAGE_INSTANCE_UPDATE" | "STAGE_MUSIC_MUTE" | "STAGE_MUSIC_PLAY" | "START_BROADCAST_STREAM" | "START_SESSION" | "STATUS_PAGE_INCIDENT" | "STATUS_PAGE_SCHEDULED_MAINTENANCE" | "STATUS_PAGE_SCHEDULED_MAINTENANCE_ACK" | "STICKER_FETCH_SUCCESS" | "STICKER_PACK_FETCH_SUCCESS" | "STICKER_PACKS_FETCH_START" | "STICKER_PACKS_FETCH_SUCCESS" | "STICKER_TRACK_USAGE" | "STOP_SPEAKING" | "STORE_LISTING_FETCH_SUCCESS" | "STORE_LISTINGS_FETCH_FAIL" | "STORE_LISTINGS_FETCH_START" | "STORE_LISTINGS_FETCH_SUCCESS" | "STREAM_CLOSE" | "STREAM_CREATE" | "STREAM_DELETE" | "STREAM_LAYOUT_UPDATE" | "STREAM_PREVIEW_FETCH_FAIL" | "STREAM_PREVIEW_FETCH_START" | "STREAM_PREVIEW_FETCH_SUCCESS" | "STREAM_SERVER_UPDATE" | "STREAM_SET_PAUSED" | "STREAM_START" | "STREAM_STATS_UPDATE" | "STREAM_STOP" | "STREAM_TIMED_OUT" | "STREAM_UPDATE" | "STREAM_UPDATE_SELF_HIDDEN" | "STREAM_UPDATE_SETTINGS" | "STREAM_WATCH" | "STREAMER_MODE_UPDATE" | "STREAMING_UPDATE" | "STRIPE_TOKEN_FAILURE" | "SUBSCRIPTION_PLANS_FETCH" | "SUBSCRIPTION_PLANS_FETCH_FAILURE" | "SUBSCRIPTION_PLANS_FETCH_SUCCESS" | "SUBSCRIPTION_PLANS_RESET" | "SURVEY_FETCHED" | "SURVEY_HIDE" | "SURVEY_OVERRIDE" | "SURVEY_SEEN" | "SYSTEM_THEME_CHANGE" | "THERMAL_STATE_CHANGE" | "THREAD_CREATE" | "THREAD_CREATE_LOCAL" | "THREAD_DELETE" | "THREAD_LIST_SYNC" | "THREAD_MEMBER_LIST_UPDATE" | "THREAD_MEMBER_LOCAL_UPDATE" | "THREAD_MEMBER_UPDATE" | "THREAD_MEMBERS_UPDATE" | "THREAD_SETTINGS_DRAFT_CHANGE" | "THREAD_UPDATE" | "TOGGLE_GUILD_EXPANDED_STATE" | "TOGGLE_GUILD_FOLDER_EXPAND" | "TOGGLE_OVERLAY_CANVAS" | "TOGGLE_TOPICS_BAR" | "TOP_EMOJIS_FETCH" | "TOP_EMOJIS_FETCH_SUCCESS" | "TRACK" | "TRACK_TRIGGER" | "TRUNCATE_MENTIONS" | "TRUNCATE_MESSAGES" | "TRY_ACK" | "TUTORIAL_INDICATOR_DISMISS" | "TUTORIAL_INDICATOR_HIDE" | "TUTORIAL_INDICATOR_SHOW" | "TUTORIAL_INDICATOR_SUPPRESS_ALL" | "TYPING_START" | "TYPING_START_LOCAL" | "TYPING_STOP" | "TYPING_STOP_LOCAL" | "UNREAD_SETTING_NOTICE_CHANNEL_VISIT" | "UNREAD_SETTING_NOTICE_RENDERED" | "UNSYNCED_USER_SETTINGS_UPDATE" | "UNVERIFIED_GAME_UPDATE" | "UPCOMING_GUILD_EVENT_NOTICE_HIDE" | "UPCOMING_GUILD_EVENT_NOTICE_SEEN" | "UPDATE_AVAILABLE" | "UPDATE_BACKGROUND_GRADIENT_PRESET" | "UPDATE_CHANNEL_DIMENSIONS" | "UPDATE_CHANNEL_LIST_DIMENSIONS" | "UPDATE_CHANNEL_LIST_SUBTITLES" | "UPDATE_CLIENT_PREMIUM_TYPE" | "UPDATE_CONSENTS" | "UPDATE_DOWNLOADED" | "UPDATE_ERROR" | "UPDATE_GUILD_LIST_DIMENSIONS" | "UPDATE_HANG_STATUS" | "UPDATE_HANG_STATUS_CUSTOM" | "UPDATE_MANUALLY" | "UPDATE_MOBILE_PENDING_THEME_INDEX" | "UPDATE_NOT_AVAILABLE" | "UPDATE_TOKEN" | "UPDATE_VISIBLE_MESSAGES" | "UPLOAD_ATTACHMENT_ADD_FILES" | "UPLOAD_ATTACHMENT_CLEAR_ALL_FILES" | "UPLOAD_ATTACHMENT_POP_FILE" | "UPLOAD_ATTACHMENT_REMOVE_FILE" | "UPLOAD_ATTACHMENT_REMOVE_FILES" | "UPLOAD_ATTACHMENT_SET_FILE" | "UPLOAD_ATTACHMENT_SET_UPLOADS" | "UPLOAD_ATTACHMENT_UPDATE_FILE" | "UPLOAD_CANCEL_REQUEST" | "UPLOAD_COMPLETE" | "UPLOAD_COMPRESSION_PROGRESS" | "UPLOAD_FAIL" | "UPLOAD_FILE_UPDATE" | "UPLOAD_ITEM_CANCEL_REQUEST" | "UPLOAD_PROGRESS" | "UPLOAD_RESTORE_FAILED_UPLOAD" | "UPLOAD_START" | "USER_ACHIEVEMENT_UPDATE" | "USER_ACTIVITY_STATISTICS_FETCH_SUCCESS" | "USER_APPLICATION_REMOVE" | "USER_APPLICATION_UPDATE" | "USER_APPLIED_BOOSTS_FETCH_START" | "USER_APPLIED_BOOSTS_FETCH_SUCCESS" | "USER_AUTHORIZED_APPS_UPDATE" | "USER_CONNECTION_UPDATE" | "USER_CONNECTIONS_INTEGRATION_JOINING" | "USER_CONNECTIONS_INTEGRATION_JOINING_ERROR" | "USER_CONNECTIONS_UPDATE" | "USER_GUILD_JOIN_REQUEST_COACHMARK_CLEAR" | "USER_GUILD_JOIN_REQUEST_COACHMARK_SHOW" | "USER_GUILD_JOIN_REQUEST_UPDATE" | "USER_GUILD_SETTINGS_CHANNEL_UPDATE" | "USER_GUILD_SETTINGS_CHANNEL_UPDATE_BULK" | "USER_GUILD_SETTINGS_FULL_UPDATE" | "USER_GUILD_SETTINGS_GUILD_AND_CHANNELS_UPDATE" | "USER_GUILD_SETTINGS_GUILD_UPDATE" | "USER_GUILD_SETTINGS_REMOVE_PENDING_CHANNEL_UPDATES" | "USER_JOIN_REQUEST_GUILDS_FETCH" | "USER_NON_CHANNEL_ACK" | "USER_NOTE_LOAD_START" | "USER_NOTE_LOADED" | "USER_NOTE_UPDATE" | "USER_PAYMENT_BROWSER_CHECKOUT_DONE" | "USER_PAYMENT_BROWSER_CHECKOUT_STARTED" | "USER_PAYMENT_CLIENT_ADD" | "USER_PROFILE_EFFECTS_FETCH" | "USER_PROFILE_EFFECTS_FETCH_FAILURE" | "USER_PROFILE_EFFECTS_FETCH_SUCCESS" | "USER_PROFILE_FETCH_FAILURE" | "USER_PROFILE_FETCH_START" | "USER_PROFILE_FETCH_SUCCESS" | "USER_PROFILE_MODAL_CLOSE" | "USER_PROFILE_MODAL_OPEN" | "USER_PROFILE_UPDATE_FAILURE" | "USER_PROFILE_UPDATE_START" | "USER_PROFILE_UPDATE_SUCCESS" | "USER_REQUIRED_ACTION_UPDATE" | "USER_SETTINGS_ACCOUNT_CLOSE" | "USER_SETTINGS_ACCOUNT_INIT" | "USER_SETTINGS_ACCOUNT_RESET_AND_CLOSE_FORM" | "USER_SETTINGS_ACCOUNT_SET_PENDING_ACCENT_COLOR" | "USER_SETTINGS_ACCOUNT_SET_PENDING_AVATAR" | "USER_SETTINGS_ACCOUNT_SET_PENDING_AVATAR_DECORATION" | "USER_SETTINGS_ACCOUNT_SET_PENDING_BANNER" | "USER_SETTINGS_ACCOUNT_SET_PENDING_BIO" | "USER_SETTINGS_ACCOUNT_SET_PENDING_GLOBAL_NAME" | "USER_SETTINGS_ACCOUNT_SET_PENDING_PROFILE_EFFECT_ID" | "USER_SETTINGS_ACCOUNT_SET_PENDING_PRONOUNS" | "USER_SETTINGS_ACCOUNT_SET_PENDING_THEME_COLORS" | "USER_SETTINGS_ACCOUNT_SET_SINGLE_TRY_IT_OUT_COLLECTIBLES_ITEM" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_AVATAR" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_AVATAR_DECORATION" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_BANNER" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_PROFILE_EFFECT_ID" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_THEME_COLORS" | "USER_SETTINGS_ACCOUNT_SUBMIT" | "USER_SETTINGS_ACCOUNT_SUBMIT_FAILURE" | "USER_SETTINGS_ACCOUNT_SUBMIT_SUCCESS" | "USER_SETTINGS_CLEAR_ERRORS" | "USER_SETTINGS_LOCALE_OVERRIDE" | "USER_SETTINGS_MODAL_CLEAR_SCROLL_POSITION" | "USER_SETTINGS_MODAL_CLEAR_SUBSECTION" | "USER_SETTINGS_MODAL_CLOSE" | "USER_SETTINGS_MODAL_INIT" | "USER_SETTINGS_MODAL_OPEN" | "USER_SETTINGS_MODAL_RESET" | "USER_SETTINGS_MODAL_SET_SECTION" | "USER_SETTINGS_MODAL_SUBMIT" | "USER_SETTINGS_MODAL_SUBMIT_COMPLETE" | "USER_SETTINGS_MODAL_SUBMIT_FAILURE" | "USER_SETTINGS_MODAL_UPDATE_ACCOUNT" | "USER_SETTINGS_OVERRIDE_APPLY" | "USER_SETTINGS_OVERRIDE_CLEAR" | "USER_SETTINGS_PROTO_ENQUEUE_UPDATE" | "USER_SETTINGS_PROTO_LOAD_IF_NECESSARY" | "USER_SETTINGS_PROTO_UPDATE" | "USER_SETTINGS_PROTO_UPDATE_EDIT_INFO" | "USER_SETTINGS_RESET_ALL_PENDING" | "USER_SETTINGS_RESET_ALL_TRY_IT_OUT" | "USER_SETTINGS_RESET_PENDING_ACCOUNT_CHANGES" | "USER_SETTINGS_RESET_PENDING_AVATAR_DECORATION" | "USER_SETTINGS_RESET_PENDING_PROFILE_CHANGES" | "USER_SOUNDBOARD_SET_VOLUME" | "USER_TENURE_REWARD_STATUS_DELETE" | "USER_TENURE_REWARD_STATUS_RESET" | "USER_TENURE_REWARD_SYNC_START" | "USER_TENURE_REWARD_SYNC_SUCCESS" | "USER_UPDATE" | "VERIFY_FAILURE" | "VERIFY_SUCCESS" | "VIDEO_FILTER_ASSET_DELETE_SUCCESS" | "VIDEO_FILTER_ASSET_UPLOAD_SUCCESS" | "VIDEO_FILTER_ASSETS_FETCH_SUCCESS" | "VIDEO_SAVE_LAST_USED_BACKGROUND_OPTION" | "VIEW_HISTORY_MARK_VIEW" | "VOICE_CATEGORY_COLLAPSE" | "VOICE_CATEGORY_EXPAND" | "VOICE_CHANNEL_EFFECT_CLEAR" | "VOICE_CHANNEL_EFFECT_RECENT_EMOJI" | "VOICE_CHANNEL_EFFECT_SEND" | "VOICE_CHANNEL_EFFECT_SENT_LOCAL" | "VOICE_CHANNEL_EFFECT_TOGGLE_ANIMATION_TYPE" | "VOICE_CHANNEL_EFFECT_UPDATE_TIME_STAMP" | "VOICE_CHANNEL_SELECT" | "VOICE_CHANNEL_STATUS_UPDATE" | "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATES" | "WAIT_FOR_REMOTE_SESSION" | "WEBHOOK_CREATE" | "WEBHOOK_DELETE" | "WEBHOOK_UPDATE" | "WEBHOOKS_FETCHING" | "WEBHOOKS_UPDATE" | "WELCOME_SCREEN_FETCH_FAIL" | "WELCOME_SCREEN_FETCH_START" | "WELCOME_SCREEN_FETCH_SUCCESS" | "WELCOME_SCREEN_SETTINGS_CLEAR" | "WELCOME_SCREEN_SETTINGS_RESET" | "WELCOME_SCREEN_SETTINGS_UPDATE" | "WELCOME_SCREEN_SUBMIT" | "WELCOME_SCREEN_SUBMIT_FAILURE" | "WELCOME_SCREEN_SUBMIT_SUCCESS" | "WELCOME_SCREEN_UPDATE" | "WELCOME_SCREEN_VIEW" | "WINDOW_FOCUS" | "WINDOW_FULLSCREEN_CHANGE" | "WINDOW_HIDDEN" | "WINDOW_INIT" | "WINDOW_RESIZED" | "WINDOW_UNLOAD" | "WINDOW_VISIBILITY_CHANGE" | "WRITE_CACHES"; diff --git a/packages/discord-types/src/flux/fluxActions.ts b/packages/discord-types/src/flux/fluxActions.ts deleted file mode 100644 index 247f84e1f..000000000 --- a/packages/discord-types/src/flux/fluxActions.ts +++ /dev/null @@ -1,132 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { IsAny, OmitIndexSignature } from "../internal"; - -export type FluxActionHandler - = Action extends unknown - ? unknown extends ( - IsAny]> - & IsAny]> - & IsAny]> - ) - ? (action: any) => Return - : (action: Action) => Return - : never; - -export type FluxAction - // Workaround to avoid ts(2589) - = { type: Exclude; } & Record - // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents - | ValidOverrides[keyof ValidOverrides]; - -type ValidOverrides = { - // eslint-disable-next-line @typescript-eslint/no-redundant-type-constituents - [Key in keyof OmitIndexSignature & string as FluxActionOverride[Key]["type"] extends Key - ? Key extends FluxActionOverride[Key]["type"] - ? Key - : never - : never - ]: FluxActionOverride[Key]; -}; - -/** - * Augment this interface to override actions of {@link FluxAction} and add action types to {@link FluxActionType}. - * Actions whose type does not match their key will be omitted. - * @see https://typescriptlang.org/docs/handbook/declaration-merging#module-augmentation - */ -export interface FluxActionOverride extends Record {} - -export type ExcludeAction - = Action extends unknown - // Workaround to avoid ts(2589) - ? Exclude extends never - ? never - : Action & { type: Exclude; } - : never; - -export type ExtractAction - = Action extends unknown - // Workaround to avoid ts(2589) - ? Action["type"] & ActionType extends never - ? never - : Action & { type: ActionType; } - : never; - -/* -async function generateFluxActionType() { - const { wreq } = Vencord.Webpack; - - // Load all chunks - await Promise.all(Array.from( - wreq.u.toString().matchAll(/(?<=[{,])\d+(?=:")/g), - async ([id]) => - !(await (await fetch(wreq.p + wreq.u(id))).text()).includes("importScripts(") - && wreq.e(id) - )); - - // Import all modules - await Promise.all(Object.keys(wreq.m).map(async id => { - try { await wreq(id); } catch {} - })); - - const actionTypes = new Set(); - - const { FluxDispatcher } = Vencord.Webpack.Common; - for (const actionType in FluxDispatcher._subscriptions) - actionTypes.add(actionType); - for (const actionType in FluxDispatcher._actionHandlers._orderedActionHandlers) - actionTypes.add(actionType); - const { nodes } = FluxDispatcher._actionHandlers._dependencyGraph; - for (const dispatchToken in nodes) - for (const actionType in nodes[dispatchToken].actionHandler) - actionTypes.add(actionType); - console.log("actionTypes.size: " + actionTypes.size); - - const sortedActionTypes = [...actionTypes].sort((a, b) => { - const x = a.toLowerCase(); - const y = b.toLowerCase(); - return x < y ? -1 : x > y ? 1 : 0; - }); - return `"${sortedActionTypes.join('" | "')}"`; -} -*/ - -/* -function mergeFluxActionTypes(oldFluxActionType, newFluxActionType) { - const actionTypeRE = /(?<=")[^"|]+(?=")/g; - - const oldActionTypes = new Set(oldFluxActionType.match(actionTypeRE)); - console.log("Old action type count: " + oldActionTypes.size); - const newActionTypes = new Set(newFluxActionType.match(actionTypeRE)); - console.log("New action type count: " + newActionTypes.size); - - console.log("Unique old action type count: " + oldActionTypes.difference(newActionTypes).size); - console.log("Unique new action type count: " + newActionTypes.difference(oldActionTypes).size); - - const mergedFluxActionTypes = oldActionTypes.union(newActionTypes); - console.log("Merged action type count: " + mergedFluxActionTypes.size); - - const sortedActionTypes = [...mergedFluxActionTypes].sort((a, b) => { - const x = a.toLowerCase(); - const y = b.toLowerCase(); - return x < y ? -1 : x > y ? 1 : 0; - }); - return `"${sortedActionTypes.join('" | "')}"`; -} -*/ - -export type FluxActionType = DefaultFluxActionType - // eslint-disable-next-line @typescript-eslint/no-duplicate-type-constituents, @typescript-eslint/no-redundant-type-constituents - | keyof OmitIndexSignature & string | keyof ValidOverrides; - -/** - * Augment this interface to add action types to {@link FluxActionType}. - * @see https://typescriptlang.org/docs/handbook/declaration-merging#module-augmentation - */ -export interface FluxActionTypeOverride extends Record {} - -type DefaultFluxActionType = "ACCESSIBILITY_COLORBLIND_TOGGLE" | "ACCESSIBILITY_DARK_SIDEBAR_TOGGLE" | "ACCESSIBILITY_DESATURATE_ROLES_TOGGLE" | "ACCESSIBILITY_FORCED_COLORS_MODAL_SEEN" | "ACCESSIBILITY_KEYBOARD_MODE_DISABLE" | "ACCESSIBILITY_KEYBOARD_MODE_ENABLE" | "ACCESSIBILITY_LOW_CONTRAST_TOGGLE" | "ACCESSIBILITY_RESET_TO_DEFAULT" | "ACCESSIBILITY_SET_ALWAYS_SHOW_LINK_DECORATIONS" | "ACCESSIBILITY_SET_CONTRAST" | "ACCESSIBILITY_SET_FONT_SIZE" | "ACCESSIBILITY_SET_HIDE_TAGS" | "ACCESSIBILITY_SET_MESSAGE_GROUP_SPACING" | "ACCESSIBILITY_SET_PREFERS_REDUCED_MOTION" | "ACCESSIBILITY_SET_ROLE_STYLE" | "ACCESSIBILITY_SET_SATURATION" | "ACCESSIBILITY_SET_SYNC_FORCED_COLORS" | "ACCESSIBILITY_SET_ZOOM" | "ACCESSIBILITY_SUBMIT_BUTTON_TOGGLE" | "ACCESSIBILITY_SYNC_PROFILE_THEME_WITH_USER_THEME_TOGGLE" | "ACCESSIBILITY_SYSTEM_COLOR_PREFERENCES_CHANGED" | "ACCESSIBILITY_SYSTEM_PREFERS_CONTRAST_CHANGED" | "ACCESSIBILITY_SYSTEM_PREFERS_CROSSFADES_CHANGED" | "ACCESSIBILITY_SYSTEM_PREFERS_REDUCED_MOTION_CHANGED" | "ACK_APPROVED_GUILD_JOIN_REQUEST" | "ACKNOWLEDGE_CHANNEL_SAFETY_WARNING_TOOLTIP" | "ACTIVE_BOGO_PROMOTION_FETCH" | "ACTIVE_BOGO_PROMOTION_FETCH_FAIL" | "ACTIVE_BOGO_PROMOTION_FETCH_SUCCESS" | "ACTIVE_CHANNELS_FETCH_FAILURE" | "ACTIVE_CHANNELS_FETCH_START" | "ACTIVE_CHANNELS_FETCH_SUCCESS" | "ACTIVE_OUTBOUND_PROMOTIONS_FETCH" | "ACTIVE_OUTBOUND_PROMOTIONS_FETCH_FAIL" | "ACTIVE_OUTBOUND_PROMOTIONS_FETCH_SUCCESS" | "ACTIVITIES_WHATS_NEW_ACKNOWLEDGE_SECTION" | "ACTIVITIES_WHATS_NEW_MARK_OPENED_SECTION" | "ACTIVITY_INVITE_EDUCATION_DISMISS" | "ACTIVITY_INVITE_MODAL_CLOSE" | "ACTIVITY_INVITE_MODAL_OPEN" | "ACTIVITY_INVITE_MODAL_QUERY" | "ACTIVITY_INVITE_MODAL_SEND" | "ACTIVITY_JOIN" | "ACTIVITY_JOIN_FAILED" | "ACTIVITY_JOIN_LOADING" | "ACTIVITY_LAUNCH_FAIL" | "ACTIVITY_LAYOUT_MODE_UPDATE" | "ACTIVITY_METADATA_UPDATE" | "ACTIVITY_PLAY" | "ACTIVITY_SCREEN_ORIENTATION_UPDATE" | "ACTIVITY_START" | "ACTIVITY_SYNC" | "ACTIVITY_SYNC_STOP" | "ACTIVITY_UPDATE_FAIL" | "ACTIVITY_UPDATE_START" | "ACTIVITY_UPDATE_SUCCESS" | "ADD_STICKER_PREVIEW" | "ADMIN_ONBOARDING_GUIDE_HIDE" | "ADYEN_CASH_APP_PAY_SUBMIT_SUCCESS" | "ADYEN_CREATE_CASH_APP_PAY_COMPONENT_SUCCESS" | "ADYEN_CREATE_CLIENT_SUCCESS" | "ADYEN_TEARDOWN_CLIENT" | "AFK" | "AGE_GATE_FAILURE_MODAL_OPEN" | "AGE_GATE_LOGOUT_UNDERAGE_NEW_USER" | "AGE_GATE_MODAL_CLOSE" | "AGE_GATE_MODAL_OPEN" | "AGE_GATE_PREVENT_UNDERAGE_REGISTRATION" | "AGE_GATE_SUCCESS_MODAL_OPEN" | "ANALYTICS_LOG_CLEAR" | "APP_ICON_EDITOR_CLOSE" | "APP_ICON_EDITOR_OPEN" | "APP_ICON_EDITOR_RESET" | "APP_ICON_TRACK_IMPRESSION" | "APP_ICON_UPDATED" | "APP_LAUNCHER_DISMISS" | "APP_LAUNCHER_SET_ACTIVE_COMMAND" | "APP_LAUNCHER_SHOW" | "APP_RECOMMENDATIONS_FETCH_RECOMMENDATIONS" | "APP_RECOMMENDATIONS_FETCH_RECOMMENDATIONS_FAILURE" | "APP_RECOMMENDATIONS_FETCH_RECOMMENDATIONS_SUCCESS" | "APP_STATE_UPDATE" | "APP_VIEW_SET_HOME_LINK" | "APPLICATION_ACTIVITY_STATISTICS_FETCH_FAIL" | "APPLICATION_ACTIVITY_STATISTICS_FETCH_START" | "APPLICATION_ACTIVITY_STATISTICS_FETCH_SUCCESS" | "APPLICATION_ASSETS_FETCH" | "APPLICATION_ASSETS_FETCH_SUCCESS" | "APPLICATION_ASSETS_UPDATE" | "APPLICATION_BRANCHES_FETCH_FAIL" | "APPLICATION_BRANCHES_FETCH_SUCCESS" | "APPLICATION_BUILD_FETCH_START" | "APPLICATION_BUILD_FETCH_SUCCESS" | "APPLICATION_BUILD_NOT_FOUND" | "APPLICATION_BUILD_SIZE_FETCH_FAIL" | "APPLICATION_BUILD_SIZE_FETCH_START" | "APPLICATION_BUILD_SIZE_FETCH_SUCCESS" | "APPLICATION_COMMAND_AUTOCOMPLETE_REQUEST" | "APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE" | "APPLICATION_COMMAND_EXECUTE_BAD_VERSION" | "APPLICATION_COMMAND_INDEX_FETCH_FAILURE" | "APPLICATION_COMMAND_INDEX_FETCH_REQUEST" | "APPLICATION_COMMAND_INDEX_FETCH_SUCCESS" | "APPLICATION_COMMAND_SET_ACTIVE_COMMAND" | "APPLICATION_COMMAND_SET_PREFERRED_COMMAND" | "APPLICATION_COMMAND_UPDATE_CHANNEL_STATE" | "APPLICATION_COMMAND_UPDATE_OPTIONS" | "APPLICATION_COMMAND_USED" | "APPLICATION_DIRECTORY_FETCH_APPLICATION" | "APPLICATION_DIRECTORY_FETCH_APPLICATION_FAILURE" | "APPLICATION_DIRECTORY_FETCH_APPLICATION_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_CATEGORIES_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_COLLECTIONS" | "APPLICATION_DIRECTORY_FETCH_COLLECTIONS_FAILURE" | "APPLICATION_DIRECTORY_FETCH_COLLECTIONS_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_SEARCH" | "APPLICATION_DIRECTORY_FETCH_SEARCH_FAILURE" | "APPLICATION_DIRECTORY_FETCH_SEARCH_SUCCESS" | "APPLICATION_DIRECTORY_FETCH_SIMILAR_APPLICATIONS" | "APPLICATION_DIRECTORY_FETCH_SIMILAR_APPLICATIONS_FAILURE" | "APPLICATION_DIRECTORY_FETCH_SIMILAR_APPLICATIONS_SUCCESS" | "APPLICATION_FETCH" | "APPLICATION_FETCH_FAIL" | "APPLICATION_FETCH_SUCCESS" | "APPLICATION_STORE_ACCEPT_EULA" | "APPLICATION_STORE_ACCEPT_STORE_TERMS" | "APPLICATION_STORE_CLEAR_DATA" | "APPLICATION_STORE_DIRECTORY_LAYOUT_FETCH_FAILED" | "APPLICATION_STORE_DIRECTORY_LAYOUT_FETCH_SUCCESS" | "APPLICATION_STORE_DIRECTORY_LAYOUT_FETCHING" | "APPLICATION_STORE_LOCATION_CHANGE" | "APPLICATION_STORE_MATURE_AGREE" | "APPLICATION_STORE_RESET_NAVIGATION" | "APPLICATION_SUBSCRIPTIONS_CHANNEL_NOTICE_DISMISSED" | "APPLICATION_SUBSCRIPTIONS_FETCH_ENTITLEMENTS" | "APPLICATION_SUBSCRIPTIONS_FETCH_ENTITLEMENTS_FAILURE" | "APPLICATION_SUBSCRIPTIONS_FETCH_ENTITLEMENTS_SUCCESS" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTING_FOR_PLAN_SUCCESS" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTINGS" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTINGS_FAILURE" | "APPLICATION_SUBSCRIPTIONS_FETCH_LISTINGS_SUCCESS" | "APPLICATION_UPDATE" | "APPLICATIONS_FETCH" | "APPLICATIONS_FETCH_FAIL" | "APPLICATIONS_FETCH_SUCCESS" | "APPLICATIONS_SHELF_FETCH_FAIL" | "APPLICATIONS_SHELF_FETCH_START" | "APPLICATIONS_SHELF_FETCH_SUCCESS" | "APPLIED_BOOSTS_COOLDOWN_FETCH_SUCCESS" | "APPLIED_GUILD_BOOST_COUNT_UPDATE" | "AUDIO_INPUT_DETECTED" | "AUDIO_RESET" | "AUDIO_SET_ATTENUATION" | "AUDIO_SET_AUTOMATIC_GAIN_CONTROL" | "AUDIO_SET_DEBUG_LOGGING" | "AUDIO_SET_DISPLAY_SILENCE_WARNING" | "AUDIO_SET_ECHO_CANCELLATION" | "AUDIO_SET_INPUT_DEVICE" | "AUDIO_SET_INPUT_VOLUME" | "AUDIO_SET_LOCAL_PAN" | "AUDIO_SET_LOCAL_VIDEO_DISABLED" | "AUDIO_SET_LOCAL_VOLUME" | "AUDIO_SET_LOOPBACK" | "AUDIO_SET_MODE" | "AUDIO_SET_NOISE_CANCELLATION" | "AUDIO_SET_NOISE_SUPPRESSION" | "AUDIO_SET_OUTPUT_DEVICE" | "AUDIO_SET_OUTPUT_VOLUME" | "AUDIO_SET_QOS" | "AUDIO_SET_SELF_MUTE" | "AUDIO_SET_SIDECHAIN_COMPRESSION" | "AUDIO_SET_SIDECHAIN_COMPRESSION_STRENGTH" | "AUDIO_SET_SUBSYSTEM" | "AUDIO_SET_TEMPORARY_SELF_MUTE" | "AUDIO_TOGGLE_LOCAL_MUTE" | "AUDIO_TOGGLE_LOCAL_SOUNDBOARD_MUTE" | "AUDIO_TOGGLE_SELF_DEAF" | "AUDIO_TOGGLE_SELF_MUTE" | "AUDIO_VOLUME_CHANGE" | "AUDIT_LOG_FETCH_FAIL" | "AUDIT_LOG_FETCH_NEXT_PAGE_FAIL" | "AUDIT_LOG_FETCH_NEXT_PAGE_START" | "AUDIT_LOG_FETCH_NEXT_PAGE_SUCCESS" | "AUDIT_LOG_FETCH_START" | "AUDIT_LOG_FETCH_SUCCESS" | "AUDIT_LOG_FILTER_BY_ACTION" | "AUDIT_LOG_FILTER_BY_TARGET" | "AUDIT_LOG_FILTER_BY_USER" | "AUTH_INVITE_UPDATE" | "AUTH_SESSION_CHANGE" | "AUTHENTICATOR_CREATE" | "AUTHENTICATOR_DELETE" | "AUTHENTICATOR_UPDATE" | "AUTO_MODERATION_MENTION_RAID_DETECTION" | "AUTO_MODERATION_MENTION_RAID_NOTICE_DISMISS" | "BACKGROUND_SYNC" | "BACKGROUND_SYNC_CHANNEL_MESSAGES" | "BASIC_GUILD_FETCH" | "BASIC_GUILD_FETCH_FAILURE" | "BASIC_GUILD_FETCH_SUCCESS" | "BILLING_CREATE_REFERRAL_PREVIEW_FAIL" | "BILLING_CREATE_REFERRAL_PREVIEW_START" | "BILLING_CREATE_REFERRAL_PREVIEW_SUCCESS" | "BILLING_CREATE_REFERRAL_SUCCESS" | "BILLING_GET_REFERRAL_INCENTIVE_STATUS_FAIL" | "BILLING_GET_REFERRAL_INCENTIVE_STATUS_START" | "BILLING_GET_REFERRAL_INCENTIVE_STATUS_SUCCESS" | "BILLING_IP_COUNTRY_CODE_FAILURE" | "BILLING_IP_COUNTRY_CODE_FETCH_START" | "BILLING_LOCALIZED_PRICING_PROMO_FAILURE" | "BILLING_MOST_RECENT_SUBSCRIPTION_FETCH_SUCCESS" | "BILLING_NITRO_AFFINITY_FETCH_SUCCEEDED" | "BILLING_NITRO_AFFINITY_FETCHED" | "BILLING_PAYMENT_FETCH_SUCCESS" | "BILLING_PAYMENT_SOURCE_CREATE_FAIL" | "BILLING_PAYMENT_SOURCE_CREATE_START" | "BILLING_PAYMENT_SOURCE_CREATE_SUCCESS" | "BILLING_PAYMENT_SOURCE_FETCH_SUCCESS" | "BILLING_PAYMENT_SOURCE_REMOVE_CLEAR_ERROR" | "BILLING_PAYMENT_SOURCE_REMOVE_FAIL" | "BILLING_PAYMENT_SOURCE_REMOVE_START" | "BILLING_PAYMENT_SOURCE_REMOVE_SUCCESS" | "BILLING_PAYMENT_SOURCE_UPDATE_CLEAR_ERROR" | "BILLING_PAYMENT_SOURCE_UPDATE_FAIL" | "BILLING_PAYMENT_SOURCE_UPDATE_START" | "BILLING_PAYMENT_SOURCE_UPDATE_SUCCESS" | "BILLING_PAYMENT_SOURCES_FETCH_FAIL" | "BILLING_PAYMENT_SOURCES_FETCH_START" | "BILLING_PAYMENT_SOURCES_FETCH_SUCCESS" | "BILLING_PAYMENTS_FETCH_SUCCESS" | "BILLING_PERKS_RELEVANCE_FETCH_FAIL" | "BILLING_PERKS_RELEVANCE_FETCH_START" | "BILLING_PERKS_RELEVANCE_FETCH_SUCCESS" | "BILLING_POPUP_BRIDGE_CALLBACK" | "BILLING_POPUP_BRIDGE_STATE_UPDATE" | "BILLING_PREVIOUS_PREMIUM_SUBSCRIPTION_FETCH_SUCCESS" | "BILLING_PURCHASE_TOKEN_AUTH_CLEAR_STATE" | "BILLING_REFERRAL_RESOLVE_FAIL" | "BILLING_REFERRAL_RESOLVE_SUCCESS" | "BILLING_REFERRAL_TRIAL_OFFER_UPDATE" | "BILLING_REFERRALS_REMAINING_FETCH_FAIL" | "BILLING_REFERRALS_REMAINING_FETCH_START" | "BILLING_REFERRALS_REMAINING_FETCH_SUCCESS" | "BILLING_SET_IP_COUNTRY_CODE" | "BILLING_SET_LOCALIZED_PRICING_PROMO" | "BILLING_SUBSCRIPTION_CANCEL_FAIL" | "BILLING_SUBSCRIPTION_CANCEL_START" | "BILLING_SUBSCRIPTION_CANCEL_SUCCESS" | "BILLING_SUBSCRIPTION_FETCH_FAIL" | "BILLING_SUBSCRIPTION_FETCH_START" | "BILLING_SUBSCRIPTION_FETCH_SUCCESS" | "BILLING_SUBSCRIPTION_RESET" | "BILLING_SUBSCRIPTION_UPDATE_FAIL" | "BILLING_SUBSCRIPTION_UPDATE_START" | "BILLING_SUBSCRIPTION_UPDATE_SUCCESS" | "BILLING_USER_OFFER_ACKNOWLEDGED_SUCCESS" | "BILLING_USER_OFFER_FETCH_FAIL" | "BILLING_USER_OFFER_FETCH_START" | "BILLING_USER_OFFER_FETCH_SUCCESS" | "BILLING_USER_TRIAL_OFFER_ACKNOWLEDGED_SUCCESS" | "BILLING_USER_TRIAL_OFFER_FETCH_SUCCESS" | "BLOCKED_DOMAIN_LIST_FETCHED" | "BOOSTED_GUILD_GRACE_PERIOD_NOTICE_DISMISS" | "BRAINTREE_CREATE_CLIENT_SUCCESS" | "BRAINTREE_CREATE_PAYPAL_CLIENT_SUCCESS" | "BRAINTREE_CREATE_VENMO_CLIENT_SUCCESS" | "BRAINTREE_TEARDOWN_PAYPAL_CLIENT" | "BRAINTREE_TEARDOWN_VENMO_CLIENT" | "BRAINTREE_TOKENIZE_PAYPAL_FAIL" | "BRAINTREE_TOKENIZE_PAYPAL_START" | "BRAINTREE_TOKENIZE_PAYPAL_SUCCESS" | "BRAINTREE_TOKENIZE_VENMO_FAIL" | "BRAINTREE_TOKENIZE_VENMO_START" | "BRAINTREE_TOKENIZE_VENMO_SUCCESS" | "BROADCAST_START" | "BROADCAST_STOP" | "BROADCAST_VIEWERS_UPDATE" | "BROADCASTER_BUCKETS_RECEIVED" | "BROWSER_HANDOFF_BEGIN" | "BROWSER_HANDOFF_FROM_APP" | "BROWSER_HANDOFF_SET_USER" | "BROWSER_HANDOFF_UNAVAILABLE" | "BUILD_OVERRIDE_RESOLVED" | "BULK_ACK" | "BULK_CLEAR_RECENTS" | "BURST_REACTION_ANIMATION_ADD" | "BURST_REACTION_EFFECT_CLEAR" | "BURST_REACTION_EFFECT_PLAY" | "BURST_REACTION_PICKER_ANIMATION_ADD" | "BURST_REACTION_PICKER_ANIMATION_CLEAR" | "CACHE_LOADED" | "CACHE_LOADED_LAZY" | "CACHE_LOADED_LAZY_NO_CACHE" | "CACHED_EMOJIS_LOADED" | "CACHED_STICKERS_LOADED" | "CALL_CHAT_TOASTS_SET_ENABLED" | "CALL_CONNECT" | "CALL_CONNECT_MULTIPLE" | "CALL_CREATE" | "CALL_DELETE" | "CALL_ENQUEUE_RING" | "CALL_UPDATE" | "CAMPAIGN_CONTEXT_FETCH" | "CAMPAIGN_CONTEXT_FETCH_FAILURE" | "CAMPAIGN_CONTEXT_FETCH_SUCCESS" | "CANDIDATE_GAMES_CHANGE" | "CATEGORY_COLLAPSE" | "CATEGORY_COLLAPSE_ALL" | "CATEGORY_EXPAND" | "CATEGORY_EXPAND_ALL" | "CERTIFIED_DEVICES_SET" | "CHANGE_LOG_FETCH_FAILED" | "CHANGE_LOG_FETCH_SUCCESS" | "CHANGE_LOG_LOCK" | "CHANGE_LOG_MARK_SEEN" | "CHANGE_LOG_SET_CONFIG" | "CHANGE_LOG_SET_OVERRIDE" | "CHANGE_LOG_UNLOCK" | "CHANNEL_ACK" | "CHANNEL_CALL_POPOUT_WINDOW_OPEN" | "CHANNEL_COLLAPSE" | "CHANNEL_CREATE" | "CHANNEL_DELETE" | "CHANNEL_FOLLOWER_CREATED" | "CHANNEL_FOLLOWER_STATS_FETCH_FAILURE" | "CHANNEL_FOLLOWER_STATS_FETCH_SUCCESS" | "CHANNEL_FOLLOWING_PUBLISH_BUMP_DISMISSED" | "CHANNEL_FOLLOWING_PUBLISH_BUMP_HIDE_PERMANENTLY" | "CHANNEL_LOCAL_ACK" | "CHANNEL_MUTE_EXPIRED" | "CHANNEL_PINS_ACK" | "CHANNEL_PINS_UPDATE" | "CHANNEL_PRELOAD" | "CHANNEL_RECIPIENT_ADD" | "CHANNEL_RECIPIENT_REMOVE" | "CHANNEL_RTC_ACTIVE_CHANNELS" | "CHANNEL_RTC_SELECT_PARTICIPANT" | "CHANNEL_RTC_UPDATE_CHAT_OPEN" | "CHANNEL_RTC_UPDATE_LAYOUT" | "CHANNEL_RTC_UPDATE_PARTICIPANTS_OPEN" | "CHANNEL_RTC_UPDATE_STAGE_STREAM_SIZE" | "CHANNEL_RTC_UPDATE_STAGE_VIDEO_LIMIT_BOOST_UPSELL_DISMISSED" | "CHANNEL_RTC_UPDATE_VOICE_PARTICIPANTS_HIDDEN" | "CHANNEL_SAFETY_WARNING_FEEDBACK" | "CHANNEL_SELECT" | "CHANNEL_SETTINGS_CLOSE" | "CHANNEL_SETTINGS_INIT" | "CHANNEL_SETTINGS_LOADED_INVITES" | "CHANNEL_SETTINGS_OPEN" | "CHANNEL_SETTINGS_OVERWRITE_SELECT" | "CHANNEL_SETTINGS_PERMISSIONS_INIT" | "CHANNEL_SETTINGS_PERMISSIONS_SAVE_SUCCESS" | "CHANNEL_SETTINGS_PERMISSIONS_SELECT_PERMISSION" | "CHANNEL_SETTINGS_PERMISSIONS_SET_ADVANCED_MODE" | "CHANNEL_SETTINGS_PERMISSIONS_SUBMITTING" | "CHANNEL_SETTINGS_PERMISSIONS_UPDATE_PERMISSION" | "CHANNEL_SETTINGS_SET_SECTION" | "CHANNEL_SETTINGS_SUBMIT" | "CHANNEL_SETTINGS_SUBMIT_FAILURE" | "CHANNEL_SETTINGS_SUBMIT_SUCCESS" | "CHANNEL_SETTINGS_UPDATE" | "CHANNEL_STATUSES" | "CHANNEL_TOGGLE_MEMBERS_SECTION" | "CHANNEL_TOGGLE_SUMMARIES_SECTION" | "CHANNEL_UPDATES" | "CHECK_LAUNCHABLE_GAME" | "CHECKING_FOR_UPDATES" | "CHECKOUT_RECOVERY_STATUS_FETCH" | "CHECKOUT_RECOVERY_STATUS_FETCH_FAILURE" | "CHECKOUT_RECOVERY_STATUS_FETCH_SUCCESS" | "CLAN_SETTINGS_FETCH_START" | "CLAN_SETTINGS_FETCH_SUCCESS" | "CLAN_SETTINGS_SUBMIT" | "CLAN_SETTINGS_SUBMIT_ERROR" | "CLAN_SETTINGS_SUBMIT_SUCCESS" | "CLAN_SETTINGS_UPDATE" | "CLAN_SETUP_ERROR" | "CLAN_SETUP_RESET" | "CLAN_SETUP_SUBMIT" | "CLAN_SETUP_SUCCESS" | "CLAN_SETUP_UPDATE" | "CLEAR_AUTHENTICATION_ERRORS" | "CLEAR_CACHES" | "CLEAR_CHANNEL_SAFETY_WARNINGS" | "CLEAR_CONVERSATION_SUMMARIES" | "CLEAR_GRAVITY_READ_STATES" | "CLEAR_HANG_STATUS" | "CLEAR_INTERACTION_MODAL_STATE" | "CLEAR_LAST_SESSION_VOICE_CHANNEL_ID" | "CLEAR_MENTIONS" | "CLEAR_MESSAGES" | "CLEAR_OLDEST_UNREAD_MESSAGE" | "CLEAR_PENDING_CHANNEL_AND_ROLE_UPDATES" | "CLEAR_REMOTE_DISCONNECT_VOICE_CHANNEL_ID" | "CLEAR_STICKER_PREVIEW" | "CLIENT_THEMES_EDITOR_CLOSE" | "CLIENT_THEMES_EDITOR_OPEN" | "CLIPS_CLASSIFY_HARDWARE" | "CLIPS_CLEAR_CLIPS_SESSION" | "CLIPS_CLEAR_NEW_CLIP_IDS" | "CLIPS_DELETE_CLIP" | "CLIPS_DISMISS_EDUCATION" | "CLIPS_INIT" | "CLIPS_INIT_FAILURE" | "CLIPS_LOAD_DIRECTORY_SUCCESS" | "CLIPS_RESTART" | "CLIPS_SAVE_ANIMATION_END" | "CLIPS_SAVE_CLIP" | "CLIPS_SAVE_CLIP_ERROR" | "CLIPS_SAVE_CLIP_PLACEHOLDER" | "CLIPS_SAVE_CLIP_PLACEHOLDER_ERROR" | "CLIPS_SAVE_CLIP_START" | "CLIPS_SETTINGS_UPDATE" | "CLIPS_SHOW_CALL_WARNING" | "CLIPS_UPDATE_METADATA" | "CLOSE_SUSPENDED_USER" | "COLLECTIBLES_CATEGORIES_FETCH" | "COLLECTIBLES_CATEGORIES_FETCH_FAILURE" | "COLLECTIBLES_CATEGORIES_FETCH_SUCCESS" | "COLLECTIBLES_CATEGORY_ITEMS_VIEWED" | "COLLECTIBLES_CLAIM" | "COLLECTIBLES_CLAIM_FAILURE" | "COLLECTIBLES_CLAIM_SUCCESS" | "COLLECTIBLES_MARKETING_FETCH" | "COLLECTIBLES_MARKETING_FETCH_SUCCESS" | "COLLECTIBLES_PRODUCT_DETAILS_OPEN" | "COLLECTIBLES_PRODUCT_FETCH" | "COLLECTIBLES_PRODUCT_FETCH_FAILURE" | "COLLECTIBLES_PRODUCT_FETCH_SUCCESS" | "COLLECTIBLES_PURCHASES_FETCH" | "COLLECTIBLES_PURCHASES_FETCH_FAILURE" | "COLLECTIBLES_PURCHASES_FETCH_SUCCESS" | "COLLECTIBLES_SHOP_CLOSE" | "COLLECTIBLES_SHOP_OPEN" | "COMMANDS_MIGRATION_NOTICE_DISMISSED" | "COMMANDS_MIGRATION_OVERVIEW_TOOLTIP_DISMISSED" | "COMMANDS_MIGRATION_TOGGLE_TOOLTIP_DISMISSED" | "COMMANDS_MIGRATION_UPDATE_SUCCESS" | "COMPLETE_NEW_MEMBER_ACTION" | "COMPLETE_SIGN_UP" | "CONNECTED_DEVICE_IGNORE" | "CONNECTED_DEVICE_NEVER_SHOW_MODAL" | "CONNECTED_DEVICE_SET" | "CONNECTION_CLOSED" | "CONNECTION_OPEN" | "CONNECTION_OPEN_SUPPLEMENTAL" | "CONNECTION_RESUMED" | "CONNECTIONS_GRID_MODAL_HIDE" | "CONNECTIONS_GRID_MODAL_SHOW" | "CONSOLE_COMMAND_UPDATE" | "CONTENT_INVENTORY_CLEAR_DELETE_HISTORY_ERROR" | "CONTENT_INVENTORY_CLEAR_FEED" | "CONTENT_INVENTORY_DEBUG_CLEAR_IMPRESSIONS" | "CONTENT_INVENTORY_DEBUG_LOG_IMPRESSIONS" | "CONTENT_INVENTORY_DEBUG_TOGGLE_FAST_IMPRESSION_CAPPING" | "CONTENT_INVENTORY_DEBUG_TOGGLE_IMPRESSION_CAPPING" | "CONTENT_INVENTORY_DELETE_OUTBOX_ENTRY_FAILURE" | "CONTENT_INVENTORY_DELETE_OUTBOX_ENTRY_START" | "CONTENT_INVENTORY_DELETE_OUTBOX_ENTRY_SUCCESS" | "CONTENT_INVENTORY_FETCH_OUTBOX_FAILURE" | "CONTENT_INVENTORY_FETCH_OUTBOX_START" | "CONTENT_INVENTORY_FETCH_OUTBOX_SUCCESS" | "CONTENT_INVENTORY_INBOX_STALE" | "CONTENT_INVENTORY_MANUAL_REFRESH" | "CONTENT_INVENTORY_SET_FEED" | "CONTENT_INVENTORY_SET_FEED_STATE" | "CONTENT_INVENTORY_SET_FILTERS" | "CONTENT_INVENTORY_TOGGLE_FEED_HIDDEN" | "CONTENT_INVENTORY_TRACK_ITEM_IMPRESSIONS" | "CONTEXT_MENU_CLOSE" | "CONTEXT_MENU_OPEN" | "CONVERSATION_SUMMARY_UPDATE" | "CREATE_PENDING_REPLY" | "CREATE_REFERRALS_SUCCESS" | "CREATE_SHALLOW_PENDING_REPLY" | "CREATOR_MONETIZATION_NAG_ACTIVATE_ELIGIBLITY_FETCH_SUCCESS" | "CREATOR_MONETIZATION_PRICE_TIERS_FETCH" | "CREATOR_MONETIZATION_PRICE_TIERS_FETCH_FAILURE" | "CREATOR_MONETIZATION_PRICE_TIERS_FETCH_SUCCESS" | "CURRENT_BUILD_OVERRIDE_RESOLVED" | "CURRENT_USER_UPDATE" | "DCF_DAILY_CAP_OVERRIDE" | "DCF_HANDLE_DC_DISMISSED" | "DCF_HANDLE_DC_SHOWN" | "DCF_RESET" | "DECAY_READ_STATES" | "DELETE_INVALID_HANG_STATUSES" | "DELETE_PENDING_REPLY" | "DELETE_SUMMARY" | "DELETED_ENTITY_IDS" | "DETECTABLE_GAME_SUPPLEMENTAL_FETCH" | "DETECTABLE_GAME_SUPPLEMENTAL_FETCH_FAILURE" | "DETECTABLE_GAME_SUPPLEMENTAL_FETCH_SUCCESS" | "DETECTED_OFF_PLATFORM_PREMIUM_PERKS_DISMISS" | "DEV_TOOLS_DESIGN_TOGGLE_SET" | "DEV_TOOLS_DESIGN_TOGGLE_WEB_SET" | "DEV_TOOLS_DEV_SETTING_SET" | "DEV_TOOLS_SETTINGS_UPDATE" | "DEVELOPER_ACTIVITY_SHELF_FETCH_FAIL" | "DEVELOPER_ACTIVITY_SHELF_FETCH_START" | "DEVELOPER_ACTIVITY_SHELF_FETCH_SUCCESS" | "DEVELOPER_ACTIVITY_SHELF_MARK_ACTIVITY_USED" | "DEVELOPER_ACTIVITY_SHELF_SET_ACTIVITY_URL_OVERRIDE" | "DEVELOPER_ACTIVITY_SHELF_TOGGLE_USE_ACTIVITY_URL_OVERRIDE" | "DEVELOPER_ACTIVITY_SHELF_UPDATE_FILTER" | "DEVELOPER_OPTIONS_UPDATE_SETTINGS" | "DEVELOPER_TEST_MODE_AUTHORIZATION_FAIL" | "DEVELOPER_TEST_MODE_AUTHORIZATION_START" | "DEVELOPER_TEST_MODE_AUTHORIZATION_SUCCESS" | "DEVELOPER_TEST_MODE_RESET" | "DEVELOPER_TEST_MODE_RESET_ERROR" | "DISABLE_AUTOMATIC_ACK" | "DISCOVER_CHECKLIST_FETCH_FAILURE" | "DISCOVER_CHECKLIST_FETCH_START" | "DISCOVER_CHECKLIST_FETCH_SUCCESS" | "DISCOVER_GUILDS_FETCH_FAILURE" | "DISCOVER_GUILDS_FETCH_START" | "DISCOVER_GUILDS_FETCH_SUCCESS" | "DISMISS_CHANNEL_SAFETY_WARNINGS" | "DISMISS_FAVORITE_SUGGESTION" | "DISMISS_MEDIA_POST_SHARE_PROMPT" | "DISMISS_SIGN_UP" | "DISPATCH_APPLICATION_ADD_TO_INSTALLATIONS" | "DISPATCH_APPLICATION_CANCEL" | "DISPATCH_APPLICATION_ERROR" | "DISPATCH_APPLICATION_INSTALL" | "DISPATCH_APPLICATION_INSTALL_SCRIPTS_PROGRESS_UPDATE" | "DISPATCH_APPLICATION_LAUNCH_SETUP_COMPLETE" | "DISPATCH_APPLICATION_LAUNCH_SETUP_START" | "DISPATCH_APPLICATION_MOVE_UP" | "DISPATCH_APPLICATION_REMOVE_FINISHED" | "DISPATCH_APPLICATION_REPAIR" | "DISPATCH_APPLICATION_STATE_UPDATE" | "DISPATCH_APPLICATION_UNINSTALL" | "DISPATCH_APPLICATION_UPDATE" | "DISPLAYED_INVITE_SHOW" | "DOMAIN_MIGRATION_FAILURE" | "DOMAIN_MIGRATION_SKIP" | "DOMAIN_MIGRATION_START" | "DRAFT_CHANGE" | "DRAFT_CLEAR" | "DRAFT_SAVE" | "DRAWER_CLOSE" | "DRAWER_OPEN" | "DRAWER_SELECT_TAB" | "DROPS_ELIGIBILITY_FETCH_SUCCESS" | "DROPS_ENROLLED_USER_FETCH_SUCCESS" | "DROPS_FETCH_PROGRESS_FAILURE" | "DROPS_FETCH_PROGRESS_SUCCESS" | "DROPS_HEARTBEAT_FAILURE" | "DROPS_HEARTBEAT_SUCCESS" | "DROPS_PLATFORM_AVAILABILITY_SUCCESS" | "DROPS_UNENROLL_USER" | "DROPS_USER_STATUS_FETCH_FAILURE" | "DROPS_USER_STATUS_FETCH_SUCCESS" | "EMAIL_SETTINGS_FETCH_SUCCESS" | "EMAIL_SETTINGS_UPDATE" | "EMAIL_SETTINGS_UPDATE_SUCCESS" | "EMBEDDED_ACTIVITY_CLOSE" | "EMBEDDED_ACTIVITY_DEFERRED_OPEN" | "EMBEDDED_ACTIVITY_DISCONNECT" | "EMBEDDED_ACTIVITY_DISMISS_NEW_INDICATOR" | "EMBEDDED_ACTIVITY_FETCH_SHELF" | "EMBEDDED_ACTIVITY_FETCH_SHELF_FAIL" | "EMBEDDED_ACTIVITY_FETCH_SHELF_SUCCESS" | "EMBEDDED_ACTIVITY_LAUNCH_FAIL" | "EMBEDDED_ACTIVITY_LAUNCH_START" | "EMBEDDED_ACTIVITY_LAUNCH_SUCCESS" | "EMBEDDED_ACTIVITY_OPEN" | "EMBEDDED_ACTIVITY_SET_CONFIG" | "EMBEDDED_ACTIVITY_SET_FOCUSED_LAYOUT" | "EMBEDDED_ACTIVITY_SET_ORIENTATION_LOCK_STATE" | "EMBEDDED_ACTIVITY_SET_PANEL_MODE" | "EMBEDDED_ACTIVITY_UPDATE" | "EMBEDDED_ACTIVITY_UPDATE_V2" | "EMOJI_AUTOSUGGESTION_UPDATE" | "EMOJI_CAPTIONS_FETCH" | "EMOJI_CAPTIONS_FETCH_ERROR" | "EMOJI_CAPTIONS_FETCH_SUCCESS" | "EMOJI_DELETE" | "EMOJI_FETCH_FAILURE" | "EMOJI_FETCH_SUCCESS" | "EMOJI_TRACK_USAGE" | "EMOJI_UPLOAD_START" | "EMOJI_UPLOAD_STOP" | "ENABLE_AUTOMATIC_ACK" | "ENABLE_GUILD_SIGN_UP" | "ENABLE_USER_SIGN_UP" | "ENTITLEMENT_CREATE" | "ENTITLEMENT_DELETE" | "ENTITLEMENT_FETCH_APPLICATION_FAIL" | "ENTITLEMENT_FETCH_APPLICATION_START" | "ENTITLEMENT_FETCH_APPLICATION_SUCCESS" | "ENTITLEMENT_UPDATE" | "ENTITLEMENTS_FETCH_FOR_USER_FAIL" | "ENTITLEMENTS_FETCH_FOR_USER_START" | "ENTITLEMENTS_FETCH_FOR_USER_SUCCESS" | "ENTITLEMENTS_GIFTABLE_FETCH_SUCCESS" | "EULA_FETCH_SUCCESS" | "EVENT_DIRECTORY_FETCH_FAILURE" | "EVENT_DIRECTORY_FETCH_START" | "EVENT_DIRECTORY_FETCH_SUCCESS" | "EXPERIMENT_OVERRIDE_BUCKET" | "EXPERIMENTS_FETCH" | "EXPERIMENTS_FETCH_FAILURE" | "EXPERIMENTS_FETCH_SUCCESS" | "FAMILY_CENTER_FETCH_START" | "FAMILY_CENTER_HANDLE_TAB_SELECT" | "FAMILY_CENTER_INITIAL_LOAD" | "FAMILY_CENTER_LINK_CODE_FETCH_SUCCESS" | "FAMILY_CENTER_LINKED_USERS_FETCH_SUCCESS" | "FAMILY_CENTER_REQUEST_LINK_REMOVE_SUCCESS" | "FAMILY_CENTER_REQUEST_LINK_SUCCESS" | "FAMILY_CENTER_REQUEST_LINK_UPDATE_SUCCESS" | "FAMILY_CENTER_TEEN_ACTIVITY_FETCH_SUCCESS" | "FAMILY_CENTER_TEEN_ACTIVITY_MORE_FETCH_SUCCESS" | "FETCH_AUTH_SESSIONS_SUCCESS" | "FETCH_CLAN_DISCOVERY_PROFILE_LIST_SUCCESS" | "FETCH_CLAN_DISCOVERY_SEARCH_RESULT_SUCCESS" | "FETCH_GUILD_EVENT" | "FETCH_GUILD_EVENTS_FOR_GUILD" | "FETCH_GUILD_MEMBER_SUPPLEMENTAL_SUCCESS" | "FETCH_INTEGRATION_APPLICATION_IDS_FOR_MY_GUILDS" | "FETCH_INTEGRATION_APPLICATION_IDS_FOR_MY_GUILDS_FAILURE" | "FETCH_INTEGRATION_APPLICATION_IDS_FOR_MY_GUILDS_SUCCESS" | "FETCH_PRIVATE_CHANNEL_INTEGRATIONS_FAIL" | "FETCH_PRIVATE_CHANNEL_INTEGRATIONS_START" | "FETCH_PRIVATE_CHANNEL_INTEGRATIONS_SUCCESS" | "FETCH_STATIC_CLAN_LIST_FAILURE" | "FETCH_STATIC_CLAN_LIST_START" | "FETCH_STATIC_CLAN_LIST_SUCCESS" | "FINGERPRINT" | "FORCE_INVISIBLE" | "FORGOT_PASSWORD_REQUEST" | "FORGOT_PASSWORD_SENT" | "FORUM_SEARCH_CLEAR" | "FORUM_SEARCH_FAILURE" | "FORUM_SEARCH_QUERY_UPDATED" | "FORUM_SEARCH_START" | "FORUM_SEARCH_SUCCESS" | "FORUM_UNREADS" | "FRIEND_INVITE_CREATE_FAILURE" | "FRIEND_INVITE_CREATE_REQUEST" | "FRIEND_INVITE_CREATE_SUCCESS" | "FRIEND_INVITE_REVOKE_REQUEST" | "FRIEND_INVITE_REVOKE_SUCCESS" | "FRIEND_INVITES_FETCH_REQUEST" | "FRIEND_INVITES_FETCH_RESPONSE" | "FRIEND_SUGGESTION_CREATE" | "FRIEND_SUGGESTION_DELETE" | "FRIENDS_SET_INITIAL_SECTION" | "FRIENDS_SET_SECTION" | "GAME_CLOUD_SYNC_COMPLETE" | "GAME_CLOUD_SYNC_CONFLICT" | "GAME_CLOUD_SYNC_ERROR" | "GAME_CLOUD_SYNC_START" | "GAME_CLOUD_SYNC_UPDATE" | "GAME_CONSOLE_FETCH_DEVICES_FAIL" | "GAME_CONSOLE_FETCH_DEVICES_START" | "GAME_CONSOLE_FETCH_DEVICES_SUCCESS" | "GAME_CONSOLE_SELECT_DEVICE" | "GAME_DETECTION_DEBUGGING_START" | "GAME_DETECTION_DEBUGGING_STOP" | "GAME_DETECTION_DEBUGGING_TICK" | "GAME_DETECTION_WATCH_CANDIDATE_GAMES_START" | "GAME_ICON_UPDATE" | "GAME_INVITE_CLEAR_UNSEEN" | "GAME_INVITE_CREATE" | "GAME_INVITE_DELETE" | "GAME_INVITE_DELETE_MANY" | "GAME_INVITE_UPDATE_STATUS" | "GAME_LAUNCH_FAIL" | "GAME_LAUNCH_START" | "GAME_LAUNCH_SUCCESS" | "GAME_LAUNCHABLE_UPDATE" | "GAME_PROFILE_GET_SIMILAR_GAMES_SUCCESS" | "GAME_PROFILE_OPEN" | "GAMES_DATABASE_FETCH" | "GAMES_DATABASE_FETCH_FAIL" | "GAMES_DATABASE_UPDATE" | "GENERIC_PUSH_NOTIFICATION_SENT" | "GIF_PICKER_INITIALIZE" | "GIF_PICKER_QUERY" | "GIF_PICKER_QUERY_FAILURE" | "GIF_PICKER_QUERY_SUCCESS" | "GIF_PICKER_SUGGESTIONS_SUCCESS" | "GIF_PICKER_TRENDING_FETCH_SUCCESS" | "GIF_PICKER_TRENDING_SEARCH_TERMS_SUCCESS" | "GIFT_CODE_CREATE" | "GIFT_CODE_CREATE_SUCCESS" | "GIFT_CODE_REDEEM" | "GIFT_CODE_REDEEM_FAILURE" | "GIFT_CODE_REDEEM_SUCCESS" | "GIFT_CODE_RESOLVE" | "GIFT_CODE_RESOLVE_FAILURE" | "GIFT_CODE_RESOLVE_SUCCESS" | "GIFT_CODE_REVOKE_SUCCESS" | "GIFT_CODE_UPDATE" | "GIFT_CODES_FETCH" | "GIFT_CODES_FETCH_FAILURE" | "GIFT_CODES_FETCH_SUCCESS" | "GRAVITY_ACK_ITEMS" | "GRAVITY_CUSTOM_SCORES_UPDATED" | "GRAVITY_FEEDBACK_GIVEN" | "GRAVITY_TAB_OPENED" | "GUILD_ACK" | "GUILD_ANALYTICS_ENGAGEMENT_OVERVIEW_FETCH_FAILURE" | "GUILD_ANALYTICS_ENGAGEMENT_OVERVIEW_FETCH_SUCCESS" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_OVERVIEW_FETCH_FAILURE" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_OVERVIEW_FETCH_SUCCESS" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_RETENTION_FETCH_FAILURE" | "GUILD_ANALYTICS_GROWTH_ACTIVATION_RETENTION_FETCH_SUCCESS" | "GUILD_ANALYTICS_MEMBER_INSIGHTS_FETCH_SUCCESS" | "GUILD_APPLICATION_COMMAND_INDEX_UPDATE" | "GUILD_APPLICATIONS_FETCH_SUCCESS" | "GUILD_APPLIED_BOOSTS_FETCH_SUCCESS" | "GUILD_APPLY_BOOST_FAIL" | "GUILD_APPLY_BOOST_START" | "GUILD_APPLY_BOOST_SUCCESS" | "GUILD_BAN_ADD" | "GUILD_BAN_REMOVE" | "GUILD_BOOST_SLOT_CREATE" | "GUILD_BOOST_SLOT_UPDATE" | "GUILD_BOOST_SLOT_UPDATE_SUCCESS" | "GUILD_BOOST_SLOTS_FETCH_SUCCESS" | "GUILD_CREATE" | "GUILD_DELETE" | "GUILD_DIRECTORY_ADMIN_ENTRIES_FETCH_SUCCESS" | "GUILD_DIRECTORY_CACHED_SEARCH" | "GUILD_DIRECTORY_CATEGORY_SELECT" | "GUILD_DIRECTORY_COUNTS_FETCH_SUCCESS" | "GUILD_DIRECTORY_ENTRY_CREATE" | "GUILD_DIRECTORY_ENTRY_DELETE" | "GUILD_DIRECTORY_ENTRY_UPDATE" | "GUILD_DIRECTORY_FETCH_FAILURE" | "GUILD_DIRECTORY_FETCH_START" | "GUILD_DIRECTORY_FETCH_SUCCESS" | "GUILD_DIRECTORY_SEARCH_CLEAR" | "GUILD_DIRECTORY_SEARCH_FAILURE" | "GUILD_DIRECTORY_SEARCH_START" | "GUILD_DIRECTORY_SEARCH_SUCCESS" | "GUILD_DISCOVERY_CATEGORY_ADD" | "GUILD_DISCOVERY_CATEGORY_DELETE" | "GUILD_DISCOVERY_CATEGORY_FETCH_SUCCESS" | "GUILD_DISCOVERY_CATEGORY_UPDATE_FAIL" | "GUILD_DISCOVERY_CLEAR_SEARCH" | "GUILD_DISCOVERY_CLEAR_SEEN_GUILDS" | "GUILD_DISCOVERY_FETCH_FAILURE" | "GUILD_DISCOVERY_FETCH_START" | "GUILD_DISCOVERY_FETCH_SUCCESS" | "GUILD_DISCOVERY_GUILD_SEEN" | "GUILD_DISCOVERY_METADATA_FETCH_FAIL" | "GUILD_DISCOVERY_POPULAR_FETCH_FAILURE" | "GUILD_DISCOVERY_POPULAR_FETCH_START" | "GUILD_DISCOVERY_POPULAR_FETCH_SUCCESS" | "GUILD_DISCOVERY_SEARCH_COUNTS_FAIL" | "GUILD_DISCOVERY_SEARCH_FETCH_FAILURE" | "GUILD_DISCOVERY_SEARCH_FETCH_START" | "GUILD_DISCOVERY_SEARCH_FETCH_SUCCESS" | "GUILD_DISCOVERY_SEARCH_INIT" | "GUILD_DISCOVERY_SEARCH_UPDATE_COUNTS" | "GUILD_DISCOVERY_SELECT_CATEGORY" | "GUILD_DISCOVERY_SLUG_FETCH_FAIL" | "GUILD_DISCOVERY_SLUG_FETCH_SUCCESS" | "GUILD_EMOJIS_UPDATE" | "GUILD_FEATURE_ACK" | "GUILD_FOLDER_COLLAPSE" | "GUILD_FOLDER_CREATE_LOCAL" | "GUILD_FOLDER_DELETE_LOCAL" | "GUILD_FOLDER_EDIT_LOCAL" | "GUILD_GEO_RESTRICTED" | "GUILD_HOME_SETTINGS_FETCH_FAIL" | "GUILD_HOME_SETTINGS_FETCH_START" | "GUILD_HOME_SETTINGS_FETCH_SUCCESS" | "GUILD_HOME_SETTINGS_TOGGLE_ENABLED" | "GUILD_HOME_SETTINGS_UPDATE_FAIL" | "GUILD_HOME_SETTINGS_UPDATE_START" | "GUILD_HOME_SETTINGS_UPDATE_SUCCESS" | "GUILD_IDENTITY_SETTINGS_CLEAR_ERRORS" | "GUILD_IDENTITY_SETTINGS_INIT" | "GUILD_IDENTITY_SETTINGS_RESET_ALL_PENDING" | "GUILD_IDENTITY_SETTINGS_RESET_AND_CLOSE_FORM" | "GUILD_IDENTITY_SETTINGS_RESET_PENDING_MEMBER_CHANGES" | "GUILD_IDENTITY_SETTINGS_RESET_PENDING_PROFILE_CHANGES" | "GUILD_IDENTITY_SETTINGS_SET_GUILD" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_AVATAR" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_AVATAR_DECORATION" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_BANNER" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_BIO" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_NICKNAME" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_PROFILE_EFFECT_ID" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_PRONOUNS" | "GUILD_IDENTITY_SETTINGS_SET_PENDING_THEME_COLORS" | "GUILD_IDENTITY_SETTINGS_SUBMIT" | "GUILD_IDENTITY_SETTINGS_SUBMIT_FAILURE" | "GUILD_IDENTITY_SETTINGS_SUBMIT_SUCCESS" | "GUILD_INTEGRATIONS_UPDATE" | "GUILD_JOIN" | "GUILD_JOIN_REQUEST_BY_ID_FETCH_SUCCESS" | "GUILD_JOIN_REQUEST_CREATE" | "GUILD_JOIN_REQUEST_DELETE" | "GUILD_JOIN_REQUEST_UPDATE" | "GUILD_JOIN_REQUESTS_BULK_ACTION" | "GUILD_JOIN_REQUESTS_FETCH_FAILURE" | "GUILD_JOIN_REQUESTS_FETCH_START" | "GUILD_JOIN_REQUESTS_FETCH_SUCCESS" | "GUILD_JOIN_REQUESTS_SET_APPLICATION_TAB" | "GUILD_JOIN_REQUESTS_SET_SELECTED" | "GUILD_JOIN_REQUESTS_SET_SORT_ORDER" | "GUILD_MEMBER_ADD" | "GUILD_MEMBER_LIST_UPDATE" | "GUILD_MEMBER_PROFILE_UPDATE" | "GUILD_MEMBER_REMOVE" | "GUILD_MEMBER_UPDATE" | "GUILD_MEMBER_UPDATE_LOCAL" | "GUILD_MEMBERS_CHUNK_BATCH" | "GUILD_MEMBERS_REQUEST" | "GUILD_MOVE_BY_ID" | "GUILD_MUTE_EXPIRED" | "GUILD_NEW_MEMBER_ACTION_UPDATE_SUCCESS" | "GUILD_NEW_MEMBER_ACTIONS_DELETE_SUCCESS" | "GUILD_NEW_MEMBER_ACTIONS_FETCH_FAIL" | "GUILD_NEW_MEMBER_ACTIONS_FETCH_START" | "GUILD_NEW_MEMBER_ACTIONS_FETCH_SUCCESS" | "GUILD_NSFW_AGREE" | "GUILD_ONBOARDING_COMPLETE" | "GUILD_ONBOARDING_PROMPTS_FETCH_FAILURE" | "GUILD_ONBOARDING_PROMPTS_FETCH_START" | "GUILD_ONBOARDING_PROMPTS_FETCH_SUCCESS" | "GUILD_ONBOARDING_PROMPTS_LOCAL_UPDATE" | "GUILD_ONBOARDING_SELECT_OPTION" | "GUILD_ONBOARDING_SET_STEP" | "GUILD_ONBOARDING_START" | "GUILD_ONBOARDING_UPDATE_RESPONSES_SUCCESS" | "GUILD_POPOUT_FETCH_FAILURE" | "GUILD_POPOUT_FETCH_START" | "GUILD_POPOUT_FETCH_SUCCESS" | "GUILD_PRODUCT_CREATE" | "GUILD_PRODUCT_DELETE" | "GUILD_PRODUCT_FETCH" | "GUILD_PRODUCT_FETCH_FAILURE" | "GUILD_PRODUCT_FETCH_SUCCESS" | "GUILD_PRODUCT_UPDATE" | "GUILD_PRODUCTS_FETCH" | "GUILD_PRODUCTS_FETCH_FAILURE" | "GUILD_PRODUCTS_FETCH_SUCCESS" | "GUILD_PROGRESS_COMPLETED_SEEN" | "GUILD_PROGRESS_DISMISS" | "GUILD_PROGRESS_INITIALIZE" | "GUILD_PROMPT_VIEWED" | "GUILD_RECOMMENDATION_FETCH" | "GUILD_RECOMMENDATION_FETCH_FAILURE" | "GUILD_RECOMMENDATION_FETCH_SUCCESS" | "GUILD_RESOURCE_CHANNEL_UPDATE_SUCCESS" | "GUILD_ROLE_CONNECTION_ELIGIBILITY_FETCH_SUCCESS" | "GUILD_ROLE_CONNECTIONS_CONFIGURATIONS_FETCH_SUCCESS" | "GUILD_ROLE_CONNECTIONS_MODAL_SHOW" | "GUILD_ROLE_CREATE" | "GUILD_ROLE_DELETE" | "GUILD_ROLE_MEMBER_ADD" | "GUILD_ROLE_MEMBER_BULK_ADD" | "GUILD_ROLE_MEMBER_COUNT_FETCH_SUCCESS" | "GUILD_ROLE_MEMBER_COUNT_UPDATE" | "GUILD_ROLE_MEMBER_REMOVE" | "GUILD_ROLE_SUBSCRIPTIONS_CREATE_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_DELETE_GROUP_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_DELETE_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTING_FOR_PLAN" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTING_FOR_PLAN_SUCCESS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTINGS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTINGS_FAILURE" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_LISTINGS_SUCCESS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS_ABORTED" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS_FAILURE" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_RESTRICTIONS_SUCCESS" | "GUILD_ROLE_SUBSCRIPTIONS_FETCH_TEMPLATES" | "GUILD_ROLE_SUBSCRIPTIONS_STASH_TEMPLATE_CHANNELS" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_GROUP_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_LISTING" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_SUBSCRIPTION_TRIAL" | "GUILD_ROLE_SUBSCRIPTIONS_UPDATE_SUBSCRIPTIONS_SETTINGS" | "GUILD_ROLE_UPDATE" | "GUILD_SCHEDULED_EVENT_CREATE" | "GUILD_SCHEDULED_EVENT_DELETE" | "GUILD_SCHEDULED_EVENT_EXCEPTION_CREATE" | "GUILD_SCHEDULED_EVENT_EXCEPTION_DELETE" | "GUILD_SCHEDULED_EVENT_EXCEPTION_UPDATE" | "GUILD_SCHEDULED_EVENT_EXCEPTIONS_DELETE" | "GUILD_SCHEDULED_EVENT_RSVPS_FETCH_SUCESS" | "GUILD_SCHEDULED_EVENT_UPDATE" | "GUILD_SCHEDULED_EVENT_USER_ADD" | "GUILD_SCHEDULED_EVENT_USER_COUNTS_FETCH_SUCCESS" | "GUILD_SCHEDULED_EVENT_USER_REMOVE" | "GUILD_SCHEDULED_EVENT_USERS_FETCH_SUCCESS" | "GUILD_SEARCH_RECENT_MEMBERS" | "GUILD_SETTINGS_CANCEL_CHANGES" | "GUILD_SETTINGS_CLOSE" | "GUILD_SETTINGS_DEFAULT_CHANNELS_RESET" | "GUILD_SETTINGS_DEFAULT_CHANNELS_SAVE_FAILED" | "GUILD_SETTINGS_DEFAULT_CHANNELS_SAVE_SUCCESS" | "GUILD_SETTINGS_DEFAULT_CHANNELS_SUBMIT" | "GUILD_SETTINGS_DEFAULT_CHANNELS_TOGGLE" | "GUILD_SETTINGS_INIT" | "GUILD_SETTINGS_LOADED_BANS" | "GUILD_SETTINGS_LOADED_BANS_BATCH" | "GUILD_SETTINGS_LOADED_INTEGRATIONS" | "GUILD_SETTINGS_LOADED_INVITES" | "GUILD_SETTINGS_ONBOARDING_ADD_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_ADD_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_DELETE_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_DELETE_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_DISMISS_RESOURCE_CHANNEL_SUGGESTION" | "GUILD_SETTINGS_ONBOARDING_EDUCATION_UPSELL_DISMISSED" | "GUILD_SETTINGS_ONBOARDING_HOME_SETTINGS_RESET" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_EDIT" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_ERRORS" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_RESET" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_SAVE_FAILED" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_SAVE_SUCCESS" | "GUILD_SETTINGS_ONBOARDING_PROMPTS_SUBMIT" | "GUILD_SETTINGS_ONBOARDING_REORDER_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_REORDER_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_SET_MODE" | "GUILD_SETTINGS_ONBOARDING_STEP" | "GUILD_SETTINGS_ONBOARDING_UPDATE_NEW_MEMBER_ACTION" | "GUILD_SETTINGS_ONBOARDING_UPDATE_RESOURCE_CHANNEL" | "GUILD_SETTINGS_ONBOARDING_UPDATE_WELCOME_MESSAGE" | "GUILD_SETTINGS_OPEN" | "GUILD_SETTINGS_ROLE_SELECT" | "GUILD_SETTINGS_ROLES_CLEAR_PERMISSIONS" | "GUILD_SETTINGS_ROLES_INIT" | "GUILD_SETTINGS_ROLES_SAVE_FAIL" | "GUILD_SETTINGS_ROLES_SAVE_SUCCESS" | "GUILD_SETTINGS_ROLES_SORT_UPDATE" | "GUILD_SETTINGS_ROLES_SUBMITTING" | "GUILD_SETTINGS_ROLES_UPDATE_COLOR" | "GUILD_SETTINGS_ROLES_UPDATE_DESCRIPTION" | "GUILD_SETTINGS_ROLES_UPDATE_NAME" | "GUILD_SETTINGS_ROLES_UPDATE_PERMISSION_SET" | "GUILD_SETTINGS_ROLES_UPDATE_PERMISSIONS" | "GUILD_SETTINGS_ROLES_UPDATE_ROLE_CONNECTION_CONFIGURATIONS" | "GUILD_SETTINGS_ROLES_UPDATE_ROLE_ICON" | "GUILD_SETTINGS_ROLES_UPDATE_SETTINGS" | "GUILD_SETTINGS_SAFETY_PAGE" | "GUILD_SETTINGS_SAFETY_SET_SUBSECTION" | "GUILD_SETTINGS_SAVE_ROUTE_STACK" | "GUILD_SETTINGS_SET_MFA_SUCCESS" | "GUILD_SETTINGS_SET_SEARCH_QUERY" | "GUILD_SETTINGS_SET_SECTION" | "GUILD_SETTINGS_SET_VANITY_URL" | "GUILD_SETTINGS_SET_WIDGET" | "GUILD_SETTINGS_SUBMIT" | "GUILD_SETTINGS_SUBMIT_FAILURE" | "GUILD_SETTINGS_SUBMIT_SUCCESS" | "GUILD_SETTINGS_UPDATE" | "GUILD_SETTINGS_VANITY_URL_CLOSE" | "GUILD_SETTINGS_VANITY_URL_ERROR" | "GUILD_SETTINGS_VANITY_URL_RESET" | "GUILD_SETTINGS_VANITY_URL_SET" | "GUILD_SOUNDBOARD_FETCH" | "GUILD_SOUNDBOARD_SOUND_CREATE" | "GUILD_SOUNDBOARD_SOUND_DELETE" | "GUILD_SOUNDBOARD_SOUND_PLAY_END" | "GUILD_SOUNDBOARD_SOUND_PLAY_LOCALLY" | "GUILD_SOUNDBOARD_SOUND_PLAY_START" | "GUILD_SOUNDBOARD_SOUND_UPDATE" | "GUILD_SOUNDBOARD_SOUNDS_UPDATE" | "GUILD_STICKERS_CREATE_SUCCESS" | "GUILD_STICKERS_FETCH_SUCCESS" | "GUILD_STICKERS_UPDATE" | "GUILD_STOP_LURKING" | "GUILD_STOP_LURKING_FAILURE" | "GUILD_SUBSCRIPTIONS" | "GUILD_SUBSCRIPTIONS_ADD_MEMBER_UPDATES" | "GUILD_SUBSCRIPTIONS_CHANNEL" | "GUILD_SUBSCRIPTIONS_FLUSH" | "GUILD_SUBSCRIPTIONS_MEMBERS_ADD" | "GUILD_SUBSCRIPTIONS_MEMBERS_REMOVE" | "GUILD_SUBSCRIPTIONS_REMOVE_MEMBER_UPDATES" | "GUILD_TEMPLATE_ACCEPT" | "GUILD_TEMPLATE_ACCEPT_FAILURE" | "GUILD_TEMPLATE_ACCEPT_SUCCESS" | "GUILD_TEMPLATE_CREATE_SUCCESS" | "GUILD_TEMPLATE_DELETE_SUCCESS" | "GUILD_TEMPLATE_DIRTY_TOOLTIP_HIDE" | "GUILD_TEMPLATE_DIRTY_TOOLTIP_REFRESH" | "GUILD_TEMPLATE_LOAD_FOR_GUILD_SUCCESS" | "GUILD_TEMPLATE_MODAL_HIDE" | "GUILD_TEMPLATE_MODAL_SHOW" | "GUILD_TEMPLATE_PROMOTION_TOOLTIP_HIDE" | "GUILD_TEMPLATE_RESOLVE" | "GUILD_TEMPLATE_RESOLVE_FAILURE" | "GUILD_TEMPLATE_RESOLVE_SUCCESS" | "GUILD_TEMPLATE_SYNC_SUCCESS" | "GUILD_TOGGLE_COLLAPSE_MUTED" | "GUILD_TOP_READ_CHANNELS_FETCH_SUCCESS" | "GUILD_UNAPPLY_BOOST_FAIL" | "GUILD_UNAPPLY_BOOST_START" | "GUILD_UNAPPLY_BOOST_SUCCESS" | "GUILD_UNAVAILABLE" | "GUILD_UPDATE" | "GUILD_UPDATE_DISCOVERY_METADATA" | "GUILD_UPDATE_DISCOVERY_METADATA_FAIL" | "GUILD_UPDATE_DISCOVERY_METADATA_FROM_SERVER" | "GUILD_VERIFICATION_CHECK" | "HABITUAL_DND_CLEAR" | "HD_STREAMING_VIEWER_UPDATE_LAST_TRIGGERED" | "HIDE_ACTION_SHEET" | "HIDE_ACTION_SHEET_QUICK_SWITCHER" | "HIDE_KEYBOARD_SHORTCUTS" | "HIGH_FIVE_COMPLETE" | "HIGH_FIVE_COMPLETE_CLEAR" | "HIGH_FIVE_QUEUE" | "HIGH_FIVE_REMOVE" | "HIGH_FIVE_SET_ENABLED" | "HOTSPOT_HIDE" | "HOTSPOT_OVERRIDE_CLEAR" | "HOTSPOT_OVERRIDE_SET" | "HUB_VERIFY_EMAIL_FAILURE" | "HUB_VERIFY_EMAIL_SUCCESS" | "HYPESQUAD_ONLINE_MEMBERSHIP_JOIN_SUCCESS" | "HYPESQUAD_ONLINE_MEMBERSHIP_LEAVE_SUCCESS" | "I18N_LOAD_ERROR" | "I18N_LOAD_START" | "I18N_LOAD_SUCCESS" | "IDLE" | "IMPERSONATE_STOP" | "IMPERSONATE_UPDATE" | "INBOX_OPEN" | "INCOMING_CALL_MOVE" | "INITIALIZE_MEMBER_SAFETY_STORE" | "INSTALLATION_LOCATION_ADD" | "INSTALLATION_LOCATION_FETCH_METADATA" | "INSTALLATION_LOCATION_REMOVE" | "INSTALLATION_LOCATION_UPDATE" | "INSTANT_INVITE_CLEAR" | "INSTANT_INVITE_CREATE" | "INSTANT_INVITE_CREATE_FAILURE" | "INSTANT_INVITE_CREATE_SUCCESS" | "INSTANT_INVITE_REVOKE_SUCCESS" | "INTEGRATION_CREATE" | "INTEGRATION_DELETE" | "INTEGRATION_PERMISSION_SETTINGS_APPLICATION_PERMISSIONS_FETCH_FAILURE" | "INTEGRATION_PERMISSION_SETTINGS_CLEAR" | "INTEGRATION_PERMISSION_SETTINGS_COMMAND_UPDATE" | "INTEGRATION_PERMISSION_SETTINGS_COMMANDS_FETCH_FAILURE" | "INTEGRATION_PERMISSION_SETTINGS_COMMANDS_FETCH_SUCCESS" | "INTEGRATION_PERMISSION_SETTINGS_EDIT" | "INTEGRATION_PERMISSION_SETTINGS_INIT" | "INTEGRATION_PERMISSION_SETTINGS_RESET" | "INTEGRATION_QUERY" | "INTEGRATION_QUERY_FAILURE" | "INTEGRATION_QUERY_SUCCESS" | "INTEGRATION_SETTINGS_INIT" | "INTEGRATION_SETTINGS_SAVE_FAILURE" | "INTEGRATION_SETTINGS_SAVE_SUCCESS" | "INTEGRATION_SETTINGS_SET_SECTION" | "INTEGRATION_SETTINGS_START_EDITING_COMMAND" | "INTEGRATION_SETTINGS_START_EDITING_INTEGRATION" | "INTEGRATION_SETTINGS_START_EDITING_WEBHOOK" | "INTEGRATION_SETTINGS_STOP_EDITING_COMMAND" | "INTEGRATION_SETTINGS_STOP_EDITING_INTEGRATION" | "INTEGRATION_SETTINGS_STOP_EDITING_WEBHOOK" | "INTEGRATION_SETTINGS_SUBMITTING" | "INTEGRATION_SETTINGS_UPDATE_INTEGRATION" | "INTEGRATION_SETTINGS_UPDATE_WEBHOOK" | "INTERACTION_CREATE" | "INTERACTION_FAILURE" | "INTERACTION_IFRAME_MODAL_CLOSE" | "INTERACTION_IFRAME_MODAL_CREATE" | "INTERACTION_IFRAME_MODAL_KEY_CREATE" | "INTERACTION_MODAL_CREATE" | "INTERACTION_QUEUE" | "INTERACTION_SUCCESS" | "INVITE_ACCEPT" | "INVITE_ACCEPT_FAILURE" | "INVITE_ACCEPT_SUCCESS" | "INVITE_APP_NOT_OPENED" | "INVITE_APP_OPENED" | "INVITE_APP_OPENING" | "INVITE_MODAL_CLOSE" | "INVITE_MODAL_ERROR" | "INVITE_MODAL_OPEN" | "INVITE_RESOLVE" | "INVITE_RESOLVE_FAILURE" | "INVITE_RESOLVE_SUCCESS" | "INVITE_SUGGESTIONS_SEARCH" | "KEYBINDS_ADD_KEYBIND" | "KEYBINDS_DELETE_KEYBIND" | "KEYBINDS_ENABLE_ALL_KEYBINDS" | "KEYBINDS_REGISTER_GLOBAL_KEYBIND_ACTIONS" | "KEYBINDS_SET_KEYBIND" | "KEYBOARD_NAVIGATION_EXPLAINER_MODAL_SEEN" | "LAB_FEATURE_TOGGLE" | "LAYER_POP" | "LAYER_POP_ALL" | "LAYER_PUSH" | "LAYOUT_CREATE" | "LAYOUT_CREATE_WIDGETS" | "LAYOUT_DELETE_ALL_WIDGETS" | "LAYOUT_DELETE_WIDGET" | "LAYOUT_SET_PINNED" | "LAYOUT_SET_TOP_WIDGET" | "LAYOUT_UPDATE_WIDGET" | "LIBRARY_APPLICATION_ACTIVE_BRANCH_UPDATE" | "LIBRARY_APPLICATION_ACTIVE_LAUNCH_OPTION_UPDATE" | "LIBRARY_APPLICATION_FILTER_UPDATE" | "LIBRARY_APPLICATION_FLAGS_UPDATE_START" | "LIBRARY_APPLICATION_FLAGS_UPDATE_SUCCESS" | "LIBRARY_APPLICATION_UPDATE" | "LIBRARY_APPLICATIONS_TEST_MODE_ENABLED" | "LIBRARY_FETCH_SUCCESS" | "LIBRARY_TABLE_ACTIVE_ROW_ID_UPDATE" | "LIBRARY_TABLE_SORT_UPDATE" | "LIVE_CHANNEL_NOTICE_HIDE" | "LOAD_ARCHIVED_THREADS" | "LOAD_ARCHIVED_THREADS_FAIL" | "LOAD_ARCHIVED_THREADS_SUCCESS" | "LOAD_CHANNELS" | "LOAD_FORUM_POSTS" | "LOAD_FRIEND_SUGGESTIONS_FAILURE" | "LOAD_FRIEND_SUGGESTIONS_SUCCESS" | "LOAD_GRAVITY_CUSTOM_SCORES" | "LOAD_GRAVITY_DEHYDRATED" | "LOAD_GRAVITY_HYDRATED" | "LOAD_GUILD_AFFINITIES_SUCCESS" | "LOAD_INVITE_SUGGESTIONS" | "LOAD_MESSAGE_INTERACTION_DATA_SUCCESS" | "LOAD_MESSAGE_REQUESTS_SUPPLEMENTAL_DATA_ERROR" | "LOAD_MESSAGE_REQUESTS_SUPPLEMENTAL_DATA_SUCCESS" | "LOAD_MESSAGES" | "LOAD_MESSAGES_AROUND_SUCCESS" | "LOAD_MESSAGES_FAILURE" | "LOAD_MESSAGES_SUCCESS" | "LOAD_MESSAGES_SUCCESS_CACHED" | "LOAD_NOTIFICATION_CENTER_ITEMS" | "LOAD_NOTIFICATION_CENTER_ITEMS_FAILURE" | "LOAD_NOTIFICATION_CENTER_ITEMS_SUCCESS" | "LOAD_PINNED_MESSAGES" | "LOAD_PINNED_MESSAGES_FAILURE" | "LOAD_PINNED_MESSAGES_SUCCESS" | "LOAD_RECENT_MENTIONS" | "LOAD_RECENT_MENTIONS_FAILURE" | "LOAD_RECENT_MENTIONS_SUCCESS" | "LOAD_REGIONS" | "LOAD_RELATIONSHIPS_FAILURE" | "LOAD_RELATIONSHIPS_SUCCESS" | "LOAD_THREADS_SUCCESS" | "LOAD_USER_AFFINITIES" | "LOAD_USER_AFFINITIES_FAILURE" | "LOAD_USER_AFFINITIES_SUCCESS" | "LOAD_USER_AFFINITIES_V2" | "LOAD_USER_AFFINITIES_V2_FAILURE" | "LOAD_USER_AFFINITIES_V2_SUCCESS" | "LOCAL_ACTIVITY_UPDATE" | "LOCAL_MESSAGE_CREATE" | "LOCAL_MESSAGES_LOADED" | "LOGIN" | "LOGIN_ACCOUNT_DISABLED" | "LOGIN_ACCOUNT_SCHEDULED_FOR_DELETION" | "LOGIN_ATTEMPTED" | "LOGIN_FAILURE" | "LOGIN_MFA" | "LOGIN_MFA_FAILURE" | "LOGIN_MFA_SMS" | "LOGIN_MFA_SMS_FAILURE" | "LOGIN_MFA_SMS_REQUEST_SUCCESS" | "LOGIN_MFA_STEP" | "LOGIN_PASSWORD_RECOVERY_PHONE_VERIFICATION" | "LOGIN_PHONE_IP_AUTHORIZATION_REQUIRED" | "LOGIN_RESET" | "LOGIN_STATUS_RESET" | "LOGIN_SUCCESS" | "LOGIN_SUSPENDED_USER" | "LOGOUT" | "LOGOUT_AUTH_SESSIONS_SUCCESS" | "MASKED_LINK_ADD_TRUSTED_DOMAIN" | "MASKED_LINK_ADD_TRUSTED_PROTOCOL" | "MAX_MEMBER_COUNT_NOTICE_DISMISS" | "MEDIA_ENGINE_APPLY_MEDIA_FILTER_SETTINGS" | "MEDIA_ENGINE_APPLY_MEDIA_FILTER_SETTINGS_ERROR" | "MEDIA_ENGINE_APPLY_MEDIA_FILTER_SETTINGS_START" | "MEDIA_ENGINE_DEVICES" | "MEDIA_ENGINE_INTERACTION_REQUIRED" | "MEDIA_ENGINE_NOISE_CANCELLATION_ERROR_RESET" | "MEDIA_ENGINE_PERMISSION" | "MEDIA_ENGINE_SET_AEC_DUMP" | "MEDIA_ENGINE_SET_AUDIO_ENABLED" | "MEDIA_ENGINE_SET_EXPERIMENTAL_ENCODERS" | "MEDIA_ENGINE_SET_EXPERIMENTAL_SOUNDSHARE" | "MEDIA_ENGINE_SET_GO_LIVE_SOURCE" | "MEDIA_ENGINE_SET_HARDWARE_H264" | "MEDIA_ENGINE_SET_OPEN_H264" | "MEDIA_ENGINE_SET_VIDEO_DEVICE" | "MEDIA_ENGINE_SET_VIDEO_ENABLED" | "MEDIA_ENGINE_SET_VIDEO_HOOK" | "MEDIA_ENGINE_SOUNDSHARE_FAILED" | "MEDIA_ENGINE_SOUNDSHARE_TRANSMITTING" | "MEDIA_ENGINE_VIDEO_SOURCE_QUALITY_CHANGED" | "MEDIA_ENGINE_VIDEO_STATE_CHANGED" | "MEDIA_POST_EMBED_FETCH" | "MEDIA_POST_EMBED_FETCH_FAILURE" | "MEDIA_POST_EMBED_FETCH_SUCCESS" | "MEMBER_SAFETY_GUILD_MEMBER_SEARCH_SUCCESS" | "MEMBER_SAFETY_GUILD_MEMBER_UPDATE_BATCH" | "MEMBER_SAFETY_NEW_MEMBER_TIMESTAMP_REFRESH" | "MEMBER_SAFETY_PAGINATION_TOKEN_UPDATE" | "MEMBER_SAFETY_PAGINATION_UPDATE" | "MEMBER_SAFETY_SEARCH_STATE_UPDATE" | "MEMBER_VERIFICATION_FORM_FETCH_FAIL" | "MEMBER_VERIFICATION_FORM_UPDATE" | "MENTION_MODAL_CLOSE" | "MENTION_MODAL_OPEN" | "MESSAGE_ACK" | "MESSAGE_ACKED" | "MESSAGE_CREATE" | "MESSAGE_DELETE" | "MESSAGE_DELETE_BULK" | "MESSAGE_EDIT_FAILED_AUTOMOD" | "MESSAGE_END_EDIT" | "MESSAGE_EXPLICIT_CONTENT_FP_CREATE" | "MESSAGE_EXPLICIT_CONTENT_FP_SUBMIT" | "MESSAGE_EXPLICIT_CONTENT_SCAN_TIMEOUT" | "MESSAGE_LENGTH_UPSELL" | "MESSAGE_NOTIFICATION_SHOWN" | "MESSAGE_PREVIEWS_LOADED" | "MESSAGE_PREVIEWS_LOCALLY_LOADED" | "MESSAGE_REACTION_ADD" | "MESSAGE_REACTION_ADD_MANY" | "MESSAGE_REACTION_ADD_USERS" | "MESSAGE_REACTION_REMOVE" | "MESSAGE_REACTION_REMOVE_ALL" | "MESSAGE_REACTION_REMOVE_EMOJI" | "MESSAGE_REMINDER_NOTIFIED" | "MESSAGE_REQUEST_ACCEPT_OPTIMISTIC" | "MESSAGE_REQUEST_ACK" | "MESSAGE_REQUEST_CLEAR_ACK" | "MESSAGE_REVEAL" | "MESSAGE_SEND_FAILED" | "MESSAGE_SEND_FAILED_AUTOMOD" | "MESSAGE_START_EDIT" | "MESSAGE_UPDATE" | "MESSAGE_UPDATE_EDIT" | "MFA_CLEAR_BACKUP_CODES" | "MFA_DISABLE_SUCCESS" | "MFA_ENABLE_EMAIL_TOKEN" | "MFA_ENABLE_SUCCESS" | "MFA_SEEN_BACKUP_CODE_PROMPT" | "MFA_SEND_VERIFICATION_KEY" | "MFA_SMS_TOGGLE" | "MFA_SMS_TOGGLE_COMPLETE" | "MFA_VIEW_BACKUP_CODES" | "MFA_WEBAUTHN_CREDENTIALS_LOADED" | "MOBILE_NATIVE_UPDATE_CHECK_FINISHED" | "MOBILE_WEB_SIDEBAR_CLOSE" | "MOBILE_WEB_SIDEBAR_OPEN" | "MOD_VIEW_SEARCH_FINISH" | "MODAL_POP" | "MODAL_PUSH" | "MULTI_ACCOUNT_INVALIDATE_PUSH_SYNC_TOKENS" | "MULTI_ACCOUNT_MOBILE_EXPERIMENT_UPDATE" | "MULTI_ACCOUNT_MOVE_ACCOUNT" | "MULTI_ACCOUNT_REMOVE_ACCOUNT" | "MULTI_ACCOUNT_UPDATE_PUSH_SYNC_TOKEN" | "MULTI_ACCOUNT_VALIDATE_TOKEN_FAILURE" | "MULTI_ACCOUNT_VALIDATE_TOKEN_REQUEST" | "MULTI_ACCOUNT_VALIDATE_TOKEN_SUCCESS" | "MUTUAL_FRIENDS_FETCH_FAILURE" | "MUTUAL_FRIENDS_FETCH_START" | "MUTUAL_FRIENDS_FETCH_SUCCESS" | "NATIVE_APP_MODAL_OPEN_FAILED" | "NATIVE_APP_MODAL_OPENED" | "NATIVE_APP_MODAL_OPENING" | "NATIVE_SCREEN_SHARE_PICKER_CANCEL" | "NATIVE_SCREEN_SHARE_PICKER_ERROR" | "NATIVE_SCREEN_SHARE_PICKER_UPDATE" | "NEW_PAYMENT_SOURCE_ADDRESS_INFO_UPDATE" | "NEW_PAYMENT_SOURCE_CARD_INFO_UPDATE" | "NEW_PAYMENT_SOURCE_CLEAR_ERROR" | "NEW_PAYMENT_SOURCE_STRIPE_PAYMENT_REQUEST_UPDATE" | "NEWLY_ADDED_EMOJI_SEEN_ACKNOWLEDGED" | "NEWLY_ADDED_EMOJI_SEEN_PENDING" | "NEWLY_ADDED_EMOJI_SEEN_UPDATED" | "NOTICE_DISABLE" | "NOTICE_DISMISS" | "NOTICE_SHOW" | "NOTIFICATION_CENTER_CLEAR_GUILD_MENTIONS" | "NOTIFICATION_CENTER_ITEM_COMPLETED" | "NOTIFICATION_CENTER_ITEM_CREATE" | "NOTIFICATION_CENTER_ITEM_DELETE" | "NOTIFICATION_CENTER_ITEM_DELETE_FAILURE" | "NOTIFICATION_CENTER_ITEMS_ACK" | "NOTIFICATION_CENTER_ITEMS_ACK_FAILURE" | "NOTIFICATION_CENTER_ITEMS_LOCAL_ACK" | "NOTIFICATION_CENTER_REFRESH" | "NOTIFICATION_CENTER_SET_ACTIVE" | "NOTIFICATION_CENTER_SET_TAB" | "NOTIFICATION_CENTER_TAB_FOCUSED" | "NOTIFICATION_CLICK" | "NOTIFICATION_CREATE" | "NOTIFICATION_SETTINGS_UPDATE" | "NOTIFICATIONS_SET_DESKTOP_TYPE" | "NOTIFICATIONS_SET_DISABLE_UNREAD_BADGE" | "NOTIFICATIONS_SET_DISABLED_SOUNDS" | "NOTIFICATIONS_SET_NOTIFY_MESSAGES_IN_SELECTED_CHANNEL" | "NOTIFICATIONS_SET_PERMISSION_STATE" | "NOTIFICATIONS_SET_TASKBAR_FLASH" | "NOTIFICATIONS_SET_TTS_TYPE" | "NOTIFICATIONS_TOGGLE_ALL_DISABLED" | "NOW_PLAYING_MOUNTED" | "NOW_PLAYING_UNMOUNTED" | "NUF_COMPLETE" | "NUF_NEW_USER" | "OAUTH2_TOKEN_REVOKE" | "ONLINE_GUILD_MEMBER_COUNT_UPDATE" | "OUTBOUND_PROMOTION_NOTICE_DISMISS" | "OUTBOUND_PROMOTIONS_SEEN" | "OVERLAY_ACTIVATE_REGION" | "OVERLAY_CALL_PRIVATE_CHANNEL" | "OVERLAY_CRASHED" | "OVERLAY_DEACTIVATE_ALL_REGIONS" | "OVERLAY_DISABLE_EXTERNAL_LINK_ALERT" | "OVERLAY_FOCUSED" | "OVERLAY_INCOMPATIBLE_APP" | "OVERLAY_INITIALIZE" | "OVERLAY_JOIN_GAME" | "OVERLAY_MESSAGE_EVENT_ACTION" | "OVERLAY_NOTIFICATION_EVENT" | "OVERLAY_NOTIFY_READY_TO_SHOW" | "OVERLAY_READY" | "OVERLAY_SELECT_CALL" | "OVERLAY_SELECT_CHANNEL" | "OVERLAY_SET_ASSOCIATED_GAME" | "OVERLAY_SET_AVATAR_SIZE_MODE" | "OVERLAY_SET_CLICK_ZONES" | "OVERLAY_SET_DISPLAY_NAME_MODE" | "OVERLAY_SET_DISPLAY_USER_MODE" | "OVERLAY_SET_ENABLED" | "OVERLAY_SET_INPUT_LOCKED" | "OVERLAY_SET_NOT_IDLE" | "OVERLAY_SET_NOTIFICATION_POSITION_MODE" | "OVERLAY_SET_PREVIEW_IN_GAME_MODE" | "OVERLAY_SET_SHOW_KEYBIND_INDICATORS" | "OVERLAY_SET_TEXT_CHAT_NOTIFICATION_MODE" | "OVERLAY_SET_TEXT_WIDGET_OPACITY" | "OVERLAY_SET_UI_LOCKED" | "OVERLAY_SOUNDBOARD_SOUNDS_FETCH_REQUEST" | "OVERLAY_START_SESSION" | "OVERLAY_SUCCESSFULLY_SHOWN" | "OVERLAY_WIDGET_CHANGED" | "OWNED_APPLICATION_BRANCHES_FETCH_SUCCESS" | "PASSIVE_UPDATE_V2" | "PASSWORD_UPDATED" | "PASSWORDLESS_FAILURE" | "PASSWORDLESS_START" | "PAYMENT_AUTHENTICATION_CLEAR_ERROR" | "PAYMENT_AUTHENTICATION_ERROR" | "PAYMENT_UPDATE" | "PERMISSION_CLEAR_ELEVATED_PROCESS" | "PERMISSION_CLEAR_PTT_ADMIN_WARNING" | "PERMISSION_CLEAR_SUPPRESS_WARNING" | "PERMISSION_CLEAR_VAD_WARNING" | "PERMISSION_CONTINUE_NONELEVATED_PROCESS" | "PERMISSION_REQUEST_ELEVATED_PROCESS" | "PERMIUM_PERKS_DEMO_FRAME_ANIMATION_PLAYED" | "PHONE_SET_COUNTRY_CODE" | "PICTURE_IN_PICTURE_CLOSE" | "PICTURE_IN_PICTURE_HIDE" | "PICTURE_IN_PICTURE_MOVE" | "PICTURE_IN_PICTURE_OPEN" | "PICTURE_IN_PICTURE_RESIZE" | "PICTURE_IN_PICTURE_SHOW" | "PICTURE_IN_PICTURE_UPDATE_RECT" | "PICTURE_IN_PICTURE_UPDATE_SELECTED_WINDOW" | "POGGERMODE_ACHIEVEMENT_UNLOCK" | "POGGERMODE_SETTINGS_UPDATE" | "POGGERMODE_TEMPORARILY_DISABLED" | "POGGERMODE_UPDATE_COMBO" | "POGGERMODE_UPDATE_MESSAGE_COMBO" | "POMELO_ATTEMPT_FAILURE" | "POMELO_ATTEMPT_SUCCESS" | "POMELO_REGISTRATION_SUGGESTIONS_SUCCESS" | "POMELO_SUGGESTIONS_FETCH" | "POMELO_SUGGESTIONS_RESET" | "POMELO_SUGGESTIONS_SUCCESS" | "POPOUT_WINDOW_ADD_STYLESHEET" | "POPOUT_WINDOW_CLOSE" | "POPOUT_WINDOW_OPEN" | "POPOUT_WINDOW_SET_ALWAYS_ON_TOP" | "POST_CONNECTION_OPEN" | "PREMIUM_MARKETING_DATA_READY" | "PREMIUM_MARKETING_PREVIEW" | "PREMIUM_PAYMENT_ERROR_CLEAR" | "PREMIUM_PAYMENT_MODAL_CLOSE" | "PREMIUM_PAYMENT_MODAL_OPEN" | "PREMIUM_PAYMENT_SUBSCRIBE_FAIL" | "PREMIUM_PAYMENT_SUBSCRIBE_START" | "PREMIUM_PAYMENT_SUBSCRIBE_SUCCESS" | "PREMIUM_PAYMENT_UPDATE_FAIL" | "PREMIUM_PAYMENT_UPDATE_SUCCESS" | "PREMIUM_PERKS_DEMO_ACTIVATE_FAILURE" | "PREMIUM_PERKS_DEMO_ACTIVATE_SUCCESS" | "PREMIUM_PERKS_DEMO_COMPLETE" | "PREMIUM_PERKS_DEMO_ENABLED" | "PREMIUM_PERKS_DEMO_OPT_IN_POPOUT_DISMISSED" | "PREMIUM_PERKS_DEMO_OPT_IN_POPOUT_SHOULD_SHOW" | "PREMIUM_PERKS_DEMO_OVERRIDE" | "PREMIUM_PERKS_DEMO_POPOUT_DISMISSED" | "PREMIUM_PERKS_DEMO_UI_RESET" | "PREMIUM_PERKS_DEMOS_FETCH_FAILURE" | "PREMIUM_PERKS_DEMOS_FETCH_SUCCESS" | "PREMIUM_REQUIRED_MODAL_CLOSE" | "PREMIUM_REQUIRED_MODAL_OPEN" | "PRESENCE_UPDATES" | "PRESENCES_REPLACE" | "PRIVATE_CHANNEL_INTEGRATION_CREATE" | "PRIVATE_CHANNEL_INTEGRATION_DELETE" | "PRIVATE_CHANNEL_INTEGRATION_UPDATE" | "PRIVATE_CHANNEL_RECIPIENTS_ADD_USER" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_CLOSE" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_OPEN" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_QUERY" | "PRIVATE_CHANNEL_RECIPIENTS_INVITE_SELECT" | "PRIVATE_CHANNEL_RECIPIENTS_REMOVE_USER" | "PROFILE_CUSTOMIZATION_OPEN_PREVIEW_MODAL" | "PROFILE_EFFECTS_SET_TRY_IT_OUT" | "PROFILE_PANEL_TOGGLE_SECTION" | "PROXY_BLOCKED_REQUEST" | "PUBLIC_UPSELL_NOTICE_DISMISS" | "PURCHASED_ITEMS_FESTIVITY_FETCH_WOW_MOMENT_MEDIA_SUCCESS" | "PURCHASED_ITEMS_FESTIVITY_IS_FETCHING_WOW_MOMENT_MEDIA" | "PURCHASED_ITEMS_FESTIVITY_SET_CAN_PLAY_WOW_MOMENT" | "PUSH_NOTIFICATION_CLICK" | "QUESTS_CLAIM_REWARD_BEGIN" | "QUESTS_CLAIM_REWARD_FAILURE" | "QUESTS_CLAIM_REWARD_SUCCESS" | "QUESTS_DELIVERY_OVERRIDE" | "QUESTS_DISMISS_CONTENT_BEGIN" | "QUESTS_DISMISS_CONTENT_FAILURE" | "QUESTS_DISMISS_CONTENT_SUCCESS" | "QUESTS_DISMISS_PROGRESS_TRACKING_FAILURE_NOTICE" | "QUESTS_ENROLL_BEGIN" | "QUESTS_ENROLL_FAILURE" | "QUESTS_ENROLL_SUCCESS" | "QUESTS_FETCH_CURRENT_QUESTS_BEGIN" | "QUESTS_FETCH_CURRENT_QUESTS_FAILURE" | "QUESTS_FETCH_CURRENT_QUESTS_SUCCESS" | "QUESTS_FETCH_REWARD_CODE_BEGIN" | "QUESTS_FETCH_REWARD_CODE_FAILURE" | "QUESTS_FETCH_REWARD_CODE_SUCCESS" | "QUESTS_PREVIEW_UPDATE_SUCCESS" | "QUESTS_SELECT_TASK_PLATFORM" | "QUESTS_SEND_HEARTBEAT_FAILURE" | "QUESTS_SEND_HEARTBEAT_SUCCESS" | "QUESTS_USER_STATUS_UPDATE" | "QUEUE_INTERACTION_COMPONENT_STATE" | "QUICKSWITCHER_HIDE" | "QUICKSWITCHER_SEARCH" | "QUICKSWITCHER_SELECT" | "QUICKSWITCHER_SHOW" | "QUICKSWITCHER_SWITCH_TO" | "RECEIVE_CHANNEL_AFFINITIES" | "RECEIVE_CHANNEL_SUMMARIES" | "RECEIVE_CHANNEL_SUMMARIES_BULK" | "RECEIVE_CHANNEL_SUMMARY" | "RECENT_MENTION_DELETE" | "RECOMPUTE_READ_STATES" | "REFERRALS_FETCH_ELIGIBLE_USER_FAIL" | "REFERRALS_FETCH_ELIGIBLE_USER_START" | "REFERRALS_FETCH_ELIGIBLE_USER_SUCCESS" | "REGISTER" | "REGISTER_FAILURE" | "REGISTER_SAVE_FORM" | "REGISTER_SUCCESS" | "RELATIONSHIP_ADD" | "RELATIONSHIP_PENDING_INCOMING_REMOVED" | "RELATIONSHIP_REMOVE" | "RELATIONSHIP_UPDATE" | "RELOAD_GRAVITY" | "REMOTE_COMMAND" | "REMOTE_SESSION_CONNECT" | "REMOTE_SESSION_DISCONNECT" | "REMOVE_AUTOMOD_MESSAGE_NOTICE" | "REQUEST_CHANNEL_AFFINITIES" | "REQUEST_CHANNEL_SUMMARIES" | "REQUEST_CHANNEL_SUMMARIES_BULK" | "REQUEST_CHANNEL_SUMMARY" | "REQUEST_FORUM_UNREADS" | "REQUEST_SOUNDBOARD_SOUNDS" | "RESET_NOTIFICATION_CENTER" | "RESET_PAYMENT_ID" | "RESET_PREVIEW_CLIENT_THEME" | "RESET_SOCKET" | "RESORT_THREADS" | "RPC_APP_AUTHENTICATED" | "RPC_APP_CONNECTED" | "RPC_APP_DISCONNECTED" | "RPC_NOTIFICATION_CREATE" | "RPC_SERVER_READY" | "RTC_CONNECTION_CLIENT_CONNECT" | "RTC_CONNECTION_CLIENT_DISCONNECT" | "RTC_CONNECTION_FLAGS" | "RTC_CONNECTION_LOSS_RATE" | "RTC_CONNECTION_PING" | "RTC_CONNECTION_PLATFORM" | "RTC_CONNECTION_ROSTER_MAP_UPDATE" | "RTC_CONNECTION_SECURE_FRAMES_UPDATE" | "RTC_CONNECTION_STATE" | "RTC_CONNECTION_UPDATE_ID" | "RTC_CONNECTION_USER_CREATE" | "RTC_CONNECTION_VIDEO" | "RTC_DEBUG_MODAL_CLOSE" | "RTC_DEBUG_MODAL_OPEN" | "RTC_DEBUG_MODAL_OPEN_REPLAY" | "RTC_DEBUG_MODAL_OPEN_REPLAY_AT_PATH" | "RTC_DEBUG_MODAL_SET_SECTION" | "RTC_DEBUG_MODAL_UPDATE" | "RTC_DEBUG_MODAL_UPDATE_VIDEO_OUTPUT" | "RTC_DEBUG_POPOUT_WINDOW_OPEN" | "RTC_DEBUG_SET_RECORDING_FLAG" | "RTC_DEBUG_SET_SIMULCAST_OVERRIDE" | "RTC_LATENCY_TEST_COMPLETE" | "RUNNING_GAME_ADD_OVERRIDE" | "RUNNING_GAME_DELETE_ENTRY" | "RUNNING_GAME_EDIT_NAME" | "RUNNING_GAME_TOGGLE_DETECTION" | "RUNNING_GAME_TOGGLE_OVERLAY" | "RUNNING_GAMES_CHANGE" | "RUNNING_STREAMER_TOOLS_CHANGE" | "SAFETY_HUB_APPEAL_CLOSE" | "SAFETY_HUB_APPEAL_OPEN" | "SAFETY_HUB_APPEAL_SIGNAL_CUSTOM_INPUT_CHANGE" | "SAFETY_HUB_APPEAL_SIGNAL_SELECT" | "SAFETY_HUB_FETCH_CLASSIFICATION_FAILURE" | "SAFETY_HUB_FETCH_CLASSIFICATION_START" | "SAFETY_HUB_FETCH_CLASSIFICATION_SUCCESS" | "SAFETY_HUB_FETCH_FAILURE" | "SAFETY_HUB_FETCH_START" | "SAFETY_HUB_FETCH_SUCCESS" | "SAFETY_HUB_REQUEST_REVIEW_FAILURE" | "SAFETY_HUB_REQUEST_REVIEW_START" | "SAFETY_HUB_REQUEST_REVIEW_SUCCESS" | "SAVE_LAST_NON_VOICE_ROUTE" | "SAVE_LAST_ROUTE" | "SAVED_MESSAGE_CREATE" | "SAVED_MESSAGE_DELETE" | "SAVED_MESSAGES_UPDATE" | "SEARCH_ADD_HISTORY" | "SEARCH_AUTOCOMPLETE_QUERY_UPDATE" | "SEARCH_CLEAR_HISTORY" | "SEARCH_EDITOR_STATE_CHANGE" | "SEARCH_EDITOR_STATE_CLEAR" | "SEARCH_ENSURE_SEARCH_STATE" | "SEARCH_FINISH" | "SEARCH_INDEXING" | "SEARCH_MODAL_CLOSE" | "SEARCH_MODAL_OPEN" | "SEARCH_REMOVE_HISTORY" | "SEARCH_SCREEN_OPEN" | "SEARCH_SET_SHOW_BLOCKED_RESULTS" | "SEARCH_START" | "SECURE_FRAMES_SETTINGS_UPDATE" | "SECURE_FRAMES_TRANSIENT_KEY_CREATE" | "SECURE_FRAMES_TRANSIENT_KEY_DELETE" | "SECURE_FRAMES_UPLOADED_KEY_VERSION_ADD" | "SECURE_FRAMES_UPLOADED_KEY_VERSION_CLEAR" | "SECURE_FRAMES_USER_VERIFIED_KEYS_DELETE" | "SECURE_FRAMES_VERIFIED_KEY_CREATE" | "SECURE_FRAMES_VERIFIED_KEY_DELETE" | "SELECT_HOME_RESOURCE_CHANNEL" | "SELECT_NEW_MEMBER_ACTION_CHANNEL" | "SELECTIVELY_SYNCED_USER_SETTINGS_UPDATE" | "SELF_PRESENCE_STORE_UPDATE" | "SESSIONS_REPLACE" | "SET_CHANNEL_BITRATE" | "SET_CHANNEL_VIDEO_QUALITY_MODE" | "SET_CONSENT_REQUIRED" | "SET_CREATED_AT_OVERRIDE" | "SET_GRAVITY_FILTERS" | "SET_GRAVITY_SELECTED_CHANNEL" | "SET_GRAVITY_SELECTED_SUMMARY" | "SET_GUILD_FOLDER_EXPANDED" | "SET_HIGHLIGHTED_SUMMARY" | "SET_INTERACTION_COMPONENT_STATE" | "SET_LOCATION_METADATA" | "SET_LOGIN_CREDENTIALS" | "SET_NATIVE_PERMISSION" | "SET_PENDING_REPLY_SHOULD_MENTION" | "SET_PREMIUM_TYPE_OVERRIDE" | "SET_RECENT_MENTIONS_FILTER" | "SET_RECENT_MENTIONS_STALE" | "SET_RECENTLY_ACTIVE_COLLAPSED" | "SET_SELECTED_SUMMARY" | "SET_SOUNDPACK" | "SET_STREAM_APP_INTENT" | "SET_SUMMARY_FEEDBACK" | "SET_TRACK_TRIGGERS" | "SET_TTS_SPEECH_RATE" | "SET_VAD_PERMISSION" | "SHARED_CANVAS_CLEAR_DRAWABLES" | "SHARED_CANVAS_DRAW_LINE_POINT" | "SHARED_CANVAS_SET_DRAW_MODE" | "SHARED_CANVAS_UPDATE_EMOJI_HOSE" | "SHARED_CANVAS_UPDATE_LINE_POINTS" | "SHOW_ACTION_SHEET" | "SHOW_ACTION_SHEET_QUICK_SWITCHER" | "SHOW_KEYBOARD_SHORTCUTS" | "SIDEBAR_CLOSE" | "SIDEBAR_CLOSE_GUILD" | "SIDEBAR_CREATE_THREAD" | "SIDEBAR_VIEW_CHANNEL" | "SIDEBAR_VIEW_GUILD" | "SKU_FETCH_FAIL" | "SKU_FETCH_START" | "SKU_FETCH_SUCCESS" | "SKU_PURCHASE_AWAIT_CONFIRMATION" | "SKU_PURCHASE_CLEAR_ERROR" | "SKU_PURCHASE_FAIL" | "SKU_PURCHASE_MODAL_CLOSE" | "SKU_PURCHASE_MODAL_OPEN" | "SKU_PURCHASE_PREVIEW_FETCH" | "SKU_PURCHASE_PREVIEW_FETCH_FAILURE" | "SKU_PURCHASE_PREVIEW_FETCH_SUCCESS" | "SKU_PURCHASE_SHOW_CONFIRMATION_STEP" | "SKU_PURCHASE_START" | "SKU_PURCHASE_SUCCESS" | "SKU_PURCHASE_UPDATE_IS_GIFT" | "SKUS_FETCH_SUCCESS" | "SLOWMODE_RESET_COOLDOWN" | "SLOWMODE_SET_COOLDOWN" | "SOUNDBOARD_FETCH_DEFAULT_SOUNDS" | "SOUNDBOARD_FETCH_DEFAULT_SOUNDS_SUCCESS" | "SOUNDBOARD_MUTE_JOIN_SOUND" | "SOUNDBOARD_SET_OVERLAY_ENABLED" | "SOUNDBOARD_SOUNDS_RECEIVED" | "SPEAK_MESSAGE" | "SPEAK_TEXT" | "SPEAKING" | "SPEAKING_MESSAGE" | "SPELLCHECK_LEARN_WORD" | "SPELLCHECK_TOGGLE" | "SPELLCHECK_UNLEARN_WORD" | "SPOTIFY_ACCOUNT_ACCESS_TOKEN" | "SPOTIFY_ACCOUNT_ACCESS_TOKEN_REVOKE" | "SPOTIFY_NEW_TRACK" | "SPOTIFY_PLAYER_PAUSE" | "SPOTIFY_PLAYER_PLAY" | "SPOTIFY_PLAYER_STATE" | "SPOTIFY_PROFILE_UPDATE" | "SPOTIFY_SET_ACTIVE_DEVICE" | "SPOTIFY_SET_DEVICES" | "SPOTIFY_SET_PROTOCOL_REGISTERED" | "STAGE_INSTANCE_CREATE" | "STAGE_INSTANCE_DELETE" | "STAGE_INSTANCE_UPDATE" | "STAGE_MUSIC_MUTE" | "STAGE_MUSIC_PLAY" | "START_BROADCAST_STREAM" | "START_SESSION" | "STATUS_PAGE_INCIDENT" | "STATUS_PAGE_SCHEDULED_MAINTENANCE" | "STATUS_PAGE_SCHEDULED_MAINTENANCE_ACK" | "STICKER_FETCH_SUCCESS" | "STICKER_PACK_FETCH_SUCCESS" | "STICKER_PACKS_FETCH_START" | "STICKER_PACKS_FETCH_SUCCESS" | "STICKER_TRACK_USAGE" | "STOP_SPEAKING" | "STORE_LISTING_FETCH_SUCCESS" | "STORE_LISTINGS_FETCH_FAIL" | "STORE_LISTINGS_FETCH_START" | "STORE_LISTINGS_FETCH_SUCCESS" | "STREAM_CLOSE" | "STREAM_CREATE" | "STREAM_DELETE" | "STREAM_LAYOUT_UPDATE" | "STREAM_PREVIEW_FETCH_FAIL" | "STREAM_PREVIEW_FETCH_START" | "STREAM_PREVIEW_FETCH_SUCCESS" | "STREAM_SERVER_UPDATE" | "STREAM_SET_PAUSED" | "STREAM_START" | "STREAM_STATS_UPDATE" | "STREAM_STOP" | "STREAM_TIMED_OUT" | "STREAM_UPDATE" | "STREAM_UPDATE_SELF_HIDDEN" | "STREAM_UPDATE_SETTINGS" | "STREAM_WATCH" | "STREAMER_MODE_UPDATE" | "STREAMING_UPDATE" | "STRIPE_TOKEN_FAILURE" | "SUBSCRIPTION_PLANS_FETCH" | "SUBSCRIPTION_PLANS_FETCH_FAILURE" | "SUBSCRIPTION_PLANS_FETCH_SUCCESS" | "SUBSCRIPTION_PLANS_RESET" | "SURVEY_FETCHED" | "SURVEY_HIDE" | "SURVEY_OVERRIDE" | "SURVEY_SEEN" | "SYSTEM_THEME_CHANGE" | "THERMAL_STATE_CHANGE" | "THREAD_CREATE" | "THREAD_CREATE_LOCAL" | "THREAD_DELETE" | "THREAD_LIST_SYNC" | "THREAD_MEMBER_LIST_UPDATE" | "THREAD_MEMBER_LOCAL_UPDATE" | "THREAD_MEMBER_UPDATE" | "THREAD_MEMBERS_UPDATE" | "THREAD_SETTINGS_DRAFT_CHANGE" | "THREAD_UPDATE" | "TOGGLE_GUILD_EXPANDED_STATE" | "TOGGLE_GUILD_FOLDER_EXPAND" | "TOGGLE_OVERLAY_CANVAS" | "TOGGLE_TOPICS_BAR" | "TOP_EMOJIS_FETCH" | "TOP_EMOJIS_FETCH_SUCCESS" | "TRACK" | "TRACK_TRIGGER" | "TRUNCATE_MENTIONS" | "TRUNCATE_MESSAGES" | "TRY_ACK" | "TUTORIAL_INDICATOR_DISMISS" | "TUTORIAL_INDICATOR_HIDE" | "TUTORIAL_INDICATOR_SHOW" | "TUTORIAL_INDICATOR_SUPPRESS_ALL" | "TYPING_START" | "TYPING_START_LOCAL" | "TYPING_STOP" | "TYPING_STOP_LOCAL" | "UNREAD_SETTING_NOTICE_CHANNEL_VISIT" | "UNREAD_SETTING_NOTICE_RENDERED" | "UNSYNCED_USER_SETTINGS_UPDATE" | "UNVERIFIED_GAME_UPDATE" | "UPCOMING_GUILD_EVENT_NOTICE_HIDE" | "UPCOMING_GUILD_EVENT_NOTICE_SEEN" | "UPDATE_AVAILABLE" | "UPDATE_BACKGROUND_GRADIENT_PRESET" | "UPDATE_CHANNEL_DIMENSIONS" | "UPDATE_CHANNEL_LIST_DIMENSIONS" | "UPDATE_CHANNEL_LIST_SUBTITLES" | "UPDATE_CLIENT_PREMIUM_TYPE" | "UPDATE_CONSENTS" | "UPDATE_DOWNLOADED" | "UPDATE_ERROR" | "UPDATE_GUILD_LIST_DIMENSIONS" | "UPDATE_HANG_STATUS" | "UPDATE_HANG_STATUS_CUSTOM" | "UPDATE_MANUALLY" | "UPDATE_MOBILE_PENDING_THEME_INDEX" | "UPDATE_NOT_AVAILABLE" | "UPDATE_TOKEN" | "UPDATE_VISIBLE_MESSAGES" | "UPLOAD_ATTACHMENT_ADD_FILES" | "UPLOAD_ATTACHMENT_CLEAR_ALL_FILES" | "UPLOAD_ATTACHMENT_POP_FILE" | "UPLOAD_ATTACHMENT_REMOVE_FILE" | "UPLOAD_ATTACHMENT_REMOVE_FILES" | "UPLOAD_ATTACHMENT_SET_FILE" | "UPLOAD_ATTACHMENT_SET_UPLOADS" | "UPLOAD_ATTACHMENT_UPDATE_FILE" | "UPLOAD_CANCEL_REQUEST" | "UPLOAD_COMPLETE" | "UPLOAD_COMPRESSION_PROGRESS" | "UPLOAD_FAIL" | "UPLOAD_FILE_UPDATE" | "UPLOAD_ITEM_CANCEL_REQUEST" | "UPLOAD_PROGRESS" | "UPLOAD_RESTORE_FAILED_UPLOAD" | "UPLOAD_START" | "USER_ACHIEVEMENT_UPDATE" | "USER_ACTIVITY_STATISTICS_FETCH_SUCCESS" | "USER_APPLICATION_REMOVE" | "USER_APPLICATION_UPDATE" | "USER_APPLIED_BOOSTS_FETCH_START" | "USER_APPLIED_BOOSTS_FETCH_SUCCESS" | "USER_AUTHORIZED_APPS_UPDATE" | "USER_CONNECTION_UPDATE" | "USER_CONNECTIONS_INTEGRATION_JOINING" | "USER_CONNECTIONS_INTEGRATION_JOINING_ERROR" | "USER_CONNECTIONS_UPDATE" | "USER_GUILD_JOIN_REQUEST_COACHMARK_CLEAR" | "USER_GUILD_JOIN_REQUEST_COACHMARK_SHOW" | "USER_GUILD_JOIN_REQUEST_UPDATE" | "USER_GUILD_SETTINGS_CHANNEL_UPDATE" | "USER_GUILD_SETTINGS_CHANNEL_UPDATE_BULK" | "USER_GUILD_SETTINGS_FULL_UPDATE" | "USER_GUILD_SETTINGS_GUILD_AND_CHANNELS_UPDATE" | "USER_GUILD_SETTINGS_GUILD_UPDATE" | "USER_GUILD_SETTINGS_REMOVE_PENDING_CHANNEL_UPDATES" | "USER_JOIN_REQUEST_GUILDS_FETCH" | "USER_NON_CHANNEL_ACK" | "USER_NOTE_LOAD_START" | "USER_NOTE_LOADED" | "USER_NOTE_UPDATE" | "USER_PAYMENT_BROWSER_CHECKOUT_DONE" | "USER_PAYMENT_BROWSER_CHECKOUT_STARTED" | "USER_PAYMENT_CLIENT_ADD" | "USER_PROFILE_EFFECTS_FETCH" | "USER_PROFILE_EFFECTS_FETCH_FAILURE" | "USER_PROFILE_EFFECTS_FETCH_SUCCESS" | "USER_PROFILE_FETCH_FAILURE" | "USER_PROFILE_FETCH_START" | "USER_PROFILE_FETCH_SUCCESS" | "USER_PROFILE_MODAL_CLOSE" | "USER_PROFILE_MODAL_OPEN" | "USER_PROFILE_UPDATE_FAILURE" | "USER_PROFILE_UPDATE_START" | "USER_PROFILE_UPDATE_SUCCESS" | "USER_REQUIRED_ACTION_UPDATE" | "USER_SETTINGS_ACCOUNT_CLOSE" | "USER_SETTINGS_ACCOUNT_INIT" | "USER_SETTINGS_ACCOUNT_RESET_AND_CLOSE_FORM" | "USER_SETTINGS_ACCOUNT_SET_PENDING_ACCENT_COLOR" | "USER_SETTINGS_ACCOUNT_SET_PENDING_AVATAR" | "USER_SETTINGS_ACCOUNT_SET_PENDING_AVATAR_DECORATION" | "USER_SETTINGS_ACCOUNT_SET_PENDING_BANNER" | "USER_SETTINGS_ACCOUNT_SET_PENDING_BIO" | "USER_SETTINGS_ACCOUNT_SET_PENDING_GLOBAL_NAME" | "USER_SETTINGS_ACCOUNT_SET_PENDING_PROFILE_EFFECT_ID" | "USER_SETTINGS_ACCOUNT_SET_PENDING_PRONOUNS" | "USER_SETTINGS_ACCOUNT_SET_PENDING_THEME_COLORS" | "USER_SETTINGS_ACCOUNT_SET_SINGLE_TRY_IT_OUT_COLLECTIBLES_ITEM" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_AVATAR" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_AVATAR_DECORATION" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_BANNER" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_PROFILE_EFFECT_ID" | "USER_SETTINGS_ACCOUNT_SET_TRY_IT_OUT_THEME_COLORS" | "USER_SETTINGS_ACCOUNT_SUBMIT" | "USER_SETTINGS_ACCOUNT_SUBMIT_FAILURE" | "USER_SETTINGS_ACCOUNT_SUBMIT_SUCCESS" | "USER_SETTINGS_CLEAR_ERRORS" | "USER_SETTINGS_LOCALE_OVERRIDE" | "USER_SETTINGS_MODAL_CLEAR_SCROLL_POSITION" | "USER_SETTINGS_MODAL_CLEAR_SUBSECTION" | "USER_SETTINGS_MODAL_CLOSE" | "USER_SETTINGS_MODAL_INIT" | "USER_SETTINGS_MODAL_OPEN" | "USER_SETTINGS_MODAL_RESET" | "USER_SETTINGS_MODAL_SET_SECTION" | "USER_SETTINGS_MODAL_SUBMIT" | "USER_SETTINGS_MODAL_SUBMIT_COMPLETE" | "USER_SETTINGS_MODAL_SUBMIT_FAILURE" | "USER_SETTINGS_MODAL_UPDATE_ACCOUNT" | "USER_SETTINGS_OVERRIDE_APPLY" | "USER_SETTINGS_OVERRIDE_CLEAR" | "USER_SETTINGS_PROTO_ENQUEUE_UPDATE" | "USER_SETTINGS_PROTO_LOAD_IF_NECESSARY" | "USER_SETTINGS_PROTO_UPDATE" | "USER_SETTINGS_PROTO_UPDATE_EDIT_INFO" | "USER_SETTINGS_RESET_ALL_PENDING" | "USER_SETTINGS_RESET_ALL_TRY_IT_OUT" | "USER_SETTINGS_RESET_PENDING_ACCOUNT_CHANGES" | "USER_SETTINGS_RESET_PENDING_AVATAR_DECORATION" | "USER_SETTINGS_RESET_PENDING_PROFILE_CHANGES" | "USER_SOUNDBOARD_SET_VOLUME" | "USER_TENURE_REWARD_STATUS_DELETE" | "USER_TENURE_REWARD_STATUS_RESET" | "USER_TENURE_REWARD_SYNC_START" | "USER_TENURE_REWARD_SYNC_SUCCESS" | "USER_UPDATE" | "VERIFY_FAILURE" | "VERIFY_SUCCESS" | "VIDEO_FILTER_ASSET_DELETE_SUCCESS" | "VIDEO_FILTER_ASSET_UPLOAD_SUCCESS" | "VIDEO_FILTER_ASSETS_FETCH_SUCCESS" | "VIDEO_SAVE_LAST_USED_BACKGROUND_OPTION" | "VIEW_HISTORY_MARK_VIEW" | "VOICE_CATEGORY_COLLAPSE" | "VOICE_CATEGORY_EXPAND" | "VOICE_CHANNEL_EFFECT_CLEAR" | "VOICE_CHANNEL_EFFECT_RECENT_EMOJI" | "VOICE_CHANNEL_EFFECT_SEND" | "VOICE_CHANNEL_EFFECT_SENT_LOCAL" | "VOICE_CHANNEL_EFFECT_TOGGLE_ANIMATION_TYPE" | "VOICE_CHANNEL_EFFECT_UPDATE_TIME_STAMP" | "VOICE_CHANNEL_SELECT" | "VOICE_CHANNEL_STATUS_UPDATE" | "VOICE_SERVER_UPDATE" | "VOICE_STATE_UPDATES" | "WAIT_FOR_REMOTE_SESSION" | "WEBHOOK_CREATE" | "WEBHOOK_DELETE" | "WEBHOOK_UPDATE" | "WEBHOOKS_FETCHING" | "WEBHOOKS_UPDATE" | "WELCOME_SCREEN_FETCH_FAIL" | "WELCOME_SCREEN_FETCH_START" | "WELCOME_SCREEN_FETCH_SUCCESS" | "WELCOME_SCREEN_SETTINGS_CLEAR" | "WELCOME_SCREEN_SETTINGS_RESET" | "WELCOME_SCREEN_SETTINGS_UPDATE" | "WELCOME_SCREEN_SUBMIT" | "WELCOME_SCREEN_SUBMIT_FAILURE" | "WELCOME_SCREEN_SUBMIT_SUCCESS" | "WELCOME_SCREEN_UPDATE" | "WELCOME_SCREEN_VIEW" | "WINDOW_FOCUS" | "WINDOW_FULLSCREEN_CHANGE" | "WINDOW_HIDDEN" | "WINDOW_INIT" | "WINDOW_RESIZED" | "WINDOW_UNLOAD" | "WINDOW_VISIBILITY_CHANGE" | "WRITE_CACHES"; diff --git a/packages/discord-types/src/flux/index.ts b/packages/discord-types/src/flux/index.ts index c02da7ea6..1dc12e694 100644 --- a/packages/discord-types/src/flux/index.ts +++ b/packages/discord-types/src/flux/index.ts @@ -4,29 +4,34 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { FluxPersistedStore } from "../stores/abstract/FluxPersistedStore"; -import type { FluxStore } from "../stores/abstract/FluxStore"; -import type { FluxUserAgnosticStore } from "../stores/abstract/FluxUserAgnosticStore"; -import type { FluxEmitter } from "./FluxEmitter"; +import type { Emitter } from "./Emitter"; +import type { PersistedStore } from "./PersistedStore"; +import type { Store } from "./Store"; +import type { UserAgnosticStore } from "./UserAgnosticStore"; -export * from "./FluxActionHandlersGraph"; -export * from "./FluxActionLog"; -export * from "./FluxActionLogger"; -export * from "./fluxActions"; -export * from "./FluxBatchedStoreListener"; -export * from "./FluxChangeListeners"; -export * from "./FluxDispatcher"; -export * from "./FluxEmitter"; +export * from "./ActionHandlersGraph"; +export * from "./ActionLog"; +export * from "./ActionLogger"; +export * from "./actions"; +export * from "./BatchedStoreListener"; +export * from "./ChangeListeners"; +export * from "./Dispatcher"; +export * from "./Emitter"; +export * from "./PersistedStore"; +export * from "./SnapshotStore"; +export * from "./Store"; +export * from "./UserAgnosticStore"; +export * from "./utils"; export interface Flux { - get initialized(): typeof FluxStore["initialized"]; + get initialized(): typeof Store["initialized"]; /** @todo */ connectStores: (a?: any, b?: any, c?: any) => (a?: any) => any; - DeviceSettingsStore: typeof FluxUserAgnosticStore; - Emitter: FluxEmitter; - initialize: typeof FluxStore["initialize"]; - OfflineCacheStore: typeof FluxUserAgnosticStore; - PersistedStore: typeof FluxPersistedStore; - Store: typeof FluxStore; + DeviceSettingsStore: typeof UserAgnosticStore; + Emitter: Emitter; + initialize: typeof Store["initialize"]; + OfflineCacheStore: typeof UserAgnosticStore; + PersistedStore: typeof PersistedStore; + Store: typeof Store; } diff --git a/packages/discord-types/src/stores/utils.ts b/packages/discord-types/src/flux/utils.ts similarity index 85% rename from packages/discord-types/src/stores/utils.ts rename to packages/discord-types/src/flux/utils.ts index db3f6b277..5e6928459 100644 --- a/packages/discord-types/src/stores/utils.ts +++ b/packages/discord-types/src/flux/utils.ts @@ -5,27 +5,27 @@ */ import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; +import type { Store } from "./Store"; // For createFetchStore export type FetchStoreFactory< - StoreConstraint extends FluxStore = FluxStore, + StoreConstraint extends Store = Store, StateConstraint = unknown, DependenciesConstraint extends readonly unknown[] = readonly unknown[], IsLoadingConstraint extends boolean = boolean > = < - Store extends StoreConstraint, + S extends StoreConstraint, State extends StateConstraint, Dependencies extends DependenciesConstraint, IsLoading extends IsLoadingConstraint >( - store: Store, + store: S, options: { dangerousAbortOnCleanup?: boolean | undefined /* = false */; get: (...dependencies: Dependencies) => State; getIsLoading: (...dependencies: Dependencies) => IsLoading; load: (signal: AbortSignal, ...dependencies: Dependencies) => Promise; - useStateHook: StoreStateHook<[Store], State, Dependencies>; + useStateHook: StoreStateHook<[S], State, Dependencies>; } ) => (...dependencies: Dependencies) => { data: State; @@ -35,7 +35,7 @@ export type FetchStoreFactory< // For useStateFromStores export type StoreStateHook< - Stores extends readonly FluxStore[] = readonly FluxStore[], + Stores extends readonly Store[] = readonly Store[], StateConstraint = unknown, Dependencies extends readonly unknown[] | Nullish = readonly unknown[] | Nullish > = ( @@ -51,7 +51,7 @@ export type StoreStateHook< // For useStateFromStoresObject export type StoreObjectStateHook< - Stores extends readonly FluxStore[] = readonly FluxStore[], + Stores extends readonly Store[] = readonly Store[], StateConstraint extends {} = {}, Dependencies extends readonly unknown[] | Nullish = readonly unknown[] | Nullish > = ( @@ -64,7 +64,7 @@ export type StoreObjectStateHook< // For useStateFromStoresArray export type StoreArrayStateHook< - Stores extends readonly FluxStore[] = readonly FluxStore[], + Stores extends readonly Store[] = readonly Store[], StateConstraint extends readonly unknown[] = readonly unknown[], Dependencies extends readonly unknown[] | Nullish = readonly unknown[] | Nullish > = ( diff --git a/packages/discord-types/src/general/ApplicationRecord.ts b/packages/discord-types/src/general/ApplicationRecord.ts index 1a15efc6a..69e66c60a 100644 --- a/packages/discord-types/src/general/ApplicationRecord.ts +++ b/packages/discord-types/src/general/ApplicationRecord.ts @@ -6,8 +6,8 @@ import type { Nullish, Optional, PartialOnUndefined, SnakeCasedProperties } from "../internal"; import type { CompanyRecord } from "./CompanyRecord"; -import type { ImmutableRecord } from "./ImmutableRecord"; import type { IconSource } from "./misc"; +import type { RecordBase } from "./RecordBase"; import type { UserRecord } from "./UserRecord"; export type ApplicationRecordOwnProperties = Pick; @@ -18,7 +18,7 @@ export type ApplicationProperties = Optional extends ImmutableRecord { +> extends RecordBase { constructor(applicationProperties: ApplicationProperties); /** @todo */ diff --git a/packages/discord-types/src/general/CompanyRecord.ts b/packages/discord-types/src/general/CompanyRecord.ts index 7a3a6e04c..f62a61677 100644 --- a/packages/discord-types/src/general/CompanyRecord.ts +++ b/packages/discord-types/src/general/CompanyRecord.ts @@ -4,13 +4,13 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { ImmutableRecord } from "./ImmutableRecord"; +import type { RecordBase } from "./RecordBase"; export type CompanyRecordOwnProperties = Pick; export declare class CompanyRecord< OwnProperties extends CompanyRecordOwnProperties = CompanyRecordOwnProperties -> extends ImmutableRecord { +> extends RecordBase { constructor(companyProperties: CompanyRecordOwnProperties); static createFromServer(companyFromServer: CompanyRecordOwnProperties): CompanyRecord; diff --git a/packages/discord-types/src/general/GuildRecord.ts b/packages/discord-types/src/general/GuildRecord.ts index dda52716d..8dd5ae07e 100644 --- a/packages/discord-types/src/general/GuildRecord.ts +++ b/packages/discord-types/src/general/GuildRecord.ts @@ -6,8 +6,8 @@ import type { Nullish, Optional } from "../internal"; import type { Clan } from "./Clan"; -import type { ImmutableRecord } from "./ImmutableRecord"; import type { IconSource } from "./misc"; +import type { RecordBase } from "./RecordBase"; import type { UserRecord } from "./UserRecord"; export type GuildRecordOwnProperties = Pick; @@ -19,7 +19,7 @@ export type GuildProperties = Optional extends ImmutableRecord { +> extends RecordBase { constructor(guildProperties: GuildProperties); get acronym(): string; diff --git a/packages/discord-types/src/general/ImmutableRecord.ts b/packages/discord-types/src/general/RecordBase.ts similarity index 95% rename from packages/discord-types/src/general/ImmutableRecord.ts rename to packages/discord-types/src/general/RecordBase.ts index 847a6805e..d0937174b 100644 --- a/packages/discord-types/src/general/ImmutableRecord.ts +++ b/packages/discord-types/src/general/RecordBase.ts @@ -8,7 +8,7 @@ import type { StringProperties } from "../internal"; // Original name: Record // Renamed to avoid name conflicts with TypeScripts's Record utility type. -export declare abstract class ImmutableRecord< +export declare abstract class RecordBase< OwnProperties extends Record = Record > { constructor(properties: OwnProperties); diff --git a/packages/discord-types/src/general/UserRecord.ts b/packages/discord-types/src/general/UserRecord.ts index a866df647..f3e746874 100644 --- a/packages/discord-types/src/general/UserRecord.ts +++ b/packages/discord-types/src/general/UserRecord.ts @@ -5,8 +5,8 @@ */ import type { Nullish, Optional, SnakeCasedProperties } from "../internal"; -import type { ImmutableRecord } from "./ImmutableRecord"; import type { IconSource } from "./misc"; +import type { RecordBase } from "./RecordBase"; export type UserRecordOwnProperties = Pick; @@ -18,7 +18,7 @@ export type UserProperties = Optional extends ImmutableRecord { +> extends RecordBase { constructor(userProperties: UserProperties); addGuildAvatarHash(guildId: string, avatarHash: string): this; diff --git a/packages/discord-types/src/general/index.ts b/packages/discord-types/src/general/index.ts index 3af448713..27fb540b7 100644 --- a/packages/discord-types/src/general/index.ts +++ b/packages/discord-types/src/general/index.ts @@ -17,12 +17,11 @@ export * from "./Frecency"; export * from "./GuildMember"; export * from "./GuildMemberProfile"; export * from "./GuildRecord"; -export * from "./i18n"; -export * from "./ImmutableRecord"; export * from "./messages"; export * from "./misc"; export * from "./Permissions"; export * from "./ReadState"; +export * from "./RecordBase"; export * from "./Role"; export * from "./UserProfile"; export * from "./UserRecord"; diff --git a/packages/discord-types/src/general/messages/InteractionRecord.ts b/packages/discord-types/src/general/messages/InteractionRecord.ts index d9ff13048..a306b5bc4 100644 --- a/packages/discord-types/src/general/messages/InteractionRecord.ts +++ b/packages/discord-types/src/general/messages/InteractionRecord.ts @@ -5,7 +5,7 @@ */ import type { Nullish } from "../../internal"; -import type { ImmutableRecord } from "../ImmutableRecord"; +import type { RecordBase } from "../RecordBase"; import type { UserRecord } from "../UserRecord"; export type InteractionRecordOwnProperties = Pick; @@ -15,7 +15,7 @@ export type InteractionProperties = Omit extends ImmutableRecord { +> extends RecordBase { constructor(interaction: InteractionProperties); static createFromServer( diff --git a/packages/discord-types/src/general/messages/MessageSnapshotRecord.ts b/packages/discord-types/src/general/messages/MessageSnapshotRecord.ts index 8ce5415bc..43f1bd150 100644 --- a/packages/discord-types/src/general/messages/MessageSnapshotRecord.ts +++ b/packages/discord-types/src/general/messages/MessageSnapshotRecord.ts @@ -4,7 +4,7 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { ImmutableRecord } from "../ImmutableRecord"; +import type { RecordBase } from "../RecordBase"; import type { MinimalMessageProperties, MinimalMessageRecord } from "./MinimalMessageRecord"; export type MessageSnapshotRecordOwnProperties = Pick; @@ -15,7 +15,7 @@ export interface MessageSnapshotProperties { export declare class MessageSnapshotRecord< OwnProperties extends MessageSnapshotRecordOwnProperties = MessageSnapshotRecordOwnProperties -> extends ImmutableRecord { +> extends RecordBase { constructor(messageSnapshotProperties: MessageSnapshotProperties); message: MinimalMessageRecord; diff --git a/packages/discord-types/src/general/messages/MinimalMessageRecord.ts b/packages/discord-types/src/general/messages/MinimalMessageRecord.ts index 23dfc41dd..b710daaf0 100644 --- a/packages/discord-types/src/general/messages/MinimalMessageRecord.ts +++ b/packages/discord-types/src/general/messages/MinimalMessageRecord.ts @@ -8,7 +8,7 @@ import type { Moment } from "moment"; import type { Nullish, Optional, SnakeCasedProperties } from "../../internal"; import type { ChannelType } from "../channels/ChannelRecord"; -import type { ImmutableRecord } from "../ImmutableRecord"; +import type { RecordBase } from "../RecordBase"; export type MinimalMessageRecordOwnProperties = Pick; @@ -17,7 +17,7 @@ export type MinimalMessageProperties = Optional extends ImmutableRecord { +> extends RecordBase { constructor(minimalMessageProperties: MinimalMessageProperties); attachments: MessageAttachment[]; diff --git a/packages/discord-types/src/general/i18n/FormattedMessage.ts b/packages/discord-types/src/i18n/FormattedMessage.ts similarity index 98% rename from packages/discord-types/src/general/i18n/FormattedMessage.ts rename to packages/discord-types/src/i18n/FormattedMessage.ts index 1beb2061e..3b301616e 100644 --- a/packages/discord-types/src/general/i18n/FormattedMessage.ts +++ b/packages/discord-types/src/i18n/FormattedMessage.ts @@ -8,7 +8,7 @@ import type MessageFormat from "intl-messageformat"; import type { ReactElement, ReactNode } from "react"; import type { State } from "simple-markdown"; -import type { IsAny, IsDomainFinite, Stringable, StringProperties, UnionToIntersection } from "../../internal"; +import type { IsAny, IsDomainFinite, Stringable, StringProperties, UnionToIntersection } from "../internal"; export type FormattedMessageArgs = RecordArgs | TupleArgs | string | number; diff --git a/packages/discord-types/src/general/i18n/I18N.ts b/packages/discord-types/src/i18n/I18N.ts similarity index 98% rename from packages/discord-types/src/general/i18n/I18N.ts rename to packages/discord-types/src/i18n/I18N.ts index ae1e56a36..a08c45734 100644 --- a/packages/discord-types/src/general/i18n/I18N.ts +++ b/packages/discord-types/src/i18n/I18N.ts @@ -6,7 +6,7 @@ import type { EventEmitter } from "events"; -import type { Nullish } from "../../internal"; +import type { Nullish } from "../internal"; import type { FormattedMessage } from "./FormattedMessage"; import type { I18NMessages } from "./I18NMessages"; import type { Provider, ProviderParsedMessagesGetter } from "./Provider"; diff --git a/packages/discord-types/src/general/i18n/I18NMessages.ts b/packages/discord-types/src/i18n/I18NMessages.ts similarity index 99% rename from packages/discord-types/src/general/i18n/I18NMessages.ts rename to packages/discord-types/src/i18n/I18NMessages.ts index 2438097e4..a188327c8 100644 --- a/packages/discord-types/src/general/i18n/I18NMessages.ts +++ b/packages/discord-types/src/i18n/I18NMessages.ts @@ -4,7 +4,7 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { OmitIndexSignature } from "../../internal"; +import type { OmitIndexSignature } from "../internal"; import type { FormattedMessage as FM } from "./FormattedMessage"; /* diff --git a/packages/discord-types/src/general/i18n/Provider.ts b/packages/discord-types/src/i18n/Provider.ts similarity index 100% rename from packages/discord-types/src/general/i18n/Provider.ts rename to packages/discord-types/src/i18n/Provider.ts diff --git a/packages/discord-types/src/general/i18n/index.ts b/packages/discord-types/src/i18n/index.ts similarity index 100% rename from packages/discord-types/src/general/i18n/index.ts rename to packages/discord-types/src/i18n/index.ts diff --git a/packages/discord-types/src/general/i18n/utils.ts b/packages/discord-types/src/i18n/utils.ts similarity index 94% rename from packages/discord-types/src/general/i18n/utils.ts rename to packages/discord-types/src/i18n/utils.ts index 405d30b74..9aa580a54 100644 --- a/packages/discord-types/src/general/i18n/utils.ts +++ b/packages/discord-types/src/i18n/utils.ts @@ -6,7 +6,7 @@ import type { ParserRules } from "simple-markdown"; -import type { Nullish } from "../../internal"; +import type { Nullish } from "../internal"; import type { FormattedMessage, FormattedMessageArgs } from "./FormattedMessage"; // For getSystemLocale diff --git a/packages/discord-types/src/index.ts b/packages/discord-types/src/index.ts index fc316f169..4986443ea 100644 --- a/packages/discord-types/src/index.ts +++ b/packages/discord-types/src/index.ts @@ -6,4 +6,5 @@ export * from "./flux"; export * from "./general"; +export * from "./i18n"; export * from "./stores"; diff --git a/packages/discord-types/src/stores/ApplicationStore.ts b/packages/discord-types/src/stores/ApplicationStore.ts index 8191d2995..937860b77 100644 --- a/packages/discord-types/src/stores/ApplicationStore.ts +++ b/packages/discord-types/src/stores/ApplicationStore.ts @@ -4,11 +4,11 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { ApplicationRecord, ApplicationType } from "../general/ApplicationRecord"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class ApplicationStore extends FluxStore { +export declare class ApplicationStore extends Store { static displayName: "ApplicationStore"; _getAllApplications(): ApplicationRecord[]; diff --git a/packages/discord-types/src/stores/ChannelStore.ts b/packages/discord-types/src/stores/ChannelStore.ts index 3232d8a81..40e5b9b53 100644 --- a/packages/discord-types/src/stores/ChannelStore.ts +++ b/packages/discord-types/src/stores/ChannelStore.ts @@ -4,13 +4,13 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { ChannelRecord, GuildChannelRecord } from "../general/channels/ChannelRecord"; import type { DMChannelRecord, PrivateChannelRecord } from "../general/channels/PrivateChannelRecord"; import type { ThreadChannelRecord } from "../general/channels/ThreadChannelRecord"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class ChannelStore extends FluxStore { +export declare class ChannelStore extends Store { static displayName: "ChannelStore"; getAllThreadsForParent(channelId: string): ThreadChannelRecord[]; diff --git a/packages/discord-types/src/stores/DraftStore.ts b/packages/discord-types/src/stores/DraftStore.ts index 96641a41e..67626e97c 100644 --- a/packages/discord-types/src/stores/DraftStore.ts +++ b/packages/discord-types/src/stores/DraftStore.ts @@ -4,9 +4,9 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { PersistedStore } from "../flux/PersistedStore"; import type { Draft, DraftForumThreadSettings, DraftNonForumThreadSettings, DraftType } from "../general/Draft"; import type { GenericConstructor, Nullish } from "../internal"; -import type { FluxPersistedStore } from "./abstract/FluxPersistedStore"; export interface DraftStoreState { [userId: string]: { [channelId: string]: { [Type in DraftType]?: Draft; }; }; @@ -15,7 +15,7 @@ export interface DraftStoreState { export declare class DraftStore< Constructor extends GenericConstructor = typeof DraftStore, State extends DraftStoreState = DraftStoreState -> extends FluxPersistedStore { +> extends PersistedStore { static displayName: "DraftStore"; static persistKey: "DraftStore"; diff --git a/packages/discord-types/src/stores/EmojiStore.ts b/packages/discord-types/src/stores/EmojiStore.ts index 8dc55f2a3..a1bea9cd1 100644 --- a/packages/discord-types/src/stores/EmojiStore.ts +++ b/packages/discord-types/src/stores/EmojiStore.ts @@ -4,13 +4,13 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { PersistedStore } from "../flux/PersistedStore"; import type { ChannelRecord } from "../general/channels/ChannelRecord"; import type { Emoji, GuildEmoji } from "../general/emojis/Emoji"; import type { EmojiDisambiguations } from "../general/emojis/EmojiDisambiguations"; import type { GuildEmojis } from "../general/emojis/GuildEmojis"; import type { Frecency } from "../general/Frecency"; import type { GenericConstructor, Nullish } from "../internal"; -import type { FluxPersistedStore } from "./abstract/FluxPersistedStore"; export interface EmojiStoreState { emojiReactionPendingUsages: EmojiUsage[]; @@ -26,7 +26,7 @@ export interface EmojiUsage { export declare class EmojiStore< Constructor extends GenericConstructor = typeof EmojiStore, State extends EmojiStoreState = EmojiStoreState -> extends FluxPersistedStore { +> extends PersistedStore { static displayName: "EmojiStore"; static persistKey: "EmojiStoreV2"; diff --git a/packages/discord-types/src/stores/GuildChannelStore.ts b/packages/discord-types/src/stores/GuildChannelStore.ts index fc344eb67..768ebd14e 100644 --- a/packages/discord-types/src/stores/GuildChannelStore.ts +++ b/packages/discord-types/src/stores/GuildChannelStore.ts @@ -4,13 +4,13 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import { ChannelType, type GuildChannelRecord, type GuildSelectableChannelRecord } from "../general/channels/ChannelRecord"; import type { GuildCategoryChannelRecord } from "../general/channels/GuildTextualChannelRecord"; import type { GuildVocalChannelRecord } from "../general/channels/GuildVocalChannelRecord"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class GuildChannelStore extends FluxStore { +export declare class GuildChannelStore extends Store { static displayName: "GuildChannelStore"; getAllGuilds(): { [guildId: string]: GuildChannels | undefined; }; diff --git a/packages/discord-types/src/stores/GuildMemberStore.ts b/packages/discord-types/src/stores/GuildMemberStore.ts index dddab1dc7..64d6753c0 100644 --- a/packages/discord-types/src/stores/GuildMemberStore.ts +++ b/packages/discord-types/src/stores/GuildMemberStore.ts @@ -4,11 +4,11 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { GuildMember } from "../general/GuildMember"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class GuildMemberStore extends FluxStore { +export declare class GuildMemberStore extends Store { static displayName: "GuildMemberStore"; getCommunicationDisabledUserMap(): { [userId: string]: string; }; diff --git a/packages/discord-types/src/stores/GuildStore.ts b/packages/discord-types/src/stores/GuildStore.ts index 0d3f3b567..2e9c687df 100644 --- a/packages/discord-types/src/stores/GuildStore.ts +++ b/packages/discord-types/src/stores/GuildStore.ts @@ -4,12 +4,12 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { GuildRecord } from "../general/GuildRecord"; import type { Role } from "../general/Role"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class GuildStore extends FluxStore { +export declare class GuildStore extends Store { static displayName: "GuildStore"; getAllGuildsRoles(): { [guildId: string]: { [roleId: string]: Role; }; }; diff --git a/packages/discord-types/src/stores/MessageStore.ts b/packages/discord-types/src/stores/MessageStore.ts index e81ff222c..59a263114 100644 --- a/packages/discord-types/src/stores/MessageStore.ts +++ b/packages/discord-types/src/stores/MessageStore.ts @@ -4,12 +4,12 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { ChannelMessages } from "../general/messages/ChannelMessages"; import type { MessageRecord } from "../general/messages/MessageRecord"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class MessageStore extends FluxStore { +export declare class MessageStore extends Store { static displayName: "MessageStore"; focusedMessageId(channelId: string): string | undefined; diff --git a/packages/discord-types/src/stores/PermissionStore.ts b/packages/discord-types/src/stores/PermissionStore.ts index cf538dc5b..2929f0388 100644 --- a/packages/discord-types/src/stores/PermissionStore.ts +++ b/packages/discord-types/src/stores/PermissionStore.ts @@ -4,15 +4,15 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { ChannelRecord } from "../general/channels/ChannelRecord"; import type { GuildRecord } from "../general/GuildRecord"; import type { PermissionOverwriteMap } from "../general/Permissions"; import type { Role } from "../general/Role"; import type { UserRecord } from "../general/UserRecord"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class PermissionStore extends FluxStore { +export declare class PermissionStore extends Store { static displayName: "PermissionStore"; /** Always returns false for private (non-guild) channels. */ diff --git a/packages/discord-types/src/stores/PresenceStore.ts b/packages/discord-types/src/stores/PresenceStore.ts index d647b9ef3..cf937d54c 100644 --- a/packages/discord-types/src/stores/PresenceStore.ts +++ b/packages/discord-types/src/stores/PresenceStore.ts @@ -4,11 +4,11 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { Activity } from "../general/Activity"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class PresenceStore extends FluxStore { +export declare class PresenceStore extends Store { static displayName: "PresenceStore"; findActivity( diff --git a/packages/discord-types/src/stores/ReadStateStore.ts b/packages/discord-types/src/stores/ReadStateStore.ts index 972eef1cf..5551c98e4 100644 --- a/packages/discord-types/src/stores/ReadStateStore.ts +++ b/packages/discord-types/src/stores/ReadStateStore.ts @@ -4,14 +4,14 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { GuildChannelRecord } from "../general/channels/ChannelRecord"; import type { GuildRecord } from "../general/GuildRecord"; import type { ChannelIdReadStateType, GuildChannelOverride, GuildIdReadStateType, ReadState, ReadStateSnapshot, ReadStateType, SerializedReadState, UserIdReadStateType } from "../general/ReadState"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; import type { BasicPermissionsObject } from "./PermissionStore"; -export declare class ReadStateStore extends FluxStore { +export declare class ReadStateStore extends Store { static displayName: "ReadStateStore"; ackMessageId(id: string, type?: ReadStateType | undefined /* = ReadStateType.CHANNEL */): string | null; diff --git a/packages/discord-types/src/stores/RelationshipStore.ts b/packages/discord-types/src/stores/RelationshipStore.ts index 555da1755..b7847acf0 100644 --- a/packages/discord-types/src/stores/RelationshipStore.ts +++ b/packages/discord-types/src/stores/RelationshipStore.ts @@ -4,11 +4,11 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { MessageRecord } from "../general/messages/MessageRecord"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class RelationshipStore extends FluxStore { +export declare class RelationshipStore extends Store { static displayName: "RelationshipStore"; /** @todo May eventually be renamed to `getBlockedIds`. */ diff --git a/packages/discord-types/src/stores/SelectedChannelStore.ts b/packages/discord-types/src/stores/SelectedChannelStore.ts index 832ce81ff..7e71d9843 100644 --- a/packages/discord-types/src/stores/SelectedChannelStore.ts +++ b/packages/discord-types/src/stores/SelectedChannelStore.ts @@ -4,10 +4,10 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { Store } from "../flux/Store"; import type { Nullish } from "../internal"; -import type { FluxStore } from "./abstract/FluxStore"; -export declare class SelectedChannelStore extends FluxStore { +export declare class SelectedChannelStore extends Store { static displayName: "SelectedChannelStore"; getChannelId(guildId?: string | Nullish): string | undefined; diff --git a/packages/discord-types/src/stores/SelectedGuildStore.ts b/packages/discord-types/src/stores/SelectedGuildStore.ts index a41052a2e..a073373a2 100644 --- a/packages/discord-types/src/stores/SelectedGuildStore.ts +++ b/packages/discord-types/src/stores/SelectedGuildStore.ts @@ -4,8 +4,8 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { PersistedStore } from "../flux/PersistedStore"; import type { GenericConstructor } from "../internal"; -import type { FluxPersistedStore } from "./abstract/FluxPersistedStore"; export interface SelectedGuildStoreState { lastSelectedGuildId: string | null; @@ -16,7 +16,7 @@ export interface SelectedGuildStoreState { export declare class SelectedGuildStore< Constructor extends GenericConstructor = typeof SelectedGuildStore, State extends SelectedGuildStoreState = SelectedGuildStoreState -> extends FluxPersistedStore { +> extends PersistedStore { static displayName: "SelectedGuildStore"; static persistKey: "SelectedGuildStore"; diff --git a/packages/discord-types/src/stores/UserProfileStore.ts b/packages/discord-types/src/stores/UserProfileStore.ts index cd8d6ad63..d836e2b49 100644 --- a/packages/discord-types/src/stores/UserProfileStore.ts +++ b/packages/discord-types/src/stores/UserProfileStore.ts @@ -4,12 +4,12 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { SnapshotStore, SnapshotStoreSnapshot } from "../flux/SnapshotStore"; import type { GuildMemberProfile } from "../general/GuildMemberProfile"; import type { GuildRecord } from "../general/GuildRecord"; import type { UserProfile } from "../general/UserProfile"; import type { UserRecord } from "../general/UserRecord"; import type { GenericConstructor, Nullish } from "../internal"; -import type { FluxSnapshot, FluxSnapshotStore } from "./abstract/FluxSnapshotStore"; import type { StatusType } from "./PresenceStore"; export interface UserProfileStoreSnapshotData { @@ -20,7 +20,7 @@ export interface UserProfileStoreSnapshotData { export declare class UserProfileStore< Constructor extends GenericConstructor = typeof UserProfileStore, SnapshotData extends UserProfileStoreSnapshotData = UserProfileStoreSnapshotData -> extends FluxSnapshotStore { +> extends SnapshotStore { constructor(); static displayName: "UserProfileStore"; @@ -43,7 +43,7 @@ export declare class UserProfileStore< isFetchingFriends(userId: string): boolean; isFetchingProfile(userId: string): boolean; get isSubmitting(): boolean; - takeSnapshot(): FluxSnapshot; + takeSnapshot(): SnapshotStoreSnapshot; loadCache: () => void; } diff --git a/packages/discord-types/src/stores/UserStore.ts b/packages/discord-types/src/stores/UserStore.ts index d37f82714..05c9a2382 100644 --- a/packages/discord-types/src/stores/UserStore.ts +++ b/packages/discord-types/src/stores/UserStore.ts @@ -4,9 +4,9 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ +import type { SnapshotStore, SnapshotStoreSnapshot } from "../flux/SnapshotStore"; import type { UserRecord } from "../general/UserRecord"; import type { GenericConstructor, Nullish } from "../internal"; -import type { FluxSnapshot, FluxSnapshotStore } from "./abstract/FluxSnapshotStore"; export interface UserStoreSnapshotData { users: [UserRecord?]; @@ -15,7 +15,7 @@ export interface UserStoreSnapshotData { export declare class UserStore< Constructor extends GenericConstructor = typeof UserStore, SnapshotData extends UserStoreSnapshotData = UserStoreSnapshotData -> extends FluxSnapshotStore { +> extends SnapshotStore { constructor(); static displayName: "UserStore"; @@ -44,5 +44,5 @@ export declare class UserStore< users: readonly any[] | Nullish; }): void; initialize(): void; - takeSnapshot(): FluxSnapshot; + takeSnapshot(): SnapshotStoreSnapshot; } diff --git a/packages/discord-types/src/stores/WindowStore.ts b/packages/discord-types/src/stores/WindowStore.ts index 9f1ad892c..05c798802 100644 --- a/packages/discord-types/src/stores/WindowStore.ts +++ b/packages/discord-types/src/stores/WindowStore.ts @@ -4,9 +4,9 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -import type { FluxStore } from "./abstract/FluxStore"; +import type { Store } from "../flux/Store"; -export declare class WindowStore extends FluxStore { +export declare class WindowStore extends Store { static displayName: "WindowStore"; getFocusedWindowId(): string | null; diff --git a/packages/discord-types/src/stores/abstract/FluxStore.ts b/packages/discord-types/src/stores/abstract/FluxStore.ts deleted file mode 100644 index e425a6432..000000000 --- a/packages/discord-types/src/stores/abstract/FluxStore.ts +++ /dev/null @@ -1,66 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { FluxActionHandlerMap } from "../../flux/FluxActionHandlersGraph"; -import type { FluxAction } from "../../flux/fluxActions"; -import type { FluxChangeListeners } from "../../flux/FluxChangeListeners"; -import type { FluxDispatchBand, FluxDispatcher } from "../../flux/FluxDispatcher"; -import type { Nullish } from "../../internal"; - -// Original name: Store -export declare abstract class FluxStore { - constructor( - dispatcher: FluxDispatcher, - actionHandlers?: Partial | Nullish, - dispatchBand?: FluxDispatchBand | Nullish /* = dispatcher._defaultBand */ - ); - - static destroy(): void; - /** Undefined on {@link FluxStore}'s constructor. */ - static displayName: string | undefined; - static getAll(): FluxStore[]; - static initialize(): void; - static initialized: Promise; - - emitChange(): void; - getDispatchToken(): string; - getName(): string; - initialize(...args: never[]): void; - initializeIfNeeded(): void; - mustEmitChanges( - mustEmitChanges?: ((action: FluxAction) => boolean) | Nullish /* = () => true */ - ): void; - registerActionHandlers( - actionHandlers: Partial, - dispatchBand?: FluxDispatchBand | Nullish /* = this._dispatcher._defaultBand */ - ): void; - syncWith( - stores: readonly FluxStore[], - func: () => unknown, - timeout?: number | Nullish - ): void; - waitFor(...stores: FluxStore[]): void; - - __getLocalVars: undefined; - _changeCallbacks: FluxChangeListeners; - _dispatcher: FluxDispatcher; - _dispatchToken: string; - _isInitialized: boolean; - _mustEmitChanges: ((action: FluxAction) => boolean) | Nullish; - _reactChangeCallbacks: FluxChangeListeners; - _syncWiths: { - func: () => unknown; - store: FluxStore; - }[]; - addChangeListener: FluxChangeListeners["add"]; - /** - * @param listener The change listener to add. It will be removed when it returns false. - */ - addConditionalChangeListener: FluxChangeListeners["addConditional"]; - addReactChangeListener: FluxChangeListeners["add"]; - removeChangeListener: FluxChangeListeners["remove"]; - removeReactChangeListener: FluxChangeListeners["remove"]; -} diff --git a/packages/discord-types/src/stores/abstract/FluxUserAgnosticStore.ts b/packages/discord-types/src/stores/abstract/FluxUserAgnosticStore.ts deleted file mode 100644 index f458027f9..000000000 --- a/packages/discord-types/src/stores/abstract/FluxUserAgnosticStore.ts +++ /dev/null @@ -1,16 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -import type { GenericConstructor } from "../../internal"; -import type { FluxPersistedStore } from "./FluxPersistedStore"; - -// Original name: UserAgnosticStore -export declare abstract class FluxUserAgnosticStore< - Constructor extends GenericConstructor = GenericConstructor, - State = unknown -> extends FluxPersistedStore { - abstract getUserAgnosticState(): State; -} diff --git a/packages/discord-types/src/stores/abstract/index.ts b/packages/discord-types/src/stores/abstract/index.ts deleted file mode 100644 index 81d91ec74..000000000 --- a/packages/discord-types/src/stores/abstract/index.ts +++ /dev/null @@ -1,10 +0,0 @@ -/* - * discord-types - * Copyright (C) 2024 Vencord project contributors - * SPDX-License-Identifier: GPL-3.0-or-later - */ - -export * from "./FluxPersistedStore"; -export * from "./FluxSnapshotStore"; -export * from "./FluxStore"; -export * from "./FluxUserAgnosticStore"; diff --git a/packages/discord-types/src/stores/index.ts b/packages/discord-types/src/stores/index.ts index 7c0b5e50b..fbe787319 100644 --- a/packages/discord-types/src/stores/index.ts +++ b/packages/discord-types/src/stores/index.ts @@ -4,7 +4,6 @@ * SPDX-License-Identifier: GPL-3.0-or-later */ -export * from "./abstract"; export * from "./ApplicationStore"; export * from "./ChannelStore"; export * from "./DraftStore"; @@ -21,5 +20,4 @@ export * from "./SelectedChannelStore"; export * from "./SelectedGuildStore"; export * from "./UserProfileStore"; export * from "./UserStore"; -export * from "./utils"; export * from "./WindowStore"; diff --git a/packages/vencord-types/package.json b/packages/vencord-types/package.json index 68c5ea290..08f9e16f9 100644 --- a/packages/vencord-types/package.json +++ b/packages/vencord-types/package.json @@ -17,7 +17,7 @@ "types": "./index.d.ts", "dependencies": { "@types/lodash": "~4.17.7", - "@types/node": "^18.19.45", + "@types/node": "^18.19.46", "@types/react": "~18.2.79", "@types/react-dom": "~18.2.25", "@vencord/discord-types": "workspace:^", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6478e07b6..5e6660979 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -83,8 +83,8 @@ importers: specifier: ~4.17.7 version: 4.17.7 '@types/node': - specifier: ^18.19.45 - version: 18.19.45 + specifier: ^18.19.46 + version: 18.19.46 '@types/react': specifier: ~18.2.79 version: 18.2.79 @@ -123,7 +123,7 @@ importers: version: 12.1.1(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) eslint-plugin-unused-imports: specifier: ^4.1.3 - version: 4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) + version: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) highlight.js: specifier: 11.8.0 version: 11.8.0 @@ -134,8 +134,8 @@ importers: specifier: 2.22.2 version: 2.22.2 puppeteer-core: - specifier: ^23.1.1 - version: 23.1.1 + specifier: ^23.2.0 + version: 23.2.0 standalone-electron-types: specifier: ^1.0.0 version: 1.0.0(patch_hash=cvychuhjtbzvtowhc2efrgpqjq) @@ -158,8 +158,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 typescript-eslint: - specifier: ^8.2.0 - version: 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + specifier: ^8.3.0 + version: 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) typescript-transform-paths: specifier: ^3.5.0 version: 3.5.0(typescript@5.5.4) @@ -201,8 +201,8 @@ importers: specifier: ^7.5.8 version: 7.5.8 '@typescript-eslint/typescript-estree': - specifier: ^8.2.0 - version: 8.2.0(typescript@5.5.4) + specifier: ^8.3.0 + version: 8.3.0(typescript@5.5.4) eslint: specifier: ^9.9.1 version: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) @@ -210,8 +210,8 @@ importers: specifier: ^2.8.0 version: 2.8.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) eslint-plugin-import-x: - specifier: ^3.1.0 - version: 3.1.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + specifier: ^4.0.0 + version: 4.0.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) eslint-plugin-simple-header: specifier: ^1.1.1 version: 1.1.1 @@ -223,10 +223,10 @@ importers: version: 55.0.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) eslint-plugin-unused-imports: specifier: ^4.1.3 - version: 4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) + version: 4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) puppeteer-core: - specifier: ^23.1.1 - version: 23.1.1 + specifier: ^23.2.0 + version: 23.2.0 semver: specifier: ^7.6.3 version: 7.6.3 @@ -240,8 +240,8 @@ importers: specifier: ^5.5.4 version: 5.5.4 typescript-eslint: - specifier: ^8.2.0 - version: 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + specifier: ^8.3.0 + version: 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) packages/vencord-types: dependencies: @@ -249,8 +249,8 @@ importers: specifier: ~4.17.7 version: 4.17.7 '@types/node': - specifier: ^18.19.45 - version: 18.19.45 + specifier: ^18.19.46 + version: 18.19.46 '@types/react': specifier: ~18.2.79 version: 18.2.79 @@ -701,8 +701,8 @@ packages: '@types/lodash@4.17.7': resolution: {integrity: sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==} - '@types/node@18.19.45': - resolution: {integrity: sha512-VZxPKNNhjKmaC1SUYowuXSRSMGyQGmQjvvA1xE4QZ0xce2kLtEhPDS+kqpCPBZYgqblCLQ2DAjSzmgCM5auvhA==} + '@types/node@18.19.46': + resolution: {integrity: sha512-vnRgMS7W6cKa1/0G3/DTtQYpVrZ8c0Xm6UkLaVFrb9jtcVC3okokW09Ki1Qdrj9ISokszD69nY4WDLRlvHlhAA==} '@types/node@20.16.1': resolution: {integrity: sha512-zJDo7wEadFtSyNz5QITDfRcrhqDvQI1xQNQ0VoizPjM/dVAODqqIUWbJPkvsxmTI0MYRGRikcdjMPhOssnPejQ==} @@ -731,8 +731,8 @@ packages: '@types/yazl@2.4.5': resolution: {integrity: sha512-qpmPfx32HS7vlGJf7EsoM9qJnLZhXJBf1KH0hzfdc+D794rljQWh4H0I/UrZy+6Nhqn0l2jdBZXBGZtR1vnHqw==} - '@typescript-eslint/eslint-plugin@8.2.0': - resolution: {integrity: sha512-02tJIs655em7fvt9gps/+4k4OsKULYGtLBPJfOsmOq1+3cdClYiF0+d6mHu6qDnTcg88wJBkcPLpQhq7FyDz0A==} + '@typescript-eslint/eslint-plugin@8.3.0': + resolution: {integrity: sha512-FLAIn63G5KH+adZosDYiutqkOkYEx0nvcwNNfJAf+c7Ae/H35qWwTYvPZUKFj5AS+WfHG/WJJfWnDnyNUlp8UA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -742,8 +742,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.2.0': - resolution: {integrity: sha512-j3Di+o0lHgPrb7FxL3fdEy6LJ/j2NE8u+AP/5cQ9SKb+JLH6V6UHDqJ+e0hXBkHP1wn1YDFjYCS9LBQsZDlDEg==} + '@typescript-eslint/parser@8.3.0': + resolution: {integrity: sha512-h53RhVyLu6AtpUzVCYLPhZGL5jzTD9fZL+SYf/+hYOx2bDkyQXztXSc4tbvKYHzfMXExMLiL9CWqJmVz6+78IQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -752,16 +752,12 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.17.0': - resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/scope-manager@8.2.0': - resolution: {integrity: sha512-OFn80B38yD6WwpoHU2Tz/fTz7CgFqInllBoC3WP+/jLbTb4gGPTy9HBSTsbDWkMdN55XlVU0mMDYAtgvlUspGw==} + '@typescript-eslint/scope-manager@8.3.0': + resolution: {integrity: sha512-mz2X8WcN2nVu5Hodku+IR8GgCOl4C0G/Z1ruaWN4dgec64kDBabuXyPAr+/RgJtumv8EEkqIzf3X2U5DUKB2eg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.2.0': - resolution: {integrity: sha512-g1CfXGFMQdT5S+0PSO0fvGXUaiSkl73U1n9LTK5aRAFnPlJ8dLKkXr4AaLFvPedW8lVDoMgLLE3JN98ZZfsj0w==} + '@typescript-eslint/type-utils@8.3.0': + resolution: {integrity: sha512-wrV6qh//nLbfXZQoj32EXKmwHf4b7L+xXLrP3FZ0GOUU72gSvLjeWUl5J5Ue5IwRxIV1TfF73j/eaBapxx99Lg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -769,25 +765,12 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.17.0': - resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/types@8.2.0': - resolution: {integrity: sha512-6a9QSK396YqmiBKPkJtxsgZZZVjYQ6wQ/TlI0C65z7vInaETuC6HAHD98AGLC8DyIPqHytvNuS8bBVvNLKyqvQ==} + '@typescript-eslint/types@8.3.0': + resolution: {integrity: sha512-y6sSEeK+facMaAyixM36dQ5NVXTnKWunfD1Ft4xraYqxP0lC0POJmIaL/mw72CUMqjY9qfyVfXafMeaUj0noWw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@7.17.0': - resolution: {integrity: sha512-72I3TGq93t2GoSBWI093wmKo0n6/b7O4j9o8U+f65TVD0FS6bI2180X5eGEr8MA8PhKMvYe9myZJquUT2JkCZw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - - '@typescript-eslint/typescript-estree@8.2.0': - resolution: {integrity: sha512-kiG4EDUT4dImplOsbh47B1QnNmXSoUqOjWDvCJw/o8LgfD0yr7k2uy54D5Wm0j4t71Ge1NkynGhpWdS0dEIAUA==} + '@typescript-eslint/typescript-estree@8.3.0': + resolution: {integrity: sha512-Mq7FTHl0R36EmWlCJWojIC1qn/ZWo2YiWYc1XVtasJ7FIgjo0MVv9rZWXEE7IK2CGrtwe1dVOxWwqXUdNgfRCA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -795,24 +778,14 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.17.0': - resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==} - engines: {node: ^18.18.0 || >=20.0.0} - peerDependencies: - eslint: ^8.56.0 - - '@typescript-eslint/utils@8.2.0': - resolution: {integrity: sha512-O46eaYKDlV3TvAVDNcoDzd5N550ckSe8G4phko++OCSC1dYIb9LTc3HDGYdWqWIAT5qDUKphO6sd9RrpIJJPfg==} + '@typescript-eslint/utils@8.3.0': + resolution: {integrity: sha512-F77WwqxIi/qGkIGOGXNBLV7nykwfjLsdauRB/DOFPdv6LTF3BHHkBpq81/b5iMPSF055oO2BiivDJV4ChvNtXA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 - '@typescript-eslint/visitor-keys@7.17.0': - resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} - engines: {node: ^18.18.0 || >=20.0.0} - - '@typescript-eslint/visitor-keys@8.2.0': - resolution: {integrity: sha512-sbgsPMW9yLvS7IhCi8IpuK1oBmtbWUNP+hBdwl/I9nzqVsszGnNGti5r9dUtF5RLivHUFFIdRvLiTsPhzSyJ3Q==} + '@typescript-eslint/visitor-keys@8.3.0': + resolution: {integrity: sha512-RmZwrTbQ9QveF15m/Cl28n0LXD6ea2CjkhH5rQ55ewz3H24w+AMCJHPVYaZ8/0HoG8Z3cLLFFycRXxeO2tz9FA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vap/core@0.0.12': @@ -1131,8 +1104,8 @@ packages: resolution: {integrity: sha512-9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==} engines: {node: '>= 0.6.0'} - devtools-protocol@0.0.1312386: - resolution: {integrity: sha512-DPnhUXvmvKT2dFA/j7B+riVLUt9Q6RKJlcppojL5CoRywJJKLDYnRlw0gTFKfgDPHP5E04UoB71SxoJlVZy8FA==} + devtools-protocol@0.0.1330662: + resolution: {integrity: sha512-pzh6YQ8zZfz3iKlCvgzVCu22NdpZ8hNmwU6WnQjNVquh0A9iVosPtNLWDwaWVGyrntQlltPFztTMK5Cg6lfCuw==} diff@5.2.0: resolution: {integrity: sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==} @@ -1207,11 +1180,11 @@ packages: peerDependencies: eslint: '>=7.28.0' - eslint-plugin-import-x@3.1.0: - resolution: {integrity: sha512-/UbPA+bYY7nIxcjL3kpcDY3UNdoLHFhyBFzHox2M0ypcUoueTn6woZUUmzzi5et/dXChksasYYFeKE2wshOrhg==} - engines: {node: '>=16'} + eslint-plugin-import-x@4.0.0: + resolution: {integrity: sha512-5bWZ+2p3DKlpLSP830cAUmRUoYEnnvuBmSOSlURffEUuXL68uQUX0v2JpoXxyoDRIQWApzbqhnFeHA0XoQWosA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.56.0 || ^9.0.0-0 + eslint: ^8.57.0 || ^9.0.0 eslint-plugin-path-alias@2.1.0: resolution: {integrity: sha512-suHrHK2MmTDsmQhrZs+hvrNI2PBKAnZ4ir7y3oJLXJsjOFBfOJoQd+URqZC7ICHyNqesoZdcA0BxEG8z5p/mPw==} @@ -1996,8 +1969,8 @@ packages: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} - puppeteer-core@23.1.1: - resolution: {integrity: sha512-OeTqNiYGF9qZtwZU4Yc88DDqFJs4TJ4rnK81jkillh6MwDeQodyisM9xe5lBmPhwiDy92s5J5DQtQLjCKHFQ3g==} + puppeteer-core@23.2.0: + resolution: {integrity: sha512-OFyPp2oolGSesx6ZrpmorE5tCaCKY1Z5e/h8f6sB0NpiezenB72jdWBdOrvBO/bUXyq14XyGJsDRUsv0ZOPdZA==} engines: {node: '>=18'} q@1.5.1: @@ -2306,8 +2279,8 @@ packages: resolution: {integrity: sha512-hlR43v+GUIUy8/ZGFP1DquEqPh7PFKQdDMTAmYt671kCCA6AkDQMoeFaFmZ7ObPLYOmpMgyKUqL1C+coFMf30w==} hasBin: true - tslib@2.6.2: - resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==} + tslib@2.7.0: + resolution: {integrity: sha512-gLXCKdN1/j47AiHiOkJN69hJmcbGTHI0ImLmbYLHykhgeN0jVGola9yVjFgzCUklsZQMW55o+dW7IXv3RCXDzA==} tsx@4.18.0: resolution: {integrity: sha512-a1jaKBSVQkd6yEc1/NI7G6yHFfefIcuf3QJST7ZEyn4oQnxLYrZR5uZAM8UrwUa3Ge8suiZHcNS1gNrEvmobqg==} @@ -2333,8 +2306,8 @@ packages: typed-query-selector@2.12.0: resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} - typescript-eslint@8.2.0: - resolution: {integrity: sha512-DmnqaPcML0xYwUzgNbM1XaKXpEb7BShYf2P1tkUmmcl8hyeG7Pj08Er7R9bNy6AufabywzJcOybQAtnD/c9DGw==} + typescript-eslint@8.3.0: + resolution: {integrity: sha512-EvWjwWLwwKDIJuBjk2I6UkV8KEQcwZ0VM10nR1rIunRDIP67QJTZAHBXTX0HW/oI1H10YESF8yWie8fRQxjvFA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -2740,7 +2713,7 @@ snapshots: dependencies: '@stylistic/eslint-plugin-js': 2.6.4(patch_hash=pybdkzziqggup52e5v4scmfdsq)(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) '@types/eslint': 9.6.0 - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) transitivePeerDependencies: - supports-color @@ -2817,7 +2790,7 @@ snapshots: '@types/lodash@4.17.7': {} - '@types/node@18.19.45': + '@types/node@18.19.46': dependencies: undici-types: 5.26.5 @@ -2854,14 +2827,14 @@ snapshots: dependencies: '@types/node': 20.16.1 - '@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': dependencies: '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/type-utils': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/type-utils': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.3.0 eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) graphemer: 1.4.0 ignore: 5.3.2 @@ -2872,12 +2845,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': + '@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 8.2.0 + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.6 eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) optionalDependencies: @@ -2885,20 +2858,15 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.17.0': + '@typescript-eslint/scope-manager@8.3.0': dependencies: - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/visitor-keys': 7.17.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 - '@typescript-eslint/scope-manager@8.2.0': + '@typescript-eslint/type-utils@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 - - '@typescript-eslint/type-utils@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': - dependencies: - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) debug: 4.3.6 ts-api-utils: 1.3.0(typescript@5.5.4) optionalDependencies: @@ -2907,16 +2875,14 @@ snapshots: - eslint - supports-color - '@typescript-eslint/types@7.17.0': {} + '@typescript-eslint/types@8.3.0': {} - '@typescript-eslint/types@8.2.0': {} - - '@typescript-eslint/typescript-estree@7.17.0(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.3.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/visitor-keys': 7.17.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/visitor-keys': 8.3.0 debug: 4.3.6 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.4 semver: 7.6.3 @@ -2926,51 +2892,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.2.0(typescript@5.5.4)': - dependencies: - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/visitor-keys': 8.2.0 - debug: 4.3.6 - globby: 11.1.0 - is-glob: 4.0.3 - minimatch: 9.0.4 - semver: 7.6.3 - ts-api-utils: 1.3.0(typescript@5.5.4) - optionalDependencies: - typescript: 5.5.4 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/utils@7.17.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': + '@typescript-eslint/utils@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': dependencies: '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) - '@typescript-eslint/scope-manager': 7.17.0 - '@typescript-eslint/types': 7.17.0 - '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.3.0 + '@typescript-eslint/types': 8.3.0 + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4)': + '@typescript-eslint/visitor-keys@8.3.0': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)) - '@typescript-eslint/scope-manager': 8.2.0 - '@typescript-eslint/types': 8.2.0 - '@typescript-eslint/typescript-estree': 8.2.0(typescript@5.5.4) - eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/visitor-keys@7.17.0': - dependencies: - '@typescript-eslint/types': 7.17.0 - eslint-visitor-keys: 3.4.3 - - '@typescript-eslint/visitor-keys@8.2.0': - dependencies: - '@typescript-eslint/types': 8.2.0 + '@typescript-eslint/types': 8.3.0 eslint-visitor-keys: 3.4.3 '@vap/core@0.0.12': @@ -3035,7 +2970,7 @@ snapshots: ast-types@0.13.4: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 astral-regex@2.0.0: {} @@ -3134,7 +3069,7 @@ snapshots: camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.2 + tslib: 2.7.0 caniuse-lite@1.0.30001625: {} @@ -3149,9 +3084,9 @@ snapshots: ansi-styles: 4.3.0 supports-color: 7.2.0 - chromium-bidi@0.6.4(devtools-protocol@0.0.1312386): + chromium-bidi@0.6.4(devtools-protocol@0.0.1330662): dependencies: - devtools-protocol: 0.0.1312386 + devtools-protocol: 0.0.1330662 mitt: 3.0.1 urlpattern-polyfill: 10.0.0 zod: 3.23.8 @@ -3277,7 +3212,7 @@ snapshots: dependency-graph@0.9.0: {} - devtools-protocol@0.0.1312386: {} + devtools-protocol@0.0.1330662: {} diff@5.2.0: {} @@ -3301,7 +3236,7 @@ snapshots: dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 electron-to-chromium@1.4.788: {} @@ -3374,9 +3309,10 @@ snapshots: is-glob: 4.0.3 micromatch: 4.0.7 - eslint-plugin-import-x@3.1.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4): + eslint-plugin-import-x@4.0.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4): dependencies: - '@typescript-eslint/utils': 7.17.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/typescript-estree': 8.3.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) debug: 4.3.6 doctrine: 3.0.0 eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) @@ -3386,7 +3322,7 @@ snapshots: minimatch: 9.0.4 semver: 7.6.3 stable-hash: 0.0.4 - tslib: 2.6.2 + tslib: 2.7.0 transitivePeerDependencies: - supports-color - typescript @@ -3448,11 +3384,11 @@ snapshots: semver: 7.6.3 strip-indent: 3.0.0 - eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)): + eslint-plugin-unused-imports@4.1.3(@typescript-eslint/eslint-plugin@8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi)): dependencies: eslint: 9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi) optionalDependencies: - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) eslint-scope@8.0.2: dependencies: @@ -3941,7 +3877,7 @@ snapshots: lower-case@2.0.2: dependencies: - tslib: 2.6.2 + tslib: 2.7.0 lru-cache@7.18.3: {} @@ -4026,7 +3962,7 @@ snapshots: no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.2 + tslib: 2.7.0 node-releases@2.0.14: {} @@ -4109,7 +4045,7 @@ snapshots: param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 parent-module@1.0.1: dependencies: @@ -4127,7 +4063,7 @@ snapshots: pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.2 + tslib: 2.7.0 pascalcase@0.1.1: {} @@ -4200,12 +4136,12 @@ snapshots: punycode@2.1.1: {} - puppeteer-core@23.1.1: + puppeteer-core@23.2.0: dependencies: '@puppeteer/browsers': 2.3.1 - chromium-bidi: 0.6.4(devtools-protocol@0.0.1312386) + chromium-bidi: 0.6.4(devtools-protocol@0.0.1330662) debug: 4.3.6 - devtools-protocol: 0.0.1312386 + devtools-protocol: 0.0.1330662 typed-query-selector: 2.12.0 ws: 8.18.0 transitivePeerDependencies: @@ -4394,7 +4330,7 @@ snapshots: standalone-electron-types@1.0.0(patch_hash=cvychuhjtbzvtowhc2efrgpqjq): dependencies: - '@types/node': 18.19.45 + '@types/node': 18.19.46 static-extend@0.1.2: dependencies: @@ -4567,7 +4503,7 @@ snapshots: semver: 7.6.3 strip-ansi: 6.0.1 - tslib@2.6.2: {} + tslib@2.7.0: {} tsx@4.18.0: dependencies: @@ -4588,11 +4524,11 @@ snapshots: typed-query-selector@2.12.0: {} - typescript-eslint@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4): + typescript-eslint@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4): dependencies: - '@typescript-eslint/eslint-plugin': 8.2.0(@typescript-eslint/parser@8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) - '@typescript-eslint/parser': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) - '@typescript-eslint/utils': 8.2.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/eslint-plugin': 8.3.0(@typescript-eslint/parser@8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4))(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/parser': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) + '@typescript-eslint/utils': 8.3.0(eslint@9.9.1(patch_hash=wy5a2dwvtxac2ygzwebqqjurgi))(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: diff --git a/src/plugins/betterFolders/FolderSideBar.tsx b/src/plugins/betterFolders/FolderSideBar.tsx index 407f777d8..d0e2fa97b 100644 --- a/src/plugins/betterFolders/FolderSideBar.tsx +++ b/src/plugins/betterFolders/FolderSideBar.tsx @@ -17,14 +17,14 @@ */ import ErrorBoundary from "@components/ErrorBoundary"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findByPropsLazy, findComponentByCodeLazy, findStoreLazy } from "@webpack"; import { useStateFromStores } from "@webpack/common"; import type { CSSProperties } from "react"; import { ExpandedGuildFolderStore, settings } from "."; -const ChannelRTCStore: FluxStore & Record = findStoreLazy("ChannelRTCStore"); +const ChannelRTCStore: Store & Record = findStoreLazy("ChannelRTCStore"); const Animations = findByPropsLazy("a", "animated", "useTransition"); const GuildsBar = findComponentByCodeLazy('("guildsnav")'); diff --git a/src/plugins/betterFolders/index.tsx b/src/plugins/betterFolders/index.tsx index 0b5137a22..716abe0ef 100644 --- a/src/plugins/betterFolders/index.tsx +++ b/src/plugins/betterFolders/index.tsx @@ -19,7 +19,7 @@ import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import type { FluxPersistedStore, FluxSnapshotStore } from "@vencord/discord-types"; +import type { PersistedStore, SnapshotStore } from "@vencord/discord-types"; import { findByPropsLazy, findLazy, findStoreLazy } from "@webpack"; import { FluxDispatcher, i18n, useMemo } from "@webpack/common"; @@ -32,8 +32,8 @@ enum FolderIconDisplay { } const GuildsTree = findLazy(m => m.prototype?.moveNextTo); -const SortedGuildStore: FluxSnapshotStore & Record = findStoreLazy("SortedGuildStore"); -export const ExpandedGuildFolderStore: FluxPersistedStore & Record = findStoreLazy("ExpandedGuildFolderStore"); +const SortedGuildStore: SnapshotStore & Record = findStoreLazy("SortedGuildStore"); +export const ExpandedGuildFolderStore: PersistedStore & Record = findStoreLazy("ExpandedGuildFolderStore"); const GuildActionCreators = findByPropsLazy("move", "toggleGuildFolderExpand"); let lastGuildId: string | null = null; diff --git a/src/plugins/betterSessions/index.tsx b/src/plugins/betterSessions/index.tsx index 204254b70..93bc7640e 100644 --- a/src/plugins/betterSessions/index.tsx +++ b/src/plugins/betterSessions/index.tsx @@ -21,7 +21,7 @@ import { definePluginSettings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findByPropsLazy, findExportedComponentLazy, findStoreLazy } from "@webpack"; import { Constants, RestAPI, Tooltip, UserSettingsModalActionCreators, useState } from "@webpack/common"; import type { ComponentType } from "react"; @@ -30,7 +30,7 @@ import { RenameButton } from "./components/RenameButton"; import type { Session, SessionInfo } from "./types"; import { fetchNamesFromDataStore, getDefaultName, GetOSColor, GetPlatformIcon, savedSessionsCache, saveSessionsToDataStore } from "./utils"; -const AuthSessionsStore: FluxStore & Record = findStoreLazy("AuthSessionsStore"); +const AuthSessionsStore: Store & Record = findStoreLazy("AuthSessionsStore"); const TimestampClasses: Record = findByPropsLazy("timestampTooltip", "blockquoteContainer"); const SessionIconClasses: Record = findByPropsLazy("sessionIcon"); diff --git a/src/plugins/biggerStreamPreview/webpack/types/stores.ts b/src/plugins/biggerStreamPreview/webpack/types/stores.ts index b4b17012a..386f40d44 100644 --- a/src/plugins/biggerStreamPreview/webpack/types/stores.ts +++ b/src/plugins/biggerStreamPreview/webpack/types/stores.ts @@ -16,9 +16,9 @@ * along with this program. If not, see . */ -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; -export interface ApplicationStreamPreviewStore extends FluxStore { +export interface ApplicationStreamPreviewStore extends Store { getIsPreviewLoading: (guildId: string | null | undefined, channelId: string, ownerId: string) => boolean; getPreviewURL: (guildId: string | null | undefined, channelId: string, ownerId: string) => string | null; getPreviewURLForStreamKey: (streamKey: string) => ReturnType; @@ -57,7 +57,7 @@ export interface StreamingStoreState { /** * example how a stream key could look like: `call(type of connection):1116549917987192913(channelId):305238513941667851(ownerId)` */ -export interface ApplicationStreamingStore extends FluxStore { +export interface ApplicationStreamingStore extends Store { getActiveStreamForApplicationStream: (stream: ApplicationStream) => Stream | null; getActiveStreamForStreamKey: (streamKey: string) => Stream | null; getActiveStreamForUser: (userId: string, guildId?: string | null) => Stream | null; diff --git a/src/plugins/clientTheme/index.tsx b/src/plugins/clientTheme/index.tsx index 992acd3ee..f7f44eee0 100644 --- a/src/plugins/clientTheme/index.tsx +++ b/src/plugins/clientTheme/index.tsx @@ -12,7 +12,7 @@ import { Devs } from "@utils/constants"; import { Margins } from "@utils/margins"; import { classes } from "@utils/misc"; import definePlugin, { OptionType, StartAt } from "@utils/types"; -import type { FluxPersistedStore } from "@vencord/discord-types"; +import type { PersistedStore } from "@vencord/discord-types"; import { findByCodeLazy, findComponentByCodeLazy, findStoreLazy } from "@webpack"; import { Button, Forms, useStateFromStores } from "@webpack/common"; @@ -38,8 +38,8 @@ function setTheme(theme: string) { saveClientTheme({ theme }); } -const ThemeStore: FluxPersistedStore & Record = findStoreLazy("ThemeStore"); -const ClientThemesBackgroundStore: FluxPersistedStore & Record = findStoreLazy("ClientThemesBackgroundStore"); +const ThemeStore: PersistedStore & Record = findStoreLazy("ThemeStore"); +const ClientThemesBackgroundStore: PersistedStore & Record = findStoreLazy("ClientThemesBackgroundStore"); function ThemeSettings() { const theme = useStateFromStores([ThemeStore], () => ThemeStore.theme); diff --git a/src/plugins/emoteCloner/index.tsx b/src/plugins/emoteCloner/index.tsx index 2001bbd09..8a3925b9e 100644 --- a/src/plugins/emoteCloner/index.tsx +++ b/src/plugins/emoteCloner/index.tsx @@ -23,12 +23,12 @@ import { Logger } from "@utils/Logger"; import { Margins } from "@utils/margins"; import { ModalContent, ModalHeader, ModalRoot, openModalLazy } from "@utils/modal"; import definePlugin from "@utils/types"; -import { type FluxStore, type GuildEmoji as $Emoji, type MessageRecord, type Sticker as $Sticker, StickerFormat } from "@vencord/discord-types"; +import { type GuildEmoji as $Emoji, type MessageRecord, type Sticker as $Sticker, StickerFormat, type Store } from "@vencord/discord-types"; import { findByCodeLazy, findStoreLazy } from "@webpack"; import { Constants, EmojiStore, FluxDispatcher, Forms, GuildStore, Menu, Permissions, PermissionStore, RestAPI, Toasts, Tooltip, useMemo, useReducer, UserStore, useState } from "@webpack/common"; import type { Promisable } from "type-fest"; -const StickersStore: FluxStore & Record = findStoreLazy("StickersStore"); +const StickersStore: Store & Record = findStoreLazy("StickersStore"); const uploadEmoji = findByCodeLazy(".GUILD_EMOJIS(", "EMOJI_UPLOAD_START"); const DATA_TYPE = Symbol(); diff --git a/src/plugins/fakeNitro/index.tsx b/src/plugins/fakeNitro/index.tsx index be07f509e..9371b4001 100644 --- a/src/plugins/fakeNitro/index.tsx +++ b/src/plugins/fakeNitro/index.tsx @@ -23,19 +23,19 @@ import { ApngBlendOp, ApngDisposeOp, importApngJs } from "@utils/dependencies"; import { getCurrentGuild } from "@utils/discord"; import { Logger } from "@utils/Logger"; import definePlugin, { OptionType } from "@utils/types"; -import { DraftType, type Emoji, EmojiIntention, EmojiType, type FluxPersistedStore, type FluxStore, type MessageAttachment, type MessageEmbed, type MessageRecord, type Sticker, StickerFormat, UserPremiumType } from "@vencord/discord-types"; +import { DraftType, type Emoji, EmojiIntention, EmojiType, type MessageAttachment, type MessageEmbed, type MessageRecord, type PersistedStore, type Sticker, StickerFormat, type Store, UserPremiumType } from "@vencord/discord-types"; import { findByCodeLazy, findByPropsLazy, findStoreLazy, proxyLazyWebpack } from "@webpack"; import { AlertActionCreators, ChannelStore, EmojiStore, FluxDispatcher, Forms, GuildMemberStore, IconUtils, lodash, MarkupUtils, Permissions, PermissionStore, promptToUpload, UserSettingsProtoActionCreators, UserStore } from "@webpack/common"; import { applyPalette, GIFEncoder, quantize } from "gifenc"; import type { ReactElement, ReactNode } from "react"; -const StickerStore: FluxStore & { +const StickerStore: Store & { getPremiumPacks: () => StickerPack[]; getAllGuildStickers: () => Map; getStickerById: (id: string) => Sticker | undefined; } = findStoreLazy("StickersStore"); -const UserSettingsProtoStore: FluxPersistedStore & Record = findStoreLazy("UserSettingsProtoStore"); +const UserSettingsProtoStore: PersistedStore & Record = findStoreLazy("UserSettingsProtoStore"); const BINARY_READ_OPTIONS = findByPropsLazy("readerFactory"); diff --git a/src/plugins/ignoreActivities/index.tsx b/src/plugins/ignoreActivities/index.tsx index 6d4c1088c..3e3f7d5e3 100644 --- a/src/plugins/ignoreActivities/index.tsx +++ b/src/plugins/ignoreActivities/index.tsx @@ -12,7 +12,7 @@ import { Flex } from "@components/Flex"; import { Devs } from "@utils/constants"; import { Margins } from "@utils/margins"; import definePlugin, { OptionType } from "@utils/types"; -import { ActivityType, type FluxStore } from "@vencord/discord-types"; +import { ActivityType, type Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { Button, Forms, showToast, TextInput, Toasts, Tooltip, useEffect, useState } from "@webpack/common"; import type { MouseEvent } from "react"; @@ -28,7 +28,7 @@ interface IgnoredActivity { type: ActivitiesTypes; } -const RunningGameStore: FluxStore & Record = findStoreLazy("RunningGameStore"); +const RunningGameStore: Store & Record = findStoreLazy("RunningGameStore"); const ShowCurrentGame = getUserSettingLazy("status", "showCurrentGame")!; diff --git a/src/plugins/implicitRelationships/index.ts b/src/plugins/implicitRelationships/index.ts index f6c101464..782bf6760 100644 --- a/src/plugins/implicitRelationships/index.ts +++ b/src/plugins/implicitRelationships/index.ts @@ -19,12 +19,12 @@ import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import { type FluxPersistedStore, RelationshipType } from "@vencord/discord-types"; +import { type PersistedStore, RelationshipType } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { ChannelStore, Constants, FluxDispatcher, GuildStore, RelationshipStore, SnowflakeUtils, UserStore } from "@webpack/common"; import { Settings } from "Vencord"; -const UserAffinitiesStore: FluxPersistedStore & Record = findStoreLazy("UserAffinitiesStore"); +const UserAffinitiesStore: PersistedStore & Record = findStoreLazy("UserAffinitiesStore"); export default definePlugin({ name: "ImplicitRelationships", diff --git a/src/plugins/index.ts b/src/plugins/index.ts index 4a4bce804..6d0cf2553 100644 --- a/src/plugins/index.ts +++ b/src/plugins/index.ts @@ -22,7 +22,7 @@ import { Settings } from "@api/Settings"; import { Logger } from "@utils/Logger"; import { canonicalizeFind } from "@utils/patches"; import { type Patch, type Plugin, ReporterTestable, StartAt } from "@utils/types"; -import type { FluxActionType } from "@vencord/discord-types"; +import type { ActionType, Dispatcher } from "@vencord/discord-types"; import { FluxDispatcher } from "@webpack/common"; import Plugins from "~plugins"; @@ -167,13 +167,13 @@ export function startDependenciesRecursive(plugin: Plugin) { return { restartNeeded, failures }; } -export function subscribePluginFluxActions(plugin: Plugin, fluxDispatcher: typeof FluxDispatcher) { +export function subscribePluginFluxActions(plugin: Plugin, fluxDispatcher: Dispatcher) { if (plugin.flux && !subscribedFluxActionsPlugins.has(plugin.name) && (!IS_REPORTER || isReporterTestable(plugin, ReporterTestable.FluxActions))) { subscribedFluxActionsPlugins.add(plugin.name); logger.debug("Subscribing to Flux actions of plugin", plugin.name); for (const [action, handler] of Object.entries(plugin.flux)) { - const wrappedHandler = plugin.flux[action as FluxActionType] = function () { + const wrappedHandler = plugin.flux[action as ActionType] = function () { try { // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression const res = handler.apply(plugin, arguments as any); @@ -186,23 +186,23 @@ export function subscribePluginFluxActions(plugin: Plugin, fluxDispatcher: typeo } }; - fluxDispatcher.subscribe(action as FluxActionType, wrappedHandler); + fluxDispatcher.subscribe(action as ActionType, wrappedHandler); } } } -export function unsubscribePluginFluxActions(plugin: Plugin, fluxDispatcher: typeof FluxDispatcher) { +export function unsubscribePluginFluxActions(plugin: Plugin, fluxDispatcher: Dispatcher) { if (plugin.flux) { subscribedFluxActionsPlugins.delete(plugin.name); logger.debug("Unsubscribing from Flux action of plugin", plugin.name); for (const [action, handler] of Object.entries(plugin.flux)) { - fluxDispatcher.unsubscribe(action as FluxActionType, handler); + fluxDispatcher.unsubscribe(action as ActionType, handler); } } } -export function subscribeAllPluginsFluxActions(fluxDispatcher: typeof FluxDispatcher) { +export function subscribeAllPluginsFluxActions(fluxDispatcher: Dispatcher) { enabledPluginsSubscribedFlux = true; for (const name in Plugins) { diff --git a/src/plugins/lastfm/index.tsx b/src/plugins/lastfm/index.tsx index b7c50b8db..5c9867ecd 100644 --- a/src/plugins/lastfm/index.tsx +++ b/src/plugins/lastfm/index.tsx @@ -21,7 +21,7 @@ import { Link } from "@components/Link"; import { Devs } from "@utils/constants"; import { Logger } from "@utils/Logger"; import definePlugin, { OptionType } from "@utils/types"; -import { type Activity, type ActivityAssets, ActivityFlags, ActivityType, type FluxStore } from "@vencord/discord-types"; +import { type Activity, type ActivityAssets, ActivityFlags, ActivityType, type Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { ApplicationAssetUtils, FluxDispatcher, Forms } from "@webpack/common"; @@ -52,7 +52,7 @@ const placeholderId = "2a96cbd8b46e442fc41c2b86b821562f"; const logger = new Logger("LastFMRichPresence"); -const SelfPresenceStore: FluxStore & Record = findStoreLazy("SelfPresenceStore"); +const SelfPresenceStore: Store & Record = findStoreLazy("SelfPresenceStore"); const getApplicationAsset = async (key: string) => (await ApplicationAssetUtils.fetchAssetIds(applicationId, [key]))[0]!; diff --git a/src/plugins/memberCount/index.tsx b/src/plugins/memberCount/index.tsx index 8ff6e989d..77ff93d15 100644 --- a/src/plugins/memberCount/index.tsx +++ b/src/plugins/memberCount/index.tsx @@ -23,22 +23,22 @@ import { classNameFactory } from "@api/Styles"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { MemberCount } from "./MemberCount"; -export const GuildMemberCountStore: FluxStore & { +export const GuildMemberCountStore: Store & { getMemberCount: (guildId?: string | null | undefined) => number | null | undefined; } = findStoreLazy("GuildMemberCountStore"); -export const ChannelMemberStore: FluxStore & { +export const ChannelMemberStore: Store & { getProps: (guildId: string, channelId?: string | null | undefined) => { groups: { count: number; id: string; }[]; }; } = findStoreLazy("ChannelMemberStore"); -export const ThreadMemberListStore: FluxStore & { +export const ThreadMemberListStore: Store & { getMemberListSections: (channelId: string) => { [sectionId: string]: { sectionId: string; userIds: string[]; }; }; diff --git a/src/plugins/messageClickActions/index.ts b/src/plugins/messageClickActions/index.ts index b07c11f4d..a49d7ae4b 100644 --- a/src/plugins/messageClickActions/index.ts +++ b/src/plugins/messageClickActions/index.ts @@ -20,11 +20,11 @@ import { addClickListener, removeClickListener } from "@api/MessageEvents"; import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import { type FluxStore, MessageFlags, type MessageRecord } from "@vencord/discord-types"; +import { MessageFlags, type MessageRecord, type Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { FluxDispatcher, MessageActionCreators, Permissions, PermissionStore, UserStore } from "@webpack/common"; -const EditMessageStore: FluxStore & Record = findStoreLazy("EditMessageStore"); +const EditMessageStore: Store & Record = findStoreLazy("EditMessageStore"); let isDeletePressed = false; const keydown = (e: KeyboardEvent) => e.key === "Backspace" && (isDeletePressed = true); diff --git a/src/plugins/noPendingCount/index.ts b/src/plugins/noPendingCount/index.ts index 64139ab3a..1159cbe27 100644 --- a/src/plugins/noPendingCount/index.ts +++ b/src/plugins/noPendingCount/index.ts @@ -19,10 +19,10 @@ import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import type { FluxSnapshotStore } from "@vencord/discord-types"; +import type { SnapshotStore } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; -const MessageRequestStore: FluxSnapshotStore & Record = findStoreLazy("MessageRequestStore"); +const MessageRequestStore: SnapshotStore & Record = findStoreLazy("MessageRequestStore"); const settings = definePluginSettings({ hideFriendRequestsCount: { diff --git a/src/plugins/petpet/index.ts b/src/plugins/petpet/index.ts index 21efdd952..cfebbf067 100644 --- a/src/plugins/petpet/index.ts +++ b/src/plugins/petpet/index.ts @@ -20,7 +20,7 @@ import { ApplicationCommandInputType, type Argument, type CommandContext, findOp import { Devs } from "@utils/constants"; import { makeLazy } from "@utils/lazy"; import definePlugin from "@utils/types"; -import { ApplicationCommandOptionType, DraftType, type FluxStore } from "@vencord/discord-types"; +import { ApplicationCommandOptionType, DraftType, type Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { promptToUpload, UploadAttachmentActionCreators, UserActionCreators } from "@webpack/common"; import { applyPalette, GIFEncoder, quantize } from "gifenc"; @@ -36,7 +36,7 @@ const getFrames = makeLazy(() => { return Promise.all(frames); }); -const UploadAttachmentStore: FluxStore & Record = findStoreLazy("UploadAttachmentStore"); +const UploadAttachmentStore: Store & Record = findStoreLazy("UploadAttachmentStore"); function loadImage(source: File | string) { const isFile = source instanceof File; diff --git a/src/plugins/pinDms/index.tsx b/src/plugins/pinDms/index.tsx index ccf4947e0..f4728f458 100644 --- a/src/plugins/pinDms/index.tsx +++ b/src/plugins/pinDms/index.tsx @@ -12,7 +12,7 @@ import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import { classes } from "@utils/misc"; import definePlugin, { OptionType, StartAt } from "@utils/types"; -import type { ChannelRecord, FluxStore } from "@vencord/discord-types"; +import type { ChannelRecord, Store } from "@vencord/discord-types"; import { findByPropsLazy, findStoreLazy } from "@webpack"; import { ContextMenuApi, FluxDispatcher, Menu } from "@webpack/common"; import type { ComponentType, ReactNode } from "react"; @@ -30,7 +30,7 @@ interface ChannelComponentProps { const headerClasses: Record = findByPropsLazy("privateChannelsHeaderContainer"); -export const PrivateChannelSortStore: FluxStore & { +export const PrivateChannelSortStore: Store & { getPrivateChannelIds: () => string[]; } = findStoreLazy("PrivateChannelSortStore"); diff --git a/src/plugins/platformIndicators/index.tsx b/src/plugins/platformIndicators/index.tsx index 78801ab5b..4916cd93e 100644 --- a/src/plugins/platformIndicators/index.tsx +++ b/src/plugins/platformIndicators/index.tsx @@ -25,7 +25,7 @@ import { Settings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import { type ClientStatusMap, ClientType, type FluxStore, StatusType, type UserRecord } from "@vencord/discord-types"; +import { type ClientStatusMap, ClientType, StatusType, type Store, type UserRecord } from "@vencord/discord-types"; import { findByPropsLazy, findStoreLazy } from "@webpack"; import { PresenceStore, Tooltip, UserStore } from "@webpack/common"; @@ -40,7 +40,7 @@ export interface Session { }; } -const SessionsStore: FluxStore & { +const SessionsStore: Store & { getSessions: () => Record; } = findStoreLazy("SessionsStore"); diff --git a/src/plugins/previewMessage/index.tsx b/src/plugins/previewMessage/index.tsx index 36164dac6..d4b6d7480 100644 --- a/src/plugins/previewMessage/index.tsx +++ b/src/plugins/previewMessage/index.tsx @@ -20,11 +20,11 @@ import { addChatBarButton, ChatBarButton, removeChatBarButton } from "@api/ChatB import { generateId, sendBotMessage } from "@api/Commands"; import { Devs } from "@utils/constants"; import definePlugin, { StartAt } from "@utils/types"; -import { DraftType, type FluxStore, type MessageAttachment } from "@vencord/discord-types"; +import { DraftType, type MessageAttachment, type Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { DraftStore, SelectedChannelStore, UserStore, useStateFromStores } from "@webpack/common"; -const UploadAttachmentStore: FluxStore & Record = findStoreLazy("UploadAttachmentStore"); +const UploadAttachmentStore: Store & Record = findStoreLazy("UploadAttachmentStore"); const getDraft = (channelId: string) => DraftStore.getDraft(channelId, DraftType.CHANNEL_MESSAGE); diff --git a/src/plugins/pronoundb/pronoundbUtils.ts b/src/plugins/pronoundb/pronoundbUtils.ts index 4b565d244..e30ec64f6 100644 --- a/src/plugins/pronoundb/pronoundbUtils.ts +++ b/src/plugins/pronoundb/pronoundbUtils.ts @@ -21,14 +21,14 @@ import { debounce } from "@shared/debounce"; import { VENCORD_USER_AGENT } from "@shared/vencordUserAgent"; import { getCurrentChannel } from "@utils/discord"; import { useAwaiter } from "@utils/react"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { UserProfileStore, UserStore } from "@webpack/common"; import { settings } from "./settings"; import { type CachePronouns, type PronounCode, PronounMapping, type PronounsResponse } from "./types"; -const UserSettingsAccountStore: FluxStore & Record = findStoreLazy("UserSettingsAccountStore"); +const UserSettingsAccountStore: Store & Record = findStoreLazy("UserSettingsAccountStore"); type PronounsWithSource = [pronouns: string | null, source: string, hasPendingPronouns: boolean]; const EmptyPronouns: PronounsWithSource = [null, "", false]; diff --git a/src/plugins/readAllNotificationsButton/index.tsx b/src/plugins/readAllNotificationsButton/index.tsx index 12dfee74d..49f9f35b7 100644 --- a/src/plugins/readAllNotificationsButton/index.tsx +++ b/src/plugins/readAllNotificationsButton/index.tsx @@ -22,7 +22,7 @@ import { addServerListElement, removeServerListElement, ServerListRenderPosition import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin from "@utils/types"; -import { type FluxStore, GuildChannelType, ReadStateType, type ThreadChannelRecord } from "@vencord/discord-types"; +import { GuildChannelType, ReadStateType, type Store, type ThreadChannelRecord } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { Button, FluxDispatcher, GuildChannelStore, GuildStore, ReadStateStore } from "@webpack/common"; @@ -34,7 +34,7 @@ interface ThreadJoined { type ThreadsJoined = Record; type ThreadsJoinedByParent = Record; -const ActiveJoinedThreadsStore: FluxStore & { +const ActiveJoinedThreadsStore: Store & { getActiveJoinedThreadsForGuild: (guildId: string) => ThreadsJoinedByParent; } = findStoreLazy("ActiveJoinedThreadsStore"); diff --git a/src/plugins/relationshipNotifier/utils.ts b/src/plugins/relationshipNotifier/utils.ts index 540a7282a..ff23c5601 100644 --- a/src/plugins/relationshipNotifier/utils.ts +++ b/src/plugins/relationshipNotifier/utils.ts @@ -19,14 +19,14 @@ import { DataStore, Notices } from "@api/index"; import { showNotification } from "@api/Notifications"; import { getUniqueUsername, openUserProfile } from "@utils/discord"; -import { type FluxStore, RelationshipType } from "@vencord/discord-types"; +import { RelationshipType, type Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { ChannelStore, GuildMemberStore, GuildStore, IconUtils, RelationshipStore, UserActionCreators, UserStore } from "@webpack/common"; import settings from "./settings"; import type { SimpleGroupDMChannel, SimpleGuild } from "./types"; -export const GuildAvailabilityStore: FluxStore & { +export const GuildAvailabilityStore: Store & { totalGuilds: number; totalUnavailableGuilds: number; unavailableGuilds: string[]; diff --git a/src/plugins/seeSummaries/index.tsx b/src/plugins/seeSummaries/index.tsx index 53adca14c..6ce8bcc7a 100644 --- a/src/plugins/seeSummaries/index.tsx +++ b/src/plugins/seeSummaries/index.tsx @@ -8,11 +8,11 @@ import { DataStore } from "@api/index"; import { definePluginSettings } from "@api/Settings"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import { type FluxPersistedStore, GuildFeature } from "@vencord/discord-types"; +import { GuildFeature, type PersistedStore } from "@vencord/discord-types"; import { findByCodeLazy, findByPropsLazy } from "@webpack"; import { ChannelStore, GuildStore } from "@webpack/common"; -const SummaryStore: FluxPersistedStore & Record = findByPropsLazy("allSummaries", "findSummary"); +const SummaryStore: PersistedStore & Record = findByPropsLazy("allSummaries", "findSummary"); const createSummaryFromServer = findByCodeLazy(".people)),startId:", ".type}"); const settings = definePluginSettings({ diff --git a/src/plugins/spotifyControls/SpotifyStore.ts b/src/plugins/spotifyControls/SpotifyStore.ts index 14c6cf774..84260cbf0 100644 --- a/src/plugins/spotifyControls/SpotifyStore.ts +++ b/src/plugins/spotifyControls/SpotifyStore.ts @@ -17,7 +17,7 @@ */ import { Settings } from "@api/Settings"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findByPropsLazy, findStore, proxyLazyWebpack } from "@webpack"; import { Flux, FluxDispatcher } from "@webpack/common"; @@ -69,7 +69,7 @@ type Repeat = "off" | "track" | "context"; // Don't wanna run before Flux and Dispatcher are ready! export const SpotifyStore = proxyLazyWebpack(() => { - const $SpotifyStore: FluxStore & Record = findStore("SpotifyStore"); + const $SpotifyStore: Store & Record = findStore("SpotifyStore"); const SpotifyAPI = findByPropsLazy("vcSpotifyMarker"); const API_BASE = "https://api.spotify.com/v1/me/player"; diff --git a/src/plugins/spotifyShareCommands/index.ts b/src/plugins/spotifyShareCommands/index.ts index a26d71c6e..1df0d2071 100644 --- a/src/plugins/spotifyShareCommands/index.ts +++ b/src/plugins/spotifyShareCommands/index.ts @@ -19,7 +19,7 @@ import { ApplicationCommandInputType, sendBotMessage } from "@api/Commands"; import { Devs } from "@utils/constants"; import definePlugin from "@utils/types"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { FluxDispatcher, MessageActionCreators } from "@webpack/common"; @@ -53,8 +53,8 @@ interface Track { name: string; } -const SpotifyStore: FluxStore & Record = findStoreLazy("SpotifyStore"); -const PendingReplyStore: FluxStore & Record = findStoreLazy("PendingReplyStore"); +const SpotifyStore: Store & Record = findStoreLazy("SpotifyStore"); +const PendingReplyStore: Store & Record = findStoreLazy("PendingReplyStore"); async function sendMessage(channelId: string, message: { content: string; }) { const messageToSend = { diff --git a/src/plugins/typingIndicator/index.tsx b/src/plugins/typingIndicator/index.tsx index d1d60adfe..cbefbede4 100644 --- a/src/plugins/typingIndicator/index.tsx +++ b/src/plugins/typingIndicator/index.tsx @@ -22,7 +22,7 @@ import { definePluginSettings, Settings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import type { FluxPersistedStore, FluxStore } from "@vencord/discord-types"; +import type { PersistedStore, Store } from "@vencord/discord-types"; import { findComponentByCodeLazy, findExportedComponentLazy, findStoreLazy } from "@webpack"; import { ChannelStore, GuildMemberStore, i18n, RelationshipStore, SelectedChannelStore, Tooltip, UserStore, useStateFromStores } from "@webpack/common"; import type { ReactNode } from "react"; @@ -32,8 +32,8 @@ import { buildSeveralUsers } from "../typingTweaks"; const ThreeDots = findExportedComponentLazy("Dots", "AnimatedDots"); const UserSummaryItem = findComponentByCodeLazy("defaultRenderUser", "showDefaultAvatarsForNullUsers"); -const TypingStore: FluxStore & Record = findStoreLazy("TypingStore"); -const UserGuildSettingsStore: FluxPersistedStore & Record = findStoreLazy("UserGuildSettingsStore"); +const TypingStore: Store & Record = findStoreLazy("TypingStore"); +const UserGuildSettingsStore: PersistedStore & Record = findStoreLazy("UserGuildSettingsStore"); const enum IndicatorMode { Dots = 1 << 0, diff --git a/src/plugins/userVoiceShow/index.tsx b/src/plugins/userVoiceShow/index.tsx index adf8f99c6..359e835c0 100644 --- a/src/plugins/userVoiceShow/index.tsx +++ b/src/plugins/userVoiceShow/index.tsx @@ -20,13 +20,13 @@ import { definePluginSettings } from "@api/Settings"; import ErrorBoundary from "@components/ErrorBoundary"; import { Devs } from "@utils/constants"; import definePlugin, { OptionType } from "@utils/types"; -import type { FluxStore, UserRecord } from "@vencord/discord-types"; +import type { Store, UserRecord } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { ChannelStore, GuildStore, UserStore } from "@webpack/common"; import { VoiceChannelSection } from "./components/VoiceChannelSection"; -const VoiceStateStore: FluxStore & Record = findStoreLazy("VoiceStateStore"); +const VoiceStateStore: Store & Record = findStoreLazy("VoiceStateStore"); const settings = definePluginSettings({ showInUserProfileModal: { diff --git a/src/plugins/vcNarrator/index.tsx b/src/plugins/vcNarrator/index.tsx index 2f322f492..5b0b6abdd 100644 --- a/src/plugins/vcNarrator/index.tsx +++ b/src/plugins/vcNarrator/index.tsx @@ -23,7 +23,7 @@ import { Logger } from "@utils/Logger"; import { Margins } from "@utils/margins"; import { wordsToTitle } from "@utils/text"; import definePlugin, { OptionType, type PluginOptionsItem, ReporterTestable } from "@utils/types"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; import { Button, ChannelStore, Forms, GuildMemberStore, SelectedChannelStore, SelectedGuildStore, useMemo, UserStore } from "@webpack/common"; import type { ReactElement } from "react"; @@ -38,7 +38,7 @@ interface VoiceState { selfMute: boolean; } -const VoiceStateStore: FluxStore & Record = findStoreLazy("VoiceStateStore"); +const VoiceStateStore: Store & Record = findStoreLazy("VoiceStateStore"); // Mute/Deaf for other people than you is commented out, because otherwise someone can spam it and it will be annoying // Filtering out events is not as simple as just dropping duplicates, as otherwise mute, unmute, mute would diff --git a/src/plugins/voiceMessages/index.tsx b/src/plugins/voiceMessages/index.tsx index ffd89e59a..7fc803b64 100644 --- a/src/plugins/voiceMessages/index.tsx +++ b/src/plugins/voiceMessages/index.tsx @@ -27,7 +27,7 @@ import { ModalContent, ModalFooter, ModalHeader, type ModalProps, ModalRoot, ope import { useAwaiter } from "@utils/react"; import definePlugin from "@utils/types"; import { chooseFile } from "@utils/web"; -import { type ChannelRecord, type FluxStore, MessageFlags, MessageType } from "@vencord/discord-types"; +import { type ChannelRecord, MessageFlags, MessageType, type Store } from "@vencord/discord-types"; import { findByPropsLazy, findLazy, findStoreLazy } from "@webpack"; import { Button, Card, Constants, FluxDispatcher, Forms, lodash, Menu, MessageActionCreators, Permissions, PermissionStore, RestAPI, SelectedChannelStore, showToast, SnowflakeUtils, Toasts, useEffect, useState } from "@webpack/common"; import type { ComponentType } from "react"; @@ -39,7 +39,7 @@ import { VoicePreview } from "./VoicePreview"; import { VoiceRecorderWeb } from "./WebRecorder"; const CloudUpload = findLazy(m => m.prototype?.trackUploadFinished); -const PendingReplyStore: FluxStore & Record = findStoreLazy("PendingReplyStore"); +const PendingReplyStore: Store & Record = findStoreLazy("PendingReplyStore"); const OptionClasses: Record = findByPropsLazy("optionName", "optionIcon", "optionLabel"); export type VoiceRecorder = ComponentType<{ diff --git a/src/plugins/voiceMessages/utils.ts b/src/plugins/voiceMessages/utils.ts index 410dba857..c211f3e3a 100644 --- a/src/plugins/voiceMessages/utils.ts +++ b/src/plugins/voiceMessages/utils.ts @@ -17,8 +17,8 @@ */ import { classNameFactory } from "@api/Styles"; -import type { FluxStore } from "@vencord/discord-types"; +import type { Store } from "@vencord/discord-types"; import { findStoreLazy } from "@webpack"; -export const MediaEngineStore: FluxStore & Record = findStoreLazy("MediaEngineStore"); +export const MediaEngineStore: Store & Record = findStoreLazy("MediaEngineStore"); export const cl = classNameFactory("vc-vmsg-"); diff --git a/src/utils/types.ts b/src/utils/types.ts index e7f6c6186..ff68fcf9a 100644 --- a/src/utils/types.ts +++ b/src/utils/types.ts @@ -18,7 +18,7 @@ import type { Command } from "@api/Commands"; import type { NavContextMenuPatchCallback } from "@api/ContextMenu"; -import type { FluxActionHandlerMap } from "@vencord/discord-types"; +import type { ActionHandlerMap } from "@vencord/discord-types"; import type { ComponentType, FunctionComponent } from "react"; import type Electron from "standalone-electron-types"; import type { Promisable } from "type-fest"; @@ -129,7 +129,7 @@ export interface PluginDef { /** * Allows you to subscribe to Flux actions */ - flux?: Partial; + flux?: Partial; /** * Allows you to manipulate context menus */ diff --git a/src/webpack/common/stores.ts b/src/webpack/common/stores.ts index ba50b17b4..3c8e76e02 100644 --- a/src/webpack/common/stores.ts +++ b/src/webpack/common/stores.ts @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -import type { Flux as $Flux } from "@vencord/discord-types"; +import type { FetchStoreFactory, Flux as $Flux, StoreArrayStateHook, StoreObjectStateHook, StoreStateHook, UnequatableStateComparator } from "@vencord/discord-types"; import type * as Stores from "@vencord/discord-types/src/stores"; // eslint-disable-next-line path-alias/no-relative @@ -25,7 +25,7 @@ import { waitForStore } from "./internal"; export const Flux: $Flux = findByPropsLazy("connectStores"); -export const createFetchStore: Stores.FetchStoreFactory +export const createFetchStore: FetchStoreFactory = findByCodeLazy("dangerousAbortOnCleanup:", "new AbortController"); /** @@ -38,7 +38,7 @@ export const createFetchStore: Stores.FetchStoreFactory * * @example const user = useStateFromStores([UserStore], () => UserStore.getCurrentUser(), null, (old, current) => old.id === current.id); */ -export const useStateFromStores: Stores.StoreStateHook = findByCodeLazy("useStateFromStores"); +export const useStateFromStores: StoreStateHook = findByCodeLazy("useStateFromStores"); const shallowEqual: ( a?: {}, @@ -48,7 +48,7 @@ const shallowEqual: ( ) => boolean = findByCodeLazy('"shallowEqual: unequal key lengths "'); /** @see {@link useStateFromStores} */ -export const useStateFromStoresObject: Stores.StoreObjectStateHook +export const useStateFromStoresObject: StoreObjectStateHook = (a, b, c) => useStateFromStores(a, b, c, shallowEqual); // shallowEqual.tsx @@ -56,10 +56,10 @@ const areArraysShallowEqual = (a: readonly unknown[], b?: readonly unknown[] | n b != null && a.length === b.length && a.every((x, i) => x === b[i]); /** @see {@link useStateFromStores} */ -export const useStateFromStoresArray: Stores.StoreArrayStateHook +export const useStateFromStoresArray: StoreArrayStateHook = (a, b, c) => useStateFromStores(a, b, c, areArraysShallowEqual); -export const statesWillNeverBeEqual: Stores.UnequatableStateComparator = () => false; +export const statesWillNeverBeEqual: UnequatableStateComparator = () => false; export let ApplicationStore: Stores.ApplicationStore; waitForStore("ApplicationStore", m => { ApplicationStore = m; }); diff --git a/src/webpack/common/utils.ts b/src/webpack/common/utils.ts index 1f9246d13..eb9143726 100644 --- a/src/webpack/common/utils.ts +++ b/src/webpack/common/utils.ts @@ -16,15 +16,15 @@ * along with this program. If not, see . */ -import type { ChannelMessages as $ChannelMessages, ChannelRecord, DraftType, FluxDispatcher as $FluxDispatcher, FormattedMessage as $FormattedMessage, I18N, MessageFactory, UserRecord } from "@vencord/discord-types"; +import type { ChannelMessages as $ChannelMessages, ChannelRecord, Dispatcher, DraftType, FormattedMessage as $FormattedMessage, I18N, MessageFactory, UserRecord } from "@vencord/discord-types"; import type { ReactNode } from "react"; // eslint-disable-next-line path-alias/no-relative import { _resolveReady, filters, findByCodeLazy, findByPropsLazy, findLazy, mapMangledModuleLazy, waitFor } from "../webpack"; import type * as t from "./types/utils"; -export let FluxDispatcher: $FluxDispatcher; -waitFor(["dispatch", "subscribe"], (m: $FluxDispatcher) => { +export let FluxDispatcher: Dispatcher; +waitFor(["dispatch", "subscribe"], (m: Dispatcher) => { FluxDispatcher = m; // Non import call to avoid circular dependency Vencord.Plugins.subscribeAllPluginsFluxActions(m);