@remnawave/backend-contract 2.0.0-alpha.30 → 2.0.0-alpha.32

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 (37) hide show
  1. package/build/backend/api/controllers/system.d.ts +1 -0
  2. package/build/backend/api/controllers/system.d.ts.map +1 -1
  3. package/build/backend/api/controllers/system.js +1 -0
  4. package/build/backend/api/routes.d.ts +1 -0
  5. package/build/backend/api/routes.d.ts.map +1 -1
  6. package/build/backend/api/routes.js +1 -0
  7. package/build/backend/commands/system/get-nodes-metrics.command.d.ts +153 -0
  8. package/build/backend/commands/system/get-nodes-metrics.command.d.ts.map +1 -0
  9. package/build/backend/commands/system/get-nodes-metrics.command.js +33 -0
  10. package/build/backend/commands/system/index.d.ts +1 -0
  11. package/build/backend/commands/system/index.d.ts.map +1 -1
  12. package/build/backend/commands/system/index.js +1 -0
  13. package/build/backend/constants/errors/errors.d.ts +10 -0
  14. package/build/backend/constants/errors/errors.d.ts.map +1 -1
  15. package/build/backend/constants/errors/errors.js +10 -0
  16. package/build/backend/constants/index.d.ts +1 -0
  17. package/build/backend/constants/index.d.ts.map +1 -1
  18. package/build/backend/constants/index.js +1 -0
  19. package/build/backend/constants/messaging/index.d.ts +2 -0
  20. package/build/backend/constants/messaging/index.d.ts.map +1 -0
  21. package/build/backend/constants/messaging/index.js +17 -0
  22. package/build/backend/constants/messaging/messaging.constants.d.ts +13 -0
  23. package/build/backend/constants/messaging/messaging.constants.d.ts.map +1 -0
  24. package/build/backend/constants/messaging/messaging.constants.js +19 -0
  25. package/build/backend/constants/metrics/metric-names.constant.d.ts +16 -0
  26. package/build/backend/constants/metrics/metric-names.constant.d.ts.map +1 -1
  27. package/build/backend/constants/metrics/metric-names.constant.js +16 -0
  28. package/build/frontend/api/controllers/system.js +1 -0
  29. package/build/frontend/api/routes.js +1 -0
  30. package/build/frontend/commands/system/get-nodes-metrics.command.js +33 -0
  31. package/build/frontend/commands/system/index.js +1 -0
  32. package/build/frontend/constants/errors/errors.js +10 -0
  33. package/build/frontend/constants/index.js +1 -0
  34. package/build/frontend/constants/messaging/index.js +17 -0
  35. package/build/frontend/constants/messaging/messaging.constants.js +19 -0
  36. package/build/frontend/constants/metrics/metric-names.constant.js +16 -0
  37. package/package.json +2 -2
@@ -4,6 +4,7 @@ export declare const SYSTEM_ROUTES: {
4
4
  readonly SYSTEM_STATS: "stats";
5
5
  readonly BANDWIDTH_STATS: "stats/bandwidth";
6
6
  readonly NODES_STATS: "stats/nodes";
7
+ readonly NODES_METRICS: "nodes/metrics";
7
8
  };
8
9
  readonly HEALTH: "health";
9
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../api/controllers/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAC;AAEnD,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../../../api/controllers/system.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,EAAG,QAAiB,CAAC;AAEnD,eAAO,MAAM,aAAa;;;;;;;;CAQhB,CAAC"}
@@ -7,6 +7,7 @@ exports.SYSTEM_ROUTES = {
7
7
  SYSTEM_STATS: 'stats',
8
8
  BANDWIDTH_STATS: 'stats/bandwidth',
9
9
  NODES_STATS: 'stats/nodes',
10
+ NODES_METRICS: 'nodes/metrics',
10
11
  },
11
12
  HEALTH: 'health',
12
13
  };
