@remnawave/backend-contract 0.3.74 → 0.3.77

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/build/backend/api/controllers/nodes.d.ts +2 -0
  2. package/build/backend/api/controllers/nodes.d.ts.map +1 -1
  3. package/build/backend/api/controllers/nodes.js +2 -0
  4. package/build/backend/api/routes.d.ts +2 -0
  5. package/build/backend/api/routes.d.ts.map +1 -1
  6. package/build/backend/api/routes.js +2 -0
  7. package/build/backend/commands/nodes/get-node-user-usage-by-range.command.d.ts +63 -0
  8. package/build/backend/commands/nodes/get-node-user-usage-by-range.command.d.ts.map +1 -0
  9. package/build/backend/commands/nodes/get-node-user-usage-by-range.command.js +26 -0
  10. package/build/backend/commands/nodes/get-realtime-usage.command.d.ts +69 -0
  11. package/build/backend/commands/nodes/get-realtime-usage.command.d.ts.map +1 -0
  12. package/build/backend/commands/nodes/get-realtime-usage.command.js +24 -0
  13. package/build/backend/commands/nodes/index.d.ts +2 -0
  14. package/build/backend/commands/nodes/index.d.ts.map +1 -1
  15. package/build/backend/commands/nodes/index.js +2 -0
  16. package/build/backend/commands/users/get-user-usage-by-range.command.d.ts +4 -4
  17. package/build/backend/constants/errors/errors.d.ts +10 -0
  18. package/build/backend/constants/errors/errors.d.ts.map +1 -1
  19. package/build/backend/constants/errors/errors.js +10 -0
  20. package/build/frontend/api/controllers/nodes.js +2 -0
  21. package/build/frontend/api/routes.js +2 -0
  22. package/build/frontend/commands/nodes/get-node-user-usage-by-range.command.js +26 -0
  23. package/build/frontend/commands/nodes/get-realtime-usage.command.js +24 -0
  24. package/build/frontend/commands/nodes/index.js +2 -0
  25. package/build/frontend/constants/errors/errors.js +10 -0
  26. package/package.json +1 -1
@@ -11,6 +11,8 @@ export declare const NODES_ROUTES: {
11
11
  readonly GET_ONE: "get-one";
12
12
  readonly STATS: {
13
13
  readonly USAGE_BY_RANGE: "usage/range";
14
+ readonly USAGE_BY_RANGE_USER: "usage/users/range";
15
+ readonly USAGE_REALTIME: "usage/realtime";
14
16
  };
15
17
  readonly REORDER: "reorder";
16
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../api/controllers/nodes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AAEjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAef,CAAC"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../../../api/controllers/nodes.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,EAAG,OAAgB,CAAC;AAEjD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAiBf,CAAC"}
@@ -14,6 +14,8 @@ exports.NODES_ROUTES = {
14
14
  GET_ONE: 'get-one',
15
15
  STATS: {
16
16
  USAGE_BY_RANGE: 'usage/range',
17
+ USAGE_BY_RANGE_USER: 'usage/users/range',
18
+ USAGE_REALTIME: 'usage/realtime',
17
19
  },
18
20
  REORDER: 'reorder',
19
21
  };
