@frontegg/angular 3.2.0 → 3.3.0-alpha.1490679057
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/bundles/frontegg-angular.umd.js +1 -0
- package/bundles/frontegg-angular.umd.js.map +1 -1
- package/bundles/frontegg-angular.umd.min.js +1 -1
- package/bundles/frontegg-angular.umd.min.js.map +1 -1
- package/esm2015/lib/frontegg-auth.service.js +2 -1
- package/fesm2015/frontegg-angular.js +1 -0
- package/fesm2015/frontegg-angular.js.map +1 -1
- package/lib/frontegg-auth.service.d.ts +1 -0
- package/lib/frontegg-auth.service.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -37,6 +37,7 @@ export class FronteggAuthService {
|
|
|
37
37
|
this.setLoginState = (state) => this.dispatchAction('setLoginState', state);
|
|
38
38
|
this.resetLoginState = () => this.dispatchAction('resetLoginState');
|
|
39
39
|
this.requestAuthorize = (firstTime) => this.dispatchAction('requestAuthorize', firstTime);
|
|
40
|
+
this.loginWithRedirect = () => this.dispatchAction('requestHostedLoginAuthorize');
|
|
40
41
|
this.preLogin = (payload) => this.dispatchAction('preLogin', payload);
|
|
41
42
|
this.postLogin = (payload) => this.dispatchAction('postLogin', payload);
|
|
42
43
|
this.login = (payload) => this.dispatchAction('login', payload);
|
|
@@ -282,4 +283,4 @@ FronteggAuthService.decorators = [
|
|
|
282
283
|
FronteggAuthService.ctorParameters = () => [
|
|
283
284
|
{ type: FronteggAppService }
|
|
284
285
|
];
|
|
285
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlZ2ctYXBwL3NyYy9saWIvZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBdUNMLGFBQWEsR0FJZCxNQUFNLHVCQUF1QixDQUFDOzs7QUEwRC9CLE1BQU0sT0FBTyxtQkFBbUI7SUFxSDlCLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBcEhsRCxpQ0FBNEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsRUFBd0MsQ0FBQyxDQUFDO1FBQ2pJLGdDQUEyQixHQUFHLElBQUksZUFBZSxDQUFvQyxFQUF1QyxDQUFDLENBQUM7UUFDOUgseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQTZCLEVBQWdDLENBQUMsQ0FBQztRQUN6RywwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBaUMsQ0FBQyxDQUFDO1FBQzVHLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFtQyxFQUFzQyxDQUFDLENBQUM7UUFDM0gsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTBCLEVBQTZCLENBQUMsQ0FBQztRQUNoRyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF3QixFQUEyQixDQUFDLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQTRCLEVBQStCLENBQUMsQ0FBQztRQUN0RyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMEIsRUFBNkIsQ0FBQyxDQUFD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QUM7SUFDOUMsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBdUNPLGNBQWMsQ0FBQyxJQUFZLEVBQUUsT0FBYTtRQUNoRCxNQUFNLEtBQUssR0FBa0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7UUFDdkUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLGFBQWEsSUFBSSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ2hFLENBQUM7Ozs7WUFoS0YsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25COzs7WUF0R1Esa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGcm9udGVnZ0FwcFNlcnZpY2UgfSBmcm9tICcuL2Zyb250ZWdnLWFwcC5zZXJ2aWNlJztcbmltcG9ydCBGYXN0RGVlcEVxdWFsIGZyb20gJ2Zhc3QtZGVlcC1lcXVhbCc7XG5pbXBvcnQge1xuICBSb2xlc1N0YXRlLFxuICBUZW5hbnRzU3RhdGUsXG4gIEFjY291bnRTZXR0aW5nc1N0YXRlLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlQYXlsb2FkLFxuICBTYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0UGF5bG9hZCxcbiAgU2F2ZVNlY3VyaXR5UG9saWN5TWZhUGF5bG9hZCxcbiAgUGFzc3dvcmRQb2xpY3lTdGF0ZSxcbiAgUGFzc3dvcmRIaXN0b3J5UG9saWN5U3RhdGUsXG4gIE1mYVBvbGljeVN0YXRlLFxuICBDYXB0Y2hhUG9saWN5U3RhdGUsXG4gIExvY2tvdXRQb2xpY3lTdGF0ZSxcbiAgUHVibGljUG9saWN5U3RhdGUsXG4gIEdsb2JhbFBvbGljeVN0YXRlLFxuICBTZWN1cml0eVBvbGljeVN0YXRlLFxuICBBZGRVc2VyQXBpVG9rZW5QYXlsb2FkLFxuICBBZGRUZW5hbnRBcGlUb2tlblBheWxvYWQsXG4gIEFwaVRva2VuVHlwZSxcbiAgQXBpVG9rZW5zU3RhdGUsXG4gIEFwaVN0YXRlSW5kaWNhdG9yLFxuICBJU2V0RGVsZXRlVXNlckRpYWxvZyxcbiAgSVNldEFkZFVzZXJEaWFsb2csXG4gIExvYWRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZCxcbiAgVGVhbVN0YXRlLFxuICBUZWFtU3RhdGVJbmRpY2F0b3IsXG4gIE1GQVN0YXRlLFxuICBTYXZlU1NPQ29uZmlndXJhdGlvblBheWxvYWQsXG4gIFNTT1N0YXRlLFxuICBQcm9maWxlU3RhdGUsXG4gIFNhdmVTU09Db25maWd1cmF0aW9uRmlsZVBheWxvYWQsXG4gIFVwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlc1BheWxvYWQsXG4gIERlbGV0ZVNhbWxHcm91cFBheWxvYWQsXG4gIENyZWF0ZVNhbWxHcm91cFBheWxvYWQsXG4gIFNhdmVQcm9maWxlUGF5bG9hZCxcbiAgU2lnblVwU3RhdGUsXG4gIEZvcmdvdFBhc3N3b3JkU3RhdGUsXG4gIEFjY2VwdEludml0YXRpb25TdGF0ZSxcbiAgQXV0aFN0YXRlLFxuICBVc2VyLFxuICBhdXRoU3RvcmVOYW1lLFxuICBMb2dpblN0YXRlLFxuICBBY3RpdmF0ZUFjY291bnRTdHJhdGVneVN0YXRlLFxuICBFbmhhbmNlZFN0b3JlLFxufSBmcm9tICdAZnJvbnRlZ2cvcmVkdXgtc3RvcmUnO1xuaW1wb3J0IHtcbiAgSUxvZ2luLFxuICBJTG9naW5XaXRoTWZhLFxuICBJUG9zdExvZ2luLFxuICBJUHJlTG9naW4sXG4gIElSZWNvdmVyTUZBVG9rZW4sXG4gIElBY3RpdmF0ZUFjY291bnQsXG4gIElMb2dpblZpYVNvY2lhbExvZ2luLFxuICBJU2V0U29jaWFsTG9naW5FcnJvcixcbiAgSVJlc2VuZEFjdGl2YXRpb25FbWFpbCxcbiAgSUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5LFxuICBJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3lSZXNwb25zZSxcbiAgSUFjY2VwdEludml0YXRpb24sXG4gIElGb3Jnb3RQYXNzd29yZCxcbiAgSVJlc2V0UGFzc3dvcmQsXG4gIElHZXRVc2VyUGFzc3dvcmRDb25maWcsXG4gIElTaWduVXBVc2VyLFxuICBJQ2hhbmdlUGFzc3dvcmQsXG4gIElPaWRjUG9zdExvZ2luLFxuICBJVmVyaWZ5TWZhLFxuICBJRGlzYWJsZU1mYSxcbiAgSUxvYWRVc2VycyxcbiAgSVRlYW1Vc2VyLFxuICBJQWRkVXNlcixcbiAgSVVwZGF0ZVVzZXIsXG4gIElEZWxldGVVc2VyLFxuICBJUmVzZW5kQWN0aXZhdGlvbkxpbmssXG4gIElTZXR0aW5nc1Jlc3BvbnNlLFxuICBJU3dpdGNoVGVuYW50LFxuICBJVGVuYW50c1Jlc3BvbnNlLFxuICBJQWRkUm9sZSxcbiAgSVJvbGUsXG4gIElVcGRhdGVSb2xlLFxuICBJRGVsZXRlUm9sZSxcbiAgSUF0dGFjaFBlcm1pc3Npb25zVG9Sb2xlLFxuICBJUmVzZW5kSW52aXRhdGlvbkxpbmssXG4gIElSb2xlUGVybWlzc2lvbixcbn0gZnJvbSAnQGZyb250ZWdnL3Jlc3QtYXBpJztcbmltcG9ydCB7IEFjdGl2YXRlQWNjb3VudFN0YXRlLCBTb2NpYWxMb2dpblN0YXRlIH0gZnJvbSAnQGZyb250ZWdnL3JlZHV4LXN0b3JlL2F1dGgnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5pbnRlcmZhY2UgQXV0aFN1YlN0YXRlcyB7XG4gIGZpZWxkOiBQYXJ0aWFsPGtleW9mIEF1dGhTdGF0ZT47XG4gIHN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxhbnk+O1xufVxuXG5leHBvcnQgdHlwZSBXaXRoQ2FsbGJhY2s8VCA9IHt9LCBSID0gYm9vbGVhbj4gPSBUICYge1xuICBjYWxsYmFjaz86IChkYXRhOiBSIHwgbnVsbCwgZXJyb3I/OiBzdHJpbmcpID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgdHlwZSBXaXRoU2lsZW50TG9hZDxUPiA9IFQgJiB7XG4gIHNpbGVudExvYWRpbmc/OiBib29sZWFuO1xufTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEZyb250ZWdnQXV0aFNlcnZpY2Uge1xuICBwcml2YXRlIGFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWNjZXB0SW52aXRhdGlvblN0YXRlJ10pO1xuICBwcml2YXRlIGFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FjY291bnRTZXR0aW5nc1N0YXRlJ10pO1xuICBwcml2YXRlIGFjdGl2YXRlU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FjdGl2YXRlU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10pO1xuICBwcml2YXRlIGFwaVRva2Vuc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhcGlUb2tlbnNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10pO1xuICBwcml2YXRlIGZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10pO1xuICBwcml2YXRlIGxvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2xvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydsb2dpblN0YXRlJ10pO1xuICBwcml2YXRlIG1mYVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydtZmFTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ21mYVN0YXRlJ10pO1xuICBwcml2YXRlIHByb2ZpbGVTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10pO1xuICBwcml2YXRlIHJvbGVzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3JvbGVzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydyb2xlc1N0YXRlJ10pO1xuICBwcml2YXRlIHJvdXRlc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsncm91dGVzJ10+KHt9IGFzIEF1dGhTdGF0ZVsncm91dGVzJ10pO1xuICBwcml2YXRlIHNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NlY3VyaXR5UG9saWN5U3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10pO1xuICBwcml2YXRlIHNpZ25VcFN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzaWduVXBTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3NpZ25VcFN0YXRlJ10pO1xuICBwcml2YXRlIHNvY2lhbExvZ2luU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10pO1xuICBwcml2YXRlIHNzb1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10pO1xuICBwcml2YXRlIHRlYW1TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10pO1xuICBwcml2YXRlIHRlbmFudHNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10pO1xuICBwcml2YXRlIHVzZXJTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3VzZXInXT4oe30gYXMgQXV0aFN0YXRlWyd1c2VyJ10pO1xuICBwcml2YXRlIGlzQXV0aGVudGljYXRlZFN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10+KGZhbHNlKTtcbiAgcHJpdmF0ZSBpc0xvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzTG9hZGluZyddPih0cnVlKTtcbiAgcHJpdmF0ZSBpc1NTT0F1dGhTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzU1NPQXV0aCddPihmYWxzZSk7XG4gIHByaXZhdGUgc3NvQUNTU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzc29BQ1MnXT4oJycpO1xuXG5cbiAgZ2V0IGFjY2VwdEludml0YXRpb25TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FjY2VwdEludml0YXRpb25TdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjZXB0SW52aXRhdGlvblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhY2NvdW50U2V0dGluZ3NTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FjY291bnRTZXR0aW5nc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50U2V0dGluZ3NTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWN0aXZhdGVTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FjdGl2YXRlU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2YXRlU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFwaVRva2Vuc1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnYXBpVG9rZW5zU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFwaVRva2Vuc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBmb3Jnb3RQYXNzd29yZFN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnZm9yZ290UGFzc3dvcmRTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuZm9yZ290UGFzc3dvcmRTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgbG9naW5TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2xvZ2luU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmxvZ2luU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IG1mYVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnbWZhU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLm1mYVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBwcm9maWxlU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydwcm9maWxlU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcm9sZXNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3JvbGVzU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnJvbGVzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJvdXRlc1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncm91dGVzJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yb3V0ZXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNlY3VyaXR5UG9saWN5U3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzaWduVXBTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NpZ25VcFN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zaWduVXBTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc29jaWFsTG9naW5TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3NvY2lhbExvZ2luU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNvY2lhbExvZ2luU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNzb1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc3NvU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnNzb1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB0ZWFtU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWyd0ZWFtU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLnRlYW1TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdGVuYW50c1N0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndGVuYW50c1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy50ZW5hbnRzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHVzZXIkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWyd1c2VyJ10+IHtcbiAgICByZXR1cm4gdGhpcy51c2VyU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB1c2VyKCk6IEF1dGhTdGF0ZVsndXNlciddIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKS5hdXRoLnVzZXI7XG4gIH1cblxuXG4gIGdldCBpc0F1dGhlbnRpY2F0ZWQkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc0F1dGhlbnRpY2F0ZWQnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNBdXRoZW50aWNhdGVkKCk6IEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10ge1xuICAgIHJldHVybiB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5mcm9udGVnZ0FwcC5zdG9yZS5nZXRTdGF0ZSgpLmF1dGguaXNBdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgZ2V0IGlzTG9hZGluZyQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2lzTG9hZGluZyddPiB7XG4gICAgcmV0dXJuIHRoaXMuaXNMb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBpc1NTT0F1dGgkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc1NTT0F1dGgnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzU1NPQXV0aFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc3NvQUNTJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc3NvQUNTJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zc29BQ1NTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBmcm9udGVnZ0FwcFNlcnZpY2U6IEZyb250ZWdnQXBwU2VydmljZSkge1xuICAgIGNvbnN0IGF1dGhTdWJTdGF0ZXM6IEF1dGhTdWJTdGF0ZXNbXSA9IFtcbiAgICAgIHsgZmllbGQ6ICdhY2NlcHRJbnZpdGF0aW9uU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhY2NvdW50U2V0dGluZ3NTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYWNjb3VudFNldHRpbmdzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYWN0aXZhdGVTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYWN0aXZhdGVTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdhcGlUb2tlbnNTdGF0ZScsIHN1YmplY3Q6IHRoaXMuYXBpVG9rZW5zU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnZm9yZ290UGFzc3dvcmRTdGF0ZScsIHN1YmplY3Q6IHRoaXMuZm9yZ290UGFzc3dvcmRTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd0ZW5hbnRzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnRlbmFudHNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdsb2dpblN0YXRlJywgc3ViamVjdDogdGhpcy5sb2dpblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ21mYVN0YXRlJywgc3ViamVjdDogdGhpcy5tZmFTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdwcm9maWxlU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnByb2ZpbGVTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyb2xlc1N0YXRlJywgc3ViamVjdDogdGhpcy5yb2xlc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3JvdXRlcycsIHN1YmplY3Q6IHRoaXMucm91dGVzU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NlY3VyaXR5UG9saWN5U3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNlY3VyaXR5UG9saWN5U3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc2lnblVwU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNpZ25VcFN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NvY2lhbExvZ2luU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNvY2lhbExvZ2luU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc3NvU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnNzb1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3RlYW1TdGF0ZScsIHN1YmplY3Q6IHRoaXMudGVhbVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3VzZXInLCBzdWJqZWN0OiB0aGlzLnVzZXJTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnaXNTU09BdXRoJywgc3ViamVjdDogdGhpcy5pc1NTT0F1dGhTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnc3NvQUNTJywgc3ViamVjdDogdGhpcy5zc29BQ1NTdWJqZWN0IH0sXG4gICAgXTtcblxuICAgIC8vIE1lbW9pemVkIEF1dGggU3RhdGVcbiAgICB0aGlzLmZyb250ZWdnQXBwU2VydmljZS5hdXRoU3RhdGUkLnN1YnNjcmliZSgoYXV0aFN0YXRlKSA9PiB7XG4gICAgICBpZiAoYXV0aFN0YXRlICE9IG51bGwpIHtcbiAgICAgICAgZm9yIChjb25zdCBhdXRoU3ViU3RhdGUgb2YgYXV0aFN1YlN0YXRlcykge1xuICAgICAgICAgIGlmICghRmFzdERlZXBFcXVhbChhdXRoU3ViU3RhdGUuc3ViamVjdC5nZXRWYWx1ZSgpLCBhdXRoU3RhdGVbYXV0aFN1YlN0YXRlLmZpZWxkXSkpIHtcbiAgICAgICAgICAgIGF1dGhTdWJTdGF0ZS5zdWJqZWN0Lm5leHQoYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzQXV0aGVudGljYXRlZFN1YmplY3QubmV4dChhdXRoU3RhdGUuaXNBdXRoZW50aWNhdGVkKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmdTdWJqZWN0Lm5leHQoYXV0aFN0YXRlLmlzTG9hZGluZyk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRpc3BhdGNoQWN0aW9uKHR5cGU6IHN0cmluZywgcGF5bG9hZD86IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHN0b3JlOiBFbmhhbmNlZFN0b3JlID0gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmU7XG4gICAgc3RvcmUuZGlzcGF0Y2goeyB0eXBlOiBgJHthdXRoU3RvcmVOYW1lfS8ke3R5cGV9YCwgcGF5bG9hZCB9KTtcbiAgfVxuXG4gIC8vIFJvb3QgQWN0aW9uc1xuICBzZXRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBdXRoU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U3RhdGUnKTtcbiAgc2V0VXNlciA9ICh1c2VyOiBVc2VyKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRVc2VyJywgdXNlcik7XG5cbiAgLy8gTG9naW4gQWN0aW9uc1xuICBzZXRMb2dpblN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPExvZ2luU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRMb2dpblN0YXRlJywgc3RhdGUpO1xuICByZXNldExvZ2luU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldExvZ2luU3RhdGUnKTtcbiAgcmVxdWVzdEF1dGhvcml6ZSA9IChmaXJzdFRpbWU/OiBib29sZWFuKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXF1ZXN0QXV0aG9yaXplJywgZmlyc3RUaW1lKTtcbiAgcHJlTG9naW4gPSAocGF5bG9hZDogSVByZUxvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdwcmVMb2dpbicsIHBheWxvYWQpO1xuICBwb3N0TG9naW4gPSAocGF5bG9hZDogSVBvc3RMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncG9zdExvZ2luJywgcGF5bG9hZCk7XG4gIGxvZ2luID0gKHBheWxvYWQ6IElMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9naW4nLCBwYXlsb2FkKTtcbiAgbG9naW5XaXRoTWZhID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJTG9naW5XaXRoTWZhPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9naW5XaXRoTWZhJywgcGF5bG9hZCk7XG4gIHJlY292ZXJNZmEgPSAocGF5bG9hZDogSVJlY292ZXJNRkFUb2tlbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVjb3Zlck1mYScsIHBheWxvYWQpO1xuICBsb2dvdXQgPSAoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dvdXQnLCBjYWxsYmFjayk7XG4gIHNpbGVudExvZ291dCA9IChjYWxsYmFjaz86ICgpID0+IHZvaWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NpbGVudExvZ291dCcsIGNhbGxiYWNrKTtcbiAgY2hlY2tJZkFsbG93VG9SZW1lbWJlck1mYURldmljZSA9IChwYXlsb2FkOiB7IG1mYVRva2VuOiBzdHJpbmcgfSkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjaGVja0lmQWxsb3dUb1JlbWVtYmVyTWZhRGV2aWNlJywgcGF5bG9hZCk7XG5cbiAgLy8gU29jaWFsIExvZ2lucyBBY3Rpb25zXG4gIHNldFNvY2lhbExvZ2luc1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNvY2lhbExvZ2luU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTb2NpYWxMb2dpbnNTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRTb2NpYWxMb2dpbnNTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U29jaWFsTG9naW5zU3RhdGUnKTtcbiAgbG9hZFNvY2lhbExvZ2luc0NvbmZpZ3VyYXRpb24gPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU29jaWFsTG9naW5zQ29uZmlndXJhdGlvbicpO1xuICBsb2dpblZpYVNvY2lhbExvZ2luID0gKHBheWxvYWQ6IElMb2dpblZpYVNvY2lhbExvZ2luKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2dpblZpYVNvY2lhbExvZ2luJywgcGF5bG9hZCk7XG4gIHNldFNvY2lhbExvZ2luRXJyb3IgPSAocGF5bG9hZDogSVNldFNvY2lhbExvZ2luRXJyb3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNvY2lhbExvZ2luRXJyb3InLCBwYXlsb2FkKTtcblxuICAvLyBBY3RpdmF0ZSBBY2NvdW50IEFjdGlvbnNcbiAgc2V0QWN0aXZhdGVTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxBY3RpdmF0ZUFjY291bnRTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjdGl2YXRlU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QWN0aXZhdGVTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0QWN0aXZhdGVTdGF0ZScpO1xuICBzZXRBY3RpdmF0ZVN0cmF0ZWd5U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWN0aXZhdGVTdHJhdGVneVN0YXRlJywgc3RhdGUpO1xuICBhY3RpdmF0ZUFjY291bnQgPSAocGF5bG9hZDogSUFjdGl2YXRlQWNjb3VudCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWN0aXZhdGVBY2NvdW50JywgcGF5bG9hZCk7XG4gIHJlc2VuZEFjdGl2YXRpb25FbWFpbCA9IChwYXlsb2FkOiBJUmVzZW5kQWN0aXZhdGlvbkVtYWlsKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNlbmRBY3RpdmF0aW9uRW1haWwnLCBwYXlsb2FkKTtcbiAgZ2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3kgPSAoXG4gICAgcGF5bG9hZDogV2l0aENhbGxiYWNrPElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneSwgSUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5UmVzcG9uc2U+LFxuICApID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2dldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5JywgcGF5bG9hZCk7XG5cbiAgLy8gQWNjZXB0IEludml0YXRpb24gQWN0aW9uc1xuICBzZXRBY2NlcHRJbnZpdGF0aW9uU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QWNjZXB0SW52aXRhdGlvblN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY2NlcHRJbnZpdGF0aW9uU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBY2NlcHRJbnZpdGF0aW9uU3RhdGUnKTtcbiAgYWNjZXB0SW52aXRhdGlvbiA9IChwYXlsb2FkOiBJQWNjZXB0SW52aXRhdGlvbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWNjZXB0SW52aXRhdGlvbicsIHBheWxvYWQpO1xuXG4gIC8vIEZvcmdvdCBQYXNzd29yZCBBY3Rpb25zXG4gIHNldEZvcmdvdFBhc3N3b3JkU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8Rm9yZ290UGFzc3dvcmRTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRGb3Jnb3RQYXNzd29yZFN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRGb3Jnb3RQYXNzd29yZFN0YXRlJyk7XG4gIGZvcmdvdFBhc3N3b3JkID0gKHBheWxvYWQ6IElGb3Jnb3RQYXNzd29yZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZm9yZ290UGFzc3dvcmQnLCBwYXlsb2FkKTtcbiAgcmVzZXRQYXNzd29yZCA9IChwYXlsb2FkOiBJUmVzZXRQYXNzd29yZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRQYXNzd29yZCcsIHBheWxvYWQpO1xuICBsb2FkUGFzc3dvcmRDb25maWcgPSAocGF5bG9hZD86IElHZXRVc2VyUGFzc3dvcmRDb25maWcpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRQYXNzd29yZENvbmZpZycsIHBheWxvYWQpO1xuXG4gIC8vIFNpZ24gVXAgQWN0aW9uc1xuICBzZXRTaWduVXBTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTaWduVXBTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNpZ25VcFN0YXRlJywgc3RhdGUpO1xuICByZXNldFNpZ25VcFN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTaWduVXBTdGF0ZScpO1xuICBzaWduVXBVc2VyID0gKHBheWxvYWQ6IElTaWduVXBVc2VyKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzaWduVXBVc2VyJywgcGF5bG9hZCk7XG4gIHJlc2V0U2lnblVwU3RhdGVTb2Z0ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTaWduVXBTdGF0ZVNvZnQnKTtcblxuICAvLyBQcm9maWxlIEFjdGlvbnNcbiAgc2V0UHJvZmlsZVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFByb2ZpbGVTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFByb2ZpbGVTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRQcm9maWxlU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFByb2ZpbGVTdGF0ZScpO1xuICBsb2FkUHJvZmlsZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRQcm9maWxlJyk7XG4gIHNhdmVQcm9maWxlID0gKHBheWxvYWQ6IFNhdmVQcm9maWxlUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVByb2ZpbGUnLCBwYXlsb2FkKTtcbiAgY2hhbmdlUGFzc3dvcmQgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElDaGFuZ2VQYXNzd29yZD4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2NoYW5nZVBhc3N3b3JkJywgcGF5bG9hZCk7XG5cbiAgLy8gU1NPIGFjdGlvbnNcbiAgc2V0U1NPU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U1NPU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTU09TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRTU09TdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U1NPU3RhdGUnKTtcbiAgbG9hZFNTT0NvbmZpZ3VyYXRpb25zID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNTT0NvbmZpZ3VyYXRpb25zJyk7XG4gIGxvYWRTU09BdXRob3JpemF0aW9uUm9sZXMgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU1NPQXV0aG9yaXphdGlvblJvbGVzJyk7XG4gIHNhdmVTU09Db25maWd1cmF0aW9ucyA9IChwYXlsb2FkOiBTYXZlU1NPQ29uZmlndXJhdGlvblBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNTT0NvbmZpZ3VyYXRpb25zJywgcGF5bG9hZCk7XG4gIHNhdmVTU09Db25maWd1cmF0aW9uc0ZpbGUgPSAocGF5bG9hZDogRmlsZVtdKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU1NPQ29uZmlndXJhdGlvbnNGaWxlJywgcGF5bG9hZCk7XG4gIHNhdmVTU09Db25maWd1cmF0aW9uc0ZpbGVXaXRoQ2FsbGJhY2sgPSAocGF5bG9hZDogU2F2ZVNTT0NvbmZpZ3VyYXRpb25GaWxlUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU1NPQ29uZmlndXJhdGlvbnNGaWxlV2l0aENhbGxiYWNrJywgcGF5bG9hZCk7XG4gIHZhbGlkYXRlU1NPRG9tYWluID0gKHBheWxvYWQ/OiBXaXRoQ2FsbGJhY2spID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3ZhbGlkYXRlU1NPRG9tYWluJywgcGF5bG9hZCk7XG4gIHVwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlcyA9IChwYXlsb2FkOiBVcGRhdGVTU09BdXRob3JpemF0aW9uUm9sZXNQYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3VwZGF0ZVNTT0F1dGhvcml6YXRpb25Sb2xlcycsIHBheWxvYWQpO1xuICBkZWxldGVTYW1sR3JvdXAgPSAocGF5bG9hZDogRGVsZXRlU2FtbEdyb3VwUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlU2FtbEdyb3VwJywgcGF5bG9hZCk7XG4gIGNyZWF0ZVNhbWxHcm91cCA9IChwYXlsb2FkOiBDcmVhdGVTYW1sR3JvdXBQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjcmVhdGVTYW1sR3JvdXAnLCBwYXlsb2FkKTtcbiAgb2lkY1Bvc3Rsb2dpbiA9IChwYXlsb2FkOiBJT2lkY1Bvc3RMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignb2lkY1Bvc3Rsb2dpbicsIHBheWxvYWQpO1xuXG4gIC8vIE1mYSBhY3Rpb25zXG4gIHNldE1mYVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPE1GQVN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0TWZhU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0TWZhU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldE1mYVN0YXRlJyk7XG4gIGVucm9sbE1mYSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Vucm9sbE1mYScpO1xuICB2ZXJpZnlNZmEgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElWZXJpZnlNZmEsIHN0cmluZyB8IHVuZGVmaW5lZD4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3ZlcmlmeU1mYScsIHBheWxvYWQpO1xuICB2ZXJpZnlNZmFBZnRlckZvcmNlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJTG9naW5XaXRoTWZhLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3ZlcmlmeU1mYUFmdGVyRm9yY2UnLCBwYXlsb2FkKTtcbiAgZGlzYWJsZU1mYSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SURpc2FibGVNZmE+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkaXNhYmxlTWZhJywgcGF5bG9hZCk7XG5cbiAgLy8gVGVhbSBhY3Rpb25zXG4gIHNldFRlYW1Mb2FkZXIgPSAocGF5bG9hZDogVGVhbVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZWFtTG9hZGVyJywgcGF5bG9hZCk7XG4gIHNldFRlYW1FcnJvciA9IChwYXlsb2FkOiBUZWFtU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlYW1FcnJvcicsIHBheWxvYWQpO1xuICBzZXRUZWFtU3RhdGUgPSAocGF5bG9hZDogUGFydGlhbDxUZWFtU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZWFtU3RhdGUnLCBwYXlsb2FkKTtcbiAgcmVzZXRUZWFtU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFRlYW1TdGF0ZScpO1xuICBsb2FkVXNlcnMgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPFdpdGhTaWxlbnRMb2FkPElMb2FkVXNlcnM+LCBJVGVhbVVzZXJbXT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFVzZXJzJywgcGF5bG9hZCk7XG4gIGxvYWRSb2xlcyA9IChwYXlsb2FkPzogTG9hZFJvbGVzQW5kUGVybWlzc2lvbnNQYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUm9sZXMnLCBwYXlsb2FkKTtcbiAgYWRkVXNlciA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUFkZFVzZXIsIElUZWFtVXNlcj4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FkZFVzZXInLCBwYXlsb2FkKTtcbiAgdXBkYXRlVXNlciA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVVwZGF0ZVVzZXIsIElUZWFtVXNlcj4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3VwZGF0ZVVzZXInLCBwYXlsb2FkKTtcbiAgZGVsZXRlVXNlciA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SURlbGV0ZVVzZXI+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVVc2VyJywgcGF5bG9hZCk7XG4gIHJlc2VuZEFjdGl2YXRpb25MaW5rID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJUmVzZW5kQWN0aXZhdGlvbkxpbms+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2VuZEFjdGl2YXRpb25MaW5rJywgcGF5bG9hZCk7XG4gIHJlc2VuZEludml0YXRpb25MaW5rID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJUmVzZW5kSW52aXRhdGlvbkxpbms+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2VuZEludml0YXRpb25MaW5rJywgcGF5bG9hZCk7XG4gIG9wZW5BZGRVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBJU2V0QWRkVXNlckRpYWxvZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignb3BlbkFkZFVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcbiAgY2xvc2VBZGRVc2VyRGlhbG9nID0gKHBheWxvYWQ/OiBhbnkpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2Nsb3NlQWRkVXNlckRpYWxvZycsIHBheWxvYWQpO1xuICBvcGVuRGVsZXRlVXNlckRpYWxvZyA9IChwYXlsb2FkPzogSVNldERlbGV0ZVVzZXJEaWFsb2cpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ29wZW5EZWxldGVVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG4gIGNsb3NlRGVsZXRlVXNlckRpYWxvZyA9IChwYXlsb2FkPzogYW55KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjbG9zZURlbGV0ZVVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcblxuICAvLyBBUEkgVG9rZW4gQWN0aW9uc1xuICBzZXRBcGlUb2tlbnNMb2FkZXIgPSAocGF5bG9hZDogQXBpU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFwaVRva2Vuc0xvYWRlcicsIHBheWxvYWQpO1xuICBzZXRBcGlUb2tlbnNFcnJvciA9IChwYXlsb2FkOiBBcGlTdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QXBpVG9rZW5zRXJyb3InLCBwYXlsb2FkKTtcbiAgc2V0QXBpVG9rZW5zU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QXBpVG9rZW5zU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBcGlUb2tlbnNTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBcGlUb2tlbnNTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0QXBpVG9rZW5zU3RhdGUnKTtcbiAgbG9hZEFwaVRva2VucyA9IChwYXlsb2FkPzogV2l0aFNpbGVudExvYWQ8V2l0aENhbGxiYWNrPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZEFwaVRva2VucycsIHBheWxvYWQpO1xuICBpbml0QXBpVG9rZW5zRGF0YSA9IChwYXlsb2FkOiBBcGlUb2tlblR5cGUpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2luaXRBcGlUb2tlbnNEYXRhJywgcGF5bG9hZCk7XG4gIGFkZFRlbmFudEFwaVRva2VuID0gKHBheWxvYWQ6IEFkZFRlbmFudEFwaVRva2VuUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYWRkVGVuYW50QXBpVG9rZW4nLCBwYXlsb2FkKTtcbiAgYWRkVXNlckFwaVRva2VuID0gKHBheWxvYWQ6IEFkZFVzZXJBcGlUb2tlblBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FkZFVzZXJBcGlUb2tlbicsIHBheWxvYWQpO1xuICBkZWxldGVVc2VyQXBpVG9rZW4gPSAocGF5bG9hZDogc3RyaW5nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVVc2VyQXBpVG9rZW4nLCBwYXlsb2FkKTtcbiAgZGVsZXRlVGVuYW50QXBpVG9rZW4gPSAocGF5bG9hZDogc3RyaW5nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVUZW5hbnRBcGlUb2tlbicsIHBheWxvYWQpO1xuXG4gIC8vIFNlY3VyaXR5IFBvbGljeSBBY3Rpb25zXG4gIHNldFNlY3VyaXR5UG9saWN5U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U2VjdXJpdHlQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZScsIHN0YXRlKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lHbG9iYWxTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxHbG9iYWxQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lHbG9iYWxTdGF0ZScsIHN0YXRlKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lQdWJsaWNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxQdWJsaWNQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lQdWJsaWNTdGF0ZScsIHN0YXRlKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lNZmFTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxNZmFQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lNZmFTdGF0ZScsIHN0YXRlKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lMb2Nrb3V0U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8TG9ja291dFBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeUxvY2tvdXRTdGF0ZScsIHN0YXRlKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lDYXB0Y2hhU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8Q2FwdGNoYVBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeUNhcHRjaGFTdGF0ZScsIHN0YXRlKTtcbiAgc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxQYXNzd29yZEhpc3RvcnlQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnlTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRTZWN1cml0eVBvbGljeVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRTZWN1cml0eVBvbGljeVN0YXRlJyk7XG4gIHNldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxQYXNzd29yZFBvbGljeVN0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkU3RhdGUnLCBzdGF0ZSk7XG4gIGxvYWRTZWN1cml0eVBvbGljeSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeScpO1xuICBsb2FkUHVibGljU2VjdXJpdHlQb2xpY3kgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUHVibGljU2VjdXJpdHlQb2xpY3knKTtcbiAgbG9hZFZlbmRvclBhc3N3b3JkQ29uZmlnID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFZlbmRvclBhc3N3b3JkQ29uZmlnJyk7XG4gIGxvYWRTZWN1cml0eVBvbGljeU1mYSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeU1mYScpO1xuICBzYXZlU2VjdXJpdHlQb2xpY3lNZmEgPSAocGF5bG9hZDogU2F2ZVNlY3VyaXR5UG9saWN5TWZhUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU2VjdXJpdHlQb2xpY3lNZmEnLCBwYXlsb2FkKTtcbiAgbG9hZFNlY3VyaXR5UG9saWN5TG9ja291dCA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeUxvY2tvdXQnKTtcbiAgc2F2ZVNlY3VyaXR5UG9saWN5TG9ja291dCA9IChwYXlsb2FkOiBTYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0UGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU2VjdXJpdHlQb2xpY3lMb2Nrb3V0JywgcGF5bG9hZCk7XG4gIGxvYWRTZWN1cml0eVBvbGljeUNhcHRjaGEgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lDYXB0Y2hhJyk7XG4gIGxvYWRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeScpO1xuICBzYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnkgPSAocGF5bG9hZDogU2F2ZVNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5UGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzYXZlU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnknLCBwYXlsb2FkKTtcblxuICAvLyBBY2NvdW50IFNldHRpbmdzIEFjdGlvbnNcbiAgc2V0QWNjb3VudFNldHRpbmdzU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QWNjb3VudFNldHRpbmdzU3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjY291bnRTZXR0aW5nc1N0YXRlJywgc3RhdGUpO1xuICByZXNldEFjY291bnRTZXR0aW5nc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZScpO1xuICBsb2FkQWNjb3VudFNldHRpbmdzID0gKHBheWxvYWQ/OiBXaXRoQ2FsbGJhY2s8V2l0aFNpbGVudExvYWQ8e30+PikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkQWNjb3VudFNldHRpbmdzJywgcGF5bG9hZCk7XG4gIHNhdmVBY2NvdW50U2V0dGluZ3MgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElTZXR0aW5nc1Jlc3BvbnNlLCBJU2V0dGluZ3NSZXNwb25zZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZUFjY291bnRTZXR0aW5ncycsIHBheWxvYWQpO1xuXG4gIC8vIFRlbmFudHMgQWN0aW9uc1xuICBzZXRUZW5hbnRzU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8VGVuYW50c1N0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVuYW50c1N0YXRlJywgc3RhdGUpO1xuICByZXNldFRlbmFudHNTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0VGVuYW50c1N0YXRlJyk7XG4gIHN3aXRjaFRlbmFudCA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVN3aXRjaFRlbmFudD4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3N3aXRjaFRlbmFudCcsIHBheWxvYWQpO1xuICBsb2FkVGVuYW50cyA9IChwYXlsb2FkPzogV2l0aENhbGxiYWNrPHt9LCBJVGVuYW50c1Jlc3BvbnNlW10+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkVGVuYW50cycsIHBheWxvYWQpO1xuXG4gIC8vIFJvbGVzIEFjdGlvbnNcbiAgc2V0Um9sZXNTdGF0ZSA9IChzdGF0ZTogUm9sZXNTdGF0ZSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0Um9sZXNTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRSb2xlc1N0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRSb2xlc1N0YXRlJyk7XG4gIGxvYWRSb2xlc0FuZFBlcm1pc3Npb25zID0gKHBheWxvYWQ/OiBXaXRoU2lsZW50TG9hZDx7fT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRSb2xlc0FuZFBlcm1pc3Npb25zJywgcGF5bG9hZCk7XG4gIGFkZFJvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElBZGRSb2xlLCBJUm9sZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FkZFJvbGUnLCBwYXlsb2FkKTtcbiAgdXBkYXRlUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVVwZGF0ZVJvbGUsIElSb2xlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigndXBkYXRlUm9sZScsIHBheWxvYWQpO1xuICBkZWxldGVSb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJRGVsZXRlUm9sZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVJvbGUnLCBwYXlsb2FkKTtcbiAgYXR0YWNoUGVybWlzc2lvbnNUb1JvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElBdHRhY2hQZXJtaXNzaW9uc1RvUm9sZSwgSVJvbGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2F0dGFjaFBlcm1pc3Npb25zVG9Sb2xlJywgcGF5bG9hZCk7XG5cbiAgYXR0YWNoUGVybWlzc2lvblRvUm9sZXMgPSAoXG4gICAgcGF5bG9hZDogV2l0aENhbGxiYWNrPHtcbiAgICAgIHBlcm1pc3Npb25JZDogc3RyaW5nO1xuICAgICAgcm9sZUlkczogc3RyaW5nW107XG4gICAgfSxcbiAgICAgIElSb2xlUGVybWlzc2lvbj4sXG4gICkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignYXR0YWNoUGVybWlzc2lvblRvUm9sZXMnLCBwYXlsb2FkKTtcbn1cbiJdfQ==
|
|
286
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZnJvbnRlZ2ctYXBwL3NyYy9saWIvZnJvbnRlZ2ctYXV0aC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLGFBQWEsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBdUNMLGFBQWEsR0FJZCxNQUFNLHVCQUF1QixDQUFDOzs7QUEwRC9CLE1BQU0sT0FBTyxtQkFBbUI7SUFxSDlCLFlBQW9CLGtCQUFzQztRQUF0Qyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBcEhsRCxpQ0FBNEIsR0FBRyxJQUFJLGVBQWUsQ0FBcUMsRUFBd0MsQ0FBQyxDQUFDO1FBQ2pJLGdDQUEyQixHQUFHLElBQUksZUFBZSxDQUFvQyxFQUF1QyxDQUFDLENBQUM7UUFDOUgseUJBQW9CLEdBQUcsSUFBSSxlQUFlLENBQTZCLEVBQWdDLENBQUMsQ0FBQztRQUN6RywwQkFBcUIsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBaUMsQ0FBQyxDQUFDO1FBQzVHLCtCQUEwQixHQUFHLElBQUksZUFBZSxDQUFtQyxFQUFzQyxDQUFDLENBQUM7UUFDM0gsc0JBQWlCLEdBQUcsSUFBSSxlQUFlLENBQTBCLEVBQTZCLENBQUMsQ0FBQztRQUNoRyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUF3QixFQUEyQixDQUFDLENBQUM7UUFDMUYsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQTRCLEVBQStCLENBQUMsQ0FBQztRQUN0RyxzQkFBaUIsR0FBRyxJQUFJLGVBQWUsQ0FBMEIsRUFBNkIsQ0FBQyxDQUFD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SUFDOUMsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQXVDTyxjQUFjLENBQUMsSUFBWSxFQUFFLE9BQWE7UUFDaEQsTUFBTSxLQUFLLEdBQWtCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1FBQ3ZFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxhQUFhLElBQUksSUFBSSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDOzs7O1lBaEtGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7O1lBdEdRLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRnJvbnRlZ2dBcHBTZXJ2aWNlIH0gZnJvbSAnLi9mcm9udGVnZy1hcHAuc2VydmljZSc7XG5pbXBvcnQgRmFzdERlZXBFcXVhbCBmcm9tICdmYXN0LWRlZXAtZXF1YWwnO1xuaW1wb3J0IHtcbiAgUm9sZXNTdGF0ZSxcbiAgVGVuYW50c1N0YXRlLFxuICBBY2NvdW50U2V0dGluZ3NTdGF0ZSxcbiAgU2F2ZVNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5UGF5bG9hZCxcbiAgU2F2ZVNlY3VyaXR5UG9saWN5TG9ja291dFBheWxvYWQsXG4gIFNhdmVTZWN1cml0eVBvbGljeU1mYVBheWxvYWQsXG4gIFBhc3N3b3JkUG9saWN5U3RhdGUsXG4gIFBhc3N3b3JkSGlzdG9yeVBvbGljeVN0YXRlLFxuICBNZmFQb2xpY3lTdGF0ZSxcbiAgQ2FwdGNoYVBvbGljeVN0YXRlLFxuICBMb2Nrb3V0UG9saWN5U3RhdGUsXG4gIFB1YmxpY1BvbGljeVN0YXRlLFxuICBHbG9iYWxQb2xpY3lTdGF0ZSxcbiAgU2VjdXJpdHlQb2xpY3lTdGF0ZSxcbiAgQWRkVXNlckFwaVRva2VuUGF5bG9hZCxcbiAgQWRkVGVuYW50QXBpVG9rZW5QYXlsb2FkLFxuICBBcGlUb2tlblR5cGUsXG4gIEFwaVRva2Vuc1N0YXRlLFxuICBBcGlTdGF0ZUluZGljYXRvcixcbiAgSVNldERlbGV0ZVVzZXJEaWFsb2csXG4gIElTZXRBZGRVc2VyRGlhbG9nLFxuICBMb2FkUm9sZXNBbmRQZXJtaXNzaW9uc1BheWxvYWQsXG4gIFRlYW1TdGF0ZSxcbiAgVGVhbVN0YXRlSW5kaWNhdG9yLFxuICBNRkFTdGF0ZSxcbiAgU2F2ZVNTT0NvbmZpZ3VyYXRpb25QYXlsb2FkLFxuICBTU09TdGF0ZSxcbiAgUHJvZmlsZVN0YXRlLFxuICBTYXZlU1NPQ29uZmlndXJhdGlvbkZpbGVQYXlsb2FkLFxuICBVcGRhdGVTU09BdXRob3JpemF0aW9uUm9sZXNQYXlsb2FkLFxuICBEZWxldGVTYW1sR3JvdXBQYXlsb2FkLFxuICBDcmVhdGVTYW1sR3JvdXBQYXlsb2FkLFxuICBTYXZlUHJvZmlsZVBheWxvYWQsXG4gIFNpZ25VcFN0YXRlLFxuICBGb3Jnb3RQYXNzd29yZFN0YXRlLFxuICBBY2NlcHRJbnZpdGF0aW9uU3RhdGUsXG4gIEF1dGhTdGF0ZSxcbiAgVXNlcixcbiAgYXV0aFN0b3JlTmFtZSxcbiAgTG9naW5TdGF0ZSxcbiAgQWN0aXZhdGVBY2NvdW50U3RyYXRlZ3lTdGF0ZSxcbiAgRW5oYW5jZWRTdG9yZSxcbn0gZnJvbSAnQGZyb250ZWdnL3JlZHV4LXN0b3JlJztcbmltcG9ydCB7XG4gIElMb2dpbixcbiAgSUxvZ2luV2l0aE1mYSxcbiAgSVBvc3RMb2dpbixcbiAgSVByZUxvZ2luLFxuICBJUmVjb3Zlck1GQVRva2VuLFxuICBJQWN0aXZhdGVBY2NvdW50LFxuICBJTG9naW5WaWFTb2NpYWxMb2dpbixcbiAgSVNldFNvY2lhbExvZ2luRXJyb3IsXG4gIElSZXNlbmRBY3RpdmF0aW9uRW1haWwsXG4gIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneSxcbiAgSUdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5UmVzcG9uc2UsXG4gIElBY2NlcHRJbnZpdGF0aW9uLFxuICBJRm9yZ290UGFzc3dvcmQsXG4gIElSZXNldFBhc3N3b3JkLFxuICBJR2V0VXNlclBhc3N3b3JkQ29uZmlnLFxuICBJU2lnblVwVXNlcixcbiAgSUNoYW5nZVBhc3N3b3JkLFxuICBJT2lkY1Bvc3RMb2dpbixcbiAgSVZlcmlmeU1mYSxcbiAgSURpc2FibGVNZmEsXG4gIElMb2FkVXNlcnMsXG4gIElUZWFtVXNlcixcbiAgSUFkZFVzZXIsXG4gIElVcGRhdGVVc2VyLFxuICBJRGVsZXRlVXNlcixcbiAgSVJlc2VuZEFjdGl2YXRpb25MaW5rLFxuICBJU2V0dGluZ3NSZXNwb25zZSxcbiAgSVN3aXRjaFRlbmFudCxcbiAgSVRlbmFudHNSZXNwb25zZSxcbiAgSUFkZFJvbGUsXG4gIElSb2xlLFxuICBJVXBkYXRlUm9sZSxcbiAgSURlbGV0ZVJvbGUsXG4gIElBdHRhY2hQZXJtaXNzaW9uc1RvUm9sZSxcbiAgSVJlc2VuZEludml0YXRpb25MaW5rLFxuICBJUm9sZVBlcm1pc3Npb24sXG59IGZyb20gJ0Bmcm9udGVnZy9yZXN0LWFwaSc7XG5pbXBvcnQgeyBBY3RpdmF0ZUFjY291bnRTdGF0ZSwgU29jaWFsTG9naW5TdGF0ZSB9IGZyb20gJ0Bmcm9udGVnZy9yZWR1eC1zdG9yZS9hdXRoJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW50ZXJmYWNlIEF1dGhTdWJTdGF0ZXMge1xuICBmaWVsZDogUGFydGlhbDxrZXlvZiBBdXRoU3RhdGU+O1xuICBzdWJqZWN0OiBCZWhhdmlvclN1YmplY3Q8YW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgV2l0aENhbGxiYWNrPFQgPSB7fSwgUiA9IGJvb2xlYW4+ID0gVCAmIHtcbiAgY2FsbGJhY2s/OiAoZGF0YTogUiB8IG51bGwsIGVycm9yPzogc3RyaW5nKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IHR5cGUgV2l0aFNpbGVudExvYWQ8VD4gPSBUICYge1xuICBzaWxlbnRMb2FkaW5nPzogYm9vbGVhbjtcbn07XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBGcm9udGVnZ0F1dGhTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBhY2NlcHRJbnZpdGF0aW9uU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2FjY2VwdEludml0YXRpb25TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ2FjY2VwdEludml0YXRpb25TdGF0ZSddKTtcbiAgcHJpdmF0ZSBhY2NvdW50U2V0dGluZ3NTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYWNjb3VudFNldHRpbmdzU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddKTtcbiAgcHJpdmF0ZSBhY3RpdmF0ZVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnYWN0aXZhdGVTdGF0ZSddKTtcbiAgcHJpdmF0ZSBhcGlUb2tlbnNTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnYXBpVG9rZW5zU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydhcGlUb2tlbnNTdGF0ZSddKTtcbiAgcHJpdmF0ZSBmb3Jnb3RQYXNzd29yZFN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydmb3Jnb3RQYXNzd29yZFN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnZm9yZ290UGFzc3dvcmRTdGF0ZSddKTtcbiAgcHJpdmF0ZSBsb2dpblN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydsb2dpblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnbG9naW5TdGF0ZSddKTtcbiAgcHJpdmF0ZSBtZmFTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnbWZhU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydtZmFTdGF0ZSddKTtcbiAgcHJpdmF0ZSBwcm9maWxlU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3Byb2ZpbGVTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3Byb2ZpbGVTdGF0ZSddKTtcbiAgcHJpdmF0ZSByb2xlc1N0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydyb2xlc1N0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsncm9sZXNTdGF0ZSddKTtcbiAgcHJpdmF0ZSByb3V0ZXNTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3JvdXRlcyddPih7fSBhcyBBdXRoU3RhdGVbJ3JvdXRlcyddKTtcbiAgcHJpdmF0ZSBzZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzZWN1cml0eVBvbGljeVN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc2VjdXJpdHlQb2xpY3lTdGF0ZSddKTtcbiAgcHJpdmF0ZSBzaWduVXBTdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc2lnblVwU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzaWduVXBTdGF0ZSddKTtcbiAgcHJpdmF0ZSBzb2NpYWxMb2dpblN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10+KHt9IGFzIEF1dGhTdGF0ZVsnc29jaWFsTG9naW5TdGF0ZSddKTtcbiAgcHJpdmF0ZSBzc29TdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc3NvU3RhdGUnXT4oe30gYXMgQXV0aFN0YXRlWydzc29TdGF0ZSddKTtcbiAgcHJpdmF0ZSB0ZWFtU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3RlYW1TdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3RlYW1TdGF0ZSddKTtcbiAgcHJpdmF0ZSB0ZW5hbnRzU3RhdGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ3RlbmFudHNTdGF0ZSddPih7fSBhcyBBdXRoU3RhdGVbJ3RlbmFudHNTdGF0ZSddKTtcbiAgcHJpdmF0ZSB1c2VyU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWyd1c2VyJ10+KHt9IGFzIEF1dGhTdGF0ZVsndXNlciddKTtcbiAgcHJpdmF0ZSBpc0F1dGhlbnRpY2F0ZWRTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBdXRoU3RhdGVbJ2lzQXV0aGVudGljYXRlZCddPihmYWxzZSk7XG4gIHByaXZhdGUgaXNMb2FkaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydpc0xvYWRpbmcnXT4odHJ1ZSk7XG4gIHByaXZhdGUgaXNTU09BdXRoU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QXV0aFN0YXRlWydpc1NTT0F1dGgnXT4oZmFsc2UpO1xuICBwcml2YXRlIHNzb0FDU1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEF1dGhTdGF0ZVsnc3NvQUNTJ10+KCcnKTtcblxuXG4gIGdldCBhY2NlcHRJbnZpdGF0aW9uU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NlcHRJbnZpdGF0aW9uU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmFjY2VwdEludml0YXRpb25TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgYWNjb3VudFNldHRpbmdzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY2NvdW50U2V0dGluZ3NTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudFNldHRpbmdzU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGFjdGl2YXRlU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydhY3RpdmF0ZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZVN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBhcGlUb2tlbnNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2FwaVRva2Vuc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5hcGlUb2tlbnNTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgZm9yZ290UGFzc3dvcmRTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnXT4ge1xuICAgIHJldHVybiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGxvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydsb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5sb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBtZmFTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ21mYVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5tZmFTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgcHJvZmlsZVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsncHJvZmlsZVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJvbGVzU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydyb2xlc1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5yb2xlc1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCByb3V0ZXNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3JvdXRlcyddPiB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVzU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzZWN1cml0eVBvbGljeVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnc2VjdXJpdHlQb2xpY3lTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VjdXJpdHlQb2xpY3lTdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgc2lnblVwU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzaWduVXBTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMuc2lnblVwU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNvY2lhbExvZ2luU3RhdGUkKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydzb2NpYWxMb2dpblN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCBzc29TdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nzb1N0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy5zc29TdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdGVhbVN0YXRlJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndGVhbVN0YXRlJ10+IHtcbiAgICByZXR1cm4gdGhpcy50ZWFtU3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHRlbmFudHNTdGF0ZSQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3RlbmFudHNTdGF0ZSddPiB7XG4gICAgcmV0dXJuIHRoaXMudGVuYW50c1N0YXRlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGdldCB1c2VyJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsndXNlciddPiB7XG4gICAgcmV0dXJuIHRoaXMudXNlclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgdXNlcigpOiBBdXRoU3RhdGVbJ3VzZXInXSB7XG4gICAgcmV0dXJuIHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlLmdldFN0YXRlKCkuYXV0aC51c2VyO1xuICB9XG5cblxuICBnZXQgaXNBdXRoZW50aWNhdGVkJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNBdXRoZW50aWNhdGVkJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IGlzQXV0aGVudGljYXRlZCgpOiBBdXRoU3RhdGVbJ2lzQXV0aGVudGljYXRlZCddIHtcbiAgICByZXR1cm4gdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuZnJvbnRlZ2dBcHAuc3RvcmUuZ2V0U3RhdGUoKS5hdXRoLmlzQXV0aGVudGljYXRlZDtcbiAgfVxuXG4gIGdldCBpc0xvYWRpbmckKCk6IE9ic2VydmFibGU8QXV0aFN0YXRlWydpc0xvYWRpbmcnXT4ge1xuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBnZXQgaXNTU09BdXRoJCgpOiBPYnNlcnZhYmxlPEF1dGhTdGF0ZVsnaXNTU09BdXRoJ10+IHtcbiAgICByZXR1cm4gdGhpcy5pc1NTT0F1dGhTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHNzb0FDUyQoKTogT2JzZXJ2YWJsZTxBdXRoU3RhdGVbJ3Nzb0FDUyddPiB7XG4gICAgcmV0dXJuIHRoaXMuc3NvQUNTU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZnJvbnRlZ2dBcHBTZXJ2aWNlOiBGcm9udGVnZ0FwcFNlcnZpY2UpIHtcbiAgICBjb25zdCBhdXRoU3ViU3RhdGVzOiBBdXRoU3ViU3RhdGVzW10gPSBbXG4gICAgICB7IGZpZWxkOiAnYWNjZXB0SW52aXRhdGlvblN0YXRlJywgc3ViamVjdDogdGhpcy5hY2NlcHRJbnZpdGF0aW9uU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYWNjb3VudFNldHRpbmdzU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjY291bnRTZXR0aW5nc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2FjdGl2YXRlU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFjdGl2YXRlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnYXBpVG9rZW5zU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmFwaVRva2Vuc1N0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2ZvcmdvdFBhc3N3b3JkU3RhdGUnLCBzdWJqZWN0OiB0aGlzLmZvcmdvdFBhc3N3b3JkU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAndGVuYW50c1N0YXRlJywgc3ViamVjdDogdGhpcy50ZW5hbnRzU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAnbG9naW5TdGF0ZScsIHN1YmplY3Q6IHRoaXMubG9naW5TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdtZmFTdGF0ZScsIHN1YmplY3Q6IHRoaXMubWZhU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncHJvZmlsZVN0YXRlJywgc3ViamVjdDogdGhpcy5wcm9maWxlU3RhdGVTdWJqZWN0IH0sXG4gICAgICB7IGZpZWxkOiAncm9sZXNTdGF0ZScsIHN1YmplY3Q6IHRoaXMucm9sZXNTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdyb3V0ZXMnLCBzdWJqZWN0OiB0aGlzLnJvdXRlc1N1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzZWN1cml0eVBvbGljeVN0YXRlJywgc3ViamVjdDogdGhpcy5zZWN1cml0eVBvbGljeVN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3NpZ25VcFN0YXRlJywgc3ViamVjdDogdGhpcy5zaWduVXBTdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICdzb2NpYWxMb2dpblN0YXRlJywgc3ViamVjdDogdGhpcy5zb2NpYWxMb2dpblN0YXRlU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb1N0YXRlJywgc3ViamVjdDogdGhpcy5zc29TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd0ZWFtU3RhdGUnLCBzdWJqZWN0OiB0aGlzLnRlYW1TdGF0ZVN1YmplY3QgfSxcbiAgICAgIHsgZmllbGQ6ICd1c2VyJywgc3ViamVjdDogdGhpcy51c2VyU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ2lzU1NPQXV0aCcsIHN1YmplY3Q6IHRoaXMuaXNTU09BdXRoU3ViamVjdCB9LFxuICAgICAgeyBmaWVsZDogJ3Nzb0FDUycsIHN1YmplY3Q6IHRoaXMuc3NvQUNTU3ViamVjdCB9LFxuICAgIF07XG5cbiAgICAvLyBNZW1vaXplZCBBdXRoIFN0YXRlXG4gICAgdGhpcy5mcm9udGVnZ0FwcFNlcnZpY2UuYXV0aFN0YXRlJC5zdWJzY3JpYmUoKGF1dGhTdGF0ZSkgPT4ge1xuICAgICAgaWYgKGF1dGhTdGF0ZSAhPSBudWxsKSB7XG4gICAgICAgIGZvciAoY29uc3QgYXV0aFN1YlN0YXRlIG9mIGF1dGhTdWJTdGF0ZXMpIHtcbiAgICAgICAgICBpZiAoIUZhc3REZWVwRXF1YWwoYXV0aFN1YlN0YXRlLnN1YmplY3QuZ2V0VmFsdWUoKSwgYXV0aFN0YXRlW2F1dGhTdWJTdGF0ZS5maWVsZF0pKSB7XG4gICAgICAgICAgICBhdXRoU3ViU3RhdGUuc3ViamVjdC5uZXh0KGF1dGhTdGF0ZVthdXRoU3ViU3RhdGUuZmllbGRdKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0F1dGhlbnRpY2F0ZWRTdWJqZWN0Lm5leHQoYXV0aFN0YXRlLmlzQXV0aGVudGljYXRlZCk7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nU3ViamVjdC5uZXh0KGF1dGhTdGF0ZS5pc0xvYWRpbmcpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwYXRjaEFjdGlvbih0eXBlOiBzdHJpbmcsIHBheWxvYWQ/OiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzdG9yZTogRW5oYW5jZWRTdG9yZSA9IHRoaXMuZnJvbnRlZ2dBcHBTZXJ2aWNlLmZyb250ZWdnQXBwLnN0b3JlO1xuICAgIHN0b3JlLmRpc3BhdGNoKHsgdHlwZTogYCR7YXV0aFN0b3JlTmFtZX0vJHt0eXBlfWAsIHBheWxvYWQgfSk7XG4gIH1cblxuICAvLyBSb290IEFjdGlvbnNcbiAgc2V0U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QXV0aFN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFN0YXRlJyk7XG4gIHNldFVzZXIgPSAodXNlcjogVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VXNlcicsIHVzZXIpO1xuXG4gIC8vIExvZ2luIEFjdGlvbnNcbiAgc2V0TG9naW5TdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0TG9naW5TdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRMb2dpblN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRMb2dpblN0YXRlJyk7XG4gIHJlcXVlc3RBdXRob3JpemUgPSAoZmlyc3RUaW1lPzogYm9vbGVhbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEF1dGhvcml6ZScsIGZpcnN0VGltZSk7XG4gIGxvZ2luV2l0aFJlZGlyZWN0ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVxdWVzdEhvc3RlZExvZ2luQXV0aG9yaXplJyk7XG4gIHByZUxvZ2luID0gKHBheWxvYWQ6IElQcmVMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncHJlTG9naW4nLCBwYXlsb2FkKTtcbiAgcG9zdExvZ2luID0gKHBheWxvYWQ6IElQb3N0TG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Bvc3RMb2dpbicsIHBheWxvYWQpO1xuICBsb2dpbiA9IChwYXlsb2FkOiBJTG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luJywgcGF5bG9hZCk7XG4gIGxvZ2luV2l0aE1mYSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUxvZ2luV2l0aE1mYT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvZ2luV2l0aE1mYScsIHBheWxvYWQpO1xuICByZWNvdmVyTWZhID0gKHBheWxvYWQ6IElSZWNvdmVyTUZBVG9rZW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3JlY292ZXJNZmEnLCBwYXlsb2FkKTtcbiAgbG9nb3V0ID0gKGNhbGxiYWNrPzogKCkgPT4gdm9pZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9nb3V0JywgY2FsbGJhY2spO1xuICBzaWxlbnRMb2dvdXQgPSAoY2FsbGJhY2s/OiAoKSA9PiB2b2lkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzaWxlbnRMb2dvdXQnLCBjYWxsYmFjayk7XG4gIGNoZWNrSWZBbGxvd1RvUmVtZW1iZXJNZmFEZXZpY2UgPSAocGF5bG9hZDogeyBtZmFUb2tlbjogc3RyaW5nIH0pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignY2hlY2tJZkFsbG93VG9SZW1lbWJlck1mYURldmljZScsIHBheWxvYWQpO1xuXG4gIC8vIFNvY2lhbCBMb2dpbnMgQWN0aW9uc1xuICBzZXRTb2NpYWxMb2dpbnNTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxTb2NpYWxMb2dpblN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U29jaWFsTG9naW5zU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U29jaWFsTG9naW5zU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNvY2lhbExvZ2luc1N0YXRlJyk7XG4gIGxvYWRTb2NpYWxMb2dpbnNDb25maWd1cmF0aW9uID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNvY2lhbExvZ2luc0NvbmZpZ3VyYXRpb24nKTtcbiAgbG9naW5WaWFTb2NpYWxMb2dpbiA9IChwYXlsb2FkOiBJTG9naW5WaWFTb2NpYWxMb2dpbikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9naW5WaWFTb2NpYWxMb2dpbicsIHBheWxvYWQpO1xuICBzZXRTb2NpYWxMb2dpbkVycm9yID0gKHBheWxvYWQ6IElTZXRTb2NpYWxMb2dpbkVycm9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTb2NpYWxMb2dpbkVycm9yJywgcGF5bG9hZCk7XG5cbiAgLy8gQWN0aXZhdGUgQWNjb3VudCBBY3Rpb25zXG4gIHNldEFjdGl2YXRlU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8QWN0aXZhdGVBY2NvdW50U3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY3RpdmF0ZVN0YXRlJywgc3RhdGUpO1xuICByZXNldEFjdGl2YXRlU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFjdGl2YXRlU3RhdGUnKTtcbiAgc2V0QWN0aXZhdGVTdHJhdGVneVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFjdGl2YXRlU3RyYXRlZ3lTdGF0ZScsIHN0YXRlKTtcbiAgYWN0aXZhdGVBY2NvdW50ID0gKHBheWxvYWQ6IElBY3RpdmF0ZUFjY291bnQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FjdGl2YXRlQWNjb3VudCcsIHBheWxvYWQpO1xuICByZXNlbmRBY3RpdmF0aW9uRW1haWwgPSAocGF5bG9hZDogSVJlc2VuZEFjdGl2YXRpb25FbWFpbCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZW5kQWN0aXZhdGlvbkVtYWlsJywgcGF5bG9hZCk7XG4gIGdldEFjdGl2YXRlQWNjb3VudFN0cmF0ZWd5ID0gKFxuICAgIHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJR2V0QWN0aXZhdGVBY2NvdW50U3RyYXRlZ3ksIElHZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneVJlc3BvbnNlPixcbiAgKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdnZXRBY3RpdmF0ZUFjY291bnRTdHJhdGVneScsIHBheWxvYWQpO1xuXG4gIC8vIEFjY2VwdCBJbnZpdGF0aW9uIEFjdGlvbnNcbiAgc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjY2VwdEludml0YXRpb25TdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlJywgc3RhdGUpO1xuICByZXNldEFjY2VwdEludml0YXRpb25TdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0QWNjZXB0SW52aXRhdGlvblN0YXRlJyk7XG4gIGFjY2VwdEludml0YXRpb24gPSAocGF5bG9hZDogSUFjY2VwdEludml0YXRpb24pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FjY2VwdEludml0YXRpb24nLCBwYXlsb2FkKTtcblxuICAvLyBGb3Jnb3QgUGFzc3dvcmQgQWN0aW9uc1xuICBzZXRGb3Jnb3RQYXNzd29yZFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEZvcmdvdFBhc3N3b3JkU3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEZvcmdvdFBhc3N3b3JkU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0Rm9yZ290UGFzc3dvcmRTdGF0ZScpO1xuICBmb3Jnb3RQYXNzd29yZCA9IChwYXlsb2FkOiBJRm9yZ290UGFzc3dvcmQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2ZvcmdvdFBhc3N3b3JkJywgcGF5bG9hZCk7XG4gIHJlc2V0UGFzc3dvcmQgPSAocGF5bG9hZDogSVJlc2V0UGFzc3dvcmQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0UGFzc3dvcmQnLCBwYXlsb2FkKTtcbiAgbG9hZFBhc3N3b3JkQ29uZmlnID0gKHBheWxvYWQ/OiBJR2V0VXNlclBhc3N3b3JkQ29uZmlnKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUGFzc3dvcmRDb25maWcnLCBwYXlsb2FkKTtcblxuICAvLyBTaWduIFVwIEFjdGlvbnNcbiAgc2V0U2lnblVwU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8U2lnblVwU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRTaWduVXBTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRTaWduVXBTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U2lnblVwU3RhdGUnKTtcbiAgc2lnblVwVXNlciA9IChwYXlsb2FkOiBJU2lnblVwVXNlcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2lnblVwVXNlcicsIHBheWxvYWQpO1xuICByZXNldFNpZ25VcFN0YXRlU29mdCA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U2lnblVwU3RhdGVTb2Z0Jyk7XG5cbiAgLy8gUHJvZmlsZSBBY3Rpb25zXG4gIHNldFByb2ZpbGVTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxQcm9maWxlU3RhdGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRQcm9maWxlU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0UHJvZmlsZVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRQcm9maWxlU3RhdGUnKTtcbiAgbG9hZFByb2ZpbGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUHJvZmlsZScpO1xuICBzYXZlUHJvZmlsZSA9IChwYXlsb2FkOiBTYXZlUHJvZmlsZVBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVQcm9maWxlJywgcGF5bG9hZCk7XG4gIGNoYW5nZVBhc3N3b3JkID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQ2hhbmdlUGFzc3dvcmQ+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjaGFuZ2VQYXNzd29yZCcsIHBheWxvYWQpO1xuXG4gIC8vIFNTTyBhY3Rpb25zXG4gIHNldFNTT1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNTT1N0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U1NPU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U1NPU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFNTT1N0YXRlJyk7XG4gIGxvYWRTU09Db25maWd1cmF0aW9ucyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRTU09Db25maWd1cmF0aW9ucycpO1xuICBsb2FkU1NPQXV0aG9yaXphdGlvblJvbGVzID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNTT0F1dGhvcml6YXRpb25Sb2xlcycpO1xuICBzYXZlU1NPQ29uZmlndXJhdGlvbnMgPSAocGF5bG9hZDogU2F2ZVNTT0NvbmZpZ3VyYXRpb25QYXlsb2FkKSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVTU09Db25maWd1cmF0aW9ucycsIHBheWxvYWQpO1xuICBzYXZlU1NPQ29uZmlndXJhdGlvbnNGaWxlID0gKHBheWxvYWQ6IEZpbGVbXSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZScsIHBheWxvYWQpO1xuICBzYXZlU1NPQ29uZmlndXJhdGlvbnNGaWxlV2l0aENhbGxiYWNrID0gKHBheWxvYWQ6IFNhdmVTU09Db25maWd1cmF0aW9uRmlsZVBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNTT0NvbmZpZ3VyYXRpb25zRmlsZVdpdGhDYWxsYmFjaycsIHBheWxvYWQpO1xuICB2YWxpZGF0ZVNTT0RvbWFpbiA9IChwYXlsb2FkPzogV2l0aENhbGxiYWNrKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd2YWxpZGF0ZVNTT0RvbWFpbicsIHBheWxvYWQpO1xuICB1cGRhdGVTU09BdXRob3JpemF0aW9uUm9sZXMgPSAocGF5bG9hZDogVXBkYXRlU1NPQXV0aG9yaXphdGlvblJvbGVzUGF5bG9hZCkgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVTU09BdXRob3JpemF0aW9uUm9sZXMnLCBwYXlsb2FkKTtcbiAgZGVsZXRlU2FtbEdyb3VwID0gKHBheWxvYWQ6IERlbGV0ZVNhbWxHcm91cFBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2RlbGV0ZVNhbWxHcm91cCcsIHBheWxvYWQpO1xuICBjcmVhdGVTYW1sR3JvdXAgPSAocGF5bG9hZDogQ3JlYXRlU2FtbEdyb3VwUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY3JlYXRlU2FtbEdyb3VwJywgcGF5bG9hZCk7XG4gIG9pZGNQb3N0bG9naW4gPSAocGF5bG9hZDogSU9pZGNQb3N0TG9naW4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ29pZGNQb3N0bG9naW4nLCBwYXlsb2FkKTtcblxuICAvLyBNZmEgYWN0aW9uc1xuICBzZXRNZmFTdGF0ZSA9IChzdGF0ZTogUGFydGlhbDxNRkFTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldE1mYVN0YXRlJywgc3RhdGUpO1xuICByZXNldE1mYVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRNZmFTdGF0ZScpO1xuICBlbnJvbGxNZmEgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdlbnJvbGxNZmEnKTtcbiAgdmVyaWZ5TWZhID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJVmVyaWZ5TWZhLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd2ZXJpZnlNZmEnLCBwYXlsb2FkKTtcbiAgdmVyaWZ5TWZhQWZ0ZXJGb3JjZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SUxvZ2luV2l0aE1mYSwgc3RyaW5nIHwgdW5kZWZpbmVkPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCd2ZXJpZnlNZmFBZnRlckZvcmNlJywgcGF5bG9hZCk7XG4gIGRpc2FibGVNZmEgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEaXNhYmxlTWZhPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGlzYWJsZU1mYScsIHBheWxvYWQpO1xuXG4gIC8vIFRlYW0gYWN0aW9uc1xuICBzZXRUZWFtTG9hZGVyID0gKHBheWxvYWQ6IFRlYW1TdGF0ZUluZGljYXRvcikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbUxvYWRlcicsIHBheWxvYWQpO1xuICBzZXRUZWFtRXJyb3IgPSAocGF5bG9hZDogVGVhbVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRUZWFtRXJyb3InLCBwYXlsb2FkKTtcbiAgc2V0VGVhbVN0YXRlID0gKHBheWxvYWQ6IFBhcnRpYWw8VGVhbVN0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0VGVhbVN0YXRlJywgcGF5bG9hZCk7XG4gIHJlc2V0VGVhbVN0YXRlID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbigncmVzZXRUZWFtU3RhdGUnKTtcbiAgbG9hZFVzZXJzID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxXaXRoU2lsZW50TG9hZDxJTG9hZFVzZXJzPiwgSVRlYW1Vc2VyW10+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRVc2VycycsIHBheWxvYWQpO1xuICBsb2FkUm9sZXMgPSAocGF5bG9hZD86IExvYWRSb2xlc0FuZFBlcm1pc3Npb25zUGF5bG9hZCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFJvbGVzJywgcGF5bG9hZCk7XG4gIGFkZFVzZXIgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElBZGRVc2VyLCBJVGVhbVVzZXI+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRVc2VyJywgcGF5bG9hZCk7XG4gIHVwZGF0ZVVzZXIgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElVcGRhdGVVc2VyLCBJVGVhbVVzZXI+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCd1cGRhdGVVc2VyJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVVzZXIgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElEZWxldGVVc2VyPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlVXNlcicsIHBheWxvYWQpO1xuICByZXNlbmRBY3RpdmF0aW9uTGluayA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVJlc2VuZEFjdGl2YXRpb25MaW5rPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNlbmRBY3RpdmF0aW9uTGluaycsIHBheWxvYWQpO1xuICByZXNlbmRJbnZpdGF0aW9uTGluayA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SVJlc2VuZEludml0YXRpb25MaW5rPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNlbmRJbnZpdGF0aW9uTGluaycsIHBheWxvYWQpO1xuICBvcGVuQWRkVXNlckRpYWxvZyA9IChwYXlsb2FkPzogSVNldEFkZFVzZXJEaWFsb2cpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ29wZW5BZGRVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG4gIGNsb3NlQWRkVXNlckRpYWxvZyA9IChwYXlsb2FkPzogYW55KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdjbG9zZUFkZFVzZXJEaWFsb2cnLCBwYXlsb2FkKTtcbiAgb3BlbkRlbGV0ZVVzZXJEaWFsb2cgPSAocGF5bG9hZD86IElTZXREZWxldGVVc2VyRGlhbG9nKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdvcGVuRGVsZXRlVXNlckRpYWxvZycsIHBheWxvYWQpO1xuICBjbG9zZURlbGV0ZVVzZXJEaWFsb2cgPSAocGF5bG9hZD86IGFueSkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignY2xvc2VEZWxldGVVc2VyRGlhbG9nJywgcGF5bG9hZCk7XG5cbiAgLy8gQVBJIFRva2VuIEFjdGlvbnNcbiAgc2V0QXBpVG9rZW5zTG9hZGVyID0gKHBheWxvYWQ6IEFwaVN0YXRlSW5kaWNhdG9yKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBcGlUb2tlbnNMb2FkZXInLCBwYXlsb2FkKTtcbiAgc2V0QXBpVG9rZW5zRXJyb3IgPSAocGF5bG9hZDogQXBpU3RhdGVJbmRpY2F0b3IpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldEFwaVRva2Vuc0Vycm9yJywgcGF5bG9hZCk7XG4gIHNldEFwaVRva2Vuc1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFwaVRva2Vuc1N0YXRlPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0QXBpVG9rZW5zU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0QXBpVG9rZW5zU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldEFwaVRva2Vuc1N0YXRlJyk7XG4gIGxvYWRBcGlUb2tlbnMgPSAocGF5bG9hZD86IFdpdGhTaWxlbnRMb2FkPFdpdGhDYWxsYmFjaz4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRBcGlUb2tlbnMnLCBwYXlsb2FkKTtcbiAgaW5pdEFwaVRva2Vuc0RhdGEgPSAocGF5bG9hZDogQXBpVG9rZW5UeXBlKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdpbml0QXBpVG9rZW5zRGF0YScsIHBheWxvYWQpO1xuICBhZGRUZW5hbnRBcGlUb2tlbiA9IChwYXlsb2FkOiBBZGRUZW5hbnRBcGlUb2tlblBheWxvYWQpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2FkZFRlbmFudEFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGFkZFVzZXJBcGlUb2tlbiA9IChwYXlsb2FkOiBBZGRVc2VyQXBpVG9rZW5QYXlsb2FkKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRVc2VyQXBpVG9rZW4nLCBwYXlsb2FkKTtcbiAgZGVsZXRlVXNlckFwaVRva2VuID0gKHBheWxvYWQ6IHN0cmluZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlVXNlckFwaVRva2VuJywgcGF5bG9hZCk7XG4gIGRlbGV0ZVRlbmFudEFwaVRva2VuID0gKHBheWxvYWQ6IHN0cmluZykgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignZGVsZXRlVGVuYW50QXBpVG9rZW4nLCBwYXlsb2FkKTtcblxuICAvLyBTZWN1cml0eSBQb2xpY3kgQWN0aW9uc1xuICBzZXRTZWN1cml0eVBvbGljeVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFNlY3VyaXR5UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5U3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5R2xvYmFsU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8R2xvYmFsUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5R2xvYmFsU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5UHVibGljU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UHVibGljUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UHVibGljU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5TWZhU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8TWZhUG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5TWZhU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5TG9ja291dFN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPExvY2tvdXRQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lMb2Nrb3V0U3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5Q2FwdGNoYVN0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPENhcHRjaGFQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lDYXB0Y2hhU3RhdGUnLCBzdGF0ZSk7XG4gIHNldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5U3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UGFzc3dvcmRIaXN0b3J5UG9saWN5U3RhdGU+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5U3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0U2VjdXJpdHlQb2xpY3lTdGF0ZScpO1xuICBzZXRTZWN1cml0eVBvbGljeVBhc3N3b3JkU3RhdGUgPSAoc3RhdGU6IFBhcnRpYWw8UGFzc3dvcmRQb2xpY3lTdGF0ZT4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2V0U2VjdXJpdHlQb2xpY3lQYXNzd29yZFN0YXRlJywgc3RhdGUpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3kgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3knKTtcbiAgbG9hZFB1YmxpY1NlY3VyaXR5UG9saWN5ID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFB1YmxpY1NlY3VyaXR5UG9saWN5Jyk7XG4gIGxvYWRWZW5kb3JQYXNzd29yZENvbmZpZyA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2xvYWRWZW5kb3JQYXNzd29yZENvbmZpZycpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lNZmEgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lNZmEnKTtcbiAgc2F2ZVNlY3VyaXR5UG9saWN5TWZhID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeU1mYVBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNlY3VyaXR5UG9saWN5TWZhJywgcGF5bG9hZCk7XG4gIGxvYWRTZWN1cml0eVBvbGljeUxvY2tvdXQgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lMb2Nrb3V0Jyk7XG4gIHNhdmVTZWN1cml0eVBvbGljeUxvY2tvdXQgPSAocGF5bG9hZDogU2F2ZVNlY3VyaXR5UG9saWN5TG9ja291dFBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNlY3VyaXR5UG9saWN5TG9ja291dCcsIHBheWxvYWQpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lDYXB0Y2hhID0gKCkgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFNlY3VyaXR5UG9saWN5Q2FwdGNoYScpO1xuICBsb2FkU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnkgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkU2VjdXJpdHlQb2xpY3lQYXNzd29yZEhpc3RvcnknKTtcbiAgc2F2ZVNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5ID0gKHBheWxvYWQ6IFNhdmVTZWN1cml0eVBvbGljeVBhc3N3b3JkSGlzdG9yeVBheWxvYWQpID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignc2F2ZVNlY3VyaXR5UG9saWN5UGFzc3dvcmRIaXN0b3J5JywgcGF5bG9hZCk7XG5cbiAgLy8gQWNjb3VudCBTZXR0aW5ncyBBY3Rpb25zXG4gIHNldEFjY291bnRTZXR0aW5nc1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPEFjY291bnRTZXR0aW5nc1N0YXRlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRBY2NvdW50U2V0dGluZ3NTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0QWNjb3VudFNldHRpbmdzU3RhdGUnKTtcbiAgbG9hZEFjY291bnRTZXR0aW5ncyA9IChwYXlsb2FkPzogV2l0aENhbGxiYWNrPFdpdGhTaWxlbnRMb2FkPHt9Pj4pID0+XG4gICAgdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZEFjY291bnRTZXR0aW5ncycsIHBheWxvYWQpO1xuICBzYXZlQWNjb3VudFNldHRpbmdzID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJU2V0dGluZ3NSZXNwb25zZSwgSVNldHRpbmdzUmVzcG9uc2U+KSA9PlxuICAgIHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NhdmVBY2NvdW50U2V0dGluZ3MnLCBwYXlsb2FkKTtcblxuICAvLyBUZW5hbnRzIEFjdGlvbnNcbiAgc2V0VGVuYW50c1N0YXRlID0gKHN0YXRlOiBQYXJ0aWFsPFRlbmFudHNTdGF0ZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFRlbmFudHNTdGF0ZScsIHN0YXRlKTtcbiAgcmVzZXRUZW5hbnRzU3RhdGUgPSAoKSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdyZXNldFRlbmFudHNTdGF0ZScpO1xuICBzd2l0Y2hUZW5hbnQgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElTd2l0Y2hUZW5hbnQ+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdzd2l0Y2hUZW5hbnQnLCBwYXlsb2FkKTtcbiAgbG9hZFRlbmFudHMgPSAocGF5bG9hZD86IFdpdGhDYWxsYmFjazx7fSwgSVRlbmFudHNSZXNwb25zZVtdPikgPT4gdGhpcy5kaXNwYXRjaEFjdGlvbignbG9hZFRlbmFudHMnLCBwYXlsb2FkKTtcblxuICAvLyBSb2xlcyBBY3Rpb25zXG4gIHNldFJvbGVzU3RhdGUgPSAoc3RhdGU6IFJvbGVzU3RhdGUpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3NldFJvbGVzU3RhdGUnLCBzdGF0ZSk7XG4gIHJlc2V0Um9sZXNTdGF0ZSA9ICgpID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3Jlc2V0Um9sZXNTdGF0ZScpO1xuICBsb2FkUm9sZXNBbmRQZXJtaXNzaW9ucyA9IChwYXlsb2FkPzogV2l0aFNpbGVudExvYWQ8e30+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdsb2FkUm9sZXNBbmRQZXJtaXNzaW9ucycsIHBheWxvYWQpO1xuICBhZGRSb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQWRkUm9sZSwgSVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhZGRSb2xlJywgcGF5bG9hZCk7XG4gIHVwZGF0ZVJvbGUgPSAocGF5bG9hZDogV2l0aENhbGxiYWNrPElVcGRhdGVSb2xlLCBJUm9sZT4pID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ3VwZGF0ZVJvbGUnLCBwYXlsb2FkKTtcbiAgZGVsZXRlUm9sZSA9IChwYXlsb2FkOiBXaXRoQ2FsbGJhY2s8SURlbGV0ZVJvbGU+KSA9PiB0aGlzLmRpc3BhdGNoQWN0aW9uKCdkZWxldGVSb2xlJywgcGF5bG9hZCk7XG4gIGF0dGFjaFBlcm1pc3Npb25zVG9Sb2xlID0gKHBheWxvYWQ6IFdpdGhDYWxsYmFjazxJQXR0YWNoUGVybWlzc2lvbnNUb1JvbGUsIElSb2xlPikgPT5cbiAgICB0aGlzLmRpc3BhdGNoQWN0aW9uKCdhdHRhY2hQZXJtaXNzaW9uc1RvUm9sZScsIHBheWxvYWQpO1xuXG4gIGF0dGFjaFBlcm1pc3Npb25Ub1JvbGVzID0gKFxuICAgIHBheWxvYWQ6IFdpdGhDYWxsYmFjazx7XG4gICAgICBwZXJtaXNzaW9uSWQ6IHN0cmluZztcbiAgICAgIHJvbGVJZHM6IHN0cmluZ1tdO1xuICAgIH0sXG4gICAgICBJUm9sZVBlcm1pc3Npb24+LFxuICApID0+IHRoaXMuZGlzcGF0Y2hBY3Rpb24oJ2F0dGFjaFBlcm1pc3Npb25Ub1JvbGVzJywgcGF5bG9hZCk7XG59XG4iXX0=
|
|
@@ -227,6 +227,7 @@ class FronteggAuthService {
|
|
|
227
227
|
this.setLoginState = (state) => this.dispatchAction('setLoginState', state);
|
|
228
228
|
this.resetLoginState = () => this.dispatchAction('resetLoginState');
|
|
229
229
|
this.requestAuthorize = (firstTime) => this.dispatchAction('requestAuthorize', firstTime);
|
|
230
|
+
this.loginWithRedirect = () => this.dispatchAction('requestHostedLoginAuthorize');
|
|
230
231
|
this.preLogin = (payload) => this.dispatchAction('preLogin', payload);
|
|
231
232
|
this.postLogin = (payload) => this.dispatchAction('postLogin', payload);
|
|
232
233
|
this.login = (payload) => this.dispatchAction('login', payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontegg-angular.js","sources":["../../../../projects/frontegg-app/src/lib/guards/frontegg-base-guard.ts","../../../../projects/frontegg-app/src/lib/guards/frontegg-load.guard.ts","../../../../projects/frontegg-app/src/lib/frontegg.component.ts","../../../../projects/frontegg-app/src/lib/frontegg-app.service.ts","../../../../projects/frontegg-app/src/lib/frontegg-auth.service.ts","../../../../projects/frontegg-app/src/lib/guards/frontegg-auth.guard.ts","../../../../projects/frontegg-app/src/lib/frontegg-app.module.ts","../../../../projects/frontegg-app/src/public-api.ts","../../../../projects/frontegg-app/src/frontegg-angular.ts"],"sourcesContent":["import { ActivatedRouteSnapshot, CanActivate, DefaultUrlSerializer, Router, RouterStateSnapshot, UrlSerializer, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport abstract class FronteggBaseGuard implements UrlSerializer, CanActivate {\n\n abstract canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)\n : Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;\n\n parse(url: any): UrlTree {\n const dus = new DefaultUrlSerializer();\n return dus.parse(url);\n }\n\n serialize(tree: UrlTree): any {\n const dus = new DefaultUrlSerializer();\n\n return dus\n .serialize(tree)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/gi, '$')\n .replace(/%2C/gi, ',')\n .replace(/%3B/gi, ';')\n .replace(/%2B/gi, '+')\n .replace(/%3D/gi, '=')\n .replace(/%3F/gi, '?')\n .replace(/%2F/gi, '/')\n .replace(/(https?):\\/([\\w\\d])/gi, '$1://$2');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FronteggBaseGuard } from './frontegg-base-guard';\nimport { FronteggAppService } from '../frontegg-app.service';\n\n@Injectable()\nexport class FronteggLoadGuard extends FronteggBaseGuard {\n constructor(protected fronteggAppService: FronteggAppService, protected router: Router) {\n super();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return new Observable<boolean>(obs => {\n this.fronteggAppService.isLoading$.subscribe(loading => {\n if (!loading) {\n obs.next(true);\n }\n });\n });\n }\n}\n","import { Component } from '@angular/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'frontegg',\n template: ``,\n})\nexport class FronteggComponent {\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Route, Router } from '@angular/router';\nimport { AuthPageRoutes, FronteggState, initialize } from '@frontegg/admin-portal';\nimport { FronteggAppInstance, FronteggAppOptions } from '@frontegg/types';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FronteggLoadGuard } from './guards/frontegg-load.guard';\nimport { ContextHolder, RedirectOptions } from '@frontegg/rest-api';\nimport { FronteggComponent } from './frontegg.component';\n\n\ntype FronteggApp = FronteggAppInstance & {\n showAdminPortal(): void;\n hideAdminPortal(): void;\n};\n\nexport class FronteggAppOptionsClass implements FronteggAppOptions {\n contextOptions: FronteggAppOptions['contextOptions'] = {\n baseUrl: 'https://david.frontegg.com',\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FronteggAppService {\n fronteggApp: FronteggApp;\n\n private isLoadingSubject = new BehaviorSubject<boolean>(true);\n private isAuthenticatedSubject = new BehaviorSubject<boolean>(false);\n private stateSubject = new BehaviorSubject<FronteggState>({} as FronteggState);\n private authStateSubject = new BehaviorSubject<FronteggState['auth']>({} as FronteggState['auth']);\n private auditsStateSubject = new BehaviorSubject<FronteggState['audits']>({} as FronteggState['audits']);\n private connectivityStateSubject = new BehaviorSubject<FronteggState['connectivity']>({} as FronteggState['connectivity']);\n private subscriptionsStateSubject = new BehaviorSubject<FronteggState['subscriptions']>({} as FronteggState['subscriptions']);\n private vendorStateSubject = new BehaviorSubject<FronteggState['vendor']>({} as FronteggState['vendor']);\n\n\n get state$(): Observable<FronteggState> {\n return this.stateSubject.asObservable();\n }\n\n get authState$(): Observable<FronteggState['auth']> {\n return this.authStateSubject.asObservable();\n }\n\n get auditsState$(): Observable<FronteggState['audits']> {\n return this.auditsStateSubject.asObservable();\n }\n\n get connectivityState$(): Observable<FronteggState['connectivity']> {\n return this.connectivityStateSubject.asObservable();\n }\n\n get subscriptionsState$(): Observable<FronteggState['subscriptions']> {\n return this.subscriptionsStateSubject.asObservable();\n }\n\n get vendorState$(): Observable<FronteggState['vendor']> {\n return this.vendorStateSubject.asObservable();\n }\n\n get isLoading$(): Observable<boolean> {\n return this.isLoadingSubject.asObservable();\n };\n\n\n get isAuthenticated$(): Observable<boolean> {\n return this.isAuthenticatedSubject.asObservable();\n };\n\n constructor(@Inject(FronteggAppOptionsClass) private config: FronteggAppOptions, private router: Router) {\n if (!this.config) {\n throw Error('Need to pass config: FronteggConfigOptions in FronteggAppModule.forRoot(config)');\n }\n\n const onRedirectTo = (to: string, opts?: RedirectOptions) => {\n const baseName = window.location.origin;\n let path = to;\n if (path.startsWith(baseName) && baseName !== '/') {\n path = path.substring(baseName.length - 1);\n }\n\n if (opts?.refresh) {\n window.location.href = path;\n } else {\n if (opts?.replace) {\n this.router.navigate([path], { replaceUrl: true });\n } else {\n this.router.navigate([path]);\n }\n }\n };\n ContextHolder.setOnRedirectTo(onRedirectTo);\n this.fronteggApp = initialize({\n onRedirectTo,\n ...this.config,\n });\n\n\n // Add all login box routes to Angular router config\n this.router.resetConfig([\n ...this.mapAuthComponents,\n {\n path: '',\n canActivate: [FronteggLoadGuard],\n children: [...this.router.config],\n },\n ]);\n\n\n // Subscribe on fronteggApp store to change state subjects\n this.fronteggApp.store.subscribe(() => {\n const fronteggStore = this.fronteggApp.store.getState() as FronteggState;\n if (this.isLoadingSubject.getValue() !== fronteggStore.auth.isLoading) {\n this.isLoadingSubject.next(fronteggStore.auth.isLoading);\n }\n if (this.isAuthenticatedSubject.getValue() !== fronteggStore.auth.isAuthenticated) {\n this.isAuthenticatedSubject.next(fronteggStore.auth.isAuthenticated);\n }\n\n this.stateSubject.next(fronteggStore);\n this.authStateSubject.next(fronteggStore.auth);\n this.auditsStateSubject.next(fronteggStore.audits);\n this.connectivityStateSubject.next(fronteggStore.connectivity);\n this.subscriptionsStateSubject.next(fronteggStore.subscriptions);\n this.vendorStateSubject.next(fronteggStore.vendor);\n });\n }\n\n get mapAuthComponents(): Route[] {\n const authRoutes = this.authRoutes;\n return (Object.keys(authRoutes) as (keyof AuthPageRoutes)[])\n .filter((key: keyof AuthPageRoutes) => key !== 'authenticatedUrl' && key !== 'signUpSuccessUrl' && key != null)\n .map((key: keyof AuthPageRoutes) => ({\n path: authRoutes[key]?.substring(1),\n component: FronteggComponent,\n }));\n }\n\n get authRoutes(): AuthPageRoutes {\n return this.fronteggApp.store.getState().auth.routes;\n }\n\n // Open admin portal\n public showAdminPortal(): void {\n this.fronteggApp.showAdminPortal();\n }\n\n // Open admin portal\n public hideAdminPortal(): void {\n this.fronteggApp?.hideAdminPortal();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { FronteggAppService } from './frontegg-app.service';\nimport FastDeepEqual from 'fast-deep-equal';\nimport {\n RolesState,\n TenantsState,\n AccountSettingsState,\n SaveSecurityPolicyPasswordHistoryPayload,\n SaveSecurityPolicyLockoutPayload,\n SaveSecurityPolicyMfaPayload,\n PasswordPolicyState,\n PasswordHistoryPolicyState,\n MfaPolicyState,\n CaptchaPolicyState,\n LockoutPolicyState,\n PublicPolicyState,\n GlobalPolicyState,\n SecurityPolicyState,\n AddUserApiTokenPayload,\n AddTenantApiTokenPayload,\n ApiTokenType,\n ApiTokensState,\n ApiStateIndicator,\n ISetDeleteUserDialog,\n ISetAddUserDialog,\n LoadRolesAndPermissionsPayload,\n TeamState,\n TeamStateIndicator,\n MFAState,\n SaveSSOConfigurationPayload,\n SSOState,\n ProfileState,\n SaveSSOConfigurationFilePayload,\n UpdateSSOAuthorizationRolesPayload,\n DeleteSamlGroupPayload,\n CreateSamlGroupPayload,\n SaveProfilePayload,\n SignUpState,\n ForgotPasswordState,\n AcceptInvitationState,\n AuthState,\n User,\n authStoreName,\n LoginState,\n ActivateAccountStrategyState,\n EnhancedStore,\n} from '@frontegg/redux-store';\nimport {\n ILogin,\n ILoginWithMfa,\n IPostLogin,\n IPreLogin,\n IRecoverMFAToken,\n IActivateAccount,\n ILoginViaSocialLogin,\n ISetSocialLoginError,\n IResendActivationEmail,\n IGetActivateAccountStrategy,\n IGetActivateAccountStrategyResponse,\n IAcceptInvitation,\n IForgotPassword,\n IResetPassword,\n IGetUserPasswordConfig,\n ISignUpUser,\n IChangePassword,\n IOidcPostLogin,\n IVerifyMfa,\n IDisableMfa,\n ILoadUsers,\n ITeamUser,\n IAddUser,\n IUpdateUser,\n IDeleteUser,\n IResendActivationLink,\n ISettingsResponse,\n ISwitchTenant,\n ITenantsResponse,\n IAddRole,\n IRole,\n IUpdateRole,\n IDeleteRole,\n IAttachPermissionsToRole,\n IResendInvitationLink,\n IRolePermission,\n} from '@frontegg/rest-api';\nimport { ActivateAccountState, SocialLoginState } from '@frontegg/redux-store/auth';\nimport { Observable } from 'rxjs';\n\ninterface AuthSubStates {\n field: Partial<keyof AuthState>;\n subject: BehaviorSubject<any>;\n}\n\nexport type WithCallback<T = {}, R = boolean> = T & {\n callback?: (data: R | null, error?: string) => void;\n};\n\nexport type WithSilentLoad<T> = T & {\n silentLoading?: boolean;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FronteggAuthService {\n private acceptInvitationStateSubject = new BehaviorSubject<AuthState['acceptInvitationState']>({} as AuthState['acceptInvitationState']);\n private accountSettingsStateSubject = new BehaviorSubject<AuthState['accountSettingsState']>({} as AuthState['accountSettingsState']);\n private activateStateSubject = new BehaviorSubject<AuthState['activateState']>({} as AuthState['activateState']);\n private apiTokensStateSubject = new BehaviorSubject<AuthState['apiTokensState']>({} as AuthState['apiTokensState']);\n private forgotPasswordStateSubject = new BehaviorSubject<AuthState['forgotPasswordState']>({} as AuthState['forgotPasswordState']);\n private loginStateSubject = new BehaviorSubject<AuthState['loginState']>({} as AuthState['loginState']);\n private mfaStateSubject = new BehaviorSubject<AuthState['mfaState']>({} as AuthState['mfaState']);\n private profileStateSubject = new BehaviorSubject<AuthState['profileState']>({} as AuthState['profileState']);\n private rolesStateSubject = new BehaviorSubject<AuthState['rolesState']>({} as AuthState['rolesState']);\n private routesSubject = new BehaviorSubject<AuthState['routes']>({} as AuthState['routes']);\n private securityPolicyStateSubject = new BehaviorSubject<AuthState['securityPolicyState']>({} as AuthState['securityPolicyState']);\n private signUpStateSubject = new BehaviorSubject<AuthState['signUpState']>({} as AuthState['signUpState']);\n private socialLoginStateSubject = new BehaviorSubject<AuthState['socialLoginState']>({} as AuthState['socialLoginState']);\n private ssoStateSubject = new BehaviorSubject<AuthState['ssoState']>({} as AuthState['ssoState']);\n private teamStateSubject = new BehaviorSubject<AuthState['teamState']>({} as AuthState['teamState']);\n private tenantsStateSubject = new BehaviorSubject<AuthState['tenantsState']>({} as AuthState['tenantsState']);\n private userSubject = new BehaviorSubject<AuthState['user']>({} as AuthState['user']);\n private isAuthenticatedSubject = new BehaviorSubject<AuthState['isAuthenticated']>(false);\n private isLoadingSubject = new BehaviorSubject<AuthState['isLoading']>(true);\n private isSSOAuthSubject = new BehaviorSubject<AuthState['isSSOAuth']>(false);\n private ssoACSSubject = new BehaviorSubject<AuthState['ssoACS']>('');\n\n\n get acceptInvitationState$(): Observable<AuthState['acceptInvitationState']> {\n return this.acceptInvitationStateSubject.asObservable();\n }\n\n get accountSettingsState$(): Observable<AuthState['accountSettingsState']> {\n return this.accountSettingsStateSubject.asObservable();\n }\n\n get activateState$(): Observable<AuthState['activateState']> {\n return this.activateStateSubject.asObservable();\n }\n\n get apiTokensState$(): Observable<AuthState['apiTokensState']> {\n return this.apiTokensStateSubject.asObservable();\n }\n\n get forgotPasswordState$(): Observable<AuthState['forgotPasswordState']> {\n return this.forgotPasswordStateSubject.asObservable();\n }\n\n get loginState$(): Observable<AuthState['loginState']> {\n return this.loginStateSubject.asObservable();\n }\n\n get mfaState$(): Observable<AuthState['mfaState']> {\n return this.mfaStateSubject.asObservable();\n }\n\n get profileState$(): Observable<AuthState['profileState']> {\n return this.profileStateSubject.asObservable();\n }\n\n get rolesState$(): Observable<AuthState['rolesState']> {\n return this.rolesStateSubject.asObservable();\n }\n\n get routesState$(): Observable<AuthState['routes']> {\n return this.routesSubject.asObservable();\n }\n\n get securityPolicyState$(): Observable<AuthState['securityPolicyState']> {\n return this.securityPolicyStateSubject.asObservable();\n }\n\n get signUpState$(): Observable<AuthState['signUpState']> {\n return this.signUpStateSubject.asObservable();\n }\n\n get socialLoginState$(): Observable<AuthState['socialLoginState']> {\n return this.socialLoginStateSubject.asObservable();\n }\n\n get ssoState$(): Observable<AuthState['ssoState']> {\n return this.ssoStateSubject.asObservable();\n }\n\n get teamState$(): Observable<AuthState['teamState']> {\n return this.teamStateSubject.asObservable();\n }\n\n get tenantsState$(): Observable<AuthState['tenantsState']> {\n return this.tenantsStateSubject.asObservable();\n }\n\n get user$(): Observable<AuthState['user']> {\n return this.userSubject.asObservable();\n }\n\n get user(): AuthState['user'] {\n return this.fronteggAppService.fronteggApp.store.getState().auth.user;\n }\n\n\n get isAuthenticated$(): Observable<AuthState['isAuthenticated']> {\n return this.isAuthenticatedSubject.asObservable();\n }\n\n get isAuthenticated(): AuthState['isAuthenticated'] {\n return this.fronteggAppService.fronteggApp.store.getState().auth.isAuthenticated;\n }\n\n get isLoading$(): Observable<AuthState['isLoading']> {\n return this.isLoadingSubject.asObservable();\n }\n\n get isSSOAuth$(): Observable<AuthState['isSSOAuth']> {\n return this.isSSOAuthSubject.asObservable();\n }\n\n get ssoACS$(): Observable<AuthState['ssoACS']> {\n return this.ssoACSSubject.asObservable();\n }\n\n constructor(private fronteggAppService: FronteggAppService) {\n const authSubStates: AuthSubStates[] = [\n { field: 'acceptInvitationState', subject: this.acceptInvitationStateSubject },\n { field: 'accountSettingsState', subject: this.accountSettingsStateSubject },\n { field: 'activateState', subject: this.activateStateSubject },\n { field: 'apiTokensState', subject: this.apiTokensStateSubject },\n { field: 'forgotPasswordState', subject: this.forgotPasswordStateSubject },\n { field: 'tenantsState', subject: this.tenantsStateSubject },\n { field: 'loginState', subject: this.loginStateSubject },\n { field: 'mfaState', subject: this.mfaStateSubject },\n { field: 'profileState', subject: this.profileStateSubject },\n { field: 'rolesState', subject: this.rolesStateSubject },\n { field: 'routes', subject: this.routesSubject },\n { field: 'securityPolicyState', subject: this.securityPolicyStateSubject },\n { field: 'signUpState', subject: this.signUpStateSubject },\n { field: 'socialLoginState', subject: this.socialLoginStateSubject },\n { field: 'ssoState', subject: this.ssoStateSubject },\n { field: 'teamState', subject: this.teamStateSubject },\n { field: 'user', subject: this.userSubject },\n { field: 'isSSOAuth', subject: this.isSSOAuthSubject },\n { field: 'ssoACS', subject: this.ssoACSSubject },\n ];\n\n // Memoized Auth State\n this.fronteggAppService.authState$.subscribe((authState) => {\n if (authState != null) {\n for (const authSubState of authSubStates) {\n if (!FastDeepEqual(authSubState.subject.getValue(), authState[authSubState.field])) {\n authSubState.subject.next(authState[authSubState.field]);\n }\n }\n this.isAuthenticatedSubject.next(authState.isAuthenticated);\n this.isLoadingSubject.next(authState.isLoading);\n }\n });\n }\n\n private dispatchAction(type: string, payload?: any): void {\n const store: EnhancedStore = this.fronteggAppService.fronteggApp.store;\n store.dispatch({ type: `${authStoreName}/${type}`, payload });\n }\n\n // Root Actions\n setState = (state: Partial<AuthState>) => this.dispatchAction('setState', state);\n resetState = () => this.dispatchAction('resetState');\n setUser = (user: User) => this.dispatchAction('setUser', user);\n\n // Login Actions\n setLoginState = (state: Partial<LoginState>) => this.dispatchAction('setLoginState', state);\n resetLoginState = () => this.dispatchAction('resetLoginState');\n requestAuthorize = (firstTime?: boolean) => this.dispatchAction('requestAuthorize', firstTime);\n preLogin = (payload: IPreLogin) => this.dispatchAction('preLogin', payload);\n postLogin = (payload: IPostLogin) => this.dispatchAction('postLogin', payload);\n login = (payload: ILogin) => this.dispatchAction('login', payload);\n loginWithMfa = (payload: WithCallback<ILoginWithMfa>) => this.dispatchAction('loginWithMfa', payload);\n recoverMfa = (payload: IRecoverMFAToken) => this.dispatchAction('recoverMfa', payload);\n logout = (callback?: () => void) => this.dispatchAction('logout', callback);\n silentLogout = (callback?: () => void) => this.dispatchAction('silentLogout', callback);\n checkIfAllowToRememberMfaDevice = (payload: { mfaToken: string }) =>\n this.dispatchAction('checkIfAllowToRememberMfaDevice', payload);\n\n // Social Logins Actions\n setSocialLoginsState = (state: Partial<SocialLoginState>) => this.dispatchAction('setSocialLoginsState', state);\n resetSocialLoginsState = () => this.dispatchAction('resetSocialLoginsState');\n loadSocialLoginsConfiguration = () => this.dispatchAction('loadSocialLoginsConfiguration');\n loginViaSocialLogin = (payload: ILoginViaSocialLogin) => this.dispatchAction('loginViaSocialLogin', payload);\n setSocialLoginError = (payload: ISetSocialLoginError) => this.dispatchAction('setSocialLoginError', payload);\n\n // Activate Account Actions\n setActivateState = (state: Partial<ActivateAccountState>) => this.dispatchAction('setActivateState', state);\n resetActivateState = () => this.dispatchAction('resetActivateState');\n setActivateStrategyState = (state: Partial<ActivateAccountStrategyState>) =>\n this.dispatchAction('setActivateStrategyState', state);\n activateAccount = (payload: IActivateAccount) => this.dispatchAction('activateAccount', payload);\n resendActivationEmail = (payload: IResendActivationEmail) => this.dispatchAction('resendActivationEmail', payload);\n getActivateAccountStrategy = (\n payload: WithCallback<IGetActivateAccountStrategy, IGetActivateAccountStrategyResponse>,\n ) => this.dispatchAction('getActivateAccountStrategy', payload);\n\n // Accept Invitation Actions\n setAcceptInvitationState = (state: Partial<AcceptInvitationState>) =>\n this.dispatchAction('setAcceptInvitationState', state);\n resetAcceptInvitationState = () => this.dispatchAction('resetAcceptInvitationState');\n acceptInvitation = (payload: IAcceptInvitation) => this.dispatchAction('acceptInvitation', payload);\n\n // Forgot Password Actions\n setForgotPasswordState = (state: Partial<ForgotPasswordState>) =>\n this.dispatchAction('setForgotPasswordState', state);\n resetForgotPasswordState = () => this.dispatchAction('resetForgotPasswordState');\n forgotPassword = (payload: IForgotPassword) => this.dispatchAction('forgotPassword', payload);\n resetPassword = (payload: IResetPassword) => this.dispatchAction('resetPassword', payload);\n loadPasswordConfig = (payload?: IGetUserPasswordConfig) => this.dispatchAction('loadPasswordConfig', payload);\n\n // Sign Up Actions\n setSignUpState = (state: Partial<SignUpState>) => this.dispatchAction('setSignUpState', state);\n resetSignUpState = () => this.dispatchAction('resetSignUpState');\n signUpUser = (payload: ISignUpUser) => this.dispatchAction('signUpUser', payload);\n resetSignUpStateSoft = () => this.dispatchAction('resetSignUpStateSoft');\n\n // Profile Actions\n setProfileState = (state: Partial<ProfileState>) => this.dispatchAction('setProfileState', state);\n resetProfileState = () => this.dispatchAction('resetProfileState');\n loadProfile = () => this.dispatchAction('loadProfile');\n saveProfile = (payload: SaveProfilePayload) => this.dispatchAction('saveProfile', payload);\n changePassword = (payload: WithCallback<IChangePassword>) => this.dispatchAction('changePassword', payload);\n\n // SSO actions\n setSSOState = (state: Partial<SSOState>) => this.dispatchAction('setSSOState', state);\n resetSSOState = () => this.dispatchAction('resetSSOState');\n loadSSOConfigurations = () => this.dispatchAction('loadSSOConfigurations');\n loadSSOAuthorizationRoles = () => this.dispatchAction('loadSSOAuthorizationRoles');\n saveSSOConfigurations = (payload: SaveSSOConfigurationPayload) =>\n this.dispatchAction('saveSSOConfigurations', payload);\n saveSSOConfigurationsFile = (payload: File[]) => this.dispatchAction('saveSSOConfigurationsFile', payload);\n saveSSOConfigurationsFileWithCallback = (payload: SaveSSOConfigurationFilePayload) =>\n this.dispatchAction('saveSSOConfigurationsFileWithCallback', payload);\n validateSSODomain = (payload?: WithCallback) => this.dispatchAction('validateSSODomain', payload);\n updateSSOAuthorizationRoles = (payload: UpdateSSOAuthorizationRolesPayload) =>\n this.dispatchAction('updateSSOAuthorizationRoles', payload);\n deleteSamlGroup = (payload: DeleteSamlGroupPayload) => this.dispatchAction('deleteSamlGroup', payload);\n createSamlGroup = (payload: CreateSamlGroupPayload) => this.dispatchAction('createSamlGroup', payload);\n oidcPostlogin = (payload: IOidcPostLogin) => this.dispatchAction('oidcPostlogin', payload);\n\n // Mfa actions\n setMfaState = (state: Partial<MFAState>) => this.dispatchAction('setMfaState', state);\n resetMfaState = () => this.dispatchAction('resetMfaState');\n enrollMfa = () => this.dispatchAction('enrollMfa');\n verifyMfa = (payload: WithCallback<IVerifyMfa, string | undefined>) => this.dispatchAction('verifyMfa', payload);\n verifyMfaAfterForce = (payload: WithCallback<ILoginWithMfa, string | undefined>) =>\n this.dispatchAction('verifyMfaAfterForce', payload);\n disableMfa = (payload: WithCallback<IDisableMfa>) => this.dispatchAction('disableMfa', payload);\n\n // Team actions\n setTeamLoader = (payload: TeamStateIndicator) => this.dispatchAction('setTeamLoader', payload);\n setTeamError = (payload: TeamStateIndicator) => this.dispatchAction('setTeamError', payload);\n setTeamState = (payload: Partial<TeamState>) => this.dispatchAction('setTeamState', payload);\n resetTeamState = () => this.dispatchAction('resetTeamState');\n loadUsers = (payload: WithCallback<WithSilentLoad<ILoadUsers>, ITeamUser[]>) =>\n this.dispatchAction('loadUsers', payload);\n loadRoles = (payload?: LoadRolesAndPermissionsPayload) => this.dispatchAction('loadRoles', payload);\n addUser = (payload: WithCallback<IAddUser, ITeamUser>) => this.dispatchAction('addUser', payload);\n updateUser = (payload: WithCallback<IUpdateUser, ITeamUser>) => this.dispatchAction('updateUser', payload);\n deleteUser = (payload: WithCallback<IDeleteUser>) => this.dispatchAction('deleteUser', payload);\n resendActivationLink = (payload: WithCallback<IResendActivationLink>) =>\n this.dispatchAction('resendActivationLink', payload);\n resendInvitationLink = (payload: WithCallback<IResendInvitationLink>) =>\n this.dispatchAction('resendInvitationLink', payload);\n openAddUserDialog = (payload?: ISetAddUserDialog) => this.dispatchAction('openAddUserDialog', payload);\n closeAddUserDialog = (payload?: any) => this.dispatchAction('closeAddUserDialog', payload);\n openDeleteUserDialog = (payload?: ISetDeleteUserDialog) => this.dispatchAction('openDeleteUserDialog', payload);\n closeDeleteUserDialog = (payload?: any) => this.dispatchAction('closeDeleteUserDialog', payload);\n\n // API Token Actions\n setApiTokensLoader = (payload: ApiStateIndicator) => this.dispatchAction('setApiTokensLoader', payload);\n setApiTokensError = (payload: ApiStateIndicator) => this.dispatchAction('setApiTokensError', payload);\n setApiTokensState = (state: Partial<ApiTokensState>) => this.dispatchAction('setApiTokensState', state);\n resetApiTokensState = () => this.dispatchAction('resetApiTokensState');\n loadApiTokens = (payload?: WithSilentLoad<WithCallback>) => this.dispatchAction('loadApiTokens', payload);\n initApiTokensData = (payload: ApiTokenType) => this.dispatchAction('initApiTokensData', payload);\n addTenantApiToken = (payload: AddTenantApiTokenPayload) => this.dispatchAction('addTenantApiToken', payload);\n addUserApiToken = (payload: AddUserApiTokenPayload) => this.dispatchAction('addUserApiToken', payload);\n deleteUserApiToken = (payload: string) => this.dispatchAction('deleteUserApiToken', payload);\n deleteTenantApiToken = (payload: string) => this.dispatchAction('deleteTenantApiToken', payload);\n\n // Security Policy Actions\n setSecurityPolicyState = (state: Partial<SecurityPolicyState>) =>\n this.dispatchAction('setSecurityPolicyState', state);\n setSecurityPolicyGlobalState = (state: Partial<GlobalPolicyState>) =>\n this.dispatchAction('setSecurityPolicyGlobalState', state);\n setSecurityPolicyPublicState = (state: Partial<PublicPolicyState>) =>\n this.dispatchAction('setSecurityPolicyPublicState', state);\n setSecurityPolicyMfaState = (state: Partial<MfaPolicyState>) =>\n this.dispatchAction('setSecurityPolicyMfaState', state);\n setSecurityPolicyLockoutState = (state: Partial<LockoutPolicyState>) =>\n this.dispatchAction('setSecurityPolicyLockoutState', state);\n setSecurityPolicyCaptchaState = (state: Partial<CaptchaPolicyState>) =>\n this.dispatchAction('setSecurityPolicyCaptchaState', state);\n setSecurityPolicyPasswordHistoryState = (state: Partial<PasswordHistoryPolicyState>) =>\n this.dispatchAction('setSecurityPolicyPasswordHistoryState', state);\n resetSecurityPolicyState = () => this.dispatchAction('resetSecurityPolicyState');\n setSecurityPolicyPasswordState = (state: Partial<PasswordPolicyState>) =>\n this.dispatchAction('setSecurityPolicyPasswordState', state);\n loadSecurityPolicy = () => this.dispatchAction('loadSecurityPolicy');\n loadPublicSecurityPolicy = () => this.dispatchAction('loadPublicSecurityPolicy');\n loadVendorPasswordConfig = () => this.dispatchAction('loadVendorPasswordConfig');\n loadSecurityPolicyMfa = () => this.dispatchAction('loadSecurityPolicyMfa');\n saveSecurityPolicyMfa = (payload: SaveSecurityPolicyMfaPayload) =>\n this.dispatchAction('saveSecurityPolicyMfa', payload);\n loadSecurityPolicyLockout = () => this.dispatchAction('loadSecurityPolicyLockout');\n saveSecurityPolicyLockout = (payload: SaveSecurityPolicyLockoutPayload) =>\n this.dispatchAction('saveSecurityPolicyLockout', payload);\n loadSecurityPolicyCaptcha = () => this.dispatchAction('loadSecurityPolicyCaptcha');\n loadSecurityPolicyPasswordHistory = () => this.dispatchAction('loadSecurityPolicyPasswordHistory');\n saveSecurityPolicyPasswordHistory = (payload: SaveSecurityPolicyPasswordHistoryPayload) =>\n this.dispatchAction('saveSecurityPolicyPasswordHistory', payload);\n\n // Account Settings Actions\n setAccountSettingsState = (state: Partial<AccountSettingsState>) =>\n this.dispatchAction('setAccountSettingsState', state);\n resetAccountSettingsState = () => this.dispatchAction('resetAccountSettingsState');\n loadAccountSettings = (payload?: WithCallback<WithSilentLoad<{}>>) =>\n this.dispatchAction('loadAccountSettings', payload);\n saveAccountSettings = (payload: WithCallback<ISettingsResponse, ISettingsResponse>) =>\n this.dispatchAction('saveAccountSettings', payload);\n\n // Tenants Actions\n setTenantsState = (state: Partial<TenantsState>) => this.dispatchAction('setTenantsState', state);\n resetTenantsState = () => this.dispatchAction('resetTenantsState');\n switchTenant = (payload: WithCallback<ISwitchTenant>) => this.dispatchAction('switchTenant', payload);\n loadTenants = (payload?: WithCallback<{}, ITenantsResponse[]>) => this.dispatchAction('loadTenants', payload);\n\n // Roles Actions\n setRolesState = (state: RolesState) => this.dispatchAction('setRolesState', state);\n resetRolesState = () => this.dispatchAction('resetRolesState');\n loadRolesAndPermissions = (payload?: WithSilentLoad<{}>) => this.dispatchAction('loadRolesAndPermissions', payload);\n addRole = (payload: WithCallback<IAddRole, IRole>) => this.dispatchAction('addRole', payload);\n updateRole = (payload: WithCallback<IUpdateRole, IRole>) => this.dispatchAction('updateRole', payload);\n deleteRole = (payload: WithCallback<IDeleteRole>) => this.dispatchAction('deleteRole', payload);\n attachPermissionsToRole = (payload: WithCallback<IAttachPermissionsToRole, IRole>) =>\n this.dispatchAction('attachPermissionsToRole', payload);\n\n attachPermissionToRoles = (\n payload: WithCallback<{\n permissionId: string;\n roleIds: string[];\n },\n IRolePermission>,\n ) => this.dispatchAction('attachPermissionToRoles', payload);\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FronteggBaseGuard } from './frontegg-base-guard';\nimport { FronteggAppService } from '../frontegg-app.service';\n\n@Injectable()\nexport class FronteggAuthGuard extends FronteggBaseGuard {\n constructor(protected fronteggAppService: FronteggAppService, protected router: Router) {\n super();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return new Observable<boolean>(obs => {\n this.fronteggAppService.isAuthenticated$.subscribe((isAuthenticated: boolean) => {\n if (isAuthenticated) {\n obs.next(true);\n } else {\n this.router.navigateByUrl(this.fronteggAppService.authRoutes.loginUrl + '?redirectUrl=' + encodeURIComponent(state.url));\n obs.next(false);\n }\n });\n });\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport { FronteggAppOptionsClass, FronteggAppService } from './frontegg-app.service';\nimport { FronteggComponent } from './frontegg.component';\nimport { FronteggLoadGuard } from './guards/frontegg-load.guard';\nimport { FronteggAuthGuard } from './guards/frontegg-auth.guard';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n declarations: [FronteggComponent],\n exports: [FronteggComponent],\n})\nexport class FronteggAppModule {\n static forRoot(config: FronteggAppOptions): ModuleWithProviders<FronteggAppModule> {\n return {\n ngModule: FronteggAppModule,\n providers: [\n FronteggAppService,\n FronteggAuthGuard,\n FronteggLoadGuard,\n {\n provide: FronteggAppOptionsClass,\n useValue: config,\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of frontegg-app\n */\n\nexport { FronteggAppService } from './lib/frontegg-app.service';\nexport { FronteggAuthService } from './lib/frontegg-auth.service';\nexport { FronteggComponent } from './lib/frontegg.component';\nexport { FronteggAppModule } from './lib/frontegg-app.module';\nexport * from './lib/guards/frontegg-auth.guard';\nexport * from './lib/guards/frontegg-load.guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {FronteggAppOptionsClass as ɵa} from './lib/frontegg-app.service';\nexport {FronteggBaseGuard as ɵb} from './lib/guards/frontegg-base-guard';"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontegg-angular.js","sources":["../../../../projects/frontegg-app/src/lib/guards/frontegg-base-guard.ts","../../../../projects/frontegg-app/src/lib/guards/frontegg-load.guard.ts","../../../../projects/frontegg-app/src/lib/frontegg.component.ts","../../../../projects/frontegg-app/src/lib/frontegg-app.service.ts","../../../../projects/frontegg-app/src/lib/frontegg-auth.service.ts","../../../../projects/frontegg-app/src/lib/guards/frontegg-auth.guard.ts","../../../../projects/frontegg-app/src/lib/frontegg-app.module.ts","../../../../projects/frontegg-app/src/public-api.ts","../../../../projects/frontegg-app/src/frontegg-angular.ts"],"sourcesContent":["import { ActivatedRouteSnapshot, CanActivate, DefaultUrlSerializer, Router, RouterStateSnapshot, UrlSerializer, UrlTree } from '@angular/router';\nimport { Observable } from 'rxjs';\n\nexport abstract class FronteggBaseGuard implements UrlSerializer, CanActivate {\n\n abstract canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot)\n : Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree;\n\n parse(url: any): UrlTree {\n const dus = new DefaultUrlSerializer();\n return dus.parse(url);\n }\n\n serialize(tree: UrlTree): any {\n const dus = new DefaultUrlSerializer();\n\n return dus\n .serialize(tree)\n .replace(/%40/gi, '@')\n .replace(/%3A/gi, ':')\n .replace(/%24/gi, '$')\n .replace(/%2C/gi, ',')\n .replace(/%3B/gi, ';')\n .replace(/%2B/gi, '+')\n .replace(/%3D/gi, '=')\n .replace(/%3F/gi, '?')\n .replace(/%2F/gi, '/')\n .replace(/(https?):\\/([\\w\\d])/gi, '$1://$2');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FronteggBaseGuard } from './frontegg-base-guard';\nimport { FronteggAppService } from '../frontegg-app.service';\n\n@Injectable()\nexport class FronteggLoadGuard extends FronteggBaseGuard {\n constructor(protected fronteggAppService: FronteggAppService, protected router: Router) {\n super();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return new Observable<boolean>(obs => {\n this.fronteggAppService.isLoading$.subscribe(loading => {\n if (!loading) {\n obs.next(true);\n }\n });\n });\n }\n}\n","import { Component } from '@angular/core';\n\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'frontegg',\n template: ``,\n})\nexport class FronteggComponent {\n}\n","import { Inject, Injectable } from '@angular/core';\nimport { Route, Router } from '@angular/router';\nimport { AuthPageRoutes, FronteggState, initialize } from '@frontegg/admin-portal';\nimport { FronteggAppInstance, FronteggAppOptions } from '@frontegg/types';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { FronteggLoadGuard } from './guards/frontegg-load.guard';\nimport { ContextHolder, RedirectOptions } from '@frontegg/rest-api';\nimport { FronteggComponent } from './frontegg.component';\n\n\ntype FronteggApp = FronteggAppInstance & {\n showAdminPortal(): void;\n hideAdminPortal(): void;\n};\n\nexport class FronteggAppOptionsClass implements FronteggAppOptions {\n contextOptions: FronteggAppOptions['contextOptions'] = {\n baseUrl: 'https://david.frontegg.com',\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FronteggAppService {\n fronteggApp: FronteggApp;\n\n private isLoadingSubject = new BehaviorSubject<boolean>(true);\n private isAuthenticatedSubject = new BehaviorSubject<boolean>(false);\n private stateSubject = new BehaviorSubject<FronteggState>({} as FronteggState);\n private authStateSubject = new BehaviorSubject<FronteggState['auth']>({} as FronteggState['auth']);\n private auditsStateSubject = new BehaviorSubject<FronteggState['audits']>({} as FronteggState['audits']);\n private connectivityStateSubject = new BehaviorSubject<FronteggState['connectivity']>({} as FronteggState['connectivity']);\n private subscriptionsStateSubject = new BehaviorSubject<FronteggState['subscriptions']>({} as FronteggState['subscriptions']);\n private vendorStateSubject = new BehaviorSubject<FronteggState['vendor']>({} as FronteggState['vendor']);\n\n\n get state$(): Observable<FronteggState> {\n return this.stateSubject.asObservable();\n }\n\n get authState$(): Observable<FronteggState['auth']> {\n return this.authStateSubject.asObservable();\n }\n\n get auditsState$(): Observable<FronteggState['audits']> {\n return this.auditsStateSubject.asObservable();\n }\n\n get connectivityState$(): Observable<FronteggState['connectivity']> {\n return this.connectivityStateSubject.asObservable();\n }\n\n get subscriptionsState$(): Observable<FronteggState['subscriptions']> {\n return this.subscriptionsStateSubject.asObservable();\n }\n\n get vendorState$(): Observable<FronteggState['vendor']> {\n return this.vendorStateSubject.asObservable();\n }\n\n get isLoading$(): Observable<boolean> {\n return this.isLoadingSubject.asObservable();\n };\n\n\n get isAuthenticated$(): Observable<boolean> {\n return this.isAuthenticatedSubject.asObservable();\n };\n\n constructor(@Inject(FronteggAppOptionsClass) private config: FronteggAppOptions, private router: Router) {\n if (!this.config) {\n throw Error('Need to pass config: FronteggConfigOptions in FronteggAppModule.forRoot(config)');\n }\n\n const onRedirectTo = (to: string, opts?: RedirectOptions) => {\n const baseName = window.location.origin;\n let path = to;\n if (path.startsWith(baseName) && baseName !== '/') {\n path = path.substring(baseName.length - 1);\n }\n\n if (opts?.refresh) {\n window.location.href = path;\n } else {\n if (opts?.replace) {\n this.router.navigate([path], { replaceUrl: true });\n } else {\n this.router.navigate([path]);\n }\n }\n };\n ContextHolder.setOnRedirectTo(onRedirectTo);\n this.fronteggApp = initialize({\n onRedirectTo,\n ...this.config,\n });\n\n\n // Add all login box routes to Angular router config\n this.router.resetConfig([\n ...this.mapAuthComponents,\n {\n path: '',\n canActivate: [FronteggLoadGuard],\n children: [...this.router.config],\n },\n ]);\n\n\n // Subscribe on fronteggApp store to change state subjects\n this.fronteggApp.store.subscribe(() => {\n const fronteggStore = this.fronteggApp.store.getState() as FronteggState;\n if (this.isLoadingSubject.getValue() !== fronteggStore.auth.isLoading) {\n this.isLoadingSubject.next(fronteggStore.auth.isLoading);\n }\n if (this.isAuthenticatedSubject.getValue() !== fronteggStore.auth.isAuthenticated) {\n this.isAuthenticatedSubject.next(fronteggStore.auth.isAuthenticated);\n }\n\n this.stateSubject.next(fronteggStore);\n this.authStateSubject.next(fronteggStore.auth);\n this.auditsStateSubject.next(fronteggStore.audits);\n this.connectivityStateSubject.next(fronteggStore.connectivity);\n this.subscriptionsStateSubject.next(fronteggStore.subscriptions);\n this.vendorStateSubject.next(fronteggStore.vendor);\n });\n }\n\n get mapAuthComponents(): Route[] {\n const authRoutes = this.authRoutes;\n return (Object.keys(authRoutes) as (keyof AuthPageRoutes)[])\n .filter((key: keyof AuthPageRoutes) => key !== 'authenticatedUrl' && key !== 'signUpSuccessUrl' && key != null)\n .map((key: keyof AuthPageRoutes) => ({\n path: authRoutes[key]?.substring(1),\n component: FronteggComponent,\n }));\n }\n\n get authRoutes(): AuthPageRoutes {\n return this.fronteggApp.store.getState().auth.routes;\n }\n\n // Open admin portal\n public showAdminPortal(): void {\n this.fronteggApp.showAdminPortal();\n }\n\n // Open admin portal\n public hideAdminPortal(): void {\n this.fronteggApp?.hideAdminPortal();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { FronteggAppService } from './frontegg-app.service';\nimport FastDeepEqual from 'fast-deep-equal';\nimport {\n RolesState,\n TenantsState,\n AccountSettingsState,\n SaveSecurityPolicyPasswordHistoryPayload,\n SaveSecurityPolicyLockoutPayload,\n SaveSecurityPolicyMfaPayload,\n PasswordPolicyState,\n PasswordHistoryPolicyState,\n MfaPolicyState,\n CaptchaPolicyState,\n LockoutPolicyState,\n PublicPolicyState,\n GlobalPolicyState,\n SecurityPolicyState,\n AddUserApiTokenPayload,\n AddTenantApiTokenPayload,\n ApiTokenType,\n ApiTokensState,\n ApiStateIndicator,\n ISetDeleteUserDialog,\n ISetAddUserDialog,\n LoadRolesAndPermissionsPayload,\n TeamState,\n TeamStateIndicator,\n MFAState,\n SaveSSOConfigurationPayload,\n SSOState,\n ProfileState,\n SaveSSOConfigurationFilePayload,\n UpdateSSOAuthorizationRolesPayload,\n DeleteSamlGroupPayload,\n CreateSamlGroupPayload,\n SaveProfilePayload,\n SignUpState,\n ForgotPasswordState,\n AcceptInvitationState,\n AuthState,\n User,\n authStoreName,\n LoginState,\n ActivateAccountStrategyState,\n EnhancedStore,\n} from '@frontegg/redux-store';\nimport {\n ILogin,\n ILoginWithMfa,\n IPostLogin,\n IPreLogin,\n IRecoverMFAToken,\n IActivateAccount,\n ILoginViaSocialLogin,\n ISetSocialLoginError,\n IResendActivationEmail,\n IGetActivateAccountStrategy,\n IGetActivateAccountStrategyResponse,\n IAcceptInvitation,\n IForgotPassword,\n IResetPassword,\n IGetUserPasswordConfig,\n ISignUpUser,\n IChangePassword,\n IOidcPostLogin,\n IVerifyMfa,\n IDisableMfa,\n ILoadUsers,\n ITeamUser,\n IAddUser,\n IUpdateUser,\n IDeleteUser,\n IResendActivationLink,\n ISettingsResponse,\n ISwitchTenant,\n ITenantsResponse,\n IAddRole,\n IRole,\n IUpdateRole,\n IDeleteRole,\n IAttachPermissionsToRole,\n IResendInvitationLink,\n IRolePermission,\n} from '@frontegg/rest-api';\nimport { ActivateAccountState, SocialLoginState } from '@frontegg/redux-store/auth';\nimport { Observable } from 'rxjs';\n\ninterface AuthSubStates {\n field: Partial<keyof AuthState>;\n subject: BehaviorSubject<any>;\n}\n\nexport type WithCallback<T = {}, R = boolean> = T & {\n callback?: (data: R | null, error?: string) => void;\n};\n\nexport type WithSilentLoad<T> = T & {\n silentLoading?: boolean;\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FronteggAuthService {\n private acceptInvitationStateSubject = new BehaviorSubject<AuthState['acceptInvitationState']>({} as AuthState['acceptInvitationState']);\n private accountSettingsStateSubject = new BehaviorSubject<AuthState['accountSettingsState']>({} as AuthState['accountSettingsState']);\n private activateStateSubject = new BehaviorSubject<AuthState['activateState']>({} as AuthState['activateState']);\n private apiTokensStateSubject = new BehaviorSubject<AuthState['apiTokensState']>({} as AuthState['apiTokensState']);\n private forgotPasswordStateSubject = new BehaviorSubject<AuthState['forgotPasswordState']>({} as AuthState['forgotPasswordState']);\n private loginStateSubject = new BehaviorSubject<AuthState['loginState']>({} as AuthState['loginState']);\n private mfaStateSubject = new BehaviorSubject<AuthState['mfaState']>({} as AuthState['mfaState']);\n private profileStateSubject = new BehaviorSubject<AuthState['profileState']>({} as AuthState['profileState']);\n private rolesStateSubject = new BehaviorSubject<AuthState['rolesState']>({} as AuthState['rolesState']);\n private routesSubject = new BehaviorSubject<AuthState['routes']>({} as AuthState['routes']);\n private securityPolicyStateSubject = new BehaviorSubject<AuthState['securityPolicyState']>({} as AuthState['securityPolicyState']);\n private signUpStateSubject = new BehaviorSubject<AuthState['signUpState']>({} as AuthState['signUpState']);\n private socialLoginStateSubject = new BehaviorSubject<AuthState['socialLoginState']>({} as AuthState['socialLoginState']);\n private ssoStateSubject = new BehaviorSubject<AuthState['ssoState']>({} as AuthState['ssoState']);\n private teamStateSubject = new BehaviorSubject<AuthState['teamState']>({} as AuthState['teamState']);\n private tenantsStateSubject = new BehaviorSubject<AuthState['tenantsState']>({} as AuthState['tenantsState']);\n private userSubject = new BehaviorSubject<AuthState['user']>({} as AuthState['user']);\n private isAuthenticatedSubject = new BehaviorSubject<AuthState['isAuthenticated']>(false);\n private isLoadingSubject = new BehaviorSubject<AuthState['isLoading']>(true);\n private isSSOAuthSubject = new BehaviorSubject<AuthState['isSSOAuth']>(false);\n private ssoACSSubject = new BehaviorSubject<AuthState['ssoACS']>('');\n\n\n get acceptInvitationState$(): Observable<AuthState['acceptInvitationState']> {\n return this.acceptInvitationStateSubject.asObservable();\n }\n\n get accountSettingsState$(): Observable<AuthState['accountSettingsState']> {\n return this.accountSettingsStateSubject.asObservable();\n }\n\n get activateState$(): Observable<AuthState['activateState']> {\n return this.activateStateSubject.asObservable();\n }\n\n get apiTokensState$(): Observable<AuthState['apiTokensState']> {\n return this.apiTokensStateSubject.asObservable();\n }\n\n get forgotPasswordState$(): Observable<AuthState['forgotPasswordState']> {\n return this.forgotPasswordStateSubject.asObservable();\n }\n\n get loginState$(): Observable<AuthState['loginState']> {\n return this.loginStateSubject.asObservable();\n }\n\n get mfaState$(): Observable<AuthState['mfaState']> {\n return this.mfaStateSubject.asObservable();\n }\n\n get profileState$(): Observable<AuthState['profileState']> {\n return this.profileStateSubject.asObservable();\n }\n\n get rolesState$(): Observable<AuthState['rolesState']> {\n return this.rolesStateSubject.asObservable();\n }\n\n get routesState$(): Observable<AuthState['routes']> {\n return this.routesSubject.asObservable();\n }\n\n get securityPolicyState$(): Observable<AuthState['securityPolicyState']> {\n return this.securityPolicyStateSubject.asObservable();\n }\n\n get signUpState$(): Observable<AuthState['signUpState']> {\n return this.signUpStateSubject.asObservable();\n }\n\n get socialLoginState$(): Observable<AuthState['socialLoginState']> {\n return this.socialLoginStateSubject.asObservable();\n }\n\n get ssoState$(): Observable<AuthState['ssoState']> {\n return this.ssoStateSubject.asObservable();\n }\n\n get teamState$(): Observable<AuthState['teamState']> {\n return this.teamStateSubject.asObservable();\n }\n\n get tenantsState$(): Observable<AuthState['tenantsState']> {\n return this.tenantsStateSubject.asObservable();\n }\n\n get user$(): Observable<AuthState['user']> {\n return this.userSubject.asObservable();\n }\n\n get user(): AuthState['user'] {\n return this.fronteggAppService.fronteggApp.store.getState().auth.user;\n }\n\n\n get isAuthenticated$(): Observable<AuthState['isAuthenticated']> {\n return this.isAuthenticatedSubject.asObservable();\n }\n\n get isAuthenticated(): AuthState['isAuthenticated'] {\n return this.fronteggAppService.fronteggApp.store.getState().auth.isAuthenticated;\n }\n\n get isLoading$(): Observable<AuthState['isLoading']> {\n return this.isLoadingSubject.asObservable();\n }\n\n get isSSOAuth$(): Observable<AuthState['isSSOAuth']> {\n return this.isSSOAuthSubject.asObservable();\n }\n\n get ssoACS$(): Observable<AuthState['ssoACS']> {\n return this.ssoACSSubject.asObservable();\n }\n\n constructor(private fronteggAppService: FronteggAppService) {\n const authSubStates: AuthSubStates[] = [\n { field: 'acceptInvitationState', subject: this.acceptInvitationStateSubject },\n { field: 'accountSettingsState', subject: this.accountSettingsStateSubject },\n { field: 'activateState', subject: this.activateStateSubject },\n { field: 'apiTokensState', subject: this.apiTokensStateSubject },\n { field: 'forgotPasswordState', subject: this.forgotPasswordStateSubject },\n { field: 'tenantsState', subject: this.tenantsStateSubject },\n { field: 'loginState', subject: this.loginStateSubject },\n { field: 'mfaState', subject: this.mfaStateSubject },\n { field: 'profileState', subject: this.profileStateSubject },\n { field: 'rolesState', subject: this.rolesStateSubject },\n { field: 'routes', subject: this.routesSubject },\n { field: 'securityPolicyState', subject: this.securityPolicyStateSubject },\n { field: 'signUpState', subject: this.signUpStateSubject },\n { field: 'socialLoginState', subject: this.socialLoginStateSubject },\n { field: 'ssoState', subject: this.ssoStateSubject },\n { field: 'teamState', subject: this.teamStateSubject },\n { field: 'user', subject: this.userSubject },\n { field: 'isSSOAuth', subject: this.isSSOAuthSubject },\n { field: 'ssoACS', subject: this.ssoACSSubject },\n ];\n\n // Memoized Auth State\n this.fronteggAppService.authState$.subscribe((authState) => {\n if (authState != null) {\n for (const authSubState of authSubStates) {\n if (!FastDeepEqual(authSubState.subject.getValue(), authState[authSubState.field])) {\n authSubState.subject.next(authState[authSubState.field]);\n }\n }\n this.isAuthenticatedSubject.next(authState.isAuthenticated);\n this.isLoadingSubject.next(authState.isLoading);\n }\n });\n }\n\n private dispatchAction(type: string, payload?: any): void {\n const store: EnhancedStore = this.fronteggAppService.fronteggApp.store;\n store.dispatch({ type: `${authStoreName}/${type}`, payload });\n }\n\n // Root Actions\n setState = (state: Partial<AuthState>) => this.dispatchAction('setState', state);\n resetState = () => this.dispatchAction('resetState');\n setUser = (user: User) => this.dispatchAction('setUser', user);\n\n // Login Actions\n setLoginState = (state: Partial<LoginState>) => this.dispatchAction('setLoginState', state);\n resetLoginState = () => this.dispatchAction('resetLoginState');\n requestAuthorize = (firstTime?: boolean) => this.dispatchAction('requestAuthorize', firstTime);\n loginWithRedirect = () => this.dispatchAction('requestHostedLoginAuthorize');\n preLogin = (payload: IPreLogin) => this.dispatchAction('preLogin', payload);\n postLogin = (payload: IPostLogin) => this.dispatchAction('postLogin', payload);\n login = (payload: ILogin) => this.dispatchAction('login', payload);\n loginWithMfa = (payload: WithCallback<ILoginWithMfa>) => this.dispatchAction('loginWithMfa', payload);\n recoverMfa = (payload: IRecoverMFAToken) => this.dispatchAction('recoverMfa', payload);\n logout = (callback?: () => void) => this.dispatchAction('logout', callback);\n silentLogout = (callback?: () => void) => this.dispatchAction('silentLogout', callback);\n checkIfAllowToRememberMfaDevice = (payload: { mfaToken: string }) =>\n this.dispatchAction('checkIfAllowToRememberMfaDevice', payload);\n\n // Social Logins Actions\n setSocialLoginsState = (state: Partial<SocialLoginState>) => this.dispatchAction('setSocialLoginsState', state);\n resetSocialLoginsState = () => this.dispatchAction('resetSocialLoginsState');\n loadSocialLoginsConfiguration = () => this.dispatchAction('loadSocialLoginsConfiguration');\n loginViaSocialLogin = (payload: ILoginViaSocialLogin) => this.dispatchAction('loginViaSocialLogin', payload);\n setSocialLoginError = (payload: ISetSocialLoginError) => this.dispatchAction('setSocialLoginError', payload);\n\n // Activate Account Actions\n setActivateState = (state: Partial<ActivateAccountState>) => this.dispatchAction('setActivateState', state);\n resetActivateState = () => this.dispatchAction('resetActivateState');\n setActivateStrategyState = (state: Partial<ActivateAccountStrategyState>) =>\n this.dispatchAction('setActivateStrategyState', state);\n activateAccount = (payload: IActivateAccount) => this.dispatchAction('activateAccount', payload);\n resendActivationEmail = (payload: IResendActivationEmail) => this.dispatchAction('resendActivationEmail', payload);\n getActivateAccountStrategy = (\n payload: WithCallback<IGetActivateAccountStrategy, IGetActivateAccountStrategyResponse>,\n ) => this.dispatchAction('getActivateAccountStrategy', payload);\n\n // Accept Invitation Actions\n setAcceptInvitationState = (state: Partial<AcceptInvitationState>) =>\n this.dispatchAction('setAcceptInvitationState', state);\n resetAcceptInvitationState = () => this.dispatchAction('resetAcceptInvitationState');\n acceptInvitation = (payload: IAcceptInvitation) => this.dispatchAction('acceptInvitation', payload);\n\n // Forgot Password Actions\n setForgotPasswordState = (state: Partial<ForgotPasswordState>) =>\n this.dispatchAction('setForgotPasswordState', state);\n resetForgotPasswordState = () => this.dispatchAction('resetForgotPasswordState');\n forgotPassword = (payload: IForgotPassword) => this.dispatchAction('forgotPassword', payload);\n resetPassword = (payload: IResetPassword) => this.dispatchAction('resetPassword', payload);\n loadPasswordConfig = (payload?: IGetUserPasswordConfig) => this.dispatchAction('loadPasswordConfig', payload);\n\n // Sign Up Actions\n setSignUpState = (state: Partial<SignUpState>) => this.dispatchAction('setSignUpState', state);\n resetSignUpState = () => this.dispatchAction('resetSignUpState');\n signUpUser = (payload: ISignUpUser) => this.dispatchAction('signUpUser', payload);\n resetSignUpStateSoft = () => this.dispatchAction('resetSignUpStateSoft');\n\n // Profile Actions\n setProfileState = (state: Partial<ProfileState>) => this.dispatchAction('setProfileState', state);\n resetProfileState = () => this.dispatchAction('resetProfileState');\n loadProfile = () => this.dispatchAction('loadProfile');\n saveProfile = (payload: SaveProfilePayload) => this.dispatchAction('saveProfile', payload);\n changePassword = (payload: WithCallback<IChangePassword>) => this.dispatchAction('changePassword', payload);\n\n // SSO actions\n setSSOState = (state: Partial<SSOState>) => this.dispatchAction('setSSOState', state);\n resetSSOState = () => this.dispatchAction('resetSSOState');\n loadSSOConfigurations = () => this.dispatchAction('loadSSOConfigurations');\n loadSSOAuthorizationRoles = () => this.dispatchAction('loadSSOAuthorizationRoles');\n saveSSOConfigurations = (payload: SaveSSOConfigurationPayload) =>\n this.dispatchAction('saveSSOConfigurations', payload);\n saveSSOConfigurationsFile = (payload: File[]) => this.dispatchAction('saveSSOConfigurationsFile', payload);\n saveSSOConfigurationsFileWithCallback = (payload: SaveSSOConfigurationFilePayload) =>\n this.dispatchAction('saveSSOConfigurationsFileWithCallback', payload);\n validateSSODomain = (payload?: WithCallback) => this.dispatchAction('validateSSODomain', payload);\n updateSSOAuthorizationRoles = (payload: UpdateSSOAuthorizationRolesPayload) =>\n this.dispatchAction('updateSSOAuthorizationRoles', payload);\n deleteSamlGroup = (payload: DeleteSamlGroupPayload) => this.dispatchAction('deleteSamlGroup', payload);\n createSamlGroup = (payload: CreateSamlGroupPayload) => this.dispatchAction('createSamlGroup', payload);\n oidcPostlogin = (payload: IOidcPostLogin) => this.dispatchAction('oidcPostlogin', payload);\n\n // Mfa actions\n setMfaState = (state: Partial<MFAState>) => this.dispatchAction('setMfaState', state);\n resetMfaState = () => this.dispatchAction('resetMfaState');\n enrollMfa = () => this.dispatchAction('enrollMfa');\n verifyMfa = (payload: WithCallback<IVerifyMfa, string | undefined>) => this.dispatchAction('verifyMfa', payload);\n verifyMfaAfterForce = (payload: WithCallback<ILoginWithMfa, string | undefined>) =>\n this.dispatchAction('verifyMfaAfterForce', payload);\n disableMfa = (payload: WithCallback<IDisableMfa>) => this.dispatchAction('disableMfa', payload);\n\n // Team actions\n setTeamLoader = (payload: TeamStateIndicator) => this.dispatchAction('setTeamLoader', payload);\n setTeamError = (payload: TeamStateIndicator) => this.dispatchAction('setTeamError', payload);\n setTeamState = (payload: Partial<TeamState>) => this.dispatchAction('setTeamState', payload);\n resetTeamState = () => this.dispatchAction('resetTeamState');\n loadUsers = (payload: WithCallback<WithSilentLoad<ILoadUsers>, ITeamUser[]>) =>\n this.dispatchAction('loadUsers', payload);\n loadRoles = (payload?: LoadRolesAndPermissionsPayload) => this.dispatchAction('loadRoles', payload);\n addUser = (payload: WithCallback<IAddUser, ITeamUser>) => this.dispatchAction('addUser', payload);\n updateUser = (payload: WithCallback<IUpdateUser, ITeamUser>) => this.dispatchAction('updateUser', payload);\n deleteUser = (payload: WithCallback<IDeleteUser>) => this.dispatchAction('deleteUser', payload);\n resendActivationLink = (payload: WithCallback<IResendActivationLink>) =>\n this.dispatchAction('resendActivationLink', payload);\n resendInvitationLink = (payload: WithCallback<IResendInvitationLink>) =>\n this.dispatchAction('resendInvitationLink', payload);\n openAddUserDialog = (payload?: ISetAddUserDialog) => this.dispatchAction('openAddUserDialog', payload);\n closeAddUserDialog = (payload?: any) => this.dispatchAction('closeAddUserDialog', payload);\n openDeleteUserDialog = (payload?: ISetDeleteUserDialog) => this.dispatchAction('openDeleteUserDialog', payload);\n closeDeleteUserDialog = (payload?: any) => this.dispatchAction('closeDeleteUserDialog', payload);\n\n // API Token Actions\n setApiTokensLoader = (payload: ApiStateIndicator) => this.dispatchAction('setApiTokensLoader', payload);\n setApiTokensError = (payload: ApiStateIndicator) => this.dispatchAction('setApiTokensError', payload);\n setApiTokensState = (state: Partial<ApiTokensState>) => this.dispatchAction('setApiTokensState', state);\n resetApiTokensState = () => this.dispatchAction('resetApiTokensState');\n loadApiTokens = (payload?: WithSilentLoad<WithCallback>) => this.dispatchAction('loadApiTokens', payload);\n initApiTokensData = (payload: ApiTokenType) => this.dispatchAction('initApiTokensData', payload);\n addTenantApiToken = (payload: AddTenantApiTokenPayload) => this.dispatchAction('addTenantApiToken', payload);\n addUserApiToken = (payload: AddUserApiTokenPayload) => this.dispatchAction('addUserApiToken', payload);\n deleteUserApiToken = (payload: string) => this.dispatchAction('deleteUserApiToken', payload);\n deleteTenantApiToken = (payload: string) => this.dispatchAction('deleteTenantApiToken', payload);\n\n // Security Policy Actions\n setSecurityPolicyState = (state: Partial<SecurityPolicyState>) =>\n this.dispatchAction('setSecurityPolicyState', state);\n setSecurityPolicyGlobalState = (state: Partial<GlobalPolicyState>) =>\n this.dispatchAction('setSecurityPolicyGlobalState', state);\n setSecurityPolicyPublicState = (state: Partial<PublicPolicyState>) =>\n this.dispatchAction('setSecurityPolicyPublicState', state);\n setSecurityPolicyMfaState = (state: Partial<MfaPolicyState>) =>\n this.dispatchAction('setSecurityPolicyMfaState', state);\n setSecurityPolicyLockoutState = (state: Partial<LockoutPolicyState>) =>\n this.dispatchAction('setSecurityPolicyLockoutState', state);\n setSecurityPolicyCaptchaState = (state: Partial<CaptchaPolicyState>) =>\n this.dispatchAction('setSecurityPolicyCaptchaState', state);\n setSecurityPolicyPasswordHistoryState = (state: Partial<PasswordHistoryPolicyState>) =>\n this.dispatchAction('setSecurityPolicyPasswordHistoryState', state);\n resetSecurityPolicyState = () => this.dispatchAction('resetSecurityPolicyState');\n setSecurityPolicyPasswordState = (state: Partial<PasswordPolicyState>) =>\n this.dispatchAction('setSecurityPolicyPasswordState', state);\n loadSecurityPolicy = () => this.dispatchAction('loadSecurityPolicy');\n loadPublicSecurityPolicy = () => this.dispatchAction('loadPublicSecurityPolicy');\n loadVendorPasswordConfig = () => this.dispatchAction('loadVendorPasswordConfig');\n loadSecurityPolicyMfa = () => this.dispatchAction('loadSecurityPolicyMfa');\n saveSecurityPolicyMfa = (payload: SaveSecurityPolicyMfaPayload) =>\n this.dispatchAction('saveSecurityPolicyMfa', payload);\n loadSecurityPolicyLockout = () => this.dispatchAction('loadSecurityPolicyLockout');\n saveSecurityPolicyLockout = (payload: SaveSecurityPolicyLockoutPayload) =>\n this.dispatchAction('saveSecurityPolicyLockout', payload);\n loadSecurityPolicyCaptcha = () => this.dispatchAction('loadSecurityPolicyCaptcha');\n loadSecurityPolicyPasswordHistory = () => this.dispatchAction('loadSecurityPolicyPasswordHistory');\n saveSecurityPolicyPasswordHistory = (payload: SaveSecurityPolicyPasswordHistoryPayload) =>\n this.dispatchAction('saveSecurityPolicyPasswordHistory', payload);\n\n // Account Settings Actions\n setAccountSettingsState = (state: Partial<AccountSettingsState>) =>\n this.dispatchAction('setAccountSettingsState', state);\n resetAccountSettingsState = () => this.dispatchAction('resetAccountSettingsState');\n loadAccountSettings = (payload?: WithCallback<WithSilentLoad<{}>>) =>\n this.dispatchAction('loadAccountSettings', payload);\n saveAccountSettings = (payload: WithCallback<ISettingsResponse, ISettingsResponse>) =>\n this.dispatchAction('saveAccountSettings', payload);\n\n // Tenants Actions\n setTenantsState = (state: Partial<TenantsState>) => this.dispatchAction('setTenantsState', state);\n resetTenantsState = () => this.dispatchAction('resetTenantsState');\n switchTenant = (payload: WithCallback<ISwitchTenant>) => this.dispatchAction('switchTenant', payload);\n loadTenants = (payload?: WithCallback<{}, ITenantsResponse[]>) => this.dispatchAction('loadTenants', payload);\n\n // Roles Actions\n setRolesState = (state: RolesState) => this.dispatchAction('setRolesState', state);\n resetRolesState = () => this.dispatchAction('resetRolesState');\n loadRolesAndPermissions = (payload?: WithSilentLoad<{}>) => this.dispatchAction('loadRolesAndPermissions', payload);\n addRole = (payload: WithCallback<IAddRole, IRole>) => this.dispatchAction('addRole', payload);\n updateRole = (payload: WithCallback<IUpdateRole, IRole>) => this.dispatchAction('updateRole', payload);\n deleteRole = (payload: WithCallback<IDeleteRole>) => this.dispatchAction('deleteRole', payload);\n attachPermissionsToRole = (payload: WithCallback<IAttachPermissionsToRole, IRole>) =>\n this.dispatchAction('attachPermissionsToRole', payload);\n\n attachPermissionToRoles = (\n payload: WithCallback<{\n permissionId: string;\n roleIds: string[];\n },\n IRolePermission>,\n ) => this.dispatchAction('attachPermissionToRoles', payload);\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router';\nimport { Observable } from 'rxjs';\nimport { FronteggBaseGuard } from './frontegg-base-guard';\nimport { FronteggAppService } from '../frontegg-app.service';\n\n@Injectable()\nexport class FronteggAuthGuard extends FronteggBaseGuard {\n constructor(protected fronteggAppService: FronteggAppService, protected router: Router) {\n super();\n }\n\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | Promise<boolean> | boolean {\n return new Observable<boolean>(obs => {\n this.fronteggAppService.isAuthenticated$.subscribe((isAuthenticated: boolean) => {\n if (isAuthenticated) {\n obs.next(true);\n } else {\n this.router.navigateByUrl(this.fronteggAppService.authRoutes.loginUrl + '?redirectUrl=' + encodeURIComponent(state.url));\n obs.next(false);\n }\n });\n });\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { FronteggAppOptions } from '@frontegg/types';\nimport { FronteggAppOptionsClass, FronteggAppService } from './frontegg-app.service';\nimport { FronteggComponent } from './frontegg.component';\nimport { FronteggLoadGuard } from './guards/frontegg-load.guard';\nimport { FronteggAuthGuard } from './guards/frontegg-auth.guard';\n\n@NgModule({\n imports: [CommonModule, RouterModule],\n declarations: [FronteggComponent],\n exports: [FronteggComponent],\n})\nexport class FronteggAppModule {\n static forRoot(config: FronteggAppOptions): ModuleWithProviders<FronteggAppModule> {\n return {\n ngModule: FronteggAppModule,\n providers: [\n FronteggAppService,\n FronteggAuthGuard,\n FronteggLoadGuard,\n {\n provide: FronteggAppOptionsClass,\n useValue: config,\n },\n ],\n };\n }\n}\n","/*\n * Public API Surface of frontegg-app\n */\n\nexport { FronteggAppService } from './lib/frontegg-app.service';\nexport { FronteggAuthService } from './lib/frontegg-auth.service';\nexport { FronteggComponent } from './lib/frontegg.component';\nexport { FronteggAppModule } from './lib/frontegg-app.module';\nexport * from './lib/guards/frontegg-auth.guard';\nexport * from './lib/guards/frontegg-load.guard';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n\nexport {FronteggAppOptionsClass as ɵa} from './lib/frontegg-app.service';\nexport {FronteggBaseGuard as ɵb} from './lib/guards/frontegg-base-guard';"],"names":[],"mappings":"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"}
|
|
@@ -63,6 +63,7 @@ export declare class FronteggAuthService {
|
|
|
63
63
|
setLoginState: (state: Partial<LoginState>) => void;
|
|
64
64
|
resetLoginState: () => void;
|
|
65
65
|
requestAuthorize: (firstTime?: boolean | undefined) => void;
|
|
66
|
+
loginWithRedirect: () => void;
|
|
66
67
|
preLogin: (payload: IPreLogin) => void;
|
|
67
68
|
postLogin: (payload: IPostLogin) => void;
|
|
68
69
|
login: (payload: ILogin) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"frontegg-auth.service.d.ts","sourceRoot":"","sources":["../../../../projects/frontegg-app/src/lib/frontegg-auth.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"frontegg-auth.service.d.ts","sourceRoot":"","sources":["../../../../projects/frontegg-app/src/lib/frontegg-auth.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frontegg/angular",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.0-alpha.1490679057",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^12.0.5",
|
|
7
7
|
"@angular/core": "^12.0.5"
|
|
8
8
|
},
|
|
9
9
|
"dependencies": {
|
|
10
|
-
"@frontegg/admin-portal": "4.
|
|
11
|
-
"@frontegg/redux-store": "4.
|
|
10
|
+
"@frontegg/admin-portal": "4.42.2",
|
|
11
|
+
"@frontegg/redux-store": "4.42.2",
|
|
12
12
|
"fast-deep-equal": "^3.1.3",
|
|
13
13
|
"tslib": "^2.0.0",
|
|
14
14
|
"csstype": "^3.0.8",
|