@@ -105,6 +105,7 @@ export declare const REST_API: {
105
105
  readonly SYSTEM_STATS: "/api/system/stats";
106
106
  readonly BANDWIDTH_STATS: "/api/system/stats/bandwidth";
107
107
  readonly NODES_STATS: "/api/system/stats/nodes";
108
+ readonly NODES_METRICS: "/api/system/nodes/metrics";
108
109
  };
109
110
  };
110
111
  readonly SUBSCRIPTION_TEMPLATE: {
@@ -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;;;;;;;;;;;gCAYE,MAAM;;;;;;;;;qCAYD,MAAM;;gCAGX,MAAM;;oCAIF,MAAM;qCAIL,MAAM;qCAIN,MAAM;;;;;;iDAUM,MAAM;;;;;;;;gCAWvB,MAAM;qCAGD,MAAM;0CAED,MAAM;;qCAIX,MAAM;oCAIP,MAAM;2CAIC,MAAM;iDAIA,MAAM;;;6CAOV,MAAM;0CAIT,MAAM;2DAIW,MAAM;+CAIlB,MAAM;oCAIjB,MAAM;gCAIV,MAAM;;;;;;;;;;;;;;;gDAmBU,MAAM;;;;;;;kCAWpB,MAAM;0CAEE,MAAM;uCAET,MAAM;;;;;;qCASR,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;qCAuBD,MAAM;;;;;;;;;mDAYQ,MAAM;;;;;;0CASf,MAAM;;;;;;;qCAUX,MAAM;gCAIX,MAAM;sDAIgB,MAAM;;;;;;;qCAUvB,MAAM;gCAIX,MAAM;;uCAMC,MAAM;0CAEH,MAAM;;;;;;;yCASP,MAAM;8CAED,MAAM;;;;6CAMP,MAAM;;;gDAKH,MAAM;;CAGnC,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;;;;;;;;;;;gCAYE,MAAM;;;;;;;;;qCAYD,MAAM;;gCAGX,MAAM;;oCAIF,MAAM;qCAIL,MAAM;qCAIN,MAAM;;;;;;iDAUM,MAAM;;;;;;;;gCAWvB,MAAM;qCAGD,MAAM;0CAED,MAAM;;qCAIX,MAAM;oCAIP,MAAM;2CAIC,MAAM;iDAIA,MAAM;;;6CAOV,MAAM;0CAIT,MAAM;2DAIW,MAAM;+CAIlB,MAAM;oCAIjB,MAAM;gCAIV,MAAM;;;;;;;;;;;;;;;gDAmBU,MAAM;;;;;;;kCAWpB,MAAM;0CAEE,MAAM;uCAET,MAAM;;;;;;qCASR,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;qCAwBD,MAAM;;;;;;;;;mDAYQ,MAAM;;;;;;0CASf,MAAM;;;;;;;qCAUX,MAAM;gCAIX,MAAM;sDAIgB,MAAM;;;;;;;qCAUvB,MAAM;gCAIX,MAAM;;uCAMC,MAAM;0CAEH,MAAM;;;;;;;yCASP,MAAM;8CAED,MAAM;;;;6CAMP,MAAM;;;gDAKH,MAAM;;CAGnC,CAAC"}
@@ -142,6 +142,7 @@ exports.REST_API = {
142
142
  SYSTEM_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.SYSTEM_STATS}`,
143
143
  BANDWIDTH_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.BANDWIDTH_STATS}`,
144
144
  NODES_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_STATS}`,
145
+ NODES_METRICS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_METRICS}`,
145
146
  },
146
147
  },
