diff --git a/package-lock.json b/package-lock.json index 32c2dac..f61b8a1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2369,9 +2369,9 @@ "license": "BSD-3-Clause" }, "node_modules/bullmq": { - "version": "5.40.0", - "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.40.0.tgz", - "integrity": "sha512-tmrk32EmcbtUOGPSdwlDUcc0w+nAMqCisk8vEFFmG8aOzIehz0BxTNSj6Grh0qoMugRF3VglWk8HGUBnWqU2Fw==", + "version": "5.40.2", + "resolved": "https://registry.npmjs.org/bullmq/-/bullmq-5.40.2.tgz", + "integrity": "sha512-Cn4NUpwGAF4WnuXR2kTZCTAUEUHajSCn/IqiDG9ry1kVvAwwwg1Ati3J5HN2uZjqD5PBfNDXYnsc2+0PzakDwg==", "license": "MIT", "dependencies": { "cron-parser": "^4.9.0", @@ -4352,9 +4352,9 @@ } }, "node_modules/ioredis": { - "version": "5.4.2", - "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.4.2.tgz", - "integrity": "sha512-0SZXGNGZ+WzISQ67QDyZ2x0+wVxjjUndtD8oSeik/4ajifeiRufed8fCb8QW8VMyi4MXcS+UO1k/0NGhvq1PAg==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/ioredis/-/ioredis-5.5.0.tgz", + "integrity": "sha512-7CutT89g23FfSa8MDoIFs2GYYa0PaNiW/OrT+nRyjRXHDZd17HmIgy+reOQ/yhh72NznNjGuS8kbCAcA4Ro4mw==", "license": "MIT", "dependencies": { "@ioredis/commands": "^1.1.1", @@ -5874,9 +5874,9 @@ } }, "node_modules/possible-typed-array-names": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", - "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", "dev": true, "license": "MIT", "engines": { diff --git a/package.json b/package.json index cceb687..2169d9d 100644 --- a/package.json +++ b/package.json @@ -1,4 +1,5 @@ { + "type": "module", "scripts": { "start": "node --experimental-specifier-resolution=node dist/server.js", "dev": "nodemon --exec tsx src/server.ts", @@ -8,17 +9,18 @@ "lint:fix": "eslint . --fix" }, "imports": { - "#application/*": "./src/application/*", - "#commands/*": "./src/commands/*", - "#entities/*": "./src/entities/*", - "#controllers/*": "./src/controllers/*", - "#jobs/*": "./src/jobs/*", - "#managers/*": "./src/managers/*", - "#middleware/*": "./src/middleware/*", - "#models/*": "./src/models/*", - "#repositories/*": "./src/repositories/*", - "#services/*": "./src/services/*", - "#events/*": "./src/events/*" + "#root/*": "./dist/*.js", + "#application/*": "./dist/application/*.js", + "#commands/*": "./dist/commands/*.js", + "#entities/*": "./dist/entities/*.js", + "#controllers/*": "./dist/controllers/*.js", + "#jobs/*": "./dist/jobs/*.js", + "#managers/*": "./dist/managers/*.js", + "#middleware/*": "./dist/middleware/*.js", + "#models/*": "./dist/models/*.js", + "#repositories/*": "./dist/repositories/*.js", + "#services/*": "./dist/services/*.js", + "#events/*": "./dist/events/*.js" }, "dependencies": { "@mikro-orm/core": "^6.4.2", diff --git a/src/application/base/baseRepository.ts b/src/application/base/baseRepository.ts index 1fce61b..562a05a 100644 --- a/src/application/base/baseRepository.ts +++ b/src/application/base/baseRepository.ts @@ -1,7 +1,6 @@ import { EntityManager } from '@mikro-orm/core' -import Database from '../database' - +import Database from '#application/database' import Logger, { LoggerType } from '#application/logger' export abstract class BaseRepository { diff --git a/src/application/database.ts b/src/application/database.ts index bd4709c..87ba804 100644 --- a/src/application/database.ts +++ b/src/application/database.ts @@ -1,7 +1,7 @@ import { MikroORM } from '@mikro-orm/mysql' -import Logger, { LoggerType } from './logger' -import config from '../../mikro-orm.config' +import Logger, { LoggerType } from '#application/logger' +import config from '#root/mikro-orm.config' class Database { private static orm: MikroORM diff --git a/src/entities/base/map.ts b/src/entities/base/map.ts index c4eb07a..6d4133c 100644 --- a/src/entities/base/map.ts +++ b/src/entities/base/map.ts @@ -22,7 +22,7 @@ export class BaseMap extends BaseEntity { height = 10 @Property({ type: 'json', nullable: true }) - tiles?: any + tiles: Array> = [] @Property() pvp = false diff --git a/src/entities/base/mapEffect.ts b/src/entities/base/mapEffect.ts index e9fae7b..9ef3c32 100644 --- a/src/entities/base/mapEffect.ts +++ b/src/entities/base/mapEffect.ts @@ -1,6 +1,6 @@ import { randomUUID } from 'node:crypto' -import { Entity, ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' import { BaseEntity } from '#application/base/baseEntity' import { UUID } from '#application/types' diff --git a/src/middleware/authentication.ts b/src/middleware/authentication.ts index 367bd1e..9ef7feb 100644 --- a/src/middleware/authentication.ts +++ b/src/middleware/authentication.ts @@ -1,4 +1,4 @@ -import { verify } from 'jsonwebtoken' +import jwt from 'jsonwebtoken' import config from '#application/config' import Logger, { LoggerType } from '#application/logger' @@ -39,7 +39,7 @@ class SocketAuthenticator { } private verifyToken(token: string): void { - verify(token, config.JWT_SECRET, (err: any, decoded: any) => { + jwt.verify(token, config.JWT_SECRET, (err: any, decoded: any) => { if (err) { this.logger.error('Invalid token') return this.next(new Error('Authentication error')) diff --git a/mikro-orm.config.ts b/src/mikro-orm.config.ts similarity index 89% rename from mikro-orm.config.ts rename to src/mikro-orm.config.ts index 281bf95..78363d0 100644 --- a/mikro-orm.config.ts +++ b/src/mikro-orm.config.ts @@ -3,7 +3,7 @@ import { Migrator } from '@mikro-orm/migrations' import { defineConfig, MySqlDriver } from '@mikro-orm/mysql' import { TsMorphMetadataProvider } from '@mikro-orm/reflection' -import serverConfig from './src/application/config' +import serverConfig from '#application/config' export default defineConfig({ extensions: [Migrator], @@ -22,6 +22,6 @@ export default defineConfig({ }, migrations: { path: './migrations', - pathTs: './migrations', + pathTs: './migrations' } -}) \ No newline at end of file +}) diff --git a/src/models/loadedMap.ts b/src/models/loadedMap.ts index b866dcb..1116dcf 100644 --- a/src/models/loadedMap.ts +++ b/src/models/loadedMap.ts @@ -1,8 +1,7 @@ -import MapCharacter from './mapCharacter' - import { UUID } from '#application/types' import { Character } from '#entities/character' import { Map } from '#entities/map' +import MapCharacter from '#models/mapCharacter' import MapEventTileRepository from '#repositories/mapEventTileRepository' class LoadedMap { diff --git a/tsconfig.json b/tsconfig.json index 5e1aa9b..b51ea27 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,15 +3,12 @@ // Enable latest features "lib": ["ESNext"], "target": "ESNext", - "module": "NodeNext", - "moduleResolution": "NodeNext", - "moduleDetection": "force", - "allowJs": true, + "module": "ESNext", + "moduleResolution": "node", "declaration": true, "noImplicitAny": true, - "resolveJsonModule": true, - "sourceMap": true, "isolatedModules": true, + "sourceMap": true, // Best practices "strict": true, @@ -24,6 +21,7 @@ "outDir": "./dist", "paths": { + "#root/*": ["./*"], "#application/*": ["application/*"], "#commands/*": ["commands/*"], "#entities/*": ["entities/*"], @@ -47,8 +45,5 @@ "emitDecoratorMetadata": true, }, "include": ["src/**/*.ts", "src/**/*.tsx"], - "exclude": [ - "node_modules", - "dist" - ] + "exclude": ["node_modules", "dist"] } \ No newline at end of file