@@ -27,6 +27,8 @@ export declare const REST_API: {
27
27
  readonly RESTART_ALL: "/api/nodes/restart-all";
28
28
  readonly STATS: {
29
29
  readonly USAGE_BY_RANGE: "/api/nodes/usage/range";
30
+ readonly USAGE_BY_RANGE_USER: (uuid: string) => string;
31
+ readonly USAGE_REALTIME: "/api/nodes/usage/realtime";
30
32
  };
31
33
  readonly REORDER: "/api/nodes/reorder";
32
34
  };
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../api/routes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AACpC,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAC;AAChD,eAAO,MAAM,cAAc,EAAG,SAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;;gCAQE,MAAM;;;;;;;;gCASN,MAAM;;;iCAIL,MAAM;iCAEN,MAAM;iCAEN,MAAM;gCAEP,MAAM;;;;;;;;;;;;;;kDAeY,MAAM;;;;;;;;;;qCAWnB,MAAM;gDAEK,MAAM;6CAET,MAAM;8DAEW,MAAM;6CAEvB,MAAM;sCAEb,MAAM;qCAEP,MAAM;qCAEN,MAAM;;+CAGI,MAAM;;4CAGT,MAAM;;;;;;;;;;;;;kDAcA,MAAM;uCAEjB,MAAM;;gDAGG,MAAM;;;;kCAKpB,MAAM;0CAEE,MAAM;uCAET,MAAM;;;;;;;;gCASb,MAAM;iCAEL,MAAM;;;;;;;;;;;;;;;0CAgBG,MAAM;;;;;;;CAQ7B,CAAC"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../../api/routes.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,IAAI,EAAG,MAAe,CAAC;AACpC,eAAO,MAAM,YAAY,EAAG,UAAmB,CAAC;AAChD,eAAO,MAAM,cAAc,EAAG,SAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;;gCAQE,MAAM;;;;;;;;gCASN,MAAM;;;iCAIL,MAAM;iCAEN,MAAM;iCAEN,MAAM;gCAEP,MAAM;;;;iDAKW,MAAM;;;;;;;;;;;;kDAaL,MAAM;;;;;;;;;;qCAWnB,MAAM;gDAEK,MAAM;6CAET,MAAM;8DAEW,MAAM;6CAEvB,MAAM;sCAEb,MAAM;qCAEP,MAAM;qCAEN,MAAM;;+CAGI,MAAM;;4CAGT,MAAM;;;;;;;;;;;;;kDAcA,MAAM;uCAEjB,MAAM;;gDAGG,MAAM;;;;kCAKpB,MAAM;0CAEE,MAAM;uCAET,MAAM;;;;;;;;gCASb,MAAM;iCAEL,MAAM;;;;;;;;;;;;;;;0CAgBG,MAAM;;;;;;;CAQ7B,CAAC"}
@@ -64,6 +64,8 @@ exports.REST_API = {
64
64
  RESTART_ALL: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.RESTART_ALL}`,
65
65
  STATS: {
66
66
  USAGE_BY_RANGE: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.STATS.USAGE_BY_RANGE}`,
67
+ USAGE_BY_RANGE_USER: (uuid) => `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.STATS.USAGE_BY_RANGE_USER}/${uuid}`,
68
+ USAGE_REALTIME: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.STATS.USAGE_REALTIME}`,
67
69
  },
68
70
  REORDER: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.REORDER}`,
69
71
  },