147
148
  SUBSCRIPTION_TEMPLATE: {
@@ -0,0 +1,153 @@
1
+ import { z } from 'zod';
2
+ export declare namespace GetNodesMetricsCommand {
3
+ const url: "/api/system/nodes/metrics";
4
+ const TSQ_url: "/api/system/nodes/metrics";
5
+ const endpointDetails: import("../../constants").EndpointDetails;
6
+ const ResponseSchema: z.ZodObject<{
7
+ response: z.ZodObject<{
8
+ nodes: z.ZodArray<z.ZodObject<{
9
+ nodeUuid: z.ZodString;
10
+ nodeName: z.ZodString;
11
+ countryEmoji: z.ZodString;
12
+ providerName: z.ZodString;
13
+ usersOnline: z.ZodNumber;
14
+ inboundsStats: z.ZodArray<z.ZodObject<{
15
+ tag: z.ZodString;
16
+ upload: z.ZodString;
17
+ download: z.ZodString;
18
+ }, "strip", z.ZodTypeAny, {
19
+ tag: string;
20
+ upload: string;
21
+ download: string;
22
+ }, {
23
+ tag: string;
24
+ upload: string;
25
+ download: string;
26
+ }>, "many">;
27
+ outboundsStats: z.ZodArray<z.ZodObject<{
28
+ tag: z.ZodString;
29
+ upload: z.ZodString;
30
+ download: z.ZodString;
31
+ }, "strip", z.ZodTypeAny, {
32
+ tag: string;
33
+ upload: string;
34
+ download: string;
35
+ }, {
36
+ tag: string;
37
+ upload: string;
38
+ download: string;
39
+ }>, "many">;
40
+ }, "strip", z.ZodTypeAny, {
41
+ nodeName: string;
42
+ nodeUuid: string;
43
+ usersOnline: number;
44
+ countryEmoji: string;
45
+ providerName: string;
46
+ inboundsStats: {
47
+ tag: string;
48
+ upload: string;
49
+ download: string;
50
+ }[];
51
+ outboundsStats: {
52
+ tag: string;
53
+ upload: string;
54
+ download: string;
55
+ }[];
56
+ }, {
57
+ nodeName: string;
58
+ nodeUuid: string;
59
+ usersOnline: number;
60
+ countryEmoji: string;
61
+ providerName: string;
62
+ inboundsStats: {
63
+ tag: string;
64
+ upload: string;
65
+ download: string;
66
+ }[];
67
+ outboundsStats: {
68
+ tag: string;
69
+ upload: string;
70
+ download: string;
71
+ }[];
72
+ }>, "many">;
73
+ }, "strip", z.ZodTypeAny, {
74
+ nodes: {
75
+ nodeName: string;
76
+ nodeUuid: string;
77
+ usersOnline: number;
78
+ countryEmoji: string;
79
+ providerName: string;
80
+ inboundsStats: {
81
+ tag: string;
82
+ upload: string;
83
+ download: string;
84
+ }[];
85
+ outboundsStats: {
86
+ tag: string;
87
+ upload: string;
88
+ download: string;
89
+ }[];
90
+ }[];
91
+ }, {
92
+ nodes: {
93
+ nodeName: string;
94
+ nodeUuid: string;
95
+ usersOnline: number;
96
+ countryEmoji: string;
97
+ providerName: string;
98
+ inboundsStats: {
99
+ tag: string;
100
+ upload: string;
101
+ download: string;
102
+ }[];
103
+ outboundsStats: {
104
+ tag: string;
105
+ upload: string;
106
+ download: string;
107
+ }[];
108
+ }[];
109
+ }>;
110
+ }, "strip", z.ZodTypeAny, {
111
+ response: {
112
+ nodes: {
113
+ nodeName: string;
114
+ nodeUuid: string;
115
+ usersOnline: number;
116
+ countryEmoji: string;
117
+ providerName: string;
118
+ inboundsStats: {
119
+ tag: string;
120
+ upload: string;
121
+ download: string;
122
+ }[];
123
+ outboundsStats: {
124
+ tag: string;
125
+ upload: string;
126
+ download: string;
127
+ }[];
128
+ }[];
129
+ };
130
+ }, {
131
+ response: {
132
+ nodes: {
133
+ nodeName: string;
134
+ nodeUuid: string;
135
+ usersOnline: number;
136
+ countryEmoji: string;
137
+ providerName: string;
138
+ inboundsStats: {
139
+ tag: string;
140
+ upload: string;
141
+ download: string;
142
+ }[];
143
+ outboundsStats: {
144
+ tag: string;
145
+ upload: string;
146
+ download: string;
147
+ }[];
148
+ }[];
149
+ };
150
+ }>;
151
+ type Response = z.infer<typeof ResponseSchema>;
152
+ }
153
+ //# sourceMappingURL=get-nodes-metrics.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-nodes-metrics.command.d.ts","sourceRoot":"","sources":["../../../../commands/system/get-nodes-metrics.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,yBAAiB,sBAAsB,CAAC;IAC7B,MAAM,GAAG,6BAAsC,CAAC;IAChD,MAAM,OAAO,6BAAM,CAAC;IAEpB,MAAM,eAAe,2CAI3B,CAAC;IAEK,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA0BzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNodesMetricsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../constants");
6
+ const api_1 = require("../../api");
7
+ var GetNodesMetricsCommand;
8
+ (function (GetNodesMetricsCommand) {
9
+ GetNodesMetricsCommand.url = api_1.REST_API.SYSTEM.STATS.NODES_METRICS;
10
+ GetNodesMetricsCommand.TSQ_url = GetNodesMetricsCommand.url;
11
+ GetNodesMetricsCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.STATS.NODES_METRICS, 'get', 'Get Nodes Metrics');
12
+ GetNodesMetricsCommand.ResponseSchema = zod_1.z.object({
13
+ response: zod_1.z.object({
14
+ nodes: zod_1.z.array(zod_1.z.object({
15
+ nodeUuid: zod_1.z.string(),
16
+ nodeName: zod_1.z.string(),
17
+ countryEmoji: zod_1.z.string(),
18
+ providerName: zod_1.z.string(),
19
+ usersOnline: zod_1.z.number(),
20
+ inboundsStats: zod_1.z.array(zod_1.z.object({
21
+ tag: zod_1.z.string(),
22
+ upload: zod_1.z.string(),
23
+ download: zod_1.z.string(),
24
+ })),
25
+ outboundsStats: zod_1.z.array(zod_1.z.object({
26
+ tag: zod_1.z.string(),
27
+ upload: zod_1.z.string(),
28
+ download: zod_1.z.string(),
29
+ })),
30
+ })),
31
+ }),
32
+ });
33
+ })(GetNodesMetricsCommand || (exports.GetNodesMetricsCommand = GetNodesMetricsCommand = {}));
@@ -1,4 +1,5 @@
1
1
  export * from './get-bandwidth-stats.command';
