@checkfirst/nestjs-outlook 7.0.1 → 7.0.3
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/interfaces/recurrence.interfaces.d.ts +0 -5
- package/dist/services/calendar/recurrence.service.d.ts +3 -4
- package/dist/services/calendar/recurrence.service.js +10 -26
- package/dist/services/calendar/recurrence.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -45,13 +45,8 @@ export interface ExpansionWindow {
|
|
|
45
45
|
startDate: Date;
|
|
46
46
|
endDate: Date;
|
|
47
47
|
}
|
|
48
|
-
export interface ExpandRecurringSeriesOptions {
|
|
49
|
-
existingExternalIds?: string[];
|
|
50
|
-
existingWindowEnd?: Date;
|
|
51
|
-
}
|
|
52
48
|
export interface RecurringEventExpansionResult {
|
|
53
49
|
seriesMaster: ProcessedOutlookEvent;
|
|
54
50
|
instances: ProcessedOutlookEvent[];
|
|
55
51
|
expansionWindow: ExpansionWindow;
|
|
56
|
-
staleExternalIds: string[];
|
|
57
52
|
}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { Event } from '../../types';
|
|
2
2
|
import { CalendarService } from './calendar.service';
|
|
3
|
-
import { RecurrenceRule, ProcessedOutlookEvent, ExpansionWindow,
|
|
3
|
+
import { RecurrenceRule, ProcessedOutlookEvent, ExpansionWindow, RecurringEventExpansionResult } from '../../interfaces/recurrence.interfaces';
|
|
4
4
|
export declare class RecurrenceService {
|
|
5
5
|
private readonly calendarService;
|
|
6
6
|
private readonly logger;
|
|
7
7
|
constructor(calendarService: CalendarService);
|
|
8
8
|
processEvent(event: Event): ProcessedOutlookEvent;
|
|
9
|
-
expandRecurringSeries(seriesMasterId: string, externalUserId: string
|
|
10
|
-
calculateExpansionWindow(recurrenceRule?: RecurrenceRule
|
|
11
|
-
detectStaleOccurrences(fetchedExternalIds: string[], existingExternalIds: string[]): string[];
|
|
9
|
+
expandRecurringSeries(seriesMasterId: string, externalUserId: string): Promise<RecurringEventExpansionResult>;
|
|
10
|
+
calculateExpansionWindow(recurrenceRule?: RecurrenceRule): ExpansionWindow;
|
|
12
11
|
isSeriesMaster(event: Event): boolean;
|
|
13
12
|
private extractRecurrenceRule;
|
|
14
13
|
}
|
|
@@ -58,7 +58,7 @@ let RecurrenceService = RecurrenceService_1 = class RecurrenceService {
|
|
|
58
58
|
}
|
|
59
59
|
return processed;
|
|
60
60
|
}
|
|
61
|
-
async expandRecurringSeries(seriesMasterId, externalUserId
|
|
61
|
+
async expandRecurringSeries(seriesMasterId, externalUserId) {
|
|
62
62
|
var _a, e_1, _b, _c;
|
|
63
63
|
this.logger.log(`[expandRecurringSeries] Expanding series ${seriesMasterId} for user ${externalUserId}`);
|
|
64
64
|
const masterEvents = await this.calendarService.getEventsBatch([seriesMasterId], externalUserId);
|
|
@@ -66,7 +66,7 @@ let RecurrenceService = RecurrenceService_1 = class RecurrenceService {
|
|
|
66
66
|
throw new Error(`Series master ${seriesMasterId} not found in Outlook for user ${externalUserId}`);
|
|
67
67
|
}
|
|
68
68
|
const seriesMaster = this.processEvent(masterEvents[0]);
|
|
69
|
-
const expansionWindow = this.calculateExpansionWindow(seriesMaster.recurrenceRule
|
|
69
|
+
const expansionWindow = this.calculateExpansionWindow(seriesMaster.recurrenceRule);
|
|
70
70
|
this.logger.log(`[expandRecurringSeries] Window: ${expansionWindow.startDate.toISOString()} → ${expansionWindow.endDate.toISOString()}`);
|
|
71
71
|
const instances = [];
|
|
72
72
|
try {
|
|
@@ -91,45 +91,29 @@ let RecurrenceService = RecurrenceService_1 = class RecurrenceService {
|
|
|
91
91
|
finally { if (e_1) throw e_1.error; }
|
|
92
92
|
}
|
|
93
93
|
this.logger.log(`[expandRecurringSeries] Fetched ${instances.length} instances for series ${seriesMasterId}`);
|
|
94
|
-
const staleExternalIds = (options === null || options === void 0 ? void 0 : options.existingExternalIds)
|
|
95
|
-
? this.detectStaleOccurrences(instances.map((i) => i.externalId), options.existingExternalIds)
|
|
96
|
-
: [];
|
|
97
|
-
if (staleExternalIds.length > 0) {
|
|
98
|
-
this.logger.log(`[expandRecurringSeries] Detected ${staleExternalIds.length} stale occurrences`);
|
|
99
|
-
}
|
|
100
94
|
return {
|
|
101
95
|
seriesMaster,
|
|
102
96
|
instances,
|
|
103
97
|
expansionWindow,
|
|
104
|
-
staleExternalIds,
|
|
105
98
|
};
|
|
106
99
|
}
|
|
107
|
-
calculateExpansionWindow(recurrenceRule
|
|
100
|
+
calculateExpansionWindow(recurrenceRule) {
|
|
108
101
|
const now = new Date();
|
|
109
102
|
const startDate = new Date(now);
|
|
110
|
-
startDate.setMonth(startDate.getMonth()
|
|
103
|
+
startDate.setMonth(startDate.getMonth());
|
|
111
104
|
let endDate;
|
|
105
|
+
endDate = new Date(startDate);
|
|
106
|
+
endDate.setFullYear(endDate.getFullYear() + 5);
|
|
107
|
+
endDate.setDate(endDate.getDate() - 2);
|
|
112
108
|
if ((recurrenceRule === null || recurrenceRule === void 0 ? void 0 : recurrenceRule.range.type) === 'endDate' &&
|
|
113
109
|
recurrenceRule.range.endDate) {
|
|
114
110
|
const seriesEnd = new Date(recurrenceRule.range.endDate);
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
}
|
|
119
|
-
else if (existingWindowEnd) {
|
|
120
|
-
endDate = new Date(existingWindowEnd);
|
|
121
|
-
endDate.setMonth(endDate.getMonth() + 6);
|
|
122
|
-
}
|
|
123
|
-
else {
|
|
124
|
-
endDate = new Date(now);
|
|
125
|
-
endDate.setMonth(endDate.getMonth() + 6);
|
|
111
|
+
if (seriesEnd < endDate) {
|
|
112
|
+
endDate = seriesEnd;
|
|
113
|
+
}
|
|
126
114
|
}
|
|
127
115
|
return { startDate, endDate };
|
|
128
116
|
}
|
|
129
|
-
detectStaleOccurrences(fetchedExternalIds, existingExternalIds) {
|
|
130
|
-
const fetchedSet = new Set(fetchedExternalIds);
|
|
131
|
-
return existingExternalIds.filter((id) => !fetchedSet.has(id));
|
|
132
|
-
}
|
|
133
117
|
isSeriesMaster(event) {
|
|
134
118
|
return event.type === 'seriesMaster' || event.recurrence != null;
|
|
135
119
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recurrence.service.js","sourceRoot":"","sources":["../../../src/services/calendar/recurrence.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AAGpD,yDAAqD;
|
|
1
|
+
{"version":3,"file":"recurrence.service.js","sourceRoot":"","sources":["../../../src/services/calendar/recurrence.service.ts"],"names":[],"mappings":"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"}
|