@checkfirst/nestjs-outlook 7.1.3 → 7.2.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 (36) hide show
  1. package/dist/entities/microsoft-user.entity.d.ts +2 -0
  2. package/dist/entities/microsoft-user.entity.js +11 -0
  3. package/dist/entities/microsoft-user.entity.js.map +1 -1
  4. package/dist/enums/event-types.enum.d.ts +1 -0
  5. package/dist/enums/event-types.enum.js +1 -0
  6. package/dist/enums/event-types.enum.js.map +1 -1
  7. package/dist/enums/microsoft-user-status.enum.d.ts +4 -0
  8. package/dist/enums/microsoft-user-status.enum.js +9 -0
  9. package/dist/enums/microsoft-user-status.enum.js.map +1 -0
  10. package/dist/errors/microsoft-refresh-token-invalid.error.d.ts +4 -0
  11. package/dist/errors/microsoft-refresh-token-invalid.error.js +12 -0
  12. package/dist/errors/microsoft-refresh-token-invalid.error.js.map +1 -0
  13. package/dist/migrations/1776700000000-AddMicrosoftUserStatusColumn.d.ts +5 -0
  14. package/dist/migrations/1776700000000-AddMicrosoftUserStatusColumn.js +20 -0
  15. package/dist/migrations/1776700000000-AddMicrosoftUserStatusColumn.js.map +1 -0
  16. package/dist/repositories/outlook-webhook-subscription.repository.d.ts +1 -3
  17. package/dist/repositories/outlook-webhook-subscription.repository.js +5 -18
  18. package/dist/repositories/outlook-webhook-subscription.repository.js.map +1 -1
  19. package/dist/services/auth/microsoft-auth.service.d.ts +1 -0
  20. package/dist/services/auth/microsoft-auth.service.js +55 -3
  21. package/dist/services/auth/microsoft-auth.service.js.map +1 -1
  22. package/dist/services/calendar/calendar.service.js +1 -0
  23. package/dist/services/calendar/calendar.service.js.map +1 -1
  24. package/dist/services/shared/graph-rate-limiter.service.d.ts +18 -0
  25. package/dist/services/shared/graph-rate-limiter.service.js +86 -0
  26. package/dist/services/shared/graph-rate-limiter.service.js.map +1 -1
  27. package/dist/services/subscription/microsoft-subscription.service.d.ts +13 -2
  28. package/dist/services/subscription/microsoft-subscription.service.js +233 -124
  29. package/dist/services/subscription/microsoft-subscription.service.js.map +1 -1
  30. package/dist/tsconfig.tsbuildinfo +1 -1
  31. package/dist/utils/outlook-api-executor.util.js +15 -1
  32. package/dist/utils/outlook-api-executor.util.js.map +1 -1
  33. package/dist/utils/retry.util.d.ts +1 -0
  34. package/dist/utils/retry.util.js +4 -0
  35. package/dist/utils/retry.util.js.map +1 -1
  36. package/package.json +1 -1