2
+ export * from './get-nodes-metrics.command';
2
3
  export * from './get-nodes-statistics';
3
4
  export * from './get-remnawave-health.command';
4
5
  export * from './get-stats.command';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../commands/system/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC"}
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./get-bandwidth-stats.command"), exports);
18
+ __exportStar(require("./get-nodes-metrics.command"), exports);
18
19
  __exportStar(require("./get-nodes-statistics"), exports);
19
20
  __exportStar(require("./get-remnawave-health.command"), exports);
20
21
  __exportStar(require("./get-stats.command"), exports);
@@ -744,5 +744,15 @@ export declare const ERRORS: {
744
744
  readonly message: "Delete config profile by UUID error";
745
745
  readonly httpCode: 500;
746
746
  };
747
+ readonly RESERVED_INTERNAL_SQUAD_NAME: {
748
+ readonly code: "A144";
749
+ readonly message: "This name is reserved by Remnawave. Please use a different name.";
750
+ readonly httpCode: 400;
751
+ };
752
+ readonly RESERVED_CONFIG_PROFILE_NAME: {
753
+ readonly code: "A145";
754
+ readonly message: "This name is reserved by Remnawave. Please use a different name.";
755
+ readonly httpCode: 400;
756
+ };
747
757
  };
748
758
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8Z3B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwa3B,CAAC"}
@@ -715,4 +715,14 @@ exports.ERRORS = {
715
715
  message: 'Delete config profile by UUID error',
716
716
  httpCode: 500,
717
717
  },
