Better var. naming

This commit is contained in:
Dennis Postma 2025-01-09 15:58:16 +01:00
parent 849ef07297
commit 458293a5fc
5 changed files with 106 additions and 145 deletions

View File

@ -3,7 +3,7 @@ ENV=development
HOST="0.0.0.0" HOST="0.0.0.0"
PORT=4000 PORT=4000
JWT_SECRET="secret" JWT_SECRET="secret"
CLIENT_URL="http://192.168.3.4:5173" CLIENT_URL="http://localhost:5173"
# Database configuration # Database configuration
REDIS_URL="redis://@127.0.0.1:6379/4" REDIS_URL="redis://@127.0.0.1:6379/4"

217
package-lock.json generated
View File

@ -1108,15 +1108,15 @@
} }
}, },
"node_modules/@mikro-orm/cli": { "node_modules/@mikro-orm/cli": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/cli/-/cli-6.4.3.tgz",
"integrity": "sha512-aGOpVNNbymdkxIsHt+rD5hU25UlGbcPrd3zMdDVh0H5jttB1kr9MpAT4Jt4SXqZfTc1ff6h479eufUYJP3mZZQ==", "integrity": "sha512-DWnYNxoyMgU6L90TGBlT0eziTu6yl15ArnnFoq0kyOjp8JEMRjin+8cizSrKyQ3QiQZ5iop5fB0i9Sp+Hbgd8Q==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@jercle/yargonaut": "1.1.5", "@jercle/yargonaut": "1.1.5",
"@mikro-orm/core": "6.4.2", "@mikro-orm/core": "6.4.3",
"@mikro-orm/knex": "6.4.2", "@mikro-orm/knex": "6.4.3",
"fs-extra": "11.2.0", "fs-extra": "11.2.0",
"tsconfig-paths": "4.2.0", "tsconfig-paths": "4.2.0",
"yargs": "17.7.2" "yargs": "17.7.2"
@ -1130,9 +1130,9 @@
} }
}, },
"node_modules/@mikro-orm/core": { "node_modules/@mikro-orm/core": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/core/-/core-6.4.3.tgz",
"integrity": "sha512-sk+rGxZoj8zx9q819CeXLqMMLXF81s7pQZtrdg3XUCBnUVqsaVIsbBj5WpyojQXmCvxgenWqDE/ybM5ftbDP/w==", "integrity": "sha512-UTaqKs1bomYtGmEEZ8sNBOmW2OqT5NcMh+pBV2iJ6WLM5MuiIEuNhDMuvvPE5gNEwUzc1HyRhUV87bRDhDIGRg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"dataloader": "2.2.3", "dataloader": "2.2.3",
@ -1140,7 +1140,7 @@
"esprima": "4.0.1", "esprima": "4.0.1",
"fs-extra": "11.2.0", "fs-extra": "11.2.0",
"globby": "11.1.0", "globby": "11.1.0",
"mikro-orm": "6.4.2", "mikro-orm": "6.4.3",
"reflect-metadata": "0.2.2" "reflect-metadata": "0.2.2"
}, },
"engines": { "engines": {
@ -1151,9 +1151,9 @@
} }
}, },
"node_modules/@mikro-orm/knex": { "node_modules/@mikro-orm/knex": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/knex/-/knex-6.4.3.tgz",
"integrity": "sha512-vA72sVyR+8irrLsTP5f+zh84Q1a2tvzSfVgit4L/G+JOEgltG6F8Sfic/xt/1Wcis1zgNUiUL50ISQSLnhVNAw==", "integrity": "sha512-gVkRD/cIn6qxk/P9nR+IufZxJwuCCdv0AtcGvShxXXvaoIrQPJYDV7HRxBOHCEyNygr6M3Fqpph1oPoT6aezTQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"fs-extra": "11.2.0", "fs-extra": "11.2.0",
@ -1182,12 +1182,12 @@
} }
}, },
"node_modules/@mikro-orm/mariadb": { "node_modules/@mikro-orm/mariadb": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/mariadb/-/mariadb-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/mariadb/-/mariadb-6.4.3.tgz",
"integrity": "sha512-Ua2dE/Y/ozC5GYxukwaV1k/6nFL71/YNsnI65sOFGVFzxZLeMrgY4fbWBW/EZSZgZWcxvlDefhG9U8228R8cbA==", "integrity": "sha512-TLLCp3vVjWyQVm/WRQZhvxqSc9V6JD5UbuoUAyNqh3rT0ud/3BxxOebUv6vqGwGLERdF3z2AwpvOdchAEIDqJg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@mikro-orm/knex": "6.4.2", "@mikro-orm/knex": "6.4.3",
"mariadb": "3.4.0" "mariadb": "3.4.0"
}, },
"engines": { "engines": {
@ -1198,12 +1198,12 @@
} }
}, },
"node_modules/@mikro-orm/migrations": { "node_modules/@mikro-orm/migrations": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/migrations/-/migrations-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/migrations/-/migrations-6.4.3.tgz",
"integrity": "sha512-oLAOT+ejduIOb8rO6cJ8B6yr9bM17t22ejLPTxUnw1N093DXb31zWOg6Ptc8cicnB3BbFQGjQVw6Jf2e3vYpbA==", "integrity": "sha512-VrsKq95esUBEMhwp9vVX+YUj2+/cNwb8UZ63HfgaqPo+pYj8r1RBSTboFOE9V0Md0n3ol9b5xByfPPa3qHmL0g==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@mikro-orm/knex": "6.4.2", "@mikro-orm/knex": "6.4.3",
"fs-extra": "11.2.0", "fs-extra": "11.2.0",
"umzug": "3.8.2" "umzug": "3.8.2"
}, },
@ -1215,13 +1215,13 @@
} }
}, },
"node_modules/@mikro-orm/mysql": { "node_modules/@mikro-orm/mysql": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/mysql/-/mysql-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/mysql/-/mysql-6.4.3.tgz",
"integrity": "sha512-w6gch2Th/j7JJW1RUjt+naWsatiAJdHpTfrOBzsaYcjeZeW6qT2+igvbcLxq+pfQp+Ea3uZ21CxLKJOGKnVDnA==", "integrity": "sha512-ZkrrzOWE9ouifU331q70K9BfAOD9SFRiNLNnECnzVrvDPWnthMV0ahGium9HyHpG4nev0Ybg6vnvq9IQzW1brg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@mikro-orm/knex": "6.4.2", "@mikro-orm/knex": "6.4.3",
"mysql2": "3.11.5" "mysql2": "3.12.0"
}, },
"engines": { "engines": {
"node": ">= 18.12.0" "node": ">= 18.12.0"
@ -1231,13 +1231,13 @@
} }
}, },
"node_modules/@mikro-orm/reflection": { "node_modules/@mikro-orm/reflection": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/@mikro-orm/reflection/-/reflection-6.4.2.tgz", "resolved": "https://registry.npmjs.org/@mikro-orm/reflection/-/reflection-6.4.3.tgz",
"integrity": "sha512-tCqy9xKc97a+6NlOK8xhaJlnj2b7C2dDhu7vhkU0ks/WuCOigHOmg21ikhFPz4VfKbGYPStt2DoZBUU9mCkMmA==", "integrity": "sha512-oi9WMO3J7hA9vLZvDW57I3LRtMMZgRqZUgUXoPRuDZihZYQFR7/6SC3b8EKwKP2VLt5v/3/0y6TE4OYq3QeOkQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"globby": "11.1.0", "globby": "11.1.0",
"ts-morph": "24.0.0" "ts-morph": "25.0.0"
}, },
"engines": { "engines": {
"node": ">= 18.12.0" "node": ">= 18.12.0"
@ -1360,9 +1360,9 @@
} }
}, },
"node_modules/@prisma/client": { "node_modules/@prisma/client": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.2.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/client/-/client-6.2.1.tgz",
"integrity": "sha512-tmEgej4OR+Wqk8MwZQcu58JzA1iFPmi/z7VPEmjTuTIQDLqHQZ6+MDRLL4wgNJXJkMHUKD9yMD5AkwYH0/0hKA==", "integrity": "sha512-msKY2iRLISN8t5X0Tj7hU0UWet1u0KuxSPHWuf3IRkB4J95mCvGpyQBfQ6ufcmvKNOMQSq90O2iUmJEN2e5fiA==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
@ -1378,24 +1378,24 @@
} }
}, },
"node_modules/@prisma/debug": { "node_modules/@prisma/debug": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.2.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/debug/-/debug-6.2.1.tgz",
"integrity": "sha512-Q96rqZVivmEtt29h1hhALceJTqggHDsr3RAWpeSJZOppQu6vcv5PyiY4XxyTf04gZw4Ue+kkqtaRcRms1zC8aQ==", "integrity": "sha512-0KItvt39CmQxWkEw6oW+RQMD6RZ43SJWgEUnzxN8VC9ixMysa7MzZCZf22LCK5DSooiLNf8vM3LHZm/I/Ni7bQ==",
"devOptional": true, "devOptional": true,
"license": "Apache-2.0" "license": "Apache-2.0"
}, },
"node_modules/@prisma/engines": { "node_modules/@prisma/engines": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.2.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-6.2.1.tgz",
"integrity": "sha512-Od7fH2gH+4n0E/XIhhAfO3OaKKNRzD0s1LY8umyvDQXlFmiDYF8kNJydcfWLvU3XNNV40wM2T0jOU+4ua1Zp3A==", "integrity": "sha512-lTBNLJBCxVT9iP5I7Mn6GlwqAxTpS5qMERrhebkUhtXpGVkBNd/jHnNJBZQW4kGDCKaQg/r2vlJYkzOHnAb7ZQ==",
"devOptional": true, "devOptional": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@prisma/debug": "6.2.0", "@prisma/debug": "6.2.1",
"@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69",
"@prisma/fetch-engine": "6.2.0", "@prisma/fetch-engine": "6.2.1",
"@prisma/get-platform": "6.2.0" "@prisma/get-platform": "6.2.1"
} }
}, },
"node_modules/@prisma/engines-version": { "node_modules/@prisma/engines-version": {
@ -1406,25 +1406,25 @@
"license": "Apache-2.0" "license": "Apache-2.0"
}, },
"node_modules/@prisma/fetch-engine": { "node_modules/@prisma/fetch-engine": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.2.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/fetch-engine/-/fetch-engine-6.2.1.tgz",
"integrity": "sha512-zz0HmZ2Npsthnh+1cj7aFPRWs57GS4CNlM9uXpVeQm2/YN0LMRNeuI5/zpqRhHrZUXdKde0jltJnvIM1Xz/mPQ==", "integrity": "sha512-OO7O9d6Mrx2F9i+Gu1LW+DGXXyUFkP7OE5aj9iBfA/2jjDXEJjqa9X0ZmM9NZNo8Uo7ql6zKm6yjDcbAcRrw1A==",
"devOptional": true, "devOptional": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@prisma/debug": "6.2.0", "@prisma/debug": "6.2.1",
"@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69", "@prisma/engines-version": "6.2.0-14.4123509d24aa4dede1e864b46351bf2790323b69",
"@prisma/get-platform": "6.2.0" "@prisma/get-platform": "6.2.1"
} }
}, },
"node_modules/@prisma/get-platform": { "node_modules/@prisma/get-platform": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.2.0.tgz", "resolved": "https://registry.npmjs.org/@prisma/get-platform/-/get-platform-6.2.1.tgz",
"integrity": "sha512-Nnk2fcjiRB9E0uRKCMl+EmBC1Vs6kXqaHa2E108pDrEXAgxj0Ns/YQSeZE0o4QJiK5m1PGmImA9/FFUAgCUTHA==", "integrity": "sha512-zp53yvroPl5m5/gXYLz7tGCNG33bhG+JYCm74ohxOq1pPnrL47VQYFfF3RbTZ7TzGWCrR3EtoiYMywUBw7UK6Q==",
"devOptional": true, "devOptional": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@prisma/debug": "6.2.0" "@prisma/debug": "6.2.1"
} }
}, },
"node_modules/@rtsao/scc": { "node_modules/@rtsao/scc": {
@ -1435,9 +1435,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@rushstack/node-core-library": { "node_modules/@rushstack/node-core-library": {
"version": "5.10.1", "version": "5.10.2",
"resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.1.tgz", "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.10.2.tgz",
"integrity": "sha512-BSb/KcyBHmUQwINrgtzo6jiH0HlGFmrUy33vO6unmceuVKTEyL2q+P0fQq2oB5hvXVWOEUhxB2QvlkZluvUEmg==", "integrity": "sha512-xOF/2gVJZTfjTxbo4BDj9RtQq/HFnrrKdtem4JkyRLnwsRz2UDTg8gA1/et10fBx5RxmZD9bYVGST69W8ME5OQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"ajv": "~8.13.0", "ajv": "~8.13.0",
@ -1554,12 +1554,12 @@
} }
}, },
"node_modules/@rushstack/terminal": { "node_modules/@rushstack/terminal": {
"version": "0.14.4", "version": "0.14.5",
"resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.4.tgz", "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.14.5.tgz",
"integrity": "sha512-NxACqERW0PHq8Rpq1V6v5iTHEwkRGxenjEW+VWqRYQ8T9puUzgmGHmEZUaUEDHAe9Qyvp0/Ew04sAiQw9XjhJg==", "integrity": "sha512-TEOpNwwmsZVrkp0omnuTUTGZRJKTr6n6m4OITiNjkqzLAkcazVpwR1SOtBg6uzpkIBLgrcNHETqI8rbw3uiUfw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@rushstack/node-core-library": "5.10.1", "@rushstack/node-core-library": "5.10.2",
"supports-color": "~8.1.1" "supports-color": "~8.1.1"
}, },
"peerDependencies": { "peerDependencies": {
@ -1587,12 +1587,12 @@
} }
}, },
"node_modules/@rushstack/ts-command-line": { "node_modules/@rushstack/ts-command-line": {
"version": "4.23.2", "version": "4.23.3",
"resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.2.tgz", "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.23.3.tgz",
"integrity": "sha512-JJ7XZX5K3ThBBva38aomgsPv1L7FV6XmSOcR6HtM7HDFZJkepqT65imw26h9ggGqMjsY0R9jcl30tzKcVj9aOQ==", "integrity": "sha512-HazKL8fv4HMQMzrKJCrOrhyBPPdzk7iajUXgsASwjQ8ROo1cmgyqxt/k9+SdmrNLGE1zATgRqMUH3s/6smbRMA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@rushstack/terminal": "0.14.4", "@rushstack/terminal": "0.14.5",
"@types/argparse": "1.0.38", "@types/argparse": "1.0.38",
"argparse": "~1.0.9", "argparse": "~1.0.9",
"string-argv": "~0.3.1" "string-argv": "~0.3.1"
@ -1614,14 +1614,14 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/@ts-morph/common": { "node_modules/@ts-morph/common": {
"version": "0.25.0", "version": "0.26.0",
"resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.25.0.tgz", "resolved": "https://registry.npmjs.org/@ts-morph/common/-/common-0.26.0.tgz",
"integrity": "sha512-kMnZz+vGGHi4GoHnLmMhGNjm44kGtKUXGnOvrKmMwAuvNjM/PgKVGfUnL7IDvK7Jb2QQ82jq3Zmp04Gy+r3Dkg==", "integrity": "sha512-/RmKAtctStXqM5nECMQ46duT74Hoig/DBzhWXGHcodlDNrgRbsbwwHqSKFNbca6z9Xt/CUWMeXOsC9QEN1+rqw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"fast-glob": "^3.3.2",
"minimatch": "^9.0.4", "minimatch": "^9.0.4",
"path-browserify": "^1.0.1", "path-browserify": "^1.0.1"
"tinyglobby": "^0.2.9"
} }
}, },
"node_modules/@tsconfig/node10": { "node_modules/@tsconfig/node10": {
@ -2457,9 +2457,9 @@
"license": "BSD-3-Clause" "license": "BSD-3-Clause"
}, },
"node_modules/bullmq": { "node_modules/bullmq": {
"version": "5.34.7", "version": "5.34.8",
"resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.34.7.tgz", "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.34.8.tgz",
"integrity": "sha512-Z6nKi8skD9n5/ErddTngeeEd8dRvZCu8wgZqpeH9zK0DlyTxYKceTnkGab3FkA+U9mzlqa0z34ZKGMbn4GWdgQ==", "integrity": "sha512-id5mmPg3K8tNXQ9VVlmUxBSeLmliIWUrB8Hd5c62PFrIiHywz4TN1PEqU6OWvYXEvoFCr8/BlnbE4JCrGqPVmg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"cron-parser": "^4.9.0", "cron-parser": "^4.9.0",
@ -5331,9 +5331,9 @@
} }
}, },
"node_modules/mikro-orm": { "node_modules/mikro-orm": {
"version": "6.4.2", "version": "6.4.3",
"resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.2.tgz", "resolved": "https://registry.npmjs.org/mikro-orm/-/mikro-orm-6.4.3.tgz",
"integrity": "sha512-PyivHOk8wlN16fzFv8fTfMXrTj9nWQ6Cnzi49twsVHVr1HUQuhFKMJUV/n0HlEdYBiQj0UK1pN4wNGo7h3nNGQ==", "integrity": "sha512-xDNzmLiL4EUTMOu9CbZ2d0sNIaUdH4RzDv4oqw27+u0/FPfvZTIagd+luxx1lWWqe/vg/iNtvqr5OcNQIYYrtQ==",
"license": "MIT", "license": "MIT",
"engines": { "engines": {
"node": ">= 18.12.0" "node": ">= 18.12.0"
@ -5435,9 +5435,9 @@
} }
}, },
"node_modules/mysql2": { "node_modules/mysql2": {
"version": "3.11.5", "version": "3.12.0",
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.11.5.tgz", "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.12.0.tgz",
"integrity": "sha512-0XFu8rUmFN9vC0ME36iBvCUObftiMHItrYFhlCRvFWbLgpNqtC4Br/NmZX1HNCszxT0GGy5QtP+k3Q3eCJPaYA==", "integrity": "sha512-C8fWhVysZoH63tJbX8d10IAoYCyXy4fdRFz2Ihrt9jtPILYynFEKUUzpp1U7qxzDc3tMbotvaBH+sl6bFnGZiw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"aws-ssl-profiles": "^1.1.1", "aws-ssl-profiles": "^1.1.1",
@ -5992,14 +5992,14 @@
} }
}, },
"node_modules/prisma": { "node_modules/prisma": {
"version": "6.2.0", "version": "6.2.1",
"resolved": "https://registry.npmjs.org/prisma/-/prisma-6.2.0.tgz", "resolved": "https://registry.npmjs.org/prisma/-/prisma-6.2.1.tgz",
"integrity": "sha512-3bnAPqtWXbyA9QEKYEstPcsQMxoQ97rjC0E1OZ+QVKuNNpzRDdIgdCpTVpHvqj/9UaWpqaEiENYqS2At8DtESA==", "integrity": "sha512-hhyM0H13pQleQ+br4CkzGizS5I0oInoeTw3JfLw1BRZduBSQxPILlJLwi+46wZzj9Je7ndyQEMGw/n5cN2fknA==",
"devOptional": true, "devOptional": true,
"hasInstallScript": true, "hasInstallScript": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@prisma/engines": "6.2.0" "@prisma/engines": "6.2.1"
}, },
"bin": { "bin": {
"prisma": "build/index.js" "prisma": "build/index.js"
@ -7019,45 +7019,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/tinyglobby": {
"version": "0.2.10",
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.10.tgz",
"integrity": "sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==",
"license": "MIT",
"dependencies": {
"fdir": "^6.4.2",
"picomatch": "^4.0.2"
},
"engines": {
"node": ">=12.0.0"
}
},
"node_modules/tinyglobby/node_modules/fdir": {
"version": "6.4.2",
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.2.tgz",
"integrity": "sha512-KnhMXsKSPZlAhp7+IjUkRZKPb4fUyccpDrdFXbi4QL1qkmFh9kVY09Yox+n4MaOb3lHZ1Tv829C3oaaXoMYPDQ==",
"license": "MIT",
"peerDependencies": {
"picomatch": "^3 || ^4"
},
"peerDependenciesMeta": {
"picomatch": {
"optional": true
}
}
},
"node_modules/tinyglobby/node_modules/picomatch": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
"license": "MIT",
"engines": {
"node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/jonschlinkert"
}
},
"node_modules/to-regex-range": { "node_modules/to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
@ -7103,12 +7064,12 @@
} }
}, },
"node_modules/ts-morph": { "node_modules/ts-morph": {
"version": "24.0.0", "version": "25.0.0",
"resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-24.0.0.tgz", "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-25.0.0.tgz",
"integrity": "sha512-2OAOg/Ob5yx9Et7ZX4CvTCc0UFoZHwLEJ+dpDPSUi5TgwwlTlX47w+iFRrEwzUZwYACjq83cgjS/Da50Ga37uw==", "integrity": "sha512-ERPTUVO5qF8cEGJgAejGOsCVlbk8d0SDyiJsucKQT5XgqoZslv0Qml+gnui6Yy6o+uQqw5SestyW2HvlVtT/Sg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@ts-morph/common": "~0.25.0", "@ts-morph/common": "~0.26.0",
"code-block-writer": "^13.0.3" "code-block-writer": "^13.0.3"
} }
}, },
@ -7210,9 +7171,9 @@
} }
}, },
"node_modules/type-fest": { "node_modules/type-fest": {
"version": "4.31.0", "version": "4.32.0",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.31.0.tgz", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.32.0.tgz",
"integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==", "integrity": "sha512-rfgpoi08xagF3JSdtJlCwMq9DGNDE0IMh3Mkpc1wUypg9vPi786AiqeBBKcqvIkq42azsBM85N490fyZjeUftw==",
"license": "(MIT OR CC0-1.0)", "license": "(MIT OR CC0-1.0)",
"engines": { "engines": {
"node": ">=16" "node": ">=16"
@ -7313,9 +7274,9 @@
} }
}, },
"node_modules/typescript": { "node_modules/typescript": {
"version": "5.7.2", "version": "5.7.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz",
"integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==",
"license": "Apache-2.0", "license": "Apache-2.0",
"bin": { "bin": {
"tsc": "bin/tsc", "tsc": "bin/tsc",

View File

@ -38,7 +38,7 @@ export default class CharacterMove extends BaseEvent {
await this.moveAlongPath(mapCharacter, path) await this.moveAlongPath(mapCharacter, path)
} }
private async moveAlongPath(mapCharacter: MapCharacter, path: Array<{ x: number; y: number }>): Promise<void> { private async moveAlongPath(mapCharacter: MapCharacter, path: Array<{ positionX: number; positionY: number }>): Promise<void> {
const character = mapCharacter.getCharacter() const character = mapCharacter.getCharacter()
for (let i = 0; i < path.length - 1; i++) { for (let i = 0; i < path.length - 1; i++) {
@ -47,7 +47,7 @@ export default class CharacterMove extends BaseEvent {
} }
const [start, end] = [path[i], path[i + 1]] const [start, end] = [path[i], path[i + 1]]
character.setRotation(CharacterService.calculateRotation(start.x, start.y, end.x, end.y)) character.setRotation(CharacterService.calculateRotation(start.positionX, start.positionY, end.positionX, end.positionY))
const mapEventTileRepository = new MapEventTileRepository() const mapEventTileRepository = new MapEventTileRepository()
const mapEventTile = await mapEventTileRepository.getEventTileByMapIdAndPosition(character.getMap().getId(), Math.floor(end.x), Math.floor(end.y)) const mapEventTile = await mapEventTileRepository.getEventTileByMapIdAndPosition(character.getMap().getId(), Math.floor(end.x), Math.floor(end.y))
@ -59,7 +59,7 @@ export default class CharacterMove extends BaseEvent {
} }
// Update position first // Update position first
character.setPositionX(end.x).setPositionY(end.y) character.setPositionX(end.positionX).setPositionY(end.positionY)
// Then emit with the same properties // Then emit with the same properties
this.io.in(character.map.id).emit('map:character:move', { this.io.in(character.map.id).emit('map:character:move', {

View File

@ -9,7 +9,7 @@ import TeleportService from '#services/teleportService'
class MapCharacter { class MapCharacter {
public readonly character: Character public readonly character: Character
public isMoving: boolean = false public isMoving: boolean = false
public currentPath: Array<{ x: number; y: number }> | null = null public currentPath: Array<{ positionX: number; positionY: number }> | null = null
constructor(character: Character) { constructor(character: Character) {
this.character = character this.character = character

View File

@ -7,7 +7,7 @@ import SocketManager from '#managers/socketManager'
import CharacterRepository from '#repositories/characterRepository' import CharacterRepository from '#repositories/characterRepository'
import MapRepository from '#repositories/mapRepository' import MapRepository from '#repositories/mapRepository'
type Position = { x: number; y: number } type Position = { positionX: number; positionY: number }
export type Node = Position & { parent?: Node; g: number; h: number; f: number } export type Node = Position & { parent?: Node; g: number; h: number; f: number }
class CharacterService extends BaseService { class CharacterService extends BaseService {
@ -33,13 +33,13 @@ class CharacterService extends BaseService {
} }
const start: Position = { const start: Position = {
x: Math.floor(character.positionX), positionX: Math.floor(character.positionX),
y: Math.floor(character.positionY) positionY: Math.floor(character.positionY)
} }
const end: Position = { const end: Position = {
x: Math.floor(targetX), positionX: Math.floor(targetX),
y: Math.floor(targetY) positionY: Math.floor(targetY)
} }
return this.findPath(start, end, grid) return this.findPath(start, end, grid)
@ -80,24 +80,24 @@ class CharacterService extends BaseService {
private findPath(start: Position, end: Position, grid: number[][]): Node[] { private findPath(start: Position, end: Position, grid: number[][]): Node[] {
const openList: Node[] = [{ ...start, g: 0, h: 0, f: 0 }] const openList: Node[] = [{ ...start, g: 0, h: 0, f: 0 }]
const closedSet = new Set<string>() const closedSet = new Set<string>()
const getKey = (p: Position) => `${p.x},${p.y}` const getKey = (p: Position) => `${p.positionX},${p.positionY}`
while (openList.length > 0) { while (openList.length > 0) {
const current = openList.reduce((min, node) => (node.f < min.f ? node : min)) const current = openList.reduce((min, node) => (node.f < min.f ? node : min))
if (current.x === end.x && current.y === end.y) return this.reconstructPath(current) if (current.positionX === end.positionX && current.positionY === end.positionY) return this.reconstructPath(current)
openList.splice(openList.indexOf(current), 1) openList.splice(openList.indexOf(current), 1)
closedSet.add(getKey(current)) closedSet.add(getKey(current))
const neighbors = this.DIRECTIONS.slice(0, config.ALLOW_DIAGONAL_MOVEMENT ? 8 : 4) const neighbors = this.DIRECTIONS.slice(0, config.ALLOW_DIAGONAL_MOVEMENT ? 8 : 4)
.map((dir) => ({ x: current.x + dir.x, y: current.y + dir.y })) .map((dir) => ({ positionX: current.positionX + dir.x, positionY: current.positionY + dir.y }))
.filter((pos) => this.isValidPosition(pos, grid, end)) .filter((pos) => this.isValidPosition(pos, grid, end))
for (const neighbor of neighbors) { for (const neighbor of neighbors) {
if (closedSet.has(getKey(neighbor))) continue if (closedSet.has(getKey(neighbor))) continue
const g = current.g + this.getDistance(current, neighbor) const g = current.g + this.getDistance(current, neighbor)
const existing = openList.find((node) => node.x === neighbor.x && node.y === neighbor.y) const existing = openList.find((node) => node.positionX === neighbor.positionX && node.positionY === neighbor.positionY)
if (!existing || g < existing.g) { if (!existing || g < existing.g) {
const h = this.getDistance(neighbor, end) const h = this.getDistance(neighbor, end)
@ -112,12 +112,12 @@ class CharacterService extends BaseService {
} }
private isValidPosition(pos: Position, grid: number[][], end: Position): boolean { private isValidPosition(pos: Position, grid: number[][], end: Position): boolean {
return pos.x >= 0 && pos.y >= 0 && pos.x < grid[0].length && pos.y < grid.length && (grid[pos.y][pos.x] === 0 || (pos.x === end.x && pos.y === end.y)) return pos.positionX >= 0 && pos.positionY >= 0 && pos.positionX < grid[0].length && pos.positionY < grid.length && (grid[pos.positionY][pos.positionX] === 0 || (pos.positionX === end.positionX && pos.positionY === end.positionY))
} }
private getDistance(a: Position, b: Position): number { private getDistance(a: Position, b: Position): number {
const dx = Math.abs(a.x - b.x), const dx = Math.abs(a.positionX - b.positionX),
dy = Math.abs(a.y - b.y) dy = Math.abs(a.positionY - b.positionY)
// Manhattan distance for straight paths, then Euclidean for diagonals // Manhattan distance for straight paths, then Euclidean for diagonals
return dx + dy + (Math.sqrt(2) - 2) * Math.min(dx, dy) return dx + dy + (Math.sqrt(2) - 2) * Math.min(dx, dy)
} }