@@ -26,16 +26,23 @@ const outlook_webhook_subscription_repository_1 = require("../../repositories/ou
26
26
  const microsoft_user_entity_1 = require("../../entities/microsoft-user.entity");
27
27
  const constants_1 = require("../../constants");
28
28
  const event_types_enum_1 = require("../../enums/event-types.enum");
29
+ const microsoft_user_status_enum_1 = require("../../enums/microsoft-user-status.enum");
29
30
  const user_id_converter_service_1 = require("../shared/user-id-converter.service");
31
+ const graph_rate_limiter_service_1 = require("../shared/graph-rate-limiter.service");
30
32
  const outlook_api_executor_util_1 = require("../../utils/outlook-api-executor.util");
33
+ const GRAPH_BATCH_SIZE = 20;
34
+ const HEALTH_CHECK_WINDOW_HOURS = 24;
35
+ const FORCE_RENEWAL_WINDOW_HOURS = 12;
36
+ const STALE_NOTIFICATION_THRESHOLD_HOURS = 24;
31
37
  let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class MicrosoftSubscriptionService {
32
- constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, microsoftUserRepository, userIdConverter) {
38
+ constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, microsoftUserRepository, userIdConverter, rateLimiter) {
33
39
  this.microsoftAuthService = microsoftAuthService;
34
40
  this.webhookSubscriptionRepository = webhookSubscriptionRepository;
35
41
  this.eventEmitter = eventEmitter;
36
42
  this.microsoftConfig = microsoftConfig;
37
43
  this.microsoftUserRepository = microsoftUserRepository;
38
44
  this.userIdConverter = userIdConverter;
45
+ this.rateLimiter = rateLimiter;
39
46
  this.logger = new common_1.Logger(MicrosoftSubscriptionService_1.name);
40
47
  this.graphApiBaseUrl = 'https://graph.microsoft.com/v1.0';
41
48
  this.msAuthUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0';
@@ -215,30 +222,10 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
215
222
  if (axios_1.default.isAxiosError(error)) {
216
223
  const statusCode = (_a = error.response) === null || _a === void 0 ? void 0 : _a.status;
217
224
  if (statusCode === 404) {
218
- this.logger.warn(`[${correlationId}] Subscription ${subscriptionId} not found at Microsoft. ` +
219
- `Deactivating and attempting re-creation.`);
220
- await this.webhookSubscriptionRepository.deactivateSubscription(subscriptionId);
221
- try {
222
- const externalUserId = await this.userIdConverter.internalToExternal(internalUserId);
223
- await this.createWebhookSubscription(externalUserId);
224
- this.logger.log(`[${correlationId}] Successfully re-created subscription for user ${internalUserId} after 404`);
225
- this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATED, {
226
- subscriptionId,
227
- userId: internalUserId,
228
- reason: 'renewal_404',
229
- });
225
+ const outcome = await this.handleSubscriptionNotFoundAtMicrosoft(subscriptionId, internalUserId, 'renewal_404', correlationId);
226
+ if (outcome === 'recreated') {
230
227
  return {};
231
228
  }
232
- catch (recreateError) {
233
- const recreateMsg = recreateError instanceof Error ? recreateError.message : 'Unknown error';
234
- this.logger.error(`[${correlationId}] Failed to re-create subscription for user ${internalUserId}: ${recreateMsg}`);
235
- this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATION_FAILED, {
236
- subscriptionId,
237
- userId: internalUserId,
238
- reason: 'renewal_404',
239
- error: recreateMsg,
240
- });
241
- }
242
229
  throw new Error(`Subscription ${subscriptionId} not found at Microsoft. ` +
243
230
  `Subscription has been deactivated and re-creation failed.`);
244
231
  }
@@ -315,6 +302,14 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
315
302
  var _a;
316
303
  try {
317
304
  const internalUserId = await this.userIdConverter.externalToInternal(externalUserId, { cache: false });
305
+ const user = await this.microsoftUserRepository.findOne({
306
+ select: ['id', 'status'],
307
+ where: { id: internalUserId },
308
+ });
309
+ if (!user || user.status === microsoft_user_status_enum_1.MicrosoftUserStatus.CORRUPTED) {
310
+ this.logger.debug(`[getActiveSubscriptionForUser] User ${externalUserId} is missing or CORRUPTED — reporting as not connected`);
311
+ return null;
312
+ }
318
313
  this.logger.log(`[getActiveSubscriptionForUser] Getting active subscription for user ${externalUserId} (internalUserId: ${internalUserId})`);
319
314
  const subscription = await this.webhookSubscriptionRepository.findActiveByUserId(internalUserId);
320
315
  this.logger.log(`[getActiveSubscriptionForUser] Found subscription: ${subscription === null || subscription === void 0 ? void 0 : subscription.subscriptionId}`);
@@ -392,6 +387,28 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
392
387
  filter: (sub) => { var _a; return ((_a = sub.clientState) === null || _a === void 0 ? void 0 : _a.includes(`user_${userId}_`)) || false; },
393
388
  });
394
389
  }
