chore(deps): upgrade backend to Nest 12 and TypeScript 6 #14
@@ -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,
|
||||||
|
|||||||
Generated
+1100
-1149
File diff suppressed because it is too large
Load Diff
+23
-22
@@ -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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user