@remnawave/backend-contract 0.1.15 → 0.2.1

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 (77) hide show
  1. package/build/backend/api/controllers/auth.d.ts +2 -0
  2. package/build/backend/api/controllers/auth.d.ts.map +1 -1
  3. package/build/backend/api/controllers/auth.js +2 -0
  4. package/build/backend/api/controllers/users.d.ts +2 -0
  5. package/build/backend/api/controllers/users.d.ts.map +1 -1
  6. package/build/backend/api/controllers/users.js +2 -0
  7. package/build/backend/api/routes.d.ts +4 -0
  8. package/build/backend/api/routes.d.ts.map +1 -1
  9. package/build/backend/api/routes.js +4 -0
  10. package/build/backend/commands/auth/get-status.command.d.ts +29 -0
  11. package/build/backend/commands/auth/get-status.command.d.ts.map +1 -0
  12. package/build/backend/commands/auth/get-status.command.js +16 -0
  13. package/build/backend/commands/auth/index.d.ts +2 -0
  14. package/build/backend/commands/auth/index.d.ts.map +1 -1
  15. package/build/backend/commands/auth/index.js +2 -0
  16. package/build/backend/commands/auth/register.command.d.ts +35 -0
  17. package/build/backend/commands/auth/register.command.d.ts.map +1 -0
  18. package/build/backend/commands/auth/register.command.js +22 -0
  19. package/build/backend/commands/users/create-user.command.d.ts +19 -3
  20. package/build/backend/commands/users/create-user.command.d.ts.map +1 -1
  21. package/build/backend/commands/users/create-user.command.js +4 -2
  22. package/build/backend/commands/users/disable-user.command.ts.d.ts +12 -2
  23. package/build/backend/commands/users/disable-user.command.ts.d.ts.map +1 -1
  24. package/build/backend/commands/users/enable-user.command.d.ts +12 -2
  25. package/build/backend/commands/users/enable-user.command.d.ts.map +1 -1
  26. package/build/backend/commands/users/get-all-users-v2.command.d.ts +17 -3
  27. package/build/backend/commands/users/get-all-users-v2.command.d.ts.map +1 -1
  28. package/build/backend/commands/users/get-user-by-email.command.d.ts +217 -0
  29. package/build/backend/commands/users/get-user-by-email.command.d.ts.map +1 -0
  30. package/build/backend/commands/users/get-user-by-email.command.js +21 -0
  31. package/build/backend/commands/users/get-user-by-short-uuid.command.d.ts +12 -2
  32. package/build/backend/commands/users/get-user-by-short-uuid.command.d.ts.map +1 -1
  33. package/build/backend/commands/users/get-user-by-subscription-uuid.command.d.ts +12 -2
  34. package/build/backend/commands/users/get-user-by-subscription-uuid.command.d.ts.map +1 -1
  35. package/build/backend/commands/users/get-user-by-telegram-id.command.d.ts +217 -0
  36. package/build/backend/commands/users/get-user-by-telegram-id.command.d.ts.map +1 -0
  37. package/build/backend/commands/users/get-user-by-telegram-id.command.js +21 -0
  38. package/build/backend/commands/users/get-user-by-username.command.d.ts +12 -2
  39. package/build/backend/commands/users/get-user-by-username.command.d.ts.map +1 -1
  40. package/build/backend/commands/users/get-user-by-uuid.command.d.ts +12 -2
  41. package/build/backend/commands/users/get-user-by-uuid.command.d.ts.map +1 -1
  42. package/build/backend/commands/users/index.d.ts +2 -0
  43. package/build/backend/commands/users/index.d.ts.map +1 -1
  44. package/build/backend/commands/users/index.js +2 -0
  45. package/build/backend/commands/users/reset-user-traffic.command.d.ts +12 -2
  46. package/build/backend/commands/users/reset-user-traffic.command.d.ts.map +1 -1
  47. package/build/backend/commands/users/revoke-user-subscription.command.d.ts +12 -2
  48. package/build/backend/commands/users/revoke-user-subscription.command.d.ts.map +1 -1
  49. package/build/backend/commands/users/update-user.command.d.ts +20 -2
  50. package/build/backend/commands/users/update-user.command.d.ts.map +1 -1
  51. package/build/backend/commands/users/update-user.command.js +2 -0
  52. package/build/backend/commands/xray/update-config.command.d.ts +1 -1
  53. package/build/backend/commands/xray/update-config.command.d.ts.map +1 -1
  54. package/build/backend/commands/xray/update-config.command.js +1 -1
  55. package/build/backend/constants/errors/errors.d.ts +35 -0
  56. package/build/backend/constants/errors/errors.d.ts.map +1 -1
  57. package/build/backend/constants/errors/errors.js +28 -1
  58. package/build/backend/constants/roles/role.d.ts +1 -0
  59. package/build/backend/constants/roles/role.d.ts.map +1 -1
  60. package/build/backend/models/users.schema.d.ts +7 -1
  61. package/build/backend/models/users.schema.d.ts.map +1 -1
  62. package/build/backend/models/users.schema.js +2 -0
  63. package/build/frontend/api/controllers/auth.js +2 -0
  64. package/build/frontend/api/controllers/users.js +2 -0
  65. package/build/frontend/api/routes.js +4 -0
  66. package/build/frontend/commands/auth/get-status.command.js +16 -0
  67. package/build/frontend/commands/auth/index.js +2 -0
  68. package/build/frontend/commands/auth/register.command.js +22 -0
  69. package/build/frontend/commands/users/create-user.command.js +4 -2
  70. package/build/frontend/commands/users/get-user-by-email.command.js +21 -0
  71. package/build/frontend/commands/users/get-user-by-telegram-id.command.js +21 -0
  72. package/build/frontend/commands/users/index.js +2 -0
  73. package/build/frontend/commands/users/update-user.command.js +2 -0
  74. package/build/frontend/commands/xray/update-config.command.js +1 -1
  75. package/build/frontend/constants/errors/errors.js +28 -1
  76. package/build/frontend/models/users.schema.js +2 -0
  77. package/package.json +1 -1
