@vendasta/meetings 0.72.0 → 0.74.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/esm2020/lib/_generated/host.service.mjs +25 -0
- package/esm2020/lib/_internal/enums/dayofweek.enum.mjs +18 -0
- package/esm2020/lib/_internal/enums/index.mjs +11 -0
- package/esm2020/lib/_internal/enums/meeting-source.enum.mjs +20 -0
- package/esm2020/lib/_internal/enums/shared.enum.mjs +21 -0
- package/{esm2015/lib/_internal/enums/zoom.enum.js → esm2020/lib/_internal/enums/zoom.enum.mjs} +1 -1
- package/esm2020/lib/_internal/google-meet.api.service.mjs +41 -0
- package/esm2020/lib/_internal/index.mjs +15 -0
- package/esm2020/lib/_internal/interfaces/date-range.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/datetime.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/dayofweek.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/field-mask.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/google-meet.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/index.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/meeting-guest.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/meeting-host.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/meeting-source.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/meeting-type.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/shared.interface.mjs +2 -0
- package/esm2020/lib/_internal/interfaces/timeofday.interface.mjs +8 -0
- package/esm2020/lib/_internal/interfaces/zoom.interface.mjs +8 -0
- package/esm2020/lib/_internal/meeting-guest.api.service.mjs +84 -0
- package/esm2020/lib/_internal/meeting-host.api.service.mjs +170 -0
- package/esm2020/lib/_internal/meeting-source-api.api.service.mjs +41 -0
- package/esm2020/lib/_internal/objects/date-range.mjs +36 -0
- package/esm2020/lib/_internal/objects/datetime.mjs +77 -0
- package/esm2020/lib/_internal/objects/dayofweek.mjs +7 -0
- package/esm2020/lib/_internal/objects/field-mask.mjs +27 -0
- package/esm2020/lib/_internal/objects/google-meet.mjs +539 -0
- package/esm2020/lib/_internal/objects/index.mjs +18 -0
- package/esm2020/lib/_internal/objects/meeting-guest.mjs +511 -0
- package/esm2020/lib/_internal/objects/meeting-host.mjs +1485 -0
- package/esm2020/lib/_internal/objects/meeting-source.mjs +121 -0
- package/esm2020/lib/_internal/objects/meeting-type.mjs +119 -0
- package/esm2020/lib/_internal/objects/shared.mjs +426 -0
- package/esm2020/lib/_internal/objects/timeofday.mjs +36 -0
- package/esm2020/lib/_internal/objects/zoom.mjs +377 -0
- package/esm2020/lib/_internal/zoom.api.service.mjs +41 -0
- package/esm2020/lib/guest/guest.service.mjs +86 -0
- package/esm2020/lib/guest/index.mjs +2 -0
- package/esm2020/lib/host/host.service.mjs +308 -0
- package/esm2020/lib/host/url.mjs +39 -0
- package/esm2020/lib/index.mjs +8 -0
- package/esm2020/lib/meetings.service.mjs +168 -0
- package/esm2020/lib/shared/availability.mjs +2 -0
- package/esm2020/lib/shared/calendar.mjs +29 -0
- package/esm2020/lib/shared/duration.mjs +41 -0
- package/esm2020/lib/shared/environment.mjs +17 -0
- package/esm2020/lib/shared/fieldmask.mjs +6 -0
- package/esm2020/lib/shared/host-id.mjs +20 -0
- package/esm2020/lib/shared/host-url-map.mjs +2 -0
- package/esm2020/lib/shared/host-user.mjs +8 -0
- package/esm2020/lib/shared/host.mjs +8 -0
- package/esm2020/lib/shared/index.mjs +14 -0
- package/esm2020/lib/shared/meeting-type.mjs +60 -0
- package/esm2020/lib/shared/meeting.mjs +89 -0
- package/esm2020/lib/shared/paged-response.mjs +8 -0
- package/esm2020/lib/shared/preferences.mjs +12 -0
- package/esm2020/lib/shared/time-span.mjs +7 -0
- package/esm2020/public_api.mjs +2 -0
- package/esm2020/vendasta-meetings.mjs +5 -0
- package/fesm2015/{vendasta-meetings.js → vendasta-meetings.mjs} +554 -1264
- package/fesm2015/vendasta-meetings.mjs.map +1 -0
- package/fesm2020/vendasta-meetings.mjs +5086 -0
- package/fesm2020/vendasta-meetings.mjs.map +1 -0
- package/lib/_generated/host.service.d.ts +5 -9
- package/lib/_internal/google-meet.api.service.d.ts +4 -0
- package/lib/_internal/index.d.ts +3 -3
- package/lib/_internal/interfaces/meeting-host.interface.d.ts +2 -1
- package/lib/_internal/interfaces/meeting-source.interface.d.ts +1 -1
- package/lib/_internal/interfaces/meeting-type.interface.d.ts +1 -1
- package/lib/_internal/interfaces/shared.interface.d.ts +1 -1
- package/lib/_internal/interfaces/zoom.interface.d.ts +1 -1
- package/lib/_internal/meeting-guest.api.service.d.ts +4 -0
- package/lib/_internal/meeting-host.api.service.d.ts +4 -0
- package/lib/_internal/meeting-source-api.api.service.d.ts +4 -0
- package/lib/_internal/objects/date-range.d.ts +1 -1
- package/lib/_internal/objects/datetime.d.ts +1 -1
- package/lib/_internal/objects/field-mask.d.ts +1 -1
- package/lib/_internal/objects/google-meet.d.ts +1 -1
- package/lib/_internal/objects/meeting-guest.d.ts +1 -1
- package/lib/_internal/objects/meeting-host.d.ts +3 -2
- package/lib/_internal/objects/meeting-source.d.ts +2 -2
- package/lib/_internal/objects/meeting-type.d.ts +2 -2
- package/lib/_internal/objects/shared.d.ts +2 -2
- package/lib/_internal/objects/timeofday.d.ts +1 -1
- package/lib/_internal/objects/zoom.d.ts +2 -2
- package/lib/_internal/zoom.api.service.d.ts +4 -0
- package/lib/guest/guest.service.d.ts +5 -4
- package/lib/guest/index.d.ts +0 -1
- package/lib/host/host.service.d.ts +7 -6
- package/lib/host/url.d.ts +1 -1
- package/lib/index.d.ts +1 -4
- package/lib/meetings.service.d.ts +3 -0
- package/lib/shared/availability.d.ts +2 -2
- package/lib/shared/calendar.d.ts +1 -1
- package/lib/shared/environment.d.ts +8 -0
- package/lib/shared/fieldmask.d.ts +1 -1
- package/lib/shared/host.d.ts +1 -1
- package/lib/shared/meeting-type.d.ts +2 -2
- package/lib/shared/meeting.d.ts +2 -2
- package/lib/shared/preferences.d.ts +3 -3
- package/lib/shared/time-span.d.ts +1 -1
- package/package.json +26 -15
- package/public_api.d.ts +1 -1
- package/src/README.md +12 -0
- package/vendasta-meetings.d.ts +1 -10
- package/bundles/vendasta-meetings.umd.js +0 -6217
- package/bundles/vendasta-meetings.umd.js.map +0 -1
- package/bundles/vendasta-meetings.umd.min.js +0 -16
- package/bundles/vendasta-meetings.umd.min.js.map +0 -1
- package/esm2015/lib/_generated/host.service.js +0 -62
- package/esm2015/lib/_internal/enums/dayofweek.enum.js +0 -18
- package/esm2015/lib/_internal/enums/index.js +0 -11
- package/esm2015/lib/_internal/enums/meeting-source.enum.js +0 -20
- package/esm2015/lib/_internal/enums/shared.enum.js +0 -21
- package/esm2015/lib/_internal/google-meet.api.service.js +0 -38
- package/esm2015/lib/_internal/index.js +0 -15
- package/esm2015/lib/_internal/interfaces/date-range.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/datetime.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/dayofweek.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/field-mask.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/google-meet.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/index.js +0 -2
- package/esm2015/lib/_internal/interfaces/meeting-guest.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/meeting-host.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/meeting-source.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/meeting-type.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/shared.interface.js +0 -2
- package/esm2015/lib/_internal/interfaces/timeofday.interface.js +0 -8
- package/esm2015/lib/_internal/interfaces/zoom.interface.js +0 -8
- package/esm2015/lib/_internal/meeting-guest.api.service.js +0 -81
- package/esm2015/lib/_internal/meeting-host.api.service.js +0 -167
- package/esm2015/lib/_internal/meeting-source-api.api.service.js +0 -38
- package/esm2015/lib/_internal/meetings.module.js +0 -33
- package/esm2015/lib/_internal/objects/date-range.js +0 -40
- package/esm2015/lib/_internal/objects/datetime.js +0 -92
- package/esm2015/lib/_internal/objects/dayofweek.js +0 -7
- package/esm2015/lib/_internal/objects/field-mask.js +0 -30
- package/esm2015/lib/_internal/objects/google-meet.js +0 -646
- package/esm2015/lib/_internal/objects/index.js +0 -18
- package/esm2015/lib/_internal/objects/meeting-guest.js +0 -591
- package/esm2015/lib/_internal/objects/meeting-host.js +0 -1699
- package/esm2015/lib/_internal/objects/meeting-source.js +0 -139
- package/esm2015/lib/_internal/objects/meeting-type.js +0 -142
- package/esm2015/lib/_internal/objects/shared.js +0 -504
- package/esm2015/lib/_internal/objects/timeofday.js +0 -42
- package/esm2015/lib/_internal/objects/zoom.js +0 -456
- package/esm2015/lib/_internal/zoom.api.service.js +0 -38
- package/esm2015/lib/guest/guest.module.js +0 -16
- package/esm2015/lib/guest/guest.service.js +0 -82
- package/esm2015/lib/guest/index.js +0 -3
- package/esm2015/lib/host/host.module.js +0 -16
- package/esm2015/lib/host/host.service.js +0 -283
- package/esm2015/lib/host/url.js +0 -39
- package/esm2015/lib/index.js +0 -11
- package/esm2015/lib/meetings.module.js +0 -22
- package/esm2015/lib/meetings.service.js +0 -165
- package/esm2015/lib/shared/availability.js +0 -2
- package/esm2015/lib/shared/calendar.js +0 -29
- package/esm2015/lib/shared/duration.js +0 -41
- package/esm2015/lib/shared/fieldmask.js +0 -6
- package/esm2015/lib/shared/host-id.js +0 -20
- package/esm2015/lib/shared/host-url-map.js +0 -2
- package/esm2015/lib/shared/host-user.js +0 -8
- package/esm2015/lib/shared/host.js +0 -8
- package/esm2015/lib/shared/index.js +0 -14
- package/esm2015/lib/shared/meeting-type.js +0 -52
- package/esm2015/lib/shared/meeting.js +0 -89
- package/esm2015/lib/shared/paged-response.js +0 -8
- package/esm2015/lib/shared/preferences.js +0 -12
- package/esm2015/lib/shared/time-span.js +0 -7
- package/esm2015/public_api.js +0 -2
- package/esm2015/vendasta-meetings.js +0 -12
- package/fesm2015/vendasta-meetings.js.map +0 -1
- package/lib/_internal/meetings.module.d.ts +0 -2
- package/lib/guest/guest.module.d.ts +0 -2
- package/lib/host/host.module.d.ts +0 -2
- package/lib/meetings.module.d.ts +0 -2
- package/vendasta-meetings.metadata.json +0 -1
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { MeetingGuestApiService } from '../_internal/index';
|
|
3
|
-
import { map, mapTo } from 'rxjs/operators';
|
|
4
|
-
import { answersToAPI, CalendarFromApi, HostFromApi, MeetingTypeFromApi, TimeSpanFromApi } from '../shared';
|
|
5
|
-
import { EnvironmentServiceInterfaceToken } from '@vendasta/core';
|
|
6
|
-
export class GuestService {
|
|
7
|
-
constructor(guestAPIService, environmentService) {
|
|
8
|
-
this.guestAPIService = guestAPIService;
|
|
9
|
-
this.environmentService = environmentService;
|
|
10
|
-
}
|
|
11
|
-
getMeetingType(req) {
|
|
12
|
-
return this.guestAPIService.getMeetingType(req).pipe(map(resp => {
|
|
13
|
-
if (!resp || !resp.meetingType) {
|
|
14
|
-
return {};
|
|
15
|
-
}
|
|
16
|
-
return MeetingTypeFromApi({
|
|
17
|
-
environment: this.environmentService.getEnvironment(),
|
|
18
|
-
calendarId: req.calendarSlug,
|
|
19
|
-
meetingTypeApi: resp.meetingType,
|
|
20
|
-
metadata: req.metadata,
|
|
21
|
-
calendarSlug: req.calendarSlug,
|
|
22
|
-
});
|
|
23
|
-
}));
|
|
24
|
-
}
|
|
25
|
-
listMeetingTypes(req) {
|
|
26
|
-
return this.guestAPIService.listMeetingTypes(req).pipe(map(resp => {
|
|
27
|
-
if (!resp || !resp.meetingTypes) {
|
|
28
|
-
return [];
|
|
29
|
-
}
|
|
30
|
-
return resp.meetingTypes.map(mt => {
|
|
31
|
-
return MeetingTypeFromApi({
|
|
32
|
-
environment: this.environmentService.getEnvironment(),
|
|
33
|
-
calendarId: req.hostId,
|
|
34
|
-
meetingTypeApi: mt,
|
|
35
|
-
metadata: req.metadata,
|
|
36
|
-
calendarSlug: req.calendarSlug,
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}));
|
|
40
|
-
}
|
|
41
|
-
listAvailableTimeSlots(req) {
|
|
42
|
-
return this.guestAPIService.listAvailableTimeSlots(req).pipe(map(resp => resp.timeSlots ? resp.timeSlots.map(ts => TimeSpanFromApi(ts)) : []));
|
|
43
|
-
}
|
|
44
|
-
bookMeeting(req) {
|
|
45
|
-
return this.guestAPIService.bookMeeting(Object.assign(Object.assign({}, req), { attendees: req.attendees, formAnswers: answersToAPI(req.formAnswers) })).pipe(map((resp) => resp));
|
|
46
|
-
}
|
|
47
|
-
cancelMeeting(req) {
|
|
48
|
-
return this.guestAPIService.cancelMeeting(req).pipe(mapTo(null));
|
|
49
|
-
}
|
|
50
|
-
rescheduleMeeting(req) {
|
|
51
|
-
return this.guestAPIService.rescheduleMeeting(req).pipe(mapTo(null));
|
|
52
|
-
}
|
|
53
|
-
// getHost returns an individual host by their hostId
|
|
54
|
-
getHost(req) {
|
|
55
|
-
return this.guestAPIService.getHost(req).pipe(map(resp => HostFromApi(resp.host)));
|
|
56
|
-
}
|
|
57
|
-
// getCalendar returns a Calendar, which may represent an individual host OR a grouping of hosts (I.e., a team)
|
|
58
|
-
getCalendar(req) {
|
|
59
|
-
return this.guestAPIService.getCalendar(req).pipe(map(resp => CalendarFromApi(resp.calendar)));
|
|
60
|
-
}
|
|
61
|
-
getBookedMeetingInfo(meetingId, authToken) {
|
|
62
|
-
return this.guestAPIService.getGuestBookedMeeting({
|
|
63
|
-
meetingId: meetingId, authToken: authToken,
|
|
64
|
-
}).pipe(map(resp => ({
|
|
65
|
-
start: resp.startTime,
|
|
66
|
-
end: resp.endTime,
|
|
67
|
-
timeZone: resp.timeZone,
|
|
68
|
-
meetingTypeId: resp.meetingTypeId
|
|
69
|
-
})));
|
|
70
|
-
}
|
|
71
|
-
isHostConfigured(req) {
|
|
72
|
-
return this.guestAPIService.isHostConfigured(req).pipe(map((resp) => resp.isConfigured));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
GuestService.decorators = [
|
|
76
|
-
{ type: Injectable }
|
|
77
|
-
];
|
|
78
|
-
GuestService.ctorParameters = () => [
|
|
79
|
-
{ type: MeetingGuestApiService },
|
|
80
|
-
{ type: undefined, decorators: [{ type: Inject, args: [EnvironmentServiceInterfaceToken,] }] }
|
|
81
|
-
];
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3Vlc3Quc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIvY29kZWZyZXNoL3ZvbHVtZS9tZWV0aW5ncy9zZGtzL3R5cGVzY3JpcHQvc3JjL21lZXRpbmdzX3Nkay9zcmMvIiwic291cmNlcyI6WyJsaWIvZ3Vlc3QvZ3Vlc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBSUgsc0JBQXNCLEVBRXpCLE1BQU0sb0JBQW9CLENBQUM7QUFFNUIsT0FBTyxFQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQ0gsWUFBWSxFQUNaLGVBQWUsRUFFZixXQUFXLEVBSVgsa0JBQWtCLEVBRWxCLGVBQWUsRUFDbEIsTUFBTSxXQUFXLENBQUM7QUFDbkIsT0FBTyxFQUE4QixnQ0FBZ0MsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBNEI3RixNQUFNLE9BQU8sWUFBWTtJQUVyQixZQUNZLGVBQXVDLEVBQ1ksa0JBQStDO1FBRGxHLG9CQUFlLEdBQWYsZUFBZSxDQUF3QjtRQUNZLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBNkI7SUFDM0csQ0FBQztJQUVKLGNBQWMsQ0FBQyxHQUlkO1FBQ0csT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNQLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO2dCQUM1QixPQUFPLEVBQWlCLENBQUM7YUFDNUI7WUFDRCxPQUFPLGtCQUFrQixDQUFDO2dCQUN0QixXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsRUFBRTtnQkFDckQsVUFBVSxFQUFFLEdBQUcsQ0FBQyxZQUFZO2dCQUM1QixjQUFjLEVBQUUsSUFBSSxD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QWlCO1FBQ3JELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxxQkFBcUIsQ0FBQztZQUM5QyxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTO1NBQzdDLENBQUMsQ0FBQyxJQUFJLENBQ0gsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBb0I7WUFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3JCLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTztZQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhO1NBQ25DLENBQUEsQ0FBQyxDQUNOLENBQUE7SUFDTCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsR0FBdUI7UUFDcEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDbEQsR0FBRyxDQUFDLENBQUMsSUFBbUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUNsRSxDQUFDO0lBQ04sQ0FBQzs7O1lBdEhKLFVBQVU7OztZQTVDUCxzQkFBc0I7NENBaURqQixNQUFNLFNBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDYWxlbmRhckludGVyZmFjZSxcbiAgICBDb250YWN0LFxuICAgIEd1ZXN0SXNIb3N0Q29uZmlndXJlZFJlc3BvbnNlLFxuICAgIE1lZXRpbmdHdWVzdEFwaVNlcnZpY2UsXG4gICAgVGltZVpvbmVJbnRlcmZhY2Vcbn0gZnJvbSAnLi4vX2ludGVybmFsL2luZGV4JztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgbWFwVG99IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgYW5zd2Vyc1RvQVBJLFxuICAgIENhbGVuZGFyRnJvbUFwaSxcbiAgICBIb3N0LFxuICAgIEhvc3RGcm9tQXBpLFxuICAgIE1lZXRpbmdGb3JtLFxuICAgIE1lZXRpbmdNZXRhZGF0YSxcbiAgICBNZWV0aW5nVHlwZSxcbiAgICBNZWV0aW5nVHlwZUZyb21BcGksXG4gICAgVGltZVNwYW4sXG4gICAgVGltZVNwYW5Gcm9tQXBpXG59IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQge0Vudmlyb25tZW50U2VydmljZUludGVyZmFjZSwgRW52aXJvbm1lbnRTZXJ2aWNlSW50ZXJmYWNlVG9rZW59IGZyb20gJ0B2ZW5kYXN0YS9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBCb29rTWVldGluZ1Jlc3BvbnNlIHtcbiAgICBtZWV0aW5nSWQ6IHN0cmluZztcbiAgICBob3N0SWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCb29rZWRNZWV0aW5nSW5mbyB7XG4gICAgc3RhcnQ6IERhdGU7XG4gICAgZW5kOiBEYXRlO1xuICAgIHRpbWVab25lOiBUaW1lWm9uZUludGVyZmFjZTtcbiAgICBtZWV0aW5nVHlwZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR3Vlc3RTZXJ2aWNlSW50ZXJmYWNlIHtcbiAgICBnZXRCb29rZWRNZWV0aW5nSW5mbyhtZWV0aW5nSWQ6IHN0cmluZywgYXV0aFRva2VuOiBzdHJpbmcpOiBPYnNlcnZhYmxlPEJvb2tlZE1lZXRpbmdJbmZvPlxuXG4gICAgbGlzdE1lZXRpbmdUeXBlcyhyZXE6IHtcbiAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2UsXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIHNsdWc/OiBzdHJpbmcsXG4gICAgfSk6IE9ic2VydmFibGU8TWVldGluZ1R5cGVbXT5cblxuICAgIGlzSG9zdENvbmZpZ3VyZWQocmVxOiB7IGhvc3RJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBHdWVzdFNlcnZpY2UgaW1wbGVtZW50cyBHdWVzdFNlcnZpY2VJbnRlcmZhY2Uge1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZ3Vlc3RBUElTZXJ2aWNlOiBNZWV0aW5nR3Vlc3RBcGlTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KEVudmlyb25tZW50U2VydmljZUludGVyZmFjZVRva2VuKSBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50U2VydmljZTogRW52aXJvbm1lbnRTZXJ2aWNlSW50ZXJmYWNlLFxuICAgICkge31cblxuICAgIGdldE1lZXRpbmdUeXBlKHJlcToge1xuICAgICAgICBjYWxlbmRhclNsdWc6IHN0cmluZyxcbiAgICAgICAgbWVldGluZ1R5cGVTbHVnOiBzdHJpbmcsXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgfSk6IE9ic2VydmFibGU8TWVldGluZ1R5cGU+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmdldE1lZXRpbmdUeXBlKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3AgfHwgIXJlc3AubWVldGluZ1R5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt9IGFzIE1lZXRpbmdUeXBlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCksXG4gICAgICAgICAgICAgICAgICAgIGNhbGVuZGFySWQ6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiByZXNwLm1lZXRpbmdUeXBlLFxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YTogcmVxLm1ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGxpc3RNZWV0aW5nVHlwZXMocmVxOiB7XG4gICAgICAgIGhvc3RJZDogc3RyaW5nLFxuICAgICAgICBtZXRhZGF0YT86IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB9LFxuICAgICAgICAvLyBkZXByZWNhdGVkOiB1bnVzZWQgZmllbGQuXG4gICAgICAgIHRpbWVab25lPzogVGltZVpvbmVJbnRlcmZhY2UsXG4gICAgICAgIGNhbGVuZGFyU2x1Zz86IHN0cmluZyxcbiAgICB9KTogT2JzZXJ2YWJsZTxNZWV0aW5nVHlwZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5saXN0TWVldGluZ1R5cGVzKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3AgfHwgIXJlc3AubWVldGluZ1R5cGVzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBbXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3AubWVldGluZ1R5cGVzLm1hcChtdCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBNZWV0aW5nVHlwZUZyb21BcGkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhcklkOiByZXEuaG9zdElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ1R5cGVBcGk6IG10LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE6IHJlcS5tZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFyU2x1ZzogcmVxLmNhbGVuZGFyU2x1ZyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgbGlzdEF2YWlsYWJsZVRpbWVTbG90cyhyZXE6IHtcbiAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgIG1lZXRpbmdUeXBlSWQ6IHN0cmluZyxcbiAgICAgICAgdGltZVNwYW46IFRpbWVTcGFuLFxuICAgICAgICB0aW1lWm9uZTogVGltZVpvbmVJbnRlcmZhY2VcbiAgICB9KTogT2JzZXJ2YWJsZTxUaW1lU3BhbltdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5saXN0QXZhaWxhYmxlVGltZVNsb3RzKHJlcSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+IHJlc3AudGltZVNsb3RzID8gcmVzcC50aW1lU2xvdHMubWFwKHRzID0+IFRpbWVTcGFuRnJvbUFwaSh0cykpIDogW10pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICBib29rTWVldGluZyhyZXE6IHtcbiAgICAgICAgICAgICAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlSWQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQ6IERhdGUsXG4gICAgICAgICAgICAgICAgICAgIGNvbW1lbnQ6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGE/OiBNZWV0aW5nTWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIGF0dGVuZGVlczogKE9taXQ8Q29udGFjdCwgJ2Zyb21Qcm90bycgfCAndG9BcGlKc29uJyB8ICdjb25zdHJ1Y3RvcicgfCAndGltZVpvbmUnPiAmIHsgdGltZVpvbmU6IFRpbWVab25lSW50ZXJmYWNlIH0pW10sXG4gICAgICAgICAgICAgICAgICAgIGZvcm1BbnN3ZXJzPzogTWVldGluZ0Zvcm0sXG4gICAgICAgICAgICAgICAgICAgIHJlY2FwdGNoYVRva2VuOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgfVxuICAgICk6IE9ic2VydmFibGU8Qm9va01lZXRpbmdSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuYm9va01lZXRpbmcoe1xuICAgICAgICAgICAgLi4ucmVxLFxuICAgICAgICAgICAgYXR0ZW5kZWVzOiByZXEuYXR0ZW5kZWVzLFxuICAgICAgICAgICAgZm9ybUFuc3dlcnM6IGFuc3dlcnNUb0FQSShyZXEuZm9ybUFuc3dlcnMpLFxuICAgICAgICB9KS5waXBlKG1hcCgocmVzcDogYW55KSA9PiByZXNwIGFzIEJvb2tNZWV0aW5nUmVzcG9uc2UpKTtcbiAgICB9XG5cbiAgICBjYW5jZWxNZWV0aW5nKHJlcTogeyBhdXRoVG9rZW46IHN0cmluZywgbWVldGluZ0lkOiBzdHJpbmcsIGNhbmNlbGxhdGlvblJlYXNvbjogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPG51bGw+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3Vlc3RBUElTZXJ2aWNlLmNhbmNlbE1lZXRpbmcocmVxKS5waXBlKG1hcFRvKG51bGwpKTtcbiAgICB9XG5cbiAgICByZXNjaGVkdWxlTWVldGluZyhyZXE6IHsgYXV0aFRva2VuOiBzdHJpbmcsIG1lZXRpbmdJZDogc3RyaW5nLCBzdGFydDogRGF0ZSwgdGltZVpvbmU/OiBUaW1lWm9uZUludGVyZmFjZSB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmd1ZXN0QVBJU2VydmljZS5yZXNjaGVkdWxlTWVldGluZyhyZXEpLnBpcGUobWFwVG8obnVsbCkpO1xuICAgIH1cblxuICAgIC8vIGdldEhvc3QgcmV0dXJucyBhbiBpbmRpdmlkdWFsIGhvc3QgYnkgdGhlaXIgaG9zdElkXG4gICAgZ2V0SG9zdChyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8SG9zdD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0SG9zdChyZXEpLnBpcGUobWFwKHJlc3AgPT4gSG9zdEZyb21BcGkocmVzcC5ob3N0KSkpXG4gICAgfVxuXG4gICAgLy8gZ2V0Q2FsZW5kYXIgcmV0dXJucyBhIENhbGVuZGFyLCB3aGljaCBtYXkgcmVwcmVzZW50IGFuIGluZGl2aWR1YWwgaG9zdCBPUiBhIGdyb3VwaW5nIG9mIGhvc3RzIChJLmUuLCBhIHRlYW0pXG4gICAgZ2V0Q2FsZW5kYXIocmVxOiB7IGNhbGVuZGFySWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxDYWxlbmRhckludGVyZmFjZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0Q2FsZW5kYXIocmVxKS5waXBlKG1hcChyZXNwID0+IENhbGVuZGFyRnJvbUFwaShyZXNwLmNhbGVuZGFyKSkpXG4gICAgfVxuXG4gICAgZ2V0Qm9va2VkTWVldGluZ0luZm8obWVldGluZ0lkOiBzdHJpbmcsIGF1dGhUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxCb29rZWRNZWV0aW5nSW5mbz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuZ2V0R3Vlc3RCb29rZWRNZWV0aW5nKHtcbiAgICAgICAgICAgIG1lZXRpbmdJZDogbWVldGluZ0lkLCBhdXRoVG9rZW46IGF1dGhUb2tlbixcbiAgICAgICAgfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+ICg8Qm9va2VkTWVldGluZ0luZm8+e1xuICAgICAgICAgICAgICAgIHN0YXJ0OiByZXNwLnN0YXJ0VGltZSxcbiAgICAgICAgICAgICAgICBlbmQ6IHJlc3AuZW5kVGltZSxcbiAgICAgICAgICAgICAgICB0aW1lWm9uZTogcmVzcC50aW1lWm9uZSxcbiAgICAgICAgICAgICAgICBtZWV0aW5nVHlwZUlkOiByZXNwLm1lZXRpbmdUeXBlSWRcbiAgICAgICAgICAgIH0pKVxuICAgICAgICApXG4gICAgfVxuXG4gICAgaXNIb3N0Q29uZmlndXJlZChyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ndWVzdEFQSVNlcnZpY2UuaXNIb3N0Q29uZmlndXJlZChyZXEpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3A6IEd1ZXN0SXNIb3N0Q29uZmlndXJlZFJlc3BvbnNlKSA9PiByZXNwLmlzQ29uZmlndXJlZClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './guest.service';
|
|
2
|
-
export * from './guest.module';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2NvZGVmcmVzaC92b2x1bWUvbWVldGluZ3Mvc2Rrcy90eXBlc2NyaXB0L3NyYy9tZWV0aW5nc19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL2d1ZXN0L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUE7QUFDL0IsY0FBYyxnQkFBZ0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZ3Vlc3Quc2VydmljZSdcbmV4cG9ydCAqIGZyb20gJy4vZ3Vlc3QubW9kdWxlJ1xuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { HostService } from './host.service';
|
|
3
|
-
import { MeetingsInternalModule } from '../_internal/meetings.module';
|
|
4
|
-
export class HostModule {
|
|
5
|
-
}
|
|
6
|
-
HostModule.decorators = [
|
|
7
|
-
{ type: NgModule, args: [{
|
|
8
|
-
imports: [
|
|
9
|
-
MeetingsInternalModule,
|
|
10
|
-
],
|
|
11
|
-
providers: [
|
|
12
|
-
HostService
|
|
13
|
-
]
|
|
14
|
-
},] }
|
|
15
|
-
];
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiL2NvZGVmcmVzaC92b2x1bWUvbWVldGluZ3Mvc2Rrcy90eXBlc2NyaXB0L3NyYy9tZWV0aW5nc19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL2hvc3QvaG9zdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFVcEUsTUFBTSxPQUFPLFVBQVU7OztZQVJ0QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFFO29CQUNMLHNCQUFzQjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLFdBQVc7aUJBQ2Q7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0hvc3RTZXJ2aWNlfSBmcm9tICcuL2hvc3Quc2VydmljZSc7XG5pbXBvcnQge01lZXRpbmdzSW50ZXJuYWxNb2R1bGV9IGZyb20gJy4uL19pbnRlcm5hbC9tZWV0aW5ncy5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTWVldGluZ3NJbnRlcm5hbE1vZHVsZSxcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBIb3N0U2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSG9zdE1vZHVsZSB7fVxuIl19
|
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { of } from 'rxjs';
|
|
3
|
-
import { map, mapTo } from 'rxjs/operators';
|
|
4
|
-
import { ListBookedMeetingsRequestFilters, MeetingHostApiService, PagedRequestOptions, TimeRange, TimeZone } from '../_internal/index';
|
|
5
|
-
import { CalendarFromApi, getFieldMask, meetingFromApi, MeetingTypeFromApi, MeetingTypeToApi, PagedResponse, PreferencesFromApi } from '../shared/index';
|
|
6
|
-
import { EnvironmentServiceInterfaceToken } from '@vendasta/core';
|
|
7
|
-
import { getBookingUrlImplementation, getGeneralBookingUrlImplementation } from './url';
|
|
8
|
-
import { hostUserFromApi } from '../shared/host-user';
|
|
9
|
-
export class HostService {
|
|
10
|
-
constructor(hostAPIService, environmentService) {
|
|
11
|
-
this.hostAPIService = hostAPIService;
|
|
12
|
-
this.environmentService = environmentService;
|
|
13
|
-
}
|
|
14
|
-
// Use buildHostId to get an identifier that can be used in subsequent requests. See vendastaapis for more details
|
|
15
|
-
buildHostId(req) {
|
|
16
|
-
return this.hostAPIService.buildHostId({
|
|
17
|
-
userId: req.userId,
|
|
18
|
-
// Gross typecast exists because I want to restrict the properties on the map (for now).
|
|
19
|
-
applicationContextProperties: req.applicationContextProperties
|
|
20
|
-
}).pipe(map(res => res.hostId || ''));
|
|
21
|
-
}
|
|
22
|
-
doesCalendarExist(calendarIdentifier) {
|
|
23
|
-
return this.hostAPIService.doesCalendarExist({ calendarIdentifier: calendarIdentifier }).pipe(map(resp => resp.exists));
|
|
24
|
-
}
|
|
25
|
-
getCalendar(req) {
|
|
26
|
-
return this.hostAPIService.getCalendar({ calendarId: req.calendarId }).pipe(map(res => CalendarFromApi(res === null || res === void 0 ? void 0 : res.calendar)));
|
|
27
|
-
}
|
|
28
|
-
ensurePersonalCalendarExists(req) {
|
|
29
|
-
return this.hostAPIService.ensurePersonalCalendarExists({
|
|
30
|
-
userId: req.userId,
|
|
31
|
-
applicationContextProperties: req.applicationContextProperties,
|
|
32
|
-
}).pipe(map(res => res ? res.calendarId : ''));
|
|
33
|
-
}
|
|
34
|
-
ensureGroupCalendarsExist(req) {
|
|
35
|
-
return this.hostAPIService.ensureGroupCalendarsExist({ externalIds: req.externalIds }).pipe(map(res => (res === null || res === void 0 ? void 0 : res.calendarIds) || []));
|
|
36
|
-
}
|
|
37
|
-
/*
|
|
38
|
-
createCalendar creates a calendar which meeting types can be created for and events can be booked on
|
|
39
|
-
The fields of a calendar are documented in https://github.com/vendasta/vendastaapis/blob/master/meetings/v1/shared.proto
|
|
40
|
-
*/
|
|
41
|
-
createCalendar(req) {
|
|
42
|
-
return this.hostAPIService.createCalendar(req);
|
|
43
|
-
}
|
|
44
|
-
updateCalendarSlug(calendarId, newSlug) {
|
|
45
|
-
return this.hostAPIService.updateCalendar({
|
|
46
|
-
calendarId: calendarId,
|
|
47
|
-
calendarUpdate: { slug: newSlug },
|
|
48
|
-
fieldMask: { paths: ['slug'] },
|
|
49
|
-
}).pipe(mapTo(undefined));
|
|
50
|
-
}
|
|
51
|
-
updateCalendarHostUserIDs(calendarId, replacementHostUserIds) {
|
|
52
|
-
return this.hostAPIService.updateCalendar({
|
|
53
|
-
calendarId: calendarId,
|
|
54
|
-
calendarUpdate: { hostUserIds: replacementHostUserIds },
|
|
55
|
-
fieldMask: { paths: ['host_user_ids'] },
|
|
56
|
-
}).pipe(mapTo(undefined));
|
|
57
|
-
}
|
|
58
|
-
getMeetingTypesForCalendars(req) {
|
|
59
|
-
return this.hostAPIService.getMeetingTypesForCalendars({ calendarIds: req.calendarIds }).pipe(map(res => {
|
|
60
|
-
if (!(res === null || res === void 0 ? void 0 : res.calendarMeetingTypesMap)) {
|
|
61
|
-
return {};
|
|
62
|
-
}
|
|
63
|
-
return Object.keys(res.calendarMeetingTypesMap).reduce((calendarToMeetingTypeMap, calendarId) => {
|
|
64
|
-
var _a;
|
|
65
|
-
const meetingTypes = (((_a = res.calendarMeetingTypesMap[calendarId]) === null || _a === void 0 ? void 0 : _a.meetingTypes) || []).map(mt => MeetingTypeFromApi({
|
|
66
|
-
meetingTypeApi: mt,
|
|
67
|
-
environment: this.environmentService.getEnvironment(),
|
|
68
|
-
calendarId,
|
|
69
|
-
metadata: req.metadata,
|
|
70
|
-
}));
|
|
71
|
-
return Object.assign(Object.assign({}, calendarToMeetingTypeMap), { [calendarId]: meetingTypes });
|
|
72
|
-
}, {});
|
|
73
|
-
}));
|
|
74
|
-
}
|
|
75
|
-
/*
|
|
76
|
-
listMeetingTypes returns a list of meeting types for a host
|
|
77
|
-
@param hostId: An identifier for an individual host
|
|
78
|
-
@param metadata: optional metadata to include on the meeting type booking link
|
|
79
|
-
@param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.
|
|
80
|
-
- calendarSlug IS NOT USED TO RETRIEVE MEETING TYPES, ONLY TO MAKE THE BOOKING URLS
|
|
81
|
-
*/
|
|
82
|
-
listMeetingTypes(req) {
|
|
83
|
-
return this.hostAPIService.listMeetingTypes(req).pipe(map(resp => {
|
|
84
|
-
if (!resp || !resp.meetingTypes) {
|
|
85
|
-
return [];
|
|
86
|
-
}
|
|
87
|
-
return resp.meetingTypes.map(mt => {
|
|
88
|
-
return MeetingTypeFromApi({
|
|
89
|
-
meetingTypeApi: mt,
|
|
90
|
-
calendarId: req.hostId,
|
|
91
|
-
environment: this.environmentService.getEnvironment(),
|
|
92
|
-
metadata: req.metadata,
|
|
93
|
-
calendarSlug: req.calendarSlug,
|
|
94
|
-
});
|
|
95
|
-
});
|
|
96
|
-
}));
|
|
97
|
-
}
|
|
98
|
-
/*
|
|
99
|
-
getBookingUrl returns a link that can be used to book a meeting with this host.
|
|
100
|
-
@param calendarId: An identifier for an individual host or grouping of hosts (i.e., team).
|
|
101
|
-
@param @deprecated hostId: An identifier for an individual host.
|
|
102
|
-
@param meetingTypeId: An optional identifier for the meeting type. Default: 30-minutes.
|
|
103
|
-
@param metadata: optional metadata to include in the url.
|
|
104
|
-
- metadata can be used to pre-fill certain form fields and will be stored during the booking process.
|
|
105
|
-
- metadata can be obtained by subscribing to the booking event.
|
|
106
|
-
@param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.
|
|
107
|
-
*/
|
|
108
|
-
getBookingUrl(req) {
|
|
109
|
-
return of(getBookingUrlImplementation(Object.assign(Object.assign({}, req), { calendarId: req.calendarId || req.hostId, environment: this.environmentService.getEnvironment(), calendarSlug: req.calendarSlug })));
|
|
110
|
-
}
|
|
111
|
-
/*
|
|
112
|
-
getGeneralBookingUrl returns a link that can be used to select a meeting type to book with the given calendar.
|
|
113
|
-
@param calendarId: An identifier for an individual host or grouping of hosts (i.e., team).
|
|
114
|
-
@param metadata: optional metadata to include in the url.
|
|
115
|
-
- metadata can be used to pre-fill certain form fields and will be stored during the booking process.
|
|
116
|
-
- metadata can be obtained by subscribing to the booking event.
|
|
117
|
-
@param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.
|
|
118
|
-
*/
|
|
119
|
-
getGeneralBookingUrl(req) {
|
|
120
|
-
return of(getGeneralBookingUrlImplementation({
|
|
121
|
-
environment: this.environmentService.getEnvironment(),
|
|
122
|
-
calendarId: req.calendarId,
|
|
123
|
-
metadata: req.metadata,
|
|
124
|
-
calendarSlug: req.calendarSlug,
|
|
125
|
-
}));
|
|
126
|
-
}
|
|
127
|
-
/*
|
|
128
|
-
getBookingUrlsMulti returns a mapping of hosts -> event types -> booking links.
|
|
129
|
-
@param calendarId: An identifier for an individual host or grouping of hosts.
|
|
130
|
-
@param meetingTypeSlug: meetingTypeSlugs are passed in the form {hostId: [meetingTypeSlug1, meetingTypeSlug2]}
|
|
131
|
-
@param metadata: optional metadata to include in the url.
|
|
132
|
-
- metadata can be used to pre-fill certain form fields and will be stored during the booking process.
|
|
133
|
-
- metadata can be obtained by subscribing to the booking event.
|
|
134
|
-
@param calendarSlug: used to replace hostId in the url. Use it when you are confident you know the host's slug.
|
|
135
|
-
*/
|
|
136
|
-
getBookingUrlsMulti(req, metadata, calendarSlug) {
|
|
137
|
-
return of(Object.keys(req).reduce((hostMap, calendarId) => {
|
|
138
|
-
return Object.assign(Object.assign({}, hostMap), { [calendarId]: req[calendarId].reduce((meetingTypeMap, meetingTypeSlug) => {
|
|
139
|
-
return Object.assign(Object.assign({}, meetingTypeMap), { [meetingTypeSlug]: getBookingUrlImplementation({
|
|
140
|
-
calendarId,
|
|
141
|
-
meetingTypeSlug,
|
|
142
|
-
metadata,
|
|
143
|
-
environment: this.environmentService.getEnvironment(),
|
|
144
|
-
calendarSlug,
|
|
145
|
-
}) });
|
|
146
|
-
}, {}) });
|
|
147
|
-
}, {}));
|
|
148
|
-
}
|
|
149
|
-
isHostConfigured(req) {
|
|
150
|
-
return this.hostAPIService.isHostConfigured(req).pipe(map((resp) => resp.isConfigured));
|
|
151
|
-
}
|
|
152
|
-
setGeneralAvailability(req) {
|
|
153
|
-
const apiReq = Object.assign(Object.assign({}, req), { timeZone: new TimeZone(req.timeZone) });
|
|
154
|
-
if (req.timeSlot) {
|
|
155
|
-
apiReq.timeSlot = new TimeRange(req.timeSlot);
|
|
156
|
-
}
|
|
157
|
-
return this.hostAPIService.setGeneralAvailability(apiReq).pipe(mapTo(null));
|
|
158
|
-
}
|
|
159
|
-
listBookedMeetings(req) {
|
|
160
|
-
return this.hostAPIService.listBookedMeetings(Object.assign(Object.assign({}, req), { pagingOptions: new PagedRequestOptions({ cursor: req.cursor, pageSize: req.pageSize }), filters: new ListBookedMeetingsRequestFilters(req.filters), timeZone: new TimeZone(req.timeZone) })).pipe(map((resp) => {
|
|
161
|
-
const meetings = (resp.meetings || []).map(meeting => meetingFromApi(meeting));
|
|
162
|
-
return new PagedResponse(meetings, resp.pagingMetadata.nextCursor, resp.pagingMetadata.hasMore);
|
|
163
|
-
}));
|
|
164
|
-
}
|
|
165
|
-
cancelMeeting(req) {
|
|
166
|
-
return this.hostAPIService.cancelMeeting(Object.assign({}, req)).pipe(mapTo(null));
|
|
167
|
-
}
|
|
168
|
-
rescheduleMeeting(req) {
|
|
169
|
-
return this.hostAPIService.rescheduleMeeting(Object.assign({}, req)).pipe(mapTo(null));
|
|
170
|
-
}
|
|
171
|
-
listAvailability(req) {
|
|
172
|
-
return this.hostAPIService.listAvailability(req).pipe(map(response => {
|
|
173
|
-
const results = (response.availabilityRules || []).filter(Boolean).map(a => {
|
|
174
|
-
return {
|
|
175
|
-
hostId: a.hostId || '',
|
|
176
|
-
meetingTypeId: a.meetingTypeId || '',
|
|
177
|
-
day: a.day,
|
|
178
|
-
timeSlot: a.timeSlot,
|
|
179
|
-
timeZone: a.timeZone,
|
|
180
|
-
};
|
|
181
|
-
});
|
|
182
|
-
return new PagedResponse(results, response.metadata.nextCursor, response.metadata.hasMore);
|
|
183
|
-
}));
|
|
184
|
-
}
|
|
185
|
-
/* updatePreferences will update the host's preferences.
|
|
186
|
-
* It is guaranteed to only update the fields provided.
|
|
187
|
-
* For example:
|
|
188
|
-
* updatePreferences({meetingIntegration: MeetingSource.MEETING_SOURCE_GOOGLE_MEET})
|
|
189
|
-
* will only update the preference meetingIntegration to Google Meet. Keeping the other preferences the same.
|
|
190
|
-
*
|
|
191
|
-
* Alternatively, you can provide a list of keys to update as the second argument.
|
|
192
|
-
* For example:
|
|
193
|
-
* updatePreferences({...object with all fields}, ['meetingIntegration'])
|
|
194
|
-
* will only update the field 'meetingIntegration' to the value in preferences.
|
|
195
|
-
*
|
|
196
|
-
* Calling with an empty object and no keys is a no-op, or an undefined object.
|
|
197
|
-
* Calling with an object containing fields not in `Preferences` or with updateFields not linked to properties in
|
|
198
|
-
* `Preferences` is an error.
|
|
199
|
-
*/
|
|
200
|
-
updatePreferences(req) {
|
|
201
|
-
const fieldMask = getFieldMask({ o: req.preferences, updateFields: req.updateFields });
|
|
202
|
-
if (fieldMask.paths.length === 0) {
|
|
203
|
-
return of();
|
|
204
|
-
}
|
|
205
|
-
return this.hostAPIService.updateHostPreferences({
|
|
206
|
-
hostId: req.hostId,
|
|
207
|
-
preferences: req.preferences,
|
|
208
|
-
fieldMask,
|
|
209
|
-
}).pipe(mapTo(undefined));
|
|
210
|
-
}
|
|
211
|
-
getPreferences(req) {
|
|
212
|
-
return this.hostAPIService.getHostPreferences({
|
|
213
|
-
hostId: req.hostId
|
|
214
|
-
}).pipe(map(response => PreferencesFromApi(response.preferences)));
|
|
215
|
-
}
|
|
216
|
-
getMeeting(meetingId, location) {
|
|
217
|
-
return this.hostAPIService.getHostMeeting({
|
|
218
|
-
meetingId: meetingId, location: location,
|
|
219
|
-
}).pipe(map((resp) => meetingFromApi(resp.meeting)));
|
|
220
|
-
}
|
|
221
|
-
updateMeetingMetadata(req) {
|
|
222
|
-
return this.hostAPIService.updateMeetingMetadata({
|
|
223
|
-
meetingId: req.meetingId,
|
|
224
|
-
metadata: req.metadata
|
|
225
|
-
}).pipe(mapTo(undefined));
|
|
226
|
-
}
|
|
227
|
-
bookMeeting(req) {
|
|
228
|
-
return this.hostAPIService.bookMeeting(req).pipe(map((resp) => resp.meetingId));
|
|
229
|
-
}
|
|
230
|
-
// createDefaultMeetingTypes will create what Meeting Scheduler deems to be the default meeting types.
|
|
231
|
-
// If the calendar already has meeting types, this is guaranteed to be a no-op.
|
|
232
|
-
createDefaultMeetingTypes(req) {
|
|
233
|
-
return this.hostAPIService.createDefaultMeetingTypes({ calendarId: req.calendarId }).pipe(mapTo(undefined));
|
|
234
|
-
}
|
|
235
|
-
createMeetingType(req) {
|
|
236
|
-
return this.hostAPIService.createMeetingType({ meetingType: MeetingTypeToApi({ meetingType: req.meetingType }) })
|
|
237
|
-
.pipe(map(res => res.id));
|
|
238
|
-
}
|
|
239
|
-
/* updateMeetingType will update the meeting type fields.
|
|
240
|
-
* It is guaranteed to only update the fields provided.
|
|
241
|
-
* For example:
|
|
242
|
-
* updateMeetingType({name: 'Onboarding'})
|
|
243
|
-
* will only update the field 'name' to 'Onboarding'. Keeping the other fields the same.
|
|
244
|
-
*
|
|
245
|
-
* Alternatively, you can provide a list of keys to update as the second argument.
|
|
246
|
-
* For example:
|
|
247
|
-
* updateMeetingType({...object with all fields}, ['name'])
|
|
248
|
-
* will only update the field 'name' to the value passed in.
|
|
249
|
-
*
|
|
250
|
-
* Calling with an empty object and no keys is a no-op, or an undefined object.
|
|
251
|
-
* Calling with an object containing fields not in `MeetingType` or with updateFields not linked to properties in
|
|
252
|
-
* `MeetingType` is an error.
|
|
253
|
-
*/
|
|
254
|
-
updateMeetingType(req) {
|
|
255
|
-
const fieldMask = getFieldMask({ o: req.meetingType, updateFields: req.updateFields });
|
|
256
|
-
if (fieldMask.paths.length === 0) {
|
|
257
|
-
return of();
|
|
258
|
-
}
|
|
259
|
-
return this.hostAPIService.updateMeetingType({
|
|
260
|
-
id: req.id,
|
|
261
|
-
meetingType: MeetingTypeToApi({ meetingType: req.meetingType }),
|
|
262
|
-
fieldMask,
|
|
263
|
-
}).pipe(mapTo(undefined));
|
|
264
|
-
}
|
|
265
|
-
deleteMeetingType(req) {
|
|
266
|
-
return this.hostAPIService.deleteMeetingType({ id: req.id }).pipe(mapTo(undefined));
|
|
267
|
-
}
|
|
268
|
-
getHostsForCalendar(req) {
|
|
269
|
-
return this.hostAPIService.getHostsForCalendar({ calendarId: req.calendarId }).pipe(map(res => {
|
|
270
|
-
return (res.hostUsers || []).map(hostuser => {
|
|
271
|
-
return hostUserFromApi(hostuser);
|
|
272
|
-
});
|
|
273
|
-
}));
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
HostService.decorators = [
|
|
277
|
-
{ type: Injectable }
|
|
278
|
-
];
|
|
279
|
-
HostService.ctorParameters = () => [
|
|
280
|
-
{ type: MeetingHostApiService },
|
|
281
|
-
{ type: undefined, decorators: [{ type: Inject, args: [EnvironmentServiceInterfaceToken,] }] }
|
|
282
|
-
];
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6Ii9jb2RlZnJlc2gvdm9sdW1lL21lZXRpbmdzL3Nka3MvdHlwZXNjcmlwdC9zcmMvbWVldGluZ3Nfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9ob3N0L2hvc3Quc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQWEsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBQyxHQUFHLEVBQUUsS0FBSyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUMsT0FBTyxFQVNILGdDQUFnQyxFQUdoQyxxQkFBcUIsRUFDckIsbUJBQW1CLEVBRW5CLFNBQVMsRUFFVCxRQUFRLEVBR1gsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBSUgsZUFBZSxFQUNmLFlBQVksRUFHWixjQUFjLEVBR2Qsa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQixhQUFhLEVBRWIsa0JBQWtCLEVBQ3JCLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUE4QixnQ0FBZ0MsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzdGLE9BQU8sRUFBQywyQkFBMkIsRUFBRSxrQ0FBa0MsRUFBQyxNQUFNLE9BQU8sQ0FBQztBQUN0RixPQUFPLEVBQVcsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUE7QUFJN0QsTUFBTSxPQUFPLFdBQVc7SUFDcEIsWUFDWSxjQUFxQyxFQUNjLGtCQUErQztRQURsRyxtQkFBYyxHQUFkLGNBQWMsQ0FBdUI7UUFDYyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQTZCO0lBRTlHLENBQUM7SUFFRCxrSEFBa0g7SUFDbEgsV0FBVyxDQUFDLEdBQXNGO1FBQzlGLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLENBQUM7WUFDL0IsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNO1lB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QixDQUFDLEdBQTJCO1FBQzNDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxFQUFDLENBQUMsQ0FBQyxJQUFJLENBQzdFLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNOLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDeEMsT0FBTyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDcEMsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLENBQUMsQ0FDTCxDQUFBO0lBQ0wsQ0FBQzs7O1lBM1lKLFVBQVU7OztZQS9CUCxxQkFBcUI7NENBbUNoQixNQUFNLFNBQUMsZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge21hcCwgbWFwVG99IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgQ3JlYXRlQ2FsZW5kYXJSZXF1ZXN0SW50ZXJmYWNlLFxuICAgIENyZWF0ZUNhbGVuZGFyUmVzcG9uc2UsXG4gICAgRGF5T2ZXZWVrLFxuICAgIEdldEhvc3RNZWV0aW5nUmVzcG9uc2UsXG4gICAgSG9zdEJvb2tNZWV0aW5nUmVxdWVzdEludGVyZmFjZSxcbiAgICBIb3N0Qm9va01lZXRpbmdSZXNwb25zZSxcbiAgICBJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UsXG4gICAgTGlzdEF2YWlsYWJpbGl0eVJlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzLFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgIExpc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlLFxuICAgIE1lZXRpbmdIb3N0QXBpU2VydmljZSxcbiAgICBQYWdlZFJlcXVlc3RPcHRpb25zLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2UsXG4gICAgVGltZVJhbmdlLFxuICAgIFRpbWVSYW5nZUludGVyZmFjZSxcbiAgICBUaW1lWm9uZSxcbiAgICBUaW1lWm9uZUludGVyZmFjZSxcbiAgICBXZWVrZGF5QXZhaWxhYmlsaXR5XG59IGZyb20gJy4uL19pbnRlcm5hbC9pbmRleCc7XG5pbXBvcnQge1xuICAgIEFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXNTZXQsXG4gICAgQXZhaWxhYmlsaXR5UnVsZSxcbiAgICBDYWxlbmRhcixcbiAgICBDYWxlbmRhckZyb21BcGksXG4gICAgZ2V0RmllbGRNYXNrLFxuICAgIEhvc3RVcmxNYXAsXG4gICAgTWVldGluZyxcbiAgICBtZWV0aW5nRnJvbUFwaSxcbiAgICBNZWV0aW5nTWV0YWRhdGEsXG4gICAgTWVldGluZ1R5cGUsXG4gICAgTWVldGluZ1R5cGVGcm9tQXBpLFxuICAgIE1lZXRpbmdUeXBlVG9BcGksXG4gICAgUGFnZWRSZXNwb25zZSxcbiAgICBQcmVmZXJlbmNlcyxcbiAgICBQcmVmZXJlbmNlc0Zyb21BcGlcbn0gZnJvbSAnLi4vc2hhcmVkL2luZGV4JztcbmltcG9ydCB7RW52aXJvbm1lbnRTZXJ2aWNlSW50ZXJmYWNlLCBFbnZpcm9ubWVudFNlcnZpY2VJbnRlcmZhY2VUb2tlbn0gZnJvbSAnQHZlbmRhc3RhL2NvcmUnO1xuaW1wb3J0IHtnZXRCb29raW5nVXJsSW1wbGVtZW50YXRpb24sIGdldEdlbmVyYWxCb29raW5nVXJsSW1wbGVtZW50YXRpb259IGZyb20gJy4vdXJsJztcbmltcG9ydCB7SG9zdFVzZXIsIGhvc3RVc2VyRnJvbUFwaX0gZnJvbSAnLi4vc2hhcmVkL2hvc3QtdXNlcidcblxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSG9zdFNlcnZpY2Uge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGhvc3RBUElTZXJ2aWNlOiBNZWV0aW5nSG9zdEFwaVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoRW52aXJvbm1lbnRTZXJ2aWNlSW50ZXJmYWNlVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgZW52aXJvbm1lbnRTZXJ2aWNlOiBFbnZpcm9ubWVudFNlcnZpY2VJbnRlcmZhY2UsXG4gICAgKSB7XG4gICAgfVxuXG4gICAgLy8gVXNlIGJ1aWxkSG9zdElkIHRvIGdldCBhbiBpZGVudGlmaWVyIHRoYXQgY2FuIGJlIHVzZWQgaW4gc3Vic2VxdWVudCByZXF1ZXN0cy4gU2VlIHZlbmRhc3RhYXBpcyBmb3IgbW9yZSBkZXRhaWxzXG4gICAgYnVpbGRIb3N0SWQocmVxOiB7IHVzZXJJZDogc3RyaW5nLCBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiBBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzU2V0IH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5idWlsZEhvc3RJZCh7XG4gICAgICAgICAgICAgICAgdXNlcklkOiByZXEudXNlcklkLFxuICAgICAgICAgICAgICAgIC8vIEdyb3NzIHR5cGVjYXN0IGV4aXN0cyBiZWNhdXNlIEkgd2FudCB0byByZXN0cmljdCB0aGUgcHJvcGVydGllcyBvbiB0aGUgbWFwIChmb3Igbm93KS5cbiAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiByZXEuYXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyBhcyBhbnkgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfVxuICAgICAgICAgICAgfVxuICAgICAgICApLnBpcGUobWFwKHJlcyA9PiByZXMuaG9zdElkIHx8ICcnKSk7XG4gICAgfVxuXG4gICAgZG9lc0NhbGVuZGFyRXhpc3QoY2FsZW5kYXJJZGVudGlmaWVyOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZG9lc0NhbGVuZGFyRXhpc3Qoe2NhbGVuZGFySWRlbnRpZmllcjogY2FsZW5kYXJJZGVudGlmaWVyfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXNwID0+IHJlc3AuZXhpc3RzKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldENhbGVuZGFyKHJlcTogeyBjYWxlbmRhcklkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Q2FsZW5kYXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZ2V0Q2FsZW5kYXIoe2NhbGVuZGFySWQ6IHJlcS5jYWxlbmRhcklkfSkucGlwZShcbiAgICAgICAgICAgIG1hcChyZXMgPT4gQ2FsZW5kYXJGcm9tQXBpKHJlcz8uY2FsZW5kYXIpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGVuc3VyZVBlcnNvbmFsQ2FsZW5kYXJFeGlzdHMocmVxOiB7XG4gICAgICAgIHVzZXJJZDogc3RyaW5nLFxuICAgICAgICBhcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzOiBBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzU2V0XG4gICAgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmVuc3VyZVBlcnNvbmFsQ2FsZW5kYXJFeGlzdHMoe1xuICAgICAgICAgICAgdXNlcklkOiByZXEudXNlcklkLFxuICAgICAgICAgICAgYXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllczogcmVxLmFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMgYXMgYW55IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIH0pLnBpcGUobWFwKHJlcyA9PiByZXMgPyByZXMuY2FsZW5kYXJJZCA6ICcnKSk7XG4gICAgfVxuXG4gICAgZW5zdXJlR3JvdXBDYWxlbmRhcnNFeGlzdChyZXE6IHsgZXh0ZXJuYWxJZHM6IHN0cmluZ1tdIH0pOiBPYnNlcnZhYmxlPHN0cmluZ1tdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmVuc3VyZUdyb3VwQ2FsZW5kYXJzRXhpc3Qoe2V4dGVybmFsSWRzOiByZXEuZXh0ZXJuYWxJZHN9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiByZXM/LmNhbGVuZGFySWRzIHx8IFtdKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qXG4gICAgIGNyZWF0ZUNhbGVuZGFyIGNyZWF0ZXMgYSBjYWxlbmRhciB3aGljaCBtZWV0aW5nIHR5cGVzIGNhbiBiZSBjcmVhdGVkIGZvciBhbmQgZXZlbnRzIGNhbiBiZSBib29rZWQgb25cbiAgICAgVGhlIGZpZWxkcyBvZiBhIGNhbGVuZGFyIGFyZSBkb2N1bWVudGVkIGluIGh0dHBzOi8vZ2l0aHViLmNvbS92ZW5kYXN0YS92ZW5kYXN0YWFwaXMvYmxvYi9tYXN0ZXIvbWVldGluZ3MvdjEvc2hhcmVkLnByb3RvXG4gICAgKi9cbiAgICBjcmVhdGVDYWxlbmRhcihyZXE6IENyZWF0ZUNhbGVuZGFyUmVxdWVzdEludGVyZmFjZSk6IE9ic2VydmFibGU8Q3JlYXRlQ2FsZW5kYXJSZXNwb25zZT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jcmVhdGVDYWxlbmRhcihyZXEpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNhbGVuZGFyU2x1ZyhjYWxlbmRhcklkOiBzdHJpbmcsIG5ld1NsdWc6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVDYWxlbmRhcih7XG4gICAgICAgICAgICBjYWxlbmRhcklkOiBjYWxlbmRhcklkLFxuICAgICAgICAgICAgY2FsZW5kYXJVcGRhdGU6IHtzbHVnOiBuZXdTbHVnfSxcbiAgICAgICAgICAgIGZpZWxkTWFzazoge3BhdGhzOiBbJ3NsdWcnXX0sXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgdXBkYXRlQ2FsZW5kYXJIb3N0VXNlcklEcyhjYWxlbmRhcklkOiBzdHJpbmcsIHJlcGxhY2VtZW50SG9zdFVzZXJJZHM6IHN0cmluZ1tdKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnVwZGF0ZUNhbGVuZGFyKHtcbiAgICAgICAgICAgIGNhbGVuZGFySWQ6IGNhbGVuZGFySWQsXG4gICAgICAgICAgICBjYWxlbmRhclVwZGF0ZToge2hvc3RVc2VySWRzOiByZXBsYWNlbWVudEhvc3RVc2VySWRzfSxcbiAgICAgICAgICAgIGZpZWxkTWFzazoge3BhdGhzOiBbJ2hvc3RfdXNlcl9pZHMnXX0sXG4gICAgICAgIH0pLnBpcGUobWFwVG8odW5kZWZpbmVkKSk7XG4gICAgfVxuXG4gICAgZ2V0TWVldGluZ1R5cGVzRm9yQ2FsZW5kYXJzKHJlcToge1xuICAgICAgICBjYWxlbmRhcklkczogc3RyaW5nW10sXG4gICAgICAgIG1ldGFkYXRhOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfVxuICAgIH0pOiBPYnNlcnZhYmxlPHsgW2NhbGVuZGFySWQ6IHN0cmluZ106IE1lZXRpbmdUeXBlW10gfT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5nZXRNZWV0aW5nVHlwZXNGb3JDYWxlbmRhcnMoe2NhbGVuZGFySWRzOiByZXEuY2FsZW5kYXJJZHN9KS5waXBlKFxuICAgICAgICAgICAgbWFwKHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXM/LmNhbGVuZGFyTWVldGluZ1R5cGVzTWFwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHJlcy5jYWxlbmRhck1lZXRpbmdUeXBlc01hcCkucmVkdWNlKChjYWxlbmRhclRvTWVldGluZ1R5cGVNYXAsIGNhbGVuZGFySWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWVldGluZ1R5cGVzID0gKHJlcy5jYWxlbmRhck1lZXRpbmdUeXBlc01hcFtjYWxlbmRhcklkXT8ubWVldGluZ1R5cGVzIHx8IFtdKS5tYXAobXQgPT4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiBtdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudmlyb25tZW50OiB0aGlzLmVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNhbGVuZGFyVG9NZWV0aW5nVHlwZU1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjYWxlbmRhcklkXTogbWVldGluZ1R5cGVzLFxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sIHt9IGFzIHsgW2NhbGVuZGFySWQ6IHN0cmluZ106IE1lZXRpbmdUeXBlW10gfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbiAgICAvKlxuICAgICBsaXN0TWVldGluZ1R5cGVzIHJldHVybnMgYSBsaXN0IG9mIG1lZXRpbmcgdHlwZXMgZm9yIGEgaG9zdFxuICAgICBAcGFyYW0gaG9zdElkOiBBbiBpZGVudGlmaWVyIGZvciBhbiBpbmRpdmlkdWFsIGhvc3RcbiAgICAgQHBhcmFtIG1ldGFkYXRhOiBvcHRpb25hbCBtZXRhZGF0YSB0byBpbmNsdWRlIG9uIHRoZSBtZWV0aW5nIHR5cGUgYm9va2luZyBsaW5rXG4gICAgIEBwYXJhbSBjYWxlbmRhclNsdWc6IHVzZWQgdG8gcmVwbGFjZSBob3N0SWQgaW4gdGhlIHVybC4gVXNlIGl0IHdoZW4geW91IGFyZSBjb25maWRlbnQgeW91IGtub3cgdGhlIGhvc3QncyBzbHVnLlxuICAgICAgICAtIGNhbGVuZGFyU2x1ZyBJUyBOT1QgVVNFRCBUTyBSRVRSSUVWRSBNRUVUSU5HIFRZUEVTLCBPTkxZIFRPIE1BS0UgVEhFIEJPT0tJTkcgVVJMU1xuICAgICovXG4gICAgbGlzdE1lZXRpbmdUeXBlcyhyZXE6IHtcbiAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH1cbiAgICAgICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nLFxuICAgIH0pOiBPYnNlcnZhYmxlPE1lZXRpbmdUeXBlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdE1lZXRpbmdUeXBlcyhyZXEpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcCA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXNwIHx8ICFyZXNwLm1lZXRpbmdUeXBlcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiByZXNwLm1lZXRpbmdUeXBlcy5tYXAobXQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gTWVldGluZ1R5cGVGcm9tQXBpKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lZXRpbmdUeXBlQXBpOiBtdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbGVuZGFySWQ6IHJlcS5ob3N0SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgIH1cblxuICAgIC8qXG4gICAgIGdldEJvb2tpbmdVcmwgcmV0dXJucyBhIGxpbmsgdGhhdCBjYW4gYmUgdXNlZCB0byBib29rIGEgbWVldGluZyB3aXRoIHRoaXMgaG9zdC5cbiAgICAgQHBhcmFtIGNhbGVuZGFySWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdCBvciBncm91cGluZyBvZiBob3N0cyAoaS5lLiwgdGVhbSkuXG4gICAgIEBwYXJhbSBAZGVwcmVjYXRlZCBob3N0SWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdC5cbiAgICAgQHBhcmFtIG1lZXRpbmdUeXBlSWQ6IEFuIG9wdGlvbmFsIGlkZW50aWZpZXIgZm9yIHRoZSBtZWV0aW5nIHR5cGUuIERlZmF1bHQ6IDMwLW1pbnV0ZXMuXG4gICAgIEBwYXJhbSBtZXRhZGF0YTogb3B0aW9uYWwgbWV0YWRhdGEgdG8gaW5jbHVkZSBpbiB0aGUgdXJsLlxuICAgICAtIG1ldGFkYXRhIGNhbiBiZSB1c2VkIHRvIHByZS1maWxsIGNlcnRhaW4gZm9ybSBmaWVsZHMgYW5kIHdpbGwgYmUgc3RvcmVkIGR1cmluZyB0aGUgYm9va2luZyBwcm9jZXNzLlxuICAgICAtIG1ldGFkYXRhIGNhbiBiZSBvYnRhaW5lZCBieSBzdWJzY3JpYmluZyB0byB0aGUgYm9va2luZyBldmVudC5cbiAgICBAcGFyYW0gY2FsZW5kYXJTbHVnOiB1c2VkIHRvIHJlcGxhY2UgaG9zdElkIGluIHRoZSB1cmwuIFVzZSBpdCB3aGVuIHlvdSBhcmUgY29uZmlkZW50IHlvdSBrbm93IHRoZSBob3N0J3Mgc2x1Zy5cbiAgICAgKi9cbiAgICBnZXRCb29raW5nVXJsKFxuICAgICAgICByZXE6IHtcbiAgICAgICAgICAgIC8vIEBkZXByZWNhdGVkOiB1c2UgY2FsZW5kYXJJZCBpbnN0ZWFkLiBjYWxlbmRhcklkIG5vdCByZXF1aXJlZCB0byBhdm9pZCBicmVha2luZyBleGlzdGluZyBjbGllbnRzLlxuICAgICAgICAgICAgaG9zdElkOiBzdHJpbmcsXG4gICAgICAgICAgICBjYWxlbmRhcklkPzogc3RyaW5nLFxuICAgICAgICAgICAgLy8gQGRlcHJlY2F0ZWQ6IHVzZSBtZWV0aW5nVHlwZVNsdWcgaW5zdGVhZFxuICAgICAgICAgICAgbWVldGluZ1R5cGVJZD86IHN0cmluZyxcbiAgICAgICAgICAgIG1lZXRpbmdUeXBlU2x1Zz86IHN0cmluZyxcbiAgICAgICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgICAgICBjYWxlbmRhclNsdWc/OiBzdHJpbmcsXG4gICAgICAgIH0pOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gb2YoZ2V0Qm9va2luZ1VybEltcGxlbWVudGF0aW9uKHtcbiAgICAgICAgICAgICAgICAuLi5yZXEsXG4gICAgICAgICAgICAgICAgY2FsZW5kYXJJZDogcmVxLmNhbGVuZGFySWQgfHwgcmVxLmhvc3RJZCxcbiAgICAgICAgICAgICAgICBlbnZpcm9ubWVudDogdGhpcy5lbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKSxcbiAgICAgICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qXG4gICAgIGdldEdlbmVyYWxCb29raW5nVXJsIHJldHVybnMgYSBsaW5rIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VsZWN0IGEgbWVldGluZyB0eXBlIHRvIGJvb2sgd2l0aCB0aGUgZ2l2ZW4gY2FsZW5kYXIuXG4gICAgIEBwYXJhbSBjYWxlbmRhcklkOiBBbiBpZGVudGlmaWVyIGZvciBhbiBpbmRpdmlkdWFsIGhvc3Qgb3IgZ3JvdXBpbmcgb2YgaG9zdHMgKGkuZS4sIHRlYW0pLlxuICAgICBAcGFyYW0gbWV0YWRhdGE6IG9wdGlvbmFsIG1ldGFkYXRhIHRvIGluY2x1ZGUgaW4gdGhlIHVybC5cbiAgICAgLSBtZXRhZGF0YSBjYW4gYmUgdXNlZCB0byBwcmUtZmlsbCBjZXJ0YWluIGZvcm0gZmllbGRzIGFuZCB3aWxsIGJlIHN0b3JlZCBkdXJpbmcgdGhlIGJvb2tpbmcgcHJvY2Vzcy5cbiAgICAgLSBtZXRhZGF0YSBjYW4gYmUgb2J0YWluZWQgYnkgc3Vic2NyaWJpbmcgdG8gdGhlIGJvb2tpbmcgZXZlbnQuXG4gICAgIEBwYXJhbSBjYWxlbmRhclNsdWc6IHVzZWQgdG8gcmVwbGFjZSBob3N0SWQgaW4gdGhlIHVybC4gVXNlIGl0IHdoZW4geW91IGFyZSBjb25maWRlbnQgeW91IGtub3cgdGhlIGhvc3QncyBzbHVnLlxuICAgICAqL1xuICAgIGdldEdlbmVyYWxCb29raW5nVXJsKHJlcToge1xuICAgICAgICBjYWxlbmRhcklkOiBzdHJpbmcsXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIGNhbGVuZGFyU2x1Zz86IHN0cmluZyxcbiAgICB9KTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIG9mKGdldEdlbmVyYWxCb29raW5nVXJsSW1wbGVtZW50YXRpb24oe1xuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCksXG4gICAgICAgICAgICBjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJJZCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGEsXG4gICAgICAgICAgICBjYWxlbmRhclNsdWc6IHJlcS5jYWxlbmRhclNsdWcsXG4gICAgICAgIH0pKVxuICAgIH1cblxuICAgIC8qXG4gICAgIGdldEJvb2tpbmdVcmxzTXVsdGkgcmV0dXJucyBhIG1hcHBpbmcgb2YgaG9zdHMgLT4gZXZlbnQgdHlwZXMgLT4gYm9va2luZyBsaW5rcy5cbiAgICAgQHBhcmFtIGNhbGVuZGFySWQ6IEFuIGlkZW50aWZpZXIgZm9yIGFuIGluZGl2aWR1YWwgaG9zdCBvciBncm91cGluZyBvZiBob3N0cy5cbiAgICAgQHBhcmFtIG1lZXRpbmdUeXBlU2x1ZzogbWVldGluZ1R5cGVTbHVncyBhcmUgcGFzc2VkIGluIHRoZSBmb3JtIHtob3N0SWQ6IFttZWV0aW5nVHlwZVNsdWcxLCBtZWV0aW5nVHlwZVNsdWcyXX1cbiAgICAgQHBhcmFtIG1ldGFkYXRhOiBvcHRpb25hbCBtZXRhZGF0YSB0byBpbmNsdWRlIGluIHRoZSB1cmwuXG4gICAgIC0gbWV0YWRhdGEgY2FuIGJlIHVzZWQgdG8gcHJlLWZpbGwgY2VydGFpbiBmb3JtIGZpZWxkcyBhbmQgd2lsbCBiZSBzdG9yZWQgZHVyaW5nIHRoZSBib29raW5nIHByb2Nlc3MuXG4gICAgIC0gbWV0YWRhdGEgY2FuIGJlIG9idGFpbmVkIGJ5IHN1YnNjcmliaW5nIHRvIHRoZSBib29raW5nIGV2ZW50LlxuICAgICBAcGFyYW0gY2FsZW5kYXJTbHVnOiB1c2VkIHRvIHJlcGxhY2UgaG9zdElkIGluIHRoZSB1cmwuIFVzZSBpdCB3aGVuIHlvdSBhcmUgY29uZmlkZW50IHlvdSBrbm93IHRoZSBob3N0J3Mgc2x1Zy5cbiAgICAgKi9cbiAgICBnZXRCb29raW5nVXJsc011bHRpKFxuICAgICAgICByZXE6IHsgW2NhbGVuZGFySWQ6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICAgICAgIG1ldGFkYXRhPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgICAgIGNhbGVuZGFyU2x1Zz86IHN0cmluZ1xuICAgICk6IE9ic2VydmFibGU8SG9zdFVybE1hcD4ge1xuICAgICAgICByZXR1cm4gb2YoT2JqZWN0LmtleXMocmVxKS5yZWR1Y2UoKGhvc3RNYXAsIGNhbGVuZGFySWQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uaG9zdE1hcCxcbiAgICAgICAgICAgICAgICBbY2FsZW5kYXJJZF06IHJlcVtjYWxlbmRhcklkXS5yZWR1Y2UoKG1lZXRpbmdUeXBlTWFwLCBtZWV0aW5nVHlwZVNsdWcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLm1lZXRpbmdUeXBlTWFwLFxuICAgICAgICAgICAgICAgICAgICAgICAgW21lZXRpbmdUeXBlU2x1Z106IGdldEJvb2tpbmdVcmxJbXBsZW1lbnRhdGlvbih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWV0aW5nVHlwZVNsdWcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW52aXJvbm1lbnQ6IHRoaXMuZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsZW5kYXJTbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LCB7fSBhcyB7IFttZWV0aW5nVHlwZUlkOiBzdHJpbmddOiBzdHJpbmcgfSlcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIHt9IGFzIEhvc3RVcmxNYXApKTtcbiAgICB9XG5cbiAgICBpc0hvc3RDb25maWd1cmVkKHJlcTogeyBob3N0SWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmlzSG9zdENvbmZpZ3VyZWQocmVxKS5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXNwOiBJc0hvc3RDb25maWd1cmVkUmVzcG9uc2UpID0+IHJlc3AuaXNDb25maWd1cmVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldEdlbmVyYWxBdmFpbGFiaWxpdHkocmVxOiB7XG4gICAgICAgIGhvc3RJZDogc3RyaW5nLFxuICAgICAgICBtZWV0aW5nVHlwZUlkOiBzdHJpbmcsXG4gICAgICAgIC8vIEBkZXByZWNhdGVkOiB1c2Ugd2Vla2RheXNBdmFpbGFiaWxpdHkgaW5zdGVhZFxuICAgICAgICBkYXlzPzogRGF5T2ZXZWVrW10sXG4gICAgICAgIC8vIEBkZXByZWNhdGVkOiB1c2Ugd2Vla2RheXNBdmFpbGFiaWxpdHkgaW5zdGVhZFxuICAgICAgICB0aW1lU2xvdD86IFRpbWVSYW5nZUludGVyZmFjZSxcbiAgICAgICAgd2Vla2RheXNBdmFpbGFiaWxpdHk/OiBXZWVrZGF5QXZhaWxhYmlsaXR5W10sXG4gICAgICAgIHRpbWVab25lOiBUaW1lWm9uZUludGVyZmFjZSxcbiAgICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgICAgIGNvbnN0IGFwaVJlcSA9IHtcbiAgICAgICAgICAgIC4uLnJlcSxcbiAgICAgICAgICAgIHRpbWVab25lOiBuZXcgVGltZVpvbmUocmVxLnRpbWVab25lKSxcbiAgICAgICAgfVxuICAgICAgICBpZiAocmVxLnRpbWVTbG90KSB7XG4gICAgICAgICAgICBhcGlSZXEudGltZVNsb3QgPSBuZXcgVGltZVJhbmdlKHJlcS50aW1lU2xvdClcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5zZXRHZW5lcmFsQXZhaWxhYmlsaXR5KGFwaVJlcSkucGlwZShtYXBUbyhudWxsKSlcbiAgICB9XG5cbiAgICBsaXN0Qm9va2VkTWVldGluZ3MocmVxOiB7XG4gICAgICAgIGZpbHRlcnM6IExpc3RCb29rZWRNZWV0aW5nc1JlcXVlc3RGaWx0ZXJzSW50ZXJmYWNlLFxuICAgICAgICBjdXJzb3I6IHN0cmluZyxcbiAgICAgICAgcGFnZVNpemU6IG51bWJlcixcbiAgICAgICAgdGltZVpvbmU6IFRpbWVab25lSW50ZXJmYWNlLFxuICAgIH0pOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8TWVldGluZz4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdEJvb2tlZE1lZXRpbmdzKHtcbiAgICAgICAgICAgIC4uLnJlcSxcbiAgICAgICAgICAgIHBhZ2luZ09wdGlvbnM6IG5ldyBQYWdlZFJlcXVlc3RPcHRpb25zKHtjdXJzb3I6IHJlcS5jdXJzb3IsIHBhZ2VTaXplOiByZXEucGFnZVNpemV9KSxcbiAgICAgICAgICAgIGZpbHRlcnM6IG5ldyBMaXN0Qm9va2VkTWVldGluZ3NSZXF1ZXN0RmlsdGVycyhyZXEuZmlsdGVycyksXG4gICAgICAgICAgICB0aW1lWm9uZTogbmV3IFRpbWVab25lKHJlcS50aW1lWm9uZSksXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3A6IExpc3RCb29rZWRNZWV0aW5nc1Jlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbWVldGluZ3MgPSAocmVzcC5tZWV0aW5ncyB8fCBbXSkubWFwKG1lZXRpbmcgPT4gbWVldGluZ0Zyb21BcGkobWVldGluZykpO1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUGFnZWRSZXNwb25zZShtZWV0aW5ncywgcmVzcC5wYWdpbmdNZXRhZGF0YS5uZXh0Q3Vyc29yLCByZXNwLnBhZ2luZ01ldGFkYXRhLmhhc01vcmUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY2FuY2VsTWVldGluZyhyZXE6IHtcbiAgICAgICAgbWVldGluZ0lkOiBzdHJpbmcsXG4gICAgICAgIGNhbmNlbGxhdGlvblJlYXNvbjogc3RyaW5nXG4gICAgfSk6IE9ic2VydmFibGU8bnVsbD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5jYW5jZWxNZWV0aW5nKHtcbiAgICAgICAgICAgIC4uLnJlcVxuICAgICAgICB9KS5waXBlKG1hcFRvKG51bGwpKVxuICAgIH1cblxuICAgIHJlc2NoZWR1bGVNZWV0aW5nKHJlcToge1xuICAgICAgICBtZWV0aW5nSWQ6IHN0cmluZyxcbiAgICAgICAgc3RhcnQ6IERhdGVcbiAgICB9KTogT2JzZXJ2YWJsZTxudWxsPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLnJlc2NoZWR1bGVNZWV0aW5nKHtcbiAgICAgICAgICAgIC4uLnJlcVxuICAgICAgICB9KS5waXBlKG1hcFRvKG51bGwpKVxuICAgIH1cblxuICAgIGxpc3RBdmFpbGFiaWxpdHkocmVxOiB7XG4gICAgICAgIGZpbHRlcnM6IExpc3RBdmFpbGFiaWxpdHlSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSxcbiAgICAgICAgcGFnaW5nT3B0aW9uczogUGFnZWRSZXF1ZXN0T3B0aW9uc0ludGVyZmFjZSxcbiAgICAgICAgdGltZVpvbmU6IFRpbWVab25lSW50ZXJmYWNlLFxuICAgIH0pOiBPYnNlcnZhYmxlPFBhZ2VkUmVzcG9uc2U8QXZhaWxhYmlsaXR5UnVsZT4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UubGlzdEF2YWlsYWJpbGl0eShyZXEpLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSAocmVzcG9uc2UuYXZhaWxhYmlsaXR5UnVsZXMgfHwgW10pLmZpbHRlcihCb29sZWFuKS5tYXAoYSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBob3N0SWQ6IGEuaG9zdElkIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWVldGluZ1R5cGVJZDogYS5tZWV0aW5nVHlwZUlkIHx8ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGF5OiBhLmRheSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVTbG90OiBhLnRpbWVTbG90LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGltZVpvbmU6IGEudGltZVpvbmUsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IFBhZ2VkUmVzcG9uc2UocmVzdWx0cywgcmVzcG9uc2UubWV0YWRhdGEubmV4dEN1cnNvciwgcmVzcG9uc2UubWV0YWRhdGEuaGFzTW9yZSk7XG4gICAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgfVxuXG4gICAgLyogdXBkYXRlUHJlZmVyZW5jZXMgd2lsbCB1cGRhdGUgdGhlIGhvc3QncyBwcmVmZXJlbmNlcy5cbiAgICAgKiBJdCBpcyBndWFyYW50ZWVkIHRvIG9ubHkgdXBkYXRlIHRoZSBmaWVsZHMgcHJvdmlkZWQuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogIHVwZGF0ZVByZWZlcmVuY2VzKHttZWV0aW5nSW50ZWdyYXRpb246IE1lZXRpbmdTb3VyY2UuTUVFVElOR19TT1VSQ0VfR09PR0xFX01FRVR9KVxuICAgICAqICB3aWxsIG9ubHkgdXBkYXRlIHRoZSBwcmVmZXJlbmNlIG1lZXRpbmdJbnRlZ3JhdGlvbiB0byBHb29nbGUgTWVldC4gS2VlcGluZyB0aGUgb3RoZXIgcHJlZmVyZW5jZXMgdGhlIHNhbWUuXG4gICAgICpcbiAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHByb3ZpZGUgYSBsaXN0IG9mIGtleXMgdG8gdXBkYXRlIGFzIHRoZSBzZWNvbmQgYXJndW1lbnQuXG4gICAgICogRm9yIGV4YW1wbGU6XG4gICAgICogICB1cGRhdGVQcmVmZXJlbmNlcyh7Li4ub2JqZWN0IHdpdGggYWxsIGZpZWxkc30sIFsnbWVldGluZ0ludGVncmF0aW9uJ10pXG4gICAgICogICB3aWxsIG9ubHkgdXBkYXRlIHRoZSBmaWVsZCAnbWVldGluZ0ludGVncmF0aW9uJyB0byB0aGUgdmFsdWUgaW4gcHJlZmVyZW5jZXMuXG4gICAgICpcbiAgICAgKiBDYWxsaW5nIHdpdGggYW4gZW1wdHkgb2JqZWN0IGFuZCBubyBrZXlzIGlzIGEgbm8tb3AsIG9yIGFuIHVuZGVmaW5lZCBvYmplY3QuXG4gICAgICogQ2FsbGluZyB3aXRoIGFuIG9iamVjdCBjb250YWluaW5nIGZpZWxkcyBub3QgaW4gYFByZWZlcmVuY2VzYCBvciB3aXRoIHVwZGF0ZUZpZWxkcyBub3QgbGlua2VkIHRvIHByb3BlcnRpZXMgaW5cbiAgICAgKiBgUHJlZmVyZW5jZXNgIGlzIGFuIGVycm9yLlxuICAgICAqL1xuICAgIHVwZGF0ZVByZWZlcmVuY2VzKHJlcTogeyBob3N0SWQ6IHN0cmluZywgcHJlZmVyZW5jZXM6IFBhcnRpYWw8UHJlZmVyZW5jZXM+LCB1cGRhdGVGaWVsZHM/OiAoa2V5b2YgUHJlZmVyZW5jZXMpW10gfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCBmaWVsZE1hc2sgPSBnZXRGaWVsZE1hc2soe286IHJlcS5wcmVmZXJlbmNlcywgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVIb3N0UHJlZmVyZW5jZXMoe1xuICAgICAgICAgICAgaG9zdElkOiByZXEuaG9zdElkLFxuICAgICAgICAgICAgcHJlZmVyZW5jZXM6IHJlcS5wcmVmZXJlbmNlcyxcbiAgICAgICAgICAgIGZpZWxkTWFzayxcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBnZXRQcmVmZXJlbmNlcyhyZXE6IHsgaG9zdElkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8UHJlZmVyZW5jZXM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuZ2V0SG9zdFByZWZlcmVuY2VzKHtcbiAgICAgICAgICAgIGhvc3RJZDogcmVxLmhvc3RJZFxuICAgICAgICB9KS5waXBlKG1hcChyZXNwb25zZSA9PiBQcmVmZXJlbmNlc0Zyb21BcGkocmVzcG9uc2UucHJlZmVyZW5jZXMpKSlcbiAgICB9XG5cbiAgICBnZXRNZWV0aW5nKG1lZXRpbmdJZDogc3RyaW5nLCBsb2NhdGlvbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxNZWV0aW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmdldEhvc3RNZWV0aW5nKHtcbiAgICAgICAgICAgIG1lZXRpbmdJZDogbWVldGluZ0lkLCBsb2NhdGlvbjogbG9jYXRpb24sXG4gICAgICAgIH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3A6IEdldEhvc3RNZWV0aW5nUmVzcG9uc2UpID0+IG1lZXRpbmdGcm9tQXBpKHJlc3AubWVldGluZykpXG4gICAgICAgIClcbiAgICB9XG5cbiAgICB1cGRhdGVNZWV0aW5nTWV0YWRhdGEocmVxOiB7IG1lZXRpbmdJZDogc3RyaW5nLCBtZXRhZGF0YTogTWVldGluZ01ldGFkYXRhIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UudXBkYXRlTWVldGluZ01ldGFkYXRhKHtcbiAgICAgICAgICAgIG1lZXRpbmdJZDogcmVxLm1lZXRpbmdJZCxcbiAgICAgICAgICAgIG1ldGFkYXRhOiByZXEubWV0YWRhdGFcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBib29rTWVldGluZyhyZXE6IEhvc3RCb29rTWVldGluZ1JlcXVlc3RJbnRlcmZhY2UpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5ib29rTWVldGluZyhyZXEpLnBpcGUobWFwKChyZXNwOiBIb3N0Qm9va01lZXRpbmdSZXNwb25zZSkgPT4gcmVzcC5tZWV0aW5nSWQpKTtcbiAgICB9XG5cbiAgICAvLyBjcmVhdGVEZWZhdWx0TWVldGluZ1R5cGVzIHdpbGwgY3JlYXRlIHdoYXQgTWVldGluZyBTY2hlZHVsZXIgZGVlbXMgdG8gYmUgdGhlIGRlZmF1bHQgbWVldGluZyB0eXBlcy5cbiAgICAvLyBJZiB0aGUgY2FsZW5kYXIgYWxyZWFkeSBoYXMgbWVldGluZyB0eXBlcywgdGhpcyBpcyBndWFyYW50ZWVkIHRvIGJlIGEgbm8tb3AuXG4gICAgY3JlYXRlRGVmYXVsdE1lZXRpbmdUeXBlcyhyZXE6IHsgY2FsZW5kYXJJZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG9zdEFQSVNlcnZpY2UuY3JlYXRlRGVmYXVsdE1lZXRpbmdUeXBlcyh7Y2FsZW5kYXJJZDogcmVxLmNhbGVuZGFySWR9KS5waXBlKG1hcFRvKHVuZGVmaW5lZCkpO1xuICAgIH1cblxuICAgIGNyZWF0ZU1lZXRpbmdUeXBlKHJlcTogeyBtZWV0aW5nVHlwZTogTWVldGluZ1R5cGUgfSk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmNyZWF0ZU1lZXRpbmdUeXBlKHttZWV0aW5nVHlwZTogTWVldGluZ1R5cGVUb0FwaSh7bWVldGluZ1R5cGU6IHJlcS5tZWV0aW5nVHlwZX0pfSlcbiAgICAgICAgICAgIC5waXBlKG1hcChyZXMgPT4gcmVzLmlkKSk7XG4gICAgfVxuXG4gICAgLyogdXBkYXRlTWVldGluZ1R5cGUgd2lsbCB1cGRhdGUgdGhlIG1lZXRpbmcgdHlwZSBmaWVsZHMuXG4gICAgICogSXQgaXMgZ3VhcmFudGVlZCB0byBvbmx5IHVwZGF0ZSB0aGUgZmllbGRzIHByb3ZpZGVkLlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqICB1cGRhdGVNZWV0aW5nVHlwZSh7bmFtZTogJ09uYm9hcmRpbmcnfSlcbiAgICAgKiAgd2lsbCBvbmx5IHVwZGF0ZSB0aGUgZmllbGQgJ25hbWUnIHRvICdPbmJvYXJkaW5nJy4gS2VlcGluZyB0aGUgb3RoZXIgZmllbGRzIHRoZSBzYW1lLlxuICAgICAqXG4gICAgICogQWx0ZXJuYXRpdmVseSwgeW91IGNhbiBwcm92aWRlIGEgbGlzdCBvZiBrZXlzIHRvIHVwZGF0ZSBhcyB0aGUgc2Vjb25kIGFyZ3VtZW50LlxuICAgICAqIEZvciBleGFtcGxlOlxuICAgICAqICAgdXBkYXRlTWVldGluZ1R5cGUoey4uLm9iamVjdCB3aXRoIGFsbCBmaWVsZHN9LCBbJ25hbWUnXSlcbiAgICAgKiAgIHdpbGwgb25seSB1cGRhdGUgdGhlIGZpZWxkICduYW1lJyB0byB0aGUgdmFsdWUgcGFzc2VkIGluLlxuICAgICAqXG4gICAgICogQ2FsbGluZyB3aXRoIGFuIGVtcHR5IG9iamVjdCBhbmQgbm8ga2V5cyBpcyBhIG5vLW9wLCBvciBhbiB1bmRlZmluZWQgb2JqZWN0LlxuICAgICAqIENhbGxpbmcgd2l0aCBhbiBvYmplY3QgY29udGFpbmluZyBmaWVsZHMgbm90IGluIGBNZWV0aW5nVHlwZWAgb3Igd2l0aCB1cGRhdGVGaWVsZHMgbm90IGxpbmtlZCB0byBwcm9wZXJ0aWVzIGluXG4gICAgICogYE1lZXRpbmdUeXBlYCBpcyBhbiBlcnJvci5cbiAgICAgKi9cbiAgICB1cGRhdGVNZWV0aW5nVHlwZShyZXE6IHsgaWQ6IHN0cmluZywgbWVldGluZ1R5cGU6IFBhcnRpYWw8TWVldGluZ1R5cGU+LCB1cGRhdGVGaWVsZHM/OiAoa2V5b2YgTWVldGluZ1R5cGUpW10gfSk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCBmaWVsZE1hc2sgPSBnZXRGaWVsZE1hc2soe286IHJlcS5tZWV0aW5nVHlwZSwgdXBkYXRlRmllbGRzOiByZXEudXBkYXRlRmllbGRzfSk7XG4gICAgICAgIGlmIChmaWVsZE1hc2sucGF0aHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS51cGRhdGVNZWV0aW5nVHlwZSh7XG4gICAgICAgICAgICBpZDogcmVxLmlkLFxuICAgICAgICAgICAgbWVldGluZ1R5cGU6IE1lZXRpbmdUeXBlVG9BcGkoe21lZXRpbmdUeXBlOiByZXEubWVldGluZ1R5cGV9KSxcbiAgICAgICAgICAgIGZpZWxkTWFzayxcbiAgICAgICAgfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBkZWxldGVNZWV0aW5nVHlwZShyZXE6IHsgaWQ6IHN0cmluZyB9KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RBUElTZXJ2aWNlLmRlbGV0ZU1lZXRpbmdUeXBlKHtpZDogcmVxLmlkfSkucGlwZShtYXBUbyh1bmRlZmluZWQpKTtcbiAgICB9XG5cbiAgICBnZXRIb3N0c0ZvckNhbGVuZGFyKHJlcTogeyBjYWxlbmRhcklkOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8SG9zdFVzZXJbXT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0QVBJU2VydmljZS5nZXRIb3N0c0ZvckNhbGVuZGFyKHtjYWxlbmRhcklkOiByZXEuY2FsZW5kYXJJZH0pLnBpcGUoXG4gICAgICAgICAgICBtYXAocmVzID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKHJlcy5ob3N0VXNlcnMgfHwgW10pLm1hcChob3N0dXNlciA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBob3N0VXNlckZyb21BcGkoaG9zdHVzZXIpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgIClcbiAgICB9XG5cbn1cblxuXG5cbiJdfQ==
|
package/esm2015/lib/host/url.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
// A temporary method for building the url for a host, eventTypeId, and metadata
|
|
2
|
-
import { Environment } from '@vendasta/core';
|
|
3
|
-
export function getBookingUrlImplementation(req) {
|
|
4
|
-
const domain = getDomainFromEnvironment(req.environment);
|
|
5
|
-
const meetingType = req.meetingTypeSlug || req.meetingTypeId || '30-minutes';
|
|
6
|
-
const calendarSlug = req.calendarSlug || req.calendarId;
|
|
7
|
-
const url = `https://${domain}/book/${calendarSlug}/${meetingType}`;
|
|
8
|
-
if (!req.metadata) {
|
|
9
|
-
return url;
|
|
10
|
-
}
|
|
11
|
-
return addMetadataToBookingLink({ link: url, metadata: req.metadata });
|
|
12
|
-
}
|
|
13
|
-
export function getGeneralBookingUrlImplementation(req) {
|
|
14
|
-
const url = `https://${getDomainFromEnvironment(req.environment)}/${req.calendarSlug || req.calendarId}`;
|
|
15
|
-
return req.metadata ? addMetadataToBookingLink({ link: url, metadata: req.metadata }) : url;
|
|
16
|
-
}
|
|
17
|
-
function getDomainFromEnvironment(env) {
|
|
18
|
-
if (env === Environment.PROD) {
|
|
19
|
-
return 'bookmenow.info';
|
|
20
|
-
}
|
|
21
|
-
return 'bookme-demo-rrncocebdq-uc.a.run.app';
|
|
22
|
-
}
|
|
23
|
-
export function addMetadataToBookingLink(req) {
|
|
24
|
-
if (!req.metadata) {
|
|
25
|
-
return req.link;
|
|
26
|
-
}
|
|
27
|
-
const m = req.metadata;
|
|
28
|
-
const queryParams = Object.keys(m).reduce((params, key) => {
|
|
29
|
-
if (!params) {
|
|
30
|
-
if (req.link.indexOf('?') >= 0) {
|
|
31
|
-
return `&${key}=${m[key]}`;
|
|
32
|
-
}
|
|
33
|
-
return `?${key}=${m[key]}`;
|
|
34
|
-
}
|
|
35
|
-
return `${params}&${key}=${m[key]}`;
|
|
36
|
-
}, '');
|
|
37
|
-
return `${req.link}${queryParams}`;
|
|
38
|
-
}
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXJsLmpzIiwic291cmNlUm9vdCI6Ii9jb2RlZnJlc2gvdm9sdW1lL21lZXRpbmdzL3Nka3MvdHlwZXNjcmlwdC9zcmMvbWVldGluZ3Nfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9ob3N0L3VybC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnRkFBZ0Y7QUFDaEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE1BQU0sVUFBVSwyQkFBMkIsQ0FDdkMsR0FRQztJQUVELE1BQU0sTUFBTSxHQUFHLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6RCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsZUFBZSxJQUFJLEdBQUcsQ0FBQyxhQUFhLElBQUksWUFBWSxDQUFDO0lBQzdFLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQztJQUN4RCxNQUFNLEdBQUcsR0FBRyxXQUFXLE1BQU0sU0FBUyxZQUFZLElBQUksV0FBVyxFQUFFLENBQUM7SUFDcEUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7UUFDZixPQUFPLEdBQUcsQ0FBQztLQUNkO0lBQ0QsT0FBTyx3QkFBd0IsQ0FBQyxFQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUMsQ0FBQyxDQUFDO0FBQ3pFLENBQUM7QUFFRCxNQUFNLFVBQVUsa0NBQWtDLENBQUMsR0FLbEQ7SUFDRyxNQUFNLEdBQUcsR0FBRyxXQUFXLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN6RyxPQUFPLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLEVBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztBQUM5RixDQUFDO0FBRUQsU0FBUyx3QkFBd0IsQ0FBQyxHQUFnQjtJQUM5QyxJQUFJLEdBQUcsS0FBSyxXQUFXLENBQUMsSUFBSSxFQUFFO1FBQzFCLE9BQU8sZ0JBQWdCLENBQUM7S0FDM0I7SUFDRCxPQUFPLHFDQUFxQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUMsR0FBMEQ7SUFDL0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUU7UUFDZixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7S0FDbkI7SUFDRCxNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsUUFBcUMsQ0FBQztJQUNwRCxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUN0RCxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzVCLE9BQU8sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDOUI7WUFDRCxPQUFPLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxHQUFHLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7SUFDeEMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVAsT0FBTyxHQUFHLEdBQUcsQ0FBQyxJQUFJLEdBQUcsV0FBVyxFQUFFLENBQUM7QUFDdkMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEEgdGVtcG9yYXJ5IG1ldGhvZCBmb3IgYnVpbGRpbmcgdGhlIHVybCBmb3IgYSBob3N0LCBldmVudFR5cGVJZCwgYW5kIG1ldGFkYXRhXG5pbXBvcnQge0Vudmlyb25tZW50fSBmcm9tICdAdmVuZGFzdGEvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCb29raW5nVXJsSW1wbGVtZW50YXRpb24oXG4gICAgcmVxOiB7XG4gICAgICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICAgICAgY2FsZW5kYXJJZDogc3RyaW5nLFxuICAgICAgICAvLyBAZGVwcmVjYXRlZDogdXNlIG1lZXRpbmdUeXBlU2x1ZyBpbnN0ZWFkXG4gICAgICAgIG1lZXRpbmdUeXBlSWQ/OiBzdHJpbmcsXG4gICAgICAgIG1lZXRpbmdUeXBlU2x1Zz86IHN0cmluZyxcbiAgICAgICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICAgICAgY2FsZW5kYXJTbHVnPzogc3RyaW5nLFxuICAgIH1cbik6IHN0cmluZyB7XG4gICAgY29uc3QgZG9tYWluID0gZ2V0RG9tYWluRnJvbUVudmlyb25tZW50KHJlcS5lbnZpcm9ubWVudCk7XG4gICAgY29uc3QgbWVldGluZ1R5cGUgPSByZXEubWVldGluZ1R5cGVTbHVnIHx8IHJlcS5tZWV0aW5nVHlwZUlkIHx8ICczMC1taW51dGVzJztcbiAgICBjb25zdCBjYWxlbmRhclNsdWcgPSByZXEuY2FsZW5kYXJTbHVnIHx8IHJlcS5jYWxlbmRhcklkO1xuICAgIGNvbnN0IHVybCA9IGBodHRwczovLyR7ZG9tYWlufS9ib29rLyR7Y2FsZW5kYXJTbHVnfS8ke21lZXRpbmdUeXBlfWA7XG4gICAgaWYgKCFyZXEubWV0YWRhdGEpIHtcbiAgICAgICAgcmV0dXJuIHVybDtcbiAgICB9XG4gICAgcmV0dXJuIGFkZE1ldGFkYXRhVG9Cb29raW5nTGluayh7bGluazogdXJsLCBtZXRhZGF0YTogcmVxLm1ldGFkYXRhfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRHZW5lcmFsQm9va2luZ1VybEltcGxlbWVudGF0aW9uKHJlcToge1xuICAgIGVudmlyb25tZW50OiBFbnZpcm9ubWVudCxcbiAgICBjYWxlbmRhcklkOiBzdHJpbmcsXG4gICAgbWV0YWRhdGE/OiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICBjYWxlbmRhclNsdWc/OiBzdHJpbmcsXG59KTogc3RyaW5nIHtcbiAgICBjb25zdCB1cmwgPSBgaHR0cHM6Ly8ke2dldERvbWFpbkZyb21FbnZpcm9ubWVudChyZXEuZW52aXJvbm1lbnQpfS8ke3JlcS5jYWxlbmRhclNsdWcgfHwgcmVxLmNhbGVuZGFySWR9YDtcbiAgICByZXR1cm4gcmVxLm1ldGFkYXRhID8gYWRkTWV0YWRhdGFUb0Jvb2tpbmdMaW5rKHtsaW5rOiB1cmwsIG1ldGFkYXRhOiByZXEubWV0YWRhdGF9KSA6IHVybDtcbn1cblxuZnVuY3Rpb24gZ2V0RG9tYWluRnJvbUVudmlyb25tZW50KGVudjogRW52aXJvbm1lbnQpOiBzdHJpbmcge1xuICAgIGlmIChlbnYgPT09IEVudmlyb25tZW50LlBST0QpIHtcbiAgICAgICAgcmV0dXJuICdib29rbWVub3cuaW5mbyc7XG4gICAgfVxuICAgIHJldHVybiAnYm9va21lLWRlbW8tcnJuY29jZWJkcS11Yy5hLnJ1bi5hcHAnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYWRkTWV0YWRhdGFUb0Jvb2tpbmdMaW5rKHJlcTogeyBsaW5rOiBzdHJpbmcsIG1ldGFkYXRhOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IH0pOiBzdHJpbmcge1xuICAgIGlmICghcmVxLm1ldGFkYXRhKSB7XG4gICAgICAgIHJldHVybiByZXEubGluaztcbiAgICB9XG4gICAgY29uc3QgbSA9IHJlcS5tZXRhZGF0YSBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0gT2JqZWN0LmtleXMobSkucmVkdWNlKChwYXJhbXMsIGtleSkgPT4ge1xuICAgICAgICBpZiAoIXBhcmFtcykge1xuICAgICAgICAgICAgaWYgKHJlcS5saW5rLmluZGV4T2YoJz8nKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGAmJHtrZXl9PSR7bVtrZXldfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gYD8ke2tleX09JHttW2tleV19YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYCR7cGFyYW1zfSYke2tleX09JHttW2tleV19YDtcbiAgICB9LCAnJyk7XG5cbiAgICByZXR1cm4gYCR7cmVxLmxpbmt9JHtxdWVyeVBhcmFtc31gO1xufVxuIl19
|
package/esm2015/lib/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export { MeetingsModule } from './meetings.module';
|
|
2
|
-
export { MeetingsService } from './meetings.service';
|
|
3
|
-
export { GuestModule } from './guest/guest.module';
|
|
4
|
-
export { GuestService } from './guest/guest.service';
|
|
5
|
-
export { HostService } from './host/host.service';
|
|
6
|
-
export { HostModule } from './host/host.module';
|
|
7
|
-
export { addMetadataToBookingLink } from './host/url';
|
|
8
|
-
export { MeetingSource, MeetingSourceStatus, DayOfWeek, FormFieldType, CalendarType } from './_internal/enums/index';
|
|
9
|
-
export { MeetingSourceQuery, MeetingSourceInfo, MeetingSourceListResponse, Contact, WeekdayAvailability, CreateCalendarRequest, CreateCalendarResponse, } from './_internal/objects/index';
|
|
10
|
-
export { PagedResponse, WellKnownMeetingMetadataKeys, WellKnownFormFieldIds, meetingSchedulerIdToMetadataKey, durationFromString, durationToString, durationStringToMinutes, newBusinessCenterApplicationContextProperties, newSalesCenterApplicationContextProperties, newPartnerCenterApplicationContextProperties, KnownCalendarApplicationContextKeys, KnownCalendarExternalIntegrations, } from './shared/index';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiL2NvZGVmcmVzaC92b2x1bWUvbWVldGluZ3Mvc2Rrcy90eXBlc2NyaXB0L3NyYy9tZWV0aW5nc19zZGsvc3JjLyIsInNvdXJjZXMiOlsibGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEVBQWMsZUFBZSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFaEUsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzlDLE9BQU8sRUFBQyx3QkFBd0IsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNwRCxPQUFPLEVBQUMsYUFBYSxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFDLE1BQU0seUJBQXlCLENBQUE7QUFDbEgsT0FBTyxFQUNILGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIseUJBQXlCLEVBQ3pCLE9BQU8sRUFDUCxtQkFBbUIsRUFDbkIscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUN6QixNQUFNLDJCQUEyQixDQUFBO0FBQ2xDLE9BQU8sRUFHSCxhQUFhLEVBY2IsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQiwrQkFBK0IsRUFDL0Isa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsNkNBQTZDLEVBQzdDLDBDQUEwQyxFQUMxQyw0Q0FBNEMsRUFLNUMsbUNBQW1DLEVBQ25DLGlDQUFpQyxHQUVwQyxNQUFNLGdCQUFnQixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtNZWV0aW5nc01vZHVsZX0gZnJvbSAnLi9tZWV0aW5ncy5tb2R1bGUnO1xuZXhwb3J0IHtNZWV0aW5nc1NESywgTWVldGluZ3NTZXJ2aWNlfSBmcm9tICcuL21lZXRpbmdzLnNlcnZpY2UnO1xuZXhwb3J0IHtCb29rZWRNZWV0aW5nSW5mbywgQm9va01lZXRpbmdSZXNwb25zZSwgR3Vlc3RTZXJ2aWNlSW50ZXJmYWNlfSBmcm9tICcuL2d1ZXN0L2luZGV4JztcbmV4cG9ydCB7R3Vlc3RNb2R1bGV9IGZyb20gJy4vZ3Vlc3QvZ3Vlc3QubW9kdWxlJztcbmV4cG9ydCB7R3Vlc3RTZXJ2aWNlfSBmcm9tICcuL2d1ZXN0L2d1ZXN0LnNlcnZpY2UnO1xuZXhwb3J0IHtIb3N0U2VydmljZX0gZnJvbSAnLi9ob3N0L2hvc3Quc2VydmljZSc7XG5leHBvcnQge0hvc3RNb2R1bGV9IGZyb20gJy4vaG9zdC9ob3N0Lm1vZHVsZSc7XG5leHBvcnQge2FkZE1ldGFkYXRhVG9Cb29raW5nTGlua30gZnJvbSAnLi9ob3N0L3VybCc7XG5leHBvcnQge01lZXRpbmdTb3VyY2UsIE1lZXRpbmdTb3VyY2VTdGF0dXMsIERheU9mV2VlaywgRm9ybUZpZWxkVHlwZSwgQ2FsZW5kYXJUeXBlfSBmcm9tICcuL19pbnRlcm5hbC9lbnVtcy9pbmRleCdcbmV4cG9ydCB7XG4gICAgTWVldGluZ1NvdXJjZVF1ZXJ5LFxuICAgIE1lZXRpbmdTb3VyY2VJbmZvLFxuICAgIE1lZXRpbmdTb3VyY2VMaXN0UmVzcG9uc2UsXG4gICAgQ29udGFjdCxcbiAgICBXZWVrZGF5QXZhaWxhYmlsaXR5LFxuICAgIENyZWF0ZUNhbGVuZGFyUmVxdWVzdCxcbiAgICBDcmVhdGVDYWxlbmRhclJlc3BvbnNlLFxufSBmcm9tICcuL19pbnRlcm5hbC9vYmplY3RzL2luZGV4J1xuZXhwb3J0IHtcbiAgICBIb3N0LFxuICAgIFRpbWVTcGFuLFxuICAgIFBhZ2VkUmVzcG9uc2UsXG4gICAgTWVldGluZyxcbiAgICBNZWV0aW5nVHlwZSxcbiAgICBBdHRlbmRlZSxcbiAgICBBdmFpbGFiaWxpdHlSdWxlLFxuICAgIENhbGVuZGFyLFxuICAgIEhvc3RVcmxNYXAsXG4gICAgUHJlZmVyZW5jZXMsXG4gICAgRHVyYXRpb24sXG4gICAgTWVldGluZ1R5cGVGb3JtLFxuICAgIE1lZXRpbmdUeXBlRm9ybUZpZWxkLFxuICAgIE1lZXRpbmdGb3JtLFxuICAgIE1lZXRpbmdGb3JtQW5zd2VyLFxuICAgIE1lZXRpbmdNZXRhZGF0YSxcbiAgICBXZWxsS25vd25NZWV0aW5nTWV0YWRhdGFLZXlzLFxuICAgIFdlbGxLbm93bkZvcm1GaWVsZElkcyxcbiAgICBtZWV0aW5nU2NoZWR1bGVySWRUb01ldGFkYXRhS2V5LFxuICAgIGR1cmF0aW9uRnJvbVN0cmluZyxcbiAgICBkdXJhdGlvblRvU3RyaW5nLFxuICAgIGR1cmF0aW9uU3RyaW5nVG9NaW51dGVzLFxuICAgIG5ld0J1c2luZXNzQ2VudGVyQXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllcyxcbiAgICBuZXdTYWxlc0NlbnRlckFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMsXG4gICAgbmV3UGFydG5lckNlbnRlckFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMsXG4gICAgQXBwbGljYXRpb25Db250ZXh0UHJvcGVydGllc1NldCxcbiAgICBCdXNpbmVzc0NlbnRlckFwcGxpY2F0aW9uQ29udGV4dFByb3BlcnRpZXMsXG4gICAgU2FsZXNDZW50ZXJBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzLFxuICAgIFBhcnRuZXJDZW50ZXJBcHBsaWNhdGlvbkNvbnRleHRQcm9wZXJ0aWVzLFxuICAgIEtub3duQ2FsZW5kYXJBcHBsaWNhdGlvbkNvbnRleHRLZXlzLFxuICAgIEtub3duQ2FsZW5kYXJFeHRlcm5hbEludGVncmF0aW9ucyxcbiAgICBIb3N0VXNlcixcbn0gZnJvbSAnLi9zaGFyZWQvaW5kZXgnXG5leHBvcnQge1xuICAgIFRpbWVSYW5nZUludGVyZmFjZSBhcyBUaW1lUmFuZ2UsXG4gICAgVGltZU9mRGF5SW50ZXJmYWNlIGFzIFRpbWVPZkRheSxcbiAgICBUaW1lWm9uZUludGVyZmFjZSBhcyBUaW1lWm9uZSxcbiAgICBMaXN0Qm9va2VkTWVldGluZ3NSZXF1ZXN0RmlsdGVyc0ludGVyZmFjZSBhcyBMaXN0Qm9va2VkTWVldGluZ3NSZXF1ZXN0RmlsdGVycyxcbiAgICBMaXN0QXZhaWxhYmlsaXR5UmVxdWVzdEZpbHRlcnNJbnRlcmZhY2UgYXMgTGlzdEF2YWlsYWJpbGl0eVJlcXVlc3RGaWx0ZXJzLFxuICAgIFBhZ2VkUmVxdWVzdE9wdGlvbnNJbnRlcmZhY2UgYXMgUGFnZWRSZXF1ZXN0T3B0aW9ucyxcbiAgICBEYXRlUmFuZ2VJbnRlcmZhY2UgYXMgRGF0ZVJhbmdlLFxuICAgIENyZWF0ZUNhbGVuZGFyUmVxdWVzdEludGVyZmFjZSxcbiAgICBDcmVhdGVDYWxlbmRhclJlc3BvbnNlSW50ZXJmYWNlLFxuICAgIFVwZGF0ZUNhbGVuZGFyUmVxdWVzdEludGVyZmFjZSxcbiAgICBBdHRhY2htZW50SW50ZXJmYWNlLFxuICAgIEdvb2dsZU1lZXRNZWV0aW5nQXR0ZW5kZWVJbnRlcmZhY2UsXG59IGZyb20gJy4vX2ludGVybmFsL2ludGVyZmFjZXMvaW5kZXgnXG4iXX0=
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
// *********************************
|
|
2
|
-
// Code generated by sdkgen - edited by you!
|
|
3
|
-
//
|
|
4
|
-
// This module contains any hand-written services or other things your module
|
|
5
|
-
// needs to share with applications that use it.
|
|
6
|
-
// *********************************
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { MeetingsInternalModule } from './_internal/meetings.module';
|
|
9
|
-
import { MeetingsService } from './meetings.service';
|
|
10
|
-
export class MeetingsModule {
|
|
11
|
-
}
|
|
12
|
-
MeetingsModule.decorators = [
|
|
13
|
-
{ type: NgModule, args: [{
|
|
14
|
-
imports: [
|
|
15
|
-
MeetingsInternalModule,
|
|
16
|
-
],
|
|
17
|
-
providers: [
|
|
18
|
-
MeetingsService
|
|
19
|
-
]
|
|
20
|
-
},] }
|
|
21
|
-
];
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVldGluZ3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6Ii9jb2RlZnJlc2gvdm9sdW1lL21lZXRpbmdzL3Nka3MvdHlwZXNjcmlwdC9zcmMvbWVldGluZ3Nfc2RrL3NyYy8iLCJzb3VyY2VzIjpbImxpYi9tZWV0aW5ncy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0NBQW9DO0FBQ3BDLDRDQUE0QztBQUM1QyxFQUFFO0FBQ0YsNkVBQTZFO0FBQzdFLGdEQUFnRDtBQUNoRCxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFVckQsTUFBTSxPQUFPLGNBQWM7OztZQVIxQixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNMLHNCQUFzQjtpQkFDekI7Z0JBQ0QsU0FBUyxFQUFFO29CQUNQLGVBQWU7aUJBQ2xCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbi8vIENvZGUgZ2VuZXJhdGVkIGJ5IHNka2dlbiAtIGVkaXRlZCBieSB5b3UhXG4vL1xuLy8gVGhpcyBtb2R1bGUgY29udGFpbnMgYW55IGhhbmQtd3JpdHRlbiBzZXJ2aWNlcyBvciBvdGhlciB0aGluZ3MgeW91ciBtb2R1bGVcbi8vIG5lZWRzIHRvIHNoYXJlIHdpdGggYXBwbGljYXRpb25zIHRoYXQgdXNlIGl0LlxuLy8gKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWVldGluZ3NJbnRlcm5hbE1vZHVsZSB9IGZyb20gJy4vX2ludGVybmFsL21lZXRpbmdzLm1vZHVsZSc7XG5pbXBvcnQgeyBNZWV0aW5nc1NlcnZpY2UgfSBmcm9tICcuL21lZXRpbmdzLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgICBNZWV0aW5nc0ludGVybmFsTW9kdWxlLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICAgIE1lZXRpbmdzU2VydmljZVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1lZXRpbmdzTW9kdWxlIHt9XG4iXX0=
|