718
+ RESERVED_INTERNAL_SQUAD_NAME: {
719
+ code: 'A144',
720
+ message: 'This name is reserved by Remnawave. Please use a different name.',
721
+ httpCode: 400,
722
+ },
723
+ RESERVED_CONFIG_PROFILE_NAME: {
724
+ code: 'A145',
725
+ message: 'This name is reserved by Remnawave. Please use a different name.',
726
+ httpCode: 400,
727
+ },
718
728
  };
@@ -3,6 +3,7 @@ export * from './errors';
3
3
  export * from './events';
4
4
  export * from './headers';
5
5
  export * from './hosts';
6
+ export * from './messaging';
6
7
  export * from './metrics';
7
8
  export * from './nodes';
8
9
  export * from './roles';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,yBAAyB,CAAC;AACxC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC"}
@@ -19,6 +19,7 @@ __exportStar(require("./errors"), exports);
19
19
  __exportStar(require("./events"), exports);
20
20
  __exportStar(require("./headers"), exports);
21
21
  __exportStar(require("./hosts"), exports);
22
+ __exportStar(require("./messaging"), exports);
22
23
  __exportStar(require("./metrics"), exports);
23
24
  __exportStar(require("./nodes"), exports);
24
25
  __exportStar(require("./roles"), exports);
@@ -0,0 +1,2 @@
1
+ export * from './messaging.constants';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../constants/messaging/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./messaging.constants"), exports);
@@ -0,0 +1,13 @@
1
+ export declare enum MessagingChannels {
2
+ EVENT = "redis-event"
3
+ }
4
+ export declare enum MessagingBuses {
5
+ EVENT = "event.bus"
6
+ }
7
+ export declare enum MessagingQueues {
8
+ EVENT = "event-queue"
9
+ }
10
+ export declare enum MessagingMessages {
11
+ NODE_METRICS = "node.metrics"
12
+ }
13
+ //# sourceMappingURL=messaging.constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messaging.constants.d.ts","sourceRoot":"","sources":["../../../../constants/messaging/messaging.constants.ts"],"names":[],"mappings":"AAAA,oBAAY,iBAAiB;IACzB,KAAK,gBAAgB;CACxB;AAED,oBAAY,cAAc;IACtB,KAAK,cAAc;CACtB;AAED,oBAAY,eAAe;IACvB,KAAK,gBAAgB;CACxB;AAED,oBAAY,iBAAiB;IACzB,YAAY,iBAAiB;CAChC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessagingMessages = exports.MessagingQueues = exports.MessagingBuses = exports.MessagingChannels = void 0;
4
+ var MessagingChannels;
5
+ (function (MessagingChannels) {
6
+ MessagingChannels["EVENT"] = "redis-event";
7
+ })(MessagingChannels || (exports.MessagingChannels = MessagingChannels = {}));
8
+ var MessagingBuses;
9
+ (function (MessagingBuses) {
10
+ MessagingBuses["EVENT"] = "event.bus";
11
+ })(MessagingBuses || (exports.MessagingBuses = MessagingBuses = {}));
12
+ var MessagingQueues;
13
+ (function (MessagingQueues) {
14
+ MessagingQueues["EVENT"] = "event-queue";
15
+ })(MessagingQueues || (exports.MessagingQueues = MessagingQueues = {}));
16
+ var MessagingMessages;
17
+ (function (MessagingMessages) {
18
+ MessagingMessages["NODE_METRICS"] = "node.metrics";
19
+ })(MessagingMessages || (exports.MessagingMessages = MessagingMessages = {}));
@@ -3,6 +3,22 @@ export declare const METRIC_NAMES: {
3
3
  readonly NODE_STATUS: "node_status";
4
4
  readonly USERS_STATUS: "users_status";
5
5
  readonly USERS_TOTAL: "users_total";
6
+ readonly NODE_INBOUND_UPLOAD_BYTES: "node_inbound_upload_bytes";
7
+ readonly NODE_INBOUND_DOWNLOAD_BYTES: "node_inbound_download_bytes";
8
+ readonly NODE_OUTBOUND_UPLOAD_BYTES: "node_outbound_upload_bytes";
9
+ readonly NODE_OUTBOUND_DOWNLOAD_BYTES: "node_outbound_download_bytes";
10
+ readonly NODEJS_HEAP_USED_BYTES: "nodejs_heap_used_bytes";
11
+ readonly NODEJS_HEAP_TOTAL_BYTES: "nodejs_heap_total_bytes";
12
+ readonly NODEJS_HEAP_USAGE_PERCENT: "nodejs_heap_usage_percent";
13
+ readonly NODEJS_ACTIVE_HANDLERS: "nodejs_active_handlers";
14
+ readonly NODEJS_ACTIVE_REQUESTS: "nodejs_active_requests";
15
+ readonly NODEJS_CPU_USAGE_PERCENT: "nodejs_cpu_usage_percent";
16
+ readonly NODEJS_MEMORY_USAGE_BYTES: "nodejs_memory_usage_bytes";
17
+ readonly NODEJS_EVENT_LOOP_LATENCY_P50: "nodejs_event_loop_latency_p50";
18
+ readonly NODEJS_EVENT_LOOP_LATENCY_P95: "nodejs_event_loop_latency_p95";
19
+ readonly NODEJS_HTTP_REQ_RATE: "nodejs_http_req_rate";
20
+ readonly NODEJS_HTTP_REQ_LATENCY_P95: "nodejs_http_req_latency_p95";
21
+ readonly NODEJS_HTTP_REQ_LATENCY_P50: "nodejs_http_req_latency_p50";
6
22
  };
