@remnawave/backend-contract 2.1.26 → 2.1.28

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 (25) hide show
  1. package/build/backend/api/controllers/system.d.ts +3 -0
  2. package/build/backend/api/controllers/system.d.ts.map +1 -1
  3. package/build/backend/api/controllers/system.js +3 -0
  4. package/build/backend/api/routes.d.ts +3 -0
  5. package/build/backend/api/routes.d.ts.map +1 -1
  6. package/build/backend/api/routes.js +3 -0
  7. package/build/backend/commands/system/index.d.ts +1 -0
  8. package/build/backend/commands/system/index.d.ts.map +1 -1
  9. package/build/backend/commands/system/index.js +1 -0
  10. package/build/backend/commands/system/tools/generate-x25519-command.d.ts +46 -0
  11. package/build/backend/commands/system/tools/generate-x25519-command.d.ts.map +1 -0
  12. package/build/backend/commands/system/tools/generate-x25519-command.js +20 -0
  13. package/build/backend/commands/system/tools/index.d.ts +2 -0
  14. package/build/backend/commands/system/tools/index.d.ts.map +1 -0
  15. package/build/backend/commands/system/tools/index.js +17 -0
  16. package/build/backend/commands/users/bulk-all/bulk-all-update-users.command.d.ts +3 -0
  17. package/build/backend/commands/users/bulk-all/bulk-all-update-users.command.d.ts.map +1 -1
  18. package/build/backend/commands/users/bulk-all/bulk-all-update-users.command.js +1 -0
  19. package/build/frontend/api/controllers/system.js +3 -0
  20. package/build/frontend/api/routes.js +3 -0
  21. package/build/frontend/commands/system/index.js +1 -0
  22. package/build/frontend/commands/system/tools/generate-x25519-command.js +20 -0
  23. package/build/frontend/commands/system/tools/index.js +17 -0
  24. package/build/frontend/commands/users/bulk-all/bulk-all-update-users.command.js +1 -0
  25. package/package.json +1 -1
@@ -6,6 +6,9 @@ export declare const SYSTEM_ROUTES: {
6
6
  readonly NODES_STATS: "stats/nodes";
7
7
  readonly NODES_METRICS: "nodes/metrics";
8
8
  };
9
+ readonly TOOLS: {
10
+ readonly GENERATE_X25519: "tools/x25519/generate";
11
+ };
9
12
  readonly HEALTH: "health";
10
13
  };
11
14
  //# sourceMappingURL=system.d.ts.map
@@ -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;;;;;;;;CAQhB,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;;;;;;;;;;;CAWhB,CAAC"}
@@ -9,5 +9,8 @@ exports.SYSTEM_ROUTES = {
9
9
  NODES_STATS: 'stats/nodes',
10
10
  NODES_METRICS: 'nodes/metrics',
11
11
  },
12
+ TOOLS: {
13
+ GENERATE_X25519: 'tools/x25519/generate',
14
+ },
12
15
  HEALTH: 'health',
13
16
  };
@@ -114,6 +114,9 @@ export declare const REST_API: {
114
114
  readonly NODES_STATS: "/api/system/stats/nodes";
115
115
  readonly NODES_METRICS: "/api/system/nodes/metrics";
116
116
  };
117
+ readonly TOOLS: {
118
+ readonly GENERATE_X25519: "/api/system/tools/x25519/generate";
119
+ };
117
120
  };
118
121
  readonly SUBSCRIPTION_TEMPLATE: {
119
122
  readonly GET: (templateType: string) => string;
@@ -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,WAAW,EAAG,SAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,EAAG,SAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;gCAcE,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;sCAIP,MAAM;;;;;;qCASP,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;qCA4BD,MAAM;;;;;;;;;mDAYQ,MAAM;;;;;;0CASf,MAAM;kCAId,MAAM;6CAIK,MAAM;;;;;;;qCAUd,MAAM;gCAIX,MAAM;sDAIgB,MAAM;;;;;;;qCAUvB,MAAM;gCAIX,MAAM;0CAII,MAAM;;uCAKT,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,WAAW,EAAG,SAAkB,CAAC;AAC9C,eAAO,MAAM,cAAc,EAAG,SAAkB,CAAC;AAEjD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;gCAcE,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;sCAIP,MAAM;;;;;;qCASP,MAAM;gCAEX,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;qCA+BD,MAAM;;;;;;;;;mDAYQ,MAAM;;;;;;0CASf,MAAM;kCAId,MAAM;6CAIK,MAAM;;;;;;;qCAUd,MAAM;gCAIX,MAAM;sDAIgB,MAAM;;;;;;;qCAUvB,MAAM;gCAIX,MAAM;0CAII,MAAM;;uCAKT,MAAM;0CAEH,MAAM;;;;;;;yCASP,MAAM;8CAED,MAAM;;;;6CAMP,MAAM;;;gDAKH,MAAM;;CAGnC,CAAC"}
@@ -151,6 +151,9 @@ exports.REST_API = {
151
151
  NODES_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_STATS}`,
152
152
  NODES_METRICS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_METRICS}`,
153
153
  },
