@checkfirst/nestjs-outlook 8.0.2 → 9.0.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/constants.d.ts +2 -0
- package/dist/constants.js +3 -1
- package/dist/constants.js.map +1 -1
- package/dist/controllers/calendar.controller.js +3 -0
- package/dist/controllers/calendar.controller.js.map +1 -1
- package/dist/controllers/email.controller.js +2 -0
- package/dist/controllers/email.controller.js.map +1 -1
- package/dist/guards/webhook-client-state.guard.d.ts +8 -0
- package/dist/guards/webhook-client-state.guard.js +75 -0
- package/dist/guards/webhook-client-state.guard.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -1
- package/dist/interfaces/config/outlook-config.interface.d.ts +10 -0
- package/dist/interfaces/state/redis-like.interface.d.ts +13 -0
- package/dist/interfaces/state/redis-like.interface.js +3 -0
- package/dist/interfaces/state/redis-like.interface.js.map +1 -0
- package/dist/microsoft-outlook.module.js +66 -0
- package/dist/microsoft-outlook.module.js.map +1 -1
- package/dist/repositories/outlook-webhook-subscription.repository.d.ts +1 -0
- package/dist/repositories/outlook-webhook-subscription.repository.js +5 -0
- package/dist/repositories/outlook-webhook-subscription.repository.js.map +1 -1
- package/dist/services/auth/microsoft-auth.service.d.ts +5 -1
- package/dist/services/auth/microsoft-auth.service.js +13 -4
- package/dist/services/auth/microsoft-auth.service.js.map +1 -1
- package/dist/services/calendar/calendar.service.d.ts +1 -1
- package/dist/services/calendar/calendar.service.js +4 -4
- package/dist/services/calendar/calendar.service.js.map +1 -1
- package/dist/services/email/email.service.js +2 -1
- package/dist/services/email/email.service.js.map +1 -1
- package/dist/services/shared/delta-sync.service.d.ts +6 -1
- package/dist/services/shared/delta-sync.service.js +121 -110
- package/dist/services/shared/delta-sync.service.js.map +1 -1
- package/dist/services/shared/graph-rate-limiter.service.d.ts +15 -17
- package/dist/services/shared/graph-rate-limiter.service.js +104 -148
- package/dist/services/shared/graph-rate-limiter.service.js.map +1 -1
- package/dist/services/shared/outlook-lock.store.d.ts +37 -0
- package/dist/services/shared/outlook-lock.store.js +134 -0
- package/dist/services/shared/outlook-lock.store.js.map +1 -0
- package/dist/services/shared/outlook-rate-limit.store.d.ts +59 -0
- package/dist/services/shared/outlook-rate-limit.store.js +235 -0
- package/dist/services/shared/outlook-rate-limit.store.js.map +1 -0
- package/dist/services/subscription/microsoft-subscription.service.d.ts +12 -0
- package/dist/services/subscription/microsoft-subscription.service.js +85 -0
- package/dist/services/subscription/microsoft-subscription.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utils/outlook-api-executor.util.js +3 -3
- package/dist/utils/outlook-api-executor.util.js.map +1 -1
- package/package.json +3 -1
|
@@ -28,6 +28,11 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
|
28
28
|
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
|
29
29
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
|
30
30
|
};
|
|
31
|
+
var __asyncDelegator = (this && this.__asyncDelegator) || function (o) {
|
|
32
|
+
var i, p;
|
|
33
|
+
return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
|
|
34
|
+
function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }
|
|
35
|
+
};
|
|
31
36
|
var DeltaSyncService_1;
|
|
32
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
33
38
|
exports.DeltaSyncService = exports.DeltaSyncError = void 0;
|
|
@@ -249,129 +254,135 @@ let DeltaSyncService = DeltaSyncService_1 = class DeltaSyncService {
|
|
|
249
254
|
return false;
|
|
250
255
|
}
|
|
251
256
|
streamDeltaChanges(client_1, requestUrl_1, externalUserId_1) {
|
|
252
|
-
return __asyncGenerator(this, arguments, function* streamDeltaChanges_1(client, requestUrl, externalUserId, forceReset = false, dateRange, saveDeltaLink = true) {
|
|
253
|
-
var _a, e_2, _b, _c, _d, e_3, _e, _f;
|
|
257
|
+
return __asyncGenerator(this, arguments, function* streamDeltaChanges_1(client, requestUrl, externalUserId, forceReset = false, dateRange, saveDeltaLink = true, skipCursorAdvanceOnEmpty = false) {
|
|
254
258
|
const internalUserId = yield __await(this.userIdConverter.externalToInternal(externalUserId));
|
|
255
|
-
|
|
256
|
-
this.logger.log(`[streamDeltaChanges] Starting stream for user ${internalUserId}, startLink: ${
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
yield __await(this.
|
|
260
|
-
|
|
259
|
+
const { startUrl, usedExistingCursor } = yield __await(this.resolveSyncStart(internalUserId, requestUrl, forceReset, dateRange));
|
|
260
|
+
this.logger.log(`[streamDeltaChanges] Starting stream for user ${internalUserId}, startLink: ${usedExistingCursor ? 'exists' : 'none'}, forceReset: ${forceReset}, skipCursorAdvanceOnEmpty: ${skipCursorAdvanceOnEmpty}`);
|
|
261
|
+
try {
|
|
262
|
+
const { finalDeltaLink, totalItemsProcessed, pageCount } = yield __await(yield* __asyncDelegator(__asyncValues(this.streamSortedPages(client, startUrl, internalUserId, externalUserId, { isRecovery: false }))));
|
|
263
|
+
yield __await(this.persistDeltaLinkDecision({
|
|
264
|
+
finalDeltaLink,
|
|
265
|
+
saveDeltaLink,
|
|
266
|
+
skipCursorAdvanceOnEmpty,
|
|
267
|
+
usedExistingCursor,
|
|
268
|
+
totalItemsProcessed,
|
|
269
|
+
pageCount,
|
|
270
|
+
internalUserId,
|
|
271
|
+
externalUserId,
|
|
272
|
+
}));
|
|
273
|
+
return yield __await(finalDeltaLink);
|
|
261
274
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
this.logger.log(`[streamDeltaChanges] No delta link found, initializing from current point for user ${internalUserId}`);
|
|
266
|
-
if (dateRange) {
|
|
267
|
-
const { startDate, endDate } = dateRange;
|
|
268
|
-
urlToUse = `${requestUrl}?startDateTime=${startDate.toISOString()}&endDateTime=${endDate.toISOString()}`;
|
|
269
|
-
this.logger.log(`[streamDeltaChanges] Using date range: ${startDate.toISOString()} to ${endDate.toISOString()}`);
|
|
270
|
-
}
|
|
271
|
-
else {
|
|
272
|
-
urlToUse = requestUrl;
|
|
275
|
+
catch (error) {
|
|
276
|
+
if (this.is410Error(error)) {
|
|
277
|
+
return yield __await(yield __await(yield* __asyncDelegator(__asyncValues(this.recoverFromExpiredCursor(client, requestUrl, externalUserId, internalUserId, dateRange, saveDeltaLink)))));
|
|
273
278
|
}
|
|
279
|
+
throw error;
|
|
274
280
|
}
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
buildInitialUrl(requestUrl, dateRange) {
|
|
284
|
+
if (!dateRange) {
|
|
285
|
+
return requestUrl;
|
|
286
|
+
}
|
|
287
|
+
const { startDate, endDate } = dateRange;
|
|
288
|
+
return `${requestUrl}?startDateTime=${startDate.toISOString()}&endDateTime=${endDate.toISOString()}`;
|
|
289
|
+
}
|
|
290
|
+
async resolveSyncStart(internalUserId, requestUrl, forceReset, dateRange) {
|
|
291
|
+
let startLink = await this.deltaLinkRepository.getDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR);
|
|
292
|
+
if (forceReset && startLink) {
|
|
293
|
+
this.logger.log(`[streamDeltaChanges] Force reset requested, deleting existing delta link for user ${internalUserId}`);
|
|
294
|
+
await this.deltaLinkRepository.deleteDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR);
|
|
295
|
+
startLink = null;
|
|
296
|
+
}
|
|
297
|
+
if (startLink) {
|
|
298
|
+
this.logger.log(`[streamDeltaChanges] Using existing delta link for incremental sync for user ${internalUserId}`);
|
|
299
|
+
return { startUrl: startLink, usedExistingCursor: true };
|
|
300
|
+
}
|
|
301
|
+
this.logger.log(`[streamDeltaChanges] No delta link found, initializing from current point for user ${internalUserId}`);
|
|
302
|
+
if (dateRange) {
|
|
303
|
+
this.logger.log(`[streamDeltaChanges] Using date range: ${dateRange.startDate.toISOString()} to ${dateRange.endDate.toISOString()}`);
|
|
304
|
+
}
|
|
305
|
+
return { startUrl: this.buildInitialUrl(requestUrl, dateRange), usedExistingCursor: false };
|
|
306
|
+
}
|
|
307
|
+
streamSortedPages(client, startUrl, internalUserId, externalUserId, opts) {
|
|
308
|
+
return __asyncGenerator(this, arguments, function* streamSortedPages_1() {
|
|
309
|
+
var _a, e_2, _b, _c;
|
|
310
|
+
const recoveryTag = opts.isRecovery ? ' [RECOVERY]' : '';
|
|
279
311
|
let pageCount = 0;
|
|
280
312
|
let totalItemsProcessed = 0;
|
|
313
|
+
let finalDeltaLink = null;
|
|
281
314
|
try {
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
if (page.isLastPage && page.deltaLink) {
|
|
301
|
-
finalDeltaLink = page.deltaLink;
|
|
302
|
-
}
|
|
315
|
+
for (var _d = true, _e = __asyncValues(this.fetchDeltaPagesCore(client, startUrl, internalUserId)), _f; _f = yield __await(_e.next()), _a = _f.done, !_a; _d = true) {
|
|
316
|
+
_c = _f.value;
|
|
317
|
+
_d = false;
|
|
318
|
+
const page = _c;
|
|
319
|
+
pageCount++;
|
|
320
|
+
const sortedBatch = this.sortDeltaItems(page.items);
|
|
321
|
+
totalItemsProcessed += sortedBatch.length;
|
|
322
|
+
this.logger.log(`[streamDeltaChanges]${recoveryTag} Yielding page ${pageCount} with ${sortedBatch.length} sorted items for user ${internalUserId}`);
|
|
323
|
+
const progressPayload = {
|
|
324
|
+
userId: externalUserId,
|
|
325
|
+
pageNumber: pageCount,
|
|
326
|
+
itemsInPage: sortedBatch.length,
|
|
327
|
+
totalItemsSoFar: totalItemsProcessed,
|
|
328
|
+
isLastPage: page.isLastPage,
|
|
329
|
+
timestamp: new Date(),
|
|
330
|
+
};
|
|
331
|
+
if (opts.isRecovery) {
|
|
332
|
+
progressPayload.isRecovery = true;
|
|
303
333
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
if (!_g && !_a && (_b = _h.return)) yield __await(_b.call(_h));
|
|
334
|
+
this.eventEmitter.emit('delta-sync.page-processed', progressPayload);
|
|
335
|
+
yield yield __await(sortedBatch);
|
|
336
|
+
if (page.isLastPage && page.deltaLink) {
|
|
337
|
+
finalDeltaLink = page.deltaLink;
|
|
309
338
|
}
|
|
310
|
-
finally { if (e_2) throw e_2.error; }
|
|
311
|
-
}
|
|
312
|
-
if (finalDeltaLink && saveDeltaLink) {
|
|
313
|
-
yield __await(this.saveDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR, finalDeltaLink));
|
|
314
|
-
this.logger.log(`[streamDeltaChanges] Saved delta link after streaming ${pageCount} pages for user ${internalUserId}`);
|
|
315
339
|
}
|
|
316
|
-
else if (finalDeltaLink && !saveDeltaLink) {
|
|
317
|
-
this.logger.log(`[streamDeltaChanges] Delta link discarded (saveDeltaLink=false) after streaming ${pageCount} pages for user ${internalUserId}`);
|
|
318
|
-
}
|
|
319
|
-
else {
|
|
320
|
-
this.logger.warn(`[streamDeltaChanges] No delta link received after streaming ${pageCount} pages for user ${internalUserId}`);
|
|
321
|
-
}
|
|
322
|
-
return yield __await(finalDeltaLink);
|
|
323
340
|
}
|
|
324
|
-
catch (
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
yield __await(this.deltaLinkRepository.deleteDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR));
|
|
329
|
-
this.logger.log(`[streamDeltaChanges] Restarting stream with full sync after token expiration for user ${externalUserId}`);
|
|
330
|
-
const freshUrl = dateRange
|
|
331
|
-
? `${requestUrl}?startDateTime=${dateRange.startDate.toISOString()}&endDateTime=${dateRange.endDate.toISOString()}`
|
|
332
|
-
: requestUrl;
|
|
333
|
-
let recoveryPageCount = 0;
|
|
334
|
-
let recoveryDeltaLink = null;
|
|
335
|
-
let recoveryTotalItems = 0;
|
|
336
|
-
try {
|
|
337
|
-
for (var _k = true, _l = __asyncValues(this.fetchDeltaPagesCore(client, freshUrl, internalUserId)), _m; _m = yield __await(_l.next()), _d = _m.done, !_d; _k = true) {
|
|
338
|
-
_f = _m.value;
|
|
339
|
-
_k = false;
|
|
340
|
-
const page = _f;
|
|
341
|
-
recoveryPageCount++;
|
|
342
|
-
const sortedBatch = this.sortDeltaItems(page.items);
|
|
343
|
-
recoveryTotalItems += sortedBatch.length;
|
|
344
|
-
this.logger.log(`[streamDeltaChanges] [RECOVERY] Yielding page ${recoveryPageCount} with ${sortedBatch.length} sorted items for user ${internalUserId}`);
|
|
345
|
-
this.eventEmitter.emit('delta-sync.page-processed', {
|
|
346
|
-
userId: externalUserId,
|
|
347
|
-
pageNumber: recoveryPageCount,
|
|
348
|
-
itemsInPage: sortedBatch.length,
|
|
349
|
-
totalItemsSoFar: recoveryTotalItems,
|
|
350
|
-
isLastPage: page.isLastPage,
|
|
351
|
-
isRecovery: true,
|
|
352
|
-
timestamp: new Date(),
|
|
353
|
-
});
|
|
354
|
-
yield yield __await(sortedBatch);
|
|
355
|
-
if (page.isLastPage && page.deltaLink) {
|
|
356
|
-
recoveryDeltaLink = page.deltaLink;
|
|
357
|
-
}
|
|
358
|
-
}
|
|
359
|
-
}
|
|
360
|
-
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
361
|
-
finally {
|
|
362
|
-
try {
|
|
363
|
-
if (!_k && !_d && (_e = _l.return)) yield __await(_e.call(_l));
|
|
364
|
-
}
|
|
365
|
-
finally { if (e_3) throw e_3.error; }
|
|
366
|
-
}
|
|
367
|
-
if (recoveryDeltaLink && saveDeltaLink) {
|
|
368
|
-
yield __await(this.saveDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR, recoveryDeltaLink));
|
|
369
|
-
this.logger.log(`[streamDeltaChanges] [RECOVERY] Saved delta link after streaming ${recoveryPageCount} pages for user ${internalUserId}`);
|
|
370
|
-
}
|
|
371
|
-
return yield __await(recoveryDeltaLink);
|
|
341
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
342
|
+
finally {
|
|
343
|
+
try {
|
|
344
|
+
if (!_d && !_a && (_b = _e.return)) yield __await(_b.call(_e));
|
|
372
345
|
}
|
|
373
|
-
throw error;
|
|
346
|
+
finally { if (e_2) throw e_2.error; }
|
|
347
|
+
}
|
|
348
|
+
return yield __await({ finalDeltaLink, totalItemsProcessed, pageCount });
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
async persistDeltaLinkDecision(params) {
|
|
352
|
+
const { finalDeltaLink, saveDeltaLink, skipCursorAdvanceOnEmpty, usedExistingCursor, totalItemsProcessed, pageCount, internalUserId, } = params;
|
|
353
|
+
const shouldSkipCursorAdvance = skipCursorAdvanceOnEmpty &&
|
|
354
|
+
usedExistingCursor &&
|
|
355
|
+
totalItemsProcessed === 0;
|
|
356
|
+
if (finalDeltaLink && saveDeltaLink && !shouldSkipCursorAdvance) {
|
|
357
|
+
await this.saveDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR, finalDeltaLink);
|
|
358
|
+
this.logger.log(`[streamDeltaChanges] Saved delta link after streaming ${pageCount} pages for user ${internalUserId}`);
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
if (shouldSkipCursorAdvance) {
|
|
362
|
+
this.logger.warn(`[streamDeltaChanges] Empty delta result on existing cursor — KEEPING old cursor ` +
|
|
363
|
+
`(skipCursorAdvanceOnEmpty=true) for user ${internalUserId}. ` +
|
|
364
|
+
`Replication-lag protection: next webhook/reconciliation will re-query the same watermark.`);
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
if (finalDeltaLink && !saveDeltaLink) {
|
|
368
|
+
this.logger.log(`[streamDeltaChanges] Delta link discarded (saveDeltaLink=false) after streaming ${pageCount} pages for user ${internalUserId}`);
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
this.logger.warn(`[streamDeltaChanges] No delta link received after streaming ${pageCount} pages for user ${internalUserId}`);
|
|
372
|
+
}
|
|
373
|
+
recoverFromExpiredCursor(client, requestUrl, externalUserId, internalUserId, dateRange, saveDeltaLink) {
|
|
374
|
+
return __asyncGenerator(this, arguments, function* recoverFromExpiredCursor_1() {
|
|
375
|
+
this.logger.warn(`[streamDeltaChanges] Delta token expired (410) for user ${externalUserId}, ` +
|
|
376
|
+
`deleting expired token and reinitializing with full sync stream`);
|
|
377
|
+
yield __await(this.deltaLinkRepository.deleteDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR));
|
|
378
|
+
this.logger.log(`[streamDeltaChanges] Restarting stream with full sync after token expiration for user ${externalUserId}`);
|
|
379
|
+
const freshUrl = this.buildInitialUrl(requestUrl, dateRange);
|
|
380
|
+
const { finalDeltaLink: recoveryDeltaLink, pageCount: recoveryPageCount } = yield __await(yield* __asyncDelegator(__asyncValues(this.streamSortedPages(client, freshUrl, internalUserId, externalUserId, { isRecovery: true }))));
|
|
381
|
+
if (recoveryDeltaLink && saveDeltaLink) {
|
|
382
|
+
yield __await(this.saveDeltaLink(internalUserId, resource_type_enum_1.ResourceType.CALENDAR, recoveryDeltaLink));
|
|
383
|
+
this.logger.log(`[streamDeltaChanges] [RECOVERY] Saved delta link after streaming ${recoveryPageCount} pages for user ${internalUserId}`);
|
|
374
384
|
}
|
|
385
|
+
return yield __await(recoveryDeltaLink);
|
|
375
386
|
});
|
|
376
387
|
}
|
|
377
388
|
async initializeDeltaLink(client, requestUrl, internalUserId, resourceType, dateRange) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delta-sync.service.js","sourceRoot":"","sources":["../../../src/services/shared/delta-sync.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delta-sync.service.js","sourceRoot":"","sources":["../../../src/services/shared/delta-sync.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,52 +1,50 @@
|
|
|
1
1
|
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
import { OutlookRateLimitStore } from './outlook-rate-limit.store';
|
|
2
3
|
export declare class GraphRateLimiterService implements OnModuleInit {
|
|
4
|
+
private readonly store;
|
|
3
5
|
private readonly logger;
|
|
4
6
|
private readonly MAX_REQUESTS_PER_SECOND;
|
|
5
7
|
private readonly MAX_REQUESTS_PER_10_MINUTES;
|
|
6
8
|
private readonly ONE_SECOND_MS;
|
|
7
9
|
private readonly TEN_MINUTES_MS;
|
|
8
10
|
private readonly INACTIVE_USER_THRESHOLD_MS;
|
|
9
|
-
private readonly userLimiters;
|
|
10
11
|
private totalPermitsAcquired;
|
|
11
12
|
private totalWaitTime;
|
|
12
13
|
private cooldownCount;
|
|
13
14
|
private readonly CB_FAILURE_THRESHOLD;
|
|
14
15
|
private readonly CB_FAILURE_WINDOW_MS;
|
|
15
16
|
private readonly CB_COOLDOWN_MS;
|
|
16
|
-
private readonly
|
|
17
|
-
private cbState;
|
|
17
|
+
private readonly CB_PROBE_TTL_MS;
|
|
18
18
|
private cbFailureTimestamps;
|
|
19
|
-
private cbOpenedAt;
|
|
20
|
-
private cbHalfOpenInFlight;
|
|
21
19
|
private cbTotalTrips;
|
|
20
|
+
constructor(store: OutlookRateLimitStore);
|
|
22
21
|
onModuleInit(): void;
|
|
23
22
|
acquirePermit(userId: string): Promise<void>;
|
|
24
|
-
releasePermit(
|
|
25
|
-
handleRateLimitResponse(userId: string, retryAfterSeconds: number): void
|
|
26
|
-
private canMakeRequest;
|
|
27
|
-
private initializeLimiter;
|
|
23
|
+
releasePermit(_userId: string): void;
|
|
24
|
+
handleRateLimitResponse(userId: string, retryAfterSeconds: number): Promise<void>;
|
|
28
25
|
private cleanupInactiveUsers;
|
|
29
|
-
record503Failure(): void
|
|
30
|
-
recordSuccess(): void
|
|
26
|
+
record503Failure(): Promise<void>;
|
|
27
|
+
recordSuccess(): Promise<void>;
|
|
31
28
|
private waitForCircuitBreaker;
|
|
32
|
-
getStats(): {
|
|
29
|
+
getStats(): Promise<{
|
|
30
|
+
backend: "memory" | "redis";
|
|
33
31
|
activeUsers: number;
|
|
34
32
|
totalPermitsAcquired: number;
|
|
35
33
|
totalWaitTimeMs: number;
|
|
36
34
|
averageWaitTimeMs: number;
|
|
37
35
|
cooldownCount: number;
|
|
38
36
|
circuitBreaker: {
|
|
39
|
-
state: "
|
|
37
|
+
state: import("./outlook-rate-limit.store").CircuitBreakerState;
|
|
40
38
|
recentFailures: number;
|
|
41
39
|
totalTrips: number;
|
|
42
40
|
openedAt: string | null;
|
|
43
41
|
};
|
|
44
|
-
}
|
|
45
|
-
getUserStats(userId: string): {
|
|
42
|
+
}>;
|
|
43
|
+
getUserStats(userId: string): Promise<{
|
|
46
44
|
userId: string;
|
|
45
|
+
backend: "memory" | "redis";
|
|
47
46
|
recentRequestCount: number;
|
|
48
47
|
tenMinuteRequestCount: number;
|
|
49
48
|
cooldownUntil: number | null;
|
|
50
|
-
|
|
51
|
-
} | null;
|
|
49
|
+
}>;
|
|
52
50
|
}
|