chore(deps): upgrade backend to Nest 12 and TypeScript 6 #14

Merged
ksv741 merged 1 commits from codex/ci-security-renovate into main 2026-09-13 20:44:47 +03:00
5 changed files with 1131 additions and 1172 deletions
+5
View File
@@ -37,6 +37,11 @@ threshold. `npm run test:e2e` отдельно проверяет все HTTP su
выполните обе команды. Результаты — в выполните обе команды. Результаты — в
[remediation registry](../docs/development/audit-remediation.md). [remediation registry](../docs/development/audit-remediation.md).
Nest 12 поставляется как ESM. Скрипты Jest включают `--experimental-vm-modules`,
включая watch/coverage/debug; SQLite runner включает тот же флаг. TypeScript 6
использует явные `rootDir` и типы Node/Jest в `tsconfig.json`. Переход на
TypeScript 7 требует поддержки со стороны `ts-jest` и `typescript-eslint`.
### CI и обновления зависимостей ### CI и обновления зависимостей
`.gitea/workflows/verify.yml` запускает `npm ci`, генерацию Prisma client, `.gitea/workflows/verify.yml` запускает `npm ci`, генерацию Prisma client,
+1100 -1149
View File
File diff suppressed because it is too large Load Diff
+23 -22
View File
@@ -20,10 +20,10 @@
"lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
"typecheck:app": "tsc --project tsconfig.typecheck.app.json", "typecheck:app": "tsc --project tsconfig.typecheck.app.json",
"typecheck:test": "tsc --project tsconfig.typecheck.test.json", "typecheck:test": "tsc --project tsconfig.typecheck.test.json",
"test": "jest", "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
"test:watch": "jest --watch", "test:watch": "npm test -- --watch",
"test:cov": "jest --coverage", "test:cov": "npm test -- --coverage",
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:debug": "node --experimental-vm-modules --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
"test:e2e": "node test/sqlite.cjs --all", "test:e2e": "node test/sqlite.cjs --all",
"test:sqlite": "node test/sqlite.cjs", "test:sqlite": "node test/sqlite.cjs",
"test:durability": "node test/bank-cards-durability.cjs", "test:durability": "node test/bank-cards-durability.cjs",
@@ -33,23 +33,23 @@
"dependencies": { "dependencies": {
"@grpc/grpc-js": "1.14.4", "@grpc/grpc-js": "1.14.4",
"@grpc/proto-loader": "0.8.1", "@grpc/proto-loader": "0.8.1",
"@nestjs/common": "11.2.3", "@nestjs/common": "12.0.1",
"@nestjs/config": "4.0.4", "@nestjs/config": "12.0.0",
"@nestjs/core": "11.2.3", "@nestjs/core": "12.0.1",
"@nestjs/jwt": "11.0.2", "@nestjs/jwt": "12.0.1",
"@nestjs/passport": "11.0.5", "@nestjs/passport": "12.0.0",
"@nestjs/platform-express": "11.2.3", "@nestjs/platform-express": "12.0.1",
"@nestjs/swagger": "11.4.7", "@nestjs/swagger": "12.0.1",
"@prisma/adapter-better-sqlite3": "7.10.0", "@prisma/adapter-better-sqlite3": "7.10.0",
"@prisma/client": "7.10.0", "@prisma/client": "7.10.0",
"bcrypt": "6.0.0", "bcrypt": "6.0.0",
"better-sqlite3": "12.11.1", "better-sqlite3": "13.0.3",
"cheerio": "1.2.0", "cheerio": "1.2.0",
"class-transformer": "0.5.1", "class-transformer": "0.5.1",
"class-validator": "0.15.1", "class-validator": "0.15.1",
"cookie-parser": "1.4.7", "cookie-parser": "1.4.7",
"lru-cache": "11.5.2", "lru-cache": "11.5.2",
"nestjs-pino": "4.6.1", "nestjs-pino": "5.1.0",
"passport": "0.7.0", "passport": "0.7.0",
"passport-jwt": "4.0.1", "passport-jwt": "4.0.1",
"pino-http": "11.0.0", "pino-http": "11.0.0",
@@ -58,21 +58,21 @@
}, },
"devDependencies": { "devDependencies": {
"@eslint/eslintrc": "3.3.7", "@eslint/eslintrc": "3.3.7",
"@eslint/js": "9.39.5", "@eslint/js": "10.0.1",
"@nestjs/cli": "11.0.24", "@nestjs/cli": "12.0.0",
"@nestjs/schematics": "11.1.0", "@nestjs/schematics": "12.0.1",
"@nestjs/testing": "11.2.3", "@nestjs/testing": "12.0.1",
"@types/bcrypt": "6.0.0", "@types/bcrypt": "6.0.0",
"@types/cookie-parser": "1.4.10", "@types/cookie-parser": "1.4.10",
"@types/express": "5.0.6", "@types/express": "5.0.6",
"@types/jest": "30.0.0", "@types/jest": "30.0.0",
"@types/node": "24.13.4", "@types/node": "24.13.4",
"@types/passport-jwt": "4.0.1", "@types/passport-jwt": "4.0.1",
"@types/supertest": "6.0.3", "@types/supertest": "7.2.1",
"eslint": "9.39.5", "eslint": "10.10.0",
"eslint-config-prettier": "10.1.8", "eslint-config-prettier": "10.1.8",
"eslint-plugin-prettier": "5.5.6", "eslint-plugin-prettier": "5.5.6",
"globals": "16.5.0", "globals": "17.12.0",
"jest": "30.5.1", "jest": "30.5.1",
"prettier": "3.9.6", "prettier": "3.9.6",
"prisma": "7.10.0", "prisma": "7.10.0",
@@ -82,7 +82,7 @@
"ts-loader": "9.6.2", "ts-loader": "9.6.2",
"ts-node": "10.9.2", "ts-node": "10.9.2",
"tsconfig-paths": "4.2.0", "tsconfig-paths": "4.2.0",
"typescript": "5.9.3", "typescript": "6.0.3",
"typescript-eslint": "8.70.0" "typescript-eslint": "8.70.0"
}, },
"overrides": { "overrides": {
@@ -120,6 +120,7 @@
"better-sqlite3@12.11.1": true, "better-sqlite3@12.11.1": true,
"fsevents@2.3.3": true, "fsevents@2.3.3": true,
"protobufjs@7.6.5": true, "protobufjs@7.6.5": true,
"unrs-resolver@1.12.2": true "unrs-resolver@1.12.2": true,
"better-sqlite3@13.0.3": true
} }
} }
+1
View File
@@ -522,6 +522,7 @@ export class TbankClient {
if ( if (
[status.UNAUTHENTICATED, status.PERMISSION_DENIED].includes(grpcCode) [status.UNAUTHENTICATED, status.PERMISSION_DENIED].includes(grpcCode)
) )
// eslint-disable-next-line preserve-caught-error -- Discard raw upstream authentication errors at the integration boundary.
throw new Error('INVALID_TBANK_TOKEN'); throw new Error('INVALID_TBANK_TOKEN');
if ( if (
grpcCode === status.NOT_FOUND && grpcCode === status.NOT_FOUND &&
+2 -1
View File
@@ -13,7 +13,8 @@
"target": "ES2023", "target": "ES2023",
"sourceMap": true, "sourceMap": true,
"outDir": "./dist", "outDir": "./dist",
"baseUrl": "./", "rootDir": ".",
"types": ["node", "jest"],
"incremental": true, "incremental": true,
"skipLibCheck": true, "skipLibCheck": true,
"strict": true, "strict": true,