7
23
  export type TMetricNames = typeof METRIC_NAMES;
8
24
  export type TMetricNamesKeys = (typeof METRIC_NAMES)[keyof typeof METRIC_NAMES];
@@ -1 +1 @@
1
- {"version":3,"file":"metric-names.constant.d.ts","sourceRoot":"","sources":["../../../../constants/metrics/metric-names.constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
1
+ {"version":3,"file":"metric-names.constant.d.ts","sourceRoot":"","sources":["../../../../constants/metrics/metric-names.constant.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;CAqBf,CAAC;AAEX,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC;AAC/C,MAAM,MAAM,gBAAgB,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
@@ -6,4 +6,20 @@ exports.METRIC_NAMES = {
6
6
  NODE_STATUS: 'node_status',
7
7
  USERS_STATUS: 'users_status',
8
8
  USERS_TOTAL: 'users_total',
9
+ NODE_INBOUND_UPLOAD_BYTES: 'node_inbound_upload_bytes',
10
+ NODE_INBOUND_DOWNLOAD_BYTES: 'node_inbound_download_bytes',
11
+ NODE_OUTBOUND_UPLOAD_BYTES: 'node_outbound_upload_bytes',
12
+ NODE_OUTBOUND_DOWNLOAD_BYTES: 'node_outbound_download_bytes',
13
+ NODEJS_HEAP_USED_BYTES: 'nodejs_heap_used_bytes',
14
+ NODEJS_HEAP_TOTAL_BYTES: 'nodejs_heap_total_bytes',
15
+ NODEJS_HEAP_USAGE_PERCENT: 'nodejs_heap_usage_percent',
16
+ NODEJS_ACTIVE_HANDLERS: 'nodejs_active_handlers',
17
+ NODEJS_ACTIVE_REQUESTS: 'nodejs_active_requests',
18
+ NODEJS_CPU_USAGE_PERCENT: 'nodejs_cpu_usage_percent',
19
+ NODEJS_MEMORY_USAGE_BYTES: 'nodejs_memory_usage_bytes',
20
+ NODEJS_EVENT_LOOP_LATENCY_P50: 'nodejs_event_loop_latency_p50',
21
+ NODEJS_EVENT_LOOP_LATENCY_P95: 'nodejs_event_loop_latency_p95',
22
+ NODEJS_HTTP_REQ_RATE: 'nodejs_http_req_rate',
23
+ NODEJS_HTTP_REQ_LATENCY_P95: 'nodejs_http_req_latency_p95',
24
+ NODEJS_HTTP_REQ_LATENCY_P50: 'nodejs_http_req_latency_p50',
9
25
  };
@@ -7,6 +7,7 @@ exports.SYSTEM_ROUTES = {
7
7
  SYSTEM_STATS: 'stats',
8
8
  BANDWIDTH_STATS: 'stats/bandwidth',
9
9
  NODES_STATS: 'stats/nodes',
10
+ NODES_METRICS: 'nodes/metrics',
10
11
  },
11
12
  HEALTH: 'health',
12
13
  };
@@ -142,6 +142,7 @@ exports.REST_API = {
142
142
  SYSTEM_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.SYSTEM_STATS}`,
143
143
  BANDWIDTH_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.BANDWIDTH_STATS}`,
144
144
  NODES_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_STATS}`,
145
+ NODES_METRICS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_METRICS}`,
145
146
  },
146
147
  },
