fix(space): reject malformed emoji tokens in stringToEmoji

This commit is contained in:
Sriram Veeraghanta
2026-08-31 22:42:29 +05:30
parent 6c1233a8f5
commit 6b40d82c33

View File

@@ -26,10 +26,10 @@ export function emojiToString(emoji: string): string {
*/
export function stringToEmoji(emojiString: string): string {
if (!emojiString) return "";
const decimals = emojiString
.split("-")
.map((s) => Number(s.trim()))
.filter((n) => Number.isFinite(n) && n >= 0 && n <= 0x10ffff);
const tokens = emojiString.split("-").map((s) => s.trim());
if (tokens.some((token) => !/^\d+$/.test(token))) return "";
const decimals = tokens.map(Number);
if (decimals.some((n) => !Number.isInteger(n) || n < 0 || n > 0x10ffff)) return "";
try {
return decimals.map((decimal) => String.fromCodePoint(decimal)).join("");
} catch {