@@ -0,0 +1,63 @@
1
+ import { z } from 'zod';
2
+ export declare namespace GetNodeUserUsageByRangeCommand {
3
+ const url: (uuid: string) => string;
4
+ const TSQ_url: string;
5
+ const RequestSchema: z.ZodObject<{
6
+ uuid: z.ZodString;
7
+ }, "strip", z.ZodTypeAny, {
8
+ uuid: string;
9
+ }, {
10
+ uuid: string;
11
+ }>;
12
+ type Request = z.infer<typeof RequestSchema>;
13
+ const RequestQuerySchema: z.ZodObject<{
14
+ start: z.ZodString;
15
+ end: z.ZodString;
16
+ }, "strip", z.ZodTypeAny, {
17
+ start: string;
18
+ end: string;
19
+ }, {
20
+ start: string;
21
+ end: string;
22
+ }>;
23
+ type RequestQuery = z.infer<typeof RequestQuerySchema>;
24
+ const ResponseSchema: z.ZodObject<{
25
+ response: z.ZodArray<z.ZodObject<{
26
+ userUuid: z.ZodString;
27
+ username: z.ZodString;
28
+ nodeUuid: z.ZodString;
29
+ total: z.ZodNumber;
30
+ date: z.ZodEffects<z.ZodString, Date, string>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ username: string;
33
+ date: Date;
34
+ userUuid: string;
35
+ nodeUuid: string;
36
+ total: number;
37
+ }, {
38
+ username: string;
39
+ date: string;
40
+ userUuid: string;
41
+ nodeUuid: string;
42
+ total: number;
43
+ }>, "many">;
44
+ }, "strip", z.ZodTypeAny, {
45
+ response: {
46
+ username: string;
47
+ date: Date;
48
+ userUuid: string;
49
+ nodeUuid: string;
50
+ total: number;
51
+ }[];
52
+ }, {
53
+ response: {
54
+ username: string;
55
+ date: string;
56
+ userUuid: string;
57
+ nodeUuid: string;
58
+ total: number;
59
+ }[];
60
+ }>;
61
+ type Response = z.infer<typeof ResponseSchema>;
62
+ }
63
+ //# sourceMappingURL=get-node-user-usage-by-range.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-node-user-usage-by-range.command.d.ts","sourceRoot":"","sources":["../../../../commands/nodes/get-node-user-usage-by-range.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yBAAiB,8BAA8B,CAAC;IACrC,MAAM,GAAG,0BAA2C,CAAC;IACrD,MAAM,OAAO,QAAe,CAAC;IAE7B,MAAM,aAAa;;;;;;MAExB,CAAC;IAEH,KAAY,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IAE7C,MAAM,kBAAkB;;;;;;;;;MAG7B,CAAC;IAEH,KAAY,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;IAEvD,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAUzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNodeUserUsageByRangeCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../api");
6
+ var GetNodeUserUsageByRangeCommand;
7
+ (function (GetNodeUserUsageByRangeCommand) {
8
+ GetNodeUserUsageByRangeCommand.url = api_1.REST_API.NODES.STATS.USAGE_BY_RANGE_USER;
9
+ GetNodeUserUsageByRangeCommand.TSQ_url = GetNodeUserUsageByRangeCommand.url(':uuid');
10
+ GetNodeUserUsageByRangeCommand.RequestSchema = zod_1.z.object({
11
+ uuid: zod_1.z.string().uuid(),
12
+ });
13
+ GetNodeUserUsageByRangeCommand.RequestQuerySchema = zod_1.z.object({
14
+ start: zod_1.z.string(),
15
+ end: zod_1.z.string(),
16
+ });
17
+ GetNodeUserUsageByRangeCommand.ResponseSchema = zod_1.z.object({
18
+ response: zod_1.z.array(zod_1.z.object({
19
+ userUuid: zod_1.z.string().uuid(),
20
+ username: zod_1.z.string(),
21
+ nodeUuid: zod_1.z.string().uuid(),
22
+ total: zod_1.z.number(),
23
+ date: zod_1.z.string().transform((str) => new Date(str)),
24
+ })),
25
+ });
26
+ })(GetNodeUserUsageByRangeCommand || (exports.GetNodeUserUsageByRangeCommand = GetNodeUserUsageByRangeCommand = {}));
@@ -0,0 +1,69 @@
1
+ import { z } from 'zod';
2
+ export declare namespace GetNodesRealtimeUsageCommand {
3
+ const url: "/api/nodes/usage/realtime";
4
+ const TSQ_url: "/api/nodes/usage/realtime";
5
+ const ResponseSchema: z.ZodObject<{
6
+ response: z.ZodArray<z.ZodObject<{
7
+ nodeUuid: z.ZodString;
8
+ nodeName: z.ZodString;
9
+ countryCode: z.ZodString;
10
+ downloadBytesDelta: z.ZodNumber;
11
+ uploadBytesDelta: z.ZodNumber;
12
+ totalBytesDelta: z.ZodNumber;
13
+ secondsDiff: z.ZodNumber;
14
+ downloadSpeedBps: z.ZodNumber;
15
+ uploadSpeedBps: z.ZodNumber;
16
+ totalSpeedBps: z.ZodNumber;
17
+ }, "strip", z.ZodTypeAny, {
18
+ nodeName: string;
19
+ countryCode: string;
20
+ nodeUuid: string;
21
+ downloadBytesDelta: number;
22
+ uploadBytesDelta: number;
23
+ totalBytesDelta: number;
24
+ secondsDiff: number;
25
+ downloadSpeedBps: number;
26
+ uploadSpeedBps: number;
27
+ totalSpeedBps: number;
28
+ }, {
29
+ nodeName: string;
30
+ countryCode: string;
31
+ nodeUuid: string;
32
+ downloadBytesDelta: number;
33
+ uploadBytesDelta: number;
34
+ totalBytesDelta: number;
35
+ secondsDiff: number;
36
+ downloadSpeedBps: number;
37
+ uploadSpeedBps: number;
38
+ totalSpeedBps: number;
39
+ }>, "many">;
40
+ }, "strip", z.ZodTypeAny, {
41
+ response: {
42
+ nodeName: string;
43
+ countryCode: string;
44
+ nodeUuid: string;
45
+ downloadBytesDelta: number;
46
+ uploadBytesDelta: number;
47
+ totalBytesDelta: number;
48
+ secondsDiff: number;
49
+ downloadSpeedBps: number;
50
+ uploadSpeedBps: number;
51
+ totalSpeedBps: number;
52
+ }[];
53
+ }, {
54
+ response: {
55
+ nodeName: string;
56
+ countryCode: string;
57
+ nodeUuid: string;
58
+ downloadBytesDelta: number;
59
+ uploadBytesDelta: number;
60
+ totalBytesDelta: number;
61
+ secondsDiff: number;
62
+ downloadSpeedBps: number;
63
+ uploadSpeedBps: number;
64
+ totalSpeedBps: number;
65
+ }[];
66
+ }>;
67
+ type Response = z.infer<typeof ResponseSchema>;
68
+ }
69
+ //# sourceMappingURL=get-realtime-usage.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-realtime-usage.command.d.ts","sourceRoot":"","sources":["../../../../commands/nodes/get-realtime-usage.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,yBAAiB,4BAA4B,CAAC;IACnC,MAAM,GAAG,6BAAsC,CAAC;IAChD,MAAM,OAAO,6BAAM,CAAC;IAEpB,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAezB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNodesRealtimeUsageCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../api");
6
+ var GetNodesRealtimeUsageCommand;
7
+ (function (GetNodesRealtimeUsageCommand) {
8
+ GetNodesRealtimeUsageCommand.url = api_1.REST_API.NODES.STATS.USAGE_REALTIME;
9
+ GetNodesRealtimeUsageCommand.TSQ_url = GetNodesRealtimeUsageCommand.url;
10
+ GetNodesRealtimeUsageCommand.ResponseSchema = zod_1.z.object({
11
+ response: zod_1.z.array(zod_1.z.object({
12
+ nodeUuid: zod_1.z.string().uuid(),
13
+ nodeName: zod_1.z.string(),
14
+ countryCode: zod_1.z.string(),
15
+ downloadBytesDelta: zod_1.z.number(),
16
+ uploadBytesDelta: zod_1.z.number(),
17
+ totalBytesDelta: zod_1.z.number(),
18
+ secondsDiff: zod_1.z.number(),
19
+ downloadSpeedBps: zod_1.z.number(),
20
+ uploadSpeedBps: zod_1.z.number(),
21
+ totalSpeedBps: zod_1.z.number(),
22
+ })),
23
+ });
24
+ })(GetNodesRealtimeUsageCommand || (exports.GetNodesRealtimeUsageCommand = GetNodesRealtimeUsageCommand = {}));
@@ -3,8 +3,10 @@ export * from './delete.command';
3
3
  export * from './disable.command';
