@remnawave/backend-contract 0.5.8 → 0.6.0

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 (79) hide show
  1. package/build/backend/api/controllers/users.d.ts +4 -0
  2. package/build/backend/api/controllers/users.d.ts.map +1 -1
  3. package/build/backend/api/controllers/users.js +4 -0
  4. package/build/backend/api/routes.d.ts +4 -0
  5. package/build/backend/api/routes.d.ts.map +1 -1
  6. package/build/backend/api/routes.js +4 -0
  7. package/build/backend/commands/users/actions/activate-all-inbounds.command.d.ts +5 -0
  8. package/build/backend/commands/users/actions/activate-all-inbounds.command.d.ts.map +1 -1
  9. package/build/backend/commands/users/actions/disable-user.command.d.ts +5 -0
  10. package/build/backend/commands/users/actions/disable-user.command.d.ts.map +1 -1
  11. package/build/backend/commands/users/actions/enable-user.command.d.ts +5 -0
  12. package/build/backend/commands/users/actions/enable-user.command.d.ts.map +1 -1
  13. package/build/backend/commands/users/actions/reset-user-traffic.command.d.ts +5 -0
  14. package/build/backend/commands/users/actions/reset-user-traffic.command.d.ts.map +1 -1
  15. package/build/backend/commands/users/actions/revoke-user-subscription.command.d.ts +5 -0
  16. package/build/backend/commands/users/actions/revoke-user-subscription.command.d.ts.map +1 -1
  17. package/build/backend/commands/users/bulk/bulk-update-users.command.d.ts +5 -0
  18. package/build/backend/commands/users/bulk/bulk-update-users.command.d.ts.map +1 -1
  19. package/build/backend/commands/users/bulk/bulk-update-users.command.js +5 -0
  20. package/build/backend/commands/users/bulk-all/bulk-all-update-users.command.d.ts +3 -0
  21. package/build/backend/commands/users/bulk-all/bulk-all-update-users.command.d.ts.map +1 -1
  22. package/build/backend/commands/users/bulk-all/bulk-all-update-users.command.js +5 -0
  23. package/build/backend/commands/users/create-user.command.d.ts +8 -0
  24. package/build/backend/commands/users/create-user.command.d.ts.map +1 -1
  25. package/build/backend/commands/users/create-user.command.js +5 -0
  26. package/build/backend/commands/users/get-all-users.command.d.ts +7 -0
  27. package/build/backend/commands/users/get-all-users.command.d.ts.map +1 -1
  28. package/build/backend/commands/users/get-by/get-user-by-email.command.d.ts +5 -0
  29. package/build/backend/commands/users/get-by/get-user-by-email.command.d.ts.map +1 -1
  30. package/build/backend/commands/users/get-by/get-user-by-short-uuid.command.d.ts +5 -0
  31. package/build/backend/commands/users/get-by/get-user-by-short-uuid.command.d.ts.map +1 -1
  32. package/build/backend/commands/users/get-by/get-user-by-subscription-uuid.command.d.ts +5 -0
  33. package/build/backend/commands/users/get-by/get-user-by-subscription-uuid.command.d.ts.map +1 -1
  34. package/build/backend/commands/users/get-by/get-user-by-tag.command.d.ts +261 -0
  35. package/build/backend/commands/users/get-by/get-user-by-tag.command.d.ts.map +1 -0
  36. package/build/backend/commands/users/get-by/get-user-by-tag.command.js +22 -0
  37. package/build/backend/commands/users/get-by/get-user-by-telegram-id.command.d.ts +5 -0
  38. package/build/backend/commands/users/get-by/get-user-by-telegram-id.command.d.ts.map +1 -1
  39. package/build/backend/commands/users/get-by/get-user-by-username.command.d.ts +5 -0
  40. package/build/backend/commands/users/get-by/get-user-by-username.command.d.ts.map +1 -1
  41. package/build/backend/commands/users/get-by/index.d.ts +1 -0
  42. package/build/backend/commands/users/get-by/index.d.ts.map +1 -1
  43. package/build/backend/commands/users/get-by/index.js +1 -0
  44. package/build/backend/commands/users/get-user-by-uuid.command.d.ts +5 -0
  45. package/build/backend/commands/users/get-user-by-uuid.command.d.ts.map +1 -1
  46. package/build/backend/commands/users/index.d.ts +1 -0
  47. package/build/backend/commands/users/index.d.ts.map +1 -1
  48. package/build/backend/commands/users/index.js +1 -0
  49. package/build/backend/commands/users/tags/get-all-tags.command.d.ts +25 -0
  50. package/build/backend/commands/users/tags/get-all-tags.command.d.ts.map +1 -0
  51. package/build/backend/commands/users/tags/get-all-tags.command.js +17 -0
  52. package/build/backend/commands/users/tags/index.d.ts +2 -0
  53. package/build/backend/commands/users/tags/index.d.ts.map +1 -0
  54. package/build/backend/commands/users/tags/index.js +17 -0
  55. package/build/backend/commands/users/update-user.command.d.ts +9 -0
  56. package/build/backend/commands/users/update-user.command.d.ts.map +1 -1
  57. package/build/backend/commands/users/update-user.command.js +5 -0
  58. package/build/backend/constants/errors/errors.d.ts +5 -0
  59. package/build/backend/constants/errors/errors.d.ts.map +1 -1
  60. package/build/backend/constants/errors/errors.js +5 -0
  61. package/build/backend/models/extented-users.schema.d.ts +3 -0
  62. package/build/backend/models/extented-users.schema.d.ts.map +1 -1
  63. package/build/backend/models/users.schema.d.ts +3 -0
  64. package/build/backend/models/users.schema.d.ts.map +1 -1
  65. package/build/backend/models/users.schema.js +1 -0
  66. package/build/frontend/api/controllers/users.js +4 -0
  67. package/build/frontend/api/routes.js +4 -0
  68. package/build/frontend/commands/users/bulk/bulk-update-users.command.js +5 -0
  69. package/build/frontend/commands/users/bulk-all/bulk-all-update-users.command.js +5 -0
  70. package/build/frontend/commands/users/create-user.command.js +5 -0
  71. package/build/frontend/commands/users/get-by/get-user-by-tag.command.js +22 -0
  72. package/build/frontend/commands/users/get-by/index.js +1 -0
  73. package/build/frontend/commands/users/index.js +1 -0
  74. package/build/frontend/commands/users/tags/get-all-tags.command.js +17 -0
  75. package/build/frontend/commands/users/tags/index.js +17 -0
  76. package/build/frontend/commands/users/update-user.command.js +5 -0
  77. package/build/frontend/constants/errors/errors.js +5 -0
  78. package/build/frontend/models/users.schema.js +1 -0
  79. package/package.json +1 -1
