@checkfirst/nestjs-outlook 6.0.0 → 6.1.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.
package/dist/index.d.ts CHANGED
@@ -4,6 +4,7 @@ export * from './services/calendar/recurrence.service';
4
4
  export * from './services/email/email.service';
5
5
  export * from './services/shared/user-id-converter.service';
6
6
  export * from './services/subscription/microsoft-subscription.service';
7
+ export * from './services/shared/graph-rate-limiter.service';
7
8
  export * from './microsoft-outlook.module';
8
9
  export * from './interfaces/outlook/token-response.interface';
9
10
  export * from './interfaces/config/outlook-config.interface';
package/dist/index.js CHANGED
@@ -20,6 +20,7 @@ __exportStar(require("./services/calendar/recurrence.service"), exports);
20
20
  __exportStar(require("./services/email/email.service"), exports);
21
21
  __exportStar(require("./services/shared/user-id-converter.service"), exports);
22
22
  __exportStar(require("./services/subscription/microsoft-subscription.service"), exports);
23
+ __exportStar(require("./services/shared/graph-rate-limiter.service"), exports);
23
24
  __exportStar(require("./microsoft-outlook.module"), exports);
24
25
  __exportStar(require("./interfaces/outlook/token-response.interface"), exports);
25
26
  __exportStar(require("./interfaces/config/outlook-config.interface"), exports);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,yEAAuD;AACvD,uEAAqD;AACrD,yEAAuD;AACvD,iEAA+C;AAC/C,8EAA4D;AAC5D,yFAAuE;AAGvE,6DAA2C;AAG3C,gFAA8D;AAC9D,+EAA6D;AAC7D,qEAAmD;AAGnD,gEAA8C;AAC9C,2DAAyC;AACzC,4DAA0C;AAG1C,8CAA4B;AAG5B,oEAAkD;AAClD,0EAAwD;AACxD,iEAA+C;AAG/C,yEAAuD;AAGvD,iFAA+D;AAC/D,mEAAiD;AAGjD,yFAAuE;AAGvE,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAGA,yEAAuD;AACvD,uEAAqD;AACrD,yEAAuD;AACvD,iEAA+C;AAC/C,8EAA4D;AAC5D,yFAAuE;AACvE,+EAA6D;AAG7D,6DAA2C;AAG3C,gFAA8D;AAC9D,+EAA6D;AAC7D,qEAAmD;AAGnD,gEAA8C;AAC9C,2DAAyC;AACzC,4DAA0C;AAG1C,8CAA4B;AAG5B,oEAAkD;AAClD,0EAAwD;AACxD,iEAA+C;AAG/C,yEAAuD;AAGvD,iFAA+D;AAC/D,mEAAiD;AAGjD,yFAAuE;AAGvE,0CAAwB"}
@@ -31,6 +31,7 @@ const user_id_converter_service_1 = require("./services/shared/user-id-converter
31
31
  const lifecycle_event_handler_service_1 = require("./services/calendar/lifecycle-event-handler.service");
32
32
  const recurrence_service_1 = require("./services/calendar/recurrence.service");
33
33
  const microsoft_subscription_service_1 = require("./services/subscription/microsoft-subscription.service");
34
+ const graph_rate_limiter_service_1 = require("./services/shared/graph-rate-limiter.service");
34
35
  _a = new common_1.ConfigurableModuleBuilder()
35
36
  .setClassMethodName("forRoot")
36
37
  .build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN;
@@ -67,6 +68,7 @@ exports.MicrosoftOutlookModule = MicrosoftOutlookModule = __decorate([
67
68
  lifecycle_event_handler_service_1.LifecycleEventHandlerService,
68
69
  recurrence_service_1.RecurrenceService,
69
70
  microsoft_subscription_service_1.MicrosoftSubscriptionService,
71
+ graph_rate_limiter_service_1.GraphRateLimiterService,
70
72
  ],
71
73
  exports: [
72
74
  calendar_service_1.CalendarService,
@@ -77,6 +79,7 @@ exports.MicrosoftOutlookModule = MicrosoftOutlookModule = __decorate([
77
79
  delta_sync_service_1.DeltaSyncService,
78
80
  user_id_converter_service_1.UserIdConverterService,
79
81
  microsoft_subscription_service_1.MicrosoftSubscriptionService,
82
+ graph_rate_limiter_service_1.GraphRateLimiterService,
80
83
  ],
81
84
  })
82
85
  ], MicrosoftOutlookModule);