390
+ async cleanupSubscriptionsForUserAndResource(externalUserId, resource) {
391
+ const internalUserId = await this.userIdConverter.externalToInternal(externalUserId, { cache: false });
392
+ const accessToken = await this.microsoftAuthService.getUserAccessToken({
393
+ internalUserId,
394
+ cache: false,
395
+ });
396
+ this.logger.log(`🧹 Cleaning up ${resource} subscriptions for user ${internalUserId}`);
397
+ const result = await this.cleanupSubscriptions({
398
+ accessToken,
399
+ filter: (sub) => {
400
+ var _a;
401
+ return sub.resource === resource &&
402
+ (((_a = sub.clientState) === null || _a === void 0 ? void 0 : _a.includes(`user_${internalUserId}_`)) || false);
403
+ },
404
+ });
405
+ const dbRows = await this.webhookSubscriptionRepository
406
+ .findAllActiveByUserIdAndResource(internalUserId, resource);
407
+ for (const row of dbRows) {
408
+ await this.webhookSubscriptionRepository.deactivateSubscription(row.subscriptionId);
409
+ }
410
+ return result;
411
+ }
395
412
  async revokeTokens(refreshToken) {
396
413
  try {
397
414
  if (!refreshToken) {
@@ -422,124 +439,215 @@ let MicrosoftSubscriptionService = MicrosoftSubscriptionService_1 = class Micros
422
439
  this.logger.log('✅ Full cleanup completed');
423
440
  return result;
424
441
  }
425
- async renewSubscriptions() {
442
+ async verifySubscriptionHealth() {
443
+ const correlationId = `health-check-${Date.now()}`;
426
444
  try {
427
- const expiringSubscriptions = await this.webhookSubscriptionRepository.findSubscriptionsNeedingRenewal(24, { skipLocked: true });
428
- if (expiringSubscriptions.length === 0) {
429
- this.logger.debug("No subscriptions need renewal");
445
+ const allActiveSubs = await this.webhookSubscriptionRepository.findActiveSubscriptions();
446
+ if (allActiveSubs.length === 0) {
447
+ this.logger.debug(`[${correlationId}] No active subscriptions to verify`);
430
448
  return;
431
449
  }
432
- this.logger.log(`Found ${String(expiringSubscriptions.length)} subscriptions that need renewal`);
433
- for (const subscription of expiringSubscriptions) {
434
- try {
435
- await this.renewWebhookSubscription(subscription.subscriptionId, subscription.userId);
436
- }
437
- catch (error) {
438
- this.logger.error(`Failed to renew subscription ${subscription.subscriptionId}:`, error);
450
+ const corruptedUserIds = await this.findCorruptedUserIds(allActiveSubs);
451
+ const activeSubs = corruptedUserIds.size > 0
452
+ ? allActiveSubs.filter((sub) => !corruptedUserIds.has(sub.userId))
453
+ : allActiveSubs;
454
+ const skipped = allActiveSubs.length - activeSubs.length;
455
+ if (skipped > 0) {
456
+ this.logger.log(`[${correlationId}] Skipping ${skipped} sub(s) owned by ${corruptedUserIds.size} CORRUPTED user(s)`);
457
+ }
458
+ const expiringSoon = this.filterExpiringSoon(activeSubs, HEALTH_CHECK_WINDOW_HOURS);
459
+ this.logger.log(`[${correlationId}] Health check: ${activeSubs.length} active, ${expiringSoon.length} expiring within ${HEALTH_CHECK_WINDOW_HOURS}h`);
460
+ const counters = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
461
+ counters.staleDetected = this.detectStaleSubscriptions(activeSubs, correlationId);
462
+ if (expiringSoon.length > 0) {
463
+ const byUser = this.groupByUserId(expiringSoon);
464
+ for (const [userId, userSubs] of byUser) {
465
+ const perUser = await this.verifySubscriptionsForUser(userId, userSubs, correlationId);
466
+ counters.verified += perUser.verified;
467
+ counters.recreated += perUser.recreated;
468
+ counters.renewed += perUser.renewed;
469
+ counters.failed += perUser.failed;
439
470
  }
440
471
  }
472
+ this.logger.log(`[${correlationId}] Health check complete: ${counters.verified} verified, ${counters.recreated} recreated, ${counters.renewed} renewed, ${counters.staleDetected} stale-detected, ${counters.failed} failed`);
441
473
  }
442
474
  catch (error) {
443
- this.logger.error("Error in subscription renewal job:", error);
475
+ this.logger.error(`[${correlationId}] Subscription health check job failed:`, error);
444
476
  }
445
477
  }
446
- async verifySubscriptionHealth() {
447
- const correlationId = `health-check-${Date.now()}`;
478
+ async findCorruptedUserIds(subs) {
479
+ const userIds = Array.from(new Set(subs.map((s) => s.userId)));
480
+ if (userIds.length === 0)
481
+ return new Set();
482
+ const rows = await this.microsoftUserRepository.find({
483
+ select: ['id'],
484
+ where: { id: (0, typeorm_2.In)(userIds), status: microsoft_user_status_enum_1.MicrosoftUserStatus.CORRUPTED },
485
+ });
486
+ return new Set(rows.map((u) => u.id));
487
+ }
488
+ filterExpiringSoon(subs, hoursAhead) {
489
+ const threshold = new Date(Date.now() + hoursAhead * 3600 * 1000);
490
+ return subs.filter((sub) => sub.expirationDateTime < threshold);
491
+ }
492
+ groupByUserId(subs) {
493
+ const byUser = new Map();
494
+ for (const sub of subs) {
495
+ const bucket = byUser.get(sub.userId);
496
+ if (bucket)
497
+ bucket.push(sub);
498
+ else
499
+ byUser.set(sub.userId, [sub]);
500
+ }
501
+ return byUser;
502
+ }
503
+ detectStaleSubscriptions(subs, correlationId) {
504
+ const staleThreshold = new Date(Date.now() - STALE_NOTIFICATION_THRESHOLD_HOURS * 3600 * 1000);
505
+ let staleDetected = 0;
506
+ for (const sub of subs) {
507
+ if (!sub.lastNotificationAt || sub.lastNotificationAt >= staleThreshold)
508
+ continue;
509
+ this.logger.warn(`[${correlationId}] Subscription ${sub.subscriptionId} has not received notifications since ${sub.lastNotificationAt.toISOString()}. Emitting LIFECYCLE_MISSED for delta sync.`);
510
+ this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.LIFECYCLE_MISSED, {
511
+ subscriptionId: sub.subscriptionId,
512
+ userId: sub.userId,
513
+ reason: 'health_check_stale',
514
+ });
515
+ staleDetected++;
516
+ }
517
+ return staleDetected;
518
+ }
519
+ async verifySubscriptionsForUser(userId, userSubs, correlationId) {
520
+ const totals = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
521
+ let externalUserId;
522
+ let accessToken;
448
523
  try {
449
- const activeSubscriptions = await this.webhookSubscriptionRepository.findActiveSubscriptions();
450
- if (activeSubscriptions.length === 0) {
451
- this.logger.debug(`[${correlationId}] No active subscriptions to verify`);
452
- return;
524
+ externalUserId = await this.userIdConverter.internalToExternal(userId);
525
+ accessToken = await this.microsoftAuthService.getUserAccessToken({ internalUserId: userId });
526
+ }
527
+ catch (error) {
528
+ totals.failed += userSubs.length;
529
+ this.logger.error(`[${correlationId}] Token fetch failed for user ${userId}; skipping ${userSubs.length} sub(s):`, error);
530
+ return totals;
531
+ }
532
+ for (let offset = 0; offset < userSubs.length; offset += GRAPH_BATCH_SIZE) {
533
+ const chunk = userSubs.slice(offset, offset + GRAPH_BATCH_SIZE);
534
+ const chunkTotals = await this.verifySubscriptionsBatch(chunk, userId, externalUserId, accessToken, correlationId);
535
+ totals.verified += chunkTotals.verified;
536
+ totals.recreated += chunkTotals.recreated;
537
+ totals.renewed += chunkTotals.renewed;
538
+ totals.failed += chunkTotals.failed;
539
+ }
540
+ return totals;
541
+ }
542
+ async verifySubscriptionsBatch(chunk, userId, externalUserId, accessToken, correlationId) {
543
+ const totals = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
544
+ await this.rateLimiter.acquirePermit(externalUserId);
545
+ const batchPayload = {
546
+ requests: chunk.map((sub, index) => ({
547
+ id: String(index),
548
+ method: 'GET',
549
+ url: `/subscriptions/${sub.subscriptionId}`,
550
+ headers: { 'Prefer': 'IdType="ImmutableId"' },
551
+ })),
552
+ };
553
+ try {
554
+ const response = await (0, outlook_api_executor_util_1.executeGraphApiCall)(() => axios_1.default.post(`${this.graphApiBaseUrl}/$batch`, batchPayload, {
555
+ headers: {
556
+ Authorization: `Bearer ${accessToken}`,
557
+ 'Content-Type': 'application/json',
558
+ },
559
+ }), {
560
+ logger: this.logger,
561
+ resourceName: `verify batch (user ${userId}, ${chunk.length} subs)`,
562
+ maxRetries: 2,
563
+ });
564
+ if (!(response === null || response === void 0 ? void 0 : response.data)) {
565
+ totals.failed += chunk.length;
566
+ this.logger.error(`[${correlationId}] Batch verify returned null for user ${userId}`);
567
+ return totals;
453
568
  }
454
- this.logger.log(`[${correlationId}] Verifying health of ${String(activeSubscriptions.length)} active subscriptions`);
455
- let verified = 0;
456
- let recreated = 0;
457
- let staleDetected = 0;
458
- let failed = 0;
459
- for (const subscription of activeSubscriptions) {
460
- try {
461
- const accessToken = await this.microsoftAuthService.getUserAccessToken({
462
- internalUserId: subscription.userId,
463
- });
464
- const response = await (0, outlook_api_executor_util_1.executeGraphApiCall)(() => axios_1.default.get(`${this.graphApiBaseUrl}/subscriptions/${subscription.subscriptionId}`, {
465
- headers: {
466
- Authorization: `Bearer ${accessToken}`,
467
- "Prefer": 'IdType="ImmutableId"',
468
- },
469
- }), {
470
- logger: this.logger,
471
- resourceName: `verify subscription ${subscription.subscriptionId}`,
472
- maxRetries: 2,
473
- return404AsNull: true,
474
- });
475
- if (!response) {
476
- this.logger.warn(`[${correlationId}] Subscription ${subscription.subscriptionId} not found at Microsoft. Attempting re-creation.`);
477
- await this.webhookSubscriptionRepository.deactivateSubscription(subscription.subscriptionId);
478
- try {
479
- const externalUserId = await this.userIdConverter.internalToExternal(subscription.userId);
480
- await this.createWebhookSubscription(externalUserId);
481
- recreated++;
482
- this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATED, {
483
- subscriptionId: subscription.subscriptionId,
484
- userId: subscription.userId,
485
- reason: 'health_check_404',
486
- });
487
- }
488
- catch (recreateError) {
489
- failed++;
490
- this.logger.error(`[${correlationId}] Failed to re-create subscription for user ${String(subscription.userId)}: ${recreateError instanceof Error ? recreateError.message : 'Unknown error'}`);
491
- this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATION_FAILED, {
492
- subscriptionId: subscription.subscriptionId,
493
- userId: subscription.userId,
494
- reason: 'health_check_404',
495
- error: recreateError instanceof Error ? recreateError.message : 'Unknown error',
496
- });
497
- }
498
- continue;
499
- }
500
- verified++;
501
- if (response.data.expirationDateTime) {
502
- const expiration = new Date(response.data.expirationDateTime);
503
- const twelveHoursFromNow = new Date();
504
- twelveHoursFromNow.setHours(twelveHoursFromNow.getHours() + 12);
505
- if (expiration < twelveHoursFromNow) {
506
- this.logger.log(`[${correlationId}] Subscription ${subscription.subscriptionId} expires within 12h. Forcing renewal.`);
507
- await this.renewWebhookSubscription(subscription.subscriptionId, subscription.userId);
508
- }
509
- }
510
- if (subscription.lastNotificationAt) {
511
- const twentyFourHoursAgo = new Date();
512
- twentyFourHoursAgo.setHours(twentyFourHoursAgo.getHours() - 24);
513
- if (subscription.lastNotificationAt < twentyFourHoursAgo) {
514
- this.logger.warn(`[${correlationId}] Subscription ${subscription.subscriptionId} has not received notifications since ${subscription.lastNotificationAt.toISOString()}. Emitting LIFECYCLE_MISSED for delta sync.`);
515
- staleDetected++;
516
- this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.LIFECYCLE_MISSED, {
517
- subscriptionId: subscription.subscriptionId,
518
- userId: subscription.userId,
519
- reason: 'health_check_stale',
520
- });
521
- }
522
- }
523
- }
524
- catch (error) {
525
- failed++;
526
- this.logger.error(`[${correlationId}] Health check failed for subscription ${subscription.subscriptionId}:`, error);
527
- }
569
+ for (const item of response.data.responses) {
570
+ const sub = chunk[parseInt(item.id, 10)];
571
+ if (!sub)
572
+ continue;
573
+ const itemTotals = await this.handleBatchResponseItem(sub, item, correlationId);
574
+ totals.verified += itemTotals.verified;
575
+ totals.recreated += itemTotals.recreated;
576
+ totals.renewed += itemTotals.renewed;
577
+ totals.failed += itemTotals.failed;
528
578
  }
529
- this.logger.log(`[${correlationId}] Health check complete: ${String(verified)} verified, ${String(recreated)} recreated, ${String(staleDetected)} stale-detected, ${String(failed)} failed`);
530
579
  }
531
580
  catch (error) {
532
- this.logger.error(`[${correlationId}] Subscription health check job failed:`, error);
581
+ totals.failed += chunk.length;
582
+ this.logger.error(`[${correlationId}] Batch verify failed for user ${userId} (${chunk.length} subs):`, error);
583
+ }
584
+ return totals;
585
+ }
586
+ async handleBatchResponseItem(sub, item, correlationId) {
587
+ const totals = { verified: 0, recreated: 0, renewed: 0, staleDetected: 0, failed: 0 };
588
+ if (item.status === 200) {
589
+ totals.verified = 1;
590
+ if (await this.maybeRenewIfExpiringSoon(sub, item.body, correlationId)) {
591
+ totals.renewed = 1;
592
+ }
593
+ return totals;
594
+ }
595
+ if (item.status === 404) {
596
+ const result = await this.handleSubscriptionNotFoundAtMicrosoft(sub.subscriptionId, sub.userId, 'health_check_404', correlationId);
597
+ if (result === 'recreated')
598
+ totals.recreated = 1;
599
+ else
600
+ totals.failed = 1;
601
+ return totals;
602
+ }
603
+ totals.failed = 1;
604
+ this.logger.error(`[${correlationId}] Unexpected status ${item.status} for sub ${sub.subscriptionId}: ${JSON.stringify(item.body)}`);
605
+ return totals;
606
+ }
607
+ async maybeRenewIfExpiringSoon(sub, graphSub, correlationId) {
608
+ if (!graphSub.expirationDateTime)
609
+ return false;
610
+ const expiration = new Date(graphSub.expirationDateTime);
611
+ const renewalThreshold = new Date(Date.now() + FORCE_RENEWAL_WINDOW_HOURS * 3600 * 1000);
612
+ if (expiration >= renewalThreshold)
613
+ return false;
614
+ this.logger.log(`[${correlationId}] Subscription ${sub.subscriptionId} expires within ${FORCE_RENEWAL_WINDOW_HOURS}h. Forcing renewal.`);
615
+ try {
616
+ await this.renewWebhookSubscription(sub.subscriptionId, sub.userId);
617
+ }
618
+ catch (error) {
619
+ this.logger.warn(`[${correlationId}] Forced renewal of ${sub.subscriptionId} failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
620
+ }
621
+ return true;
622
+ }
623
+ async handleSubscriptionNotFoundAtMicrosoft(subscriptionId, internalUserId, reason, correlationId) {
624
+ this.logger.warn(`[${correlationId}] Subscription ${subscriptionId} not found at Microsoft. Deactivating and attempting re-creation.`);
625
+ await this.webhookSubscriptionRepository.deactivateSubscription(subscriptionId);
626
+ try {
627
+ const externalUserId = await this.userIdConverter.internalToExternal(internalUserId);
628
+ await this.createWebhookSubscription(externalUserId);
629
+ this.logger.log(`[${correlationId}] Successfully re-created subscription for user ${internalUserId} after 404`);
630
+ this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATED, {
631
+ subscriptionId,
632
+ userId: internalUserId,
633
+ reason,
634
+ });
635
+ return 'recreated';
636
+ }
637
+ catch (recreateError) {
638
+ const recreateMsg = recreateError instanceof Error ? recreateError.message : 'Unknown error';
639
+ this.logger.error(`[${correlationId}] Failed to re-create subscription for user ${internalUserId}: ${recreateMsg}`);
640
+ this.eventEmitter.emit(event_types_enum_1.OutlookEventTypes.SUBSCRIPTION_RECREATION_FAILED, {
641
+ subscriptionId,
642
+ userId: internalUserId,
643
+ reason,
644
+ error: recreateMsg,
645
+ });
646
+ return 'failed';
533
647
  }
534
648
  }
535
649
  };
536
650
  exports.MicrosoftSubscriptionService = MicrosoftSubscriptionService;
537
- __decorate([
538
- (0, schedule_1.Cron)(schedule_1.CronExpression.EVERY_HOUR),
539
- __metadata("design:type", Function),
540
- __metadata("design:paramtypes", []),
541
- __metadata("design:returntype", Promise)
542
- ], MicrosoftSubscriptionService.prototype, "renewSubscriptions", null);
543
651
  __decorate([
544
652
  (0, schedule_1.Cron)('0 */6 * * *'),
545
653
  __metadata("design:type", Function),
@@ -554,6 +662,7 @@ exports.MicrosoftSubscriptionService = MicrosoftSubscriptionService = MicrosoftS
554
662
  __metadata("design:paramtypes", [microsoft_auth_service_1.MicrosoftAuthService,
555
663
  outlook_webhook_subscription_repository_1.OutlookWebhookSubscriptionRepository,
556
664
  event_emitter_1.EventEmitter2, Object, typeorm_2.Repository,
557
- user_id_converter_service_1.UserIdConverterService])
665
+ user_id_converter_service_1.UserIdConverterService,
666
+ graph_rate_limiter_service_1.GraphRateLimiterService])
558
667
  ], MicrosoftSubscriptionService);
559
668
  //# sourceMappingURL=microsoft-subscription.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-subscription.service.js","sourceRoot":"","sources":["../../../src/services/subscription/microsoft-subscription.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"microsoft-subscription.service.js","sourceRoot":"","sources":["../../../src/services/subscription/microsoft-subscription.service.ts"],"names":[],"mappings":"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"}