feat: Update package.json scripts and add new dependencies for improved functionality

This commit is contained in:
2025-08-21 22:46:12 +02:00
parent fc4d4f0dc7
commit 8c280bdacc
6 changed files with 197 additions and 10 deletions
+97
View File
@@ -10857,3 +10857,100 @@ Connected to MongoDB
[2025-08-20T13:12:25.130Z] DB: getSession - start edf7968f63afdbfc89f447ddbc60e189ae2bde46b7bf85c29763008eb18145fc
[2025-08-20T13:12:25.131Z] DB: getSession - ok edf7968f63afdbfc89f447ddbc60e189ae2bde46b7bf85c29763008eb18145fc
[2025-08-20T13:12:25.131Z] SESSION: Validate success edf7968f63afdbfc89f447ddbc60e189ae2bde46b7bf85c29763008eb18145fc gm
[2025-08-20T14:44:46.206Z] DB: getSession - start f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-20T14:44:46.207Z] DB: getSession - not found f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-20T14:44:46.207Z] SESSION: Validate not found f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-20T15:25:01.300Z] DB: getSession - start f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-20T15:25:01.308Z] DB: getSession - not found f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-20T15:25:01.309Z] SESSION: Validate not found f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-21T20:39:28.068Z] SESSION: GM bypass accepted DELETE /api/players/testplayer
[2025-08-21T20:39:28.074Z] SESSION: GM bypass accepted DELETE /api/players/testplayer
[2025-08-21T20:39:28.075Z] DB: deletePlayer - start testplayer
[2025-08-21T20:39:28.081Z] DB: deletePlayer - changes 0 testplayer
[2025-08-21T20:39:28.120Z] SESSION: GM bypass accepted POST /api/players
[2025-08-21T20:39:28.124Z] DB: getPlayerByName - start testplayer
[2025-08-21T20:39:28.126Z] DB: getPlayerByName - not found testplayer
[2025-08-21T20:39:28.378Z] DB: createPlayer - start testplayer
[2025-08-21T20:39:28.425Z] DB: createPlayer - done testplayer rowid 175
[2025-08-21T20:39:28.426Z] API: Created player testplayer
[2025-08-21T20:39:28.444Z] DB: getPlayerByName - start testplayer
[2025-08-21T20:39:28.444Z] DB: getPlayerByName - found testplayer
[2025-08-21T20:39:28.527Z] DB: createSession - start 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4 expiresAt 2025-08-22T20:39:28.527Z
[2025-08-21T20:39:28.530Z] DB: createSession - done 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.530Z] API: Player login testplayer 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.551Z] DB: getSession - start 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.552Z] DB: getSession - ok 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.553Z] SESSION: Valid 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4 testplayer PUT /api/players/testplayer
[2025-08-21T20:39:28.553Z] DB: getSession - start 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.553Z] DB: getSession - ok 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.553Z] SESSION: Valid 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4 testplayer PUT /api/players/testplayer
[2025-08-21T20:39:28.553Z] DB: getPlayerByName - start testplayer
[2025-08-21T20:39:28.553Z] DB: getPlayerByName - found testplayer
[2025-08-21T20:39:28.554Z] DB: updatePlayer - start testplayer
[2025-08-21T20:39:28.555Z] DB: updatePlayer - changes 1 testplayer
[2025-08-21T20:39:28.555Z] DB: getPlayerByName - start testplayer
[2025-08-21T20:39:28.555Z] DB: getPlayerByName - found testplayer
[2025-08-21T20:39:28.555Z] API: Updated player testplayer
[2025-08-21T20:39:28.571Z] DB: getSession - start 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.571Z] DB: getSession - ok 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.571Z] SESSION: Valid 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4 testplayer PUT /api/players/testplayer
[2025-08-21T20:39:28.571Z] DB: getSession - start 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.571Z] DB: getSession - ok 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4
[2025-08-21T20:39:28.571Z] SESSION: Valid 378f8f8722a1a037bc8dfa8985b12b43b0d93cb9da8cca2a5825720eb39847f4 testplayer PUT /api/players/testplayer
[2025-08-21T20:39:28.571Z] DB: getPlayerByName - start testplayer
[2025-08-21T20:39:28.571Z] DB: getPlayerByName - found testplayer
[2025-08-21T20:39:28.572Z] DB: updatePlayer - start testplayer
[2025-08-21T20:39:28.572Z] DB: updatePlayer - changes 1 testplayer
[2025-08-21T20:39:28.572Z] DB: getPlayerByName - start testplayer
[2025-08-21T20:39:28.573Z] DB: getPlayerByName - found testplayer
[2025-08-21T20:39:28.573Z] API: Updated player testplayer
[2025-08-21T20:39:28.588Z] SESSION: GM bypass accepted DELETE /api/players/testplayer
[2025-08-21T20:39:28.588Z] SESSION: GM bypass accepted DELETE /api/players/testplayer
[2025-08-21T20:39:28.588Z] DB: deletePlayer - start testplayer
[2025-08-21T20:39:28.590Z] DB: deletePlayer - changes 1 testplayer
[2025-08-21T20:39:28.590Z] API: Deleted player testplayer
[2025-08-21T20:39:28.945Z] SESSION: GM bypass accepted DELETE /api/players/gmtest
[2025-08-21T20:39:28.945Z] SESSION: GM bypass accepted DELETE /api/players/gmtest
[2025-08-21T20:39:28.945Z] DB: deletePlayer - start gmtest
[2025-08-21T20:39:28.945Z] DB: deletePlayer - changes 0 gmtest
[2025-08-21T20:39:28.962Z] SESSION: GM bypass accepted POST /api/players
[2025-08-21T20:39:28.963Z] DB: getPlayerByName - start gmtest
[2025-08-21T20:39:28.963Z] DB: getPlayerByName - not found gmtest
[2025-08-21T20:39:29.043Z] DB: createPlayer - start gmtest
[2025-08-21T20:39:29.043Z] DB: createPlayer - done gmtest rowid 176
[2025-08-21T20:39:29.043Z] API: Created player gmtest
[2025-08-21T20:39:29.060Z] SESSION: GM bypass accepted PUT /api/players/gmtest
[2025-08-21T20:39:29.060Z] SESSION: GM bypass accepted PUT /api/players/gmtest
[2025-08-21T20:39:29.060Z] DB: getPlayerByName - start gmtest
[2025-08-21T20:39:29.061Z] DB: getPlayerByName - found gmtest
[2025-08-21T20:39:29.061Z] DB: updatePlayer - start gmtest
[2025-08-21T20:39:29.061Z] DB: updatePlayer - changes 1 gmtest
[2025-08-21T20:39:29.061Z] DB: getPlayerByName - start gmtest
[2025-08-21T20:39:29.061Z] DB: getPlayerByName - found gmtest
[2025-08-21T20:39:29.061Z] API: Updated player gmtest
[2025-08-21T20:39:29.076Z] SESSION: GM bypass accepted PUT /api/players/gmtest
[2025-08-21T20:39:29.076Z] SESSION: GM bypass accepted PUT /api/players/gmtest
[2025-08-21T20:39:29.076Z] DB: getPlayerByName - start gmtest
[2025-08-21T20:39:29.077Z] DB: getPlayerByName - found gmtest
[2025-08-21T20:39:29.157Z] DB: updatePlayer - start gmtest
[2025-08-21T20:39:29.157Z] DB: updatePlayer - changes 1 gmtest
[2025-08-21T20:39:29.157Z] DB: getPlayerByName - start gmtest
[2025-08-21T20:39:29.157Z] DB: getPlayerByName - found gmtest
[2025-08-21T20:39:29.157Z] API: Updated player gmtest
[2025-08-21T20:39:29.173Z] DB: getPlayerByName - start gmtest
[2025-08-21T20:39:29.173Z] DB: getPlayerByName - found gmtest
[2025-08-21T20:39:29.254Z] DB: createSession - start 36b8da5beec2b1bde76b211d4d06ec909830fb04984546cd79eb56004e76125c expiresAt 2025-08-22T20:39:29.254Z
[2025-08-21T20:39:29.254Z] DB: createSession - done 36b8da5beec2b1bde76b211d4d06ec909830fb04984546cd79eb56004e76125c
[2025-08-21T20:39:29.255Z] API: Player login gmtest 36b8da5beec2b1bde76b211d4d06ec909830fb04984546cd79eb56004e76125c
[2025-08-21T20:39:29.273Z] SESSION: GM bypass accepted DELETE /api/players/gmtest
[2025-08-21T20:39:29.273Z] SESSION: GM bypass accepted DELETE /api/players/gmtest
[2025-08-21T20:39:29.273Z] DB: deletePlayer - start gmtest
[2025-08-21T20:39:29.273Z] DB: deletePlayer - changes 1 gmtest
[2025-08-21T20:39:29.273Z] API: Deleted player gmtest
[2025-08-21T20:39:29.289Z] SESSION: GM bypass accepted GET /api/players
[2025-08-21T20:39:29.289Z] DB: getAllPlayers - start
[2025-08-21T20:39:29.296Z] DB: getAllPlayers - resultCount 7
[2025-08-21T20:39:29.296Z] API: Fetch all players (public) Found 7 players
[2025-08-21T20:43:12.560Z] DB: getSession - start f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-21T20:43:12.561Z] DB: getSession - not found f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
[2025-08-21T20:43:12.561Z] SESSION: Validate not found f83b1f4fd61f1130ce534415b32166f106c9ba524e25b9123a9b249e2ed11ac7
Binary file not shown.
+90 -5
View File
@@ -27,6 +27,7 @@
"autoprefixer": "^10.4.14",
"axios": "^1.11.0",
"babel-loader": "^10.0.0",
"canvas": "^2.11.2",
"cheerio": "^1.1.2",
"eslint-config-prettier": "^10.1.8",
"html-webpack-plugin": "^5.6.4",
@@ -36,6 +37,7 @@
"prettier-eslint": "^16.4.2",
"react-scripts": "^5.0.1",
"tailwindcss": "^3.3.2",
"tesseract.js": "^4.1.1",
"webpack-dev-server": "^5.2.2"
}
},
@@ -7217,6 +7219,13 @@
"dev": true,
"license": "MIT"
},
"node_modules/bmp-js": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/bmp-js/-/bmp-js-0.1.0.tgz",
"integrity": "sha512-vHdS19CnY3hwiNdkaqk93DvjVLfbEcI8mys4UjuWrlX1haDmroo8o4xCzh4wD6DGV6HxRCyauwhHRqMTfERtjw==",
"dev": true,
"license": "MIT"
},
"node_modules/bodec": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/bodec/-/bodec-0.1.0.tgz",
@@ -7609,8 +7618,8 @@
"version": "2.11.2",
"resolved": "https://registry.npmjs.org/canvas/-/canvas-2.11.2.tgz",
"integrity": "sha512-ItanGBMrmRV7Py2Z+Xhs7cT+FNt5K0vPL4p9EZ/UX/Mu7hFbkxSjKF2KVtPwX7UYWp7dRKnrTvReflgrItJbdw==",
"devOptional": true,
"hasInstallScript": true,
"optional": true,
"dependencies": {
"@mapbox/node-pre-gyp": "^1.0.0",
"nan": "^2.17.0",
@@ -7624,7 +7633,7 @@
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
"optional": true,
"devOptional": true,
"dependencies": {
"mimic-response": "^2.0.0"
},
@@ -7636,7 +7645,7 @@
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
"optional": true,
"devOptional": true,
"engines": {
"node": ">=8"
},
@@ -7648,7 +7657,7 @@
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
"integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
"optional": true,
"devOptional": true,
"dependencies": {
"decompress-response": "^4.2.0",
"once": "^1.3.1",
@@ -12234,6 +12243,13 @@
"dev": true,
"license": "ISC"
},
"node_modules/idb-keyval": {
"version": "6.2.2",
"resolved": "https://registry.npmjs.org/idb-keyval/-/idb-keyval-6.2.2.tgz",
"integrity": "sha512-yjD9nARJ/jb1g+CvD0tlhUHOrJ9Sy0P8T9MF3YaLlHnSRpwPfpTX0XIvpmw3gAJUmEu3FiICLBDPXVwyEvrleg==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/identity-obj-proxy": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz",
@@ -12597,6 +12613,13 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-electron": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz",
"integrity": "sha512-FO/Rhvz5tuw4MCWkpMzHFKWD2LsfHzIb7i6MdPYZ/KW7AlxawyLkqdy+jPZP1WubqEADE3O4FUENlJHDfQASRg==",
"dev": true,
"license": "MIT"
},
"node_modules/is-extglob": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
@@ -12964,6 +12987,13 @@
"dev": true,
"license": "MIT"
},
"node_modules/is-url": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
"integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
"dev": true,
"license": "MIT"
},
"node_modules/is-weakmap": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz",
@@ -17116,7 +17146,7 @@
"version": "2.23.0",
"resolved": "https://registry.npmjs.org/nan/-/nan-2.23.0.tgz",
"integrity": "sha512-1UxuyYGdoQHcGg87Lkqm3FzefucTa0NAiOcuRsDmysep3c1LVCRK2krrUDafMWtjSG04htvAmvg96+SDknOmgQ==",
"optional": true
"devOptional": true
},
"node_modules/nanoid": {
"version": "3.3.11",
@@ -17268,6 +17298,7 @@
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz",
"integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==",
"license": "MIT",
"dependencies": {
"whatwg-url": "^5.0.0"
},
@@ -17762,6 +17793,16 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/opencollective-postinstall": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz",
"integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==",
"dev": true,
"license": "MIT",
"bin": {
"opencollective-postinstall": "index.js"
}
},
"node_modules/optionator": {
"version": "0.9.4",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
@@ -23945,6 +23986,33 @@
"dev": true,
"license": "MIT"
},
"node_modules/tesseract.js": {
"version": "4.1.4",
"resolved": "https://registry.npmjs.org/tesseract.js/-/tesseract.js-4.1.4.tgz",
"integrity": "sha512-iLjJjLWVNV4PApofEsd54Y1MbjhzpPxEzF8EjYmC2CLN4hrUqO5aTNTSbGA7/QjycKtAWHhn2YmDR+6GFwi2Zg==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0",
"dependencies": {
"bmp-js": "^0.1.0",
"idb-keyval": "^6.2.0",
"is-electron": "^2.2.2",
"is-url": "^1.2.4",
"node-fetch": "^2.6.9",
"opencollective-postinstall": "^2.0.3",
"regenerator-runtime": "^0.13.3",
"tesseract.js-core": "^4.0.4",
"wasm-feature-detect": "^1.2.11",
"zlibjs": "^0.3.1"
}
},
"node_modules/tesseract.js-core": {
"version": "4.0.4",
"resolved": "https://registry.npmjs.org/tesseract.js-core/-/tesseract.js-core-4.0.4.tgz",
"integrity": "sha512-MJ+vtktjAaT0681uPl6TDUPhbRbpD/S9emko5rtorgHRZpQo7R3BG7h+3pVHgn1KjfNf1bvnx4B7KxEK8YKqpg==",
"dev": true,
"license": "Apache License 2.0"
},
"node_modules/test-exclude": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
@@ -24773,6 +24841,13 @@
"makeerror": "1.0.12"
}
},
"node_modules/wasm-feature-detect": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.8.0.tgz",
"integrity": "sha512-zksaLKM2fVlnB5jQQDqKXXwYHLQUVH9es+5TOOHwGOVJOCeRBCiPjwSg+3tN2AdTCzjgli4jijCH290kXb/zWQ==",
"dev": true,
"license": "Apache-2.0"
},
"node_modules/watchpack": {
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.4.tgz",
@@ -26105,6 +26180,16 @@
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/zlibjs": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/zlibjs/-/zlibjs-0.3.1.tgz",
"integrity": "sha512-+J9RrgTKOmlxFSDHo0pI1xM6BLVUv+o0ZT9ANtCxGkjIVCCUdx9alUF8Gm+dGLKbkkkidWIHFDZHDMpfITt4+w==",
"dev": true,
"license": "MIT",
"engines": {
"node": "*"
}
}
}
}
+6 -5
View File
@@ -18,8 +18,9 @@
"web-vitals": "^2.1.4"
},
"scripts": {
"start": "npm test && react-scripts start",
"dev": "npm test && react-scripts start",
"start": "react-scripts start",
"start:with-tests": "npm test && react-scripts start",
"dev": "react-scripts start",
"build": "npm run test:unit && npm run test:integration && react-scripts build && npm run pm2:start",
"build:fast": "react-scripts build && npm run pm2:reload",
"test-build-test": "npm run test:unit && npm run test:integration && npm run build && npm run test:unit",
@@ -36,7 +37,7 @@
"pm2:start": "cd database && pm2 start pm2.config.js --env production --update-env",
"pm2:stop": "pm2 stop deathwatch-server || true",
"pm2:reload": "cd database && pm2 reload pm2.config.js --env production --update-env",
"sanitize:openai": "node scripts/sanitize-rules-openai.js",
"sanitize:openai": "node scripts/sanitize-rules-openai.js",
"prestart": "",
"preserver": ""
},
@@ -60,12 +61,11 @@
]
},
"devDependencies": {
"canvas": "^2.11.2",
"tesseract.js": "^4.1.1",
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.1",
"autoprefixer": "^10.4.14",
"axios": "^1.11.0",
"babel-loader": "^10.0.0",
"canvas": "^2.11.2",
"cheerio": "^1.1.2",
"eslint-config-prettier": "^10.1.8",
"html-webpack-plugin": "^5.6.4",
@@ -75,6 +75,7 @@
"prettier-eslint": "^16.4.2",
"react-scripts": "^5.0.1",
"tailwindcss": "^3.3.2",
"tesseract.js": "^4.1.1",
"webpack-dev-server": "^5.2.2"
}
}
View File
+4
View File
@@ -3,3 +3,7 @@
// expect(element).toHaveTextContent(/react/i)
// learn more: https://github.com/testing-library/jest-dom
import '@testing-library/jest-dom';
// Polyfill fetch for testing environment
import fetch from 'node-fetch';
global.fetch = fetch;