154
+ TOOLS: {
155
+ GENERATE_X25519: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.GENERATE_X25519}`,
156
+ },
154
157
  },
155
158
  SUBSCRIPTION_TEMPLATE: {
156
159
  GET: (templateType) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_ROUTES.GET(templateType)}`,
@@ -3,4 +3,5 @@ export * from './get-nodes-metrics.command';
3
3
  export * from './get-nodes-statistics';
4
4
  export * from './get-remnawave-health.command';
5
5
  export * from './get-stats.command';
6
+ export * from './tools';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
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"}
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;AACpC,cAAc,SAAS,CAAC"}
@@ -19,3 +19,4 @@ __exportStar(require("./get-nodes-metrics.command"), exports);
19
19
  __exportStar(require("./get-nodes-statistics"), exports);
20
20
  __exportStar(require("./get-remnawave-health.command"), exports);
21
21
  __exportStar(require("./get-stats.command"), exports);
22
+ __exportStar(require("./tools"), exports);
@@ -0,0 +1,46 @@
1
+ import { z } from 'zod';
2
+ export declare namespace GenerateX25519Command {
3
+ const url: "/api/system/tools/x25519/generate";
4
+ const TSQ_url: "/api/system/tools/x25519/generate";
5
+ const endpointDetails: import("../../../constants").EndpointDetails;
6
+ const ResponseSchema: z.ZodObject<{
7
+ response: z.ZodObject<{
8
+ keypairs: z.ZodArray<z.ZodObject<{
9
+ publicKey: z.ZodString;
10
+ privateKey: z.ZodString;
11
+ }, "strip", z.ZodTypeAny, {
12
+ publicKey: string;
13
+ privateKey: string;
14
+ }, {
15
+ publicKey: string;
16
+ privateKey: string;
17
+ }>, "many">;
18
+ }, "strip", z.ZodTypeAny, {
19
+ keypairs: {
20
+ publicKey: string;
21
+ privateKey: string;
22
+ }[];
23
+ }, {
24
+ keypairs: {
25
+ publicKey: string;
26
+ privateKey: string;
27
+ }[];
28
+ }>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ response: {
31
+ keypairs: {
32
+ publicKey: string;
33
+ privateKey: string;
34
+ }[];
35
+ };
36
+ }, {
37
+ response: {
38
+ keypairs: {
39
+ publicKey: string;
40
+ privateKey: string;
41
+ }[];
42
+ };
43
+ }>;
44
+ type Response = z.infer<typeof ResponseSchema>;
45
+ }
46
+ //# sourceMappingURL=generate-x25519-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generate-x25519-command.d.ts","sourceRoot":"","sources":["../../../../../commands/system/tools/generate-x25519-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,yBAAiB,qBAAqB,CAAC;IAC5B,MAAM,GAAG,qCAAwC,CAAC;IAClD,MAAM,OAAO,qCAAM,CAAC;IAEpB,MAAM,eAAe,8CAI3B,CAAC;IAEK,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MASzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenerateX25519Command = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const api_1 = require("../../../api");
7
+ var GenerateX25519Command;
8
+ (function (GenerateX25519Command) {
9
+ GenerateX25519Command.url = api_1.REST_API.SYSTEM.TOOLS.GENERATE_X25519;
10
+ GenerateX25519Command.TSQ_url = GenerateX25519Command.url;
11
+ GenerateX25519Command.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.TOOLS.GENERATE_X25519, 'get', 'Generate 30 X25519 keypairs');
12
+ GenerateX25519Command.ResponseSchema = zod_1.z.object({
13
+ response: zod_1.z.object({
14
+ keypairs: zod_1.z.array(zod_1.z.object({
15
+ publicKey: zod_1.z.string(),
16
+ privateKey: zod_1.z.string(),
17
+ })),
18
+ }),
19
+ });
20
+ })(GenerateX25519Command || (exports.GenerateX25519Command = GenerateX25519Command = {}));
@@ -0,0 +1,2 @@
1
+ export * from './generate-x25519-command';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../commands/system/tools/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,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("./generate-x25519-command"), exports);
@@ -22,6 +22,7 @@ export declare namespace BulkAllUpdateUsersCommand {
22
22
  telegramId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
23
23
  email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
24
24
  tag: z.ZodOptional<z.ZodNullable<z.ZodString>>;
25
+ hwidDeviceLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
25
26
  }, "strip", z.ZodTypeAny, {
26
27
  status?: "DISABLED" | "LIMITED" | "EXPIRED" | "ACTIVE" | undefined;
27
28
  tag?: string | null | undefined;
@@ -31,6 +32,7 @@ export declare namespace BulkAllUpdateUsersCommand {
31
32
  expireAt?: Date | undefined;
32
33
  telegramId?: number | null | undefined;
33
34
  email?: string | null | undefined;
35
+ hwidDeviceLimit?: number | null | undefined;
34
36
  }, {
35
37
  status?: "DISABLED" | "LIMITED" | "EXPIRED" | "ACTIVE" | undefined;
36
38
  tag?: string | null | undefined;
@@ -40,6 +42,7 @@ export declare namespace BulkAllUpdateUsersCommand {
40
42
  expireAt?: string | undefined;
41
43
  telegramId?: number | null | undefined;
42
44
  email?: string | null | undefined;
45
+ hwidDeviceLimit?: number | null | undefined;
43
46
  }>;
44
47
  type Request = z.infer<typeof RequestSchema>;
45
48
  const ResponseSchema: z.ZodObject<{
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-all-update-users.command.d.ts","sourceRoot":"","sources":["../../../../../commands/users/bulk-all/bulk-all-update-users.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,yBAAiB,yBAAyB,CAAC;IAChC,MAAM,GAAG,8BAAiC,CAAC;IAC3C,MAAM,OAAO,8BAAM,CAAC;IAEpB,MAAM,eAAe,8CAI3B,CAAC;IAEK,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAyCxB,CAAC;IAEH,KAAY,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IAE7C,MAAM,cAAc;;;;;;;;;;;;;;;;MAIzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
1
+ {"version":3,"file":"bulk-all-update-users.command.d.ts","sourceRoot":"","sources":["../../../../../commands/users/bulk-all/bulk-all-update-users.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,yBAAiB,yBAAyB,CAAC;IAChC,MAAM,GAAG,8BAAiC,CAAC;IAC3C,MAAM,OAAO,8BAAM,CAAC;IAEpB,MAAM,eAAe,8CAI3B,CAAC;IAEK,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA4CxB,CAAC;IAEH,KAAY,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IAE7C,MAAM,cAAc;;;;;;;;;;;;;;;;MAIzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -41,6 +41,7 @@ var BulkAllUpdateUsersCommand;
41
41
  .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
42
42
  .max(16, 'Tag must be less than 16 characters')
43
43
  .nullable()),
44
+ hwidDeviceLimit: zod_1.z.optional(zod_1.z.number().int().min(0, 'Device limit must be non-negative').nullable()),
44
45
  });
45
46
  BulkAllUpdateUsersCommand.ResponseSchema = zod_1.z.object({
46
47
  response: zod_1.z.object({
@@ -9,5 +9,8 @@ exports.SYSTEM_ROUTES = {
9
9
  NODES_STATS: 'stats/nodes',
10
10
  NODES_METRICS: 'nodes/metrics',
11
11
  },
12
+ TOOLS: {
13
+ GENERATE_X25519: 'tools/x25519/generate',
14
+ },
12
15
  HEALTH: 'health',
13
16
  };
@@ -151,6 +151,9 @@ exports.REST_API = {
151
151
  NODES_STATS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_STATS}`,
152
152
  NODES_METRICS: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.STATS.NODES_METRICS}`,
153
153
  },
154
+ TOOLS: {
155
+ GENERATE_X25519: `${exports.ROOT}/${CONTROLLERS.SYSTEM_CONTROLLER}/${CONTROLLERS.SYSTEM_ROUTES.TOOLS.GENERATE_X25519}`,
156
+ },
154
157
  },
155
158
  SUBSCRIPTION_TEMPLATE: {
156
159
  GET: (templateType) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_TEMPLATE_ROUTES.GET(templateType)}`,
@@ -19,3 +19,4 @@ __exportStar(require("./get-nodes-metrics.command"), exports);
19
19
  __exportStar(require("./get-nodes-statistics"), exports);
20
20
  __exportStar(require("./get-remnawave-health.command"), exports);
21
21
  __exportStar(require("./get-stats.command"), exports);
22
+ __exportStar(require("./tools"), exports);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GenerateX25519Command = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const api_1 = require("../../../api");
7
+ var GenerateX25519Command;
8
+ (function (GenerateX25519Command) {
9
+ GenerateX25519Command.url = api_1.REST_API.SYSTEM.TOOLS.GENERATE_X25519;
10
+ GenerateX25519Command.TSQ_url = GenerateX25519Command.url;
11
+ GenerateX25519Command.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.SYSTEM_ROUTES.TOOLS.GENERATE_X25519, 'get', 'Generate 30 X25519 keypairs');
12
+ GenerateX25519Command.ResponseSchema = zod_1.z.object({
13
+ response: zod_1.z.object({
14
+ keypairs: zod_1.z.array(zod_1.z.object({
15
+ publicKey: zod_1.z.string(),
16
+ privateKey: zod_1.z.string(),
17
+ })),
18
+ }),
19
+ });
20
+ })(GenerateX25519Command || (exports.GenerateX25519Command = GenerateX25519Command = {}));
@@ -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("./generate-x25519-command"), exports);
@@ -41,6 +41,7 @@ var BulkAllUpdateUsersCommand;
41
41
  .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
42
42
  .max(16, 'Tag must be less than 16 characters')
43
43
  .nullable()),
44
+ hwidDeviceLimit: zod_1.z.optional(zod_1.z.number().int().min(0, 'Device limit must be non-negative').nullable()),
44
45
  });
45
46
  BulkAllUpdateUsersCommand.ResponseSchema = zod_1.z.object({
46
47
  response: zod_1.z.object({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "2.1.26",
3
+ "version": "2.1.28",
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.",