@@ -33,6 +33,7 @@ export declare namespace UpdateUserCommand {
33
33
  vlessUuid: z.ZodString;
34
34
  ssPassword: z.ZodString;
35
35
  description: z.ZodNullable<z.ZodString>;
36
+ tag: z.ZodNullable<z.ZodString>;
36
37
  telegramId: z.ZodNullable<z.ZodNumber>;
37
38
  email: z.ZodNullable<z.ZodString>;
38
39
  hwidDeviceLimit: z.ZodNullable<z.ZodNumber>;
@@ -74,12 +75,14 @@ export declare namespace UpdateUserCommand {
74
75
  activeUserInbounds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
75
76
  expireAt: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, Date, string>, Date, string>>;
76
77
  description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
78
+ tag: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
79
  telegramId: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
78
80
  email: z.ZodOptional<z.ZodNullable<z.ZodString>>;
79
81
  hwidDeviceLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
80
82
  }, "strip", z.ZodTypeAny, {
81
83
  uuid: string;
82
84
  status?: "DISABLED" | "LIMITED" | "EXPIRED" | "ACTIVE" | undefined;
85
+ tag?: string | null | undefined;
83
86
  trafficLimitBytes?: number | undefined;
84
87
  description?: string | null | undefined;
85
88
  trafficLimitStrategy?: "MONTH" | "NO_RESET" | "DAY" | "WEEK" | undefined;
@@ -91,6 +94,7 @@ export declare namespace UpdateUserCommand {
91
94
  }, {
92
95
  uuid: string;
93
96
  status?: "DISABLED" | "LIMITED" | "EXPIRED" | "ACTIVE" | undefined;
97
+ tag?: string | null | undefined;
94
98
  trafficLimitBytes?: number | undefined;
95
99
  description?: string | null | undefined;
96
100
  trafficLimitStrategy?: "MONTH" | "NO_RESET" | "DAY" | "WEEK" | undefined;
@@ -132,6 +136,7 @@ export declare namespace UpdateUserCommand {
132
136
  vlessUuid: z.ZodString;
133
137
  ssPassword: z.ZodString;
134
138
  description: z.ZodNullable<z.ZodString>;
139
+ tag: z.ZodNullable<z.ZodString>;
135
140
  telegramId: z.ZodNullable<z.ZodNumber>;
136
141
  email: z.ZodNullable<z.ZodString>;
137
142
  hwidDeviceLimit: z.ZodNullable<z.ZodNumber>;
@@ -181,6 +186,7 @@ export declare namespace UpdateUserCommand {
181
186
  createdAt: Date;
182
187
  updatedAt: Date;
183
188
  username: string;
189
+ tag: string | null;
184
190
  subscriptionUuid: string;
185
191
  shortUuid: string;
186
192
  usedTrafficBytes: number;
@@ -220,6 +226,7 @@ export declare namespace UpdateUserCommand {
220
226
  createdAt: string;
221
227
  updatedAt: string;
222
228
  username: string;
229
+ tag: string | null;
223
230
  subscriptionUuid: string;
224
231
  shortUuid: string;
225
232
  usedTrafficBytes: number;
@@ -263,6 +270,7 @@ export declare namespace UpdateUserCommand {
263
270
  createdAt: Date;
264
271
  updatedAt: Date;
265
272
  username: string;
273
+ tag: string | null;
266
274
  subscriptionUuid: string;
267
275
  shortUuid: string;
268
276
  usedTrafficBytes: number;
@@ -304,6 +312,7 @@ export declare namespace UpdateUserCommand {
304
312
  createdAt: string;
305
313
  updatedAt: string;
306
314
  username: string;
315
+ tag: string | null;
307
316
  subscriptionUuid: string;
308
317
  shortUuid: string;
309
318
  usedTrafficBytes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"update-user.command.d.ts","sourceRoot":"","sources":["../../../../commands/users/update-user.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,yBAAiB,iBAAiB,CAAC;IACxB,MAAM,GAAG,eAAwB,CAAC;IAClC,MAAM,OAAO,eAAM,CAAC;IAEpB,MAAM,eAAe,2CAI3B,CAAC;IAEK,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA8CxB,CAAC;IAEH,KAAY,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IAE7C,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
1
+ {"version":3,"file":"update-user.command.d.ts","sourceRoot":"","sources":["../../../../commands/users/update-user.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,yBAAiB,iBAAiB,CAAC;IACxB,MAAM,GAAG,eAAwB,CAAC;IAClC,MAAM,OAAO,eAAM,CAAC;IAEpB,MAAM,eAAe,2CAI3B,CAAC;IAEK,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAwDxB,CAAC;IAEH,KAAY,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;IAE7C,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEzB,CAAC;IAEH,KAAY,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;CACzD"}
@@ -51,6 +51,11 @@ var UpdateUserCommand;
51
51
  .describe('Expiration date: 2025-01-17T15:38:45.065Z')
52
52
  .optional(),
53
53
  description: zod_1.z.optional(zod_1.z.string().nullable()),
54
+ tag: zod_1.z.optional(zod_1.z
55
+ .string()
56
+ .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
57
+ .max(16, 'Tag must be less than 16 characters')
58
+ .nullable()),
54
59
  telegramId: zod_1.z.optional(zod_1.z.number().int().nullable()),
55
60
  email: zod_1.z.optional(zod_1.z.string().email('Invalid email format').nullable()),
56
61
  hwidDeviceLimit: zod_1.z.optional(zod_1.z.number().int().min(0, 'Device limit must be non-negative').nullable()),
@@ -539,5 +539,10 @@ export declare const ERRORS: {
539
539
  readonly message: "Upsert hwid user device error";
540
540
  readonly httpCode: 500;
541
541
  };
542
+ readonly GET_ALL_TAGS_ERROR: {
543
+ readonly code: "A103";
544
+ readonly message: "Get all tags error";
545
+ readonly httpCode: 500;
546
+ };
542
547
  };
543
548
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgN3B,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqN3B,CAAC"}
@@ -510,4 +510,9 @@ exports.ERRORS = {
510
510
  message: 'Upsert hwid user device error',
511
511
  httpCode: 500,
512
512
  },
513
+ GET_ALL_TAGS_ERROR: {
514
+ code: 'A103',
515
+ message: 'Get all tags error',
516
+ httpCode: 500,
517
+ },
513
518
  };
@@ -29,6 +29,7 @@ export declare const ExtendedUsersSchema: z.ZodObject<{
29
29
  vlessUuid: z.ZodString;
30
30
  ssPassword: z.ZodString;
31
31
  description: z.ZodNullable<z.ZodString>;
32
+ tag: z.ZodNullable<z.ZodString>;
32
33
  telegramId: z.ZodNullable<z.ZodNumber>;
33
34
  email: z.ZodNullable<z.ZodString>;
34
35
  hwidDeviceLimit: z.ZodNullable<z.ZodNumber>;
@@ -78,6 +79,7 @@ export declare const ExtendedUsersSchema: z.ZodObject<{
78
79
  createdAt: Date;
79
80
  updatedAt: Date;
80
81
  username: string;
82
+ tag: string | null;
81
83
  subscriptionUuid: string;
82
84
  shortUuid: string;
83
85
  usedTrafficBytes: number;
@@ -117,6 +119,7 @@ export declare const ExtendedUsersSchema: z.ZodObject<{
117
119
  createdAt: string;
118
120
  updatedAt: string;
119
121
  username: string;
122
+ tag: string | null;
120
123
  subscriptionUuid: string;
121
124
  shortUuid: string;
122
125
  usedTrafficBytes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"extented-users.schema.d.ts","sourceRoot":"","sources":["../../../models/extented-users.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAC"}
1
+ {"version":3,"file":"extented-users.schema.d.ts","sourceRoot":"","sources":["../../../models/extented-users.schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAI9B,CAAC"}
@@ -29,6 +29,7 @@ export declare const UsersSchema: z.ZodObject<{
29
29
  vlessUuid: z.ZodString;
30
30
  ssPassword: z.ZodString;
31
31
  description: z.ZodNullable<z.ZodString>;
32
+ tag: z.ZodNullable<z.ZodString>;
32
33
  telegramId: z.ZodNullable<z.ZodNumber>;
33
34
  email: z.ZodNullable<z.ZodString>;
34
35
  hwidDeviceLimit: z.ZodNullable<z.ZodNumber>;
@@ -59,6 +60,7 @@ export declare const UsersSchema: z.ZodObject<{
59
60
  createdAt: Date;
60
61
  updatedAt: Date;
61
62
  username: string;
63
+ tag: string | null;
62
64
  subscriptionUuid: string;
63
65
  shortUuid: string;
64
66
  usedTrafficBytes: number;
@@ -90,6 +92,7 @@ export declare const UsersSchema: z.ZodObject<{
90
92
  createdAt: string;
91
93
  updatedAt: string;
92
94
  username: string;
95
+ tag: string | null;
93
96
  subscriptionUuid: string;
94
97
  shortUuid: string;
95
98
  usedTrafficBytes: number;
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsEtB,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuEtB,CAAC"}
@@ -43,6 +43,7 @@ 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
+ tag: zod_1.z.nullable(zod_1.z.string()),
46
47
  telegramId: zod_1.z.nullable(zod_1.z.number().int()),
47
48
  email: zod_1.z.nullable(zod_1.z.string().email()),
48
49
  hwidDeviceLimit: zod_1.z.nullable(zod_1.z.number().int()),
@@ -22,6 +22,7 @@ exports.USERS_ROUTES = {
22
22
  SUBSCRIPTION_UUID: (subscriptionUuid) => `by-subscription-uuid/${subscriptionUuid}`,
23
23
  TELEGRAM_ID: (telegramId) => `by-telegram-id/${telegramId}`,
24
24
  EMAIL: (email) => `by-email/${email}`,
25
+ TAG: (tag) => `by-tag/${tag}`,
25
26
  },
26
27
  BULK: {
27
28
  DELETE_BY_STATUS: 'bulk/delete-by-status',
@@ -38,4 +39,7 @@ exports.USERS_ROUTES = {
38
39
  STATS: {
39
40
  GET_USAGE_BY_RANGE: (uuid) => `stats/usage/${uuid}/range`,
40
41
  },
42
+ TAGS: {
43
+ GET: 'tags',
44
+ },
41
45
  };
@@ -104,6 +104,7 @@ exports.REST_API = {
104
104
  SUBSCRIPTION_UUID: (subscriptionUuid) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.GET_BY.SUBSCRIPTION_UUID(subscriptionUuid)}`,
105
105
  TELEGRAM_ID: (telegramId) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.GET_BY.TELEGRAM_ID(telegramId)}`,
106
106
  EMAIL: (email) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.GET_BY.EMAIL(email)}`,
107
+ TAG: (tag) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.GET_BY.TAG(tag)}`,
107
108
  },
108
109
  BULK: {
109
110
  DELETE_BY_STATUS: `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.BULK.DELETE_BY_STATUS}`,
@@ -120,6 +121,9 @@ exports.REST_API = {
120
121
  STATS: {
121
122
  GET_USAGE_BY_RANGE: (uuid) => `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.STATS.GET_USAGE_BY_RANGE(uuid)}`,
122
123
  },
124
+ TAGS: {
125
+ GET: `${exports.ROOT}/${CONTROLLERS.USERS_CONTROLLER}/${CONTROLLERS.USERS_ROUTES.TAGS.GET}`,
126
+ },
123
127
  },
124
128
  SUBSCRIPTION: {
125
129
  GET: (shortUuid) => `${exports.ROOT}/${CONTROLLERS.SUBSCRIPTION_CONTROLLER}/${CONTROLLERS.SUBSCRIPTION_ROUTES.GET}/${shortUuid}`,
@@ -38,6 +38,11 @@ var BulkUpdateUsersCommand;
38
38
  description: zod_1.z.optional(zod_1.z.string().nullable()),
39
39
  telegramId: zod_1.z.optional(zod_1.z.number().int().nullable()),
40
40
  email: zod_1.z.optional(zod_1.z.string().email('Invalid email format').nullable()),
41
+ tag: zod_1.z.optional(zod_1.z
42
+ .string()
43
+ .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
44
+ .max(16, 'Tag must be less than 16 characters')
45
+ .nullable()),
41
46
  }),
42
47
  });
43
48
  BulkUpdateUsersCommand.ResponseSchema = zod_1.z.object({
@@ -36,6 +36,11 @@ var BulkAllUpdateUsersCommand;
36
36
  description: zod_1.z.optional(zod_1.z.string().nullable()),
37
37
  telegramId: zod_1.z.optional(zod_1.z.number().int().nullable()),
38
38
  email: zod_1.z.optional(zod_1.z.string().email('Invalid email format').nullable()),
39
+ tag: zod_1.z.optional(zod_1.z
40
+ .string()
41
+ .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
42
+ .max(16, 'Tag must be less than 16 characters')
43
+ .nullable()),
39
44
  });
40
45
  BulkAllUpdateUsersCommand.ResponseSchema = zod_1.z.object({
41
46
  response: zod_1.z.object({
@@ -104,6 +104,11 @@ var CreateUserCommand;
104
104
  .describe('Date format: 2025-01-17T15:38:45.065Z')
105
105
  .optional(),
106
106
  description: zod_1.z.string().optional(),
107
+ tag: zod_1.z
108
+ .string()
109
+ .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
110
+ .max(16, 'Tag must be less than 16 characters')
111
+ .optional(),
107
112
  telegramId: zod_1.z.optional(zod_1.z.number().int()),
108
113
  email: zod_1.z.string().email('Invalid email format').optional(),
109
114
  hwidDeviceLimit: zod_1.z.optional(zod_1.z
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetUserByTagCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const models_1 = require("../../../models");
7
+ const api_1 = require("../../../api");
8
+ var GetUserByTagCommand;
9
+ (function (GetUserByTagCommand) {
10
+ GetUserByTagCommand.url = api_1.REST_API.USERS.GET_BY.TAG;
11
+ GetUserByTagCommand.TSQ_url = GetUserByTagCommand.url(':tag');
12
+ GetUserByTagCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.USERS_ROUTES.GET_BY.TAG(':tag'), 'get', 'Get users by tag');
13
+ GetUserByTagCommand.RequestSchema = zod_1.z.object({
14
+ tag: zod_1.z
15
+ .string()
16
+ .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
17
+ .max(16, 'Tag must be less than 16 characters'),
18
+ });
19
+ GetUserByTagCommand.ResponseSchema = zod_1.z.object({
20
+ response: zod_1.z.array(models_1.ExtendedUsersSchema),
21
+ });
22
+ })(GetUserByTagCommand || (exports.GetUserByTagCommand = GetUserByTagCommand = {}));
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./get-user-by-email.command"), exports);
18
18
  __exportStar(require("./get-user-by-short-uuid.command"), exports);
19
19
  __exportStar(require("./get-user-by-subscription-uuid.command"), exports);
20
+ __exportStar(require("./get-user-by-tag.command"), exports);
20
21
  __exportStar(require("./get-user-by-telegram-id.command"), exports);
21
22
  __exportStar(require("./get-user-by-username.command"), exports);
@@ -23,4 +23,5 @@ __exportStar(require("./get-all-users.command"), exports);
23
23
  __exportStar(require("./get-by"), exports);
24
24
  __exportStar(require("./get-user-by-uuid.command"), exports);
25
25
  __exportStar(require("./get-user-usage-by-range.command"), exports);
26
+ __exportStar(require("./tags"), exports);
26
27
  __exportStar(require("./update-user.command"), exports);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GetAllTagsCommand = void 0;
4
+ const zod_1 = require("zod");
5
+ const constants_1 = require("../../../constants");
6
+ const api_1 = require("../../../api");
7
+ var GetAllTagsCommand;
8
+ (function (GetAllTagsCommand) {
9
+ GetAllTagsCommand.url = api_1.REST_API.USERS.GET;
10
+ GetAllTagsCommand.TSQ_url = GetAllTagsCommand.url;
11
+ GetAllTagsCommand.endpointDetails = (0, constants_1.getEndpointDetails)(api_1.USERS_ROUTES.TAGS.GET, 'get', 'Get all existing user tags');
12
+ GetAllTagsCommand.ResponseSchema = zod_1.z.object({
13
+ response: zod_1.z.object({
14
+ tags: zod_1.z.array(zod_1.z.string()),
15
+ }),
16
+ });
17
+ })(GetAllTagsCommand || (exports.GetAllTagsCommand = GetAllTagsCommand = {}));
@@ -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("./get-all-tags.command"), exports);
@@ -51,6 +51,11 @@ var UpdateUserCommand;
51
51
  .describe('Expiration date: 2025-01-17T15:38:45.065Z')
52
52
  .optional(),
53
53
  description: zod_1.z.optional(zod_1.z.string().nullable()),
54
+ tag: zod_1.z.optional(zod_1.z
55
+ .string()
56
+ .regex(/^[A-Z0-9_]+$/, 'Tag can only contain uppercase letters, numbers, underscores')
57
+ .max(16, 'Tag must be less than 16 characters')
58
+ .nullable()),
54
59
  telegramId: zod_1.z.optional(zod_1.z.number().int().nullable()),
55
60
  email: zod_1.z.optional(zod_1.z.string().email('Invalid email format').nullable()),
56
61
  hwidDeviceLimit: zod_1.z.optional(zod_1.z.number().int().min(0, 'Device limit must be non-negative').nullable()),
@@ -510,4 +510,9 @@ exports.ERRORS = {
510
510
  message: 'Upsert hwid user device error',
511
511
  httpCode: 500,
512
512
  },
513
+ GET_ALL_TAGS_ERROR: {
514
+ code: 'A103',
515
+ message: 'Get all tags error',
516
+ httpCode: 500,
517
+ },
513
518
  };
@@ -43,6 +43,7 @@ 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
+ tag: zod_1.z.nullable(zod_1.z.string()),
46
47
  telegramId: zod_1.z.nullable(zod_1.z.number().int()),
47
48
  email: zod_1.z.nullable(zod_1.z.string().email()),
48
49
  hwidDeviceLimit: zod_1.z.nullable(zod_1.z.number().int()),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@remnawave/backend-contract",
3
- "version": "0.5.8",
3
+ "version": "0.6.0",
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.",