From 80938f4c6c9d2249ee176e8647ba8545905c7950 Mon Sep 17 00:00:00 2001 From: prism Date: Fri, 13 Feb 2026 23:32:10 +0100 Subject: [PATCH] add image-utils, add color-utils (#766) --- src/webpack/common/utils.ts | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/webpack/common/utils.ts b/src/webpack/common/utils.ts index 00baf2184..b083abed8 100644 --- a/src/webpack/common/utils.ts +++ b/src/webpack/common/utils.ts @@ -190,6 +190,28 @@ export const PinActions = findByPropsLazy("pinMessage", "unpinMessage"); export const IconUtils: t.IconUtils = findByPropsLazy("getGuildBannerURL", "getUserAvatarURL"); +export const ColorUtils = mapMangledModuleLazy("Invalid hex color format", { + rgbToHex: filters.byCode(".toString(16).slice(1)"), + hexToRgba: filters.byCode("rgba(", "??"), + hexToRgb: filters.byCode(".rgb();return"), + rgbToHsl: filters.byCode("saturation:", "lightness:"), + mixColors: filters.byCode(".substring(1,3),16)"), + hexWithAlpha: filters.byCode("Invalid hex color format"), + getDominantColor: filters.byCode("hex:", "hsv:"), + generatePalette: filters.byCode("360/("), +}); + +export const ImageUtils = mapMangledModuleLazy("Input data is not a valid image.", { + extractColors: filters.byCode('"number"==typeof'), + fileToDataURL: filters.byCode("Result must be a string"), + dataURLToBlob: filters.byCode("new Uint8Array("), + dataURLToFile: filters.byCode("new File(["), + fitDimensions: filters.byCode("minWidth:", "minHeight:"), + loadImage: filters.byCode('addEventListener("load"'), + isAnimatedPNG: filters.byCode("File is not a PNG"), + base64Size: filters.byCode("Input data is not a valid image."), +}); + export const ReadStateUtils = mapMangledModuleLazy('type:"ENABLE_AUTOMATIC_ACK",', { ackChannel: filters.byCode(".isForumLikeChannel(") });