Adds Biome - Removes ESLint & Prettier (!383)
Boogidy, boogidy, boogidy. Let's go racing! 🏎️ Removes the over-complicated and super-slow setup we had with ESLint & Prettier in favour of Biome. The largest change with the formatting is moving from Allman braces to 1TBS braces. Other than that, it's *pretty much* the same. Ah, and that Biome runs formatting and linting on the entire project about x10 faster than the old system ran formatting on one file. Seriously, the guy who came up with that last solution should be fired. :runs: I've kept all of the formatting and linting commands the same as before, with the main mamma-jamma being: `npm run format`, which applies formatting and linting changes to the entire project. Formatting-on-save works (quickly!) by (1) ensuring that you're working within the VSC workspace (as you should be), and (2) have the recommended Biome VSC extension installed. The link to the Biome extension is in the README. This limits our options on code formatting going forward; Biome, like prettier, is very opinionated with very few formatting options available. But I see this as a good thing. I'd rather spend my time arguing about which gun in Tarkov is the best, rather than coding brace styles... ...It's the TOZ, and it always will be. Don't DM me. Co-authored-by: chomp <chomp@noreply.dev.sp-tarkov.com> Reviewed-on: https://dev.sp-tarkov.com/SPT/Server/pulls/383 Co-authored-by: Refringe <me@refringe.com> Co-committed-by: Refringe <me@refringe.com> # Conflicts: # project/src/callbacks/GameCallbacks.ts # project/src/callbacks/MatchCallbacks.ts # project/src/routers/static/GameStaticRouter.ts Resolved by Refringe
This commit is contained in:
parent
6613d997cc
commit
afda0d5255
52
README.md
52
README.md
@ -33,9 +33,7 @@ There are a number of VSC extensions that we recommended for this project. VSC w
|
|||||||
- [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - Editor Settings Synchronization
|
- [EditorConfig](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig) - Editor Settings Synchronization
|
||||||
- [Vitest](https://marketplace.visualstudio.com/items?itemName=vitest.explorer) - Debugging Tests
|
- [Vitest](https://marketplace.visualstudio.com/items?itemName=vitest.explorer) - Debugging Tests
|
||||||
- [SPT ID Highlighter](https://marketplace.visualstudio.com/items?itemName=refringe.spt-id-highlighter) - Converts IDs to Names
|
- [SPT ID Highlighter](https://marketplace.visualstudio.com/items?itemName=refringe.spt-id-highlighter) - Converts IDs to Names
|
||||||
- [Format Code Action](https://marketplace.visualstudio.com/items?itemName=rohit-gohri.format-code-action) - Custom Format-on-save Actions
|
- [Biome](https://marketplace.visualstudio.com/items?itemName=biomejs.biome) - Automatic Formatting & Code Standards Linting
|
||||||
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) - Code Formatting
|
|
||||||
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) - Linting for Coding Issues & Naming Conventions
|
|
||||||
|
|
||||||
### Initial Setup
|
### Initial Setup
|
||||||
|
|
||||||
@ -53,27 +51,27 @@ To prepare the project for development you will need to:
|
|||||||
|
|
||||||
The following commands are available after the initial setup. Run them with `npm run <command>`.
|
The following commands are available after the initial setup. Run them with `npm run <command>`.
|
||||||
|
|
||||||
| Command | Description |
|
| Command | Description |
|
||||||
| -------------------- | ----------------------------------------------------------------------------- |
|
| -------------------- | ------------------------------------------------------------------------- |
|
||||||
| `check:circular` | Check for circular dependencies in the project. |
|
| `check:circular` | Check for circular dependencies in the project. |
|
||||||
| `lint` | Check the project for coding standards and post-Prettier formatting issues. |
|
| `lint` | Check the project for coding standards issues using Biome. |
|
||||||
| `lint:fix` | Automatically fix coding standard issues and post-Prettier formatting issues. |
|
| `lint:fix` | Automatically fix coding standards issues using Biome. |
|
||||||
| `style` | Check the project for coding standards and post-Prettier formatting issues. |
|
| `style` | Check the project for formatting issues using Biome. |
|
||||||
| `style:fix` | Automatically fix coding standard issues and post-Prettier formatting issues. |
|
| `style:fix` | Automatically fix formatting issues using Biome. |
|
||||||
| `format` | Run Prettier and then ESLint Stylistic to fix code formatting. |
|
| `format` | Automatically fix all coding standards and formatting issues using Biome. |
|
||||||
| `test` | Run all tests. |
|
| `test` | Run all tests. |
|
||||||
| `test:watch` | Run tests in watch mode. Tests will re-run when files are changed. |
|
| `test:watch` | Run tests in watch mode. Tests will re-run when files are changed. |
|
||||||
| `test:coverage` | Run tests and generate a coverage report. |
|
| `test:coverage` | Run tests and generate a coverage report. |
|
||||||
| `test:ui` | Run tests in UI mode. This will open a browser window to view tests. |
|
| `test:ui` | Run tests in UI mode. This will open a browser window to view tests. |
|
||||||
| `build:release` | Build the project for release. |
|
| `build:release` | Build the project for release. |
|
||||||
| `build:debug` | Build the project for debugging. |
|
| `build:debug` | Build the project for debugging. |
|
||||||
| `build:bleeding` | Build the project on the bleeding edge. |
|
| `build:bleeding` | Build the project on the bleeding edge. |
|
||||||
| `build:bleedingmods` | Build the project on the bleeding edge with mods. |
|
| `build:bleedingmods` | Build the project on the bleeding edge with mods. |
|
||||||
| `run:build` | Run the project in build mode. |
|
| `run:build` | Run the project in build mode. |
|
||||||
| `run:debug` | Run the project in debug mode. |
|
| `run:debug` | Run the project in debug mode. |
|
||||||
| `run:profiler` | Run the project in profiler mode. |
|
| `run:profiler` | Run the project in profiler mode. |
|
||||||
| `gen:types` | Generate types for the project. |
|
| `gen:types` | Generate types for the project. |
|
||||||
| `gen:docs` | Generate documentation for the project. |
|
| `gen:docs` | Generate documentation for the project. |
|
||||||
|
|
||||||
### Debugging
|
### Debugging
|
||||||
|
|
||||||
@ -91,9 +89,9 @@ We're really excited that you're interested in contributing! Before submitting y
|
|||||||
|
|
||||||
- **master**
|
- **master**
|
||||||
The default branch used for the latest stable release. This branch is protected and typically is only merges with release branches.
|
The default branch used for the latest stable release. This branch is protected and typically is only merges with release branches.
|
||||||
- **3.9.0-DEV**
|
- **3.9.4-DEV**
|
||||||
Development for the next minor release of SPT. Minor releases target the latest version of EFT. Late in the minor release cycle the EFT version is frozen for stability to prepare for release. Larger changes to the project structure may be included in minor releases.
|
Development for the next minor release of SPT. Minor releases target the latest version of EFT. Late in the minor release cycle the EFT version is frozen for stability to prepare for release. Larger changes to the project structure may be included in minor releases.
|
||||||
- **3.8.4-DEV**
|
- **3.10.0-DEV**
|
||||||
Development for the next hotfix release of SPT. Hotfix releases include bug fixes and minor features that do not effect the coding structure of the project. Special care is taken to not break server mod stability. These always target the same version of EFT as the last minor release.
|
Development for the next hotfix release of SPT. Hotfix releases include bug fixes and minor features that do not effect the coding structure of the project. Special care is taken to not break server mod stability. These always target the same version of EFT as the last minor release.
|
||||||
|
|
||||||
### Pull Request Guidelines
|
### Pull Request Guidelines
|
||||||
@ -111,7 +109,7 @@ We're really excited that you're interested in contributing! Before submitting y
|
|||||||
|
|
||||||
### Style Guide
|
### Style Guide
|
||||||
|
|
||||||
We use a combination of Prettier and ESLint Stylistic to enforce a consistent code style. Please run `npm run format` before submitting your changes. This is made easier by using the recommended VSC extensions to automatically format your code whenever you save a file.
|
We use Biome to enforce a consistent code style. Please run `npm run format` before submitting any changes. This is made easier by opening the VSC workspace and installing the recommended VSC extensions; this will ensure that your code is automatically formatted whenever you save a file.
|
||||||
|
|
||||||
### Tests
|
### Tests
|
||||||
|
|
||||||
|
@ -1,15 +0,0 @@
|
|||||||
# Exclude these folders from linting
|
|
||||||
node_modules/
|
|
||||||
out/
|
|
||||||
obj/
|
|
||||||
build/
|
|
||||||
types/
|
|
||||||
user/mods/
|
|
||||||
|
|
||||||
# Exclude these filetypes from linting
|
|
||||||
*.json
|
|
||||||
*.png
|
|
||||||
*.ico
|
|
||||||
*.jpg
|
|
||||||
*.txt
|
|
||||||
*.exe
|
|
@ -1,118 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": [
|
|
||||||
"plugin:@typescript-eslint/recommended",
|
|
||||||
"plugin:@stylistic/recommended-extends",
|
|
||||||
"plugin:import/recommended",
|
|
||||||
"plugin:import/typescript",
|
|
||||||
"prettier"
|
|
||||||
],
|
|
||||||
"plugins": ["@typescript-eslint", "@stylistic", "import", "unused-imports", "switch-allman"],
|
|
||||||
"settings": {
|
|
||||||
"import/resolver": {
|
|
||||||
"typescript": {
|
|
||||||
"project": "tsconfig.json"
|
|
||||||
},
|
|
||||||
"node": {
|
|
||||||
"extensions": [".ts", ".mjs"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rules": {
|
|
||||||
"@typescript-eslint/no-explicit-any": "off",
|
|
||||||
"@typescript-eslint/no-dynamic-delete": "off",
|
|
||||||
"@typescript-eslint/no-unused-vars": "off",
|
|
||||||
"@typescript-eslint/no-empty-interface": "off",
|
|
||||||
"@typescript-eslint/no-var-requires": "error",
|
|
||||||
"@typescript-eslint/explicit-module-boundary-types": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"allowArgumentsExplicitlyTypedAsAny": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@typescript-eslint/naming-convention": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"selector": "default",
|
|
||||||
"format": ["camelCase"],
|
|
||||||
"leadingUnderscore": "allow"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "typeLike",
|
|
||||||
"format": ["PascalCase"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "objectLiteralProperty",
|
|
||||||
"format": ["PascalCase", "camelCase", "snake_case"],
|
|
||||||
"leadingUnderscore": "allow"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "typeProperty",
|
|
||||||
"format": ["PascalCase", "camelCase"],
|
|
||||||
"leadingUnderscore": "allow"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "enumMember",
|
|
||||||
"format": ["UPPER_CASE"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"selector": "property",
|
|
||||||
"modifiers": ["readonly", "static"],
|
|
||||||
"format": ["UPPER_CASE"]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@stylistic/indent": ["error", 4, { "MemberExpression": 1, "SwitchCase": 1 }],
|
|
||||||
"@stylistic/brace-style": ["error", "allman", { "allowSingleLine": false }],
|
|
||||||
"@stylistic/semi": ["error", "always"],
|
|
||||||
"@stylistic/quotes": ["error", "double", { "avoidEscape": true }],
|
|
||||||
"@stylistic/operator-linebreak": ["error", "before"],
|
|
||||||
"@stylistic/arrow-parens": ["error", "always"],
|
|
||||||
"@stylistic/max-len": [
|
|
||||||
"warn",
|
|
||||||
{
|
|
||||||
"code": 121, // +1 to prevent conflicts with Prettier rule.
|
|
||||||
"tabWidth": 4,
|
|
||||||
"ignoreComments": true,
|
|
||||||
"ignoreTrailingComments": true,
|
|
||||||
"ignoreUrls": true,
|
|
||||||
"ignoreStrings": true,
|
|
||||||
"ignoreTemplateLiterals": true,
|
|
||||||
"ignoreRegExpLiterals": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"@stylistic/multiline-ternary": ["error", "always-multiline"],
|
|
||||||
"import/order": [
|
|
||||||
"error",
|
|
||||||
{
|
|
||||||
"groups": ["builtin", "external", "internal", "parent", "sibling", "index"],
|
|
||||||
"pathGroups": [
|
|
||||||
{
|
|
||||||
"pattern": "tsyringe",
|
|
||||||
"group": "builtin",
|
|
||||||
"position": "before"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"newlines-between": "never",
|
|
||||||
"alphabetize": {
|
|
||||||
"order": "asc",
|
|
||||||
"caseInsensitive": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"unused-imports/no-unused-imports-ts": "error",
|
|
||||||
"switch-allman/case-allman": "error"
|
|
||||||
},
|
|
||||||
"overrides": [
|
|
||||||
{
|
|
||||||
"files": ["src/di/**/*.ts"],
|
|
||||||
"rules": {
|
|
||||||
"@typescript-eslint/no-extraneous-class": "off"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"files": ["src/loaders/**/*.ts"],
|
|
||||||
"rules": {
|
|
||||||
"@typescript-eslint/no-var-requires": "off"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,10 +0,0 @@
|
|||||||
**/.git
|
|
||||||
**/.pkg-cache
|
|
||||||
**/.vscode
|
|
||||||
**/build
|
|
||||||
**/node_modules
|
|
||||||
**/types
|
|
||||||
**/tests/__cache__
|
|
||||||
**/tests/__coverage__
|
|
||||||
.editorconfig
|
|
||||||
src/services/ModCompilerService.ts
|
|
@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"quoteProps": "consistent"
|
|
||||||
}
|
|
@ -1,26 +1,25 @@
|
|||||||
{
|
{
|
||||||
"folders": [
|
"folders": [
|
||||||
{
|
{
|
||||||
"path": ".",
|
"path": "."
|
||||||
},
|
}
|
||||||
],
|
],
|
||||||
"settings": {
|
"settings": {
|
||||||
"window.title": "SPT Server",
|
"window.title": "SPT Server",
|
||||||
"editor.formatOnSave": false, // We use an extension to format on save.
|
"editor.formatOnSave": true,
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
"editor.defaultFormatter": "biomejs.biome",
|
||||||
"editor.codeActionsOnSave": ["source.formatDocument", "source.fixAll.eslint"],
|
"editor.codeActionsOnSave": {
|
||||||
"eslint.debug": false,
|
"source.organizeImports.biome": "explicit",
|
||||||
"eslint.experimental.useFlatConfig": false,
|
"quickfix.biome": "explicit"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"extensions": {
|
"extensions": {
|
||||||
"recommendations": [
|
"recommendations": [
|
||||||
"EditorConfig.EditorConfig", // EditorConfig file format support.
|
"EditorConfig.EditorConfig", // EditorConfig file support.
|
||||||
"vitest.explorer", // ViTest test runner.
|
"vitest.explorer", // ViTest test runner.
|
||||||
"refringe.spt-id-highlighter", // Highly SPT IDs.
|
"refringe.spt-id-highlighter", // SPT ID information of hover.
|
||||||
"rohit-gohri.format-code-action", // Custom format on save actions.
|
"biomejs.biome" // Biome code formatting, linting, and refactoring.
|
||||||
"esbenp.prettier-vscode", // Prettier code formatter.
|
]
|
||||||
"dbaeumer.vscode-eslint", // ESLint code linter and formatter.
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
"launch": {
|
"launch": {
|
||||||
"version": "0.2.0",
|
"version": "0.2.0",
|
||||||
@ -35,7 +34,7 @@
|
|||||||
"runtimeArgs": ["run", "run:debug"],
|
"runtimeArgs": ["run", "run:debug"],
|
||||||
"outFiles": ["!**/node_modules/**"],
|
"outFiles": ["!**/node_modules/**"],
|
||||||
"cwd": "${workspaceFolder}",
|
"cwd": "${workspaceFolder}",
|
||||||
"outputCapture": "std",
|
"outputCapture": "std"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Run Vitest Tests",
|
"name": "Run Vitest Tests",
|
||||||
@ -45,8 +44,8 @@
|
|||||||
"request": "launch",
|
"request": "launch",
|
||||||
"runtimeArgs": ["run", "test"],
|
"runtimeArgs": ["run", "test"],
|
||||||
"console": "integratedTerminal",
|
"console": "integratedTerminal",
|
||||||
"internalConsoleOptions": "neverOpen",
|
"internalConsoleOptions": "neverOpen"
|
||||||
},
|
}
|
||||||
],
|
]
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
61
project/biome.jsonc
Normal file
61
project/biome.jsonc
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://biomejs.dev/schemas/1.8.3/schema.json",
|
||||||
|
"organizeImports": {
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
"files": {
|
||||||
|
"ignore": [
|
||||||
|
".editorconfig",
|
||||||
|
".git/*",
|
||||||
|
".pkg-cache/*",
|
||||||
|
".vscode/*",
|
||||||
|
"build/*",
|
||||||
|
"node_modules/*",
|
||||||
|
"obj/*",
|
||||||
|
"out/*",
|
||||||
|
"src/services/ModCompilerService.ts",
|
||||||
|
"tests/__cache__/*",
|
||||||
|
"tests/__coverage__/*",
|
||||||
|
"types/*",
|
||||||
|
"user/mods/*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"linter": {
|
||||||
|
"enabled": true,
|
||||||
|
"rules": {
|
||||||
|
"recommended": true,
|
||||||
|
"style": {
|
||||||
|
"useImportType": "off"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"formatter": {
|
||||||
|
"enabled": true,
|
||||||
|
"formatWithErrors": false,
|
||||||
|
"ignore": [],
|
||||||
|
"attributePosition": "auto",
|
||||||
|
"indentStyle": "space",
|
||||||
|
"indentWidth": 4,
|
||||||
|
"lineWidth": 120,
|
||||||
|
"lineEnding": "lf"
|
||||||
|
},
|
||||||
|
"javascript": {
|
||||||
|
"formatter": {
|
||||||
|
"arrowParentheses": "always",
|
||||||
|
"bracketSameLine": false,
|
||||||
|
"bracketSpacing": true,
|
||||||
|
"jsxQuoteStyle": "double",
|
||||||
|
"quoteProperties": "asNeeded",
|
||||||
|
"semicolons": "always",
|
||||||
|
"trailingCommas": "all"
|
||||||
|
},
|
||||||
|
"parser": {
|
||||||
|
"unsafeParameterDecoratorsEnabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json": {
|
||||||
|
"formatter": {
|
||||||
|
"trailingCommas": "none"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -9,7 +9,6 @@ import download from "gulp-download";
|
|||||||
import { exec } from "gulp-execa";
|
import { exec } from "gulp-execa";
|
||||||
import rename from "gulp-rename";
|
import rename from "gulp-rename";
|
||||||
import minimist from "minimist";
|
import minimist from "minimist";
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
import * as ResEdit from "resedit";
|
import * as ResEdit from "resedit";
|
||||||
import manifest from "./package.json" assert { type: "json" };
|
import manifest from "./package.json" assert { type: "json" };
|
||||||
|
|
||||||
|
@ -12,11 +12,11 @@
|
|||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"check:circular": "madge --circular --ts-config tsconfig.json --extensions ts ./src/",
|
"check:circular": "madge --circular --ts-config tsconfig.json --extensions ts ./src/",
|
||||||
"lint": "eslint src",
|
"lint": "npx @biomejs/biome lint ./",
|
||||||
"lint:fix": "eslint src --fix",
|
"lint:fix": "npx @biomejs/biome lint --write ./",
|
||||||
"style": "prettier src --check",
|
"style": "npx @biomejs/biome format ./",
|
||||||
"style:fix": "prettier src --write",
|
"style:fix": "npx @biomejs/biome format --write ./",
|
||||||
"format": "npm run style:fix && npm run lint:fix",
|
"format": "npx @biomejs/biome check --write ./",
|
||||||
"test": "vitest run",
|
"test": "vitest run",
|
||||||
"test:watch": "vitest",
|
"test:watch": "vitest",
|
||||||
"test:coverage": "vitest run --coverage",
|
"test:coverage": "vitest run --coverage",
|
||||||
@ -53,9 +53,8 @@
|
|||||||
"ws": "~8.17"
|
"ws": "~8.17"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "~9.2",
|
"@biomejs/biome": "1.8.3",
|
||||||
"@pnpm/exe": "8.15.4",
|
"@pnpm/exe": "8.15.4",
|
||||||
"@stylistic/eslint-plugin": "~1.8",
|
|
||||||
"@swc/cli": "~0.3",
|
"@swc/cli": "~0.3",
|
||||||
"@swc/core": "~1.4",
|
"@swc/core": "~1.4",
|
||||||
"@types/i18n": "~0.13",
|
"@types/i18n": "~0.13",
|
||||||
@ -63,20 +62,11 @@
|
|||||||
"@types/proper-lockfile": "~4.1",
|
"@types/proper-lockfile": "~4.1",
|
||||||
"@types/semver": "~7.5",
|
"@types/semver": "~7.5",
|
||||||
"@types/ws": "~8.5",
|
"@types/ws": "~8.5",
|
||||||
"@typescript-eslint/eslint-plugin": "~7.11",
|
|
||||||
"@typescript-eslint/parser": "~7.11",
|
|
||||||
"@vitest/coverage-istanbul": "~1.6",
|
"@vitest/coverage-istanbul": "~1.6",
|
||||||
"@vitest/ui": "~1.6",
|
"@vitest/ui": "~1.6",
|
||||||
"@yao-pkg/pkg": "5.11.5",
|
"@yao-pkg/pkg": "5.11.5",
|
||||||
"@yao-pkg/pkg-fetch": "3.5.9",
|
"@yao-pkg/pkg-fetch": "3.5.9",
|
||||||
"cross-env": "~7.0",
|
"cross-env": "~7.0",
|
||||||
"eslint": "~8.57",
|
|
||||||
"eslint-config-prettier": "~9.1",
|
|
||||||
"eslint-import-resolver-typescript": "~3.6",
|
|
||||||
"eslint-plugin-import": "~2.29",
|
|
||||||
"eslint-plugin-prettier": "~5.1",
|
|
||||||
"eslint-plugin-switch-allman": "~1.0",
|
|
||||||
"eslint-plugin-unused-imports": "~3.2",
|
|
||||||
"fs-extra": "~11.2",
|
"fs-extra": "~11.2",
|
||||||
"gulp": "~4.0",
|
"gulp": "~4.0",
|
||||||
"gulp-decompress": "~3.0",
|
"gulp-decompress": "~3.0",
|
||||||
@ -85,14 +75,11 @@
|
|||||||
"gulp-rename": "~2.0",
|
"gulp-rename": "~2.0",
|
||||||
"madge": "~6.1",
|
"madge": "~6.1",
|
||||||
"minimist": "~1.2",
|
"minimist": "~1.2",
|
||||||
"prettier": "~3.3",
|
|
||||||
"resedit": "~2.0",
|
"resedit": "~2.0",
|
||||||
"ts-node-dev": "~2.0",
|
"ts-node-dev": "~2.0",
|
||||||
"tsconfig-paths": "~4.2",
|
"tsconfig-paths": "~4.2",
|
||||||
"tslint-config-prettier": "~1.18",
|
|
||||||
"typedoc": "~0.25",
|
"typedoc": "~0.25",
|
||||||
"typemoq": "~2.1",
|
"typemoq": "~2.1",
|
||||||
"typescript-eslint": "~7.11",
|
|
||||||
"vitest": "~1.6"
|
"vitest": "~1.6"
|
||||||
},
|
},
|
||||||
"targets": {
|
"targets": {
|
||||||
|
@ -20,7 +20,6 @@ export class AchievementCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/achievement/list
|
* Handle client/achievement/list
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getAchievements(
|
public getAchievements(
|
||||||
url: string,
|
url: string,
|
||||||
info: IEmptyRequestData,
|
info: IEmptyRequestData,
|
||||||
@ -33,7 +32,6 @@ export class AchievementCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/achievement/statistic
|
* Handle client/achievement/statistic
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public statistic(
|
public statistic(
|
||||||
url: string,
|
url: string,
|
||||||
info: IEmptyRequestData,
|
info: IEmptyRequestData,
|
||||||
|
@ -21,7 +21,6 @@ export class BuildsCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/builds/list
|
* Handle client/builds/list
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getBuilds(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IUserBuilds>
|
public getBuilds(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<IUserBuilds>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.buildController.getUserBuilds(sessionID));
|
return this.httpResponse.getBody(this.buildController.getUserBuilds(sessionID));
|
||||||
@ -30,7 +29,6 @@ export class BuildsCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/builds/magazine/save
|
* Handle client/builds/magazine/save
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public createMagazineTemplate(url: string, request: ISetMagazineRequest, sessionID: string): INullResponseData
|
public createMagazineTemplate(url: string, request: ISetMagazineRequest, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
this.buildController.createMagazineTemplate(sessionID, request);
|
this.buildController.createMagazineTemplate(sessionID, request);
|
||||||
@ -41,7 +39,6 @@ export class BuildsCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/builds/weapon/save
|
* Handle client/builds/weapon/save
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public setWeapon(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
|
public setWeapon(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
this.buildController.saveWeaponBuild(sessionID, info);
|
this.buildController.saveWeaponBuild(sessionID, info);
|
||||||
@ -52,7 +49,6 @@ export class BuildsCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/builds/equipment/save
|
* Handle client/builds/equipment/save
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public setEquipment(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
|
public setEquipment(url: string, info: IPresetBuildActionRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
this.buildController.saveEquipmentBuild(sessionID, info);
|
this.buildController.saveEquipmentBuild(sessionID, info);
|
||||||
@ -63,7 +59,6 @@ export class BuildsCallbacks
|
|||||||
/**
|
/**
|
||||||
* Handle client/builds/delete
|
* Handle client/builds/delete
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public deleteBuild(url: string, info: IRemoveBuildRequestData, sessionID: string): INullResponseData
|
public deleteBuild(url: string, info: IRemoveBuildRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
this.buildController.removeBuild(sessionID, info);
|
this.buildController.removeBuild(sessionID, info);
|
||||||
|
@ -222,11 +222,9 @@ export class DataCallbacks
|
|||||||
supplyNextTime: this.traderHelper.getNextUpdateTimestamp(traderId),
|
supplyNextTime: this.traderHelper.getNextUpdateTimestamp(traderId),
|
||||||
prices: handbookPrices,
|
prices: handbookPrices,
|
||||||
currencyCourses: {
|
currencyCourses: {
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
"5449016a4bdc2d6f028b456f": handbookPrices[Money.ROUBLES],
|
"5449016a4bdc2d6f028b456f": handbookPrices[Money.ROUBLES],
|
||||||
"569668774bdc2da2298b4568": handbookPrices[Money.EUROS],
|
"569668774bdc2da2298b4568": handbookPrices[Money.EUROS],
|
||||||
"5696686a4bdc2da3298b456a": handbookPrices[Money.DOLLARS],
|
"5696686a4bdc2da3298b456a": handbookPrices[Money.DOLLARS],
|
||||||
/* eslint-enable @typescript-eslint/naming-convention */
|
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -40,7 +40,6 @@ import { TimeUtil } from "@spt/utils/TimeUtil";
|
|||||||
@injectable()
|
@injectable()
|
||||||
export class DialogueCallbacks implements OnUpdate
|
export class DialogueCallbacks implements OnUpdate
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
constructor(
|
constructor(
|
||||||
@inject("HashUtil") protected hashUtil: HashUtil,
|
@inject("HashUtil") protected hashUtil: HashUtil,
|
||||||
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
@inject("TimeUtil") protected timeUtil: TimeUtil,
|
||||||
@ -66,7 +65,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
* Handle client/chatServer/list
|
* Handle client/chatServer/list
|
||||||
* @returns IChatServer[]
|
* @returns IChatServer[]
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getChatServerList(
|
public getChatServerList(
|
||||||
url: string,
|
url: string,
|
||||||
info: IGetChatServerListRequestData,
|
info: IGetChatServerListRequestData,
|
||||||
@ -171,7 +169,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/friend/request/list/outbox */
|
/** Handle client/friend/request/list/outbox */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>
|
public listOutbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody([]);
|
return this.httpResponse.getBody([]);
|
||||||
@ -180,7 +177,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
/**
|
/**
|
||||||
* Handle client/friend/request/list/inbox
|
* Handle client/friend/request/list/inbox
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>
|
public listInbox(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<any[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody([]);
|
return this.httpResponse.getBody([]);
|
||||||
@ -189,7 +185,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
/**
|
/**
|
||||||
* Handle client/friend/request/send
|
* Handle client/friend/request/send
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public sendFriendRequest(
|
public sendFriendRequest(
|
||||||
url: string,
|
url: string,
|
||||||
request: IFriendRequestData,
|
request: IFriendRequestData,
|
||||||
@ -202,7 +197,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
/**
|
/**
|
||||||
* Handle client/friend/request/accept-all
|
* Handle client/friend/request/accept-all
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public acceptAllFriendRequests(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData
|
public acceptAllFriendRequests(url: string, request: IEmptyRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
@ -211,7 +205,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
/**
|
/**
|
||||||
* Handle client/friend/request/accept
|
* Handle client/friend/request/accept
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public acceptFriendRequest(
|
public acceptFriendRequest(
|
||||||
url: string,
|
url: string,
|
||||||
request: IAcceptFriendRequestData,
|
request: IAcceptFriendRequestData,
|
||||||
@ -224,7 +217,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
/**
|
/**
|
||||||
* Handle client/friend/request/decline
|
* Handle client/friend/request/decline
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public declineFriendRequest(
|
public declineFriendRequest(
|
||||||
url: string,
|
url: string,
|
||||||
request: IDeclineFriendRequestData,
|
request: IDeclineFriendRequestData,
|
||||||
@ -237,7 +229,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
/**
|
/**
|
||||||
* Handle client/friend/request/cancel
|
* Handle client/friend/request/cancel
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public cancelFriendRequest(
|
public cancelFriendRequest(
|
||||||
url: string,
|
url: string,
|
||||||
request: ICancelFriendRequestData,
|
request: ICancelFriendRequestData,
|
||||||
@ -248,33 +239,28 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/friend/delete */
|
/** Handle client/friend/delete */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData
|
public deleteFriend(url: string, request: IDeleteFriendRequest, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/friend/ignore/set */
|
/** Handle client/friend/ignore/set */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
|
public ignoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/friend/ignore/remove */
|
/** Handle client/friend/ignore/remove */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
|
public unIgnoreFriend(url: string, request: IUIDRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>
|
public clearMail(url: string, request: IClearMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.emptyArrayResponse();
|
return this.httpResponse.emptyArrayResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>
|
public removeMail(url: string, request: IRemoveMailMessageRequest, sessionID: string): IGetBodyResponseData<any[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.emptyArrayResponse();
|
return this.httpResponse.emptyArrayResponse();
|
||||||
@ -308,7 +294,6 @@ export class DialogueCallbacks implements OnUpdate
|
|||||||
throw new Error("Method not implemented.");
|
throw new Error("Method not implemented.");
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public async onUpdate(timeSinceLastRun: number): Promise<boolean>
|
public async onUpdate(timeSinceLastRun: number): Promise<boolean>
|
||||||
{
|
{
|
||||||
this.dialogueController.update();
|
this.dialogueController.update();
|
||||||
|
@ -172,7 +172,6 @@ export class GameCallbacks implements OnLoad
|
|||||||
* Handle singleplayer/settings/getRaidTime
|
* Handle singleplayer/settings/getRaidTime
|
||||||
* @returns string
|
* @returns string
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getRaidTime(url: string, request: IGetRaidTimeRequest, sessionID: string): IGetRaidTimeResponse
|
public getRaidTime(url: string, request: IGetRaidTimeRequest, sessionID: string): IGetRaidTimeResponse
|
||||||
{
|
{
|
||||||
return this.httpResponse.noBody(this.gameController.getRaidTime(sessionID, request));
|
return this.httpResponse.noBody(this.gameController.getRaidTime(sessionID, request));
|
||||||
|
@ -33,21 +33,18 @@ export class MatchCallbacks
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
/** Handle client/match/updatePing */
|
/** Handle client/match/updatePing */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData
|
public updatePing(url: string, info: IUpdatePingRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle client/match/exit
|
// Handle client/match/exit
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
public exitMatch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/exit_from_menu */
|
/** Handle client/match/group/exit_from_menu */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
public exitToMenu(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
@ -62,20 +59,17 @@ export class MatchCallbacks
|
|||||||
return this.httpResponse.getBody({ squad: [] });
|
return this.httpResponse.getBody({ squad: [] });
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
public startGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
public stopGroupSearch(url: string, info: IEmptyRequestData, sessionID: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/invite/send */
|
/** Handle client/match/group/invite/send */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public sendGroupInvite(
|
public sendGroupInvite(
|
||||||
url: string,
|
url: string,
|
||||||
info: IMatchGroupInviteSendRequest,
|
info: IMatchGroupInviteSendRequest,
|
||||||
@ -86,7 +80,6 @@ export class MatchCallbacks
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/invite/accept */
|
/** Handle client/match/group/invite/accept */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public acceptGroupInvite(
|
public acceptGroupInvite(
|
||||||
url: string,
|
url: string,
|
||||||
info: IRequestIdRequest,
|
info: IRequestIdRequest,
|
||||||
@ -94,28 +87,24 @@ export class MatchCallbacks
|
|||||||
): IGetBodyResponseData<IGroupCharacter[]>
|
): IGetBodyResponseData<IGroupCharacter[]>
|
||||||
{
|
{
|
||||||
const result = [];
|
const result = [];
|
||||||
// eslint-disable-next-line strict-null-checks/all
|
|
||||||
result.push({});
|
result.push({});
|
||||||
|
|
||||||
return this.httpResponse.getBody(result);
|
return this.httpResponse.getBody(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/invite/decline */
|
/** Handle client/match/group/invite/decline */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public declineGroupInvite(url: string, info: IRequestIdRequest, sessionId: string): IGetBodyResponseData<boolean>
|
public declineGroupInvite(url: string, info: IRequestIdRequest, sessionId: string): IGetBodyResponseData<boolean>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(true);
|
return this.httpResponse.getBody(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/invite/cancel */
|
/** Handle client/match/group/invite/cancel */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public cancelGroupInvite(url: string, info: IRequestIdRequest, sessionID: string): IGetBodyResponseData<boolean>
|
public cancelGroupInvite(url: string, info: IRequestIdRequest, sessionID: string): IGetBodyResponseData<boolean>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(true);
|
return this.httpResponse.getBody(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/transfer */
|
/** Handle client/match/group/transfer */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public transferGroup(
|
public transferGroup(
|
||||||
url: string,
|
url: string,
|
||||||
info: IMatchGroupTransferRequest,
|
info: IMatchGroupTransferRequest,
|
||||||
@ -126,7 +115,6 @@ export class MatchCallbacks
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/invite/cancel-all */
|
/** Handle client/match/group/invite/cancel-all */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public cancelAllGroupInvite(
|
public cancelAllGroupInvite(
|
||||||
url: string,
|
url: string,
|
||||||
info: IEmptyRequestData,
|
info: IEmptyRequestData,
|
||||||
@ -137,14 +125,12 @@ export class MatchCallbacks
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** @deprecated - not called on raid start/end or game start/exit */
|
/** @deprecated - not called on raid start/end or game start/exit */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public putMetrics(url: string, info: IPutMetricsRequestData, sessionId: string): INullResponseData
|
public putMetrics(url: string, info: IPutMetricsRequestData, sessionId: string): INullResponseData
|
||||||
{
|
{
|
||||||
return this.httpResponse.nullResponse();
|
return this.httpResponse.nullResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle client/match/available
|
// Handle client/match/available
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public serverAvailable(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData<boolean>
|
public serverAvailable(url: string, info: IEmptyRequestData, sessionId: string): IGetBodyResponseData<boolean>
|
||||||
{
|
{
|
||||||
const output = this.matchController.getEnabled();
|
const output = this.matchController.getEnabled();
|
||||||
@ -163,7 +149,6 @@ export class MatchCallbacks
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/getMetricsConfig */
|
/** Handle client/getMetricsConfig */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>
|
public getMetrics(url: string, info: any, sessionID: string): IGetBodyResponseData<string>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics));
|
return this.httpResponse.getBody(this.jsonUtil.serialize(this.databaseService.getMatch().metrics));
|
||||||
@ -174,7 +159,6 @@ export class MatchCallbacks
|
|||||||
* Handle client/match/group/status
|
* Handle client/match/group/status
|
||||||
* @returns
|
* @returns
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getGroupStatus(
|
public getGroupStatus(
|
||||||
url: string,
|
url: string,
|
||||||
info: IMatchGroupStatusRequest,
|
info: IMatchGroupStatusRequest,
|
||||||
@ -185,7 +169,6 @@ export class MatchCallbacks
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/delete */
|
/** Handle client/match/group/delete */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public deleteGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>
|
public deleteGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>
|
||||||
{
|
{
|
||||||
this.matchController.deleteGroup(info);
|
this.matchController.deleteGroup(info);
|
||||||
@ -193,14 +176,12 @@ export class MatchCallbacks
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Handle client/match/group/leave
|
// Handle client/match/group/leave
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>
|
public leaveGroup(url: string, info: IEmptyRequestData, sessionID: string): IGetBodyResponseData<boolean>
|
||||||
{
|
{
|
||||||
return this.httpResponse.getBody(true);
|
return this.httpResponse.getBody(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/player/remove */
|
/** Handle client/match/group/player/remove */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public removePlayerFromGroup(
|
public removePlayerFromGroup(
|
||||||
url: string,
|
url: string,
|
||||||
info: IMatchGroupPlayerRemoveRequest,
|
info: IMatchGroupPlayerRemoveRequest,
|
||||||
|
@ -26,7 +26,6 @@ export class NotifierCallbacks
|
|||||||
* until we actually have something to send because otherwise we'd spam the client
|
* until we actually have something to send because otherwise we'd spam the client
|
||||||
* and the client would abort the connection due to spam.
|
* and the client would abort the connection due to spam.
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public sendNotification(sessionID: string, req: any, resp: any, data: any): void
|
public sendNotification(sessionID: string, req: any, resp: any, data: any): void
|
||||||
{
|
{
|
||||||
const splittedUrl = req.url.split("/");
|
const splittedUrl = req.url.split("/");
|
||||||
@ -45,7 +44,6 @@ export class NotifierCallbacks
|
|||||||
/** Handle push/notifier/get */
|
/** Handle push/notifier/get */
|
||||||
/** Handle push/notifier/getwebsocket */
|
/** Handle push/notifier/getwebsocket */
|
||||||
// TODO: removed from client?
|
// TODO: removed from client?
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>
|
public getNotifier(url: string, info: any, sessionID: string): IGetBodyResponseData<any[]>
|
||||||
{
|
{
|
||||||
return this.httpResponse.emptyArrayResponse();
|
return this.httpResponse.emptyArrayResponse();
|
||||||
@ -65,7 +63,6 @@ export class NotifierCallbacks
|
|||||||
* Handle client/game/profile/select
|
* Handle client/game/profile/select
|
||||||
* @returns ISelectProfileResponse
|
* @returns ISelectProfileResponse
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public selectProfile(
|
public selectProfile(
|
||||||
url: string,
|
url: string,
|
||||||
info: IUIDRequestData,
|
info: IUIDRequestData,
|
||||||
@ -75,7 +72,6 @@ export class NotifierCallbacks
|
|||||||
return this.httpResponse.getBody({ status: "ok" });
|
return this.httpResponse.getBody({ status: "ok" });
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public notify(url: string, info: any, sessionID: string): string
|
public notify(url: string, info: any, sessionID: string): string
|
||||||
{
|
{
|
||||||
return "NOTIFY";
|
return "NOTIFY";
|
||||||
|
@ -70,7 +70,6 @@ export class DialogueController
|
|||||||
* Handle client/friend/list
|
* Handle client/friend/list
|
||||||
* @returns IGetFriendListDataResponse
|
* @returns IGetFriendListDataResponse
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getFriendList(sessionID: string): IGetFriendListDataResponse
|
public getFriendList(sessionID: string): IGetFriendListDataResponse
|
||||||
{
|
{
|
||||||
// Force a fake friend called SPT into friend list
|
// Force a fake friend called SPT into friend list
|
||||||
@ -379,7 +378,6 @@ export class DialogueController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** client/mail/msg/send */
|
/** client/mail/msg/send */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public sendMessage(sessionId: string, request: ISendMessageRequest): string
|
public sendMessage(sessionId: string, request: ISendMessageRequest): string
|
||||||
{
|
{
|
||||||
this.mailSendService.sendPlayerMessageToNpc(sessionId, request.dialogId, request.text);
|
this.mailSendService.sendPlayerMessageToNpc(sessionId, request.dialogId, request.text);
|
||||||
|
@ -172,13 +172,10 @@ export class HealthController
|
|||||||
const payMoneyRequest: IProcessBuyTradeRequestData = {
|
const payMoneyRequest: IProcessBuyTradeRequestData = {
|
||||||
Action: healthTreatmentRequest.Action,
|
Action: healthTreatmentRequest.Action,
|
||||||
tid: Traders.THERAPIST,
|
tid: Traders.THERAPIST,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
scheme_items: healthTreatmentRequest.items,
|
scheme_items: healthTreatmentRequest.items,
|
||||||
type: "",
|
type: "",
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
item_id: "",
|
item_id: "",
|
||||||
count: 0,
|
count: 0,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
scheme_id: 0,
|
scheme_id: 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -230,7 +227,6 @@ export class HealthController
|
|||||||
* @param info Request data
|
* @param info Request data
|
||||||
* @param sessionID
|
* @param sessionID
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public applyWorkoutChanges(pmcData: IPmcData, info: IWorkoutData, sessionId: string): void
|
public applyWorkoutChanges(pmcData: IPmcData, info: IWorkoutData, sessionId: string): void
|
||||||
{
|
{
|
||||||
// https://dev.sp-tarkov.com/SPT/Server/issues/2674
|
// https://dev.sp-tarkov.com/SPT/Server/issues/2674
|
||||||
|
@ -1150,7 +1150,6 @@ export class HideoutController
|
|||||||
* @param sessionId Session id
|
* @param sessionId Session id
|
||||||
* @returns IQteData array
|
* @returns IQteData array
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getQteList(sessionId: string): IQteData[]
|
public getQteList(sessionId: string): IQteData[]
|
||||||
{
|
{
|
||||||
return this.databaseService.getHideout().qte;
|
return this.databaseService.getHideout().qte;
|
||||||
@ -1163,7 +1162,6 @@ export class HideoutController
|
|||||||
* @param pmcData Profile to adjust
|
* @param pmcData Profile to adjust
|
||||||
* @param request QTE result object
|
* @param request QTE result object
|
||||||
*/
|
*/
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public handleQTEEventOutcome(
|
public handleQTEEventOutcome(
|
||||||
sessionId: string,
|
sessionId: string,
|
||||||
pmcData: IPmcData,
|
pmcData: IPmcData,
|
||||||
|
@ -75,7 +75,6 @@ export class MatchController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle match/group/start_game */
|
/** Handle match/group/start_game */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public joinMatch(info: IMatchGroupStartGameRequest, sessionId: string): IProfileStatusResponse
|
public joinMatch(info: IMatchGroupStartGameRequest, sessionId: string): IProfileStatusResponse
|
||||||
{
|
{
|
||||||
const output: IProfileStatusResponse = { maxPveCountExceeded: false, profiles: [] };
|
const output: IProfileStatusResponse = { maxPveCountExceeded: false, profiles: [] };
|
||||||
@ -93,7 +92,6 @@ export class MatchController
|
|||||||
raidMode: "Online",
|
raidMode: "Online",
|
||||||
mode: "deathmatch",
|
mode: "deathmatch",
|
||||||
shortId: undefined,
|
shortId: undefined,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
additional_info: undefined,
|
additional_info: undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -101,7 +99,6 @@ export class MatchController
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** Handle client/match/group/status */
|
/** Handle client/match/group/status */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
public getGroupStatus(info: IMatchGroupStatusRequest): IMatchGroupStatusResponse
|
public getGroupStatus(info: IMatchGroupStatusRequest): IMatchGroupStatusResponse
|
||||||
{
|
{
|
||||||
return { players: [], maxPveCountExceeded: false };
|
return { players: [], maxPveCountExceeded: false };
|
||||||
|
@ -665,7 +665,6 @@ export class QuestController
|
|||||||
startTime: 0,
|
startTime: 0,
|
||||||
status: QuestStatus.AvailableAfter,
|
status: QuestStatus.AvailableAfter,
|
||||||
statusTimers: {
|
statusTimers: {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
9: this.timeUtil.getTimestamp(),
|
9: this.timeUtil.getTimestamp(),
|
||||||
},
|
},
|
||||||
availableAfter: availableAfterTimestamp,
|
availableAfter: availableAfterTimestamp,
|
||||||
|
@ -212,12 +212,9 @@ export class TradeController
|
|||||||
Action: "TradingConfirm",
|
Action: "TradingConfirm",
|
||||||
type: "buy_from_ragfair",
|
type: "buy_from_ragfair",
|
||||||
tid: "ragfair",
|
tid: "ragfair",
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
item_id: fleaOffer._id, // Store ragfair offerId in buyRequestData.item_id
|
item_id: fleaOffer._id, // Store ragfair offerId in buyRequestData.item_id
|
||||||
count: requestOffer.count,
|
count: requestOffer.count,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
scheme_id: 0,
|
scheme_id: 0,
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
scheme_items: requestOffer.items,
|
scheme_items: requestOffer.items,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -366,7 +366,6 @@ export class BotLootGenerator
|
|||||||
{
|
{
|
||||||
// surv12
|
// surv12
|
||||||
this.addLootFromPool(
|
this.addLootFromPool(
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
{ "5d02797c86f774203f38e30a": 1 },
|
{ "5d02797c86f774203f38e30a": 1 },
|
||||||
[EquipmentSlots.SECURED_CONTAINER],
|
[EquipmentSlots.SECURED_CONTAINER],
|
||||||
1,
|
1,
|
||||||
@ -379,7 +378,6 @@ export class BotLootGenerator
|
|||||||
|
|
||||||
// AFAK
|
// AFAK
|
||||||
this.addLootFromPool(
|
this.addLootFromPool(
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
{ "60098ad7c2240c0fe85c570a": 1 },
|
{ "60098ad7c2240c0fe85c570a": 1 },
|
||||||
[EquipmentSlots.SECURED_CONTAINER],
|
[EquipmentSlots.SECURED_CONTAINER],
|
||||||
10,
|
10,
|
||||||
|
@ -478,7 +478,6 @@ export class BotWeaponGenerator
|
|||||||
|
|
||||||
// Define min/max of how many grenades bot will have
|
// Define min/max of how many grenades bot will have
|
||||||
const ubglMinMax: GenerationData = {
|
const ubglMinMax: GenerationData = {
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
weights: { 1: 1, 2: 1 },
|
weights: { 1: 1, 2: 1 },
|
||||||
whitelist: {},
|
whitelist: {},
|
||||||
};
|
};
|
||||||
|
@ -29,7 +29,6 @@ export class ExternalInventoryMagGen implements IInventoryMagGen
|
|||||||
return 99;
|
return 99;
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
canHandleInventoryMagGen(inventoryMagGen: InventoryMagGen): boolean
|
canHandleInventoryMagGen(inventoryMagGen: InventoryMagGen): boolean
|
||||||
{
|
{
|
||||||
return true; // Fallback, if code reaches here it means no other implementation can handle this type of magazine
|
return true; // Fallback, if code reaches here it means no other implementation can handle this type of magazine
|
||||||
|
@ -56,7 +56,6 @@ export class HttpServerHelper
|
|||||||
|
|
||||||
public sendTextJson(resp: any, output: any): void
|
public sendTextJson(resp: any, output: any): void
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
resp.writeHead(200, "OK", { "Content-Type": this.mime.json });
|
resp.writeHead(200, "OK", { "Content-Type": this.mime.json });
|
||||||
resp.end(output);
|
resp.end(output);
|
||||||
}
|
}
|
||||||
|
@ -1266,7 +1266,6 @@ export class InventoryHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
||||||
namespace InventoryHelper
|
namespace InventoryHelper
|
||||||
{
|
{
|
||||||
export interface InventoryItemHash
|
export interface InventoryItemHash
|
||||||
|
@ -1922,7 +1922,6 @@ export class ItemHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-namespace
|
|
||||||
namespace ItemHelper
|
namespace ItemHelper
|
||||||
{
|
{
|
||||||
export interface ItemSize
|
export interface ItemSize
|
||||||
|
@ -52,7 +52,6 @@ export class PostDBModLoader implements OnLoad
|
|||||||
this.preSptModLoader.getImportedModDetails()[modName].main
|
this.preSptModLoader.getImportedModDetails()[modName].main
|
||||||
}`;
|
}`;
|
||||||
const modpath = `${process.cwd()}/${filepath}`;
|
const modpath = `${process.cwd()}/${filepath}`;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
||||||
const mod = require(modpath);
|
const mod = require(modpath);
|
||||||
|
|
||||||
if (this.modTypeCheck.isPostDBLoadAsync(mod.mod))
|
if (this.modTypeCheck.isPostDBLoadAsync(mod.mod))
|
||||||
|
@ -44,7 +44,6 @@ export class PostSptModLoader implements IModLoader
|
|||||||
this.preSptModLoader.getImportedModDetails()[modName].main
|
this.preSptModLoader.getImportedModDetails()[modName].main
|
||||||
}`;
|
}`;
|
||||||
const modpath = `${process.cwd()}/${filepath}`;
|
const modpath = `${process.cwd()}/${filepath}`;
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
||||||
const mod = require(modpath);
|
const mod = require(modpath);
|
||||||
|
|
||||||
if (this.modTypeCheck.isPostSptLoadAsync(mod.mod))
|
if (this.modTypeCheck.isPostSptLoadAsync(mod.mod))
|
||||||
|
@ -382,7 +382,6 @@ export class PreSptModLoader implements IModLoader
|
|||||||
// Import class
|
// Import class
|
||||||
const modFilePath = `${process.cwd()}/${filepath}`;
|
const modFilePath = `${process.cwd()}/${filepath}`;
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
||||||
const requiredMod = require(modFilePath);
|
const requiredMod = require(modFilePath);
|
||||||
|
|
||||||
if (!this.modTypeCheck.isPostV3Compatible(requiredMod.mod))
|
if (!this.modTypeCheck.isPostV3Compatible(requiredMod.mod))
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { Ixyz } from "@spt/models/eft/common/Ixyz";
|
import { Ixyz } from "@spt/models/eft/common/Ixyz";
|
||||||
import { Item } from "@spt/models/eft/common/tables/IItem";
|
import { Item } from "@spt/models/eft/common/tables/IItem";
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
import { MinMax } from "@spt/models/common/MinMax";
|
import { MinMax } from "@spt/models/common/MinMax";
|
||||||
import { Ixyz } from "@spt/models/eft/common/Ixyz";
|
import { Ixyz } from "@spt/models/eft/common/Ixyz";
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export interface ILocationBase
|
export interface ILocationBase
|
||||||
{
|
{
|
||||||
AccessKeys: string[]
|
AccessKeys: string[]
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export interface IBotCore
|
export interface IBotCore
|
||||||
{
|
{
|
||||||
SAVAGE_KILL_DIST: number
|
SAVAGE_KILL_DIST: number
|
||||||
|
@ -49,7 +49,6 @@ export interface EquipmentChances
|
|||||||
TacticalVest: number
|
TacticalVest: number
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export interface ModsChances
|
export interface ModsChances
|
||||||
{
|
{
|
||||||
mod_charge: number
|
mod_charge: number
|
||||||
|
@ -3,7 +3,6 @@ import { Dialogue, IUserBuilds } from "@spt/models/eft/profile/ISptProfile";
|
|||||||
|
|
||||||
export interface IProfileTemplates
|
export interface IProfileTemplates
|
||||||
{
|
{
|
||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
"Standard": IProfileSides
|
"Standard": IProfileSides
|
||||||
"Left Behind": IProfileSides
|
"Left Behind": IProfileSides
|
||||||
"Prepare To Escape": IProfileSides
|
"Prepare To Escape": IProfileSides
|
||||||
@ -13,7 +12,6 @@ export interface IProfileTemplates
|
|||||||
"SPT Developer": IProfileSides
|
"SPT Developer": IProfileSides
|
||||||
"SPT Easy start": IProfileSides
|
"SPT Easy start": IProfileSides
|
||||||
"SPT Zero to hero": IProfileSides
|
"SPT Zero to hero": IProfileSides
|
||||||
/* eslint-enable @typescript-eslint/naming-convention */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IProfileSides
|
export interface IProfileSides
|
||||||
|
@ -295,9 +295,7 @@ export interface Props
|
|||||||
foodUseTime?: number
|
foodUseTime?: number
|
||||||
foodEffectType?: string
|
foodEffectType?: string
|
||||||
StimulatorBuffs?: string
|
StimulatorBuffs?: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
effects_health?: IHealthEffect[] | Record<string, Record<string, number>>
|
effects_health?: IHealthEffect[] | Record<string, Record<string, number>>
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
effects_damage?: Record<string, IEffectDamageProps>
|
effects_damage?: Record<string, IEffectDamageProps>
|
||||||
MaximumNumberOfUsage?: number
|
MaximumNumberOfUsage?: number
|
||||||
knifeHitDelay?: number
|
knifeHitDelay?: number
|
||||||
@ -473,7 +471,6 @@ export interface Slot
|
|||||||
_id: string
|
_id: string
|
||||||
_parent: string
|
_parent: string
|
||||||
_props: SlotProps
|
_props: SlotProps
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
_max_count?: number
|
_max_count?: number
|
||||||
_required?: boolean
|
_required?: boolean
|
||||||
_mergeSlotWithChildren?: boolean
|
_mergeSlotWithChildren?: boolean
|
||||||
@ -502,7 +499,6 @@ export interface StackSlot
|
|||||||
_name?: string
|
_name?: string
|
||||||
_id: string
|
_id: string
|
||||||
_parent: string
|
_parent: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
_max_count: number
|
_max_count: number
|
||||||
_props: StackSlotProps
|
_props: StackSlotProps
|
||||||
_proto: string
|
_proto: string
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { Item } from "@spt/models/eft/common/tables/IItem";
|
import { Item } from "@spt/models/eft/common/tables/IItem";
|
||||||
import { DogtagExchangeSide } from "@spt/models/enums/DogtagExchangeSide";
|
import { DogtagExchangeSide } from "@spt/models/enums/DogtagExchangeSide";
|
||||||
import { ITraderServiceModel } from "@spt/models/spt/services/ITraderServiceModel";
|
import { ITraderServiceModel } from "@spt/models/spt/services/ITraderServiceModel";
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
export interface IDeleteFriendRequest
|
export interface IDeleteFriendRequest
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
friend_id: string
|
friend_id: string
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,6 @@ export interface IGameConfigResponse
|
|||||||
activeProfileId: string
|
activeProfileId: string
|
||||||
backend: Backend
|
backend: Backend
|
||||||
useProtobuf: boolean
|
useProtobuf: boolean
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
utc_time: number
|
utc_time: number
|
||||||
/** Total in game time */
|
/** Total in game time */
|
||||||
totalInGame: number
|
totalInGame: number
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
export interface IGameKeepAliveResponse
|
export interface IGameKeepAliveResponse
|
||||||
{
|
{
|
||||||
msg: string
|
msg: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
utc_time: number
|
utc_time: number
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
export interface IGameStartResponse
|
export interface IGameStartResponse
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
utc_time: number
|
utc_time: number
|
||||||
}
|
}
|
||||||
|
@ -9,6 +9,5 @@ export interface AddItem
|
|||||||
{
|
{
|
||||||
count: number
|
count: number
|
||||||
sptIsPreset?: boolean
|
sptIsPreset?: boolean
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
item_id: string
|
item_id: string
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,5 @@ export interface ISessionStatus
|
|||||||
raidMode?: string
|
raidMode?: string
|
||||||
mode?: string
|
mode?: string
|
||||||
shortId?: string
|
shortId?: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
additional_info?: any[]
|
additional_info?: any[]
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
export interface INotifierChannel
|
export interface INotifierChannel
|
||||||
{
|
{
|
||||||
server: string
|
server: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
channel_id: string
|
channel_id: string
|
||||||
url: string
|
url: string
|
||||||
notifierServer: string
|
notifierServer: string
|
||||||
|
@ -17,6 +17,5 @@ export interface ProfileData
|
|||||||
raidMode?: string
|
raidMode?: string
|
||||||
mode?: string
|
mode?: string
|
||||||
shortId?: string
|
shortId?: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
additional_info?: any[]
|
additional_info?: any[]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { IProcessBaseTradeRequestData } from "@spt/models/eft/trade/IProcessBaseTradeRequestData";
|
import { IProcessBaseTradeRequestData } from "@spt/models/eft/trade/IProcessBaseTradeRequestData";
|
||||||
|
|
||||||
export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData
|
export interface IProcessBuyTradeRequestData extends IProcessBaseTradeRequestData
|
||||||
|
@ -13,6 +13,5 @@ export interface Item
|
|||||||
{
|
{
|
||||||
id: string
|
id: string
|
||||||
count: number
|
count: number
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
scheme_id: number
|
scheme_id: number
|
||||||
}
|
}
|
||||||
|
@ -15,14 +15,10 @@ export interface IWeather
|
|||||||
pressure: number
|
pressure: number
|
||||||
temp: number
|
temp: number
|
||||||
fog: number
|
fog: number
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
rain_intensity: number
|
rain_intensity: number
|
||||||
rain: number
|
rain: number
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
wind_gustiness: number
|
wind_gustiness: number
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
wind_direction: WindDirection
|
wind_direction: WindDirection
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
wind_speed: number
|
wind_speed: number
|
||||||
cloud: number
|
cloud: number
|
||||||
time: string
|
time: string
|
||||||
|
@ -15,6 +15,5 @@ export interface IWsUserConfirmed extends IWsNotificationEvent
|
|||||||
raidMode: RaidMode
|
raidMode: RaidMode
|
||||||
mode: string
|
mode: string
|
||||||
shortId: string
|
shortId: string
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
additional_info: any[]
|
additional_info: any[]
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
export enum QuestStatus
|
export enum QuestStatus
|
||||||
{
|
{
|
||||||
Locked = 0,
|
Locked = 0,
|
||||||
|
1
project/src/models/external/HttpFramework.ts
vendored
1
project/src/models/external/HttpFramework.ts
vendored
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { IncomingMessage, ServerResponse } from "node:http";
|
import { IncomingMessage, ServerResponse } from "node:http";
|
||||||
import { injectable } from "tsyringe";
|
import { injectable } from "tsyringe";
|
||||||
import { HttpMethods } from "@spt/servers/http/HttpMethods";
|
import { HttpMethods } from "@spt/servers/http/HttpMethods";
|
||||||
|
@ -92,9 +92,7 @@ export interface LootMultiplier
|
|||||||
{
|
{
|
||||||
bigmap: number
|
bigmap: number
|
||||||
develop: number
|
develop: number
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
factory4_day: number
|
factory4_day: number
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
factory4_night: number
|
factory4_night: number
|
||||||
interchange: number
|
interchange: number
|
||||||
laboratory: number
|
laboratory: number
|
||||||
|
@ -4,8 +4,6 @@ import { IBarterScheme } from "@spt/models/eft/common/tables/ITrader";
|
|||||||
export interface ICreateFenceAssortsResult
|
export interface ICreateFenceAssortsResult
|
||||||
{
|
{
|
||||||
sptItems: Item[][]
|
sptItems: Item[][]
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
barter_scheme: Record<string, IBarterScheme[][]>
|
barter_scheme: Record<string, IBarterScheme[][]>
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
loyal_level_items: Record<string, number>
|
loyal_level_items: Record<string, number>
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import { ILocation } from "@spt/models/eft/common/ILocation";
|
import { ILocation } from "@spt/models/eft/common/ILocation";
|
||||||
import { ILocationsBase } from "@spt/models/eft/common/tables/ILocationsBase";
|
import { ILocationsBase } from "@spt/models/eft/common/tables/ILocationsBase";
|
||||||
|
|
||||||
|
@ -13,7 +13,6 @@ export class AchievementStaticRouter extends StaticRouter
|
|||||||
super([
|
super([
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/achievement/list",
|
"/client/achievement/list",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
@ -27,7 +26,6 @@ export class AchievementStaticRouter extends StaticRouter
|
|||||||
|
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/achievement/statistic",
|
"/client/achievement/statistic",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
|
@ -13,7 +13,6 @@ export class BuildsStaticRouter extends StaticRouter
|
|||||||
super([
|
super([
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/builds/list",
|
"/client/builds/list",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
@ -26,7 +25,6 @@ export class BuildsStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/builds/magazine/save",
|
"/client/builds/magazine/save",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.buildsCallbacks.createMagazineTemplate(url, info, sessionID);
|
return this.buildsCallbacks.createMagazineTemplate(url, info, sessionID);
|
||||||
@ -34,7 +32,6 @@ export class BuildsStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/builds/weapon/save",
|
"/client/builds/weapon/save",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.buildsCallbacks.setWeapon(url, info, sessionID);
|
return this.buildsCallbacks.setWeapon(url, info, sessionID);
|
||||||
@ -42,7 +39,6 @@ export class BuildsStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/builds/equipment/save",
|
"/client/builds/equipment/save",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.buildsCallbacks.setEquipment(url, info, sessionID);
|
return this.buildsCallbacks.setEquipment(url, info, sessionID);
|
||||||
@ -50,7 +46,6 @@ export class BuildsStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/builds/delete",
|
"/client/builds/delete",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.buildsCallbacks.deleteBuild(url, info, sessionID);
|
return this.buildsCallbacks.deleteBuild(url, info, sessionID);
|
||||||
|
@ -151,7 +151,6 @@ export class GameStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/singleplayer/settings/getRaidTime",
|
"/singleplayer/settings/getRaidTime",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<IGetRaidTimeResponse> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<IGetRaidTimeResponse> =>
|
||||||
{
|
{
|
||||||
return this.gameCallbacks.getRaidTime(url, info, sessionID);
|
return this.gameCallbacks.getRaidTime(url, info, sessionID);
|
||||||
|
@ -265,7 +265,6 @@ export class MatchStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/raid/configuration-by-profile",
|
"/client/raid/configuration-by-profile",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.matchCallbacks.getConfigurationByProfile(url, info, sessionID);
|
return this.matchCallbacks.getConfigurationByProfile(url, info, sessionID);
|
||||||
|
@ -108,7 +108,6 @@ export class ProfileStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/profile/view",
|
"/client/profile/view",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
|
@ -15,7 +15,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
super([
|
super([
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/ragfair/search",
|
"/client/ragfair/search",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
@ -28,7 +27,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/ragfair/find",
|
"/client/ragfair/find",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
@ -41,7 +39,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/ragfair/itemMarketPrice",
|
"/client/ragfair/itemMarketPrice",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
@ -54,7 +51,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/ragfair/offerfees",
|
"/client/ragfair/offerfees",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.ragfairCallbacks.storePlayerOfferTaxAmount(url, info, sessionID);
|
return this.ragfairCallbacks.storePlayerOfferTaxAmount(url, info, sessionID);
|
||||||
@ -62,7 +58,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/reports/ragfair/send",
|
"/client/reports/ragfair/send",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
async (url: string, info: any, sessionID: string, output: string): Promise<INullResponseData> =>
|
||||||
{
|
{
|
||||||
return this.ragfairCallbacks.sendReport(url, info, sessionID);
|
return this.ragfairCallbacks.sendReport(url, info, sessionID);
|
||||||
@ -70,7 +65,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/items/prices",
|
"/client/items/prices",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
@ -83,7 +77,6 @@ export class RagfairStaticRouter extends StaticRouter
|
|||||||
),
|
),
|
||||||
new RouteAction(
|
new RouteAction(
|
||||||
"/client/ragfair/offer/findbyid",
|
"/client/ragfair/offer/findbyid",
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
async (
|
async (
|
||||||
url: string,
|
url: string,
|
||||||
info: any,
|
info: any,
|
||||||
|
@ -166,7 +166,6 @@ export class SptHttpListener implements IHttpListener
|
|||||||
|
|
||||||
public sendJson(resp: ServerResponse, output: string, sessionID: string): void
|
public sendJson(resp: ServerResponse, output: string, sessionID: string): void
|
||||||
{
|
{
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
resp.writeHead(200, "OK", { "Content-Type": "application/json", "Set-Cookie": `PHPSESSID=${sessionID}` });
|
resp.writeHead(200, "OK", { "Content-Type": "application/json", "Set-Cookie": `PHPSESSID=${sessionID}` });
|
||||||
resp.end(output);
|
resp.end(output);
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import path from "node:path";
|
import path from "node:path";
|
||||||
import { inject, injectable } from "tsyringe";
|
import { inject, injectable } from "tsyringe";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An object containing item name overrides for use with ItemTplGenerator
|
* An object containing item name overrides for use with ItemTplGenerator
|
||||||
|
@ -17,7 +17,6 @@ export class AsyncQueue implements IAsyncQueue
|
|||||||
// Add to the queue
|
// Add to the queue
|
||||||
this.commandsQueue.push(command);
|
this.commandsQueue.push(command);
|
||||||
|
|
||||||
// eslint-disable-next-line no-constant-condition
|
|
||||||
while (this.commandsQueue[0].uuid !== command.uuid)
|
while (this.commandsQueue[0].uuid !== command.uuid)
|
||||||
{
|
{
|
||||||
await new Promise<void>((resolve) =>
|
await new Promise<void>((resolve) =>
|
||||||
|
@ -3,8 +3,6 @@ import { Queue } from "@spt/utils/collections/queue/Queue";
|
|||||||
import { JsonUtil } from "@spt/utils/JsonUtil";
|
import { JsonUtil } from "@spt/utils/JsonUtil";
|
||||||
import { VFS } from "@spt/utils/VFS";
|
import { VFS } from "@spt/utils/VFS";
|
||||||
|
|
||||||
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
||||||
/* eslint-disable @typescript-eslint/brace-style */
|
|
||||||
@injectable()
|
@injectable()
|
||||||
export class ImporterUtil
|
export class ImporterUtil
|
||||||
{
|
{
|
||||||
|
@ -2,7 +2,6 @@ import crypto from "node:crypto";
|
|||||||
import fs from "node:fs";
|
import fs from "node:fs";
|
||||||
import { promisify } from "node:util";
|
import { promisify } from "node:util";
|
||||||
import winston, { createLogger, format, transports, addColors } from "winston";
|
import winston, { createLogger, format, transports, addColors } from "winston";
|
||||||
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
||||||
import DailyRotateFile from "winston-daily-rotate-file";
|
import DailyRotateFile from "winston-daily-rotate-file";
|
||||||
import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
|
import { Daum } from "@spt/models/eft/itemEvent/IItemEventRouterRequest";
|
||||||
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
|
import { LogBackgroundColor } from "@spt/models/spt/logging/LogBackgroundColor";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
|
|
||||||
import { container } from "tsyringe";
|
import { container } from "tsyringe";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
|
|
||||||
import { container } from "tsyringe";
|
import { container } from "tsyringe";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
|
|
||||||
import { container } from "tsyringe";
|
import { container } from "tsyringe";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
import { container } from "tsyringe";
|
import { container } from "tsyringe";
|
||||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
/* eslint-disable @typescript-eslint/naming-convention */
|
|
||||||
import "reflect-metadata";
|
import "reflect-metadata";
|
||||||
import { container } from "tsyringe";
|
import { container } from "tsyringe";
|
||||||
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
|
||||||
|
Loading…
Reference in New Issue
Block a user