@idea-ionic/agenda 5.28.1 → 5.29.2
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/README.md +3 -10
- package/bundles/idea-ionic-agenda.umd.js +39 -24
- package/bundles/idea-ionic-agenda.umd.js.map +1 -1
- package/bundles/idea-ionic-agenda.umd.min.js +2 -2
- package/bundles/idea-ionic-agenda.umd.min.js.map +1 -1
- package/environment.d.ts +16 -0
- package/esm2015/environment.js +17 -0
- package/esm2015/environment.ngsummary.json +1 -0
- package/esm2015/node_modules/idea-toolbox/dist/index.ngsummary.json +1 -1
- package/esm2015/node_modules/idea-toolbox/dist/{APIRequestLog.model.ngsummary.json → src/APIRequestLog.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCAttachedResource.model.ngsummary.json → src/RCAttachedResource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCConfiguredFolder.model.ngsummary.json → src/RCConfiguredFolder.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCFolder.model.ngsummary.json → src/RCFolder.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCResource.model.ngsummary.json → src/RCResource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{address.model.ngsummary.json → src/address.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{amazonTranslateLanguages.enum.ngsummary.json → src/amazonTranslateLanguages.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{announcement.model.ngsummary.json → src/announcement.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{appointment.model.ngsummary.json → src/appointment.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{attachment.model.ngsummary.json → src/attachment.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{booleanChoices.enum.ngsummary.json → src/booleanChoices.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{cacheable.model.ngsummary.json → src/cacheable.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{cacheableResource.model.ngsummary.json → src/cacheableResource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{calendar.model.ngsummary.json → src/calendar.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{check.model.ngsummary.json → src/check.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{clientInfo.model.ngsummary.json → src/clientInfo.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/src/cognitoUser.model.ngsummary.json +1 -0
- package/esm2015/node_modules/idea-toolbox/dist/{contactRequest.model.ngsummary.json → src/contactRequest.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{contacts.model.ngsummary.json → src/contacts.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{countries.enum.ngsummary.json → src/countries.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customBlockMeta.model.ngsummary.json → src/customBlockMeta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customFieldMeta.model.ngsummary.json → src/customFieldMeta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customFieldTypes.enum.ngsummary.json → src/customFieldTypes.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customSectionMeta.model.ngsummary.json → src/customSectionMeta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{delta.model.ngsummary.json → src/delta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{emailChangeRequest.model.ngsummary.json → src/emailChangeRequest.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{emailData.model.ngsummary.json → src/emailData.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{epoch.ngsummary.json → src/epoch.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{errorReport.model.ngsummary.json → src/errorReport.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{errorWhitelisted.model.ngsummary.json → src/errorWhitelisted.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/src/excelRow.model.ngsummary.json +1 -0
- package/esm2015/node_modules/idea-toolbox/dist/{invitation.model.ngsummary.json → src/invitation.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{ionicons.enum.ngsummary.json → src/ionicons.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{label.model.ngsummary.json → src/label.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{labelVariable.model.ngsummary.json → src/labelVariable.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{languages.enum.ngsummary.json → src/languages.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{languages.model.ngsummary.json → src/languages.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{limitCounter.model.ngsummary.json → src/limitCounter.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{markdown.ngsummary.json → src/markdown.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{membership.model.ngsummary.json → src/membership.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{notification.model.ngsummary.json → src/notification.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{pdfTemplate.model.ngsummary.json → src/pdfTemplate.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{projectPlan.model.ngsummary.json → src/projectPlan.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{projectSubscription.model.ngsummary.json → src/projectSubscription.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{pushNotificationsDevice.model.ngsummary.json → src/pushNotificationsDevice.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{pushNotificationsPlatforms.enum.ngsummary.json → src/pushNotificationsPlatforms.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{resource.model.ngsummary.json → src/resource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{sentiment.enum.ngsummary.json → src/sentiment.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{signature.model.ngsummary.json → src/signature.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{signedURL.model.ngsummary.json → src/signedURL.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{stringVariable.model.ngsummary.json → src/stringVariable.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{suggestion.model.ngsummary.json → src/suggestion.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{team.model.ngsummary.json → src/team.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{teamModules.model.ngsummary.json → src/teamModules.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{timeInterval.model.ngsummary.json → src/timeInterval.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{user.model.ngsummary.json → src/user.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{utils.ngsummary.json → src/utils.ngsummary.json} +0 -0
- package/esm2015/src/calendars.service.js +8 -7
- package/fesm2015/idea-ionic-agenda.js +7 -6
- package/fesm2015/idea-ionic-agenda.js.map +1 -1
- package/idea-ionic-agenda.metadata.json +1 -1
- package/package.json +2 -2
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[null]}],"validate":[{"__symbolic":"method"}],"isAdmin":[{"__symbolic":"method"}],"isRobot":[{"__symbolic":"method"}]}}}],"symbols":[{"__symbol":0,"name":"CognitoUser","filePath":"./cognitoUser.model"}]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/esm2015/node_modules/idea-toolbox/dist/{epoch.ngsummary.json → src/epoch.ngsummary.json}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class","extends":{"__symbol":1,"members":[]},"members":{"load":[{"__symbolic":"method"}]}}}],"symbols":[{"__symbol":0,"name":"ExcelRow","filePath":"./excelRow.model"},{"__symbol":1,"name":"Resource","filePath":"./resource.model"}]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/esm2015/node_modules/idea-toolbox/dist/{utils.ngsummary.json → src/utils.ngsummary.json}
RENAMED
|
File without changes
|
|
@@ -5,6 +5,7 @@ import { Plugins } from '@capacitor/core';
|
|
|
5
5
|
const { Browser } = Plugins;
|
|
6
6
|
import { Calendar, ExternalCalendarSources, Suggestion } from 'idea-toolbox';
|
|
7
7
|
import { IDEALoadingService, IDEAAWSAPIService, IDEAMessageService, IDEATranslationsService, IDEASuggestionsComponent } from '@idea-ionic/common';
|
|
8
|
+
import { environment as env } from '@env';
|
|
8
9
|
export class IDEACalendarsService {
|
|
9
10
|
constructor(modalCtrl, alertCtrl, message, loading, API, t) {
|
|
10
11
|
this.modalCtrl = modalCtrl;
|
|
@@ -68,22 +69,22 @@ export class IDEACalendarsService {
|
|
|
68
69
|
case ExternalCalendarSources.GOOGLE:
|
|
69
70
|
url =
|
|
70
71
|
'https://accounts.google.com/o/oauth2/v2/auth?' +
|
|
71
|
-
`client_id=${encodeURIComponent(
|
|
72
|
+
`client_id=${encodeURIComponent(env.google.apiClientId)}` +
|
|
72
73
|
'&response_type=code' +
|
|
73
|
-
`&redirect_uri=${encodeURIComponent(
|
|
74
|
+
`&redirect_uri=${encodeURIComponent(env.idea.app.url.concat('/echo/google-calendars-integration'))}` +
|
|
74
75
|
'&include_granted_scopes=true' +
|
|
75
76
|
'&access_type=offline&prompt=consent' +
|
|
76
|
-
`&scope=${encodeURIComponent(
|
|
77
|
+
`&scope=${encodeURIComponent(env.google.apiScope)}` +
|
|
77
78
|
`&state=${encodeURIComponent(cal.calendarId)}`;
|
|
78
79
|
break;
|
|
79
80
|
case ExternalCalendarSources.MICROSOFT:
|
|
80
81
|
url =
|
|
81
82
|
'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?' +
|
|
82
|
-
`client_id=${encodeURIComponent(
|
|
83
|
+
`client_id=${encodeURIComponent(env.microsoft.apiClientId)}` +
|
|
83
84
|
'&response_type=code' +
|
|
84
|
-
`&redirect_uri=${encodeURIComponent(
|
|
85
|
+
`&redirect_uri=${encodeURIComponent(env.idea.app.url.concat('/echo/microsoft-calendars-integration'))}` +
|
|
85
86
|
'&response_mode=query' +
|
|
86
|
-
`&scope=${encodeURIComponent(
|
|
87
|
+
`&scope=${encodeURIComponent(env.microsoft.apiScope)}` +
|
|
87
88
|
`&state=${encodeURIComponent(cal.calendarId)}`;
|
|
88
89
|
break;
|
|
89
90
|
}
|
|
@@ -205,4 +206,4 @@ IDEACalendarsService.ctorParameters = () => [
|
|
|
205
206
|
{ type: IDEAAWSAPIService },
|
|
206
207
|
{ type: IDEATranslationsService }
|
|
207
208
|
];
|
|
208
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2FnZW5kYS9zcmMvY2FsZW5kYXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBZ0I1QixNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLFlBQ1MsU0FBMEIsRUFDMUIsU0FBMEIsRUFDMUIsT0FBMkIsRUFDM0IsT0FBMkIsRUFDM0IsR0FBc0IsRUFDdEIsQ0FBMEI7UUFMMUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsY0FBUyxHQUFULFNBQVMsQ0FBaUI7UUFDMUIsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsWUFBTyxHQUFQLE9BQU8sQ0FBb0I7UUFDM0IsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFDdEIsTUFBQyxHQUFELENBQUMsQ0FBeUI7SUFDaEMsQ0FBQztJQUtHLGNBQWMsQ0FBQyxPQUFnQztRQUNwRCxRQUFRLE9BQU8sRUFBRTtZQUNmLEtBQUssdUJBQXVCLENBQUMsTUFBTTtnQkFDakMsT0FBTyxhQUFhLENBQUM7WUFDdkIsS0FBSyx1QkFBdUIsQ0FBQyxTQUFTO2dCQUNwQyxPQUFPLGNBQWMsQ0FB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SUFLTSxZQUFZLENBQUMsR0FBYTtRQUMvQixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFJTyxrQkFBa0IsQ0FBQyxHQUFhLEVBQUUsSUFBMkI7UUFFbkUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUM5QyxJQUFJLEVBQUUsSUFBSTtZQUNWLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVTtZQUMxQixJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRTtTQUM1RCxDQUFDO2FBQ0MsSUFBSSxDQUFDLENBQUMsR0FBUSxFQUFFLEVBQUU7WUFDakIsSUFBSSxHQUFHLENBQUMsUUFBUTtnQkFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDOztnQkFDaEQsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUM7YUFDRCxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3QixDQUFDOzs7WUF4T0YsVUFBVTs7O1lBekJlLGVBQWU7WUFBaEMsZUFBZTtZQU90QixrQkFBa0I7WUFGbEIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUVqQix1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBbGVydENvbnRyb2xsZXIsIE1vZGFsQ29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IFBsdWdpbnMgfSBmcm9tICdAY2FwYWNpdG9yL2NvcmUnO1xuY29uc3QgeyBCcm93c2VyIH0gPSBQbHVnaW5zO1xuaW1wb3J0IHsgQ2FsZW5kYXIsIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLCBTdWdnZXN0aW9uIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7XG4gIElERUFMb2FkaW5nU2VydmljZSxcbiAgSURFQUFXU0FQSVNlcnZpY2UsXG4gIElERUFNZXNzYWdlU2VydmljZSxcbiAgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UsXG4gIElERUFTdWdnZXN0aW9uc0NvbXBvbmVudFxufSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG4vLyBmcm9tIGlkZWEtY29uZmlnLmpzXG5kZWNsYXJlIGNvbnN0IElERUFfTUlDUk9TT0ZUX0FQSV9DTElFTlRfSUQ6IHN0cmluZztcbmRlY2xhcmUgY29uc3QgSURFQV9NSUNST1NPRlRfQVBJX1NDT1BFOiBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IElERUFfR09PR0xFX0FQSV9DTElFTlRfSUQ6IHN0cmluZztcbmRlY2xhcmUgY29uc3QgSURFQV9HT09HTEVfQVBJX1NDT1BFOiBzdHJpbmc7XG5kZWNsYXJlIGNvbnN0IElERUFfQVBQX1VSTDogc3RyaW5nO1xuXG4vKipcbiAqIE5vdGU6IHRvIHRlc3QgbG9jYWxseSwgeW91IG5lZWQgdG8gdGVtcG9yYXJpbHkgY2hhbmdlIHRoZSByZWRpcmVjdCBVUkk6XG4gKiAgLSBpbiB0aGUgbGFtYmRhIGBpZGVhX2NhbGVuZGFyc2AsIGUuZy4gYFNDQVJMRVRUX1VSTGA7XG4gKiAgLSBpbiB0aGUgY2xpZW50IGNvbmZpZyBmaWxlOiBgQVBQX1VSTGAuXG4gKiBJbiBib3RoIGNhc2VzLCB0aGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byBgaHR0cDovL2xvY2FsaG9zdDo4MTAwYCAob3IgYWNjb3JkaW5nIHRvIHRoZSBsb2NhbCBVUkwpLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSURFQUNhbGVuZGFyc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgcHVibGljIGFsZXJ0Q3RybDogQWxlcnRDb250cm9sbGVyLFxuICAgIHB1YmxpYyBtZXNzYWdlOiBJREVBTWVzc2FnZVNlcnZpY2UsXG4gICAgcHVibGljIGxvYWRpbmc6IElERUFMb2FkaW5nU2VydmljZSxcbiAgICBwdWJsaWMgQVBJOiBJREVBQVdTQVBJU2VydmljZSxcbiAgICBwdWJsaWMgdDogSURFQVRyYW5zbGF0aW9uc1NlcnZpY2VcbiAgKSB7fVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGlvbi1pY29uIG9mIGFuIGV4dGVybmFsIHNlcnZpY2UgZnJvbSBpdHMgbmFtZS5cbiAgICovXG4gIHB1YmxpYyBnZXRTZXJ2aWNlSWNvbihzZXJ2aWNlOiBFeHRlcm5hbENhbGVuZGFyU291cmNlcyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChzZXJ2aWNlKSB7XG4gICAgICBjYXNlIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLkdPT0dMRTpcbiAgICAgICAgcmV0dXJuICdsb2dvLWdvb2dsZSc7XG4gICAgICBjYXNlIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLk1JQ1JPU09GVDpcbiAgICAgICAgcmV0dXJuICdsb2dvLXdpbmRvd3MnO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdoZWxwJztcbiAgICB9XG4gIH1cbiAgLyoqXG4gICAqIEdldCB0aGUgYmFzZSBVUkwgZm9yIEFQSSByZXF1ZXN0IChzaGFyZWQvcHJpdmF0ZSBjYWxlbmRhcikuXG4gICAqL1xuICBwdWJsaWMgZ2V0UmVxdWVzdFVSTChjYWxlbmRhcjogQ2FsZW5kYXIpOiBzdHJpbmcge1xuICAgIHJldHVybiAoY2FsZW5kYXIudGVhbUlkID8gYHRlYW1zLyR7Y2FsZW5kYXIudGVhbUlkfS9gIDogJycpLmNvbmNhdCgnY2FsZW5kYXJzJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgbmV3IGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIHBvc3RDYWxlbmRhcihjYWw6IENhbGVuZGFyKTogUHJvbWlzZTxDYWxlbmRhcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLkFQSS5wb3N0UmVzb3VyY2UodGhpcy5nZXRSZXF1ZXN0VVJMKGNhbCksIHsgaWRlYTogdHJ1ZSwgYm9keTogY2FsIH0pXG4gICAgICAgIC50aGVuKChyZXM6IENhbGVuZGFyKSA9PiByZXNvbHZlKG5ldyBDYWxlbmRhcihyZXMpKSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIFVwZGF0ZSBhbiBleGlzdGluZyBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBwdXRDYWxlbmRhcihjYWw6IENhbGVuZGFyKTogUHJvbWlzZTxDYWxlbmRhcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLkFQSS5wdXRSZXNvdXJjZSh0aGlzLmdldFJlcXVlc3RVUkwoY2FsKSwgeyBpZGVhOiB0cnVlLCByZXNvdXJjZUlkOiBjYWwuY2FsZW5kYXJJZCwgYm9keTogY2FsIH0pXG4gICAgICAgIC50aGVuKChyZXM6IENhbGVuZGFyKSA9PiByZXNvbHZlKG5ldyBDYWxlbmRhcihyZXMpKSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIERlbGV0ZSBhIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIGRlbGV0ZUNhbGVuZGFyKGNhbDogQ2FsZW5kYXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5BUEkuZGVsZXRlUmVzb3VyY2UodGhpcy5nZXRSZXF1ZXN0VVJMKGNhbCksIHsgaWRlYTogdHJ1ZSwgcmVzb3VyY2VJZDogY2FsLmNhbGVuZGFySWQgfSlcbiAgICAgICAgLnRoZW4oKCkgPT4gcmVzb2x2ZSgpKVxuICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogQXNzb2NpYXRlIGFuIGV4dGVybmFsIGNhbGVuZGFyIHdpdGggdGhlIGdpdmVuIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIHNldEV4dGVybmFsQ2FsZW5kYXIoY2FsOiBDYWxlbmRhciwgZXh0ZXJuYWxJZDogc3RyaW5nKTogUHJvbWlzZTxDYWxlbmRhcj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICB0aGlzLkFQSS5wYXRjaFJlc291cmNlKHRoaXMuZ2V0UmVxdWVzdFVSTChjYWwpLCB7XG4gICAgICAgIGlkZWE6IHRydWUsXG4gICAgICAgIHJlc291cmNlSWQ6IGNhbC5jYWxlbmRhcklkLFxuICAgICAgICBib2R5OiB7IGFjdGlvbjogJ1NFVF9FWFRFUk5BTF9DQUxFTkRBUicsIGV4dGVybmFsSWQgfVxuICAgICAgfSlcbiAgICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUobmV3IENhbGVuZGFyKHJlcykpKVxuICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW5rIHRoZSBjYWxlbmRhciB3aXRoIHRoZSBjaG9zZW4gZXh0ZXJuYWwgc2VydmljZSAoYXV0aCBmbG93KS5cbiAgICovXG4gIHB1YmxpYyBsaW5rRXh0U2VydmljZShjYWw6IENhbGVuZGFyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGlmICghY2FsLmV4dGVybmFsKSByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcignTk9UX0VYVEVSTkFMJykpO1xuICAgICAgbGV0IHVybDogc3RyaW5nO1xuICAgICAgc3dpdGNoIChjYWwuZXh0ZXJuYWwuc2VydmljZSkge1xuICAgICAgICBjYXNlIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLkdPT0dMRTpcbiAgICAgICAgICB1cmwgPVxuICAgICAgICAgICAgJ2h0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi92Mi9hdXRoPycgK1xuICAgICAgICAgICAgYGNsaWVudF9pZD0ke2VuY29kZVVSSUNvbXBvbmVudChJREVBX0dPT0dMRV9BUElfQ0xJRU5UX0lEKX1gICtcbiAgICAgICAgICAgICcmcmVzcG9uc2VfdHlwZT1jb2RlJyArXG4gICAgICAgICAgICBgJnJlZGlyZWN0X3VyaT0ke2VuY29kZVVSSUNvbXBvbmVudChJREVBX0FQUF9VUkwuY29uY2F0KCcvZWNoby9nb29nbGUtY2FsZW5kYXJzLWludGVncmF0aW9uJykpfWAgK1xuICAgICAgICAgICAgJyZpbmNsdWRlX2dyYW50ZWRfc2NvcGVzPXRydWUnICtcbiAgICAgICAgICAgICcmYWNjZXNzX3R5cGU9b2ZmbGluZSZwcm9tcHQ9Y29uc2VudCcgK1xuICAgICAgICAgICAgYCZzY29wZT0ke2VuY29kZVVSSUNvbXBvbmVudChJREVBX0dPT0dMRV9BUElfU0NPUEUpfWAgK1xuICAgICAgICAgICAgYCZzdGF0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChjYWwuY2FsZW5kYXJJZCl9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQ6XG4gICAgICAgICAgdXJsID1cbiAgICAgICAgICAgICdodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi92Mi4wL2F1dGhvcml6ZT8nICtcbiAgICAgICAgICAgIGBjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQoSURFQV9NSUNST1NPRlRfQVBJX0NMSUVOVF9JRCl9YCArXG4gICAgICAgICAgICAnJnJlc3BvbnNlX3R5cGU9Y29kZScgK1xuICAgICAgICAgICAgYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQoSURFQV9BUFBfVVJMLmNvbmNhdCgnL2VjaG8vbWljcm9zb2Z0LWNhbGVuZGFycy1pbnRlZ3JhdGlvbicpKX1gICtcbiAgICAgICAgICAgICcmcmVzcG9uc2VfbW9kZT1xdWVyeScgK1xuICAgICAgICAgICAgYCZzY29wZT0ke2VuY29kZVVSSUNvbXBvbmVudChJREVBX01JQ1JPU09GVF9BUElfU0NPUEUpfWAgK1xuICAgICAgICAgICAgYCZzdGF0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChjYWwuY2FsZW5kYXJJZCl9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIGlmICghdXJsKSByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcignSU5WQUxJRF9TRVJWSUNFJykpO1xuICAgICAgLy8gc3RhcnQgdGhlIGF1dGggZmxvdyBpbiB0aGUgYnJvd3NlclxuICAgICAgQnJvd3Nlci5vcGVuKHsgdXJsIH0pLnRoZW4oKCkgPT4ge1xuICAgICAgICAvLyBzaW5jZSB3ZSBkb24ndCBrbm93IHdoZW4vaWYgdGhlIGF1dGggZmxvdyB3aWxsIGZpbmlzaCwgd2Ugd2FpdFxuICAgICAgICB0aGlzLmFsZXJ0Q3RybFxuICAgICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgICAgaGVhZGVyOiB0aGlzLnQuXygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkxJTktJTkdfQ0FMRU5EQVInKSxcbiAgICAgICAgICAgIG1lc3NhZ2U6IHRoaXMudC5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuTElOS0lOR19DQUxFTkRBUl9DT05GSVJNX09OQ0VfRE9ORScpLFxuICAgICAgICAgICAgYmFja2Ryb3BEaXNtaXNzOiBmYWxzZSxcbiAgICAgICAgICAgIGJ1dHRvbnM6IFt7IHRleHQ6IHRoaXMudC5fKCdDT01NT04uRE9ORScpLCBoYW5kbGVyOiAoKSA9PiByZXNvbHZlKCkgfV1cbiAgICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKGFsZXJ0ID0+IGFsZXJ0LnByZXNlbnQoKSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGV4dGVybmFsIGNhbGVuZGFycyBsaXN0IG9mIHRoZSBleHRlcm5hbCBzZXJ2aWNlLlxuICAgKi9cbiAgcHVibGljIGdldEV4dGVybmFsQ2FsZW5kYXJzKGNhbDogQ2FsZW5kYXIpOiBQcm9taXNlPEV4dENhbGVuZGFyW10+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgaWYgKCFjYWwuZXh0ZXJuYWwpIHJldHVybiByZWplY3QobmV3IEVycm9yKCdOT1RfRVhURVJOQUwnKSk7XG4gICAgICAvLyBnZXQgdGhlIGFjY2VzcyB0b2tlbiB0byBtYWtlIHJlcXVlc3RzOyBpbiBjYXNlIGl0IGZhaWxzLCBwcm9jZWVkIHRvIGxpbmsgdGhlIGV4dGVybmFsIHNlcnZpY2VcbiAgICAgIHRoaXMuQVBJLnBhdGNoUmVzb3VyY2UodGhpcy5nZXRSZXF1ZXN0VVJMKGNhbCksIHtcbiAgICAgICAgaWRlYTogdHJ1ZSxcbiAgICAgICAgcmVzb3VyY2VJZDogY2FsLmNhbGVuZGFySWQsXG4gICAgICAgIGJvZHk6IHsgYWN0aW9uOiAnR0VUX0FDQ0VTU19UT0tFTicgfVxuICAgICAgfSlcbiAgICAgICAgLnRoZW4oKHJlc3VsdDogYW55KSA9PiB7XG4gICAgICAgICAgLy8gcHJlcGFyZSB0aGUgaGVhZGVycyAoYXV0aG9yaXphdGlvbikgZm9yIHRoZSByZXF1ZXN0IHRvIHRoZSBleHRlcm5hbCBzZXJ2aWNlXG4gICAgICAgICAgY29uc3QgaGVhZGVycyA9IHsgQXV0aG9yaXphdGlvbjogJ0JlYXJlciAnLmNvbmNhdChyZXN1bHQudG9rZW4pIH07XG4gICAgICAgICAgLy8gYWNxdWlyZSBhbmQgcmV0dXJuIHRoZSBjYWxlbmRhcnNcbiAgICAgICAgICBzd2l0Y2ggKGNhbC5leHRlcm5hbC5zZXJ2aWNlKSB7XG4gICAgICAgICAgICBjYXNlIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLkdPT0dMRTpcbiAgICAgICAgICAgICAgdGhpcy5BUEkucmF3UmVxdWVzdCgpXG4gICAgICAgICAgICAgICAgLmdldCgnaHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY2FsZW5kYXIvdjMvdXNlcnMvbWUvY2FsZW5kYXJMaXN0JywgeyBoZWFkZXJzIH0pXG4gICAgICAgICAgICAgICAgLnRvUHJvbWlzZSgpXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJlczogYW55KSA9PiByZXNvbHZlKHJlcy5pdGVtcy5tYXAoKGM6IGFueSkgPT4gKHsgbmFtZTogYy5zdW1tYXJ5LCBpZDogYy5pZCB9IGFzIEV4dENhbGVuZGFyKSkpKVxuICAgICAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMuTUlDUk9TT0ZUOlxuICAgICAgICAgICAgICB0aGlzLkFQSS5yYXdSZXF1ZXN0KClcbiAgICAgICAgICAgICAgICAuZ2V0KCdodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMC9tZS9jYWxlbmRhcnMnLCB7IGhlYWRlcnMgfSlcbiAgICAgICAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgICAgICAgICAudGhlbigocmVzOiBhbnkpID0+IHJlc29sdmUocmVzLnZhbHVlLm1hcCgoYzogYW55KSA9PiAoeyBuYW1lOiBjLm5hbWUsIGlkOiBjLmlkIH0gYXMgRXh0Q2FsZW5kYXIpKSkpXG4gICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogSWYgdGhlIGV4dGVybmFsIHNlcnZpY2UgaXMgbGlua2VkLCBjaG9vc2UgYW4gZXh0ZXJuYWwgY2FsZW5kYXIgYW5kIHNldCBpdCBmb3IgdGhlIGNob3NlbiBjYWxlbmRhci5cbiAgICogQHJldHVybiB0aGUgdXBkYXRlZCBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBjaG9vc2VBbmRTZXRFeHRlcm5hbENhbGVuZGFyKGNhbDogQ2FsZW5kYXIpOiBQcm9taXNlPENhbGVuZGFyPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMub3Blbk1vZGFsQW5kUGlja0V4dGVybmFsQ2FsZW5kYXIoY2FsKVxuICAgICAgICAudGhlbihleHRDYWxJZCA9PiB7XG4gICAgICAgICAgLy8gdGhlIGV4dGVybmFsIGNhbGVuZGFyIHdpbGwgYmUgc2V0IGxhdGVyIG9uXG4gICAgICAgICAgaWYgKCFleHRDYWxJZCkgcmV0dXJuIHJlc29sdmUobnVsbCk7XG4gICAgICAgICAgLy8gYW4gZXh0ZXJuYWwgY2FsZW5kYXIgd2FzIGNob3Nlbjogc2V0IGl0IHJpZ2h0IGF3YXlcbiAgICAgICAgICB0aGlzLnNldEV4dGVybmFsQ2FsZW5kYXIoY2FsLCBleHRDYWxJZClcbiAgICAgICAgICAgIC50aGVuKHJlcyA9PiByZXNvbHZlKHJlcykpXG4gICAgICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIE9wZW4gdGhlIG1vZGFsIHRvIHBpY2sgYSBjYWxlbmRhciBmcm9tIHRoZSBleHRlcm5hbCBzZXJ2aWNlLlxuICAgKiBAcmV0dXJuIHRoZSBpZCBvZiB0aGUgZXh0ZXJuYWwgY2FsZW5kYXIuXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIG9wZW5Nb2RhbEFuZFBpY2tFeHRlcm5hbENhbGVuZGFyKGNhbDogQ2FsZW5kYXIpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGF3YWl0IHRoaXMubG9hZGluZy5zaG93KCk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuZ2V0RXh0ZXJuYWxDYWxlbmRhcnMoY2FsKVxuICAgICAgICAudGhlbigoZXh0Q2FsczogRXh0Q2FsZW5kYXJbXSkgPT4ge1xuICAgICAgICAgIGlmICghZXh0Q2Fscy5sZW5ndGgpIHJldHVybiByZWplY3QobmV3IEVycm9yKCdOT19FWFRFUk5BTF9DQUxFTkRBUlMnKSk7XG4gICAgICAgICAgLy8gbGV0IHRoZSB1c2VyIHRvIGNob29zZSB0aGUgZXh0ZXJuYWwgY2FsZW5kYXIgdG8gYXNzb2NpYXRlXG4gICAgICAgICAgdGhpcy5tb2RhbEN0cmxcbiAgICAgICAgICAgIC5jcmVhdGUoe1xuICAgICAgICAgICAgICBjb21wb25lbnQ6IElERUFTdWdnZXN0aW9uc0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgY29tcG9uZW50UHJvcHM6IHtcbiAgICAgICAgICAgICAgICBkYXRhOiBleHRDYWxzLm1hcChjID0+IG5ldyBTdWdnZXN0aW9uKHsgdmFsdWU6IGMuaWQsIG5hbWU6IGMubmFtZSB9KSksXG4gICAgICAgICAgICAgICAgc2VhcmNoUGxhY2Vob2xkZXI6IHRoaXMudC5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuQ0hPT1NFX0FOX0VYVEVSTkFMX0NBTEVOREFSX1RPX0xJTksnKSxcbiAgICAgICAgICAgICAgICBzb3J0RGF0YTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoaWRlSWRGcm9tVUk6IHRydWUsXG4gICAgICAgICAgICAgICAgaGlkZUNsZWFyQnV0dG9uOiB0cnVlLFxuICAgICAgICAgICAgICAgIG11c3RDaG9vc2U6IHRydWVcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgYmFja2Ryb3BEaXNtaXNzOiBmYWxzZVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC50aGVuKG1vZGFsID0+IHtcbiAgICAgICAgICAgICAgbW9kYWwub25EaWREaXNtaXNzKCkudGhlbihyZXMgPT4gcmVzb2x2ZShyZXMuZGF0YSA/IHJlcy5kYXRhLnZhbHVlIDogbnVsbCkpO1xuICAgICAgICAgICAgICBtb2RhbC5wcmVzZW50KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSlcbiAgICAgICAgLmZpbmFsbHkoKCkgPT4gdGhpcy5sb2FkaW5nLmhpZGUoKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogRmlyc3Qgc3luYyBvZiB0aGUgZXh0ZW5hbCBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBzeW5jQ2FsZW5kYXIoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB0aGlzLnN5bmNDYWxlbmRhckhlbHBlcihjYWwsIGVyciA9PiAoZXJyID8gcmVqZWN0KGVycikgOiByZXNvbHZlKCkpKSk7XG4gIH1cbiAgLyoqXG4gICAqIEhlbHBlciB0byByZWN1cnNpdmVseSBzeW5jIGFuIHRoZSBleHRlbmFsIGNhbGVuZGFyLlxuICAgKi9cbiAgcHJpdmF0ZSBzeW5jQ2FsZW5kYXJIZWxwZXIoY2FsOiBDYWxlbmRhciwgZG9uZTogKGVycj86IEVycm9yKSA9PiB2b2lkKSB7XG4gICAgLy8gdGhpcyBpcyBhIHJlY3Vyc2l2ZSBvcGVyYXRpb246IHRoZSBBUEkgcmV0dXJucyBpZiB0aGUgc3luYyBoYXMgdG8gY29udGludWUgb3IgaXQgZmluaXNoZWRcbiAgICB0aGlzLkFQSS5wYXRjaFJlc291cmNlKHRoaXMuZ2V0UmVxdWVzdFVSTChjYWwpLCB7XG4gICAgICBpZGVhOiB0cnVlLFxuICAgICAgcmVzb3VyY2VJZDogY2FsLmNhbGVuZGFySWQsXG4gICAgICBib2R5OiB7IGFjdGlvbjogJ1NZTkNfRVhURVJOQUxfQ0FMRU5EQVInLCBmaXJzdFN5bmM6IHRydWUgfVxuICAgIH0pXG4gICAgICAudGhlbigocmVzOiBhbnkpID0+IHtcbiAgICAgICAgaWYgKHJlcy5tb3JlRGF0YSkgdGhpcy5zeW5jQ2FsZW5kYXJIZWxwZXIoY2FsLCBkb25lKTtcbiAgICAgICAgZWxzZSBkb25lKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVyciA9PiBkb25lKGVycikpO1xuICB9XG59XG5cbi8qKlxuICogSGVscGVyIHN0cnVjdHVyZSB0byBkZWZpbmUgZXh0ZXJuYWwgc2VydmljZXMnIGNhbGVuZGFycyAoYmFzaWMgaW5mbykuXG4gKi9cbmludGVyZmFjZSBFeHRDYWxlbmRhciB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbn1cbiJdfQ==
|
|
209
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXJzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2FnZW5kYS9zcmMvY2FsZW5kYXJzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE9BQU8sQ0FBQztBQUM1QixPQUFPLEVBQUUsUUFBUSxFQUFFLHVCQUF1QixFQUFFLFVBQVUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUM3RSxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN6QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxXQUFXLElBQUksR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBUzFDLE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsWUFDUyxTQUEwQixFQUMxQixTQUEwQixFQUMxQixPQUEyQixFQUMzQixPQUEyQixFQUMzQixHQUFzQixFQUN0QixDQUEwQjtRQUwxQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUMxQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFvQjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QixNQUFDLEdBQUQsQ0FBQyxDQUF5QjtJQUNoQyxDQUFDO0lBS0csY0FBYyxDQUFDLE9BQWdDO1FBQ3BELFFBQVEsT0FBTyxFQUFFO1lBQ2YsS0FBSyx1QkFBdUIsQ0FBQyxNQUFNO2dCQUNqQyxPQUFPLGFBQWEsQ0FB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QUFoQyxlQUFlO1lBT3RCLGtCQUFrQjtZQUZsQixrQkFBa0I7WUFDbEIsaUJBQWlCO1lBRWpCLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgUGx1Z2lucyB9IGZyb20gJ0BjYXBhY2l0b3IvY29yZSc7XG5jb25zdCB7IEJyb3dzZXIgfSA9IFBsdWdpbnM7XG5pbXBvcnQgeyBDYWxlbmRhciwgRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMsIFN1Z2dlc3Rpb24gfSBmcm9tICdpZGVhLXRvb2xib3gnO1xuaW1wb3J0IHtcbiAgSURFQUxvYWRpbmdTZXJ2aWNlLFxuICBJREVBQVdTQVBJU2VydmljZSxcbiAgSURFQU1lc3NhZ2VTZXJ2aWNlLFxuICBJREVBVHJhbnNsYXRpb25zU2VydmljZSxcbiAgSURFQVN1Z2dlc3Rpb25zQ29tcG9uZW50XG59IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCBhcyBlbnYgfSBmcm9tICdAZW52JztcblxuLyoqXG4gKiBOb3RlOiB0byB0ZXN0IGxvY2FsbHksIHlvdSBuZWVkIHRvIHRlbXBvcmFyaWx5IGNoYW5nZSB0aGUgcmVkaXJlY3QgVVJJOlxuICogIC0gaW4gdGhlIGxhbWJkYSBgaWRlYV9jYWxlbmRhcnNgLCBlLmcuIGBTQ0FSTEVUVF9VUkxgO1xuICogIC0gaW4gdGhlIGNsaWVudCBjb25maWcgZmlsZTogYEFQUF9VUkxgLlxuICogSW4gYm90aCBjYXNlcywgdGhlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gYGh0dHA6Ly9sb2NhbGhvc3Q6ODEwMGAgKG9yIGFjY29yZGluZyB0byB0aGUgbG9jYWwgVVJMKS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIElERUFDYWxlbmRhcnNTZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG1vZGFsQ3RybDogTW9kYWxDb250cm9sbGVyLFxuICAgIHB1YmxpYyBhbGVydEN0cmw6IEFsZXJ0Q29udHJvbGxlcixcbiAgICBwdWJsaWMgbWVzc2FnZTogSURFQU1lc3NhZ2VTZXJ2aWNlLFxuICAgIHB1YmxpYyBsb2FkaW5nOiBJREVBTG9hZGluZ1NlcnZpY2UsXG4gICAgcHVibGljIEFQSTogSURFQUFXU0FQSVNlcnZpY2UsXG4gICAgcHVibGljIHQ6IElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlXG4gICkge31cblxuICAvKipcbiAgICogR2V0IHRoZSBpb24taWNvbiBvZiBhbiBleHRlcm5hbCBzZXJ2aWNlIGZyb20gaXRzIG5hbWUuXG4gICAqL1xuICBwdWJsaWMgZ2V0U2VydmljZUljb24oc2VydmljZTogRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoc2VydmljZSkge1xuICAgICAgY2FzZSBFeHRlcm5hbENhbGVuZGFyU291cmNlcy5HT09HTEU6XG4gICAgICAgIHJldHVybiAnbG9nby1nb29nbGUnO1xuICAgICAgY2FzZSBFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQ6XG4gICAgICAgIHJldHVybiAnbG9nby13aW5kb3dzJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnaGVscCc7XG4gICAgfVxuICB9XG4gIC8qKlxuICAgKiBHZXQgdGhlIGJhc2UgVVJMIGZvciBBUEkgcmVxdWVzdCAoc2hhcmVkL3ByaXZhdGUgY2FsZW5kYXIpLlxuICAgKi9cbiAgcHVibGljIGdldFJlcXVlc3RVUkwoY2FsZW5kYXI6IENhbGVuZGFyKTogc3RyaW5nIHtcbiAgICByZXR1cm4gKGNhbGVuZGFyLnRlYW1JZCA/IGB0ZWFtcy8ke2NhbGVuZGFyLnRlYW1JZH0vYCA6ICcnKS5jb25jYXQoJ2NhbGVuZGFycycpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBwb3N0Q2FsZW5kYXIoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8Q2FsZW5kYXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5BUEkucG9zdFJlc291cmNlKHRoaXMuZ2V0UmVxdWVzdFVSTChjYWwpLCB7IGlkZWE6IHRydWUsIGJvZHk6IGNhbCB9KVxuICAgICAgICAudGhlbigocmVzOiBDYWxlbmRhcikgPT4gcmVzb2x2ZShuZXcgQ2FsZW5kYXIocmVzKSkpXG4gICAgICAgIC5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBVcGRhdGUgYW4gZXhpc3RpbmcgY2FsZW5kYXIuXG4gICAqL1xuICBwdWJsaWMgcHV0Q2FsZW5kYXIoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8Q2FsZW5kYXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5BUEkucHV0UmVzb3VyY2UodGhpcy5nZXRSZXF1ZXN0VVJMKGNhbCksIHsgaWRlYTogdHJ1ZSwgcmVzb3VyY2VJZDogY2FsLmNhbGVuZGFySWQsIGJvZHk6IGNhbCB9KVxuICAgICAgICAudGhlbigocmVzOiBDYWxlbmRhcikgPT4gcmVzb2x2ZShuZXcgQ2FsZW5kYXIocmVzKSkpXG4gICAgICAgIC5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xuICAgIH0pO1xuICB9XG4gIC8qKlxuICAgKiBEZWxldGUgYSBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBkZWxldGVDYWxlbmRhcihjYWw6IENhbGVuZGFyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHRoaXMuQVBJLmRlbGV0ZVJlc291cmNlKHRoaXMuZ2V0UmVxdWVzdFVSTChjYWwpLCB7IGlkZWE6IHRydWUsIHJlc291cmNlSWQ6IGNhbC5jYWxlbmRhcklkIH0pXG4gICAgICAgIC50aGVuKCgpID0+IHJlc29sdmUoKSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqIEFzc29jaWF0ZSBhbiBleHRlcm5hbCBjYWxlbmRhciB3aXRoIHRoZSBnaXZlbiBjYWxlbmRhci5cbiAgICovXG4gIHB1YmxpYyBzZXRFeHRlcm5hbENhbGVuZGFyKGNhbDogQ2FsZW5kYXIsIGV4dGVybmFsSWQ6IHN0cmluZyk6IFByb21pc2U8Q2FsZW5kYXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5BUEkucGF0Y2hSZXNvdXJjZSh0aGlzLmdldFJlcXVlc3RVUkwoY2FsKSwge1xuICAgICAgICBpZGVhOiB0cnVlLFxuICAgICAgICByZXNvdXJjZUlkOiBjYWwuY2FsZW5kYXJJZCxcbiAgICAgICAgYm9keTogeyBhY3Rpb246ICdTRVRfRVhURVJOQUxfQ0FMRU5EQVInLCBleHRlcm5hbElkIH1cbiAgICAgIH0pXG4gICAgICAgIC50aGVuKHJlcyA9PiByZXNvbHZlKG5ldyBDYWxlbmRhcihyZXMpKSlcbiAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogTGluayB0aGUgY2FsZW5kYXIgd2l0aCB0aGUgY2hvc2VuIGV4dGVybmFsIHNlcnZpY2UgKGF1dGggZmxvdykuXG4gICAqL1xuICBwdWJsaWMgbGlua0V4dFNlcnZpY2UoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIWNhbC5leHRlcm5hbCkgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoJ05PVF9FWFRFUk5BTCcpKTtcbiAgICAgIGxldCB1cmw6IHN0cmluZztcbiAgICAgIHN3aXRjaCAoY2FsLmV4dGVybmFsLnNlcnZpY2UpIHtcbiAgICAgICAgY2FzZSBFeHRlcm5hbENhbGVuZGFyU291cmNlcy5HT09HTEU6XG4gICAgICAgICAgdXJsID1cbiAgICAgICAgICAgICdodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdjIvYXV0aD8nICtcbiAgICAgICAgICAgIGBjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQoZW52Lmdvb2dsZS5hcGlDbGllbnRJZCl9YCArXG4gICAgICAgICAgICAnJnJlc3BvbnNlX3R5cGU9Y29kZScgK1xuICAgICAgICAgICAgYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQoZW52LmlkZWEuYXBwLnVybC5jb25jYXQoJy9lY2hvL2dvb2dsZS1jYWxlbmRhcnMtaW50ZWdyYXRpb24nKSl9YCArXG4gICAgICAgICAgICAnJmluY2x1ZGVfZ3JhbnRlZF9zY29wZXM9dHJ1ZScgK1xuICAgICAgICAgICAgJyZhY2Nlc3NfdHlwZT1vZmZsaW5lJnByb21wdD1jb25zZW50JyArXG4gICAgICAgICAgICBgJnNjb3BlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGVudi5nb29nbGUuYXBpU2NvcGUpfWAgK1xuICAgICAgICAgICAgYCZzdGF0ZT0ke2VuY29kZVVSSUNvbXBvbmVudChjYWwuY2FsZW5kYXJJZCl9YDtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQ6XG4gICAgICAgICAgdXJsID1cbiAgICAgICAgICAgICdodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vY29tbW9uL29hdXRoMi92Mi4wL2F1dGhvcml6ZT8nICtcbiAgICAgICAgICAgIGBjbGllbnRfaWQ9JHtlbmNvZGVVUklDb21wb25lbnQoZW52Lm1pY3Jvc29mdC5hcGlDbGllbnRJZCl9YCArXG4gICAgICAgICAgICAnJnJlc3BvbnNlX3R5cGU9Y29kZScgK1xuICAgICAgICAgICAgYCZyZWRpcmVjdF91cmk9JHtlbmNvZGVVUklDb21wb25lbnQoZW52LmlkZWEuYXBwLnVybC5jb25jYXQoJy9lY2hvL21pY3Jvc29mdC1jYWxlbmRhcnMtaW50ZWdyYXRpb24nKSl9YCArXG4gICAgICAgICAgICAnJnJlc3BvbnNlX21vZGU9cXVlcnknICtcbiAgICAgICAgICAgIGAmc2NvcGU9JHtlbmNvZGVVUklDb21wb25lbnQoZW52Lm1pY3Jvc29mdC5hcGlTY29wZSl9YCArXG4gICAgICAgICAgICBgJnN0YXRlPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNhbC5jYWxlbmRhcklkKX1gO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgaWYgKCF1cmwpIHJldHVybiByZWplY3QobmV3IEVycm9yKCdJTlZBTElEX1NFUlZJQ0UnKSk7XG4gICAgICAvLyBzdGFydCB0aGUgYXV0aCBmbG93IGluIHRoZSBicm93c2VyXG4gICAgICBCcm93c2VyLm9wZW4oeyB1cmwgfSkudGhlbigoKSA9PiB7XG4gICAgICAgIC8vIHNpbmNlIHdlIGRvbid0IGtub3cgd2hlbi9pZiB0aGUgYXV0aCBmbG93IHdpbGwgZmluaXNoLCB3ZSB3YWl0XG4gICAgICAgIHRoaXMuYWxlcnRDdHJsXG4gICAgICAgICAgLmNyZWF0ZSh7XG4gICAgICAgICAgICBoZWFkZXI6IHRoaXMudC5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuTElOS0lOR19DQUxFTkRBUicpLFxuICAgICAgICAgICAgbWVzc2FnZTogdGhpcy50Ll8oJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5MSU5LSU5HX0NBTEVOREFSX0NPTkZJUk1fT05DRV9ET05FJyksXG4gICAgICAgICAgICBiYWNrZHJvcERpc21pc3M6IGZhbHNlLFxuICAgICAgICAgICAgYnV0dG9uczogW3sgdGV4dDogdGhpcy50Ll8oJ0NPTU1PTi5ET05FJyksIGhhbmRsZXI6ICgpID0+IHJlc29sdmUoKSB9XVxuICAgICAgICAgIH0pXG4gICAgICAgICAgLnRoZW4oYWxlcnQgPT4gYWxlcnQucHJlc2VudCgpKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgZXh0ZXJuYWwgY2FsZW5kYXJzIGxpc3Qgb2YgdGhlIGV4dGVybmFsIHNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0RXh0ZXJuYWxDYWxlbmRhcnMoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8RXh0Q2FsZW5kYXJbXT4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBpZiAoIWNhbC5leHRlcm5hbCkgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoJ05PVF9FWFRFUk5BTCcpKTtcbiAgICAgIC8vIGdldCB0aGUgYWNjZXNzIHRva2VuIHRvIG1ha2UgcmVxdWVzdHM7IGluIGNhc2UgaXQgZmFpbHMsIHByb2NlZWQgdG8gbGluayB0aGUgZXh0ZXJuYWwgc2VydmljZVxuICAgICAgdGhpcy5BUEkucGF0Y2hSZXNvdXJjZSh0aGlzLmdldFJlcXVlc3RVUkwoY2FsKSwge1xuICAgICAgICBpZGVhOiB0cnVlLFxuICAgICAgICByZXNvdXJjZUlkOiBjYWwuY2FsZW5kYXJJZCxcbiAgICAgICAgYm9keTogeyBhY3Rpb246ICdHRVRfQUNDRVNTX1RPS0VOJyB9XG4gICAgICB9KVxuICAgICAgICAudGhlbigocmVzdWx0OiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBwcmVwYXJlIHRoZSBoZWFkZXJzIChhdXRob3JpemF0aW9uKSBmb3IgdGhlIHJlcXVlc3QgdG8gdGhlIGV4dGVybmFsIHNlcnZpY2VcbiAgICAgICAgICBjb25zdCBoZWFkZXJzID0geyBBdXRob3JpemF0aW9uOiAnQmVhcmVyICcuY29uY2F0KHJlc3VsdC50b2tlbikgfTtcbiAgICAgICAgICAvLyBhY3F1aXJlIGFuZCByZXR1cm4gdGhlIGNhbGVuZGFyc1xuICAgICAgICAgIHN3aXRjaCAoY2FsLmV4dGVybmFsLnNlcnZpY2UpIHtcbiAgICAgICAgICAgIGNhc2UgRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMuR09PR0xFOlxuICAgICAgICAgICAgICB0aGlzLkFQSS5yYXdSZXF1ZXN0KClcbiAgICAgICAgICAgICAgICAuZ2V0KCdodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9jYWxlbmRhci92My91c2Vycy9tZS9jYWxlbmRhckxpc3QnLCB7IGhlYWRlcnMgfSlcbiAgICAgICAgICAgICAgICAudG9Qcm9taXNlKClcbiAgICAgICAgICAgICAgICAudGhlbigocmVzOiBhbnkpID0+IHJlc29sdmUocmVzLml0ZW1zLm1hcCgoYzogYW55KSA9PiAoeyBuYW1lOiBjLnN1bW1hcnksIGlkOiBjLmlkIH0gYXMgRXh0Q2FsZW5kYXIpKSkpXG4gICAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiByZWplY3QoZXJyKSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBFeHRlcm5hbENhbGVuZGFyU291cmNlcy5NSUNST1NPRlQ6XG4gICAgICAgICAgICAgIHRoaXMuQVBJLnJhd1JlcXVlc3QoKVxuICAgICAgICAgICAgICAgIC5nZXQoJ2h0dHBzOi8vZ3JhcGgubWljcm9zb2Z0LmNvbS92MS4wL21lL2NhbGVuZGFycycsIHsgaGVhZGVycyB9KVxuICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKVxuICAgICAgICAgICAgICAgIC50aGVuKChyZXM6IGFueSkgPT4gcmVzb2x2ZShyZXMudmFsdWUubWFwKChjOiBhbnkpID0+ICh7IG5hbWU6IGMubmFtZSwgaWQ6IGMuaWQgfSBhcyBFeHRDYWxlbmRhcikpKSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgZXh0ZXJuYWwgc2VydmljZSBpcyBsaW5rZWQsIGNob29zZSBhbiBleHRlcm5hbCBjYWxlbmRhciBhbmQgc2V0IGl0IGZvciB0aGUgY2hvc2VuIGNhbGVuZGFyLlxuICAgKiBAcmV0dXJuIHRoZSB1cGRhdGVkIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIGNob29zZUFuZFNldEV4dGVybmFsQ2FsZW5kYXIoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8Q2FsZW5kYXI+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5vcGVuTW9kYWxBbmRQaWNrRXh0ZXJuYWxDYWxlbmRhcihjYWwpXG4gICAgICAgIC50aGVuKGV4dENhbElkID0+IHtcbiAgICAgICAgICAvLyB0aGUgZXh0ZXJuYWwgY2FsZW5kYXIgd2lsbCBiZSBzZXQgbGF0ZXIgb25cbiAgICAgICAgICBpZiAoIWV4dENhbElkKSByZXR1cm4gcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAvLyBhbiBleHRlcm5hbCBjYWxlbmRhciB3YXMgY2hvc2VuOiBzZXQgaXQgcmlnaHQgYXdheVxuICAgICAgICAgIHRoaXMuc2V0RXh0ZXJuYWxDYWxlbmRhcihjYWwsIGV4dENhbElkKVxuICAgICAgICAgICAgLnRoZW4ocmVzID0+IHJlc29sdmUocmVzKSlcbiAgICAgICAgICAgIC5jYXRjaChlcnIgPT4gcmVqZWN0KGVycikpO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogT3BlbiB0aGUgbW9kYWwgdG8gcGljayBhIGNhbGVuZGFyIGZyb20gdGhlIGV4dGVybmFsIHNlcnZpY2UuXG4gICAqIEByZXR1cm4gdGhlIGlkIG9mIHRoZSBleHRlcm5hbCBjYWxlbmRhci5cbiAgICovXG4gIHByaXZhdGUgYXN5bmMgb3Blbk1vZGFsQW5kUGlja0V4dGVybmFsQ2FsZW5kYXIoY2FsOiBDYWxlbmRhcik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgYXdhaXQgdGhpcy5sb2FkaW5nLnNob3coKTtcbiAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgdGhpcy5nZXRFeHRlcm5hbENhbGVuZGFycyhjYWwpXG4gICAgICAgIC50aGVuKChleHRDYWxzOiBFeHRDYWxlbmRhcltdKSA9PiB7XG4gICAgICAgICAgaWYgKCFleHRDYWxzLmxlbmd0aCkgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoJ05PX0VYVEVSTkFMX0NBTEVOREFSUycpKTtcbiAgICAgICAgICAvLyBsZXQgdGhlIHVzZXIgdG8gY2hvb3NlIHRoZSBleHRlcm5hbCBjYWxlbmRhciB0byBhc3NvY2lhdGVcbiAgICAgICAgICB0aGlzLm1vZGFsQ3RybFxuICAgICAgICAgICAgLmNyZWF0ZSh7XG4gICAgICAgICAgICAgIGNvbXBvbmVudDogSURFQVN1Z2dlc3Rpb25zQ29tcG9uZW50LFxuICAgICAgICAgICAgICBjb21wb25lbnRQcm9wczoge1xuICAgICAgICAgICAgICAgIGRhdGE6IGV4dENhbHMubWFwKGMgPT4gbmV3IFN1Z2dlc3Rpb24oeyB2YWx1ZTogYy5pZCwgbmFtZTogYy5uYW1lIH0pKSxcbiAgICAgICAgICAgICAgICBzZWFyY2hQbGFjZWhvbGRlcjogdGhpcy50Ll8oJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5DSE9PU0VfQU5fRVhURVJOQUxfQ0FMRU5EQVJfVE9fTElOSycpLFxuICAgICAgICAgICAgICAgIHNvcnREYXRhOiB0cnVlLFxuICAgICAgICAgICAgICAgIGhpZGVJZEZyb21VSTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBoaWRlQ2xlYXJCdXR0b246IHRydWUsXG4gICAgICAgICAgICAgICAgbXVzdENob29zZTogdHJ1ZVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBiYWNrZHJvcERpc21pc3M6IGZhbHNlXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnRoZW4obW9kYWwgPT4ge1xuICAgICAgICAgICAgICBtb2RhbC5vbkRpZERpc21pc3MoKS50aGVuKHJlcyA9PiByZXNvbHZlKHJlcy5kYXRhID8gcmVzLmRhdGEudmFsdWUgOiBudWxsKSk7XG4gICAgICAgICAgICAgIG1vZGFsLnByZXNlbnQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goZXJyID0+IHJlamVjdChlcnIpKVxuICAgICAgICAuZmluYWxseSgoKSA9PiB0aGlzLmxvYWRpbmcuaGlkZSgpKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJzdCBzeW5jIG9mIHRoZSBleHRlbmFsIGNhbGVuZGFyLlxuICAgKi9cbiAgcHVibGljIHN5bmNDYWxlbmRhcihjYWw6IENhbGVuZGFyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHRoaXMuc3luY0NhbGVuZGFySGVscGVyKGNhbCwgZXJyID0+IChlcnIgPyByZWplY3QoZXJyKSA6IHJlc29sdmUoKSkpKTtcbiAgfVxuICAvKipcbiAgICogSGVscGVyIHRvIHJlY3Vyc2l2ZWx5IHN5bmMgYW4gdGhlIGV4dGVuYWwgY2FsZW5kYXIuXG4gICAqL1xuICBwcml2YXRlIHN5bmNDYWxlbmRhckhlbHBlcihjYWw6IENhbGVuZGFyLCBkb25lOiAoZXJyPzogRXJyb3IpID0+IHZvaWQpIHtcbiAgICAvLyB0aGlzIGlzIGEgcmVjdXJzaXZlIG9wZXJhdGlvbjogdGhlIEFQSSByZXR1cm5zIGlmIHRoZSBzeW5jIGhhcyB0byBjb250aW51ZSBvciBpdCBmaW5pc2hlZFxuICAgIHRoaXMuQVBJLnBhdGNoUmVzb3VyY2UodGhpcy5nZXRSZXF1ZXN0VVJMKGNhbCksIHtcbiAgICAgIGlkZWE6IHRydWUsXG4gICAgICByZXNvdXJjZUlkOiBjYWwuY2FsZW5kYXJJZCxcbiAgICAgIGJvZHk6IHsgYWN0aW9uOiAnU1lOQ19FWFRFUk5BTF9DQUxFTkRBUicsIGZpcnN0U3luYzogdHJ1ZSB9XG4gICAgfSlcbiAgICAgIC50aGVuKChyZXM6IGFueSkgPT4ge1xuICAgICAgICBpZiAocmVzLm1vcmVEYXRhKSB0aGlzLnN5bmNDYWxlbmRhckhlbHBlcihjYWwsIGRvbmUpO1xuICAgICAgICBlbHNlIGRvbmUoKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goZXJyID0+IGRvbmUoZXJyKSk7XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgc3RydWN0dXJlIHRvIGRlZmluZSBleHRlcm5hbCBzZXJ2aWNlcycgY2FsZW5kYXJzIChiYXNpYyBpbmZvKS5cbiAqL1xuaW50ZXJmYWNlIEV4dENhbGVuZGFyIHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xufVxuIl19
|
|
@@ -11,6 +11,7 @@ import ColorParse from 'color-parse';
|
|
|
11
11
|
import { __awaiter } from 'tslib';
|
|
12
12
|
import { ExternalCalendarSources, Calendar, Suggestion, Check, ExternalCalendarInfo } from 'idea-toolbox';
|
|
13
13
|
import { Plugins } from '@capacitor/core';
|
|
14
|
+
import { environment } from '@env';
|
|
14
15
|
|
|
15
16
|
class CustomDateFormatter extends CalendarDateFormatter {
|
|
16
17
|
monthViewColumnHeader({ date, locale }) {
|
|
@@ -240,22 +241,22 @@ class IDEACalendarsService {
|
|
|
240
241
|
case ExternalCalendarSources.GOOGLE:
|
|
241
242
|
url =
|
|
242
243
|
'https://accounts.google.com/o/oauth2/v2/auth?' +
|
|
243
|
-
`client_id=${encodeURIComponent(
|
|
244
|
+
`client_id=${encodeURIComponent(environment.google.apiClientId)}` +
|
|
244
245
|
'&response_type=code' +
|
|
245
|
-
`&redirect_uri=${encodeURIComponent(
|
|
246
|
+
`&redirect_uri=${encodeURIComponent(environment.idea.app.url.concat('/echo/google-calendars-integration'))}` +
|
|
246
247
|
'&include_granted_scopes=true' +
|
|
247
248
|
'&access_type=offline&prompt=consent' +
|
|
248
|
-
`&scope=${encodeURIComponent(
|
|
249
|
+
`&scope=${encodeURIComponent(environment.google.apiScope)}` +
|
|
249
250
|
`&state=${encodeURIComponent(cal.calendarId)}`;
|
|
250
251
|
break;
|
|
251
252
|
case ExternalCalendarSources.MICROSOFT:
|
|
252
253
|
url =
|
|
253
254
|
'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?' +
|
|
254
|
-
`client_id=${encodeURIComponent(
|
|
255
|
+
`client_id=${encodeURIComponent(environment.microsoft.apiClientId)}` +
|
|
255
256
|
'&response_type=code' +
|
|
256
|
-
`&redirect_uri=${encodeURIComponent(
|
|
257
|
+
`&redirect_uri=${encodeURIComponent(environment.idea.app.url.concat('/echo/microsoft-calendars-integration'))}` +
|
|
257
258
|
'&response_mode=query' +
|
|
258
|
-
`&scope=${encodeURIComponent(
|
|
259
|
+
`&scope=${encodeURIComponent(environment.microsoft.apiScope)}` +
|
|
259
260
|
`&state=${encodeURIComponent(cal.calendarId)}`;
|
|
260
261
|
break;
|
|
261
262
|
}
|