Mods listing, new home page and fixes on the backend side

This commit is contained in:
Gu://em_ 2025-05-13 21:49:56 +02:00
parent 0294d7d0c0
commit a7cf958770
24 changed files with 317 additions and 106 deletions

View file

@ -11,16 +11,17 @@
"keywords": [],
"author": "",
"license": "ISC",
"packageManager": "pnpm@10.5.2",
"packageManager": "pnpm@10.10.0",
"dependencies": {
"ajv": "^8.17.1",
"bcrypt": "^5.1.1",
"better-sqlite3": "^11.9.1",
"dompurify": "^3.2.4",
"better-sqlite3": "^11.10.0",
"cors": "^2.8.5",
"dompurify": "^3.2.5",
"express": "^5.1.0",
"jsdom": "^26.0.0",
"jsdom": "^26.1.0",
"jsonwebtoken": "^9.0.2",
"marked": "^15.0.7",
"marked": "^15.0.11",
"mysql": "^2.18.1"
},
"pnpm": {
@ -30,6 +31,6 @@
]
},
"devDependencies": {
"nodemon": "^3.1.9"
"nodemon": "^3.1.10"
}
}

86
backend/pnpm-lock.yaml generated
View file

@ -15,35 +15,38 @@ importers:
specifier: ^5.1.1
version: 5.1.1
better-sqlite3:
specifier: ^11.9.1
version: 11.9.1
specifier: ^11.10.0
version: 11.10.0
cors:
specifier: ^2.8.5
version: 2.8.5
dompurify:
specifier: ^3.2.4
specifier: ^3.2.5
version: 3.2.5
express:
specifier: ^5.1.0
version: 5.1.0
jsdom:
specifier: ^26.0.0
specifier: ^26.1.0
version: 26.1.0
jsonwebtoken:
specifier: ^9.0.2
version: 9.0.2
marked:
specifier: ^15.0.7
version: 15.0.10
specifier: ^15.0.11
version: 15.0.11
mysql:
specifier: ^2.18.1
version: 2.18.1
devDependencies:
nodemon:
specifier: ^3.1.9
specifier: ^3.1.10
version: 3.1.10
packages:
'@asamuzakjp/css-color@3.1.4':
resolution: {integrity: sha512-SeuBV4rnjpFNjI8HSgKUwteuFdkHwkboq31HWzznuqgySQir+jSTczoWVVL4jvOjKjuH80fMDG0Fvg1Sb+OJsA==}
'@asamuzakjp/css-color@3.1.7':
resolution: {integrity: sha512-Ok5fYhtwdyJQmU1PpEv6Si7Y+A4cYb8yNM9oiIJC9TzXPMuN9fvdonKJqcnz9TbFqV6bQ8z0giRq0iaOpGZV2g==}
'@csstools/color-helpers@5.0.2':
resolution: {integrity: sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==}
@ -124,8 +127,8 @@ packages:
resolution: {integrity: sha512-AGBHOG5hPYZ5Xl9KXzU5iKq9516yEmvCKDg3ecP5kX2aB6UqTeXZxk2ELnDgDm6BQSMlLt9rDB4LoSMx0rYwww==}
engines: {node: '>= 10.0.0'}
better-sqlite3@11.9.1:
resolution: {integrity: sha512-Ba0KR+Fzxh2jDRhdg6TSH0SJGzb8C0aBY4hR8w8madIdIzzC6Y1+kx5qR6eS1Z+Gy20h6ZU28aeyg0z1VIrShQ==}
better-sqlite3@11.10.0:
resolution: {integrity: sha512-EwhOpyXiOEL/lKzHz9AW1msWFNzGc/z+LzeB3/jnFJpxu+th2yqvzsSWas1v9jgs9+xiXJcD5A8CJxAG2TaghQ==}
bignumber.js@9.0.0:
resolution: {integrity: sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==}
@ -209,6 +212,10 @@ packages:
core-util-is@1.0.3:
resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
cors@2.8.5:
resolution: {integrity: sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==}
engines: {node: '>= 0.10'}
cssstyle@4.3.1:
resolution: {integrity: sha512-ZgW+Jgdd7i52AaLYCriF8Mxqft0gD/R9i9wi6RWBhs1pqdPEzPjym7rvRKi397WmQFf3SlyUsszhw+VVCbx79Q==}
engines: {node: '>=18'}
@ -477,8 +484,8 @@ packages:
resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==}
engines: {node: '>=12', npm: '>=6'}
jwa@1.4.1:
resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==}
jwa@1.4.2:
resolution: {integrity: sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==}
jws@3.2.2:
resolution: {integrity: sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==}
@ -511,8 +518,8 @@ packages:
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
engines: {node: '>=8'}
marked@15.0.10:
resolution: {integrity: sha512-BXzsfFiR2UqXFKRwpugWuCYi9mWd1aX/Yns/X52xWfvfen9lnGEDbJw9ZEjjvLZVqntqT2gX45eYvqb2dIokDw==}
marked@15.0.11:
resolution: {integrity: sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==}
engines: {node: '>= 18'}
hasBin: true
@ -580,8 +587,8 @@ packages:
resolution: {integrity: sha512-8Ofs/AUQh8MaEcrlq5xOX0CQ9ypTF5dl78mjlMNfOK08fzpgTHQRQPBxcPlEtIw0yRpws+Zo/3r+5WRby7u3Gg==}
engines: {node: '>= 0.6'}
node-abi@3.74.0:
resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==}
node-abi@3.75.0:
resolution: {integrity: sha512-OhYaY5sDsIka7H7AtijtI9jwGYLyl29eQn/W623DiN/MIv5sUqc4g7BIDThX+gb7di9f6xK02nkp8sdfFWZLTg==}
engines: {node: '>=10'}
node-addon-api@5.1.0:
@ -733,8 +740,8 @@ packages:
resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==}
hasBin: true
semver@7.7.1:
resolution: {integrity: sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==}
semver@7.7.2:
resolution: {integrity: sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==}
engines: {node: '>=10'}
hasBin: true
@ -908,8 +915,8 @@ packages:
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
ws@8.18.1:
resolution: {integrity: sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==}
ws@8.18.2:
resolution: {integrity: sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
@ -932,7 +939,7 @@ packages:
snapshots:
'@asamuzakjp/css-color@3.1.4':
'@asamuzakjp/css-color@3.1.7':
dependencies:
'@csstools/css-calc': 2.1.3(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
'@csstools/css-color-parser': 3.0.9(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)
@ -969,7 +976,7 @@ snapshots:
nopt: 5.0.0
npmlog: 5.0.1
rimraf: 3.0.2
semver: 7.7.1
semver: 7.7.2
tar: 6.2.1
transitivePeerDependencies:
- encoding
@ -1026,7 +1033,7 @@ snapshots:
- encoding
- supports-color
better-sqlite3@11.9.1:
better-sqlite3@11.10.0:
dependencies:
bindings: 1.5.0
prebuild-install: 7.1.3
@ -1121,9 +1128,14 @@ snapshots:
core-util-is@1.0.3: {}
cors@2.8.5:
dependencies:
object-assign: 4.1.1
vary: 1.1.2
cssstyle@4.3.1:
dependencies:
'@asamuzakjp/css-color': 3.1.4
'@asamuzakjp/css-color': 3.1.7
rrweb-cssom: 0.8.0
data-urls@5.0.0:
@ -1410,7 +1422,7 @@ snapshots:
whatwg-encoding: 3.1.1
whatwg-mimetype: 4.0.0
whatwg-url: 14.2.0
ws: 8.18.1
ws: 8.18.2
xml-name-validator: 5.0.0
transitivePeerDependencies:
- bufferutil
@ -1430,9 +1442,9 @@ snapshots:
lodash.isstring: 4.0.1
lodash.once: 4.1.1
ms: 2.1.3
semver: 7.7.1
semver: 7.7.2
jwa@1.4.1:
jwa@1.4.2:
dependencies:
buffer-equal-constant-time: 1.0.1
ecdsa-sig-formatter: 1.0.11
@ -1440,7 +1452,7 @@ snapshots:
jws@3.2.2:
dependencies:
jwa: 1.4.1
jwa: 1.4.2
safe-buffer: 5.2.1
lodash.includes@4.3.0: {}
@ -1463,7 +1475,7 @@ snapshots:
dependencies:
semver: 6.3.1
marked@15.0.10: {}
marked@15.0.11: {}
math-intrinsics@1.1.0: {}
@ -1513,9 +1525,9 @@ snapshots:
negotiator@1.0.0: {}
node-abi@3.74.0:
node-abi@3.75.0:
dependencies:
semver: 7.7.1
semver: 7.7.2
node-addon-api@5.1.0: {}
@ -1530,7 +1542,7 @@ snapshots:
ignore-by-default: 1.0.1
minimatch: 3.1.2
pstree.remy: 1.1.8
semver: 7.7.1
semver: 7.7.2
simple-update-notifier: 2.0.0
supports-color: 5.5.0
touch: 3.1.1
@ -1583,7 +1595,7 @@ snapshots:
minimist: 1.2.8
mkdirp-classic: 0.5.3
napi-build-utils: 2.0.0
node-abi: 3.74.0
node-abi: 3.75.0
pump: 3.0.2
rc: 1.2.8
simple-get: 4.0.1
@ -1676,7 +1688,7 @@ snapshots:
semver@6.3.1: {}
semver@7.7.1: {}
semver@7.7.2: {}
send@1.2.0:
dependencies:
@ -1747,7 +1759,7 @@ snapshots:
simple-update-notifier@2.0.0:
dependencies:
semver: 7.7.1
semver: 7.7.2
sqlstring@2.3.1: {}
@ -1875,7 +1887,7 @@ snapshots:
wrappy@1.0.2: {}
ws@8.18.1: {}
ws@8.18.2: {}
xml-name-validator@5.0.0: {}

View file

@ -2,6 +2,7 @@
const express = require("express");
const app = express();
var cors = require('cors')
const configManager = require("./src/utils/configManager");
const { connectDatabase, initDatabase } = require('./src/database/index');
@ -12,6 +13,9 @@ const config = configManager.loadConfig();
// --- Body parsing ---
app.use(express.json()); // Necessary to parse JSON bodies
// --- Cors ---
app.use(cors());
// Database connection
(async () => {