From e40a56825add66d601b4664144ef8a81803fa589 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Wed, 12 Feb 2025 00:50:51 +0100 Subject: [PATCH] Cleanup --- .prettierrc.json | 7 +- eslint.config.js | 42 - package-lock.json | 3102 ++--------------- package.json | 24 +- src/application/base/baseCommand.ts | 3 +- src/application/base/baseController.ts | 4 +- src/application/base/baseEntity.ts | 3 +- src/application/base/baseEvent.ts | 8 +- src/application/base/baseRepository.ts | 3 +- src/application/console/commandRegistry.ts | 4 +- src/application/console/logReader.ts | 1 - src/application/database.ts | 2 +- src/application/logger.ts | 1 + src/application/storage.ts | 1 - src/application/types.ts | 3 +- src/commands/alert.ts | 3 +- src/commands/init.ts | 18 +- src/commands/tiles.ts | 4 +- src/controllers/auth.ts | 8 +- src/controllers/avatar.ts | 9 +- src/controllers/cache.ts | 3 +- src/controllers/textures.ts | 3 +- src/entities/base/character.ts | 7 +- src/entities/base/characterEquipment.ts | 9 +- src/entities/base/characterHair.ts | 7 +- src/entities/base/characterItem.ts | 7 +- src/entities/base/characterType.ts | 7 +- src/entities/base/chat.ts | 7 +- src/entities/base/item.ts | 9 +- src/entities/base/map.ts | 7 +- src/entities/base/mapEffect.ts | 7 +- src/entities/base/mapEventTile.ts | 9 +- src/entities/base/mapEventTileTeleport.ts | 7 +- src/entities/base/mapObject.ts | 7 +- src/entities/base/passwordResetToken.ts | 7 +- src/entities/base/placedMapObject.ts | 7 +- src/entities/base/sprite.ts | 7 +- src/entities/base/spriteAction.ts | 7 +- src/entities/base/tile.ts | 7 +- src/entities/base/user.ts | 9 +- src/entities/base/world.ts | 3 +- src/entities/character.ts | 3 +- src/entities/characterEquipment.ts | 3 +- src/entities/characterHair.ts | 3 +- src/entities/characterItem.ts | 3 +- src/entities/characterType.ts | 3 +- src/entities/chat.ts | 3 +- src/entities/item.ts | 3 +- src/entities/map.ts | 3 +- src/entities/mapEffect.ts | 3 +- src/entities/mapEventTile.ts | 3 +- src/entities/mapEventTileTeleport.ts | 3 +- src/entities/mapObject.ts | 3 +- src/entities/passwordResetToken.ts | 3 +- src/entities/placedMapObject.ts | 3 +- src/entities/sprite.ts | 3 +- src/entities/spriteAction.ts | 3 +- src/entities/tile.ts | 3 +- src/entities/user.ts | 3 +- src/entities/world.ts | 3 +- src/events/character/connect.ts | 7 +- src/events/character/create.ts | 5 +- src/events/character/delete.ts | 7 +- src/events/character/list.ts | 2 +- src/events/chat/gameMaster/teleportCommand.ts | 3 +- src/events/chat/message.ts | 2 +- src/events/disconnect.ts | 2 +- .../assetManager/characterHair/delete.ts | 3 +- .../assetManager/characterHair/update.ts | 6 +- .../assetManager/characterType/delete.ts | 3 +- .../assetManager/characterType/update.ts | 6 +- .../gameMaster/assetManager/item/create.ts | 3 +- .../gameMaster/assetManager/item/delete.ts | 3 +- .../gameMaster/assetManager/item/update.ts | 6 +- .../assetManager/mapObject/remove.ts | 4 +- .../assetManager/mapObject/update.ts | 3 +- .../assetManager/mapObject/upload.ts | 4 +- .../gameMaster/assetManager/sprite/copy.ts | 3 +- .../gameMaster/assetManager/sprite/create.ts | 1 - .../gameMaster/assetManager/sprite/delete.ts | 4 +- .../gameMaster/assetManager/sprite/update.ts | 7 +- .../gameMaster/assetManager/tile/delete.ts | 4 +- .../gameMaster/assetManager/tile/update.ts | 3 +- .../gameMaster/assetManager/tile/upload.ts | 1 - src/events/gameMaster/mapEditor/create.ts | 3 +- src/events/gameMaster/mapEditor/delete.ts | 3 +- src/events/gameMaster/mapEditor/request.ts | 3 +- src/events/gameMaster/mapEditor/update.ts | 10 +- src/events/map/characterAttack.ts | 2 +- src/events/map/characterMove.ts | 7 +- src/jobs/someJob.ts | 6 +- src/managers/dateManager.ts | 3 +- src/managers/httpManager.ts | 6 +- src/managers/mapManager.ts | 3 +- src/managers/queueManager.ts | 11 +- src/managers/socketManager.ts | 9 +- src/managers/weatherManager.ts | 3 +- src/middleware/authentication.ts | 6 +- src/migrations/Migration20250207212301.ts | 72 +- src/mikro-orm.config.ts | 3 +- src/models/loadedMap.ts | 1 - src/models/mapCharacter.ts | 6 +- src/repositories/characterHairRepository.ts | 3 +- src/repositories/characterRepository.ts | 3 +- src/repositories/characterTypeRepository.ts | 3 +- src/repositories/chatRepository.ts | 3 +- src/repositories/itemRepository.ts | 3 +- src/repositories/mapEventTileRepository.ts | 3 +- src/repositories/mapObjectRepository.ts | 3 +- src/repositories/mapRepository.ts | 3 +- .../passwordResetTokenRepository.ts | 3 +- src/repositories/spriteRepository.ts | 3 +- src/repositories/tileRepository.ts | 3 +- src/repositories/userRepository.ts | 3 +- src/server.ts | 11 +- src/services/characterAttackService.ts | 3 +- src/services/characterMoveService.ts | 8 +- src/services/characterTeleportService.ts | 7 +- src/services/chatService.ts | 3 +- src/services/userService.ts | 5 +- tsconfig.json | 1 + 121 files changed, 468 insertions(+), 3305 deletions(-) delete mode 100644 eslint.config.js diff --git a/.prettierrc.json b/.prettierrc.json index f3ca5d2..09fbd9e 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -3,6 +3,9 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 200, - "trailingComma": "none" + "printWidth": 300, + "trailingComma": "none", + "plugins": ["@ianvs/prettier-plugin-sort-imports"], + "importOrderParserPlugins": ["typescript", "jsx", "decorators-legacy", "classProperties"], + "importOrderCaseSensitive": false } \ No newline at end of file diff --git a/eslint.config.js b/eslint.config.js deleted file mode 100644 index 203a6f4..0000000 --- a/eslint.config.js +++ /dev/null @@ -1,42 +0,0 @@ -import eslint from '@eslint/js'; -import tseslint from '@typescript-eslint/eslint-plugin'; -import tsparser from '@typescript-eslint/parser'; -import importPlugin from 'eslint-plugin-import'; - -export default [ - eslint.configs.recommended, - { - files: ['**/*.ts'], - languageOptions: { - parser: tsparser, - parserOptions: { - project: './tsconfig.json', - ecmaVersion: 2023, - }, - }, - plugins: { - '@typescript-eslint': tseslint, - 'import': importPlugin, - }, - rules: { - ...tseslint.configs['recommended'].rules, - ...tseslint.configs['recommended-requiring-type-checking'].rules, - 'import/order': ['error', { - 'groups': [ - 'builtin', - 'external', - 'internal', - ['parent', 'sibling'], - 'index', - 'object', - 'type' - ], - 'newlines-between': 'always', - 'alphabetize': { - 'order': 'asc', - 'caseInsensitive': true - } - }] - } - } -]; \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 3faee3c..15711b4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -32,21 +32,133 @@ "zod": "^3.23.8" }, "devDependencies": { + "@ianvs/prettier-plugin-sort-imports": "^4.4.0", "@types/bcryptjs": "^2.4.6", "@types/express": "^4.17.21", "@types/jsonwebtoken": "^9.0.6", "@types/node": "^20.14.11", "@types/nodemailer": "^6.4.16", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "eslint": "^9.17.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.31.0", "nodemon": "^3.1.4", "prettier": "^3.3.3", "tsx": "^4.19.2" } }, + "node_modules/@babel/code-frame": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.8.tgz", + "integrity": "sha512-ef383X5++iZHWAXX0SXQR6ZyQhw/0KtTkrTz61WXRhFM6dhpHulO/RJz79L8S6ugZHJkOOkUrUdxgdF2YiPFnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.26.8", + "@babel/types": "^7.26.8", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.8.tgz", + "integrity": "sha512-TZIQ25pkSoaKEYYaHbbxkfL36GNsQ6iFiBbeuzAkLnXayKR1yP1zFe+NxuZWWsUyvt8icPU9CCq0sgWGXR1GEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.26.8" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/template": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.26.8.tgz", + "integrity": "sha512-iNKaX3ZebKIsCvJ+0jd6embf+Aulaa3vNBqZ41kM7iTWjx5qzWKXGHiJUW3+nTpQ18SG11hdF8OAzKrpXkb96Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/parser": "^7.26.8", + "@babel/types": "^7.26.8" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.8.tgz", + "integrity": "sha512-nic9tRkjYH0oB2dzr/JoGIm+4Q6SuYeLEiIiZDwBscRMYFJ+tMAz98fuel9ZnbXViA2I0HVSSRRK8DW5fjXStA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.26.2", + "@babel/generator": "^7.26.8", + "@babel/parser": "^7.26.8", + "@babel/template": "^7.26.8", + "@babel/types": "^7.26.8", + "debug": "^4.3.1", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.26.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.8.tgz", + "integrity": "sha512-eUuWapzEGWFEpHFxgEaBG8e3n6S8L3MSu0oda755rOfabWPnh0Our1AozNFVUxGFIhbKgd1ksprsoDGMinTOTA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", @@ -59,6 +171,16 @@ "node": ">=12" } }, + "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, "node_modules/@emnapi/runtime": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.3.1.tgz", @@ -477,246 +599,27 @@ "node": ">=18" } }, - "node_modules/@eslint-community/eslint-utils": { + "node_modules/@ianvs/prettier-plugin-sort-imports": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", - "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "resolved": "https://registry.npmjs.org/@ianvs/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.4.1.tgz", + "integrity": "sha512-F0/Hrcfpy8WuxlQyAWJTEren/uxKhYonOGY4OyWmwRdeTvkh9mMSCxowZLjNkhwi/2ipqCgtXwwOk7tW0mWXkA==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "@babel/generator": "^7.26.2", + "@babel/parser": "^7.26.2", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "semver": "^7.5.2" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.19.2", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.2.tgz", - "integrity": "sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" + "@vue/compiler-sfc": "2.7.x || 3.x", + "prettier": "2 || 3" }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/core": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.11.0.tgz", - "integrity": "sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", - "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/@eslint/js": { - "version": "9.20.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.20.0.tgz", - "integrity": "sha512-iZA07H9io9Wn836aVTytRaNqh00Sad+EamwOVJT12GTLw1VGMFV/4JaME+JjLtr9fiGaoWgYnS54wrfWsSs4oQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.5.tgz", - "integrity": "sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.10.0", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit/node_modules/@eslint/core": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.10.0.tgz", - "integrity": "sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", - "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" + "peerDependenciesMeta": { + "@vue/compiler-sfc": { + "optional": true + } } }, "node_modules/@img/sharp-darwin-arm64": { @@ -1097,6 +1000,21 @@ "parent-require": "^1.0.0" } }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", @@ -1106,6 +1024,16 @@ "node": ">=6.0.0" } }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", @@ -1113,13 +1041,14 @@ "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@mikro-orm/cli": { @@ -1373,13 +1302,6 @@ "node": ">= 8" } }, - "node_modules/@rtsao/scc": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", - "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "dev": true, - "license": "MIT" - }, "node_modules/@rushstack/node-core-library": { "version": "5.11.0", "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.11.0.tgz", @@ -1404,42 +1326,6 @@ } } }, - "node_modules/@rushstack/node-core-library/node_modules/ajv": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", - "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2", - "uri-js": "^4.4.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/@rushstack/node-core-library/node_modules/ajv-draft-04": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", - "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", - "license": "MIT", - "peerDependencies": { - "ajv": "^8.5.0" - }, - "peerDependenciesMeta": { - "ajv": { - "optional": true - } - } - }, - "node_modules/@rushstack/node-core-library/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, "node_modules/@rushstack/node-core-library/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", @@ -1512,15 +1398,6 @@ "string-argv": "~0.3.1" } }, - "node_modules/@rushstack/ts-command-line/node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "license": "MIT", - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, "node_modules/@socket.io/component-emitter": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", @@ -1538,6 +1415,30 @@ "path-browserify": "^1.0.1" } }, + "node_modules/@ts-morph/common/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@ts-morph/common/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/@tsconfig/node10": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz", @@ -1605,13 +1506,6 @@ "@types/node": "*" } }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/express": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", @@ -1660,20 +1554,6 @@ "@types/node": "*" } }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/jsonwebtoken": { "version": "9.0.8", "resolved": "https://registry.npmjs.org/@types/jsonwebtoken/-/jsonwebtoken-9.0.8.tgz", @@ -1755,199 +1635,6 @@ "@types/send": "*" } }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.24.0.tgz", - "integrity": "sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/type-utils": "8.24.0", - "@typescript-eslint/utils": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", - "graphemer": "^1.4.0", - "ignore": "^5.3.1", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.24.0.tgz", - "integrity": "sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/typescript-estree": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.24.0.tgz", - "integrity": "sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.24.0.tgz", - "integrity": "sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/typescript-estree": "8.24.0", - "@typescript-eslint/utils": "8.24.0", - "debug": "^4.3.4", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.24.0.tgz", - "integrity": "sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.24.0.tgz", - "integrity": "sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/visitor-keys": "8.24.0", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.0.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.24.0.tgz", - "integrity": "sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.24.0", - "@typescript-eslint/types": "8.24.0", - "@typescript-eslint/typescript-estree": "8.24.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <5.8.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.24.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.24.0.tgz", - "integrity": "sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.24.0", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -1973,16 +1660,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, "node_modules/acorn-walk": { "version": "8.3.4", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz", @@ -1996,22 +1673,35 @@ } }, "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.13.0.tgz", + "integrity": "sha512-PRA911Blj99jR5RMeTunVbNXMF6Lp4vZXnk5GQjcnUWUTsrXtekg/pnmFFI2u/I36Y/2bITGS30GZCXei6uNkA==", "license": "MIT", "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" }, "funding": { "type": "github", "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ajv-draft-04": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ajv-draft-04/-/ajv-draft-04-1.0.0.tgz", + "integrity": "sha512-mv00Te6nmYbRp5DCwclxtt7yV/joXJPGS7nM+97GdxvuttCOfgI3K4U25zboyeX0O+myI8ERluxQe5wljMmVIw==", + "license": "MIT", + "peerDependencies": { + "ajv": "^8.5.0" + }, + "peerDependenciesMeta": { + "ajv": { + "optional": true + } + } + }, "node_modules/ajv-formats": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", @@ -2029,28 +1719,6 @@ } } }, - "node_modules/ajv-formats/node_modules/ajv": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", - "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.3", - "fast-uri": "^3.0.1", - "json-schema-traverse": "^1.0.0", - "require-from-string": "^2.0.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ajv-formats/node_modules/json-schema-traverse": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", - "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "license": "MIT" - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -2096,27 +1764,12 @@ "license": "MIT" }, "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/array-buffer-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", - "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", - "dev": true, + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "license": "MIT", "dependencies": { - "call-bound": "^1.0.3", - "is-array-buffer": "^3.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "sprintf-js": "~1.0.2" } }, "node_modules/array-flatten": { @@ -2125,27 +1778,6 @@ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "license": "MIT" }, - "node_modules/array-includes": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.8.tgz", - "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/array-union": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", @@ -2155,97 +1787,6 @@ "node": ">=8" } }, - "node_modules/array.prototype.findlastindex": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz", - "integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flat": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", - "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/array.prototype.flatmap": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", - "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-shim-unscopables": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", - "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "is-array-buffer": "^3.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async-function": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", - "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -2255,22 +1796,6 @@ "node": ">=8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", - "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "possible-typed-array-names": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/aws-ssl-profiles": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", @@ -2354,12 +1879,14 @@ "license": "MIT" }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, "node_modules/braces": { @@ -2417,25 +1944,6 @@ "node": ">= 0.8" } }, - "node_modules/call-bind": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", - "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind-apply-helpers": "^1.0.0", - "es-define-property": "^1.0.0", - "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/call-bind-apply-helpers": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", @@ -2465,16 +1973,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -2516,19 +2014,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -2688,75 +2173,6 @@ "node": ">=12.0.0" } }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/data-view-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", - "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/data-view-byte-length": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", - "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/inspect-js" - } - }, - "node_modules/data-view-byte-offset": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", - "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/dataloader": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.3.tgz", @@ -2780,49 +2196,6 @@ } } }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/define-data-property": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", - "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", - "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/denque": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", @@ -2881,19 +2254,6 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/dotenv": { "version": "16.4.7", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz", @@ -3017,72 +2377,6 @@ } } }, - "node_modules/es-abstract": { - "version": "1.23.9", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.9.tgz", - "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.2", - "arraybuffer.prototype.slice": "^1.0.4", - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "data-view-buffer": "^1.0.2", - "data-view-byte-length": "^1.0.2", - "data-view-byte-offset": "^1.0.1", - "es-define-property": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "es-set-tostringtag": "^2.1.0", - "es-to-primitive": "^1.3.0", - "function.prototype.name": "^1.1.8", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.0", - "get-symbol-description": "^1.1.0", - "globalthis": "^1.0.4", - "gopd": "^1.2.0", - "has-property-descriptors": "^1.0.2", - "has-proto": "^1.2.0", - "has-symbols": "^1.1.0", - "hasown": "^2.0.2", - "internal-slot": "^1.1.0", - "is-array-buffer": "^3.0.5", - "is-callable": "^1.2.7", - "is-data-view": "^1.0.2", - "is-regex": "^1.2.1", - "is-shared-array-buffer": "^1.0.4", - "is-string": "^1.1.1", - "is-typed-array": "^1.1.15", - "is-weakref": "^1.1.0", - "math-intrinsics": "^1.1.0", - "object-inspect": "^1.13.3", - "object-keys": "^1.1.1", - "object.assign": "^4.1.7", - "own-keys": "^1.0.1", - "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.3", - "safe-push-apply": "^1.0.0", - "safe-regex-test": "^1.1.0", - "set-proto": "^1.0.0", - "string.prototype.trim": "^1.2.10", - "string.prototype.trimend": "^1.0.9", - "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.3", - "typed-array-byte-length": "^1.0.3", - "typed-array-byte-offset": "^1.0.4", - "typed-array-length": "^1.0.7", - "unbox-primitive": "^1.1.0", - "which-typed-array": "^1.1.18" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/es-define-property": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", @@ -3113,50 +2407,6 @@ "node": ">= 0.4" } }, - "node_modules/es-set-tostringtag": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", - "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "hasown": "^2.0.0" - } - }, - "node_modules/es-to-primitive": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", - "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7", - "is-date-object": "^1.0.5", - "is-symbol": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/esbuild": { "version": "0.23.1", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.23.1.tgz", @@ -3212,313 +2462,6 @@ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", "license": "MIT" }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.20.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.20.1.tgz", - "integrity": "sha512-m1mM33o6dBUjxl2qb6wv6nGNwCAsns1eKtaQ4l/NPHeTvhiUPbtdfMyktxN4B3fgHIgsYh1VT3V9txblpQHq+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.19.0", - "@eslint/core": "^0.11.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "9.20.0", - "@eslint/plugin-kit": "^0.2.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.1", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.2.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" - }, - "peerDependencies": { - "eslint": ">=7.0.0" - } - }, - "node_modules/eslint-import-resolver-node": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", - "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7", - "is-core-module": "^2.13.0", - "resolve": "^1.22.4" - } - }, - "node_modules/eslint-import-resolver-node/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-module-utils": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.0.tgz", - "integrity": "sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^3.2.7" - }, - "engines": { - "node": ">=4" - }, - "peerDependenciesMeta": { - "eslint": { - "optional": true - } - } - }, - "node_modules/eslint-module-utils/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import": { - "version": "2.31.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", - "integrity": "sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rtsao/scc": "^1.1.0", - "array-includes": "^3.1.8", - "array.prototype.findlastindex": "^1.2.5", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", - "debug": "^3.2.7", - "doctrine": "^2.1.0", - "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.12.0", - "hasown": "^2.0.2", - "is-core-module": "^2.15.1", - "is-glob": "^4.0.3", - "minimatch": "^3.1.2", - "object.fromentries": "^2.0.8", - "object.groupby": "^1.0.3", - "object.values": "^1.2.0", - "semver": "^6.3.1", - "string.prototype.trimend": "^1.0.8", - "tsconfig-paths": "^3.15.0" - }, - "engines": { - "node": ">=4" - }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "dev": true, - "license": "MIT", - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { - "version": "3.15.0", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", - "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/eslint-scope": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", - "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", @@ -3528,37 +2471,6 @@ "node": ">=6" } }, - "node_modules/espree": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", - "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.14.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree/node_modules/eslint-visitor-keys": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", - "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3572,52 +2484,6 @@ "node": ">=4" } }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -3710,32 +2576,6 @@ "node": ">=8.6.0" } }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-redact": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", @@ -3745,22 +2585,6 @@ "node": ">=6" } }, - "node_modules/fast-uri": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.0.6.tgz", - "integrity": "sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/fastify" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/fastify" - } - ], - "license": "BSD-3-Clause" - }, "node_modules/fastq": { "version": "1.19.0", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.0.tgz", @@ -3782,19 +2606,6 @@ "node": ">= 0.4.0" } }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -3840,60 +2651,6 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "license": "MIT" }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", - "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", - "dev": true, - "license": "ISC" - }, - "node_modules/for-each": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.5.tgz", - "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/forwarded": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", @@ -3950,37 +2707,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/function.prototype.name": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", - "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "functions-have-names": "^1.2.3", - "hasown": "^2.0.2", - "is-callable": "^1.2.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/generate-function": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", @@ -4045,24 +2771,6 @@ "node": ">= 0.4" } }, - "node_modules/get-symbol-description": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", - "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/get-tsconfig": { "version": "4.10.0", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.10.0.tgz", @@ -4083,46 +2791,25 @@ "license": "MIT" }, "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "license": "ISC", "dependencies": { - "is-glob": "^4.0.3" + "is-glob": "^4.0.1" }, "engines": { - "node": ">=10.13.0" + "node": ">= 6" } }, "node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globalthis": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", - "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-properties": "^1.2.1", - "gopd": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=4" } }, "node_modules/globby": { @@ -4163,26 +2850,6 @@ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "license": "ISC" }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-bigints": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", - "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", @@ -4192,35 +2859,6 @@ "node": ">=8" } }, - "node_modules/has-property-descriptors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", - "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-define-property": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-proto": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", - "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", @@ -4233,22 +2871,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has-tostringtag": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", - "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-symbols": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/hasown": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", @@ -4311,23 +2933,6 @@ "dev": true, "license": "ISC" }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/import-lazy": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", @@ -4337,37 +2942,12 @@ "node": ">=8" } }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "license": "ISC" }, - "node_modules/internal-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", - "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "hasown": "^2.0.2", - "side-channel": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/interpret": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-2.2.0.tgz", @@ -4410,66 +2990,12 @@ "node": ">= 0.10" } }, - "node_modules/is-array-buffer": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", - "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-arrayish": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "license": "MIT" }, - "node_modules/is-async-function": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", - "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "async-function": "^1.0.0", - "call-bound": "^1.0.3", - "get-proto": "^1.0.1", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", - "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-bigints": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4483,36 +3009,6 @@ "node": ">=8" } }, - "node_modules/is-boolean-object": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", - "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-core-module": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", @@ -4528,41 +3024,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-data-view": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", - "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "is-typed-array": "^1.1.13" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", - "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", @@ -4572,22 +3033,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-finalizationregistry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", - "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", @@ -4597,25 +3042,6 @@ "node": ">=8" } }, - "node_modules/is-generator-function": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.1.0.tgz", - "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-proto": "^1.0.0", - "has-tostringtag": "^1.0.2", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -4628,19 +3054,6 @@ "node": ">=0.10.0" } }, - "node_modules/is-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", - "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -4650,226 +3063,42 @@ "node": ">=0.12.0" } }, - "node_modules/is-number-object": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", - "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", "license": "MIT" }, - "node_modules/is-regex": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", - "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2", - "hasown": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", - "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", - "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", - "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", - "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "has-symbols": "^1.1.0", - "safe-regex-test": "^1.1.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.15", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", - "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", - "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", - "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", - "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "get-intrinsic": "^1.2.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true, - "license": "MIT" - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, "node_modules/jju": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", "integrity": "sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==", "license": "MIT" }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/jsesc": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, "bin": { - "js-yaml": "bin/js-yaml.js" + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" } }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "license": "MIT" }, "node_modules/json5": { @@ -4939,16 +3168,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, "node_modules/knex": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/knex/-/knex-3.1.0.tgz", @@ -5023,45 +3242,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, - "node_modules/knex/node_modules/resolve-from": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -5116,13 +3296,6 @@ "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==", "license": "MIT" }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.once": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", @@ -5315,18 +3488,16 @@ } }, "node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^1.1.7" }, "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": "*" } }, "node_modules/minimist": { @@ -5428,13 +3599,6 @@ "node": ">=12" } }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -5514,17 +3678,6 @@ "url": "https://opencollective.com/nodemon" } }, - "node_modules/nodemon/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, "node_modules/nodemon/node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -5535,19 +3688,6 @@ "node": ">=4" } }, - "node_modules/nodemon/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/nodemon/node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", @@ -5592,90 +3732,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", - "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0", - "has-symbols": "^1.1.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.fromentries": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", - "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object.groupby": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", - "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.values": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", - "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/on-exit-leak-free": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", @@ -5697,87 +3753,6 @@ "node": ">= 0.8" } }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/own-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", - "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.6", - "object-keys": "^1.1.1", - "safe-push-apply": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/parent-require": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/parent-require/-/parent-require-1.0.0.tgz", @@ -5801,26 +3776,6 @@ "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "license": "MIT" }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/path-parse": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", @@ -5848,6 +3803,13 @@ "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", "license": "MIT" }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, + "license": "ISC" + }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", @@ -5906,26 +3868,6 @@ "node": ">=12.0.0" } }, - "node_modules/possible-typed-array-names": { - "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": { - "node": ">= 0.4" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/prettier": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.0.tgz", @@ -6113,50 +4055,6 @@ "integrity": "sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==", "license": "Apache-2.0" }, - "node_modules/reflect.getprototypeof": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", - "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.9", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.7", - "get-proto": "^1.0.1", - "which-builtin-type": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", - "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "define-properties": "^1.2.1", - "es-errors": "^1.3.0", - "get-proto": "^1.0.1", - "gopd": "^1.2.0", - "set-function-name": "^2.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -6196,13 +4094,12 @@ } }, "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/resolve-pkg-maps": { @@ -6248,26 +4145,6 @@ "queue-microtask": "^1.2.2" } }, - "node_modules/safe-array-concat": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", - "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "get-intrinsic": "^1.2.6", - "has-symbols": "^1.1.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">=0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -6288,41 +4165,6 @@ ], "license": "MIT" }, - "node_modules/safe-push-apply": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", - "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "es-errors": "^1.3.0", - "isarray": "^2.0.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/safe-regex-test": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", - "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "es-errors": "^1.3.0", - "is-regex": "^1.2.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/safe-stable-stringify": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", @@ -6418,55 +4260,6 @@ "node": ">= 0.8.0" } }, - "node_modules/set-function-length": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz", - "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-function-name": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", - "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-data-property": "^1.1.4", - "es-errors": "^1.3.0", - "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/set-proto": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", - "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "dunder-proto": "^1.0.1", - "es-errors": "^1.3.0", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -6512,29 +4305,6 @@ "@img/sharp-win32-x64": "0.33.5" } }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/side-channel": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", @@ -6801,65 +4571,6 @@ "node": ">=8" } }, - "node_modules/string.prototype.trim": { - "version": "1.2.10", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", - "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-data-property": "^1.1.4", - "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", - "es-object-atoms": "^1.0.0", - "has-property-descriptors": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", - "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "call-bound": "^1.0.2", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", - "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "define-properties": "^1.2.1", - "es-object-atoms": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -6881,19 +4592,6 @@ "node": ">=4" } }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6976,19 +4674,6 @@ "nodetouch": "bin/nodetouch.js" } }, - "node_modules/ts-api-utils": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz", - "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, "node_modules/ts-morph": { "version": "25.0.0", "resolved": "https://registry.npmjs.org/ts-morph/-/ts-morph-25.0.0.tgz", @@ -7082,19 +4767,6 @@ "fsevents": "~2.3.3" } }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, "node_modules/type-fest": { "version": "4.34.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.34.1.tgz", @@ -7120,84 +4792,6 @@ "node": ">= 0.6" } }, - "node_modules/typed-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", - "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "es-errors": "^1.3.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/typed-array-byte-length": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", - "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.14" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-byte-offset": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", - "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-proto": "^1.2.0", - "is-typed-array": "^1.1.15", - "reflect.getprototypeof": "^1.0.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/typed-array-length": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", - "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.7", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "is-typed-array": "^1.1.13", - "possible-typed-array-names": "^1.0.0", - "reflect.getprototypeof": "^1.0.6" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", @@ -7227,25 +4821,6 @@ "node": ">=12" } }, - "node_modules/unbox-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", - "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.3", - "has-bigints": "^1.0.2", - "has-symbols": "^1.1.0", - "which-boxed-primitive": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/undefsafe": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", @@ -7336,120 +4911,6 @@ "node": ">= 0.8" } }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", - "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.1", - "is-number-object": "^1.1.1", - "is-string": "^1.1.1", - "is-symbol": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-builtin-type": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", - "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "call-bound": "^1.0.2", - "function.prototype.name": "^1.1.6", - "has-tostringtag": "^1.0.2", - "is-async-function": "^2.0.0", - "is-date-object": "^1.1.0", - "is-finalizationregistry": "^1.1.0", - "is-generator-function": "^1.0.10", - "is-regex": "^1.2.1", - "is-weakref": "^1.0.2", - "isarray": "^2.0.5", - "which-boxed-primitive": "^1.1.0", - "which-collection": "^1.0.2", - "which-typed-array": "^1.1.16" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", - "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-map": "^2.0.3", - "is-set": "^2.0.3", - "is-weakmap": "^2.0.2", - "is-weakset": "^2.0.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.18", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", - "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.8", - "call-bound": "^1.0.3", - "for-each": "^0.3.3", - "gopd": "^1.2.0", - "has-tostringtag": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", @@ -7539,23 +5000,10 @@ "node": ">=6" } }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/zod": { - "version": "3.24.1", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", - "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", + "version": "3.24.2", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.2.tgz", + "integrity": "sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" diff --git a/package.json b/package.json index 8e379cb..ff7c641 100644 --- a/package.json +++ b/package.json @@ -4,23 +4,7 @@ "scripts": { "start": "tsx src/server.ts", "dev": "nodemon --exec tsx src/server.ts", - "format": "prettier --write src/", - "lint": "eslint .", - "lint:fix": "eslint . --fix" - }, - "imports": { - "#root/*": "./src/*.js", - "@/application/*": "./src/application/*.js", - "@/commands/*": "./src/commands/*.js", - "@/entities/*": "./src/entities/*.js", - "@/controllers/*": "./src/controllers/*.js", - "@/jobs/*": "./src/jobs/*.js", - "@/managers/*": "./src/managers/*.js", - "@/middleware/*": "./src/middleware/*.js", - "@/models/*": "./src/models/*.js", - "@/repositories/*": "./src/repositories/*.js", - "@/services/*": "./src/services/*.js", - "@/events/*": "./src/events/*.js" + "format": "prettier --write src/" }, "dependencies": { "@mikro-orm/cli": "^6.4.2", @@ -55,13 +39,9 @@ "@types/jsonwebtoken": "^9.0.6", "@types/node": "^20.14.11", "@types/nodemailer": "^6.4.16", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", - "eslint": "^9.17.0", - "eslint-config-prettier": "^9.1.0", - "eslint-plugin-import": "^2.31.0", "nodemon": "^3.1.4", "prettier": "^3.3.3", + "@ianvs/prettier-plugin-sort-imports": "^4.4.0", "tsx": "^4.19.2" } } diff --git a/src/application/base/baseCommand.ts b/src/application/base/baseCommand.ts index f7c0bab..2c933e9 100644 --- a/src/application/base/baseCommand.ts +++ b/src/application/base/baseCommand.ts @@ -1,6 +1,5 @@ -import { Server } from 'socket.io' - import Logger, { LoggerType } from '@/application/logger' +import { Server } from 'socket.io' export abstract class BaseCommand { protected readonly logger = Logger.type(LoggerType.COMMAND) diff --git a/src/application/base/baseController.ts b/src/application/base/baseController.ts index db55f09..90d62b9 100644 --- a/src/application/base/baseController.ts +++ b/src/application/base/baseController.ts @@ -1,8 +1,6 @@ import fs from 'fs' - -import type { Response } from 'express' - import Logger, { LoggerType } from '@/application/logger' +import type { Response } from 'express' export abstract class BaseController { protected readonly logger = Logger.type(LoggerType.HTTP) diff --git a/src/application/base/baseEntity.ts b/src/application/base/baseEntity.ts index 05d28df..3e9da78 100644 --- a/src/application/base/baseEntity.ts +++ b/src/application/base/baseEntity.ts @@ -1,7 +1,6 @@ -import { EntityManager } from '@mikro-orm/core' - import Database from '@/application/database' import Logger, { LoggerType } from '@/application/logger' +import { EntityManager } from '@mikro-orm/core' export abstract class BaseEntity { protected readonly logger = Logger.type(LoggerType.ENTITY) diff --git a/src/application/base/baseEvent.ts b/src/application/base/baseEvent.ts index ef228f2..e24ade1 100644 --- a/src/application/base/baseEvent.ts +++ b/src/application/base/baseEvent.ts @@ -1,11 +1,9 @@ -import { Server } from 'socket.io' - -import type { TSocket } from '@/application/types' - import { SocketEvent } from '@/application/enums' import Logger, { LoggerType } from '@/application/logger' +import type { TSocket } from '@/application/types' import { Character } from '@/entities/character' import CharacterRepository from '@/repositories/characterRepository' +import { Server } from 'socket.io' export abstract class BaseEvent { protected readonly logger = Logger.type(LoggerType.GAME) @@ -31,7 +29,7 @@ export abstract class BaseEvent { protected async getCharacter(): Promise { const characterRepository = new CharacterRepository() - return characterRepository.getById(this.socket.characterId!) + return characterRepository.getById(this.socket.characterId) } protected async isCharacterGM(): Promise { diff --git a/src/application/base/baseRepository.ts b/src/application/base/baseRepository.ts index f9f2296..4ba4232 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 '@/application/database' import Logger, { LoggerType } from '@/application/logger' +import { EntityManager } from '@mikro-orm/core' export abstract class BaseRepository { protected readonly logger = Logger.type(LoggerType.REPOSITORY) diff --git a/src/application/console/commandRegistry.ts b/src/application/console/commandRegistry.ts index 7e102e5..d36f116 100644 --- a/src/application/console/commandRegistry.ts +++ b/src/application/console/commandRegistry.ts @@ -1,11 +1,9 @@ import * as fs from 'fs' import * as path from 'path' import { pathToFileURL } from 'url' - -import type { Command } from '@/application/types' - import Logger, { LoggerType } from '@/application/logger' import Storage from '@/application/storage' +import type { Command } from '@/application/types' export class CommandRegistry { private readonly commands: Map = new Map() diff --git a/src/application/console/logReader.ts b/src/application/console/logReader.ts index 9b26ea6..0be1f03 100644 --- a/src/application/console/logReader.ts +++ b/src/application/console/logReader.ts @@ -1,6 +1,5 @@ import * as fs from 'fs' import * as path from 'path' - import Logger, { LoggerType } from '@/application/logger' export class LogReader { diff --git a/src/application/database.ts b/src/application/database.ts index e500c89..5c11f7f 100644 --- a/src/application/database.ts +++ b/src/application/database.ts @@ -1,8 +1,8 @@ -import { MikroORM } from '@mikro-orm/mariadb' // import { MikroORM } from '@mikro-orm/mysql' import Logger, { LoggerType } from '@/application/logger' import config from '@/root/mikro-orm.config' +import { MikroORM } from '@mikro-orm/mariadb' class Database { private static orm: MikroORM diff --git a/src/application/logger.ts b/src/application/logger.ts index 9c6c15d..0836282 100644 --- a/src/application/logger.ts +++ b/src/application/logger.ts @@ -1,4 +1,5 @@ import pino from 'pino' + const logger = pino.pino export enum LoggerType { diff --git a/src/application/storage.ts b/src/application/storage.ts index 46ef735..92424a2 100644 --- a/src/application/storage.ts +++ b/src/application/storage.ts @@ -1,6 +1,5 @@ import fs from 'fs' import path from 'path' - import config from '@/application/config' class Storage { diff --git a/src/application/types.ts b/src/application/types.ts index 5feba47..4efd08a 100644 --- a/src/application/types.ts +++ b/src/application/types.ts @@ -1,8 +1,7 @@ -import { Server, Socket } from 'socket.io' - import { Character } from '@/entities/character' import { MapEventTile } from '@/entities/mapEventTile' import { MapEventTileTeleport } from '@/entities/mapEventTileTeleport' +import { Server, Socket } from 'socket.io' export type UUID = `${string}-${string}-${string}-${string}-${string}` diff --git a/src/commands/alert.ts b/src/commands/alert.ts index 8d1cdd9..d368a27 100644 --- a/src/commands/alert.ts +++ b/src/commands/alert.ts @@ -1,7 +1,6 @@ -import { Server } from 'socket.io' - import { BaseCommand } from '@/application/base/baseCommand' import { SocketEvent } from '@/application/enums' +import { Server } from 'socket.io' type CommandInput = string[] diff --git a/src/commands/init.ts b/src/commands/init.ts index ec2a22d..fc0495e 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -1,12 +1,8 @@ import fs from 'fs' - -import sharp from 'sharp' - -import type { UUID } from '@/application/types' - import { BaseCommand } from '@/application/base/baseCommand' import { CharacterGender, CharacterRace } from '@/application/enums' import Storage from '@/application/storage' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' import { CharacterHair } from '@/entities/characterHair' import { CharacterType } from '@/entities/characterType' @@ -20,6 +16,7 @@ import { User } from '@/entities/user' import CharacterHairRepository from '@/repositories/characterHairRepository' import CharacterTypeRepository from '@/repositories/characterTypeRepository' import MapRepository from '@/repositories/mapRepository' +import sharp from 'sharp' // @TODO : Replace this with seeding // https://mikro-orm.io/docs/seeding @@ -273,14 +270,7 @@ export default class InitCommand extends BaseCommand { .save() const characterType = new CharacterType() - await characterType - .setId('75b70c78-17f0-44c0-a4fa-15043cb95be0') - .setName('New character type') - .setGender(CharacterGender.MALE) - .setRace(CharacterRace.HUMAN) - .setIsSelectable(true) - .setSprite(characterSprite) - .save() + await characterType.setId('75b70c78-17f0-44c0-a4fa-15043cb95be0').setName('New character type').setGender(CharacterGender.MALE).setRace(CharacterRace.HUMAN).setIsSelectable(true).setSprite(characterSprite).save() } private async createCharacterHair(): Promise { @@ -355,7 +345,7 @@ export default class InitCommand extends BaseCommand { .setUser(user) .setName('root') .setRole('gm') - .setMap((await this.mapRepository.getFirst())!) + .setMap(await this.mapRepository.getFirst()) .setCharacterType(await this.characterTypeRepository.getFirst()) .setCharacterHair(await this.characterHairRepository.getFirst()) .save() diff --git a/src/commands/tiles.ts b/src/commands/tiles.ts index fc3aebb..b8fc013 100644 --- a/src/commands/tiles.ts +++ b/src/commands/tiles.ts @@ -1,9 +1,7 @@ import fs from 'fs' - -import sharp from 'sharp' - import { BaseCommand } from '@/application/base/baseCommand' import Storage from '@/application/storage' +import sharp from 'sharp' export default class TilesCommand extends BaseCommand { public async execute(): Promise { diff --git a/src/controllers/auth.ts b/src/controllers/auth.ts index 9e39a07..f18bae6 100644 --- a/src/controllers/auth.ts +++ b/src/controllers/auth.ts @@ -1,11 +1,9 @@ -import jwt from 'jsonwebtoken' - -import type { Request, Response } from 'express' - import { BaseController } from '@/application/base/baseController' import config from '@/application/config' -import { loginAccountSchema, registerAccountSchema, resetPasswordSchema, newPasswordSchema } from '@/application/zodTypes' +import { loginAccountSchema, newPasswordSchema, registerAccountSchema, resetPasswordSchema } from '@/application/zodTypes' import UserService from '@/services/userService' +import type { Request, Response } from 'express' +import jwt from 'jsonwebtoken' export class AuthController extends BaseController { /** diff --git a/src/controllers/avatar.ts b/src/controllers/avatar.ts index 1f3028c..803d607 100644 --- a/src/controllers/avatar.ts +++ b/src/controllers/avatar.ts @@ -1,15 +1,12 @@ import fs from 'fs' - -import sharp from 'sharp' - -import type { UUID } from '@/application/types' -import type { Request, Response } from 'express' - import { BaseController } from '@/application/base/baseController' import Storage from '@/application/storage' +import type { UUID } from '@/application/types' import CharacterHairRepository from '@/repositories/characterHairRepository' import CharacterRepository from '@/repositories/characterRepository' import CharacterTypeRepository from '@/repositories/characterTypeRepository' +import type { Request, Response } from 'express' +import sharp from 'sharp' interface AvatarOptions { characterTypeId: UUID diff --git a/src/controllers/cache.ts b/src/controllers/cache.ts index 8161a1c..d8851ba 100644 --- a/src/controllers/cache.ts +++ b/src/controllers/cache.ts @@ -1,5 +1,3 @@ -import type { Request, Response } from 'express' - import { BaseController } from '@/application/base/baseController' import CharacterHairRepository from '@/repositories/characterHairRepository' import CharacterTypeRepository from '@/repositories/characterTypeRepository' @@ -7,6 +5,7 @@ import MapObjectRepository from '@/repositories/mapObjectRepository' import MapRepository from '@/repositories/mapRepository' import SpriteRepository from '@/repositories/spriteRepository' import TileRepository from '@/repositories/tileRepository' +import type { Request, Response } from 'express' export class CacheController extends BaseController { /** diff --git a/src/controllers/textures.ts b/src/controllers/textures.ts index 6dc4dbf..212050d 100644 --- a/src/controllers/textures.ts +++ b/src/controllers/textures.ts @@ -1,7 +1,6 @@ -import type { Request, Response } from 'express' - import { BaseController } from '@/application/base/baseController' import Storage from '@/application/storage' +import type { Request, Response } from 'express' export class TexturesController extends BaseController { /** diff --git a/src/entities/base/character.ts b/src/entities/base/character.ts index 54af787..5733d21 100644 --- a/src/entities/base/character.ts +++ b/src/entities/base/character.ts @@ -1,7 +1,5 @@ import { randomUUID } from 'node:crypto' - -import { Collection, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { CharacterEquipment } from '@/entities/characterEquipment' import type { CharacterHair } from '@/entities/characterHair' @@ -10,8 +8,7 @@ import type { CharacterType } from '@/entities/characterType' import type { Chat } from '@/entities/chat' import type { Map } from '@/entities/map' import type { User } from '@/entities/user' - -import { BaseEntity } from '@/application/base/baseEntity' +import { Collection, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' export class BaseCharacter extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/characterEquipment.ts b/src/entities/base/characterEquipment.ts index 5590b85..ab17542 100644 --- a/src/entities/base/characterEquipment.ts +++ b/src/entities/base/characterEquipment.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Enum, ManyToOne, PrimaryKey } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' +import { CharacterEquipmentSlotType } from '@/application/enums' import type { UUID } from '@/application/types' import type { Character } from '@/entities/character' import type { CharacterItem } from '@/entities/characterItem' - -import { BaseEntity } from '@/application/base/baseEntity' -import { CharacterEquipmentSlotType } from '@/application/enums' +import { Enum, ManyToOne, PrimaryKey } from '@mikro-orm/core' export class BaseCharacterEquipment extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/characterHair.ts b/src/entities/base/characterHair.ts index 2b9e63a..b257cae 100644 --- a/src/entities/base/characterHair.ts +++ b/src/entities/base/characterHair.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' import { CharacterGender } from '@/application/enums' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' import { Sprite } from '@/entities/sprite' +import { Collection, Entity, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' export class BaseCharacterHair extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/characterItem.ts b/src/entities/base/characterItem.ts index c8f5f9c..63ba4a5 100644 --- a/src/entities/base/characterItem.ts +++ b/src/entities/base/characterItem.ts @@ -1,12 +1,9 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Character } from '@/entities/character' import type { Item } from '@/entities/item' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BaseCharacterItem extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/characterType.ts b/src/entities/base/characterType.ts index d97bb6c..7d095fd 100644 --- a/src/entities/base/characterType.ts +++ b/src/entities/base/characterType.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' import { CharacterGender, CharacterRace } from '@/application/enums' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' import { Sprite } from '@/entities/sprite' +import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' export class BaseCharacterType extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/chat.ts b/src/entities/base/chat.ts index 6e60b13..934542e 100644 --- a/src/entities/base/chat.ts +++ b/src/entities/base/chat.ts @@ -1,12 +1,9 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Character } from '@/entities/character' import type { Map } from '@/entities/map' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BaseChat extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/item.ts b/src/entities/base/item.ts index 7db15b1..8e837b7 100644 --- a/src/entities/base/item.ts +++ b/src/entities/base/item.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' -import { ItemType, ItemRarity } from '@/application/enums' +import { ItemRarity, ItemType } from '@/application/enums' +import type { UUID } from '@/application/types' import { CharacterItem } from '@/entities/characterItem' import { Sprite } from '@/entities/sprite' +import { Collection, Entity, Enum, ManyToOne, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' export class BaseItem extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/map.ts b/src/entities/base/map.ts index 473bd68..d40431b 100644 --- a/src/entities/base/map.ts +++ b/src/entities/base/map.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Collection, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { MapEffect } from '@/entities/mapEffect' import type { MapEventTile } from '@/entities/mapEventTile' import type { PlacedMapObject } from '@/entities/placedMapObject' - -import { BaseEntity } from '@/application/base/baseEntity' +import { Collection, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' export class BaseMap extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/mapEffect.ts b/src/entities/base/mapEffect.ts index f8cdada..c14829b 100644 --- a/src/entities/base/mapEffect.ts +++ b/src/entities/base/mapEffect.ts @@ -1,11 +1,8 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Map } from '@/entities/map' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BaseMapEffect extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/mapEventTile.ts b/src/entities/base/mapEventTile.ts index 8f8956e..afc8e70 100644 --- a/src/entities/base/mapEventTile.ts +++ b/src/entities/base/mapEventTile.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Enum, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' +import { MapEventTileType } from '@/application/enums' import type { UUID } from '@/application/types' import type { Map } from '@/entities/map' import type { MapEventTileTeleport } from '@/entities/mapEventTileTeleport' - -import { BaseEntity } from '@/application/base/baseEntity' -import { MapEventTileType } from '@/application/enums' +import { Enum, ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BaseMapEventTile extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/mapEventTileTeleport.ts b/src/entities/base/mapEventTileTeleport.ts index 71932ad..d330459 100644 --- a/src/entities/base/mapEventTileTeleport.ts +++ b/src/entities/base/mapEventTileTeleport.ts @@ -1,12 +1,9 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Map } from '@/entities/map' import type { MapEventTile } from '@/entities/mapEventTile' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, OneToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BaseMapEventTileTeleport extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/mapObject.ts b/src/entities/base/mapObject.ts index 902e881..647f0d7 100644 --- a/src/entities/base/mapObject.ts +++ b/src/entities/base/mapObject.ts @@ -1,10 +1,7 @@ import { randomUUID } from 'node:crypto' - -import { Entity, PrimaryKey, Property } from '@mikro-orm/core' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' +import type { UUID } from '@/application/types' +import { Entity, PrimaryKey, Property } from '@mikro-orm/core' export class BaseMapObject extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/passwordResetToken.ts b/src/entities/base/passwordResetToken.ts index ecc7a1d..2af59f7 100644 --- a/src/entities/base/passwordResetToken.ts +++ b/src/entities/base/passwordResetToken.ts @@ -1,11 +1,8 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { User } from '@/entities/user' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BasePasswordResetToken extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/placedMapObject.ts b/src/entities/base/placedMapObject.ts index d61ea3b..3079a4b 100644 --- a/src/entities/base/placedMapObject.ts +++ b/src/entities/base/placedMapObject.ts @@ -1,12 +1,9 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Map } from '@/entities/map' import type { MapObject } from '@/entities/mapObject' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' export class BasePlacedMapObject extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/sprite.ts b/src/entities/base/sprite.ts index 1f6093c..2ef9e54 100644 --- a/src/entities/base/sprite.ts +++ b/src/entities/base/sprite.ts @@ -1,11 +1,8 @@ import { randomUUID } from 'node:crypto' - -import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' +import type { UUID } from '@/application/types' import { SpriteAction } from '@/entities/spriteAction' +import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' export class BaseSprite extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/spriteAction.ts b/src/entities/base/spriteAction.ts index 9f4448a..a16e9bf 100644 --- a/src/entities/base/spriteAction.ts +++ b/src/entities/base/spriteAction.ts @@ -1,11 +1,8 @@ import { randomUUID } from 'node:crypto' - -import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' - +import { BaseEntity } from '@/application/base/baseEntity' import type { UUID } from '@/application/types' import type { Sprite } from '@/entities/sprite' - -import { BaseEntity } from '@/application/base/baseEntity' +import { ManyToOne, PrimaryKey, Property } from '@mikro-orm/core' export interface SpriteImage { url: string diff --git a/src/entities/base/tile.ts b/src/entities/base/tile.ts index 16e525b..044fcd7 100644 --- a/src/entities/base/tile.ts +++ b/src/entities/base/tile.ts @@ -1,10 +1,7 @@ import { randomUUID } from 'node:crypto' - -import { Entity, PrimaryKey, Property } from '@mikro-orm/core' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' +import type { UUID } from '@/application/types' +import { Entity, PrimaryKey, Property } from '@mikro-orm/core' export class BaseTile extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/user.ts b/src/entities/base/user.ts index 864204a..58f3c9f 100644 --- a/src/entities/base/user.ts +++ b/src/entities/base/user.ts @@ -1,13 +1,10 @@ import { randomUUID } from 'node:crypto' - -import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' -import bcrypt from 'bcryptjs' - -import type { UUID } from '@/application/types' - import { BaseEntity } from '@/application/base/baseEntity' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' import { PasswordResetToken } from '@/entities/passwordResetToken' +import { Collection, Entity, OneToMany, PrimaryKey, Property } from '@mikro-orm/core' +import bcrypt from 'bcryptjs' export class BaseUser extends BaseEntity { @PrimaryKey() diff --git a/src/entities/base/world.ts b/src/entities/base/world.ts index 5a30f74..a75963e 100644 --- a/src/entities/base/world.ts +++ b/src/entities/base/world.ts @@ -1,6 +1,5 @@ -import { Entity, PrimaryKey, Property } from '@mikro-orm/core' - import { BaseEntity } from '@/application/base/baseEntity' +import { Entity, PrimaryKey, Property } from '@mikro-orm/core' export class BaseWorld extends BaseEntity { @PrimaryKey() diff --git a/src/entities/character.ts b/src/entities/character.ts index b7a1268..cd4ae50 100644 --- a/src/entities/character.ts +++ b/src/entities/character.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseCharacter } from '@/entities/base/character' +import { Entity } from '@mikro-orm/core' @Entity() export class Character extends BaseCharacter {} diff --git a/src/entities/characterEquipment.ts b/src/entities/characterEquipment.ts index 8edc3f6..4535a88 100644 --- a/src/entities/characterEquipment.ts +++ b/src/entities/characterEquipment.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseCharacterEquipment } from '@/entities/base/characterEquipment' +import { Entity } from '@mikro-orm/core' @Entity() export class CharacterEquipment extends BaseCharacterEquipment {} diff --git a/src/entities/characterHair.ts b/src/entities/characterHair.ts index 660ee64..a8c512e 100644 --- a/src/entities/characterHair.ts +++ b/src/entities/characterHair.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseCharacterHair } from '@/entities/base/characterHair' +import { Entity } from '@mikro-orm/core' @Entity() export class CharacterHair extends BaseCharacterHair { diff --git a/src/entities/characterItem.ts b/src/entities/characterItem.ts index 10e7f26..0423daa 100644 --- a/src/entities/characterItem.ts +++ b/src/entities/characterItem.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseCharacterItem } from '@/entities/base/characterItem' +import { Entity } from '@mikro-orm/core' @Entity() export class CharacterItem extends BaseCharacterItem {} diff --git a/src/entities/characterType.ts b/src/entities/characterType.ts index b43909a..848193d 100644 --- a/src/entities/characterType.ts +++ b/src/entities/characterType.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseCharacterType } from '@/entities/base/characterType' +import { Entity } from '@mikro-orm/core' @Entity() export class CharacterType extends BaseCharacterType { diff --git a/src/entities/chat.ts b/src/entities/chat.ts index 4bc9414..653fc37 100644 --- a/src/entities/chat.ts +++ b/src/entities/chat.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseChat } from '@/entities/base/chat' +import { Entity } from '@mikro-orm/core' @Entity() export class Chat extends BaseChat {} diff --git a/src/entities/item.ts b/src/entities/item.ts index aa62eb6..c298fc2 100644 --- a/src/entities/item.ts +++ b/src/entities/item.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseItem } from '@/entities/base/item' +import { Entity } from '@mikro-orm/core' @Entity() export class Item extends BaseItem {} diff --git a/src/entities/map.ts b/src/entities/map.ts index 7e37e8c..e7f6f4e 100644 --- a/src/entities/map.ts +++ b/src/entities/map.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseMap } from '@/entities/base/map' +import { Entity } from '@mikro-orm/core' export type MapCacheT = ReturnType | {} diff --git a/src/entities/mapEffect.ts b/src/entities/mapEffect.ts index 45c759a..bd92047 100644 --- a/src/entities/mapEffect.ts +++ b/src/entities/mapEffect.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseMapEffect } from '@/entities/base/mapEffect' +import { Entity } from '@mikro-orm/core' @Entity() export class MapEffect extends BaseMapEffect {} diff --git a/src/entities/mapEventTile.ts b/src/entities/mapEventTile.ts index 647fdce..fcc2495 100644 --- a/src/entities/mapEventTile.ts +++ b/src/entities/mapEventTile.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseMapEventTile } from '@/entities/base/mapEventTile' +import { Entity } from '@mikro-orm/core' @Entity() export class MapEventTile extends BaseMapEventTile {} diff --git a/src/entities/mapEventTileTeleport.ts b/src/entities/mapEventTileTeleport.ts index 14229b3..a7d2889 100644 --- a/src/entities/mapEventTileTeleport.ts +++ b/src/entities/mapEventTileTeleport.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseMapEventTileTeleport } from '@/entities/base/mapEventTileTeleport' +import { Entity } from '@mikro-orm/core' @Entity() export class MapEventTileTeleport extends BaseMapEventTileTeleport {} diff --git a/src/entities/mapObject.ts b/src/entities/mapObject.ts index 370958f..14e27a8 100644 --- a/src/entities/mapObject.ts +++ b/src/entities/mapObject.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseMapObject } from '@/entities/base/mapObject' +import { Entity } from '@mikro-orm/core' @Entity() export class MapObject extends BaseMapObject { diff --git a/src/entities/passwordResetToken.ts b/src/entities/passwordResetToken.ts index 599b91d..5c97270 100644 --- a/src/entities/passwordResetToken.ts +++ b/src/entities/passwordResetToken.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BasePasswordResetToken } from '@/entities/base/passwordResetToken' +import { Entity } from '@mikro-orm/core' @Entity() export class PasswordResetToken extends BasePasswordResetToken {} diff --git a/src/entities/placedMapObject.ts b/src/entities/placedMapObject.ts index 98c3e33..3281af1 100644 --- a/src/entities/placedMapObject.ts +++ b/src/entities/placedMapObject.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BasePlacedMapObject } from '@/entities/base/placedMapObject' +import { Entity } from '@mikro-orm/core' @Entity() export class PlacedMapObject extends BasePlacedMapObject {} diff --git a/src/entities/sprite.ts b/src/entities/sprite.ts index f5c6ec7..869ecd7 100644 --- a/src/entities/sprite.ts +++ b/src/entities/sprite.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseSprite } from '@/entities/base/sprite' +import { Entity } from '@mikro-orm/core' @Entity() export class Sprite extends BaseSprite { diff --git a/src/entities/spriteAction.ts b/src/entities/spriteAction.ts index df5aaa7..d6a460a 100644 --- a/src/entities/spriteAction.ts +++ b/src/entities/spriteAction.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseSpriteAction } from '@/entities/base/spriteAction' +import { Entity } from '@mikro-orm/core' @Entity() export class SpriteAction extends BaseSpriteAction {} diff --git a/src/entities/tile.ts b/src/entities/tile.ts index 79a5b96..fd99a05 100644 --- a/src/entities/tile.ts +++ b/src/entities/tile.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseTile } from '@/entities/base/tile' +import { Entity } from '@mikro-orm/core' @Entity() export class Tile extends BaseTile { diff --git a/src/entities/user.ts b/src/entities/user.ts index 9c72ed8..927449e 100644 --- a/src/entities/user.ts +++ b/src/entities/user.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseUser } from '@/entities/base/user' +import { Entity } from '@mikro-orm/core' @Entity() export class User extends BaseUser {} diff --git a/src/entities/world.ts b/src/entities/world.ts index 5e499c0..c48bc0e 100644 --- a/src/entities/world.ts +++ b/src/entities/world.ts @@ -1,6 +1,5 @@ -import { Entity } from '@mikro-orm/core' - import { BaseWorld } from '@/entities/base/world' +import { Entity } from '@mikro-orm/core' @Entity() export class World extends BaseWorld {} diff --git a/src/events/character/connect.ts b/src/events/character/connect.ts index 4490b6d..49c984e 100644 --- a/src/events/character/connect.ts +++ b/src/events/character/connect.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import MapManager from '@/managers/mapManager' import CharacterHairRepository from '@/repositories/characterHairRepository' import CharacterRepository from '@/repositories/characterRepository' @@ -27,7 +26,7 @@ export default class CharacterConnectEvent extends BaseEvent { return } - const character = await this.characterRepository.getByUserAndId(this.socket.userId!, data.characterId) + const character = await this.characterRepository.getByUserAndId(this.socket.userId, data.characterId) if (!character) { this.emitError('Character not found or does not belong to this user') @@ -63,7 +62,7 @@ export default class CharacterConnectEvent extends BaseEvent { } private async checkForActiveCharacters(): Promise { - const characters = await this.characterRepository.getByUserId(this.socket.userId!) + const characters = await this.characterRepository.getByUserId(this.socket.userId) return characters?.some((char) => MapManager.getCharacterById(char.id)) ?? false } } diff --git a/src/events/character/create.ts b/src/events/character/create.ts index d90a063..e4e9a42 100644 --- a/src/events/character/create.ts +++ b/src/events/character/create.ts @@ -1,5 +1,3 @@ -import { ZodError, z } from 'zod' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import { ZCharacterCreate } from '@/application/zodTypes' @@ -8,6 +6,7 @@ import CharacterRepository from '@/repositories/characterRepository' import CharacterTypeRepository from '@/repositories/characterTypeRepository' import MapRepository from '@/repositories/mapRepository' import UserRepository from '@/repositories/userRepository' +import { z, ZodError } from 'zod' const MAX_CHARACTERS = 4 @@ -33,7 +32,7 @@ export default class CharacterCreateEvent extends BaseEvent { } private async createCharacter(data: z.infer): Promise { - const user = await this.userRepository.getById(this.socket.userId!) + const user = await this.userRepository.getById(this.socket.userId) if (!user) { throw new Error('You are not logged in') } diff --git a/src/events/character/delete.ts b/src/events/character/delete.ts index 76d9dad..7d4cba6 100644 --- a/src/events/character/delete.ts +++ b/src/events/character/delete.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' import CharacterRepository from '@/repositories/characterRepository' @@ -21,8 +20,8 @@ export default class CharacterDeleteEvent extends BaseEvent { private async handleEvent(data: TypePayload, callback: (response: TypeResponse) => void): Promise { try { const characterRepository = new CharacterRepository() - await (await characterRepository.getByUserAndId(this.socket.userId!, data.characterId))?.delete() - const characters: Character[] = await characterRepository.getByUserId(this.socket.userId!) + await (await characterRepository.getByUserAndId(this.socket.userId, data.characterId))?.delete() + const characters: Character[] = await characterRepository.getByUserId(this.socket.userId) this.socket.emit(SocketEvent.CHARACTER_LIST, characters) } catch (error: any) { diff --git a/src/events/character/list.ts b/src/events/character/list.ts index f3b1bce..bc299be 100644 --- a/src/events/character/list.ts +++ b/src/events/character/list.ts @@ -11,7 +11,7 @@ export default class CharacterListEvent extends BaseEvent { private async handleEvent(data: any): Promise { try { const characterRepository = new CharacterRepository() - let characters: Character[] = await characterRepository.getByUserId(this.socket.userId!) + let characters: Character[] = await characterRepository.getByUserId(this.socket.userId) this.socket.emit(SocketEvent.CHARACTER_LIST, characters) } catch (error: any) { diff --git a/src/events/chat/gameMaster/teleportCommand.ts b/src/events/chat/gameMaster/teleportCommand.ts index 3289572..93e73ae 100644 --- a/src/events/chat/gameMaster/teleportCommand.ts +++ b/src/events/chat/gameMaster/teleportCommand.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import MapManager from '@/managers/mapManager' import MapRepository from '@/repositories/mapRepository' import TeleportService from '@/services/characterTeleportService' diff --git a/src/events/chat/message.ts b/src/events/chat/message.ts index 5c3c141..da6abce 100644 --- a/src/events/chat/message.ts +++ b/src/events/chat/message.ts @@ -19,7 +19,7 @@ export default class ChatMessageEvent extends BaseEvent { return callback(false) } - const mapCharacter = MapManager.getCharacterById(this.socket.characterId!) + const mapCharacter = MapManager.getCharacterById(this.socket.characterId) if (!mapCharacter) { this.logger.error('chat:message error', 'Character not found') return callback(false) diff --git a/src/events/disconnect.ts b/src/events/disconnect.ts index 3ba5205..2d109cd 100644 --- a/src/events/disconnect.ts +++ b/src/events/disconnect.ts @@ -16,7 +16,7 @@ export default class DisconnectEvent extends BaseEvent { this.io.emit(SocketEvent.USER_DISCONNECT, this.socket.userId) - const mapCharacter = MapManager.getCharacterById(this.socket.characterId!) + const mapCharacter = MapManager.getCharacterById(this.socket.characterId) if (!mapCharacter) { this.logger.info('User disconnected but had no character set') return diff --git a/src/events/gameMaster/assetManager/characterHair/delete.ts b/src/events/gameMaster/assetManager/characterHair/delete.ts index 225bc3c..5be58d9 100644 --- a/src/events/gameMaster/assetManager/characterHair/delete.ts +++ b/src/events/gameMaster/assetManager/characterHair/delete.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import CharacterHairRepository from '@/repositories/characterHairRepository' interface IPayload { diff --git a/src/events/gameMaster/assetManager/characterHair/update.ts b/src/events/gameMaster/assetManager/characterHair/update.ts index 9ac31be..8b03457 100644 --- a/src/events/gameMaster/assetManager/characterHair/update.ts +++ b/src/events/gameMaster/assetManager/characterHair/update.ts @@ -1,8 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' -import { SocketEvent } from '@/application/enums' -import { CharacterGender } from '@/application/enums' +import { CharacterGender, SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import CharacterHairRepository from '@/repositories/characterHairRepository' import SpriteRepository from '@/repositories/spriteRepository' diff --git a/src/events/gameMaster/assetManager/characterType/delete.ts b/src/events/gameMaster/assetManager/characterType/delete.ts index cb45cf6..2b0bdf7 100644 --- a/src/events/gameMaster/assetManager/characterType/delete.ts +++ b/src/events/gameMaster/assetManager/characterType/delete.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import CharacterTypeRepository from '@/repositories/characterTypeRepository' interface IPayload { diff --git a/src/events/gameMaster/assetManager/characterType/update.ts b/src/events/gameMaster/assetManager/characterType/update.ts index 4144814..7c4a245 100644 --- a/src/events/gameMaster/assetManager/characterType/update.ts +++ b/src/events/gameMaster/assetManager/characterType/update.ts @@ -1,8 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' -import { SocketEvent } from '@/application/enums' -import { CharacterGender, CharacterRace } from '@/application/enums' +import { CharacterGender, CharacterRace, SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import CharacterTypeRepository from '@/repositories/characterTypeRepository' import SpriteRepository from '@/repositories/spriteRepository' diff --git a/src/events/gameMaster/assetManager/item/create.ts b/src/events/gameMaster/assetManager/item/create.ts index b8a84d3..3bad4d5 100644 --- a/src/events/gameMaster/assetManager/item/create.ts +++ b/src/events/gameMaster/assetManager/item/create.ts @@ -1,6 +1,5 @@ import { BaseEvent } from '@/application/base/baseEvent' -import { SocketEvent } from '@/application/enums' -import { ItemRarity, ItemType } from '@/application/enums' +import { ItemRarity, ItemType, SocketEvent } from '@/application/enums' import { Item } from '@/entities/item' import SpriteRepository from '@/repositories/spriteRepository' diff --git a/src/events/gameMaster/assetManager/item/delete.ts b/src/events/gameMaster/assetManager/item/delete.ts index d7e9445..f184452 100644 --- a/src/events/gameMaster/assetManager/item/delete.ts +++ b/src/events/gameMaster/assetManager/item/delete.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import ItemRepository from '@/repositories/itemRepository' interface IPayload { diff --git a/src/events/gameMaster/assetManager/item/update.ts b/src/events/gameMaster/assetManager/item/update.ts index 37df4e3..f9b4983 100644 --- a/src/events/gameMaster/assetManager/item/update.ts +++ b/src/events/gameMaster/assetManager/item/update.ts @@ -1,8 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' -import { SocketEvent } from '@/application/enums' -import { ItemType, ItemRarity } from '@/application/enums' +import { ItemRarity, ItemType, SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import ItemRepository from '@/repositories/itemRepository' import SpriteRepository from '@/repositories/spriteRepository' diff --git a/src/events/gameMaster/assetManager/mapObject/remove.ts b/src/events/gameMaster/assetManager/mapObject/remove.ts index b632526..b83fe22 100644 --- a/src/events/gameMaster/assetManager/mapObject/remove.ts +++ b/src/events/gameMaster/assetManager/mapObject/remove.ts @@ -1,10 +1,8 @@ import fs from 'fs' - -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import Storage from '@/application/storage' +import type { UUID } from '@/application/types' import MapObjectRepository from '@/repositories/mapObjectRepository' interface IPayload { diff --git a/src/events/gameMaster/assetManager/mapObject/update.ts b/src/events/gameMaster/assetManager/mapObject/update.ts index 8023619..77d800e 100644 --- a/src/events/gameMaster/assetManager/mapObject/update.ts +++ b/src/events/gameMaster/assetManager/mapObject/update.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import MapObjectRepository from '@/repositories/mapObjectRepository' type Payload = { diff --git a/src/events/gameMaster/assetManager/mapObject/upload.ts b/src/events/gameMaster/assetManager/mapObject/upload.ts index 4fca577..7451ad8 100644 --- a/src/events/gameMaster/assetManager/mapObject/upload.ts +++ b/src/events/gameMaster/assetManager/mapObject/upload.ts @@ -1,12 +1,10 @@ import fs from 'fs/promises' import { writeFile } from 'node:fs/promises' - -import sharp from 'sharp' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import Storage from '@/application/storage' import { MapObject } from '@/entities/mapObject' +import sharp from 'sharp' interface IObjectData { [key: string]: Buffer diff --git a/src/events/gameMaster/assetManager/sprite/copy.ts b/src/events/gameMaster/assetManager/sprite/copy.ts index 5a32170..128a083 100644 --- a/src/events/gameMaster/assetManager/sprite/copy.ts +++ b/src/events/gameMaster/assetManager/sprite/copy.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import { Sprite } from '@/entities/sprite' import SpriteRepository from '@/repositories/spriteRepository' diff --git a/src/events/gameMaster/assetManager/sprite/create.ts b/src/events/gameMaster/assetManager/sprite/create.ts index 344ca44..f70ce2b 100644 --- a/src/events/gameMaster/assetManager/sprite/create.ts +++ b/src/events/gameMaster/assetManager/sprite/create.ts @@ -1,5 +1,4 @@ import fs from 'fs/promises' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import Storage from '@/application/storage' diff --git a/src/events/gameMaster/assetManager/sprite/delete.ts b/src/events/gameMaster/assetManager/sprite/delete.ts index e85cfac..24d53b0 100644 --- a/src/events/gameMaster/assetManager/sprite/delete.ts +++ b/src/events/gameMaster/assetManager/sprite/delete.ts @@ -1,10 +1,8 @@ import fs from 'fs' - -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import Storage from '@/application/storage' +import type { UUID } from '@/application/types' import SpriteRepository from '@/repositories/spriteRepository' type Payload = { diff --git a/src/events/gameMaster/assetManager/sprite/update.ts b/src/events/gameMaster/assetManager/sprite/update.ts index e30da87..7bac5cf 100644 --- a/src/events/gameMaster/assetManager/sprite/update.ts +++ b/src/events/gameMaster/assetManager/sprite/update.ts @@ -1,13 +1,10 @@ import fs from 'fs' - -import sharp from 'sharp' - -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import { SpriteAction } from '@/entities/spriteAction' import SpriteRepository from '@/repositories/spriteRepository' +import sharp from 'sharp' interface SpriteImage { url: string diff --git a/src/events/gameMaster/assetManager/tile/delete.ts b/src/events/gameMaster/assetManager/tile/delete.ts index 215b200..12922fc 100644 --- a/src/events/gameMaster/assetManager/tile/delete.ts +++ b/src/events/gameMaster/assetManager/tile/delete.ts @@ -1,10 +1,8 @@ import fs from 'fs/promises' - -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import Storage from '@/application/storage' +import type { UUID } from '@/application/types' import TileRepository from '@/repositories/tileRepository' type Payload = { diff --git a/src/events/gameMaster/assetManager/tile/update.ts b/src/events/gameMaster/assetManager/tile/update.ts index 96649af..5099cd5 100644 --- a/src/events/gameMaster/assetManager/tile/update.ts +++ b/src/events/gameMaster/assetManager/tile/update.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import TileRepository from '@/repositories/tileRepository' type Payload = { diff --git a/src/events/gameMaster/assetManager/tile/upload.ts b/src/events/gameMaster/assetManager/tile/upload.ts index 1f21cb0..21d9901 100644 --- a/src/events/gameMaster/assetManager/tile/upload.ts +++ b/src/events/gameMaster/assetManager/tile/upload.ts @@ -1,6 +1,5 @@ import fs from 'fs/promises' import { writeFile } from 'node:fs/promises' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' import Storage from '@/application/storage' diff --git a/src/events/gameMaster/mapEditor/create.ts b/src/events/gameMaster/mapEditor/create.ts index 603a4a1..fdaad24 100644 --- a/src/events/gameMaster/mapEditor/create.ts +++ b/src/events/gameMaster/mapEditor/create.ts @@ -1,7 +1,6 @@ -import type { MapCacheT } from '@/entities/map' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { MapCacheT } from '@/entities/map' import { Map } from '@/entities/map' type Payload = { diff --git a/src/events/gameMaster/mapEditor/delete.ts b/src/events/gameMaster/mapEditor/delete.ts index f9612a8..2520fd0 100644 --- a/src/events/gameMaster/mapEditor/delete.ts +++ b/src/events/gameMaster/mapEditor/delete.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import MapRepository from '@/repositories/mapRepository' type Payload = { diff --git a/src/events/gameMaster/mapEditor/request.ts b/src/events/gameMaster/mapEditor/request.ts index bf66388..bdb7154 100644 --- a/src/events/gameMaster/mapEditor/request.ts +++ b/src/events/gameMaster/mapEditor/request.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import { Map } from '@/entities/map' import MapRepository from '@/repositories/mapRepository' diff --git a/src/events/gameMaster/mapEditor/update.ts b/src/events/gameMaster/mapEditor/update.ts index c170f1c..5744d7d 100644 --- a/src/events/gameMaster/mapEditor/update.ts +++ b/src/events/gameMaster/mapEditor/update.ts @@ -1,8 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' -import { SocketEvent } from '@/application/enums' -import { MapEventTileType } from '@/application/enums' +import { MapEventTileType, SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import { Map } from '@/entities/map' import { MapEffect } from '@/entities/mapEffect' import { MapEventTile } from '@/entities/mapEventTile' @@ -87,7 +85,7 @@ export default class MapUpdateEvent extends BaseEvent { if (tile.teleport) { const teleport = new MapEventTileTeleport() - .setToMap((await mapRepository.getById(tile.teleport.toMap.id))!) + .setToMap(await mapRepository.getById(tile.teleport.toMap.id)) .setToPositionX(tile.teleport.toPositionX) .setToPositionY(tile.teleport.toPositionY) .setToRotation(tile.teleport.toRotation) @@ -117,7 +115,7 @@ export default class MapUpdateEvent extends BaseEvent { // Reload map from database to get fresh data map = await mapRepository.getById(data.mapId) - await mapRepository.getEntityManager().populate(map!, mapRepository.POPULATE_MAP_EDITOR as any) + await mapRepository.getEntityManager().populate(map, mapRepository.POPULATE_MAP_EDITOR as any) if (!map) { this.logger.info(`User ${character!.getId()} tried to update map ${data.mapId} but it does not exist after update.`) diff --git a/src/events/map/characterAttack.ts b/src/events/map/characterAttack.ts index ae8ffeb..111b228 100644 --- a/src/events/map/characterAttack.ts +++ b/src/events/map/characterAttack.ts @@ -12,7 +12,7 @@ export default class CharacterMove extends BaseEvent { private async handleEvent(data: any, callback: (response: any) => void): Promise { try { console.log('attack', this.socket.characterId) - await this.characterAttackService.attack(this.socket.characterId!) + await this.characterAttackService.attack(this.socket.characterId) } catch (error) { this.logger.error('map:character:attack error', error) return callback(false) diff --git a/src/events/map/characterMove.ts b/src/events/map/characterMove.ts index c2e3923..ec1649d 100644 --- a/src/events/map/characterMove.ts +++ b/src/events/map/characterMove.ts @@ -1,7 +1,6 @@ -import type { MapEventTileWithTeleport } from '@/application/types' - import { BaseEvent } from '@/application/base/baseEvent' import { SocketEvent } from '@/application/enums' +import type { MapEventTileWithTeleport } from '@/application/types' import MapManager from '@/managers/mapManager' import MapCharacter from '@/models/mapCharacter' import MapEventTileRepository from '@/repositories/mapEventTileRepository' @@ -17,7 +16,7 @@ export default class CharacterMove extends BaseEvent { } private async handleEvent({ positionX, positionY }: { positionX: number; positionY: number }): Promise { - const mapCharacter = MapManager.getCharacterById(this.socket.characterId!) + const mapCharacter = MapManager.getCharacterById(this.socket.characterId) if (!mapCharacter?.getCharacter()) { this.logger.error('map:character:move error: Character not found or not initialized') return @@ -116,7 +115,7 @@ export default class CharacterMove extends BaseEvent { private async handleTeleportMapEventTile(mapEventTile: MapEventTileWithTeleport): Promise { if (mapEventTile.getTeleport()) { - await TeleportService.teleportCharacter(this.socket.characterId!, { + await TeleportService.teleportCharacter(this.socket.characterId, { targetMapId: mapEventTile.getTeleport()!.getToMap().getId(), targetX: mapEventTile.getTeleport()!.getToPositionX(), targetY: mapEventTile.getTeleport()!.getToPositionY(), diff --git a/src/jobs/someJob.ts b/src/jobs/someJob.ts index 24780f4..8a02011 100644 --- a/src/jobs/someJob.ts +++ b/src/jobs/someJob.ts @@ -1,8 +1,6 @@ -import { Server as SocketServer } from 'socket.io' - -import type { TSocket } from '@/application/types' - import { SocketEvent } from '@/application/enums' +import type { TSocket } from '@/application/types' +import { Server as SocketServer } from 'socket.io' export default class SomeJob { constructor(private params: any) {} diff --git a/src/managers/dateManager.ts b/src/managers/dateManager.ts index b26f78e..c2917e7 100644 --- a/src/managers/dateManager.ts +++ b/src/managers/dateManager.ts @@ -1,10 +1,9 @@ -import { Server } from 'socket.io' - import { SocketEvent } from '@/application/enums' import Logger, { LoggerType } from '@/application/logger' import { World } from '@/entities/world' import SocketManager from '@/managers/socketManager' import WorldRepository from '@/repositories/worldRepository' +import { Server } from 'socket.io' class DateManager { private static readonly CONFIG = { diff --git a/src/managers/httpManager.ts b/src/managers/httpManager.ts index 60807ae..9084990 100644 --- a/src/managers/httpManager.ts +++ b/src/managers/httpManager.ts @@ -1,16 +1,14 @@ import fs from 'fs' import { createServer as httpServer, Server as HTTPServer } from 'http' import { createServer as httpsServer, Server as HTTPSServer } from 'https' - -import cors from 'cors' -import express, { type Application } from 'express' - import config from '@/application/config' import Logger, { LoggerType } from '@/application/logger.js' import { AuthController } from '@/controllers/auth' import { AvatarController } from '@/controllers/avatar' import { CacheController } from '@/controllers/cache' import { TexturesController } from '@/controllers/textures' +import cors from 'cors' +import express, { type Application } from 'express' /** * HTTP manager diff --git a/src/managers/mapManager.ts b/src/managers/mapManager.ts index 90f2eaf..597a066 100644 --- a/src/managers/mapManager.ts +++ b/src/managers/mapManager.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import Logger, { LoggerType } from '@/application/logger' +import type { UUID } from '@/application/types' import { Map } from '@/entities/map' import LoadedMap from '@/models/loadedMap' import MapCharacter from '@/models/mapCharacter' diff --git a/src/managers/queueManager.ts b/src/managers/queueManager.ts index 337a7c7..386004a 100644 --- a/src/managers/queueManager.ts +++ b/src/managers/queueManager.ts @@ -1,15 +1,12 @@ import fs from 'fs' - -import { Job, Queue, Worker } from 'bullmq' -import IORedis from 'ioredis' -import { Server as SocketServer } from 'socket.io' - -import type { TSocket } from '@/application/types' - import config from '@/application/config' import Logger, { LoggerType } from '@/application/logger' import Storage from '@/application/storage' +import type { TSocket } from '@/application/types' import SocketManager from '@/managers/socketManager' +import { Job, Queue, Worker } from 'bullmq' +import IORedis from 'ioredis' +import { Server as SocketServer } from 'socket.io' class QueueManager { private connection!: IORedis.Redis diff --git a/src/managers/socketManager.ts b/src/managers/socketManager.ts index d5c7e6d..4c94d25 100644 --- a/src/managers/socketManager.ts +++ b/src/managers/socketManager.ts @@ -1,15 +1,12 @@ import fs from 'fs' import { Server as HTTPServer } from 'http' import { pathToFileURL } from 'url' - -import { Server as SocketServer } from 'socket.io' - -import type { TSocket, UUID } from '@/application/types' -import type { Application } from 'express' - import Logger, { LoggerType } from '@/application/logger' import Storage from '@/application/storage' +import type { TSocket, UUID } from '@/application/types' import { Authentication } from '@/middleware/authentication' +import type { Application } from 'express' +import { Server as SocketServer } from 'socket.io' class SocketManager { private io: SocketServer | null = null diff --git a/src/managers/weatherManager.ts b/src/managers/weatherManager.ts index 2458387..2fc3960 100644 --- a/src/managers/weatherManager.ts +++ b/src/managers/weatherManager.ts @@ -1,10 +1,9 @@ -import { Server } from 'socket.io' - import { SocketEvent } from '@/application/enums' import Logger, { LoggerType } from '@/application/logger' import { World } from '@/entities/world' import SocketManager from '@/managers/socketManager' import WorldRepository from '@/repositories/worldRepository' +import { Server } from 'socket.io' type WeatherState = { rainPercentage: number diff --git a/src/middleware/authentication.ts b/src/middleware/authentication.ts index 271b3fe..f2f592a 100644 --- a/src/middleware/authentication.ts +++ b/src/middleware/authentication.ts @@ -1,9 +1,7 @@ -import jwt from 'jsonwebtoken' - -import type { TSocket } from '@/application/types' - import config from '@/application/config' import Logger, { LoggerType } from '@/application/logger' +import type { TSocket } from '@/application/types' +import jwt from 'jsonwebtoken' class SocketAuthenticator { private socket: TSocket diff --git a/src/migrations/Migration20250207212301.ts b/src/migrations/Migration20250207212301.ts index 679af39..faae4de 100644 --- a/src/migrations/Migration20250207212301.ts +++ b/src/migrations/Migration20250207212301.ts @@ -6,9 +6,7 @@ export class Migration20250207212301 extends Migration { `create table \`map\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`width\` int not null default 10, \`height\` int not null default 10, \`tiles\` json null, \`pvp\` tinyint(1) not null default false, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` ) - this.addSql( - `create table \`map_effect\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`effect\` varchar(255) not null, \`strength\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`map_effect\` (\`id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`effect\` varchar(255) not null, \`strength\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql(`alter table \`map_effect\` add index \`map_effect_map_id_index\`(\`map_id\`);`) this.addSql( @@ -33,9 +31,7 @@ export class Migration20250207212301 extends Migration { this.addSql(`alter table \`placed_map_object\` add index \`placed_map_object_map_id_index\`(\`map_id\`);`) this.addSql(`alter table \`placed_map_object\` add index \`placed_map_object_map_object_id_index\`(\`map_object_id\`);`) - this.addSql( - `create table \`sprite\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`sprite\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql( `create table \`item\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`description\` varchar(255) not null default '', \`item_type\` enum('WEAPON', 'HELMET', 'CHEST', 'LEGS', 'BOOTS', 'GLOVES', 'RING', 'NECKLACE') not null, \`stackable\` tinyint(1) not null default false, \`rarity\` enum('COMMON', 'UNCOMMON', 'RARE', 'EPIC', 'LEGENDARY') not null default 'COMMON', \`sprite_id\` varchar(255) null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` @@ -57,19 +53,13 @@ export class Migration20250207212301 extends Migration { ) this.addSql(`alter table \`sprite_action\` add index \`sprite_action_sprite_id_index\`(\`sprite_id\`);`) - this.addSql( - `create table \`tile\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`tags\` json null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`tile\` (\`id\` varchar(255) not null, \`name\` varchar(255) not null, \`tags\` json null, \`created_at\` datetime not null, \`updated_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) - this.addSql( - `create table \`user\` (\`id\` varchar(255) not null, \`username\` varchar(255) not null, \`email\` varchar(255) not null, \`password\` varchar(255) not null, \`online\` tinyint(1) not null default false, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`user\` (\`id\` varchar(255) not null, \`username\` varchar(255) not null, \`email\` varchar(255) not null, \`password\` varchar(255) not null, \`online\` tinyint(1) not null default false, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql(`alter table \`user\` add unique \`user_username_unique\`(\`username\`);`) this.addSql(`alter table \`user\` add unique \`user_email_unique\`(\`email\`);`) - this.addSql( - `create table \`password_reset_token\` (\`id\` varchar(255) not null, \`user_id\` varchar(255) not null, \`token\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`password_reset_token\` (\`id\` varchar(255) not null, \`user_id\` varchar(255) not null, \`token\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql(`alter table \`password_reset_token\` add index \`password_reset_token_user_id_index\`(\`user_id\`);`) this.addSql(`alter table \`password_reset_token\` add unique \`password_reset_token_token_unique\`(\`token\`);`) @@ -82,15 +72,11 @@ export class Migration20250207212301 extends Migration { this.addSql(`alter table \`character\` add index \`character_character_type_id_index\`(\`character_type_id\`);`) this.addSql(`alter table \`character\` add index \`character_character_hair_id_index\`(\`character_hair_id\`);`) - this.addSql( - `create table \`chat\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`message\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`chat\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`map_id\` varchar(255) not null, \`message\` varchar(255) not null, \`created_at\` datetime not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql(`alter table \`chat\` add index \`chat_character_id_index\`(\`character_id\`);`) this.addSql(`alter table \`chat\` add index \`chat_map_id_index\`(\`map_id\`);`) - this.addSql( - `create table \`character_item\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`item_id\` varchar(255) not null, \`quantity\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`character_item\` (\`id\` varchar(255) not null, \`character_id\` varchar(255) not null, \`item_id\` varchar(255) not null, \`quantity\` int not null, primary key (\`id\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql(`alter table \`character_item\` add index \`character_item_character_id_index\`(\`character_id\`);`) this.addSql(`alter table \`character_item\` add index \`character_item_item_id_index\`(\`item_id\`);`) @@ -100,28 +86,18 @@ export class Migration20250207212301 extends Migration { this.addSql(`alter table \`character_equipment\` add index \`character_equipment_character_id_index\`(\`character_id\`);`) this.addSql(`alter table \`character_equipment\` add index \`character_equipment_character_item_id_index\`(\`character_item_id\`);`) - this.addSql( - `create table \`world\` (\`date\` datetime not null, \`rain_percentage\` int not null default 0, \`fog_density\` int not null default 0, primary key (\`date\`)) default character set utf8mb4 engine = InnoDB;` - ) + this.addSql(`create table \`world\` (\`date\` datetime not null, \`rain_percentage\` int not null default 0, \`fog_density\` int not null default 0, primary key (\`date\`)) default character set utf8mb4 engine = InnoDB;`) this.addSql(`alter table \`map_effect\` add constraint \`map_effect_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`) - this.addSql( - `alter table \`map_event_tile\` add constraint \`map_event_tile_teleport_id_foreign\` foreign key (\`teleport_id\`) references \`map_event_tile_teleport\` (\`id\`) on update cascade on delete set null;` - ) + this.addSql(`alter table \`map_event_tile\` add constraint \`map_event_tile_teleport_id_foreign\` foreign key (\`teleport_id\`) references \`map_event_tile_teleport\` (\`id\`) on update cascade on delete set null;`) - this.addSql( - `alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_map_event_tile_id_foreign\` foreign key (\`map_event_tile_id\`) references \`map_event_tile\` (\`id\`) on update cascade on delete cascade;` - ) - this.addSql( - `alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_to_map_id_foreign\` foreign key (\`to_map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;` - ) + this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_map_event_tile_id_foreign\` foreign key (\`map_event_tile_id\`) references \`map_event_tile\` (\`id\`) on update cascade on delete cascade;`) + this.addSql(`alter table \`map_event_tile_teleport\` add constraint \`map_event_tile_teleport_to_map_id_foreign\` foreign key (\`to_map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`placed_map_object\` add constraint \`placed_map_object_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`) - this.addSql( - `alter table \`placed_map_object\` add constraint \`placed_map_object_map_object_id_foreign\` foreign key (\`map_object_id\`) references \`map_object\` (\`id\`) on update cascade on delete cascade;` - ) + this.addSql(`alter table \`placed_map_object\` add constraint \`placed_map_object_map_object_id_foreign\` foreign key (\`map_object_id\`) references \`map_object\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`item\` add constraint \`item_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete set null;`) @@ -131,32 +107,20 @@ export class Migration20250207212301 extends Migration { this.addSql(`alter table \`sprite_action\` add constraint \`sprite_action_sprite_id_foreign\` foreign key (\`sprite_id\`) references \`sprite\` (\`id\`) on update cascade on delete cascade;`) - this.addSql( - `alter table \`password_reset_token\` add constraint \`password_reset_token_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;` - ) + this.addSql(`alter table \`password_reset_token\` add constraint \`password_reset_token_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`character\` add constraint \`character_user_id_foreign\` foreign key (\`user_id\`) references \`user\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`character\` add constraint \`character_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade;`) - this.addSql( - `alter table \`character\` add constraint \`character_character_type_id_foreign\` foreign key (\`character_type_id\`) references \`character_type\` (\`id\`) on update cascade on delete set null;` - ) - this.addSql( - `alter table \`character\` add constraint \`character_character_hair_id_foreign\` foreign key (\`character_hair_id\`) references \`character_hair\` (\`id\`) on update cascade on delete set null;` - ) + this.addSql(`alter table \`character\` add constraint \`character_character_type_id_foreign\` foreign key (\`character_type_id\`) references \`character_type\` (\`id\`) on update cascade on delete set null;`) + this.addSql(`alter table \`character\` add constraint \`character_character_hair_id_foreign\` foreign key (\`character_hair_id\`) references \`character_hair\` (\`id\`) on update cascade on delete set null;`) this.addSql(`alter table \`chat\` add constraint \`chat_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`chat\` add constraint \`chat_map_id_foreign\` foreign key (\`map_id\`) references \`map\` (\`id\`) on update cascade on delete cascade;`) - this.addSql( - `alter table \`character_item\` add constraint \`character_item_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;` - ) + this.addSql(`alter table \`character_item\` add constraint \`character_item_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`) this.addSql(`alter table \`character_item\` add constraint \`character_item_item_id_foreign\` foreign key (\`item_id\`) references \`item\` (\`id\`) on update cascade on delete cascade;`) - this.addSql( - `alter table \`character_equipment\` add constraint \`character_equipment_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;` - ) - this.addSql( - `alter table \`character_equipment\` add constraint \`character_equipment_character_item_id_foreign\` foreign key (\`character_item_id\`) references \`character_item\` (\`id\`) on update cascade on delete cascade;` - ) + this.addSql(`alter table \`character_equipment\` add constraint \`character_equipment_character_id_foreign\` foreign key (\`character_id\`) references \`character\` (\`id\`) on update cascade on delete cascade;`) + this.addSql(`alter table \`character_equipment\` add constraint \`character_equipment_character_item_id_foreign\` foreign key (\`character_item_id\`) references \`character_item\` (\`id\`) on update cascade on delete cascade;`) } } diff --git a/src/mikro-orm.config.ts b/src/mikro-orm.config.ts index 648f84c..1274891 100644 --- a/src/mikro-orm.config.ts +++ b/src/mikro-orm.config.ts @@ -1,10 +1,9 @@ +import serverConfig from '@/application/config' import { defineConfig, MariaDbDriver } from '@mikro-orm/mariadb' // import { defineConfig, MySqlDriver } from '@mikro-orm/mysql' import { Migrator } from '@mikro-orm/migrations' import { TsMorphMetadataProvider } from '@mikro-orm/reflection' -import serverConfig from '@/application/config' - export default defineConfig({ extensions: [Migrator], metadataProvider: TsMorphMetadataProvider, diff --git a/src/models/loadedMap.ts b/src/models/loadedMap.ts index 3a172a9..f710eec 100644 --- a/src/models/loadedMap.ts +++ b/src/models/loadedMap.ts @@ -1,5 +1,4 @@ import type { UUID } from '@/application/types' - import { Character } from '@/entities/character' import { Map } from '@/entities/map' import MapCharacter from '@/models/mapCharacter' diff --git a/src/models/mapCharacter.ts b/src/models/mapCharacter.ts index 84d5fdc..5855a47 100644 --- a/src/models/mapCharacter.ts +++ b/src/models/mapCharacter.ts @@ -1,11 +1,9 @@ -import { Server } from 'socket.io' - -import type { TSocket, UUID } from '@/application/types' - import { SocketEvent } from '@/application/enums' +import type { TSocket, UUID } from '@/application/types' import { Character } from '@/entities/character' import MapManager from '@/managers/mapManager' import TeleportService from '@/services/characterTeleportService' +import { Server } from 'socket.io' class MapCharacter { public readonly character: Character diff --git a/src/repositories/characterHairRepository.ts b/src/repositories/characterHairRepository.ts index 13beffb..d379107 100644 --- a/src/repositories/characterHairRepository.ts +++ b/src/repositories/characterHairRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { CharacterHair } from '@/entities/characterHair' class CharacterHairRepository extends BaseRepository { diff --git a/src/repositories/characterRepository.ts b/src/repositories/characterRepository.ts index 1a37505..9818984 100644 --- a/src/repositories/characterRepository.ts +++ b/src/repositories/characterRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' class CharacterRepository extends BaseRepository { diff --git a/src/repositories/characterTypeRepository.ts b/src/repositories/characterTypeRepository.ts index 9d0934e..2083352 100644 --- a/src/repositories/characterTypeRepository.ts +++ b/src/repositories/characterTypeRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { CharacterType } from '@/entities/characterType' class CharacterTypeRepository extends BaseRepository { diff --git a/src/repositories/chatRepository.ts b/src/repositories/chatRepository.ts index cc04dff..40212ba 100644 --- a/src/repositories/chatRepository.ts +++ b/src/repositories/chatRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { Chat } from '@/entities/chat' class ChatRepository extends BaseRepository { diff --git a/src/repositories/itemRepository.ts b/src/repositories/itemRepository.ts index 47424f1..f0e1569 100644 --- a/src/repositories/itemRepository.ts +++ b/src/repositories/itemRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { Item } from '@/entities/item' class ItemRepository extends BaseRepository { diff --git a/src/repositories/mapEventTileRepository.ts b/src/repositories/mapEventTileRepository.ts index fb04ec9..80b621f 100644 --- a/src/repositories/mapEventTileRepository.ts +++ b/src/repositories/mapEventTileRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { MapEventTile } from '@/entities/mapEventTile' class MapEventTileRepository extends BaseRepository { diff --git a/src/repositories/mapObjectRepository.ts b/src/repositories/mapObjectRepository.ts index 7d406e3..ee37eae 100644 --- a/src/repositories/mapObjectRepository.ts +++ b/src/repositories/mapObjectRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { MapObject } from '@/entities/mapObject' class MapObjectRepository extends BaseRepository { diff --git a/src/repositories/mapRepository.ts b/src/repositories/mapRepository.ts index 1458906..aa51ce4 100644 --- a/src/repositories/mapRepository.ts +++ b/src/repositories/mapRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { Map } from '@/entities/map' import { MapEventTile } from '@/entities/mapEventTile' diff --git a/src/repositories/passwordResetTokenRepository.ts b/src/repositories/passwordResetTokenRepository.ts index 46fccbf..3f924eb 100644 --- a/src/repositories/passwordResetTokenRepository.ts +++ b/src/repositories/passwordResetTokenRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { PasswordResetToken } from '@/entities/passwordResetToken' class PasswordResetTokenRepository extends BaseRepository { diff --git a/src/repositories/spriteRepository.ts b/src/repositories/spriteRepository.ts index 6461353..44adcdd 100644 --- a/src/repositories/spriteRepository.ts +++ b/src/repositories/spriteRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { Sprite } from '@/entities/sprite' class SpriteRepository extends BaseRepository { diff --git a/src/repositories/tileRepository.ts b/src/repositories/tileRepository.ts index 149e026..4a6b50f 100644 --- a/src/repositories/tileRepository.ts +++ b/src/repositories/tileRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { unduplicateArray } from '@/application/utilities' import { Map } from '@/entities/map' import { Tile } from '@/entities/tile' diff --git a/src/repositories/userRepository.ts b/src/repositories/userRepository.ts index 16f71c9..e2fd46a 100644 --- a/src/repositories/userRepository.ts +++ b/src/repositories/userRepository.ts @@ -1,6 +1,5 @@ -import type { UUID } from '@/application/types' - import { BaseRepository } from '@/application/base/baseRepository' +import type { UUID } from '@/application/types' import { User } from '@/entities/user' class UserRepository extends BaseRepository { diff --git a/src/server.ts b/src/server.ts index e3c5f2a..cbf031f 100644 --- a/src/server.ts +++ b/src/server.ts @@ -19,16 +19,7 @@ export class Server { await Database.initialize() // Initialize managers - await Promise.all([ - HttpManager.boot(HttpManager.getAppInstance()), - SocketManager.boot(HttpManager.getAppInstance(), HttpManager.getServerInstance()), - QueueManager.boot(), - UserManager.boot(), - MapManager.boot(), - DateManager.boot(), - WeatherManager.boot(), - ConsoleManager.boot() - ]) + await Promise.all([HttpManager.boot(HttpManager.getAppInstance()), SocketManager.boot(HttpManager.getAppInstance(), HttpManager.getServerInstance()), QueueManager.boot(), UserManager.boot(), MapManager.boot(), DateManager.boot(), WeatherManager.boot(), ConsoleManager.boot()]) } catch (error: any) { console.error(error) this.logger.error(`Server failed to start: ${error.message}`) diff --git a/src/services/characterAttackService.ts b/src/services/characterAttackService.ts index 5871b91..b43a94a 100644 --- a/src/services/characterAttackService.ts +++ b/src/services/characterAttackService.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseService } from '@/application/base/baseService' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import MapManager from '@/managers/mapManager' import SocketManager from '@/managers/socketManager' diff --git a/src/services/characterMoveService.ts b/src/services/characterMoveService.ts index 8c67d31..f4fe447 100644 --- a/src/services/characterMoveService.ts +++ b/src/services/characterMoveService.ts @@ -115,13 +115,7 @@ class CharacterMoveService extends BaseService { } private isValidPosition(pos: Position, grid: number[][], end: Position): boolean { - 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)) - ) + 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 { diff --git a/src/services/characterTeleportService.ts b/src/services/characterTeleportService.ts index b38cd81..f6f1b00 100644 --- a/src/services/characterTeleportService.ts +++ b/src/services/characterTeleportService.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { SocketEvent } from '@/application/enums' import Logger, { LoggerType } from '@/application/logger' +import type { UUID } from '@/application/types' import { Character } from '@/entities/character' import MapManager from '@/managers/mapManager' import SocketManager from '@/managers/socketManager' @@ -37,7 +36,7 @@ class CharacterTeleportService { const existingCharacter = !options.isInitialJoin && MapManager.getCharacterById(characterId) const mapCharacter = options.isInitialJoin - ? new MapCharacter(options.character!) + ? new MapCharacter(options.character) : existingCharacter || (() => { this.logger.error(`Teleport failed - Character ${characterId} not found in MapManager`) @@ -84,7 +83,7 @@ class CharacterTeleportService { targetMap.addCharacter(mapCharacter.getCharacter()) const map = await mapRepository.getById(options.targetMapId) - await mapRepository.getEntityManager().populate(map!, mapRepository.POPULATE_TELEPORT as any) + await mapRepository.getEntityManager().populate(map, mapRepository.POPULATE_TELEPORT as any) // Notify clients io.in(options.targetMapId).emit(SocketEvent.MAP_CHARACTER_JOIN, mapCharacter) diff --git a/src/services/chatService.ts b/src/services/chatService.ts index 758cccd..fb3c6e4 100644 --- a/src/services/chatService.ts +++ b/src/services/chatService.ts @@ -1,7 +1,6 @@ -import type { UUID } from '@/application/types' - import { BaseService } from '@/application/base/baseService' import { SocketEvent } from '@/application/enums' +import type { UUID } from '@/application/types' import { Chat } from '@/entities/chat' import SocketManager from '@/managers/socketManager' import CharacterRepository from '@/repositories/characterRepository' diff --git a/src/services/userService.ts b/src/services/userService.ts index a755134..42fb1df 100644 --- a/src/services/userService.ts +++ b/src/services/userService.ts @@ -1,12 +1,11 @@ -import bcrypt from 'bcryptjs' -import NodeMailer from 'nodemailer' - import { BaseService } from '@/application/base/baseService' import config from '@/application/config' import { PasswordResetToken } from '@/entities/passwordResetToken' import { User } from '@/entities/user' import PasswordResetTokenRepository from '@/repositories/passwordResetTokenRepository' import UserRepository from '@/repositories/userRepository' +import bcrypt from 'bcryptjs' +import NodeMailer from 'nodemailer' /** * User service diff --git a/tsconfig.json b/tsconfig.json index 68e31ce..c2c3bf3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -10,6 +10,7 @@ "verbatimModuleSyntax": true, "lib": ["es2022"], "target": "es2022", + "moduleResolution": "bundler", // Strictness "strict": true,