@@ -1 +1 @@
1
- {"version":3,"file":"microsoft-outlook.module.js","sourceRoot":"","sources":["../src/microsoft-outlook.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAmE;AACnE,6CAAgD;AAChD,+CAAkD;AAClD,yDAA2D;AAC3D,mFAA8E;AAC9E,uFAAkF;AAClF,2EAAuE;AACvE,qEAAiE;AACjE,wGAA4F;AAC5F,oHAA8G;AAC9G,2CAA+C;AAE/C,oEAAkE;AAClE,oGAA8F;AAC9F,2EAAuE;AACvE,kEAA8D;AAC9D,4EAAiE;AACjE,oEAAgE;AAChE,gGAA0F;AAC1F,6EAAwE;AACxE,2FAAqF;AACrF,yGAAmG;AACnG,+EAA2E;AAC3E,2GAAsG;AAEzF,KACX,IAAI,kCAAyB,EAA0B;KACpD,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,EAHG,+BAAuB,+BAAE,4BAAoB,2BAG/C;AA+CN,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,+BAAuB;CAAG,CAAA;AAAzD,wDAAsB;iCAAtB,sBAAsB;IAzClC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc,CAAC,OAAO,EAAE;YACxB,uBAAa,CAAC,UAAU,CAAC;gBACvB,gEAA0B;gBAC1B,sCAAkB;gBAClB,qCAAa;gBACb,oCAAgB;aACjB,CAAC;YACF,kCAAkB,CAAC,OAAO,EAAE;SAC7B;QACD,WAAW,EAAE,CAAC,mDAAuB,EAAE,wCAAkB,EAAE,kCAAe,CAAC;QAC3E,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,4BAAgB;gBACzB,UAAU,EAAE,CAAC,OAA+B,EAAE,EAAE,CAAC,OAAO;gBACxD,MAAM,EAAE,CAAC,4BAAoB,CAAC;aAC/B;YACD,8EAAoC;YACpC,8DAA4B;YAC5B,kCAAe;YACf,4BAAY;YACZ,6CAAoB;YACpB,0DAA0B;YAC1B,qCAAgB;YAChB,kDAAsB;YACtB,8DAA4B;YAC5B,sCAAiB;YACjB,6DAA4B;SAC7B;QACD,OAAO,EAAE;YACP,kCAAe;YACf,sCAAiB;YACjB,4BAAY;YACZ,6CAAoB;YACpB,0DAA0B;YAC1B,qCAAgB;YAChB,kDAAsB;YACtB,6DAA4B;SAC7B;KACF,CAAC;GACW,sBAAsB,CAAmC"}
1
+ {"version":3,"file":"microsoft-outlook.module.js","sourceRoot":"","sources":["../src/microsoft-outlook.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAmE;AACnE,6CAAgD;AAChD,+CAAkD;AAClD,yDAA2D;AAC3D,mFAA8E;AAC9E,uFAAkF;AAClF,2EAAuE;AACvE,qEAAiE;AACjE,wGAA4F;AAC5F,oHAA8G;AAC9G,2CAA+C;AAE/C,oEAAkE;AAClE,oGAA8F;AAC9F,2EAAuE;AACvE,kEAA8D;AAC9D,4EAAiE;AACjE,oEAAgE;AAChE,gGAA0F;AAC1F,6EAAwE;AACxE,2FAAqF;AACrF,yGAAmG;AACnG,+EAA2E;AAC3E,2GAAsG;AACtG,6FAAuF;AAE1E,KACX,IAAI,kCAAyB,EAA0B;KACpD,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,EAHG,+BAAuB,+BAAE,4BAAoB,2BAG/C;AAiDN,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,+BAAuB;CAAG,CAAA;AAAzD,wDAAsB;iCAAtB,sBAAsB;IA3ClC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,yBAAc,CAAC,OAAO,EAAE;YACxB,uBAAa,CAAC,UAAU,CAAC;gBACvB,gEAA0B;gBAC1B,sCAAkB;gBAClB,qCAAa;gBACb,oCAAgB;aACjB,CAAC;YACF,kCAAkB,CAAC,OAAO,EAAE;SAC7B;QACD,WAAW,EAAE,CAAC,mDAAuB,EAAE,wCAAkB,EAAE,kCAAe,CAAC;QAC3E,SAAS,EAAE;YACT;gBACE,OAAO,EAAE,4BAAgB;gBACzB,UAAU,EAAE,CAAC,OAA+B,EAAE,EAAE,CAAC,OAAO;gBACxD,MAAM,EAAE,CAAC,4BAAoB,CAAC;aAC/B;YACD,8EAAoC;YACpC,8DAA4B;YAC5B,kCAAe;YACf,4BAAY;YACZ,6CAAoB;YACpB,0DAA0B;YAC1B,qCAAgB;YAChB,kDAAsB;YACtB,8DAA4B;YAC5B,sCAAiB;YACjB,6DAA4B;YAC5B,oDAAuB;SACxB;QACD,OAAO,EAAE;YACP,kCAAe;YACf,sCAAiB;YACjB,4BAAY;YACZ,6CAAoB;YACpB,0DAA0B;YAC1B,qCAAgB;YAChB,kDAAsB;YACtB,6DAA4B;YAC5B,oDAAuB;SACxB;KACF,CAAC;GACW,sBAAsB,CAAmC"}
@@ -11,6 +11,7 @@ import { DeltaSyncService } from "../shared/delta-sync.service";
11
11
  import { UserIdConverterService } from "../shared/user-id-converter.service";
12
12
  import { MicrosoftSubscriptionService } from "../subscription/microsoft-subscription.service";
13
13
  import { OutlookWebhookSubscription } from "../../entities/outlook-webhook-subscription.entity";
14
+ import { GraphRateLimiterService } from "../shared/graph-rate-limiter.service";
14
15
  export declare class CalendarService {
15
16
  private readonly microsoftAuthService;
16
17
  private readonly webhookSubscriptionRepository;
@@ -21,9 +22,10 @@ export declare class CalendarService {
21
22
  private readonly deltaSyncService;
22
23
  private readonly userIdConverter;
23
24
  private readonly subscriptionService;
25
+ private readonly rateLimiter;
24
26
  private readonly logger;
25
27
  private readonly syncLocks;
26
- constructor(microsoftAuthService: MicrosoftAuthService, webhookSubscriptionRepository: OutlookWebhookSubscriptionRepository, eventEmitter: EventEmitter2, microsoftConfig: MicrosoftOutlookConfig, deltaLinkRepository: OutlookDeltaLinkRepository, microsoftUserRepository: Repository<MicrosoftUser>, deltaSyncService: DeltaSyncService, userIdConverter: UserIdConverterService, subscriptionService: MicrosoftSubscriptionService);
28
+ constructor(microsoftAuthService: MicrosoftAuthService, webhookSubscriptionRepository: OutlookWebhookSubscriptionRepository, eventEmitter: EventEmitter2, microsoftConfig: MicrosoftOutlookConfig, deltaLinkRepository: OutlookDeltaLinkRepository, microsoftUserRepository: Repository<MicrosoftUser>, deltaSyncService: DeltaSyncService, userIdConverter: UserIdConverterService, subscriptionService: MicrosoftSubscriptionService, rateLimiter: GraphRateLimiterService);
27
29
  getDefaultCalendarId(externalUserId: string): Promise<string>;
28
30
  createEvent(event: Partial<Event>, externalUserId: string, calendarId: string): Promise<{
29
31
  event: Event;
@@ -75,6 +77,8 @@ export declare class CalendarService {
75
77
  saveDeltaLink(externalUserId: string, deltaLink: string): Promise<void>;
76
78
  getEventDetails(resource: string, externalUserId: string): Promise<Event | null>;
77
79
  getEventsBatch(eventIds: string[], externalUserId: string): Promise<Event[]>;
80
+ private getEventsBatchInternal;
81
+ private extractRetryAfterFromResponse;
78
82
  importEventsStream(externalUserId: string, options?: {
79
83
  startDate?: Date;
80
84
  endDate?: Date;
@@ -58,6 +58,7 @@ const user_id_converter_service_1 = require("../shared/user-id-converter.service
58
58
  const resource_type_enum_1 = require("../../enums/resource-type.enum");
59
59
  const microsoft_subscription_service_1 = require("../subscription/microsoft-subscription.service");
60
60
  const outlook_api_executor_util_1 = require("../../utils/outlook-api-executor.util");
61
+ const graph_rate_limiter_service_1 = require("../shared/graph-rate-limiter.service");
61
62
  const OUTLOOK_EVENT_CREATED = event_types_enum_1.OutlookEventTypes.EVENT_CREATED;
62
63
  const OUTLOOK_EVENT_UPDATED = event_types_enum_1.OutlookEventTypes.EVENT_UPDATED;
63
64
  const OUTLOOK_EVENT_DELETED = event_types_enum_1.OutlookEventTypes.EVENT_DELETED;
@@ -82,7 +83,7 @@ function detectEventType(change) {
82
83
  return isNewEvent(change) ? OUTLOOK_EVENT_CREATED : OUTLOOK_EVENT_UPDATED;
83
84
  }
84
85
  let CalendarService = CalendarService_1 = class CalendarService {
85
- constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, deltaLinkRepository, microsoftUserRepository, deltaSyncService, userIdConverter, subscriptionService) {
86
+ constructor(microsoftAuthService, webhookSubscriptionRepository, eventEmitter, microsoftConfig, deltaLinkRepository, microsoftUserRepository, deltaSyncService, userIdConverter, subscriptionService, rateLimiter) {
86
87
  this.microsoftAuthService = microsoftAuthService;
87
88
  this.webhookSubscriptionRepository = webhookSubscriptionRepository;
88
89
  this.eventEmitter = eventEmitter;
@@ -92,6 +93,7 @@ let CalendarService = CalendarService_1 = class CalendarService {
92
93
  this.deltaSyncService = deltaSyncService;
93
94
  this.userIdConverter = userIdConverter;
94
95
  this.subscriptionService = subscriptionService;
96
+ this.rateLimiter = rateLimiter;
95
97
  this.logger = new common_1.Logger(CalendarService_1.name);
96
98
  this.syncLocks = new Map();
97
99
  }
@@ -115,6 +117,7 @@ let CalendarService = CalendarService_1 = class CalendarService {
115
117
  }
116
118
  }
117
119
  async createEvent(event, externalUserId, calendarId) {
120
+ await this.rateLimiter.acquirePermit(externalUserId);
118
121
  try {
119
122
  const accessToken = await this.microsoftAuthService.getUserAccessToken({ externalUserId });
120
123
  const client = microsoft_graph_client_1.Client.init({
@@ -134,8 +137,12 @@ let CalendarService = CalendarService_1 = class CalendarService {
134
137
  this.logger.error(`Failed to create Outlook calendar event: ${errorMessage}`);
135
138
  throw new Error(`Failed to create Outlook calendar event: ${errorMessage}`);
136
139
  }
140
+ finally {
141
+ this.rateLimiter.releasePermit(externalUserId);
142
+ }
137
143
  }
138
144
  async updateEvent(eventId, updates, externalUserId, calendarId) {
145
+ await this.rateLimiter.acquirePermit(externalUserId);
139
146
  try {
140
147
  const accessToken = await this.microsoftAuthService.getUserAccessToken({ externalUserId });
141
148
  const client = microsoft_graph_client_1.Client.init({
@@ -156,8 +163,12 @@ let CalendarService = CalendarService_1 = class CalendarService {
156
163
  this.logger.error(`Failed to update Outlook calendar event: ${errorMessage}`);
157
164
  throw new Error(`Failed to update Outlook calendar event: ${errorMessage}`);
158
165
  }
166
+ finally {
167
+ this.rateLimiter.releasePermit(externalUserId);
168
+ }
159
169
  }
160
170
  async deleteEvent(event, externalUserId, calendarId) {
171
+ await this.rateLimiter.acquirePermit(externalUserId);
161
172
  try {
162
173
  const internalUserId = await this.userIdConverter.toInternalUserId(externalUserId);
163
174
  const accessToken = await this.microsoftAuthService.getUserAccessToken({ internalUserId });
@@ -182,6 +193,9 @@ let CalendarService = CalendarService_1 = class CalendarService {
182
193
  this.logger.error(`Failed to delete Outlook calendar event after retries: ${errorMessage}`);
183
194
  throw new Error(`Failed to delete Outlook calendar event: ${errorMessage}`);
184
195
  }
196
+ finally {
197
+ this.rateLimiter.releasePermit(externalUserId);
198
+ }
185
199
  }
186
200
  async createBatchEvents(events, externalUserId, calendarId) {
187
201
  if (events.length === 0) {
@@ -194,19 +208,20 @@ let CalendarService = CalendarService_1 = class CalendarService {
194
208
  const BATCH_SIZE = 20;
195
209
  for (let i = 0; i < events.length; i += BATCH_SIZE) {
196
210
  const batchEvents = events.slice(i, i + BATCH_SIZE);
197
- const batchPayload = {
198
- requests: batchEvents.map((event, index) => ({
199
- id: `${index}`,
200
- method: 'POST',
201
- url: `/me/calendars/${calendarId}/events`,
202
- body: event,
203
- headers: {
204
- 'Content-Type': 'application/json',
205
- },
206
- })),
207
- };
208
- this.logger.log(`Creating batch of ${batchEvents.length} events in calendar ${calendarId} for user ${externalUserId}`);
211
+ await this.rateLimiter.acquirePermit(externalUserId);
209
212
  try {
213
+ const batchPayload = {
214
+ requests: batchEvents.map((event, index) => ({
215
+ id: `${index}`,
216
+ method: 'POST',
217
+ url: `/me/calendars/${calendarId}/events`,
218
+ body: event,
219
+ headers: {
220
+ 'Content-Type': 'application/json',
221
+ },
222
+ })),
223
+ };
224
+ this.logger.log(`Creating batch of ${batchEvents.length} events in calendar ${calendarId} for user ${externalUserId}`);
210
225
  const batchResponse = await (0, retry_util_1.retryWithBackoff)(async () => {
211
226
  const response = await axios_1.default.post('https://graph.microsoft.com/v1.0/$batch', batchPayload, {
212
227
  headers: {
@@ -249,6 +264,9 @@ let CalendarService = CalendarService_1 = class CalendarService {
249
264
  });
250
265
  this.logger.error(`Batch creation failed for ${batchEvents.length} events: ${errorMessage}`);
251
266
  }
267
+ finally {
268
+ this.rateLimiter.releasePermit(externalUserId);
269
+ }
252
270
  }
253
271
  const successCount = results.filter(r => r.success).length;
254
272
  const failCount = results.filter(r => !r.success).length;
@@ -778,12 +796,16 @@ let CalendarService = CalendarService_1 = class CalendarService {
778
796
  }
779
797
  }
780
798
  async getEventsBatch(eventIds, externalUserId) {
799
+ return this.getEventsBatchInternal(eventIds, externalUserId, new Map());
800
+ }
801
+ async getEventsBatchInternal(eventIds, externalUserId, retryCount, maxRetries = 2) {
781
802
  if (eventIds.length === 0) {
782
803
  return [];
783
804
  }
784
805
  if (eventIds.length > 20) {
785
- this.logger.warn(`getEventsBatch called with ${eventIds.length} events, exceeding Microsoft Graph limit of 20. Only first 20 will be fetched.`);
806
+ this.logger.warn(`[getEventsBatch] Called with ${eventIds.length} events, exceeding limit. Only first 20 will be fetched.`);
786
807
  }
808
+ await this.rateLimiter.acquirePermit(externalUserId);
787
809
  try {
788
810
  const accessToken = await this.microsoftAuthService.getUserAccessToken({ externalUserId });
789
811
  const batchPayload = {
@@ -810,6 +832,7 @@ let CalendarService = CalendarService_1 = class CalendarService {
810
832
  return [];
811
833
  }
812
834
  const events = [];
835
+ const rateLimitedEventIds = [];
813
836
  let successCount = 0;
814
837
  let notFoundCount = 0;
815
838
  let errorCount = 0;
@@ -824,16 +847,41 @@ let CalendarService = CalendarService_1 = class CalendarService {
824
847
  notFoundCount++;
825
848
  }
826
849
  else if (batchResponse.status === 429) {
827
- this.logger.warn(`[getEventsBatch] Individual event ${eventId} rate limited (429) within batch response`);
850
+ rateLimitedEventIds.push(eventId);
851
+ this.logger.warn(`[getEventsBatch] Event ${eventId} rate limited (429) within batch response`);
828
852
  errorCount++;
829
853
  }
830
854
  else {
831
- this.logger.error(`[getEventsBatch] Failed to fetch event ${eventId}: status ${batchResponse.status}, body: ${JSON.stringify(batchResponse.body)}`);
855
+ this.logger.error(`[getEventsBatch] Event ${eventId} failed: status ${batchResponse.status}, ` +
856
+ `body: ${JSON.stringify(batchResponse.body)}`);
832
857
  errorCount++;
833
858
  }
834
859
  }
835
860
  this.logger.log(`[getEventsBatch] Batch complete for user ${externalUserId}: ` +
836
861
  `success=${successCount}, notFound=${notFoundCount}, errors=${errorCount}`);
862
+ if (rateLimitedEventIds.length > 0) {
863
+ const retryableEvents = rateLimitedEventIds.filter(id => {
864
+ const count = retryCount.get(id) || 0;
865
+ return count < maxRetries;
866
+ });
867
+ if (retryableEvents.length > 0) {
868
+ const retryAfter = this.extractRetryAfterFromResponse(response);
869
+ if (retryAfter) {
870
+ this.rateLimiter.handleRateLimitResponse(externalUserId, retryAfter);
871
+ }
872
+ retryableEvents.forEach(id => {
873
+ retryCount.set(id, (retryCount.get(id) || 0) + 1);
874
+ });
875
+ const maxAttempt = Math.max(...retryableEvents.map(id => retryCount.get(id) || 0));
876
+ this.logger.log(`[getEventsBatch] Retrying ${retryableEvents.length} rate-limited events ` +
877
+ `(attempt ${maxAttempt}/${maxRetries})`);
878
+ const retriedEvents = await this.getEventsBatchInternal(retryableEvents, externalUserId, retryCount, maxRetries);
879
+ events.push(...retriedEvents);
880
+ }
881
+ else {
882
+ this.logger.error(`[getEventsBatch] ${rateLimitedEventIds.length} events exceeded max retries - DATA LOSS WARNING`);
883
+ }
884
+ }
837
885
  return events;
838
886
  }
839
887
  catch (error) {
@@ -841,6 +889,23 @@ let CalendarService = CalendarService_1 = class CalendarService {
841
889
  this.logger.error(`[getEventsBatch] Batch request failed for user ${externalUserId}: ${errorMessage}`);
842
890
  throw error;
843
891
  }
892
+ finally {
893
+ this.rateLimiter.releasePermit(externalUserId);
894
+ }
895
+ }
896
+ extractRetryAfterFromResponse(response) {
897
+ var _a;
898
+ try {
899
+ const retryAfter = (_a = response.headers) === null || _a === void 0 ? void 0 : _a['retry-after'];
900
+ if (typeof retryAfter === 'string' || typeof retryAfter === 'number') {
901
+ const parsed = parseInt(String(retryAfter), 10);
902
+ return !isNaN(parsed) ? Math.max(parsed, 5) : null;
903
+ }
904
+ }
905
+ catch (_error) {
906
+ this.logger.debug('[extractRetryAfterFromResponse] Failed to extract Retry-After header');
907
+ }
908
+ return null;
844
909
  }
845
910
  importEventsStream(externalUserId, options) {
846
911
  return __asyncGenerator(this, arguments, function* importEventsStream_1() {
@@ -1081,6 +1146,7 @@ exports.CalendarService = CalendarService = CalendarService_1 = __decorate([
1081
1146
  typeorm_2.Repository,
1082
1147
  delta_sync_service_1.DeltaSyncService,
1083
1148
  user_id_converter_service_1.UserIdConverterService,
1084
- microsoft_subscription_service_1.MicrosoftSubscriptionService])
1149
+ microsoft_subscription_service_1.MicrosoftSubscriptionService,
1150
+ graph_rate_limiter_service_1.GraphRateLimiterService])
1085
1151
  ], CalendarService);
1086
1152
  //# sourceMappingURL=calendar.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.service.js","sourceRoot":"","sources":["../../../src/services/calendar/calendar.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"calendar.service.js","sourceRoot":"","sources":["../../../src/services/calendar/calendar.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ export declare class GraphRateLimiterService implements OnModuleInit {
3
+ private readonly logger;
4
+ private readonly MAX_REQUESTS_PER_SECOND;
5
+ private readonly MAX_REQUESTS_PER_10_MINUTES;
6
+ private readonly ONE_SECOND_MS;
7
+ private readonly TEN_MINUTES_MS;
8
+ private readonly INACTIVE_USER_THRESHOLD_MS;
9
+ private readonly userLimiters;
10
+ private totalPermitsAcquired;
11
+ private totalWaitTime;
12
+ private cooldownCount;
13
+ onModuleInit(): void;
14
+ acquirePermit(userId: string): Promise<void>;
15
+ releasePermit(userId: string): void;
16
+ handleRateLimitResponse(userId: string, retryAfterSeconds: number): void;
17
+ private canMakeRequest;
18
+ private initializeLimiter;
19
+ private cleanupInactiveUsers;
20
+ getStats(): {
21
+ activeUsers: number;
22
+ totalPermitsAcquired: number;
23
+ totalWaitTimeMs: number;
24
+ averageWaitTimeMs: number;
25
+ cooldownCount: number;
26
+ };
27
+ getUserStats(userId: string): {
28
+ userId: string;
29
+ recentRequestCount: number;
30
+ tenMinuteRequestCount: number;
31
+ cooldownUntil: number | null;
32
+ lastActivity: string;
33
+ } | null;
34
+ }