common-tg-service 1.3.183 → 1.3.185

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 (51) hide show
  1. package/dist/components/TgSignup/tg-signup.service.d.ts +6 -0
  2. package/dist/components/TgSignup/tg-signup.service.js +106 -49
  3. package/dist/components/TgSignup/tg-signup.service.js.map +1 -1
  4. package/dist/components/buffer-clients/buffer-client.service.d.ts +2 -0
  5. package/dist/components/buffer-clients/buffer-client.service.js +52 -6
  6. package/dist/components/buffer-clients/buffer-client.service.js.map +1 -1
  7. package/dist/components/clients/client.controller.d.ts +1 -9
  8. package/dist/components/clients/client.controller.js +28 -111
  9. package/dist/components/clients/client.controller.js.map +1 -1
  10. package/dist/components/clients/client.module.js +0 -4
  11. package/dist/components/clients/client.module.js.map +1 -1
  12. package/dist/components/clients/client.service.d.ts +5 -25
  13. package/dist/components/clients/client.service.js +31 -133
  14. package/dist/components/clients/client.service.js.map +1 -1
  15. package/dist/components/clients/dto/create-client.dto.js +23 -23
  16. package/dist/components/clients/dto/create-client.dto.js.map +1 -1
  17. package/dist/components/clients/dto/execute-client-query.dto.js +4 -4
  18. package/dist/components/clients/dto/execute-client-query.dto.js.map +1 -1
  19. package/dist/components/clients/dto/search-client.dto.d.ts +0 -1
  20. package/dist/components/clients/dto/search-client.dto.js +13 -21
  21. package/dist/components/clients/dto/search-client.dto.js.map +1 -1
  22. package/dist/components/clients/dto/setup-client.dto.js +4 -13
  23. package/dist/components/clients/dto/setup-client.dto.js.map +1 -1
  24. package/dist/components/clients/schemas/client.schema.js +25 -25
  25. package/dist/components/clients/schemas/client.schema.js.map +1 -1
  26. package/dist/components/promote-clients/promote-client.service.d.ts +2 -0
  27. package/dist/components/promote-clients/promote-client.service.js +56 -10
  28. package/dist/components/promote-clients/promote-client.service.js.map +1 -1
  29. package/dist/components/users/dto/create-user.dto.d.ts +18 -23
  30. package/dist/components/users/dto/create-user.dto.js +88 -80
  31. package/dist/components/users/dto/create-user.dto.js.map +1 -1
  32. package/dist/components/users/dto/search-user.dto.d.ts +1 -14
  33. package/dist/components/users/dto/search-user.dto.js +14 -92
  34. package/dist/components/users/dto/search-user.dto.js.map +1 -1
  35. package/dist/components/users/schemas/user.schema.d.ts +91 -48
  36. package/dist/components/users/schemas/user.schema.js +70 -74
  37. package/dist/components/users/schemas/user.schema.js.map +1 -1
  38. package/dist/components/users/scoring/index.d.ts +1 -0
  39. package/dist/components/users/scoring/index.js +18 -0
  40. package/dist/components/users/scoring/index.js.map +1 -0
  41. package/dist/components/users/scoring/relationship-scorer.d.ts +27 -0
  42. package/dist/components/users/scoring/relationship-scorer.js +49 -0
  43. package/dist/components/users/scoring/relationship-scorer.js.map +1 -0
  44. package/dist/components/users/users.controller.d.ts +21 -0
  45. package/dist/components/users/users.controller.js +72 -156
  46. package/dist/components/users/users.controller.js.map +1 -1
  47. package/dist/components/users/users.service.d.ts +15 -10
  48. package/dist/components/users/users.service.js +294 -195
  49. package/dist/components/users/users.service.js.map +1 -1
  50. package/dist/tsconfig.build.tsbuildinfo +1 -1
  51. package/package.json +1 -1
