From a6b7e38ea7cac5ec9eb8a6b2bb43ec530a92f0ae Mon Sep 17 00:00:00 2001 From: kastov Date: Wed, 21 May 2025 20:06:19 +0300 Subject: [PATCH 1/2] chore: release v1.5.2 Release 1.5.2 with the addition of the compression middleware and updated package dependencies. Key changes include: - Added 'compression' package to improve response compression in the application. - Updated version in package.json to 1.5.2. - Enhanced start message to clarify internal ports used. --- package-lock.json | 67 +++++++++++++++++++++++++++ package.json | 4 +- src/common/utils/get-start-message.ts | 2 +- src/main.ts | 3 ++ src/modules/stats/stats.service.ts | 11 +++++ 5 files changed, 85 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index a0ec1f6..869bcc1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "@remnawave/supervisord-nestjs": "0.1.1", "@remnawave/xtls-sdk": "0.3.0", "@remnawave/xtls-sdk-nestjs": "0.2.2", + "compression": "^1.8.0", "enhanced-ms": "^4.1.0", "helmet": "^8.1.0", "husky": "9.1.7", @@ -46,6 +47,7 @@ "devDependencies": { "@nestjs/cli": "11.0.5", "@nestjs/schematics": "11.0.2", + "@types/compression": "^1.8.0", "@types/express": "^5.0.1", "@types/js-yaml": "^4.0.9", "@types/jsonwebtoken": "^9.0.9", @@ -1754,6 +1756,17 @@ "@types/node": "*" } }, + "node_modules/@types/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@types/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-g4vmPIwbTii9dX1HVioHbOolubEaf4re4vDxuzpKrzz9uI7uarBExi9begX0cXyIB85jXZ5X2A/v8rsHZxSAPw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/express": "*", + "@types/node": "*" + } + }, "node_modules/@types/connect": { "version": "3.4.38", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", @@ -3165,6 +3178,60 @@ "node": ">= 6" } }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", + "license": "MIT", + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.8.0.tgz", + "integrity": "sha512-k6WLKfunuqCYD3t6AsuPGvQWaKwuLLh2/xHNcX4qE+vIfDNXpSqnrhwA7O53R7WVQUnt8dVAIW+YHr7xTgOgGA==", + "license": "MIT", + "dependencies": { + "bytes": "3.1.2", + "compressible": "~2.0.18", + "debug": "2.6.9", + "negotiator": "~0.6.4", + "on-headers": "~1.0.2", + "safe-buffer": "5.2.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "license": "MIT", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/compression/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "license": "MIT" + }, + "node_modules/compression/node_modules/negotiator": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.4.tgz", + "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", diff --git a/package.json b/package.json index 7869518..c628a19 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@remnawave/node", - "version": "1.5.1", + "version": "1.5.2", "description": "Remnawave Node", "private": false, "type": "commonjs", @@ -37,6 +37,7 @@ "@remnawave/supervisord-nestjs": "0.1.1", "@remnawave/xtls-sdk": "0.3.0", "@remnawave/xtls-sdk-nestjs": "0.2.2", + "compression": "^1.8.0", "enhanced-ms": "^4.1.0", "helmet": "^8.1.0", "husky": "9.1.7", @@ -64,6 +65,7 @@ "devDependencies": { "@nestjs/cli": "11.0.5", "@nestjs/schematics": "11.0.2", + "@types/compression": "^1.8.0", "@types/express": "^5.0.1", "@types/js-yaml": "^4.0.9", "@types/jsonwebtoken": "^9.0.9", diff --git a/src/common/utils/get-start-message.ts b/src/common/utils/get-start-message.ts index fa1adee..5df2dc4 100644 --- a/src/common/utils/get-start-message.ts +++ b/src/common/utils/get-start-message.ts @@ -19,7 +19,7 @@ export async function getStartMessage( return table( [ ['Docs → https://remna.st\nCommunity → https://t.me/remnawave'], - [`API Port: ${appPort}\nInternal Port: ${internalPort}`], + [`API Port: ${appPort}\nInternal Ports: 61000, ${internalPort}, 61002`], [`XRay Core: v${xrayInfo.version || 'N/A'}\nXRay Path: ${xrayInfo.path}`], [ `SI: ${xrayInfo.systemInfo?.cpuCores}C, ${xrayInfo.systemInfo?.cpuModel}, ${xrayInfo.systemInfo?.memoryTotal}`, diff --git a/src/main.ts b/src/main.ts index 748e17e..7ff8ffa 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,6 +2,7 @@ import { utilities as nestWinstonModuleUtilities, WinstonModule } from 'nest-win import { ZodValidationPipe } from 'nestjs-zod'; import express, { json } from 'express'; import { createLogger } from 'winston'; +import compression from 'compression'; import * as winston from 'winston'; import helmet from 'helmet'; import morgan from 'morgan'; @@ -56,6 +57,8 @@ async function bootstrap(): Promise { app.use(json({ limit: '1000mb' })); + app.use(compression()); + const config = app.get(ConfigService); app.use(helmet()); diff --git a/src/modules/stats/stats.service.ts b/src/modules/stats/stats.service.ts index b2e312b..1dc1952 100644 --- a/src/modules/stats/stats.service.ts +++ b/src/modules/stats/stats.service.ts @@ -92,6 +92,17 @@ export class StatsService { response.data.users.filter((user) => user.uplink !== 0 || user.downlink !== 0), ), }; + + // const demoRes = Array.from({ length: 160_000 }, (_, i) => ({ + // username: String(i + 1), + // uplink: Math.floor(Math.random() * (107374182400 - 10485760) + 10485760), // Random between 10MB and 100GB + // downlink: Math.floor(Math.random() * (107374182400 - 10485760) + 10485760), // Random between 10MB and 100GB + // })); + + // return { + // isOk: true, + // response: new GetUsersStatsResponseModel(demoRes), + // }; } catch (error) { this.logger.error(error); return { From 2e35eb7976ffa964ac0d43a5e605a69f7dd4e0a7 Mon Sep 17 00:00:00 2001 From: kastov Date: Wed, 21 May 2025 20:07:20 +0300 Subject: [PATCH 2/2] chore: update package-lock.json for version 1.5.2 --- package-lock.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 869bcc1..41eb8e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@remnawave/node", - "version": "1.5.1", + "version": "1.5.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@remnawave/node", - "version": "1.5.1", + "version": "1.5.2", "license": "AGPL-3.0-only", "dependencies": { "@cjs-exporter/execa": "9.5.2",