147
148
  SUBSCRIPTION_TEMPLATE: {
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetNodesMetricsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../constants");
6
+ const api_1 = require("../../api");
7
+ var GetNodesMetricsCommand;
8
+ (function (GetNodesMetricsCommand) {
9
+ GetNodesMetricsCommand.url = api_1.REST_API.SYSTEM.STATS.NODES_METRICS;
10
+ GetNodesMetricsCommand.TSQ_url = GetNodesMetricsCommand.url;
11
+ GetNodesMetricsCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.STATS.NODES_METRICS, 'get', 'Get Nodes Metrics');
12
+ GetNodesMetricsCommand.ResponseSchema = zod_1.z.object({
13
+ response: zod_1.z.object({
14
+ nodes: zod_1.z.array(zod_1.z.object({
15
+ nodeUuid: zod_1.z.string(),
16
+ nodeName: zod_1.z.string(),
17
+ countryEmoji: zod_1.z.string(),
18
+ providerName: zod_1.z.string(),
19
+ usersOnline: zod_1.z.number(),
20
+ inboundsStats: zod_1.z.array(zod_1.z.object({
21
+ tag: zod_1.z.string(),
22
+ upload: zod_1.z.string(),
23
+ download: zod_1.z.string(),
24
+ })),
25
+ outboundsStats: zod_1.z.array(zod_1.z.object({
26
+ tag: zod_1.z.string(),
27
+ upload: zod_1.z.string(),
28
+ download: zod_1.z.string(),
29
+ })),
30
+ })),
31
+ }),
32
+ });
33
+ })(GetNodesMetricsCommand || (exports.GetNodesMetricsCommand = GetNodesMetricsCommand = {}));
@@ -15,6 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./get-bandwidth-stats.command"), exports);
18
+ __exportStar(require("./get-nodes-metrics.command"), exports);
18
19
  __exportStar(require("./get-nodes-statistics"), exports);
19
20
  __exportStar(require("./get-remnawave-health.command"), exports);
20
21
  __exportStar(require("./get-stats.command"), exports);
@@ -715,4 +715,14 @@ exports.ERRORS = {
715
715
  message: 'Delete config profile by UUID error',
716
716
  httpCode: 500,
717
717
  },
718
+ RESERVED_INTERNAL_SQUAD_NAME: {
719
+ code: 'A144',
720
+ message: 'This name is reserved by Remnawave. Please use a different name.',
721
+ httpCode: 400,
722
+ },
723
+ RESERVED_CONFIG_PROFILE_NAME: {
724
+ code: 'A145',
725
+ message: 'This name is reserved by Remnawave. Please use a different name.',
726
+ httpCode: 400,
727
+ },
718
728
  };
