diff --git a/package-lock.json b/package-lock.json
index ad931479f..c11cfa6f1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -29,7 +29,6 @@
"nanoid": "^3.3.6",
"obscenity": "^0.4.3",
"ts-node": "^10.9.2",
- "twemoji": "^14.0.2",
"uuid": "^11.1.0",
"winston": "^3.17.0",
"ws": "^8.18.0",
@@ -11664,29 +11663,6 @@
"dev": true,
"license": "MIT"
},
- "node_modules/fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "license": "MIT",
- "dependencies": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- },
- "engines": {
- "node": ">=6 <7 || >=8"
- }
- },
- "node_modules/fs-extra/node_modules/jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
- "license": "MIT",
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
@@ -11937,6 +11913,7 @@
"version": "4.2.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
"integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "dev": true,
"license": "ISC"
},
"node_modules/graphemer": {
@@ -14761,18 +14738,6 @@
"node": ">=6"
}
},
- "node_modules/jsonfile": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-5.0.0.tgz",
- "integrity": "sha512-NQRZ5CRo74MhMMC3/3r5g2k4fjodJ/wh8MxjFbCViWKFjxrnudWSY5vomh+23ZaXzAS7J3fBZIR2dV6WbmfM0w==",
- "license": "MIT",
- "dependencies": {
- "universalify": "^0.1.2"
- },
- "optionalDependencies": {
- "graceful-fs": "^4.1.6"
- }
- },
"node_modules/keyv": {
"version": "4.5.4",
"resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
@@ -19383,24 +19348,6 @@
"node": "*"
}
},
- "node_modules/twemoji": {
- "version": "14.0.2",
- "resolved": "https://registry.npmjs.org/twemoji/-/twemoji-14.0.2.tgz",
- "integrity": "sha512-BzOoXIe1QVdmsUmZ54xbEH+8AgtOKUiG53zO5vVP2iUu6h5u9lN15NcuS6te4OY96qx0H7JK9vjjl9WQbkTRuA==",
- "license": "MIT",
- "dependencies": {
- "fs-extra": "^8.0.1",
- "jsonfile": "^5.0.0",
- "twemoji-parser": "14.0.0",
- "universalify": "^0.1.2"
- }
- },
- "node_modules/twemoji-parser": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz",
- "integrity": "sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA==",
- "license": "MIT"
- },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -19536,15 +19483,6 @@
"node": ">=4"
}
},
- "node_modules/universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
- "license": "MIT",
- "engines": {
- "node": ">= 4.0.0"
- }
- },
"node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
diff --git a/package.json b/package.json
index 5311c5ecb..20fdc2a73 100644
--- a/package.json
+++ b/package.json
@@ -119,7 +119,6 @@
"nanoid": "^3.3.6",
"obscenity": "^0.4.3",
"ts-node": "^10.9.2",
- "twemoji": "^14.0.2",
"uuid": "^11.1.0",
"winston": "^3.17.0",
"ws": "^8.18.0",
diff --git a/src/core/Util.ts b/src/core/Util.ts
index ba138fe3c..6133b9a18 100644
--- a/src/core/Util.ts
+++ b/src/core/Util.ts
@@ -1,6 +1,5 @@
import DOMPurify from "dompurify";
import { customAlphabet } from "nanoid";
-import twemoji from "twemoji";
import { Cell, Unit } from "./game/Game";
import { GameMap, TileRef } from "./game/GameMap";
import {
@@ -142,39 +141,6 @@ export function sanitize(name: string): string {
.replace(/[^\p{L}\p{N}\s\p{Emoji}\p{Emoji_Component}[\]_]/gu, "");
}
-export function processName(name: string): string {
- // First sanitize the raw input - strip everything except text and emojis
- const sanitizedName = sanitize(name);
- // Process emojis with twemoji
- const withEmojis = twemoji.parse(sanitizedName, {
- base: "https://cdn.jsdelivr.net/gh/twitter/twemoji@14.0.2/assets/",
- folder: "svg",
- ext: ".svg",
- });
-
- // Add CSS styles inline to the wrapper span
- const styledHTML = `
-
- ${withEmojis}
-
- `;
-
- // Add CSS for the emoji images
- const withEmojiStyles = styledHTML.replace(
- /![]()