@@ -29,6 +29,8 @@ export declare const UsersSchema: z.ZodObject<{
29
29
  vlessUuid: z.ZodString;
30
30
  ssPassword: z.ZodString;
31
31
  description: z.ZodNullable<z.ZodString>;
32
+ telegramId: z.ZodNullable<z.ZodNumber>;
33
+ email: z.ZodNullable<z.ZodString>;
32
34
  createdAt: z.ZodEffects<z.ZodString, Date, string>;
33
35
  updatedAt: z.ZodEffects<z.ZodString, Date, string>;
34
36
  activeUserInbounds: z.ZodArray<z.ZodObject<{
@@ -45,9 +47,10 @@ export declare const UsersSchema: z.ZodObject<{
45
47
  tag: string;
46
48
  }>, "many">;
47
49
  }, "strip", z.ZodTypeAny, {
50
+ status: "DISABLED" | "LIMITED" | "EXPIRED" | "ACTIVE";
48
51
  uuid: string;
49
52
  username: string;
50
- status: "DISABLED" | "LIMITED" | "EXPIRED" | "ACTIVE";
53
+ email: string | null;
51
54
  createdAt: Date;
52
55
  updatedAt: Date;
53
56
  trafficLimitBytes: number;
@@ -66,6 +69,7 @@ export declare const UsersSchema: z.ZodObject<{
66
69
  trojanPassword: string;
67
70
  vlessUuid: string;
68
71
  ssPassword: string;
72
+ telegramId: number | null;
69
73
  activeUserInbounds: {
70
74
  uuid: string;
71
75
  type: string;
@@ -74,6 +78,7 @@ export declare const UsersSchema: z.ZodObject<{
74
78
  }, {
75
79
  uuid: string;
76
80
  username: string;
81
+ email: string | null;
77
82
  createdAt: string;
78
83
  updatedAt: string;
79
84
  subscriptionUuid: string;
@@ -90,6 +95,7 @@ export declare const UsersSchema: z.ZodObject<{
90
95
  trojanPassword: string;
91
96
  vlessUuid: string;
92
97
  ssPassword: string;
98
+ telegramId: number | null;
93
99
  activeUserInbounds: {
94
100
  uuid: string;
95
101
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"users.schema.d.ts","sourceRoot":"","sources":["../../../models/users.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiEtB,CAAC"}
1
+ {"version":3,"file":"users.schema.d.ts","sourceRoot":"","sources":["../../../models/users.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEtB,CAAC"}
@@ -43,6 +43,8 @@ exports.UsersSchema = zod_1.z.object({
43
43
  vlessUuid: zod_1.z.string().uuid(),
44
44
  ssPassword: zod_1.z.string(),
45
45
  description: zod_1.z.nullable(zod_1.z.string()),
46
+ telegramId: zod_1.z.nullable(zod_1.z.number()),
47
+ email: zod_1.z.nullable(zod_1.z.string()),
46
48
  createdAt: zod_1.z
47
49
  .string()
48
50
  .datetime()
@@ -4,4 +4,6 @@ exports.AUTH_ROUTES = exports.AUTH_CONTROLLER = void 0;
4
4
  exports.AUTH_CONTROLLER = 'auth';
5
5
  exports.AUTH_ROUTES = {
6
6
  LOGIN: 'login',
7
+ REGISTER: 'register',
8
+ GET_STATUS: 'status',
7
9
  };
@@ -18,4 +18,6 @@ exports.USERS_ROUTES = {
18
18
  BULK: {
19
19
  DELETE_BY_STATUS: 'bulk/delete-by-status',
20
20
  },
21
+ GET_BY_TELEGRAM_ID: 'tg',
22
+ GET_BY_EMAIL: 'email',
21
23
  };
@@ -40,6 +40,8 @@ exports.METRICS_ROOT = '/metrics';
40
40
  exports.REST_API = {
41
41
  AUTH: {
42
42
  LOGIN: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.LOGIN}`,
43
+ REGISTER: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.REGISTER}`,
44
+ GET_STATUS: `${exports.ROOT}/${CONTROLLERS.AUTH_CONTROLLER}/${CONTROLLERS.AUTH_ROUTES.GET_STATUS}`,
43
45
  },
44
46
  API_TOKENS: {
45
47
  CREATE: `${exports.ROOT}/${CONTROLLERS.API_TOKENS_CONTROLLER}/${CONTROLLERS.API_TOKENS_ROUTES.CREATE}`,
@@ -87,6 +89,8 @@ exports.REST_API = {
87
89
  BULK: {
88
90
  DELETE_BY_STATUS: `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.BULK.DELETE_BY_STATUS}`,
89
91
  },
92
+ GET_BY_TELEGRAM_ID: (telegramId) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.GET_BY_TELEGRAM_ID}/${telegramId}`,
93
+ GET_BY_EMAIL: (email) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.GET_BY_EMAIL}/${email}`,
90
94
  },
91
95
  SUBSCRIPTION: {
92
96
  GET: (shortUuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET}/${shortUuid}`,
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetStatusCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../api");
6
+ var GetStatusCommand;
7
+ (function (GetStatusCommand) {
8
+ GetStatusCommand.url = api_1.REST_API.AUTH.GET_STATUS;
9
+ GetStatusCommand.TSQ_url = GetStatusCommand.url;
10
+ GetStatusCommand.ResponseSchema = zod_1.z.object({
11
+ response: zod_1.z.object({
12
+ isLoginAllowed: zod_1.z.boolean(),
13
+ isRegisterAllowed: zod_1.z.boolean(),
14
+ }),
15
+ });
16
+ })(GetStatusCommand || (exports.GetStatusCommand = GetStatusCommand = {}));
@@ -15,3 +15,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./login.command"), exports);
18
+ __exportStar(require("./register.command"), exports);
19
+ __exportStar(require("./get-status.command"), exports);
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RegisterCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const api_1 = require("../../api");
6
+ var RegisterCommand;
7
+ (function (RegisterCommand) {
8
+ RegisterCommand.url = api_1.REST_API.AUTH.REGISTER;
9
+ RegisterCommand.TSQ_url = RegisterCommand.url;
10
+ RegisterCommand.RequestSchema = zod_1.z.object({
11
+ username: zod_1.z.string(),
12
+ password: zod_1.z
13
+ .string()
14
+ .min(12, 'Password must contain at least 12 characters')
15
+ .regex(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]/, 'Password must contain uppercase and lowercase letters, numbers and special characters'),
16
+ });
17
+ RegisterCommand.ResponseSchema = zod_1.z.object({
18
+ response: zod_1.z.object({
19
+ accessToken: zod_1.z.string(),
20
+ }),
21
+ });
22
+ })(RegisterCommand || (exports.RegisterCommand = RegisterCommand = {}));
@@ -90,7 +90,7 @@ var CreateUserCommand;
90
90
  .string({
91
91
  invalid_type_error: 'Invalid date format',
92
92
  })
93
- .datetime({ message: 'Invalid date format', offset: true })
93
+ .datetime({ message: 'Invalid date format', offset: true, local: true })
94
94
  .transform((str) => new Date(str))
95
95
  .describe('Date format: 2025-01-17T15:38:45.065Z')
96
96
  .optional(),
@@ -98,11 +98,13 @@ var CreateUserCommand;
98
98
  .string({
99
99
  invalid_type_error: 'Invalid date format',
100
100
  })
101
- .datetime({ message: 'Invalid date format', offset: true })
101
+ .datetime({ message: 'Invalid date format', offset: true, local: true })
102
102
  .transform((str) => new Date(str))
103
103
  .describe('Date format: 2025-01-17T15:38:45.065Z')
104
104
  .optional(),
105
105
  description: zod_1.z.string().optional(),
106
+ telegramId: zod_1.z.number().optional(),
107
+ email: zod_1.z.string().optional(),
106
108
  activateAllInbounds: zod_1.z.boolean().optional(),
107
109
  });
108
110
  CreateUserCommand.ResponseSchema = zod_1.z.object({
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetUserByEmailCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const users_schema_1 = require("../../models/users.schema");
6
+ const api_1 = require("../../api");
7
+ const models_1 = require("../../models");
8
+ var GetUserByEmailCommand;
9
+ (function (GetUserByEmailCommand) {
10
+ GetUserByEmailCommand.url = api_1.REST_API.USERS.GET_BY_EMAIL;
11
+ GetUserByEmailCommand.TSQ_url = GetUserByEmailCommand.url(':email');
12
+ GetUserByEmailCommand.RequestSchema = zod_1.z.object({
13
+ email: zod_1.z.string(),
14
+ });
15
+ GetUserByEmailCommand.ResponseSchema = zod_1.z.object({
16
+ response: zod_1.z.array(users_schema_1.UsersSchema.extend({
17
+ subscriptionUrl: zod_1.z.string(),
18
+ lastConnectedNode: models_1.LastConnectedNodeSchema,
19
+ })),
20
+ });
21
+ })(GetUserByEmailCommand || (exports.GetUserByEmailCommand = GetUserByEmailCommand = {}));
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetUserByTelegramIdCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const users_schema_1 = require("../../models/users.schema");
6
+ const api_1 = require("../../api");
7
+ const models_1 = require("../../models");
8
+ var GetUserByTelegramIdCommand;
9
+ (function (GetUserByTelegramIdCommand) {
10
+ GetUserByTelegramIdCommand.url = api_1.REST_API.USERS.GET_BY_TELEGRAM_ID;
11
+ GetUserByTelegramIdCommand.TSQ_url = GetUserByTelegramIdCommand.url(':telegramId');
12
+ GetUserByTelegramIdCommand.RequestSchema = zod_1.z.object({
13
+ telegramId: zod_1.z.string(),
14
+ });
15
+ GetUserByTelegramIdCommand.ResponseSchema = zod_1.z.object({
16
+ response: zod_1.z.array(users_schema_1.UsersSchema.extend({
17
+ subscriptionUrl: zod_1.z.string(),
18
+ lastConnectedNode: models_1.LastConnectedNodeSchema,
19
+ })),
20
+ });
21
+ })(GetUserByTelegramIdCommand || (exports.GetUserByTelegramIdCommand = GetUserByTelegramIdCommand = {}));
@@ -27,3 +27,5 @@ __exportStar(require("./reset-user-traffic.command"), exports);
27
27
  __exportStar(require("./revoke-user-subscription.command"), exports);
28
28
  __exportStar(require("./update-user.command"), exports);
29
29
  __exportStar(require("./bulk"), exports);
30
+ __exportStar(require("./get-user-by-telegram-id.command"), exports);
31
+ __exportStar(require("./get-user-by-email.command"), exports);
@@ -50,6 +50,8 @@ var UpdateUserCommand;
50
50
  .describe('Expiration date: 2025-01-17T15:38:45.065Z')
51
51
  .optional(),
52
52
  description: zod_1.z.string().optional(),
53
+ telegramId: zod_1.z.number().optional(),
54
+ email: zod_1.z.string().optional(),
53
55
  });
54
56
  UpdateUserCommand.ResponseSchema = zod_1.z.object({
55
57
  response: models_1.UsersSchema.extend({
@@ -7,7 +7,7 @@ var UpdateXrayConfigCommand;
7
7
  (function (UpdateXrayConfigCommand) {
8
8
  UpdateXrayConfigCommand.url = api_1.REST_API.XRAY.UPDATE_CONFIG;
9
9
  UpdateXrayConfigCommand.TSQ_url = UpdateXrayConfigCommand.url;
10
- UpdateXrayConfigCommand.RequestSchema = zod_1.z.object({});
10
+ UpdateXrayConfigCommand.RequestSchema = zod_1.z.object({}).passthrough();
11
11
  UpdateXrayConfigCommand.ResponseSchema = zod_1.z.object({
12
12
  response: zod_1.z.object({
13
13
  config: zod_1.z.object({}),
@@ -304,8 +304,35 @@ exports.ERRORS = {
304
304
  httpCode: 500,
305
305
  withMessage: (message) => ({
306
306
  code: 'A061',
307
- message: message,
307
+ message,
308
308
  httpCode: 500,
309
309
  }),
310
310
  },
311
+ USERS_NOT_FOUND: {
312
+ code: 'A062',
313
+ message: 'Users not found',
314
+ httpCode: 404,
315
+ },
316
+ GET_USER_BY_UNIQUE_FIELDS_NOT_FOUND: {
317
+ code: 'A063',
318
+ message: 'User with specified params not found',
319
+ httpCode: 404,
320
+ },
321
+ UPDATE_EXCEEDED_TRAFFIC_USERS_ERROR: {
322
+ code: 'A064',
323
+ message: 'Update exceeded traffic users error',
324
+ httpCode: 500,
325
+ },
326
+ ADMIN_NOT_FOUND: {
327
+ code: 'A065',
328
+ message: 'Admin not found',
329
+ httpCode: 404,
330
+ },
331
+ CREATE_ADMIN_ERROR: {
332
+ code: 'A066',
333
+ message: 'Create admin error',
334
+ httpCode: 500,
335
+ },
336
+ GET_AUTH_STATUS_ERROR: { code: 'A067', message: 'Get auth status error', httpCode: 500 },
337
+ FORBIDDEN: { code: 'A068', message: 'Forbidden', httpCode: 403 },
311
338
  };
@@ -43,6 +43,8 @@ exports.UsersSchema = zod_1.z.object({
43
43
  vlessUuid: zod_1.z.string().uuid(),
44
44
  ssPassword: zod_1.z.string(),
45
45
  description: zod_1.z.nullable(zod_1.z.string()),
46
+ telegramId: zod_1.z.nullable(zod_1.z.number()),
47
+ email: zod_1.z.nullable(zod_1.z.string()),
46
48
  createdAt: zod_1.z
47
49
  .string()
48
50
  .datetime()
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "0.1.15",
3
+ "version": "0.2.1",
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.",