@@ -19,6 +19,7 @@ __exportStar(require("./errors"), exports);
19
19
  __exportStar(require("./events"), exports);
20
20
  __exportStar(require("./headers"), exports);
21
21
  __exportStar(require("./hosts"), exports);
22
+ __exportStar(require("./messaging"), exports);
22
23
  __exportStar(require("./metrics"), exports);
23
24
  __exportStar(require("./nodes"), exports);
24
25
  __exportStar(require("./roles"), exports);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./messaging.constants"), exports);
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MessagingMessages = exports.MessagingQueues = exports.MessagingBuses = exports.MessagingChannels = void 0;
4
+ var MessagingChannels;
5
+ (function (MessagingChannels) {
6
+ MessagingChannels["EVENT"] = "redis-event";
7
+ })(MessagingChannels || (exports.MessagingChannels = MessagingChannels = {}));
8
+ var MessagingBuses;
9
+ (function (MessagingBuses) {
10
+ MessagingBuses["EVENT"] = "event.bus";
11
+ })(MessagingBuses || (exports.MessagingBuses = MessagingBuses = {}));
12
+ var MessagingQueues;
13
+ (function (MessagingQueues) {
14
+ MessagingQueues["EVENT"] = "event-queue";
15
+ })(MessagingQueues || (exports.MessagingQueues = MessagingQueues = {}));
16
+ var MessagingMessages;
17
+ (function (MessagingMessages) {
18
+ MessagingMessages["NODE_METRICS"] = "node.metrics";
19
+ })(MessagingMessages || (exports.MessagingMessages = MessagingMessages = {}));
@@ -6,4 +6,20 @@ exports.METRIC_NAMES = {
6
6
  NODE_STATUS: 'node_status',
7
7
  USERS_STATUS: 'users_status',
8
8
  USERS_TOTAL: 'users_total',
9
+ NODE_INBOUND_UPLOAD_BYTES: 'node_inbound_upload_bytes',
10
+ NODE_INBOUND_DOWNLOAD_BYTES: 'node_inbound_download_bytes',
11
+ NODE_OUTBOUND_UPLOAD_BYTES: 'node_outbound_upload_bytes',
12
+ NODE_OUTBOUND_DOWNLOAD_BYTES: 'node_outbound_download_bytes',
13
+ NODEJS_HEAP_USED_BYTES: 'nodejs_heap_used_bytes',
14
+ NODEJS_HEAP_TOTAL_BYTES: 'nodejs_heap_total_bytes',
15
+ NODEJS_HEAP_USAGE_PERCENT: 'nodejs_heap_usage_percent',
16
+ NODEJS_ACTIVE_HANDLERS: 'nodejs_active_handlers',
17
+ NODEJS_ACTIVE_REQUESTS: 'nodejs_active_requests',
18
+ NODEJS_CPU_USAGE_PERCENT: 'nodejs_cpu_usage_percent',
19
+ NODEJS_MEMORY_USAGE_BYTES: 'nodejs_memory_usage_bytes',
20
+ NODEJS_EVENT_LOOP_LATENCY_P50: 'nodejs_event_loop_latency_p50',
21
+ NODEJS_EVENT_LOOP_LATENCY_P95: 'nodejs_event_loop_latency_p95',
22
+ NODEJS_HTTP_REQ_RATE: 'nodejs_http_req_rate',
23
+ NODEJS_HTTP_REQ_LATENCY_P95: 'nodejs_http_req_latency_p95',
24
+ NODEJS_HTTP_REQ_LATENCY_P50: 'nodejs_http_req_latency_p50',
9
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "2.0.0-alpha.30",
3
+ "version": "2.0.0-alpha.32",
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.",
@@ -28,6 +28,6 @@
28
28
  },
29
29
  "keywords": [],
30
30
  "dependencies": {
31
- "zod": "^3.22.4"
31
+ "zod": "^3.25.76"
32
32
  }
33
33
  }