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.
- package/dist/components/TgSignup/tg-signup.service.d.ts +6 -0
- package/dist/components/TgSignup/tg-signup.service.js +106 -49
- package/dist/components/TgSignup/tg-signup.service.js.map +1 -1
- package/dist/components/buffer-clients/buffer-client.service.d.ts +2 -0
- package/dist/components/buffer-clients/buffer-client.service.js +52 -6
- package/dist/components/buffer-clients/buffer-client.service.js.map +1 -1
- package/dist/components/clients/client.controller.d.ts +1 -9
- package/dist/components/clients/client.controller.js +28 -111
- package/dist/components/clients/client.controller.js.map +1 -1
- package/dist/components/clients/client.module.js +0 -4
- package/dist/components/clients/client.module.js.map +1 -1
- package/dist/components/clients/client.service.d.ts +5 -25
- package/dist/components/clients/client.service.js +31 -133
- package/dist/components/clients/client.service.js.map +1 -1
- package/dist/components/clients/dto/create-client.dto.js +23 -23
- package/dist/components/clients/dto/create-client.dto.js.map +1 -1
- package/dist/components/clients/dto/execute-client-query.dto.js +4 -4
- package/dist/components/clients/dto/execute-client-query.dto.js.map +1 -1
- package/dist/components/clients/dto/search-client.dto.d.ts +0 -1
- package/dist/components/clients/dto/search-client.dto.js +13 -21
- package/dist/components/clients/dto/search-client.dto.js.map +1 -1
- package/dist/components/clients/dto/setup-client.dto.js +4 -13
- package/dist/components/clients/dto/setup-client.dto.js.map +1 -1
- package/dist/components/clients/schemas/client.schema.js +25 -25
- package/dist/components/clients/schemas/client.schema.js.map +1 -1
- package/dist/components/promote-clients/promote-client.service.d.ts +2 -0
- package/dist/components/promote-clients/promote-client.service.js +56 -10
- package/dist/components/promote-clients/promote-client.service.js.map +1 -1
- package/dist/components/users/dto/create-user.dto.d.ts +18 -23
- package/dist/components/users/dto/create-user.dto.js +88 -80
- package/dist/components/users/dto/create-user.dto.js.map +1 -1
- package/dist/components/users/dto/search-user.dto.d.ts +1 -14
- package/dist/components/users/dto/search-user.dto.js +14 -92
- package/dist/components/users/dto/search-user.dto.js.map +1 -1
- package/dist/components/users/schemas/user.schema.d.ts +91 -48
- package/dist/components/users/schemas/user.schema.js +70 -74
- package/dist/components/users/schemas/user.schema.js.map +1 -1
- package/dist/components/users/scoring/index.d.ts +1 -0
- package/dist/components/users/scoring/index.js +18 -0
- package/dist/components/users/scoring/index.js.map +1 -0
- package/dist/components/users/scoring/relationship-scorer.d.ts +27 -0
- package/dist/components/users/scoring/relationship-scorer.js +49 -0
- package/dist/components/users/scoring/relationship-scorer.js.map +1 -0
- package/dist/components/users/users.controller.d.ts +21 -0
- package/dist/components/users/users.controller.js +72 -156
- package/dist/components/users/users.controller.js.map +1 -1
- package/dist/components/users/users.service.d.ts +15 -10
- package/dist/components/users/users.service.js +294 -195
- package/dist/components/users/users.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- 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.
|
|
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
|
|
77
|
-
|
|
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
|
|
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
|
-
|
|
167
|
+
const mapped = this.mapSentCodeResult(sendResult);
|
|
168
|
+
const activeSession = {
|
|
99
169
|
client,
|
|
100
|
-
phoneCodeHash:
|
|
170
|
+
phoneCodeHash: mapped.phoneCodeHash,
|
|
101
171
|
timeoutId,
|
|
102
|
-
createdAt: Date.now()
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
133
|
-
|
|
134
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
|
629
|
+
const healthyBufferClientsPerClient = new Map();
|
|
611
630
|
for (const doc of assignedBufferClients) {
|
|
612
631
|
if (!doc.clientId)
|
|
613
632
|
continue;
|
|
614
|
-
|
|
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
|
|
679
|
-
|
|
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,
|
|
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
|
-
|
|
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;
|