4
4
  export * from './enable.command';
5
5
  export * from './get-all.command';
6
+ export * from './get-node-user-usage-by-range.command';
6
7
  export * from './get-nodes-usage-by-range.command';
7
8
  export * from './get-one.command';
9
+ export * from './get-realtime-usage.command';
8
10
  export * from './reorder.command';
9
11
  export * from './restart-all.command';
10
12
  export * from './restart.command';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/nodes/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,mBAAmB,CAAC;AAClC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -19,8 +19,10 @@ __exportStar(require("./delete.command"), exports);
19
19
  __exportStar(require("./disable.command"), exports);
20
20
  __exportStar(require("./enable.command"), exports);
21
21
  __exportStar(require("./get-all.command"), exports);
22
+ __exportStar(require("./get-node-user-usage-by-range.command"), exports);
22
23
  __exportStar(require("./get-nodes-usage-by-range.command"), exports);
23
24
  __exportStar(require("./get-one.command"), exports);
25
+ __exportStar(require("./get-realtime-usage.command"), exports);
24
26
  __exportStar(require("./reorder.command"), exports);
25
27
  __exportStar(require("./restart-all.command"), exports);
26
28
  __exportStar(require("./restart.command"), exports);
@@ -31,31 +31,31 @@ export declare namespace GetUserUsageByRangeCommand {
31
31
  }, "strip", z.ZodTypeAny, {
32
32
  date: Date;
33
33
  nodeName: string;
34
+ userUuid: string;
34
35
  nodeUuid: string;
35
36
  total: number;
36
- userUuid: string;
37
37
  }, {
38
38
  date: string;
39
39
  nodeName: string;
40
+ userUuid: string;
40
41
  nodeUuid: string;
41
42
  total: number;
42
- userUuid: string;
43
43
  }>, "many">;