@@ -13,6 +13,12 @@ export declare class TgSignupService implements OnModuleDestroy {
13
13
  onModuleDestroy(): Promise<void>;
14
14
  private cleanupStaleSessions;
15
15
  private validatePhoneNumber;
16
+ private validateVerificationCode;
17
+ private refreshSessionTimeout;
18
+ private captureSessionSnapshot;
19
+ private buildTelegramClient;
20
+ private ensureConnectedClient;
21
+ private mapSentCodeResult;
16
22
  private disconnectClient;
17
23
  sendCode(phone: string): Promise<Pick<TgSignupResponse, 'phoneCodeHash' | 'isCodeViaApp'>>;
18
24
  verifyCode(phone: string, code: string, password?: string): Promise<TgSignupResponse>;
@@ -36,7 +36,7 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
36
36
  async cleanupStaleSessions() {
37
37
  for (const [phone, session] of TgSignupService_1.activeClients) {
38
38
  try {
39
- if (Date.now() - session.createdAt > TgSignupService_1.LOGIN_TIMEOUT &&
39
+ if (Date.now() - session.lastActivityAt > TgSignupService_1.LOGIN_TIMEOUT &&
40
40
  (!session.client || !session.client.connected)) {
41
41
  await this.disconnectClient(phone);
42
42
  }
@@ -53,6 +53,66 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
53
53
  }
54
54
  return phone;
55
55
  }
56
+ validateVerificationCode(code) {
57
+ const normalized = String(code || '').trim();
58
+ if (!/^\d{5}$/.test(normalized)) {
59
+ throw new common_1.BadRequestException('Code must be exactly 5 digits');
60
+ }
61
+ return normalized;
62
+ }
63
+ refreshSessionTimeout(phone, session) {
64
+ clearTimeout(session.timeoutId);
65
+ session.timeoutId = setTimeout(() => this.disconnectClient(phone), TgSignupService_1.LOGIN_TIMEOUT);
66
+ session.lastActivityAt = Date.now();
67
+ }
68
+ captureSessionSnapshot(session) {
69
+ try {
70
+ session.sessionSnapshot = session.client?.session?.save?.() || session.sessionSnapshot || '';
71
+ }
72
+ catch {
73
+ }
74
+ }
75
+ async buildTelegramClient(sessionSnapshot, apiId, apiHash, tgParams) {
76
+ const client = new telegram_1.TelegramClient(new sessions_1.StringSession(sessionSnapshot || ''), apiId, apiHash, tgParams);
77
+ await client.setLogLevel(Logger_1.LogLevel.ERROR);
78
+ return client;
79
+ }
80
+ async ensureConnectedClient(phone, session) {
81
+ if (session.client?.connected) {
82
+ return session.client;
83
+ }
84
+ try {
85
+ await session.client?.connect();
86
+ this.captureSessionSnapshot(session);
87
+ session.lastActivityAt = Date.now();
88
+ return session.client;
89
+ }
90
+ catch (error) {
91
+ this.logger.warn(`Connection lost for ${phone}, rebuilding signup client`);
92
+ }
93
+ this.captureSessionSnapshot(session);
94
+ try {
95
+ await session.client?.destroy();
96
+ }
97
+ catch {
98
+ }
99
+ const rebuiltClient = await this.buildTelegramClient(session.sessionSnapshot, session.apiId, session.apiHash, session.tgParams);
100
+ await rebuiltClient.connect();
101
+ session.client = rebuiltClient;
102
+ this.captureSessionSnapshot(session);
103
+ session.lastActivityAt = Date.now();
104
+ return rebuiltClient;
105
+ }
106
+ mapSentCodeResult(sendResult) {
107
+ if (sendResult instanceof tl_1.Api.auth.SentCodeSuccess) {
108
+ this.logger.error('Unexpected immediate login during send/resend code');
109
+ throw new common_1.BadRequestException('Unexpected immediate login');
110
+ }
111
+ return {
112
+ phoneCodeHash: sendResult.phoneCodeHash,
113
+ isCodeViaApp: sendResult.type instanceof tl_1.Api.auth.SentCodeTypeApp,
114
+ };
115
+ }
56
116
  async disconnectClient(phone) {
57
117
  const session = TgSignupService_1.activeClients.get(phone);
58
118
  if (session) {
@@ -73,13 +133,26 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
73
133
  try {
74
134
  phone = this.validatePhoneNumber(phone);
75
135
  const existingSession = TgSignupService_1.activeClients.get(phone);
76
- if (existingSession && existingSession.client?.connected) {
77
- await this.disconnectClient(phone);
136
+ if (existingSession) {
137
+ this.refreshSessionTimeout(phone, existingSession);
138
+ try {
139
+ const client = await this.ensureConnectedClient(phone, existingSession);
140
+ const resendResult = await client.invoke(new tl_1.Api.auth.ResendCode({
141
+ phoneNumber: phone,
142
+ phoneCodeHash: existingSession.phoneCodeHash,
143
+ }));
144
+ const mapped = this.mapSentCodeResult(resendResult);
145
+ existingSession.phoneCodeHash = mapped.phoneCodeHash;
146
+ this.captureSessionSnapshot(existingSession);
147
+ return mapped;
148
+ }
149
+ catch (error) {
150
+ this.logger.warn(`Resend failed for ${phone}; falling back to a fresh sendCode`);
151
+ await this.disconnectClient(phone);
152
+ }
78
153
  }
79
154
  const { apiId, apiHash, params: tgParams } = await (0, generateTGConfig_1.generateTGConfig)(phone);
80
- const session = new sessions_1.StringSession('');
81
- const client = new telegram_1.TelegramClient(session, apiId, apiHash, tgParams);
82
- await client.setLogLevel(Logger_1.LogLevel.ERROR);
155
+ const client = await this.buildTelegramClient('', apiId, apiHash, tgParams);
83
156
  await client.connect();
84
157
  const sendResult = await client.invoke(new tl_1.Api.auth.SendCode({
85
158
  phoneNumber: phone,
@@ -90,25 +163,28 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
90
163
  allowAppHash: true,
91
164
  }),
92
165
  }));
93
- if (sendResult instanceof tl_1.Api.auth.SentCodeSuccess) {
94
- this.logger.error(`Unexpected immediate login for ${phone}`);
95
- throw new common_1.BadRequestException('Unexpected immediate login');
96
- }
97
166
  const timeoutId = setTimeout(() => this.disconnectClient(phone), TgSignupService_1.LOGIN_TIMEOUT);
98
- TgSignupService_1.activeClients.set(phone, {
167
+ const mapped = this.mapSentCodeResult(sendResult);
168
+ const activeSession = {
99
169
  client,
100
- phoneCodeHash: sendResult.phoneCodeHash,
170
+ phoneCodeHash: mapped.phoneCodeHash,
101
171
  timeoutId,
102
- createdAt: Date.now()
103
- });
104
- return {
105
- phoneCodeHash: sendResult.phoneCodeHash,
106
- isCodeViaApp: sendResult.type instanceof tl_1.Api.auth.SentCodeTypeApp,
172
+ createdAt: Date.now(),
173
+ lastActivityAt: Date.now(),
174
+ apiId,
175
+ apiHash,
176
+ tgParams,
177
+ sessionSnapshot: client.session.save() || '',
107
178
  };
179
+ TgSignupService_1.activeClients.set(phone, activeSession);
180
+ return mapped;
108
181
  }
109
182
  catch (error) {
110
183
  this.logger.error(`Failed to send code to ${phone}: ${error.message}`, error.stack);
111
184
  await this.disconnectClient(phone);
185
+ if (error instanceof common_1.BadRequestException) {
186
+ throw error;
187
+ }
112
188
  if (error.errorMessage?.includes('PHONE_NUMBER_BANNED')) {
113
189
  throw new common_1.BadRequestException('This phone number has been banned from Telegram');
114
190
  }
@@ -124,32 +200,15 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
124
200
  async verifyCode(phone, code, password) {
125
201
  try {
126
202
  phone = this.validatePhoneNumber(phone);
203
+ code = this.validateVerificationCode(code);
127
204
  const session = TgSignupService_1.activeClients.get(phone);
128
205
  if (!session) {
129
206
  this.logger.warn(`No active signup session found for ${phone}`);
130
207
  throw new common_1.BadRequestException('Session Expired. Please start again');
131
208
  }
132
- clearTimeout(session.timeoutId);
133
- session.timeoutId = setTimeout(() => this.disconnectClient(phone), TgSignupService_1.LOGIN_TIMEOUT);
134
- if (!session.client?.connected) {
135
- try {
136
- await session.client?.connect();
137
- }
138
- catch (error) {
139
- this.logger.warn(`Connection lost for ${phone}, attempting to reconnect`);
140
- try {
141
- const { apiId, apiHash, params: tgParams } = await (0, generateTGConfig_1.generateTGConfig)(phone);
142
- const newSession = new sessions_1.StringSession('');
143
- const newClient = new telegram_1.TelegramClient(newSession, apiId, apiHash, tgParams);
144
- await newClient.connect();
145
- session.client = newClient;
146
- }
147
- catch (reconnectError) {
148
- throw new common_1.BadRequestException('Connection failed. Please try verifying again.');
149
- }
150
- }
151
- }
152
- const { client, phoneCodeHash } = session;
209
+ this.refreshSessionTimeout(phone, session);
210
+ const client = await this.ensureConnectedClient(phone, session);
211
+ const { phoneCodeHash } = session;
153
212
  try {
154
213
  this.logger.debug(`Attempting to sign in with code for ${phone}`);
155
214
  const signInResult = await client.invoke(new tl_1.Api.auth.SignIn({
@@ -170,6 +229,7 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
170
229
  if (!sessionString) {
171
230
  throw new Error('Failed to generate session string');
172
231
  }
232
+ session.sessionSnapshot = sessionString;
173
233
  const userData = await this.processLoginResult(signInResult.user, sessionString, password);
174
234
  await this.disconnectClient(phone);
175
235
  return userData;
@@ -184,7 +244,7 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
184
244
  requires2FA: true
185
245
  };
186
246
  }
187
- return await this.handle2FALogin(phone, session.client, password);
247
+ return await this.handle2FALogin(phone, client, password);
188
248
  }
189
249
  if (error.errorMessage?.includes('PHONE_CODE_INVALID') ||
190
250
  error.errorMessage?.includes('PHONE_CODE_EXPIRED')) {
@@ -273,30 +333,27 @@ let TgSignupService = TgSignupService_1 = class TgSignupService {
273
333
  tgId: user.id?.toString() || '',
274
334
  twoFA: !!password,
275
335
  password: password || null,
276
- lastActive: now.toISOString().split('T')[0],
277
336
  expired: false,
278
337
  channels: 0,
279
338
  personalChats: 0,
280
339
  totalChats: 0,
281
- otherPhotoCount: 0,
340
+ contacts: 0,
341
+ msgs: 0,
342
+ photoCount: 0,
343
+ videoCount: 0,
344
+ movieCount: 0,
282
345
  ownPhotoCount: 0,
346
+ otherPhotoCount: 0,
283
347
  ownVideoCount: 0,
284
348
  otherVideoCount: 0,
349
+ lastActive: now.toISOString().split('T')[0],
285
350
  calls: {
286
351
  totalCalls: 0,
287
352
  outgoing: 0,
288
353
  incoming: 0,
289
354
  video: 0,
290
355
  audio: 0,
291
- chats: [],
292
356
  },
293
- contacts: 0,
294
- movieCount: 0,
295
- score: 0,
296
- starred: false,
297
- msgs: 0,
298
- photoCount: 0,
299
- videoCount: 0,
300
357
  gender: 'unknown',
301
358
  };
302
359
  if (!userData.mobile || !userData.tgId) {
@@ -1 +1 @@
1
- {"version":3,"file":"tg-signup.service.js","sourceRoot":"","sources":["../../../src/components/TgSignup/tg-signup.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tg-signup.service.js","sourceRoot":"","sources":["../../../src/components/TgSignup/tg-signup.service.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,12 @@ import { BotsService } from '../bots';
15
15
  import { BaseClientUpdate, BaseClientService, ClientStatusType, ClientConfig } from '../shared/base-client.service';
16
16
  export declare class BufferClientService extends BaseClientService<BufferClientDocument> {
17
17
  private bufferClientModel;
18
+ private readonly MAX_HEALTHY_BUFFER_CLIENTS_PER_CLIENT;
18
19
  private promoteClientService;
19
20
  constructor(bufferClientModel: Model<BufferClientDocument>, telegramService: TelegramService, usersService: UsersService, activeChannelsService: ActiveChannelsService, clientService: ClientService, channelsService: ChannelsService, promoteClientServiceRef: PromoteClientService, sessionService: SessionService, botsService: BotsService);
20
21
  private getPrimaryClientMobiles;
21
22
  private isPrimaryClientMobile;
23
+ private isHealthyBufferClientForCap;
22
24
  get model(): Model<BufferClientDocument>;
23
25
  get clientType(): 'buffer';
24
26
  get config(): ClientConfig;
@@ -44,6 +44,7 @@ let BufferClientService = BufferClientService_1 = class BufferClientService exte
44
44
  constructor(bufferClientModel, telegramService, usersService, activeChannelsService, clientService, channelsService, promoteClientServiceRef, sessionService, botsService) {
45
45
  super(telegramService, usersService, activeChannelsService, clientService, channelsService, sessionService, botsService, BufferClientService_1.name);
46
46
  this.bufferClientModel = bufferClientModel;
47
+ this.MAX_HEALTHY_BUFFER_CLIENTS_PER_CLIENT = 20;
47
48
  this.promoteClientService = promoteClientServiceRef;
48
49
  }
49
50
  async getPrimaryClientMobiles(clientId) {
@@ -60,6 +61,24 @@ let BufferClientService = BufferClientService_1 = class BufferClientService exte
60
61
  isPrimaryClientMobile(mobile, primaryClientMobiles) {
61
62
  return !!mobile && primaryClientMobiles.has(mobile);
62
63
  }
64
+ isHealthyBufferClientForCap(doc, now) {
65
+ const phase = doc.warmupPhase || this.inferWarmupPhaseFromProgress(doc);
66
+ if (phase === base_client_service_1.WarmupPhase.READY || phase === base_client_service_1.WarmupPhase.SESSION_ROTATED) {
67
+ return true;
68
+ }
69
+ const failedAttempts = doc.failedUpdateAttempts || 0;
70
+ if (failedAttempts >= this.MAX_FAILED_ATTEMPTS) {
71
+ return false;
72
+ }
73
+ const enrolledAtMs = client_helper_utils_1.ClientHelperUtils.getTimestamp(doc.enrolledAt) || client_helper_utils_1.ClientHelperUtils.getTimestamp(doc.createdAt);
74
+ if (enrolledAtMs > 0) {
75
+ const daysSinceEnrolled = (now - enrolledAtMs) / this.ONE_DAY_MS;
76
+ if (daysSinceEnrolled > 45) {
77
+ return false;
78
+ }
79
+ }
80
+ return true;
81
+ }
63
82
  get model() {
64
83
  return this.bufferClientModel;
65
84
  }
@@ -607,11 +626,13 @@ let BufferClientService = BufferClientService_1 = class BufferClientService exte
607
626
  ...promoteClients.map((c) => c.mobile),
608
627
  ...assignedBufferMobiles,
609
628
  ].filter(Boolean);
610
- const bufferClientsPerClient = new Map();
629
+ const healthyBufferClientsPerClient = new Map();
611
630
  for (const doc of assignedBufferClients) {
612
631
  if (!doc.clientId)
613
632
  continue;
614
- bufferClientsPerClient.set(doc.clientId, (bufferClientsPerClient.get(doc.clientId) || 0) + 1);
633
+ if (!this.isHealthyBufferClientForCap(doc, now))
634
+ continue;
635
+ healthyBufferClientsPerClient.set(doc.clientId, (healthyBufferClientsPerClient.get(doc.clientId) || 0) + 1);
615
636
  }
616
637
  let totalUpdates = 0;
617
638
  const updatedEntries = [];
@@ -675,9 +696,27 @@ let BufferClientService = BufferClientService_1 = class BufferClientService exte
675
696
  const clientNeedingBufferClients = [];
676
697
  for (const client of clients) {
677
698
  const availabilityNeeds = await this.calculateAvailabilityBasedNeedsForCurrentState(client.clientId);
678
- if (availabilityNeeds.totalNeeded > 0) {
679
- clientNeedingBufferClients.push({ clientId: client.clientId, ...availabilityNeeds });
699
+ if (availabilityNeeds.totalNeeded <= 0)
700
+ continue;
701
+ const healthyCount = healthyBufferClientsPerClient.get(client.clientId) || 0;
702
+ const remainingCapacity = Math.max(0, this.MAX_HEALTHY_BUFFER_CLIENTS_PER_CLIENT - healthyCount);
703
+ if (remainingCapacity <= 0) {
704
+ this.logger.debug(`Skipping dynamic buffer enrollment for ${client.clientId}: healthy pool already at cap`, {
705
+ healthyCount,
706
+ cap: this.MAX_HEALTHY_BUFFER_CLIENTS_PER_CLIENT,
707
+ requested: availabilityNeeds.totalNeeded,
708
+ });
709
+ continue;
680
710
  }
711
+ const cappedNeeded = Math.min(availabilityNeeds.totalNeeded, remainingCapacity);
712
+ clientNeedingBufferClients.push({
713
+ clientId: client.clientId,
714
+ ...availabilityNeeds,
715
+ totalNeeded: cappedNeeded,
716
+ calculationReason: cappedNeeded < availabilityNeeds.totalNeeded
717
+ ? `${availabilityNeeds.calculationReason}; capped to remaining healthy capacity ${remainingCapacity}/${this.MAX_HEALTHY_BUFFER_CLIENTS_PER_CLIENT}`
718
+ : availabilityNeeds.calculationReason,
719
+ });
681
720
  }
682
721
  clientNeedingBufferClients.sort((a, b) => a.priority - b.priority);
683
722
  let totalSlotsNeeded = 0;
@@ -694,7 +733,7 @@ let BufferClientService = BufferClientService_1 = class BufferClientService exte
694
733
  createdEntries: [],
695
734
  };
696
735
  if (clientNeedingBufferClients.length > 0 && totalSlotsNeeded > 0) {
697
- dynamicCreateResult = await this.addNewUserstoBufferClientsDynamic([], goodIds, clientNeedingBufferClients, bufferClientsPerClient);
736
+ dynamicCreateResult = await this.addNewUserstoBufferClientsDynamic([], goodIds, clientNeedingBufferClients, healthyBufferClientsPerClient);
698
737
  }
699
738
  await this.sendBufferCheckSummaryNotification(totalUpdates, dynamicCreateResult.createdCount, dynamicCreateResult.attemptedCount, updatedEntries, dynamicCreateResult.createdEntries);
700
739
  }
@@ -892,10 +931,17 @@ let BufferClientService = BufferClientService_1 = class BufferClientService exte
892
931
  }, { tgId: 1 }, totalNeeded + 5);
893
932
  const today = client_helper_utils_1.ClientHelperUtils.getTodayDateString();
894
933
  const assignmentQueue = [];
934
+ const projectedHealthyCounts = new Map(bufferClientsPerClient || []);
895
935
  for (const clientNeed of clientsNeedingBufferClients) {
896
- for (let i = 0; i < clientNeed.totalNeeded; i++) {
936
+ const currentHealthyCount = projectedHealthyCounts.get(clientNeed.clientId) || 0;
937
+ const remainingCapacity = Math.max(0, this.MAX_HEALTHY_BUFFER_CLIENTS_PER_CLIENT - currentHealthyCount);
938
+ const cappedNeed = Math.min(clientNeed.totalNeeded, remainingCapacity);
939
+ for (let i = 0; i < cappedNeed; i++) {
897
940
  assignmentQueue.push({ clientId: clientNeed.clientId, priority: clientNeed.priority });
898
941
  }
942
+ if (cappedNeed > 0) {
943
+ projectedHealthyCounts.set(clientNeed.clientId, currentHealthyCount + cappedNeed);
944
+ }
899
945
  }
900
946
  let attemptedCount = 0;
901
947
  let createdCount = 0;