From fa010b516254c4ab2762278817f31bf289f0ab6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?A=2E=20Rom=C3=A1n?= Date: Sun, 3 Jul 2022 15:36:32 +0200 Subject: [PATCH] fix(MessagePayload): guard against `repliedUser` property (#8211) --- packages/discord.js/src/structures/MessagePayload.js | 7 +++---- packages/discord.js/src/util/Util.js | 11 ----------- packages/discord.js/typings/index.d.ts | 1 - 3 files changed, 3 insertions(+), 16 deletions(-) diff --git a/packages/discord.js/src/structures/MessagePayload.js b/packages/discord.js/src/structures/MessagePayload.js index 07a46de1b..896df62d2 100644 --- a/packages/discord.js/src/structures/MessagePayload.js +++ b/packages/discord.js/src/structures/MessagePayload.js @@ -7,7 +7,7 @@ const ActionRowBuilder = require('./ActionRowBuilder'); const { RangeError, ErrorCodes } = require('../errors'); const DataResolver = require('../util/DataResolver'); const MessageFlagsBitField = require('../util/MessageFlagsBitField'); -const { basename, cloneObject, verifyString, lazy } = require('../util/Util'); +const { basename, verifyString, lazy } = require('../util/Util'); const getBaseInteraction = lazy(() => require('./BaseInteraction')); @@ -165,9 +165,8 @@ class MessagePayload { ? this.target.client.options.allowedMentions : this.options.allowedMentions; - if (allowedMentions) { - allowedMentions = cloneObject(allowedMentions); - allowedMentions.replied_user = allowedMentions.repliedUser; + if (typeof allowedMentions?.repliedUser !== 'undefined') { + allowedMentions = { ...allowedMentions, replied_user: allowedMentions.repliedUser }; delete allowedMentions.repliedUser; } diff --git a/packages/discord.js/src/util/Util.js b/packages/discord.js/src/util/Util.js index 3e3adea1c..82050d77d 100644 --- a/packages/discord.js/src/util/Util.js +++ b/packages/discord.js/src/util/Util.js @@ -266,16 +266,6 @@ function resolvePartialEmoji(emoji) { return { id, name, animated: Boolean(animated) }; } -/** - * Shallow-copies an object with its class/prototype intact. - * @param {Object} obj Object to clone - * @returns {Object} - * @private - */ -function cloneObject(obj) { - return Object.assign(Object.create(obj), obj); -} - /** * Sets default properties on an object that aren't already specified. * @param {Object} def Default properties @@ -568,7 +558,6 @@ module.exports = { fetchRecommendedShards, parseEmoji, resolvePartialEmoji, - cloneObject, mergeDefault, makeError, makePlainError, diff --git a/packages/discord.js/typings/index.d.ts b/packages/discord.js/typings/index.d.ts index 674e0bc2e..1c4aed37b 100644 --- a/packages/discord.js/typings/index.d.ts +++ b/packages/discord.js/typings/index.d.ts @@ -2628,7 +2628,6 @@ export class UserFlagsBitField extends BitField { export function basename(path: string, ext?: string): string; export function cleanContent(str: string, channel: TextBasedChannel): string; -export function cloneObject(obj: unknown): unknown; export function discordSort( collection: Collection, ): Collection;