44
44
  }, "strip", z.ZodTypeAny, {
45
45
  response: {
46
46
  date: Date;
47
47
  nodeName: string;
48
+ userUuid: string;
48
49
  nodeUuid: string;
49
50
  total: number;
50
- userUuid: string;
51
51
  }[];
52
52
  }, {
53
53
  response: {
54
54
  date: string;
55
55
  nodeName: string;
56
+ userUuid: string;
56
57
  nodeUuid: string;
57
58
  total: number;
58
- userUuid: string;
59
59
  }[];
60
60
  }>;
61
61
  type Response = z.infer<typeof ResponseSchema>;
@@ -494,5 +494,15 @@ export declare const ERRORS: {
494
494
  readonly message: "Activate all inbounds error";
495
495
  readonly httpCode: 500;
496
496
  };
497
+ readonly GET_NODES_USER_USAGE_BY_RANGE_ERROR: {
498
+ readonly code: "A094";
499
+ readonly message: "Get nodes user usage by range error";
500
+ readonly httpCode: 500;
501
+ };
502
+ readonly GET_NODES_REALTIME_USAGE_ERROR: {
503
+ readonly code: "A095";
504
+ readonly message: "Get nodes realtime usage error";
505
+ readonly httpCode: 500;
506
+ };
497
507
  };
498
508
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../constants/errors/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAwJY,MAAM;;;;;;;;;;wCAUN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA4IN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmK3B,CAAC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../../constants/errors/errors.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCAwJY,MAAM;;;;;;;;;;wCAUN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wCA4IN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6K3B,CAAC"}
@@ -465,4 +465,14 @@ exports.ERRORS = {
465
465
  message: 'Activate all inbounds error',
466
466
  httpCode: 500,
467
467
  },
468
+ GET_NODES_USER_USAGE_BY_RANGE_ERROR: {
469
+ code: 'A094',
470
+ message: 'Get nodes user usage by range error',
471
+ httpCode: 500,
472
+ },
473
+ GET_NODES_REALTIME_USAGE_ERROR: {
474
+ code: 'A095',
475
+ message: 'Get nodes realtime usage error',
476
+ httpCode: 500,
477
+ },
468
478
  };
@@ -14,6 +14,8 @@ exports.NODES_ROUTES = {
14
14
  GET_ONE: 'get-one',
15
15
  STATS: {
16
16
  USAGE_BY_RANGE: 'usage/range',
17
+ USAGE_BY_RANGE_USER: 'usage/users/range',
18
+ USAGE_REALTIME: 'usage/realtime',
17
19
  },
18
20
  REORDER: 'reorder',
19
21
  };
@@ -64,6 +64,8 @@ exports.REST_API = {
64
64
  RESTART_ALL: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.RESTART_ALL}`,
65
65
  STATS: {
66
66
  USAGE_BY_RANGE: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.STATS.USAGE_BY_RANGE}`,
67
+ USAGE_BY_RANGE_USER: (uuid) => `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.STATS.USAGE_BY_RANGE_USER}/${uuid}`,
68
+ USAGE_REALTIME: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.STATS.USAGE_REALTIME}`,
67
69
  },
68
70
  REORDER: `${exports.ROOT}/${CONTROLLERS.NODES_CONTROLLER}/${CONTROLLERS.NODES_ROUTES.REORDER}`,
69
71
  },
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNodeUserUsageByRangeCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../api");
6
+ var GetNodeUserUsageByRangeCommand;
7
+ (function (GetNodeUserUsageByRangeCommand) {
8
+ GetNodeUserUsageByRangeCommand.url = api_1.REST_API.NODES.STATS.USAGE_BY_RANGE_USER;
9
+ GetNodeUserUsageByRangeCommand.TSQ_url = GetNodeUserUsageByRangeCommand.url(':uuid');
10
+ GetNodeUserUsageByRangeCommand.RequestSchema = zod_1.z.object({
11
+ uuid: zod_1.z.string().uuid(),
12
+ });
13
+ GetNodeUserUsageByRangeCommand.RequestQuerySchema = zod_1.z.object({
14
+ start: zod_1.z.string(),
15
+ end: zod_1.z.string(),
16
+ });
17
+ GetNodeUserUsageByRangeCommand.ResponseSchema = zod_1.z.object({
18
+ response: zod_1.z.array(zod_1.z.object({
19
+ userUuid: zod_1.z.string().uuid(),
20
+ username: zod_1.z.string(),
21
+ nodeUuid: zod_1.z.string().uuid(),
22
+ total: zod_1.z.number(),
23
+ date: zod_1.z.string().transform((str) => new Date(str)),
24
+ })),
25
+ });
26
+ })(GetNodeUserUsageByRangeCommand || (exports.GetNodeUserUsageByRangeCommand = GetNodeUserUsageByRangeCommand = {}));
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNodesRealtimeUsageCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../api");
6
+ var GetNodesRealtimeUsageCommand;
7
+ (function (GetNodesRealtimeUsageCommand) {
8
+ GetNodesRealtimeUsageCommand.url = api_1.REST_API.NODES.STATS.USAGE_REALTIME;
9
+ GetNodesRealtimeUsageCommand.TSQ_url = GetNodesRealtimeUsageCommand.url;
10
+ GetNodesRealtimeUsageCommand.ResponseSchema = zod_1.z.object({
11
+ response: zod_1.z.array(zod_1.z.object({
12
+ nodeUuid: zod_1.z.string().uuid(),
13
+ nodeName: zod_1.z.string(),
14
+ countryCode: zod_1.z.string(),
15
+ downloadBytesDelta: zod_1.z.number(),
16
+ uploadBytesDelta: zod_1.z.number(),
17
+ totalBytesDelta: zod_1.z.number(),
18
+ secondsDiff: zod_1.z.number(),
19
+ downloadSpeedBps: zod_1.z.number(),
20
+ uploadSpeedBps: zod_1.z.number(),
21
+ totalSpeedBps: zod_1.z.number(),
22
+ })),
23
+ });
24
+ })(GetNodesRealtimeUsageCommand || (exports.GetNodesRealtimeUsageCommand = GetNodesRealtimeUsageCommand = {}));
@@ -19,8 +19,10 @@ __exportStar(require("./delete.command"), exports);
19
19
  __exportStar(require("./disable.command"), exports);
20
20
  __exportStar(require("./enable.command"), exports);
21
21
  __exportStar(require("./get-all.command"), exports);
22
+ __exportStar(require("./get-node-user-usage-by-range.command"), exports);
22
23
  __exportStar(require("./get-nodes-usage-by-range.command"), exports);
23
24
  __exportStar(require("./get-one.command"), exports);
25
+ __exportStar(require("./get-realtime-usage.command"), exports);
24
26
  __exportStar(require("./reorder.command"), exports);
25
27
  __exportStar(require("./restart-all.command"), exports);
26
28
  __exportStar(require("./restart.command"), exports);
@@ -465,4 +465,14 @@ exports.ERRORS = {
465
465
  message: 'Activate all inbounds error',
466
466
  httpCode: 500,
467
467
  },
468
+ GET_NODES_USER_USAGE_BY_RANGE_ERROR: {
469
+ code: 'A094',
470
+ message: 'Get nodes user usage by range error',
471
+ httpCode: 500,
472
+ },
473
+ GET_NODES_REALTIME_USAGE_ERROR: {
474
+ code: 'A095',
475
+ message: 'Get nodes realtime usage error',
476
+ httpCode: 500,
477
+ },
468
478
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "0.3.74",
3
+ "version": "0.3.77",
4
4
  "public": true,
5
5
  "license": "AGPL-3.0-only",
6
6
  "description": "A contract library for Remnawave Backend. It can be used in backend and frontend.",