@igo2/auth 16.0.0-rc.4 → 16.0.0-rc.6

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.
@@ -36,4 +36,4 @@ export class AdminGuard {
36
36
  providedIn: 'root'
37
37
  }]
38
38
  }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2FkbWluLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLE1BQU0sRUFFUCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQU03QyxNQUFNLE9BQU8sVUFBVTtJQUVYO0lBQ0E7SUFDQTtJQUhWLFlBQ1UsV0FBd0IsRUFDeEIsTUFBcUIsRUFDckIsTUFBYztRQUZkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztRQUNoRSxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO29FQXJCVSxVQUFVO2dFQUFWLFVBQVUsV0FBVixVQUFVLG1CQUZULE1BQU07O3VGQUVQLFVBQVU7Y0FIdEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhPcHRpb25zIH0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1pbkd1YXJkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7fVxyXG5cclxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5kZWNvZGVUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuLnVzZXIgJiYgdG9rZW4udXNlci5pc0FkbWluKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XHJcblxyXG4gICAgY29uc3QgYXV0aENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpIGFzIEF1dGhPcHRpb25zO1xyXG4gICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhdXRoQ29uZmlnLmxvZ2luUm91dGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRtaW4uZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2FkbWluLmd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUVMLE1BQU0sRUFFUCxNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHM0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7OztBQUs3QyxNQUFNLE9BQU8sVUFBVTtJQUVYO0lBQ0E7SUFDQTtJQUhWLFlBQ1UsV0FBd0IsRUFDeEIsTUFBcUIsRUFDckIsTUFBYztRQUZkLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtJQUNyQixDQUFDO0lBRUosV0FBVyxDQUFDLEtBQTZCLEVBQUUsS0FBMEI7UUFDbkUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3QyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQzdDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztRQUNoRSxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO29FQXJCVSxVQUFVO2dFQUFWLFVBQVUsV0FBVixVQUFVLG1CQUZULE1BQU07O3VGQUVQLFVBQVU7Y0FIdEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQXV0aE9wdGlvbnMgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBZG1pbkd1YXJkIHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXHJcbiAgKSB7fVxyXG5cclxuICBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy5hdXRoU2VydmljZS5kZWNvZGVUb2tlbigpO1xyXG4gICAgaWYgKHRva2VuICYmIHRva2VuLnVzZXIgJiYgdG9rZW4udXNlci5pc0FkbWluKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XHJcblxyXG4gICAgY29uc3QgYXV0aENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpIGFzIEF1dGhPcHRpb25zO1xyXG4gICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhdXRoQ29uZmlnLmxvZ2luUm91dGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
@@ -35,4 +35,4 @@ export class AuthGuard {
35
35
  providedIn: 'root'
36
36
  }]
37
37
  }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEVBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFNN0MsTUFBTSxPQUFPLFNBQVM7SUFFVjtJQUNBO0lBQ0E7SUFIVixZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQWM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDckIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1FBQ2hFLElBQUksVUFBVSxFQUFFLFVBQVUsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7bUVBcEJVLFNBQVM7Z0VBQVQsU0FBUyxXQUFULFNBQVMsbUJBRlIsTUFBTTs7dUZBRVAsU0FBUztjQUhyQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXV0aE9wdGlvbnMgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XHJcblxyXG4gICAgY29uc3QgYXV0aENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpIGFzIEF1dGhPcHRpb25zO1xyXG4gICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhdXRoQ29uZmlnLmxvZ2luUm91dGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEVBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLN0MsTUFBTSxPQUFPLFNBQVM7SUFFVjtJQUNBO0lBQ0E7SUFIVixZQUNVLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQWM7UUFGZCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7SUFDckIsQ0FBQztJQUVKLFdBQVcsQ0FBQyxLQUE2QixFQUFFLEtBQTBCO1FBQ25FLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUU7WUFDbEMsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7UUFFekMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1FBQ2hFLElBQUksVUFBVSxFQUFFLFVBQVUsRUFBRTtZQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbEQ7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7bUVBcEJVLFNBQVM7Z0VBQVQsU0FBUyxXQUFULFNBQVMsbUJBRlIsTUFBTTs7dUZBRVAsU0FBUztjQUhyQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdFxyXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlIH0gZnJvbSAnQGlnbzIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBBdXRoT3B0aW9ucyB9IGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gJy4vYXV0aC5zZXJ2aWNlJztcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhHdWFyZCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5hdXRoZW50aWNhdGVkKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYXV0aFNlcnZpY2UucmVkaXJlY3RVcmwgPSBzdGF0ZS51cmw7XHJcblxyXG4gICAgY29uc3QgYXV0aENvbmZpZyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpIGFzIEF1dGhPcHRpb25zO1xyXG4gICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybChhdXRoQ29uZmlnLmxvZ2luUm91dGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuIl19
@@ -162,4 +162,4 @@ export class AuthInterceptor {
162
162
  providedIn: 'root'
163
163
  }]
164
164
  }], function () { return [{ type: i1.ConfigService }, { type: i2.TokenService }, { type: i3.HttpClient }]; }, null); })();
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQVUvQyxNQUFNLE9BQU8sZUFBZTtJQVFoQjtJQUNBO0lBQ0E7SUFURixXQUFXLENBQWM7SUFDekIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFVBQVUsQ0FBVztJQUNyQixvQkFBb0IsQ0FBMkI7SUFDL0Msa0JBQWtCLENBQXFCO0lBRS9DLFlBQ1UsTUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsSUFBZ0I7UUFGaEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1FBRWhFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLElBQUksRUFBRSxD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QU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7eUVBektVLGVBQWU7Z0VBQWYsZUFBZSxXQUFmLGVBQWUsbUJBRmQsTUFBTTs7dUZBRVAsZUFBZTtjQUgzQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cFJlcXVlc3RcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWQ1IH0gZnJvbSAndHMtbWQ1JztcclxuXHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcbmltcG9ydCB7XHJcbiAgQXV0aEJ5S2V5T3B0aW9ucyxcclxuICBBdXRoT3B0aW9ucyxcclxuICBXaXRoQ3JlZGVudGlhbHNPcHRpb25zXHJcbn0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIHByaXZhdGUgYXV0aE9wdGlvbnM6IEF1dGhPcHRpb25zO1xyXG4gIHByaXZhdGUgcmVmcmVzaEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBwcml2YXRlIHRydXN0SG9zdHM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgaG9zdHNXaXRoQ3JlZGVudGlhbHM6IFdpdGhDcmVkZW50aWFsc09wdGlvbnNbXTtcclxuICBwcml2YXRlIGhvc3RzV2l0aEF1dGhCeUtleTogQXV0aEJ5S2V5T3B0aW9uc1tdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gICAgdGhpcy5hdXRoT3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpIGFzIEF1dGhPcHRpb25zO1xyXG5cclxuICAgIHRoaXMudHJ1c3RIb3N0cyA9IHRoaXMuYXV0aE9wdGlvbnM/LnRydXN0SG9zdHMgfHwgW107XHJcbiAgICB0aGlzLnRydXN0SG9zdHMucHVzaCh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpO1xyXG5cclxuICAgIHRoaXMuaG9zdHNXaXRoQ3JlZGVudGlhbHMgPSB0aGlzLmF1dGhPcHRpb25zPy5ob3N0c1dpdGhDcmVkZW50aWFscyB8fCBbXTtcclxuICAgIHRoaXMuaG9zdHNXaXRoQXV0aEJ5S2V5ID0gdGhpcy5hdXRoT3B0aW9ucz8uaG9zdHNCeUtleSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdChcclxuICAgIG9yaWdpbmFsUmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHMgPSB0aGlzLmhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKG9yaWdpbmFsUmVxLnVybCk7XHJcbiAgICBsZXQgcmVxID0gb3JpZ2luYWxSZXEuY2xvbmUoKTtcclxuICAgIGNvbnN0IGhvc3RXaXRoS2V5ID0gdGhpcy5oYW5kbGVIb3N0c0F1dGhCeUtleShvcmlnaW5hbFJlcS51cmwpO1xyXG4gICAgaWYgKGhvc3RXaXRoS2V5KSB7XHJcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XHJcbiAgICAgICAgcGFyYW1zOiByZXEucGFyYW1zLnNldChob3N0V2l0aEtleS5rZXksIGhvc3RXaXRoS2V5LnZhbHVlKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh3aXRoQ3JlZGVudGlhbHMpIHtcclxuICAgICAgcmVxID0gb3JpZ2luYWxSZXEuY2xvbmUoe1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFsc1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBlbGVtZW50LmhyZWYgPSByZXEudXJsO1xyXG4gICAgaWYgKGVsZW1lbnQuaG9zdCA9PT0gJycpIHtcclxuICAgICAgZWxlbWVudC5ocmVmID0gZWxlbWVudC5ocmVmOyAvLyBGSVggSUUxMSwgRE8gTk9UIFJFTU9WRVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdG9rZW4gfHwgdGhpcy50cnVzdEhvc3RzLmluZGV4T2YoZWxlbWVudC5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGF1dGhIZWFkZXIgPSBgQmVhcmVyICR7dG9rZW59YDtcclxuICAgIGxldCBhdXRoUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYXV0aEhlYWRlcilcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRva2VuRGVjb2RlZDogYW55ID0gdGhpcy50b2tlblNlcnZpY2UuZGVjb2RlKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIGF1dGhSZXEucGFyYW1zLmdldCgnX2knKSA9PT0gJ3RydWUnICYmXHJcbiAgICAgIHRva2VuRGVjb2RlZCAmJlxyXG4gICAgICB0b2tlbkRlY29kZWQudXNlciAmJlxyXG4gICAgICB0b2tlbkRlY29kZWQudXNlci5zb3VyY2VJZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IGhhc2hVc2VyID0gTWQ1Lmhhc2hTdHIodG9rZW5EZWNvZGVkLnVzZXIuc291cmNlSWQpIGFzIHN0cmluZztcclxuICAgICAgYXV0aFJlcSA9IGF1dGhSZXEuY2xvbmUoe1xyXG4gICAgICAgIHBhcmFtczogYXV0aFJlcS5wYXJhbXMuc2V0KCdfaScsIGhhc2hVc2VyKVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoYXV0aFJlcS5wYXJhbXMuZ2V0KCdfaScpID09PSAndHJ1ZScpIHtcclxuICAgICAgYXV0aFJlcSA9IGF1dGhSZXEuY2xvbmUoe1xyXG4gICAgICAgIHBhcmFtczogYXV0aFJlcS5wYXJhbXMuZGVsZXRlKCdfaScpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKTtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdFhocih4aHIsIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHMgPSB0aGlzLmhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKHVybCk7XHJcbiAgICBpZiAod2l0aENyZWRlbnRpYWxzKSB7XHJcbiAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgZWxlbWVudC5ocmVmID0gdXJsO1xyXG5cclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk7XHJcbiAgICBpZiAoIXRva2VuIHx8IHRoaXMudHJ1c3RIb3N0cy5pbmRleE9mKGVsZW1lbnQuaG9zdG5hbWUpID09PSAtMSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIHRva2VuKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBob3N0V2l0aEtleSA9IHRoaXMuaGFuZGxlSG9zdHNBdXRoQnlLZXkodXJsKTtcclxuICAgIGxldCBpbnRlcmNlcHRlZFVybCA9IHVybDtcclxuICAgIGlmIChob3N0V2l0aEtleSkge1xyXG4gICAgICBjb25zdCB1cmxEZWNvbXBvc2VkID0gaW50ZXJjZXB0ZWRVcmwuc3BsaXQoL1s/Jl0vKTtcclxuICAgICAgbGV0IHVybFdpdGhLZXlBZGRlZCA9IHVybERlY29tcG9zZWQuc2hpZnQoKTtcclxuICAgICAgY29uc3QgcGFyYW1zVG9LZWVwID0gdXJsRGVjb21wb3NlZC5maWx0ZXIoKHApID0+IHAubGVuZ3RoICE9PSAwKTtcclxuICAgICAgcGFyYW1zVG9LZWVwLnB1c2goYCR7aG9zdFdpdGhLZXkua2V5fT0ke2hvc3RXaXRoS2V5LnZhbHVlfWApO1xyXG4gICAgICBpZiAocGFyYW1zVG9LZWVwLmxlbmd0aCkge1xyXG4gICAgICAgIHVybFdpdGhLZXlBZGRlZCArPSAnPycgKyBwYXJhbXNUb0tlZXAuam9pbignJicpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1cmxXaXRoS2V5QWRkZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKHJlcVVybDogc3RyaW5nKSB7XHJcbiAgICBsZXQgd2l0aENyZWRlbnRpYWxzID0gZmFsc2U7XHJcbiAgICBmb3IgKGNvbnN0IGhvc3RXaXRoQ3JlZGVudGlhbHMgb2YgdGhpcy5ob3N0c1dpdGhDcmVkZW50aWFscykge1xyXG4gICAgICBjb25zdCBkb21haW5SZWdleCA9IG5ldyBSZWdFeHAoaG9zdFdpdGhDcmVkZW50aWFscy5kb21haW5SZWdGaWx0ZXJzKTtcclxuICAgICAgaWYgKGRvbWFpblJlZ2V4LnRlc3QocmVxVXJsKSkge1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9XHJcbiAgICAgICAgICBob3N0V2l0aENyZWRlbnRpYWxzLndpdGhDcmVkZW50aWFscyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gaG9zdFdpdGhDcmVkZW50aWFscy53aXRoQ3JlZGVudGlhbHNcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB3aXRoQ3JlZGVudGlhbHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUhvc3RzQXV0aEJ5S2V5KHJlcVVybDogc3RyaW5nKTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9IHtcclxuICAgIGxldCBob3N0V2l0aEtleTtcclxuICAgIGZvciAoY29uc3QgaG9zdFdpdGhBdXRoQnlLZXkgb2YgdGhpcy5ob3N0c1dpdGhBdXRoQnlLZXkpIHtcclxuICAgICAgY29uc3QgZG9tYWluUmVnZXggPSBuZXcgUmVnRXhwKGhvc3RXaXRoQXV0aEJ5S2V5LmRvbWFpblJlZ0ZpbHRlcnMpO1xyXG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdChyZXFVcmwpKSB7XHJcbiAgICAgICAgdmFyIHJlcGxhY2UgPSBgJHtob3N0V2l0aEF1dGhCeUtleS5rZXlQcm9wZXJ0eX09JHtob3N0V2l0aEF1dGhCeUtleS5rZXlWYWx1ZX1gO1xyXG4gICAgICAgIHZhciBrZXlBZGRlZCA9IG5ldyBSZWdFeHAocmVwbGFjZSwgJ2dtJyk7XHJcbiAgICAgICAgaWYgKCFrZXlBZGRlZC50ZXN0KHJlcVVybCkpIHtcclxuICAgICAgICAgIGhvc3RXaXRoS2V5ID0ge1xyXG4gICAgICAgICAgICBrZXk6IGhvc3RXaXRoQXV0aEJ5S2V5LmtleVByb3BlcnR5LFxyXG4gICAgICAgICAgICB2YWx1ZTogaG9zdFdpdGhBdXRoQnlLZXkua2V5VmFsdWVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBob3N0V2l0aEtleTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIGNvbnN0IGp3dCA9IHRoaXMudG9rZW5TZXJ2aWNlLmRlY29kZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyAmJlxyXG4gICAgICBqd3QgJiZcclxuICAgICAgY3VycmVudFRpbWUgPCBqd3QuZXhwICYmXHJcbiAgICAgIGN1cnJlbnRUaW1lID4gand0LmV4cCAtIDE4MDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlZnJlc2hJblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYXV0aE9wdGlvbnM/LnVybDtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3VybH0vcmVmcmVzaGAsIHt9KS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gZXJyO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
165
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5pbnRlcmNlcHRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvYXV0aC5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFPbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFPN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7OztBQUsvQyxNQUFNLE9BQU8sZUFBZTtJQVFoQjtJQUNBO0lBQ0E7SUFURixXQUFXLENBQWM7SUFDekIsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO0lBQzFCLFVBQVUsQ0FBVztJQUNyQixvQkFBb0IsQ0FBMkI7SUFDL0Msa0JBQWtCLENBQXFCO0lBRS9DLFlBQ1UsTUFBcUIsRUFDckIsWUFBMEIsRUFDMUIsSUFBZ0I7UUFGaEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixTQUFJLEdBQUosSUFBSSxDQUFZO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1FBRWhFLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLElBQUksRUFBRSxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLElBQUksRUFBRSxD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QU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQyxDQUNGLENBQUM7U0FDSDtJQUNILENBQUM7eUVBektVLGVBQWU7Z0VBQWYsZUFBZSxXQUFmLGVBQWUsbUJBRmQsTUFBTTs7dUZBRVAsZUFBZTtjQUgzQixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQge1xyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwSGFuZGxlcixcclxuICBIdHRwSW50ZXJjZXB0b3IsXHJcbiAgSHR0cFJlcXVlc3RcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAaWdvMi9jb3JlJztcclxuXHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTWQ1IH0gZnJvbSAndHMtbWQ1JztcclxuXHJcbmltcG9ydCB7XHJcbiAgQXV0aEJ5S2V5T3B0aW9ucyxcclxuICBBdXRoT3B0aW9ucyxcclxuICBXaXRoQ3JlZGVudGlhbHNPcHRpb25zXHJcbn0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFRva2VuU2VydmljZSB9IGZyb20gJy4vdG9rZW4uc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRoSW50ZXJjZXB0b3IgaW1wbGVtZW50cyBIdHRwSW50ZXJjZXB0b3Ige1xyXG4gIHByaXZhdGUgYXV0aE9wdGlvbnM6IEF1dGhPcHRpb25zO1xyXG4gIHByaXZhdGUgcmVmcmVzaEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICBwcml2YXRlIHRydXN0SG9zdHM6IHN0cmluZ1tdO1xyXG4gIHByaXZhdGUgaG9zdHNXaXRoQ3JlZGVudGlhbHM6IFdpdGhDcmVkZW50aWFsc09wdGlvbnNbXTtcclxuICBwcml2YXRlIGhvc3RzV2l0aEF1dGhCeUtleTogQXV0aEJ5S2V5T3B0aW9uc1tdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2tlblNlcnZpY2U6IFRva2VuU2VydmljZSxcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudFxyXG4gICkge1xyXG4gICAgdGhpcy5hdXRoT3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvbmZpZygnYXV0aCcpIGFzIEF1dGhPcHRpb25zO1xyXG5cclxuICAgIHRoaXMudHJ1c3RIb3N0cyA9IHRoaXMuYXV0aE9wdGlvbnM/LnRydXN0SG9zdHMgfHwgW107XHJcbiAgICB0aGlzLnRydXN0SG9zdHMucHVzaCh3aW5kb3cubG9jYXRpb24uaG9zdG5hbWUpO1xyXG5cclxuICAgIHRoaXMuaG9zdHNXaXRoQ3JlZGVudGlhbHMgPSB0aGlzLmF1dGhPcHRpb25zPy5ob3N0c1dpdGhDcmVkZW50aWFscyB8fCBbXTtcclxuICAgIHRoaXMuaG9zdHNXaXRoQXV0aEJ5S2V5ID0gdGhpcy5hdXRoT3B0aW9ucz8uaG9zdHNCeUtleSB8fCBbXTtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdChcclxuICAgIG9yaWdpbmFsUmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gICAgbmV4dDogSHR0cEhhbmRsZXJcclxuICApOiBPYnNlcnZhYmxlPEh0dHBFdmVudDxhbnk+PiB7XHJcbiAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHMgPSB0aGlzLmhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKG9yaWdpbmFsUmVxLnVybCk7XHJcbiAgICBsZXQgcmVxID0gb3JpZ2luYWxSZXEuY2xvbmUoKTtcclxuICAgIGNvbnN0IGhvc3RXaXRoS2V5ID0gdGhpcy5oYW5kbGVIb3N0c0F1dGhCeUtleShvcmlnaW5hbFJlcS51cmwpO1xyXG4gICAgaWYgKGhvc3RXaXRoS2V5KSB7XHJcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7XHJcbiAgICAgICAgcGFyYW1zOiByZXEucGFyYW1zLnNldChob3N0V2l0aEtleS5rZXksIGhvc3RXaXRoS2V5LnZhbHVlKVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGlmICh3aXRoQ3JlZGVudGlhbHMpIHtcclxuICAgICAgcmVxID0gb3JpZ2luYWxSZXEuY2xvbmUoe1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFsc1xyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlZnJlc2hUb2tlbigpO1xyXG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLnRva2VuU2VydmljZS5nZXQoKTtcclxuICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7XHJcbiAgICBlbGVtZW50LmhyZWYgPSByZXEudXJsO1xyXG4gICAgaWYgKGVsZW1lbnQuaG9zdCA9PT0gJycpIHtcclxuICAgICAgZWxlbWVudC5ocmVmID0gZWxlbWVudC5ocmVmOyAvLyBGSVggSUUxMSwgRE8gTk9UIFJFTU9WRVxyXG4gICAgfVxyXG5cclxuICAgIGlmICghdG9rZW4gfHwgdGhpcy50cnVzdEhvc3RzLmluZGV4T2YoZWxlbWVudC5ob3N0bmFtZSkgPT09IC0xKSB7XHJcbiAgICAgIHJldHVybiBuZXh0LmhhbmRsZShyZXEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGF1dGhIZWFkZXIgPSBgQmVhcmVyICR7dG9rZW59YDtcclxuICAgIGxldCBhdXRoUmVxID0gcmVxLmNsb25lKHtcclxuICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMuc2V0KCdBdXRob3JpemF0aW9uJywgYXV0aEhlYWRlcilcclxuICAgIH0pO1xyXG5cclxuICAgIGNvbnN0IHRva2VuRGVjb2RlZDogYW55ID0gdGhpcy50b2tlblNlcnZpY2UuZGVjb2RlKCk7XHJcbiAgICBpZiAoXHJcbiAgICAgIGF1dGhSZXEucGFyYW1zLmdldCgnX2knKSA9PT0gJ3RydWUnICYmXHJcbiAgICAgIHRva2VuRGVjb2RlZCAmJlxyXG4gICAgICB0b2tlbkRlY29kZWQudXNlciAmJlxyXG4gICAgICB0b2tlbkRlY29kZWQudXNlci5zb3VyY2VJZFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IGhhc2hVc2VyID0gTWQ1Lmhhc2hTdHIodG9rZW5EZWNvZGVkLnVzZXIuc291cmNlSWQpIGFzIHN0cmluZztcclxuICAgICAgYXV0aFJlcSA9IGF1dGhSZXEuY2xvbmUoe1xyXG4gICAgICAgIHBhcmFtczogYXV0aFJlcS5wYXJhbXMuc2V0KCdfaScsIGhhc2hVc2VyKVxyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSBpZiAoYXV0aFJlcS5wYXJhbXMuZ2V0KCdfaScpID09PSAndHJ1ZScpIHtcclxuICAgICAgYXV0aFJlcSA9IGF1dGhSZXEuY2xvbmUoe1xyXG4gICAgICAgIHBhcmFtczogYXV0aFJlcS5wYXJhbXMuZGVsZXRlKCdfaScpXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBuZXh0LmhhbmRsZShhdXRoUmVxKTtcclxuICB9XHJcblxyXG4gIGludGVyY2VwdFhocih4aHIsIHVybDogc3RyaW5nKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHMgPSB0aGlzLmhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKHVybCk7XHJcbiAgICBpZiAod2l0aENyZWRlbnRpYWxzKSB7XHJcbiAgICAgIHhoci53aXRoQ3JlZGVudGlhbHMgPSB3aXRoQ3JlZGVudGlhbHM7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucmVmcmVzaFRva2VuKCk7XHJcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xyXG4gICAgZWxlbWVudC5ocmVmID0gdXJsO1xyXG5cclxuICAgIGNvbnN0IHRva2VuID0gdGhpcy50b2tlblNlcnZpY2UuZ2V0KCk7XHJcbiAgICBpZiAoIXRva2VuIHx8IHRoaXMudHJ1c3RIb3N0cy5pbmRleE9mKGVsZW1lbnQuaG9zdG5hbWUpID09PSAtMSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcignQXV0aG9yaXphdGlvbicsICdCZWFyZXIgJyArIHRva2VuKTtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYWx0ZXJVcmxXaXRoS2V5QXV0aCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBob3N0V2l0aEtleSA9IHRoaXMuaGFuZGxlSG9zdHNBdXRoQnlLZXkodXJsKTtcclxuICAgIGxldCBpbnRlcmNlcHRlZFVybCA9IHVybDtcclxuICAgIGlmIChob3N0V2l0aEtleSkge1xyXG4gICAgICBjb25zdCB1cmxEZWNvbXBvc2VkID0gaW50ZXJjZXB0ZWRVcmwuc3BsaXQoL1s/Jl0vKTtcclxuICAgICAgbGV0IHVybFdpdGhLZXlBZGRlZCA9IHVybERlY29tcG9zZWQuc2hpZnQoKTtcclxuICAgICAgY29uc3QgcGFyYW1zVG9LZWVwID0gdXJsRGVjb21wb3NlZC5maWx0ZXIoKHApID0+IHAubGVuZ3RoICE9PSAwKTtcclxuICAgICAgcGFyYW1zVG9LZWVwLnB1c2goYCR7aG9zdFdpdGhLZXkua2V5fT0ke2hvc3RXaXRoS2V5LnZhbHVlfWApO1xyXG4gICAgICBpZiAocGFyYW1zVG9LZWVwLmxlbmd0aCkge1xyXG4gICAgICAgIHVybFdpdGhLZXlBZGRlZCArPSAnPycgKyBwYXJhbXNUb0tlZXAuam9pbignJicpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1cmxXaXRoS2V5QWRkZWQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUhvc3RzV2l0aENyZWRlbnRpYWxzKHJlcVVybDogc3RyaW5nKSB7XHJcbiAgICBsZXQgd2l0aENyZWRlbnRpYWxzID0gZmFsc2U7XHJcbiAgICBmb3IgKGNvbnN0IGhvc3RXaXRoQ3JlZGVudGlhbHMgb2YgdGhpcy5ob3N0c1dpdGhDcmVkZW50aWFscykge1xyXG4gICAgICBjb25zdCBkb21haW5SZWdleCA9IG5ldyBSZWdFeHAoaG9zdFdpdGhDcmVkZW50aWFscy5kb21haW5SZWdGaWx0ZXJzKTtcclxuICAgICAgaWYgKGRvbWFpblJlZ2V4LnRlc3QocmVxVXJsKSkge1xyXG4gICAgICAgIHdpdGhDcmVkZW50aWFscyA9XHJcbiAgICAgICAgICBob3N0V2l0aENyZWRlbnRpYWxzLndpdGhDcmVkZW50aWFscyAhPT0gdW5kZWZpbmVkXHJcbiAgICAgICAgICAgID8gaG9zdFdpdGhDcmVkZW50aWFscy53aXRoQ3JlZGVudGlhbHNcclxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiB3aXRoQ3JlZGVudGlhbHM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUhvc3RzQXV0aEJ5S2V5KHJlcVVybDogc3RyaW5nKTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IHN0cmluZyB9IHtcclxuICAgIGxldCBob3N0V2l0aEtleTtcclxuICAgIGZvciAoY29uc3QgaG9zdFdpdGhBdXRoQnlLZXkgb2YgdGhpcy5ob3N0c1dpdGhBdXRoQnlLZXkpIHtcclxuICAgICAgY29uc3QgZG9tYWluUmVnZXggPSBuZXcgUmVnRXhwKGhvc3RXaXRoQXV0aEJ5S2V5LmRvbWFpblJlZ0ZpbHRlcnMpO1xyXG4gICAgICBpZiAoZG9tYWluUmVnZXgudGVzdChyZXFVcmwpKSB7XHJcbiAgICAgICAgdmFyIHJlcGxhY2UgPSBgJHtob3N0V2l0aEF1dGhCeUtleS5rZXlQcm9wZXJ0eX09JHtob3N0V2l0aEF1dGhCeUtleS5rZXlWYWx1ZX1gO1xyXG4gICAgICAgIHZhciBrZXlBZGRlZCA9IG5ldyBSZWdFeHAocmVwbGFjZSwgJ2dtJyk7XHJcbiAgICAgICAgaWYgKCFrZXlBZGRlZC50ZXN0KHJlcVVybCkpIHtcclxuICAgICAgICAgIGhvc3RXaXRoS2V5ID0ge1xyXG4gICAgICAgICAgICBrZXk6IGhvc3RXaXRoQXV0aEJ5S2V5LmtleVByb3BlcnR5LFxyXG4gICAgICAgICAgICB2YWx1ZTogaG9zdFdpdGhBdXRoQnlLZXkua2V5VmFsdWVcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBob3N0V2l0aEtleTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hUb2tlbigpIHtcclxuICAgIGNvbnN0IGp3dCA9IHRoaXMudG9rZW5TZXJ2aWNlLmRlY29kZSgpO1xyXG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAvIDEwMDA7XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAhdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyAmJlxyXG4gICAgICBqd3QgJiZcclxuICAgICAgY3VycmVudFRpbWUgPCBqd3QuZXhwICYmXHJcbiAgICAgIGN1cnJlbnRUaW1lID4gand0LmV4cCAtIDE4MDBcclxuICAgICkge1xyXG4gICAgICB0aGlzLnJlZnJlc2hJblByb2dyZXNzID0gdHJ1ZTtcclxuXHJcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuYXV0aE9wdGlvbnM/LnVybDtcclxuICAgICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3VybH0vcmVmcmVzaGAsIHt9KS5zdWJzY3JpYmUoXHJcbiAgICAgICAgKGRhdGE6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50b2tlblNlcnZpY2Uuc2V0KGRhdGEudG9rZW4pO1xyXG4gICAgICAgICAgdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgKGVycikgPT4ge1xyXG4gICAgICAgICAgZXJyLmVycm9yLmNhdWdodCA9IHRydWU7XHJcbiAgICAgICAgICByZXR1cm4gZXJyO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -10,4 +10,4 @@ export * from './profils.guard';
10
10
  export * from './protected.directive';
11
11
  export * from './storage.interface';
12
12
  export * from './storage.service';
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGguaW50ZXJjZXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLW1pY3Jvc29mdC5wcm92aWRlcic7XG5leHBvcnQgKiBmcm9tICcuL2xvZ2dlZC5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL2F1dGguZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9hZG1pbi5ndWFyZCc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2ZpbHMuZ3VhcmQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcm90ZWN0ZWQuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLnNlcnZpY2UnO1xuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3Rva2VuLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5pbnRlcmZhY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGguaW50ZXJjZXB0b3InO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtbWljcm9zb2Z0LnByb3ZpZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2dnZWQuZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2F1dGguZ3VhcmQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2FkbWluLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm9maWxzLmd1YXJkJztcclxuZXhwb3J0ICogZnJvbSAnLi9wcm90ZWN0ZWQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9zdG9yYWdlLmludGVyZmFjZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuIl19
@@ -35,4 +35,4 @@ export class LoggedGuard {
35
35
  providedIn: 'root'
36
36
  }]
37
37
  }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9sb2dnZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsTUFBTSxFQUVQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTTdDLE1BQU0sT0FBTyxXQUFXO0lBRVo7SUFDQTtJQUNBO0lBSFYsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztRQUNoRSxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3FFQXBCVSxXQUFXO2dFQUFYLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07O3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhPcHRpb25zIH0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dnZWRHdWFyZCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5sb2dnZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcclxuXHJcbiAgICBjb25zdCBhdXRoQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJykgYXMgQXV0aE9wdGlvbnM7XHJcbiAgICBpZiAoYXV0aENvbmZpZz8ubG9naW5Sb3V0ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGF1dGhDb25maWcubG9naW5Sb3V0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VkLmd1YXJkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYXV0aC9zcmMvbGliL3NoYXJlZC9sb2dnZWQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBRUwsTUFBTSxFQUVQLE1BQU0saUJBQWlCLENBQUM7QUFFekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUczQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdDLE1BQU0sT0FBTyxXQUFXO0lBRVo7SUFDQTtJQUNBO0lBSFYsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1FBRXpDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztRQUNoRSxJQUFJLFVBQVUsRUFBRSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ2xEO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO3FFQXBCVSxXQUFXO2dFQUFYLFdBQVcsV0FBWCxXQUFXLG1CQUZWLE1BQU07O3VGQUVQLFdBQVc7Y0FIdkIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQXV0aE9wdGlvbnMgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMb2dnZWRHdWFyZCB7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICBpZiAodGhpcy5hdXRoU2VydmljZS5sb2dnZWQpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcclxuXHJcbiAgICBjb25zdCBhdXRoQ29uZmlnID0gdGhpcy5jb25maWcuZ2V0Q29uZmlnKCdhdXRoJykgYXMgQXV0aE9wdGlvbnM7XHJcbiAgICBpZiAoYXV0aENvbmZpZz8ubG9naW5Sb3V0ZSkge1xyXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKGF1dGhDb25maWcubG9naW5Sb3V0ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -40,4 +40,4 @@ export class ProfilsGuard {
40
40
  providedIn: 'root'
41
41
  }]
42
42
  }], function () { return [{ type: i1.AuthService }, { type: i2.ConfigService }, { type: i3.Router }]; }, null); })();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlscy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvZmlscy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEVBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBTTdDLE1BQU0sT0FBTyxZQUFZO0lBRWI7SUFDQTtJQUNBO0lBSFYsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsTUFBOEIsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1lBQ2hFLElBQ0UsT0FBTztnQkFDUCxPQUFPLENBQUMsT0FBTztnQkFDZixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDdEU7Z0JBQ0EsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFFekMsSUFBSSxVQUFVLEVBQUUsVUFBVSxFQUFFO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbEQ7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3NFQTVCVSxZQUFZO2dFQUFaLFlBQVksV0FBWixZQUFZLG1CQUZYLE1BQU07O3VGQUVQLFlBQVk7Y0FIeEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcbmltcG9ydCB7IEF1dGhPcHRpb25zIH0gZnJvbSAnLi9hdXRoLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxzR3VhcmQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlKF9yb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFByb2ZpbHMoKS5waXBlKFxyXG4gICAgICBtYXAoKHByb2ZpbHM6IHsgcHJvZmlsczogc3RyaW5nW10gfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGF1dGhDb25maWcgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKSBhcyBBdXRoT3B0aW9ucztcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwcm9maWxzICYmXHJcbiAgICAgICAgICBwcm9maWxzLnByb2ZpbHMgJiZcclxuICAgICAgICAgIHByb2ZpbHMucHJvZmlscy5zb21lKCh2KSA9PiBhdXRoQ29uZmlnLnByb2ZpbHNHdWFyZC5pbmRleE9mKHYpICE9PSAtMSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcclxuXHJcbiAgICAgICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZmlscy5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2F1dGgvc3JjL2xpYi9zaGFyZWQvcHJvZmlscy5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFFTCxNQUFNLEVBRVAsTUFBTSxpQkFBaUIsQ0FBQztBQUV6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUdyQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBSzdDLE1BQU0sT0FBTyxZQUFZO0lBRWI7SUFDQTtJQUNBO0lBSFYsWUFDVSxXQUF3QixFQUN4QixNQUFxQixFQUNyQixNQUFjO1FBRmQsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsTUFBOEIsRUFBRSxLQUEwQjtRQUNwRSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUN2QyxHQUFHLENBQUMsQ0FBQyxPQUE4QixFQUFFLEVBQUU7WUFDckMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFnQixDQUFDO1lBQ2hFLElBQ0UsT0FBTztnQkFDUCxPQUFPLENBQUMsT0FBTztnQkFDZixPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFDdEU7Z0JBQ0EsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFFekMsSUFBSSxVQUFVLEVBQUUsVUFBVSxFQUFFO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDbEQ7WUFFRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3NFQTVCVSxZQUFZO2dFQUFaLFlBQVksV0FBWixZQUFZLG1CQUZYLE1BQU07O3VGQUVQLFlBQVk7Y0FIeEIsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgUm91dGVyLFxyXG4gIFJvdXRlclN0YXRlU25hcHNob3RcclxufSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5cclxuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQXV0aE9wdGlvbnMgfSBmcm9tICcuL2F1dGguaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuL2F1dGguc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQcm9maWxzR3VhcmQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvbmZpZzogQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHt9XHJcblxyXG4gIGNhbkFjdGl2YXRlKF9yb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiB0aGlzLmF1dGhTZXJ2aWNlLmdldFByb2ZpbHMoKS5waXBlKFxyXG4gICAgICBtYXAoKHByb2ZpbHM6IHsgcHJvZmlsczogc3RyaW5nW10gfSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IGF1dGhDb25maWcgPSB0aGlzLmNvbmZpZy5nZXRDb25maWcoJ2F1dGgnKSBhcyBBdXRoT3B0aW9ucztcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICBwcm9maWxzICYmXHJcbiAgICAgICAgICBwcm9maWxzLnByb2ZpbHMgJiZcclxuICAgICAgICAgIHByb2ZpbHMucHJvZmlscy5zb21lKCh2KSA9PiBhdXRoQ29uZmlnLnByb2ZpbHNHdWFyZC5pbmRleE9mKHYpICE9PSAtMSlcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hdXRoU2VydmljZS5yZWRpcmVjdFVybCA9IHN0YXRlLnVybDtcclxuXHJcbiAgICAgICAgaWYgKGF1dGhDb25maWc/LmxvZ2luUm91dGUpIHtcclxuICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoYXV0aENvbmZpZy5sb2dpblJvdXRlKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL3N0b3JhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlT3B0aW9ucyB9IGZyb20gJ0BpZ28yL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhTdG9yYWdlT3B0aW9ucyBleHRlbmRzIFN0b3JhZ2VPcHRpb25zIHtcbiAgdXJsOiBzdHJpbmc7XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hdXRoL3NyYy9saWIvc2hhcmVkL3N0b3JhZ2UuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdG9yYWdlT3B0aW9ucyB9IGZyb20gJ0BpZ28yL2NvcmUnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRoU3RvcmFnZU9wdGlvbnMgZXh0ZW5kcyBTdG9yYWdlT3B0aW9ucyB7XHJcbiAgdXJsOiBzdHJpbmc7XHJcbn1cclxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"igo2-auth.mjs","sources":["../../../packages/auth/src/lib/shared/token.service.ts","../../../packages/auth/src/lib/shared/auth.service.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.ts","../../../packages/auth/src/lib/auth-form/auth-facebook.component.ts","../../../packages/auth/src/lib/auth-form/auth-facebook.component.html","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.html","../../../packages/auth/src/lib/shared/auth-msalServiceb2c.service..ts","../../../packages/auth/src/lib/shared/auth-msalBroadcastServiceb2c.service.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.html","../../../packages/auth/src/lib/auth-form/auth-form.component.html","../../../packages/auth/src/lib/auth-form/auth-form.component.ts","../../../packages/auth/src/lib/shared/logged.guard.ts","../../../packages/auth/src/lib/shared/auth.guard.ts","../../../packages/auth/src/lib/shared/admin.guard.ts","../../../packages/auth/src/lib/shared/profils.guard.ts","../../../packages/auth/src/lib/shared/auth.interceptor.ts","../../../packages/auth/src/lib/shared/auth-microsoft.provider.ts","../../../packages/auth/src/lib/shared/protected.directive.ts","../../../packages/auth/src/lib/shared/storage.service.ts","../../../packages/auth/src/lib/auth-routing.module.ts","../../../packages/auth/src/lib/auth.module.ts","../../../packages/auth/src/public_api.ts","../../../packages/auth/src/igo2-auth.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport jwtDecode from 'jwt-decode';\r\n\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n private options?: AuthOptions;\r\n private tokenKey: string;\r\n\r\n constructor(private injector: Injector) {\r\n const config = this.injector.get<ConfigService>(ConfigService);\r\n this.options = config.getConfig('auth');\r\n this.tokenKey = this.options?.tokenKey;\r\n }\r\n\r\n set(token: string) {\r\n localStorage.setItem(this.tokenKey, token);\r\n }\r\n\r\n remove() {\r\n localStorage.removeItem(this.tokenKey);\r\n }\r\n\r\n get(): string {\r\n return localStorage.getItem(this.tokenKey);\r\n }\r\n\r\n decode() {\r\n const token = this.get();\r\n if (!token) {\r\n return;\r\n }\r\n return jwtDecode(token);\r\n }\r\n\r\n isExpired() {\r\n const jwt = this.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n if (jwt && currentTime < jwt.exp) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { ConfigService, LanguageService, MessageService } from '@igo2/core';\r\nimport { Base64 } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { globalCacheBusterNotifier } from 'ts-cacheable';\r\n\r\nimport { AuthOptions, IInfosUser, User } from './auth.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public authenticate$ = new BehaviorSubject<boolean>(undefined);\r\n public logged$ = new BehaviorSubject<boolean>(undefined);\r\n public redirectUrl: string;\r\n public languageForce = false;\r\n private anonymous = false;\r\n private authOptions: AuthOptions;\r\n\r\n get hasAuthService() {\r\n return this.authOptions?.url !== undefined;\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private tokenService: TokenService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n @Optional() private router: Router\r\n ) {\r\n this.authOptions = this.config.getConfig('auth');\r\n this.authenticate$.next(this.authenticated);\r\n this.authenticate$.subscribe((authenticated) => {\r\n this.logged$.next(authenticated);\r\n globalCacheBusterNotifier.next();\r\n });\r\n }\r\n\r\n login(username: string, password: string): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n username,\r\n password: this.encodePassword(password)\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginWithToken(\r\n token: string,\r\n type: string,\r\n infosUser?: IInfosUser\r\n ): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n token,\r\n typeConnection: type,\r\n infosUser\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginAnonymous(): Observable<boolean> {\r\n this.anonymous = true;\r\n this.logged$.next(true);\r\n return of(true);\r\n }\r\n\r\n refresh(): Observable<void> {\r\n return this.http.post(`${this.authOptions?.url}/refresh`, {}).pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n logout(): Observable<boolean> {\r\n this.anonymous = false;\r\n this.tokenService.remove();\r\n this.authenticate$.next(false);\r\n return of(true);\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return !this.tokenService.isExpired();\r\n }\r\n\r\n getToken(): string {\r\n return this.tokenService.get();\r\n }\r\n\r\n decodeToken() {\r\n if (this.isAuthenticated()) {\r\n return this.tokenService.decode();\r\n }\r\n return false;\r\n }\r\n\r\n goToRedirectUrl() {\r\n if (!this.router) {\r\n return;\r\n }\r\n const redirectUrl = this.redirectUrl || this.router.url;\r\n\r\n if (redirectUrl === this.authOptions.loginRoute) {\r\n const homeRoute = this.authOptions.homeRoute || '/';\r\n this.router.navigateByUrl(homeRoute);\r\n } else if (redirectUrl) {\r\n this.router.navigateByUrl(redirectUrl);\r\n }\r\n }\r\n\r\n getUserInfo(): Observable<User> {\r\n const url = this.authOptions?.url + '/info';\r\n return this.http.get<User>(url);\r\n }\r\n\r\n getProfils(): Observable<{ profils: string[] }> {\r\n return this.http.get<{ profils: string[] }>(\r\n `${this.authOptions?.url}/profils`\r\n );\r\n }\r\n\r\n updateUser(user: User): Observable<User> {\r\n return this.http.patch<User>(this.authOptions?.url, user);\r\n }\r\n\r\n private encodePassword(password: string) {\r\n return Base64.encode(password);\r\n }\r\n\r\n // authenticated or anonymous\r\n get logged(): boolean {\r\n return this.authenticated || this.isAnonymous;\r\n }\r\n\r\n get isAnonymous(): boolean {\r\n return this.anonymous;\r\n }\r\n\r\n get authenticated(): boolean {\r\n return this.isAuthenticated();\r\n }\r\n\r\n get isAdmin(): boolean {\r\n const token = this.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private loginCall(body, headers) {\r\n return this.http\r\n .post(`${this.authOptions?.url}/login`, body, { headers })\r\n .pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n const tokenDecoded = this.decodeToken();\r\n if (tokenDecoded && tokenDecoded.user) {\r\n if (tokenDecoded.user.locale && !this.languageForce) {\r\n this.languageService.setLanguage(tokenDecoded.user.locale);\r\n }\r\n if (tokenDecoded.user.isExpired) {\r\n this.messageService.alert('igo.auth.error.Password expired');\r\n }\r\n }\r\n this.authenticate$.next(true);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\n\r\nimport { AuthGoogleOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-google',\r\n templateUrl: './auth-google.component.html',\r\n styleUrls: ['./auth-google.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthGoogleComponent {\r\n private options?: AuthGoogleOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.google');\r\n\r\n if (this.options?.apiKey && this.options?.clientId) {\r\n this.loadSDKGoogle();\r\n this.loadPlatform();\r\n } else {\r\n console.warn(\r\n 'Google authentification needs \"apiKey\" and \"clientId\" options'\r\n );\r\n }\r\n }\r\n\r\n public handleSignInClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signIn();\r\n }\r\n\r\n public handleSignOutClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signOut();\r\n }\r\n\r\n private handleClientLoad() {\r\n (window as any).gapi.load('client:auth2', () => this.initClient());\r\n }\r\n\r\n private initClient() {\r\n (window as any).gapi.client\r\n .init({\r\n apiKey: this.options?.apiKey,\r\n clientId: this.options?.clientId,\r\n discoveryDocs: [\r\n 'https://people.googleapis.com/$discovery/rest?version=v1'\r\n ],\r\n scope: 'profile'\r\n })\r\n .then(() => {\r\n this.handleSignOutClick();\r\n this.updateTextButton();\r\n (window as any).gapi.auth2\r\n .getAuthInstance()\r\n .isSignedIn.listen((rep) => {\r\n this.updateSigninStatus(rep);\r\n });\r\n });\r\n }\r\n\r\n private updateSigninStatus(isSignedIn) {\r\n this.updateTextButton();\r\n if (isSignedIn) {\r\n this.loginGoogle((window as any).gapi.client.getToken().access_token);\r\n }\r\n }\r\n\r\n private updateTextButton() {\r\n const btn = document.querySelector('span[id^=\"not_signed_\"]');\r\n if (btn && this.languageService.getLanguage() !== 'en') {\r\n if (btn.innerHTML === 'Sign in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant(\r\n 'igo.auth.google.login'\r\n );\r\n } else if (btn.innerHTML === 'Signed in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant(\r\n 'igo.auth.google.logged'\r\n );\r\n }\r\n }\r\n }\r\n\r\n private loginGoogle(token) {\r\n this.authService.loginWithToken(token, 'google').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKGoogle() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-jssdk';\r\n js.src = 'https://apis.google.com/js/api.js';\r\n js.onload = () => {\r\n this.handleClientLoad();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n\r\n private loadPlatform() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-platform';\r\n js.src = 'https://apis.google.com/js/platform.js';\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div\r\n class=\"g-signin2 google-login-button\"\r\n data-height=\"40\"\r\n data-width=\"265\"\r\n data-longtitle=\"true\"\r\n></div>\r\n","<form [formGroup]=\"form\" role=\"form\" (ngSubmit)=\"loginUser(form.value)\">\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <mat-label>{{ 'igo.auth.user' | translate }}</mat-label>\r\n <input\r\n matInput\r\n required\r\n placeholder=\"{{ 'igo.auth.user' | translate }}\"\r\n formControlName=\"username\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <mat-label>{{ 'igo.auth.password' | translate }}</mat-label>\r\n <input\r\n matInput\r\n required\r\n type=\"password\"\r\n placeholder=\"{{ 'igo.auth.password' | translate }}\"\r\n formControlName=\"password\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <button mat-raised-button type=\"submit\">\r\n {{ 'igo.auth.login' | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"allowAnonymous\"\r\n mat-raised-button\r\n class=\"anonymous\"\r\n type=\"button\"\r\n [disabled]=\"loading\"\r\n (click)=\"loginAnonymous()\"\r\n >\r\n {{ 'igo.auth.accessAnonymous' | translate }}\r\n </button>\r\n <div *ngIf=\"error\">\r\n <br />\r\n <font size=\"3\" color=\"red\">{{ error }}</font>\r\n </div>\r\n</form>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators\r\n} from '@angular/forms';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\n\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-intern',\r\n templateUrl: './auth-intern.component.html',\r\n styleUrls: ['./auth-intern.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthInternComponent {\r\n @Input()\r\n get allowAnonymous(): boolean {\r\n return this._allowAnonymous;\r\n }\r\n set allowAnonymous(value: boolean) {\r\n this._allowAnonymous = value;\r\n }\r\n private _allowAnonymous = true;\r\n\r\n public error = '';\r\n public form: UntypedFormGroup;\r\n public loading = false;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private languageService: LanguageService,\r\n fb: UntypedFormBuilder\r\n ) {\r\n this.form = fb.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n }\r\n\r\n loginUser(values: any) {\r\n this.loading = true;\r\n this.auth.login(values.username, values.password).subscribe(\r\n () => {\r\n this.login.emit(true);\r\n this.loading = false;\r\n },\r\n (error: any) => {\r\n try {\r\n this.languageService.translate\r\n .get('igo.auth.error.' + error.error.message)\r\n .subscribe((errorMsg) => (this.error = errorMsg));\r\n } catch (e) {\r\n this.error = error.error.message;\r\n }\r\n this.loading = false;\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n loginAnonymous() {\r\n this.auth.loginAnonymous().subscribe(() => {\r\n this.login.emit(true);\r\n });\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthFacebookOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-facebook',\r\n templateUrl: './auth-facebook.component.html',\r\n styleUrls: ['./auth-facebook.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthFacebookComponent {\r\n private options?: AuthFacebookOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.facebook');\r\n\r\n if (this.options?.appId) {\r\n this.loadSDKFacebook();\r\n } else {\r\n console.warn('Facebook authentification needs \"appId\" option');\r\n }\r\n }\r\n\r\n private subscribeEvents() {\r\n (window as any).FB.Event.subscribe('auth.statusChange', (rep) => {\r\n this.statusChangeCallback(rep);\r\n });\r\n }\r\n\r\n private statusChangeCallback(response) {\r\n if (response.status === 'connected') {\r\n const accessToken = response.authResponse.accessToken;\r\n this.loginFacebook(accessToken);\r\n }\r\n }\r\n\r\n private loginFacebook(token) {\r\n this.authService.loginWithToken(token, 'facebook').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKFacebook() {\r\n if (document.getElementById('facebook-jssdk')) {\r\n return;\r\n }\r\n\r\n const urlSDK =\r\n 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';\r\n\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'facebook-jssdk';\r\n js.src = `${urlSDK}&appId=${this.options?.appId}`;\r\n js.onload = () => {\r\n this.subscribeEvents();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div\r\n scope=\"public_profile,email\"\r\n class=\"fb-login-button\"\r\n data-max-rows=\"1\"\r\n data-size=\"large\"\r\n data-button-type=\"login_with\"\r\n data-show-faces=\"false\"\r\n data-auto-logout-link=\"false\"\r\n data-use-continue-as=\"false\"\r\n></div>\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n MSAL_GUARD_CONFIG,\r\n MsalBroadcastService,\r\n MsalService\r\n} from '@azure/msal-angular';\r\nimport {\r\n AuthenticationResult,\r\n InteractionRequiredAuthError,\r\n InteractionStatus,\r\n PopupRequest,\r\n PublicClientApplication,\r\n SilentRequest\r\n} from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport {\r\n AuthMicrosoftOptions,\r\n MSPMsalGuardConfiguration\r\n} from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoft',\r\n templateUrl: './auth-microsoft.component.html',\r\n styleUrls: ['./auth-microsoft.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftComponent {\r\n private options?: AuthMicrosoftOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastService;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG)\r\n private msalGuardConfig: MSPMsalGuardConfiguration[]\r\n ) {\r\n this.options = this.config.getConfig('auth.microsoft');\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastService(\r\n this.msalService.instance,\r\n this.msalService\r\n );\r\n\r\n if (this.options?.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter(\r\n (status: InteractionStatus) => status === InteractionStatus.None\r\n ),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoft() {\r\n this.msalService\r\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const tokenAccess = response.accessToken;\r\n const tokenId = response.idToken;\r\n this.authService\r\n .loginWithToken(tokenAccess, 'microsoft', { tokenId })\r\n .subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(\r\n this.getConf().authRequest as SilentRequest\r\n );\r\n }\r\n console.log(error);\r\n })\r\n .catch((error) => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter((conf) => conf.type === 'add')[0];\r\n }\r\n}\r\n","<button\r\n class=\"microsoft-login-button\"\r\n mat-raised-button\r\n (click)=\"loginMicrosoft()\"\r\n>\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{ 'igo.auth.microsoft.login' | translate }}\r\n</button>\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { Location } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { IMsalService } from '@azure/msal-angular';\r\nimport {\r\n AuthenticationResult,\r\n EndSessionPopupRequest,\r\n EndSessionRequest,\r\n IPublicClientApplication,\r\n Logger,\r\n PopupRequest,\r\n RedirectRequest,\r\n SilentRequest,\r\n SsoSilentRequest,\r\n WrapperSKU\r\n} from '@azure/msal-browser';\r\nimport { Observable, from } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MsalServiceb2c implements IMsalService {\r\n private redirectHash: string;\r\n private logger: Logger;\r\n private name = '@azure/msal-angular';\r\n private version = '2.0.0-beta.2';\r\n constructor(\r\n @Inject(MSAL_INSTANCE) public instance: IPublicClientApplication,\r\n private location: Location\r\n ) {\r\n const hash = this.location.path(true).split('#').pop();\r\n if (hash) {\r\n this.redirectHash = `#${hash}`;\r\n }\r\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, this.version);\r\n }\r\n\r\n initialize(): Observable<void> {\r\n return from(this.instance.initialize());\r\n }\r\n\r\n acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenPopup(request));\r\n }\r\n acquireTokenRedirect(request: RedirectRequest): Observable<void> {\r\n return from(this.instance.acquireTokenRedirect(request));\r\n }\r\n acquireTokenSilent(\r\n silentRequest: SilentRequest\r\n ): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenSilent(silentRequest));\r\n }\r\n handleRedirectObservable(hash?: string): Observable<AuthenticationResult> {\r\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\r\n }\r\n loginPopup(request?: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.loginPopup(request));\r\n }\r\n loginRedirect(request?: RedirectRequest): Observable<void> {\r\n return from(this.instance.loginRedirect(request));\r\n }\r\n logout(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logout(logoutRequest));\r\n }\r\n logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logoutRedirect(logoutRequest));\r\n }\r\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Observable<void> {\r\n return from(this.instance.logoutPopup(logoutRequest));\r\n }\r\n ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.ssoSilent(request));\r\n }\r\n /**\r\n * Gets logger for msal-angular.\r\n * If no logger set, returns logger instance created with same options as msal-browser\r\n */\r\n getLogger(): Logger {\r\n if (!this.logger) {\r\n this.logger = this.instance.getLogger().clone(this.name, this.version);\r\n }\r\n return this.logger;\r\n }\r\n // Create a logger instance for msal-angular with the same options as msal-browser\r\n setLogger(logger: Logger): void {\r\n this.logger = logger.clone(this.name, this.version);\r\n this.instance.setLogger(logger);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport {\r\n EventMessage,\r\n EventMessageUtils,\r\n IPublicClientApplication,\r\n InteractionStatus\r\n} from '@azure/msal-browser';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\n\r\n@Injectable()\r\nexport class MsalBroadcastServiceb2c {\r\n private _msalSubject: Subject<EventMessage>;\r\n public msalSubject$: Observable<EventMessage>;\r\n private _inProgress: BehaviorSubject<InteractionStatus>;\r\n public inProgress$: Observable<InteractionStatus>;\r\n\r\n constructor(\r\n @Inject(MSAL_INSTANCE) private msalInstance: IPublicClientApplication,\r\n private authService: MsalServiceb2c\r\n ) {\r\n this._msalSubject = new Subject<EventMessage>();\r\n this.msalSubject$ = this._msalSubject.asObservable();\r\n\r\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\r\n this._inProgress = new BehaviorSubject<InteractionStatus>(\r\n InteractionStatus.Startup\r\n );\r\n this.inProgress$ = this._inProgress.asObservable();\r\n\r\n this.msalInstance.addEventCallback((message: EventMessage) => {\r\n this._msalSubject.next(message);\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\r\n if (status !== null) {\r\n this.authService\r\n .getLogger()\r\n .verbose(\r\n `BroadcastService - ${message.eventType} results in setting inProgress to ${status}`\r\n );\r\n this._inProgress.next(status);\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport {\r\n AuthenticationResult,\r\n InteractionRequiredAuthError,\r\n InteractionStatus,\r\n PopupRequest,\r\n PublicClientApplication,\r\n SilentRequest\r\n} from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { MsalBroadcastServiceb2c } from '../shared/auth-msalBroadcastServiceb2c.service';\r\nimport { MsalServiceb2c } from '../shared/auth-msalServiceb2c.service.';\r\nimport {\r\n AuthMicrosoftb2cOptions,\r\n MSPMsalGuardConfiguration\r\n} from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoftb2c',\r\n templateUrl: './auth-microsoftb2c.component.html',\r\n styleUrls: ['./auth-microsoftb2c.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftb2cComponent {\r\n private options: AuthMicrosoftb2cOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastServiceb2c;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalServiceb2c,\r\n @Inject(MSAL_GUARD_CONFIG)\r\n private msalGuardConfig: MSPMsalGuardConfiguration[]\r\n ) {\r\n this.options = this.config.getConfig('auth.microsoftb2c') || {};\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options.browserAuthOptions,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastServiceb2c(\r\n this.msalService.instance,\r\n this.msalService\r\n );\r\n\r\n if (this.options.browserAuthOptions.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter(\r\n (status: InteractionStatus) => status === InteractionStatus.None\r\n ),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoftb2c() {\r\n this.msalService\r\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const token = response.idToken;\r\n this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(\r\n this.getConf().authRequest as SilentRequest\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter((conf) => conf.type === 'b2c')[0];\r\n }\r\n}\r\n","<button\r\n class=\"microsoft-login-button\"\r\n mat-raised-button\r\n (click)=\"loginMicrosoftb2c()\"\r\n>\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{ 'igo.auth.microsoftb2c.login' | translate }}\r\n</button>\r\n","<div *ngIf=\"visible\">\r\n <div\r\n *ngIf=\"!auth.logged && backgroundDisable\"\r\n class=\"backgroundDisable\"\r\n ></div>\r\n\r\n <div *ngIf=\"!auth.logged && showLoginDiv\" class=\"login center-block\">\r\n <h1>{{ 'igo.auth.connection' | translate }}</h1>\r\n\r\n <igo-auth-google\r\n *ngIf=\"options.google && options.google.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-google>\r\n <igo-auth-microsoft\r\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-microsoft>\r\n <igo-auth-microsoftb2c\r\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-microsoftb2c>\r\n <igo-auth-facebook\r\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-facebook>\r\n <igo-auth-intern\r\n *ngIf=\"!options.intern || options.intern.enabled !== false\"\r\n [allowAnonymous]=\"options.allowAnonymous\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-intern>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"auth.logged && showAlreadyConnectedDiv\"\r\n class=\"login center-block\"\r\n >\r\n <p>{{ 'igo.auth.welcome' | translate: user }}</p>\r\n <button mat-raised-button type=\"button\" (click)=\"logout()\">\r\n {{ 'igo.auth.signOut' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"showLogoutDiv\" class=\"login center-block\">\r\n <p>{{ 'igo.auth.deconnection' | translate }}</p>\r\n <button\r\n *ngIf=\"options.homeRoute\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"home()\"\r\n >\r\n {{ 'igo.auth.home' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output\r\n} from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { AuthOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-form',\r\n templateUrl: './auth-form.component.html',\r\n styleUrls: ['./auth-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthFormComponent implements OnInit {\r\n @Input()\r\n get backgroundDisable(): boolean {\r\n if (this.isLogoutRoute || this.isLogoutRoute) {\r\n return false;\r\n }\r\n return this._backgroundDisable;\r\n }\r\n set backgroundDisable(value: boolean) {\r\n this._backgroundDisable = value.toString() === 'true';\r\n }\r\n private _backgroundDisable = true;\r\n\r\n @Input()\r\n get hasAlreadyConnectedDiv(): boolean {\r\n return this._hasAlreadyConnectedDiv;\r\n }\r\n set hasAlreadyConnectedDiv(value: boolean) {\r\n this._hasAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _hasAlreadyConnectedDiv = true;\r\n\r\n @Input()\r\n get hasLogoutDiv(): boolean {\r\n return this._hasLogoutDiv;\r\n }\r\n set hasLogoutDiv(value: boolean) {\r\n this._hasLogoutDiv = value.toString() === 'true';\r\n }\r\n private _hasLogoutDiv = true;\r\n\r\n @Input()\r\n get showAlreadyConnectedDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasAlreadyConnectedDiv;\r\n }\r\n return this._showAlreadyConnectedDiv;\r\n }\r\n set showAlreadyConnectedDiv(value: boolean) {\r\n this._showAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _showAlreadyConnectedDiv = false;\r\n\r\n @Input()\r\n get showLogoutDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasLogoutDiv;\r\n }\r\n return this._showLogoutDiv;\r\n }\r\n set showLogoutDiv(value: boolean) {\r\n this._showLogoutDiv = value.toString() === 'true';\r\n }\r\n private _showLogoutDiv = false;\r\n\r\n get showLoginDiv(): boolean {\r\n if (!this.isLogoutRoute) {\r\n return true;\r\n }\r\n }\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public options?: AuthOptions;\r\n public user;\r\n\r\n public visible = true;\r\n\r\n private isLoginRoute: boolean;\r\n private isLogoutRoute: boolean;\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private config: ConfigService,\r\n @Optional() private router: Router\r\n ) {\r\n this.options = this.config.getConfig('auth');\r\n this.visible = Object.getOwnPropertyNames(this.options).length !== 0;\r\n }\r\n\r\n public ngOnInit() {\r\n this.analyzeRoute();\r\n this.getName();\r\n }\r\n\r\n public onLogin() {\r\n this.auth.goToRedirectUrl();\r\n this.getName();\r\n this.login.emit(true);\r\n }\r\n\r\n public logout() {\r\n this.auth.logout().subscribe(() => {\r\n this.user = undefined;\r\n if (this.router) {\r\n if (this.options?.logoutRoute) {\r\n this.router.navigate([this.options?.logoutRoute]);\r\n } else if (this.options?.homeRoute) {\r\n this.router.navigate([this.options?.homeRoute]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public home() {\r\n if (this.router && this.options?.homeRoute) {\r\n this.router.navigate([this.options?.homeRoute]);\r\n }\r\n }\r\n\r\n private getName() {\r\n const tokenDecoded = this.auth.decodeToken();\r\n if (tokenDecoded) {\r\n this.user = {\r\n name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId\r\n };\r\n }\r\n }\r\n\r\n private analyzeRoute() {\r\n if (!this.router) {\r\n return;\r\n }\r\n\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationStart))\r\n .subscribe((changeEvent: any) => {\r\n if (changeEvent.url) {\r\n const currentRoute = changeEvent.url;\r\n const logoutRoute = this.options?.logoutRoute;\r\n const loginRoute = this.options?.loginRoute;\r\n\r\n this.isLogoutRoute = currentRoute === logoutRoute;\r\n this.isLoginRoute = currentRoute === loginRoute;\r\n\r\n if (this.isLogoutRoute) {\r\n this.auth.logout();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggedGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.logged) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.authenticated) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const token = this.authService.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfilsGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return this.authService.getProfils().pipe(\r\n map((profils: { profils: string[] }) => {\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (\r\n profils &&\r\n profils.profils &&\r\n profils.profils.some((v) => authConfig.profilsGuard.indexOf(v) !== -1)\r\n ) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { Md5 } from 'ts-md5';\r\n\r\nimport { TokenService } from './token.service';\r\nimport {\r\n AuthByKeyOptions,\r\n AuthOptions,\r\n WithCredentialsOptions\r\n} from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n private authOptions: AuthOptions;\r\n private refreshInProgress = false;\r\n private trustHosts: string[];\r\n private hostsWithCredentials: WithCredentialsOptions[];\r\n private hostsWithAuthByKey: AuthByKeyOptions[];\r\n\r\n constructor(\r\n private config: ConfigService,\r\n private tokenService: TokenService,\r\n private http: HttpClient\r\n ) {\r\n this.authOptions = this.config.getConfig('auth') as AuthOptions;\r\n\r\n this.trustHosts = this.authOptions?.trustHosts || [];\r\n this.trustHosts.push(window.location.hostname);\r\n\r\n this.hostsWithCredentials = this.authOptions?.hostsWithCredentials || [];\r\n this.hostsWithAuthByKey = this.authOptions?.hostsByKey || [];\r\n }\r\n\r\n intercept(\r\n originalReq: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const withCredentials = this.handleHostsWithCredentials(originalReq.url);\r\n let req = originalReq.clone();\r\n const hostWithKey = this.handleHostsAuthByKey(originalReq.url);\r\n if (hostWithKey) {\r\n req = req.clone({\r\n params: req.params.set(hostWithKey.key, hostWithKey.value)\r\n });\r\n }\r\n if (withCredentials) {\r\n req = originalReq.clone({\r\n withCredentials\r\n });\r\n return next.handle(req);\r\n }\r\n this.refreshToken();\r\n const token = this.tokenService.get();\r\n const element = document.createElement('a');\r\n element.href = req.url;\r\n if (element.host === '') {\r\n element.href = element.href; // FIX IE11, DO NOT REMOVE\r\n }\r\n\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return next.handle(req);\r\n }\r\n\r\n const authHeader = `Bearer ${token}`;\r\n let authReq = req.clone({\r\n headers: req.headers.set('Authorization', authHeader)\r\n });\r\n\r\n const tokenDecoded: any = this.tokenService.decode();\r\n if (\r\n authReq.params.get('_i') === 'true' &&\r\n tokenDecoded &&\r\n tokenDecoded.user &&\r\n tokenDecoded.user.sourceId\r\n ) {\r\n const hashUser = Md5.hashStr(tokenDecoded.user.sourceId) as string;\r\n authReq = authReq.clone({\r\n params: authReq.params.set('_i', hashUser)\r\n });\r\n } else if (authReq.params.get('_i') === 'true') {\r\n authReq = authReq.clone({\r\n params: authReq.params.delete('_i')\r\n });\r\n }\r\n\r\n return next.handle(authReq);\r\n }\r\n\r\n interceptXhr(xhr, url: string): boolean {\r\n const withCredentials = this.handleHostsWithCredentials(url);\r\n if (withCredentials) {\r\n xhr.withCredentials = withCredentials;\r\n return true;\r\n }\r\n\r\n this.refreshToken();\r\n const element = document.createElement('a');\r\n element.href = url;\r\n\r\n const token = this.tokenService.get();\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return false;\r\n }\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n return true;\r\n }\r\n\r\n alterUrlWithKeyAuth(url: string): string {\r\n const hostWithKey = this.handleHostsAuthByKey(url);\r\n let interceptedUrl = url;\r\n if (hostWithKey) {\r\n const urlDecomposed = interceptedUrl.split(/[?&]/);\r\n let urlWithKeyAdded = urlDecomposed.shift();\r\n const paramsToKeep = urlDecomposed.filter((p) => p.length !== 0);\r\n paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);\r\n if (paramsToKeep.length) {\r\n urlWithKeyAdded += '?' + paramsToKeep.join('&');\r\n }\r\n return urlWithKeyAdded;\r\n }\r\n return;\r\n }\r\n\r\n private handleHostsWithCredentials(reqUrl: string) {\r\n let withCredentials = false;\r\n for (const hostWithCredentials of this.hostsWithCredentials) {\r\n const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n withCredentials =\r\n hostWithCredentials.withCredentials !== undefined\r\n ? hostWithCredentials.withCredentials\r\n : undefined;\r\n break;\r\n }\r\n }\r\n return withCredentials;\r\n }\r\n\r\n private handleHostsAuthByKey(reqUrl: string): { key: string; value: string } {\r\n let hostWithKey;\r\n for (const hostWithAuthByKey of this.hostsWithAuthByKey) {\r\n const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;\r\n var keyAdded = new RegExp(replace, 'gm');\r\n if (!keyAdded.test(reqUrl)) {\r\n hostWithKey = {\r\n key: hostWithAuthByKey.keyProperty,\r\n value: hostWithAuthByKey.keyValue\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n return hostWithKey;\r\n }\r\n\r\n refreshToken() {\r\n const jwt = this.tokenService.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n\r\n if (\r\n !this.refreshInProgress &&\r\n jwt &&\r\n currentTime < jwt.exp &&\r\n currentTime > jwt.exp - 1800\r\n ) {\r\n this.refreshInProgress = true;\r\n\r\n const url = this.authOptions?.url;\r\n return this.http.post(`${url}/refresh`, {}).subscribe(\r\n (data: any) => {\r\n this.tokenService.set(data.token);\r\n this.refreshInProgress = false;\r\n },\r\n (err) => {\r\n err.error.caught = true;\r\n return err;\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","import { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n MSAL_GUARD_CONFIG,\r\n MSAL_INSTANCE,\r\n MsalService\r\n} from '@azure/msal-angular';\r\nimport { InteractionType, PublicClientApplication } from '@azure/msal-browser';\r\nimport { BrowserAuthOptions } from '@azure/msal-browser';\r\n\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\nimport {\r\n AuthMicrosoftOptions,\r\n MSPMsalGuardConfiguration\r\n} from './auth.interface';\r\n\r\nexport function MSALConfigFactory(\r\n config: ConfigService\r\n): PublicClientApplication {\r\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\r\n\r\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\r\n msConf.authority =\r\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALConfigFactoryb2c(\r\n config: ConfigService\r\n): PublicClientApplication {\r\n const msConf = config.getConfig(\r\n 'auth.microsoftb2c.browserAuthOptions'\r\n ) as BrowserAuthOptions;\r\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\r\n msConf.authority =\r\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALAngularConfigFactory(\r\n config: ConfigService\r\n): MSPMsalGuardConfiguration {\r\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: ['user.read'],\r\n loginHint: 'todo'\r\n },\r\n type: 'add'\r\n };\r\n}\r\n\r\nexport function MSALAngularConfigFactoryb2c(\r\n config: ConfigService\r\n): MSPMsalGuardConfiguration {\r\n const msConf = config.getConfig(\r\n 'auth.microsoftb2c.browserAuthOptions'\r\n ) as BrowserAuthOptions;\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: [msConf?.clientId]\r\n },\r\n type: 'b2c'\r\n };\r\n}\r\n\r\nexport function provideAuthMicrosoft(type?: string) {\r\n if (type === 'b2c') {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactoryb2c,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactoryb2c,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalServiceb2c\r\n ];\r\n } else {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactory,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactory,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalService\r\n ];\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Directive({\r\n selector: '[igoProtected]'\r\n})\r\nexport class ProtectedDirective {\r\n constructor(authentication: AuthService, el: ElementRef) {\r\n if (!authentication.isAuthenticated()) {\r\n el.nativeElement.parentNode.removeChild(el.nativeElement);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BaseStorage, ConfigService, StorageScope } from '@igo2/core';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { AuthStorageOptions } from './storage.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthStorageService extends BaseStorage<AuthStorageOptions> {\r\n constructor(\r\n config: ConfigService,\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private tokenService: TokenService\r\n ) {\r\n super(config);\r\n\r\n this.authService.authenticate$.subscribe((isAuthenticated) => {\r\n if (isAuthenticated && this.options.url) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n set(\r\n key: string,\r\n value: string | object | boolean | number,\r\n scope: StorageScope = StorageScope.LOCAL\r\n ) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = value;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.set(key, value, scope);\r\n }\r\n\r\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = undefined;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.remove(key, scope);\r\n }\r\n\r\n clear(scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http\r\n .patch(\r\n this.options.url,\r\n { preference: {} },\r\n {\r\n params: {\r\n mergePreference: 'false'\r\n }\r\n }\r\n )\r\n .subscribe();\r\n }\r\n\r\n let token: string;\r\n if (scope === StorageScope.LOCAL) {\r\n token = this.tokenService.get();\r\n }\r\n\r\n super.clear(scope);\r\n\r\n if (token) {\r\n this.tokenService.set(token);\r\n }\r\n\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: AuthFormComponent },\r\n { path: 'logout', component: AuthFormComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: []\r\n})\r\nexport class AuthRoutingModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { IgoLanguageModule, StorageService } from '@igo2/core';\r\n\r\nimport { MsalModule } from '@azure/msal-angular';\r\n\r\nimport { AuthFacebookComponent } from './auth-form/auth-facebook.component';\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\nimport { AuthGoogleComponent } from './auth-form/auth-google.component';\r\nimport { AuthInternComponent } from './auth-form/auth-intern.component';\r\nimport { AuthMicrosoftComponent } from './auth-form/auth-microsoft.component';\r\nimport { AuthMicrosoftb2cComponent } from './auth-form/auth-microsoftb2c.component';\r\nimport { provideAuthMicrosoft } from './shared/auth-microsoft.provider';\r\nimport { AuthInterceptor } from './shared/auth.interceptor';\r\nimport { ProtectedDirective } from './shared/protected.directive';\r\nimport { AuthStorageService } from './shared/storage.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n MsalModule\r\n ],\r\n declarations: [\r\n AuthFormComponent,\r\n AuthGoogleComponent,\r\n AuthInternComponent,\r\n AuthFacebookComponent,\r\n AuthMicrosoftComponent,\r\n AuthMicrosoftb2cComponent,\r\n ProtectedDirective\r\n ],\r\n exports: [AuthFormComponent, ProtectedDirective]\r\n})\r\nexport class IgoAuthModule {\r\n static forRoot(): ModuleWithProviders<IgoAuthModule> {\r\n return {\r\n ngModule: IgoAuthModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: StorageService,\r\n useClass: AuthStorageService\r\n },\r\n ...provideAuthMicrosoft('add'),\r\n ...provideAuthMicrosoft('b2c')\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of auth\r\n */\r\n\r\nexport { AuthFormComponent } from './lib/auth-form';\r\nexport * from './lib/environment';\r\nexport * from './lib/shared/auth.service';\r\nexport * from './lib/shared/logged.guard';\r\nexport * from './lib/shared/auth.guard';\r\nexport * from './lib/shared/admin.guard';\r\nexport * from './lib/shared/profils.guard';\r\nexport * from './lib/shared/auth.interceptor';\r\nexport * from './lib/shared/auth.interface';\r\nexport * from './lib/shared/auth-microsoft.provider';\r\nexport * from './lib/shared/protected.directive';\r\nexport * from './lib/shared/token.service';\r\nexport * from './lib/shared/storage.interface';\r\nexport * from './lib/shared/storage.service';\r\nexport * from './lib/auth-routing.module';\r\nexport * from './lib/auth.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.TokenService","i3","i4","i1.AuthService","i1","i1.MsalServiceb2c","i2","i3.AuthService","i4.TokenService"],"mappings":"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"}
1
+ {"version":3,"file":"igo2-auth.mjs","sources":["../../../packages/auth/src/lib/shared/token.service.ts","../../../packages/auth/src/lib/shared/auth.service.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.ts","../../../packages/auth/src/lib/auth-form/auth-google.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.html","../../../packages/auth/src/lib/auth-form/auth-intern.component.ts","../../../packages/auth/src/lib/auth-form/auth-facebook.component.ts","../../../packages/auth/src/lib/auth-form/auth-facebook.component.html","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoft.component.html","../../../packages/auth/src/lib/shared/auth-msalServiceb2c.service..ts","../../../packages/auth/src/lib/shared/auth-msalBroadcastServiceb2c.service.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.ts","../../../packages/auth/src/lib/auth-form/auth-microsoftb2c.component.html","../../../packages/auth/src/lib/auth-form/auth-form.component.html","../../../packages/auth/src/lib/auth-form/auth-form.component.ts","../../../packages/auth/src/lib/shared/logged.guard.ts","../../../packages/auth/src/lib/shared/auth.guard.ts","../../../packages/auth/src/lib/shared/admin.guard.ts","../../../packages/auth/src/lib/shared/profils.guard.ts","../../../packages/auth/src/lib/shared/auth.interceptor.ts","../../../packages/auth/src/lib/shared/auth-microsoft.provider.ts","../../../packages/auth/src/lib/shared/protected.directive.ts","../../../packages/auth/src/lib/shared/storage.service.ts","../../../packages/auth/src/lib/auth-routing.module.ts","../../../packages/auth/src/lib/auth.module.ts","../../../packages/auth/src/public_api.ts","../../../packages/auth/src/igo2-auth.ts"],"sourcesContent":["import { Injectable, Injector } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport jwtDecode from 'jwt-decode';\r\n\r\nimport { AuthOptions } from './auth.interface';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TokenService {\r\n private options?: AuthOptions;\r\n private tokenKey: string;\r\n\r\n constructor(private injector: Injector) {\r\n const config = this.injector.get<ConfigService>(ConfigService);\r\n this.options = config.getConfig('auth');\r\n this.tokenKey = this.options?.tokenKey;\r\n }\r\n\r\n set(token: string) {\r\n localStorage.setItem(this.tokenKey, token);\r\n }\r\n\r\n remove() {\r\n localStorage.removeItem(this.tokenKey);\r\n }\r\n\r\n get(): string {\r\n return localStorage.getItem(this.tokenKey);\r\n }\r\n\r\n decode() {\r\n const token = this.get();\r\n if (!token) {\r\n return;\r\n }\r\n return jwtDecode(token);\r\n }\r\n\r\n isExpired() {\r\n const jwt = this.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n if (jwt && currentTime < jwt.exp) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n}\r\n","import { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\n\r\nimport { ConfigService, LanguageService, MessageService } from '@igo2/core';\r\nimport { Base64 } from '@igo2/utils';\r\n\r\nimport { BehaviorSubject, Observable, of } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { globalCacheBusterNotifier } from 'ts-cacheable';\r\n\r\nimport { AuthOptions, IInfosUser, User } from './auth.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthService {\r\n public authenticate$ = new BehaviorSubject<boolean>(undefined);\r\n public logged$ = new BehaviorSubject<boolean>(undefined);\r\n public redirectUrl: string;\r\n public languageForce = false;\r\n private anonymous = false;\r\n private authOptions: AuthOptions;\r\n\r\n get hasAuthService() {\r\n return this.authOptions?.url !== undefined;\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private tokenService: TokenService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private messageService: MessageService,\r\n @Optional() private router: Router\r\n ) {\r\n this.authOptions = this.config.getConfig('auth');\r\n this.authenticate$.next(this.authenticated);\r\n this.authenticate$.subscribe((authenticated) => {\r\n this.logged$.next(authenticated);\r\n globalCacheBusterNotifier.next();\r\n });\r\n }\r\n\r\n login(username: string, password: string): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n username,\r\n password: this.encodePassword(password)\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginWithToken(\r\n token: string,\r\n type: string,\r\n infosUser?: IInfosUser\r\n ): Observable<void> {\r\n const myHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n const body = {\r\n token,\r\n typeConnection: type,\r\n infosUser\r\n };\r\n\r\n return this.loginCall(body, myHeader);\r\n }\r\n\r\n loginAnonymous(): Observable<boolean> {\r\n this.anonymous = true;\r\n this.logged$.next(true);\r\n return of(true);\r\n }\r\n\r\n refresh(): Observable<void> {\r\n return this.http.post(`${this.authOptions?.url}/refresh`, {}).pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n\r\n logout(): Observable<boolean> {\r\n this.anonymous = false;\r\n this.tokenService.remove();\r\n this.authenticate$.next(false);\r\n return of(true);\r\n }\r\n\r\n isAuthenticated(): boolean {\r\n return !this.tokenService.isExpired();\r\n }\r\n\r\n getToken(): string {\r\n return this.tokenService.get();\r\n }\r\n\r\n decodeToken() {\r\n if (this.isAuthenticated()) {\r\n return this.tokenService.decode();\r\n }\r\n return false;\r\n }\r\n\r\n goToRedirectUrl() {\r\n if (!this.router) {\r\n return;\r\n }\r\n const redirectUrl = this.redirectUrl || this.router.url;\r\n\r\n if (redirectUrl === this.authOptions.loginRoute) {\r\n const homeRoute = this.authOptions.homeRoute || '/';\r\n this.router.navigateByUrl(homeRoute);\r\n } else if (redirectUrl) {\r\n this.router.navigateByUrl(redirectUrl);\r\n }\r\n }\r\n\r\n getUserInfo(): Observable<User> {\r\n const url = this.authOptions?.url + '/info';\r\n return this.http.get<User>(url);\r\n }\r\n\r\n getProfils(): Observable<{ profils: string[] }> {\r\n return this.http.get<{ profils: string[] }>(\r\n `${this.authOptions?.url}/profils`\r\n );\r\n }\r\n\r\n updateUser(user: User): Observable<User> {\r\n return this.http.patch<User>(this.authOptions?.url, user);\r\n }\r\n\r\n private encodePassword(password: string) {\r\n return Base64.encode(password);\r\n }\r\n\r\n // authenticated or anonymous\r\n get logged(): boolean {\r\n return this.authenticated || this.isAnonymous;\r\n }\r\n\r\n get isAnonymous(): boolean {\r\n return this.anonymous;\r\n }\r\n\r\n get authenticated(): boolean {\r\n return this.isAuthenticated();\r\n }\r\n\r\n get isAdmin(): boolean {\r\n const token = this.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private loginCall(body, headers) {\r\n return this.http\r\n .post(`${this.authOptions?.url}/login`, body, { headers })\r\n .pipe(\r\n tap((data: any) => {\r\n this.tokenService.set(data.token);\r\n const tokenDecoded = this.decodeToken();\r\n if (tokenDecoded && tokenDecoded.user) {\r\n if (tokenDecoded.user.locale && !this.languageForce) {\r\n this.languageService.setLanguage(tokenDecoded.user.locale);\r\n }\r\n if (tokenDecoded.user.isExpired) {\r\n this.messageService.alert('igo.auth.error.Password expired');\r\n }\r\n }\r\n this.authenticate$.next(true);\r\n }),\r\n catchError((err) => {\r\n err.error.caught = true;\r\n throw err;\r\n })\r\n );\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService, LanguageService } from '@igo2/core';\r\n\r\nimport { AuthGoogleOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-google',\r\n templateUrl: './auth-google.component.html',\r\n styleUrls: ['./auth-google.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthGoogleComponent {\r\n private options?: AuthGoogleOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private languageService: LanguageService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.google');\r\n\r\n if (this.options?.apiKey && this.options?.clientId) {\r\n this.loadSDKGoogle();\r\n this.loadPlatform();\r\n } else {\r\n console.warn(\r\n 'Google authentification needs \"apiKey\" and \"clientId\" options'\r\n );\r\n }\r\n }\r\n\r\n public handleSignInClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signIn();\r\n }\r\n\r\n public handleSignOutClick() {\r\n (window as any).gapi.auth2.getAuthInstance().signOut();\r\n }\r\n\r\n private handleClientLoad() {\r\n (window as any).gapi.load('client:auth2', () => this.initClient());\r\n }\r\n\r\n private initClient() {\r\n (window as any).gapi.client\r\n .init({\r\n apiKey: this.options?.apiKey,\r\n clientId: this.options?.clientId,\r\n discoveryDocs: [\r\n 'https://people.googleapis.com/$discovery/rest?version=v1'\r\n ],\r\n scope: 'profile'\r\n })\r\n .then(() => {\r\n this.handleSignOutClick();\r\n this.updateTextButton();\r\n (window as any).gapi.auth2\r\n .getAuthInstance()\r\n .isSignedIn.listen((rep) => {\r\n this.updateSigninStatus(rep);\r\n });\r\n });\r\n }\r\n\r\n private updateSigninStatus(isSignedIn) {\r\n this.updateTextButton();\r\n if (isSignedIn) {\r\n this.loginGoogle((window as any).gapi.client.getToken().access_token);\r\n }\r\n }\r\n\r\n private updateTextButton() {\r\n const btn = document.querySelector('span[id^=\"not_signed_\"]');\r\n if (btn && this.languageService.getLanguage() !== 'en') {\r\n if (btn.innerHTML === 'Sign in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant(\r\n 'igo.auth.google.login'\r\n );\r\n } else if (btn.innerHTML === 'Signed in with Google') {\r\n btn.innerHTML = this.languageService.translate.instant(\r\n 'igo.auth.google.logged'\r\n );\r\n }\r\n }\r\n }\r\n\r\n private loginGoogle(token) {\r\n this.authService.loginWithToken(token, 'google').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKGoogle() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-jssdk';\r\n js.src = 'https://apis.google.com/js/api.js';\r\n js.onload = () => {\r\n this.handleClientLoad();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n\r\n private loadPlatform() {\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'google-platform';\r\n js.src = 'https://apis.google.com/js/platform.js';\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div\r\n class=\"g-signin2 google-login-button\"\r\n data-height=\"40\"\r\n data-width=\"265\"\r\n data-longtitle=\"true\"\r\n></div>\r\n","<form [formGroup]=\"form\" role=\"form\" (ngSubmit)=\"loginUser(form.value)\">\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <mat-label>{{ 'igo.auth.user' | translate }}</mat-label>\r\n <input\r\n matInput\r\n required\r\n placeholder=\"{{ 'igo.auth.user' | translate }}\"\r\n formControlName=\"username\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <div>\r\n <mat-form-field class=\"full-width\">\r\n <mat-label>{{ 'igo.auth.password' | translate }}</mat-label>\r\n <input\r\n matInput\r\n required\r\n type=\"password\"\r\n placeholder=\"{{ 'igo.auth.password' | translate }}\"\r\n formControlName=\"password\"\r\n />\r\n </mat-form-field>\r\n </div>\r\n\r\n <button mat-raised-button type=\"submit\">\r\n {{ 'igo.auth.login' | translate }}\r\n </button>\r\n <button\r\n *ngIf=\"allowAnonymous\"\r\n mat-raised-button\r\n class=\"anonymous\"\r\n type=\"button\"\r\n [disabled]=\"loading\"\r\n (click)=\"loginAnonymous()\"\r\n >\r\n {{ 'igo.auth.accessAnonymous' | translate }}\r\n </button>\r\n <div *ngIf=\"error\">\r\n <br />\r\n <font size=\"3\" color=\"red\">{{ error }}</font>\r\n </div>\r\n</form>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n Output\r\n} from '@angular/core';\r\nimport {\r\n UntypedFormBuilder,\r\n UntypedFormGroup,\r\n Validators\r\n} from '@angular/forms';\r\n\r\nimport { LanguageService } from '@igo2/core';\r\n\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-intern',\r\n templateUrl: './auth-intern.component.html',\r\n styleUrls: ['./auth-intern.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthInternComponent {\r\n @Input()\r\n get allowAnonymous(): boolean {\r\n return this._allowAnonymous;\r\n }\r\n set allowAnonymous(value: boolean) {\r\n this._allowAnonymous = value;\r\n }\r\n private _allowAnonymous = true;\r\n\r\n public error = '';\r\n public form: UntypedFormGroup;\r\n public loading = false;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private languageService: LanguageService,\r\n fb: UntypedFormBuilder\r\n ) {\r\n this.form = fb.group({\r\n username: ['', Validators.required],\r\n password: ['', Validators.required]\r\n });\r\n }\r\n\r\n loginUser(values: any) {\r\n this.loading = true;\r\n this.auth.login(values.username, values.password).subscribe(\r\n () => {\r\n this.login.emit(true);\r\n this.loading = false;\r\n },\r\n (error: any) => {\r\n try {\r\n this.languageService.translate\r\n .get('igo.auth.error.' + error.error.message)\r\n .subscribe((errorMsg) => (this.error = errorMsg));\r\n } catch (e) {\r\n this.error = error.error.message;\r\n }\r\n this.loading = false;\r\n }\r\n );\r\n return false;\r\n }\r\n\r\n loginAnonymous() {\r\n this.auth.loginAnonymous().subscribe(() => {\r\n this.login.emit(true);\r\n });\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthFacebookOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-facebook',\r\n templateUrl: './auth-facebook.component.html',\r\n styleUrls: ['./auth-facebook.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthFacebookComponent {\r\n private options?: AuthFacebookOptions;\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef\r\n ) {\r\n this.options = this.config.getConfig('auth.facebook');\r\n\r\n if (this.options?.appId) {\r\n this.loadSDKFacebook();\r\n } else {\r\n console.warn('Facebook authentification needs \"appId\" option');\r\n }\r\n }\r\n\r\n private subscribeEvents() {\r\n (window as any).FB.Event.subscribe('auth.statusChange', (rep) => {\r\n this.statusChangeCallback(rep);\r\n });\r\n }\r\n\r\n private statusChangeCallback(response) {\r\n if (response.status === 'connected') {\r\n const accessToken = response.authResponse.accessToken;\r\n this.loginFacebook(accessToken);\r\n }\r\n }\r\n\r\n private loginFacebook(token) {\r\n this.authService.loginWithToken(token, 'facebook').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n }\r\n\r\n private loadSDKFacebook() {\r\n if (document.getElementById('facebook-jssdk')) {\r\n return;\r\n }\r\n\r\n const urlSDK =\r\n 'https://connect.facebook.net/fr_CA/sdk.js#xfbml=1&version=v2.9';\r\n\r\n const fjs = document.getElementsByTagName('script')[0];\r\n const js = document.createElement('script');\r\n js.id = 'facebook-jssdk';\r\n js.src = `${urlSDK}&appId=${this.options?.appId}`;\r\n js.onload = () => {\r\n this.subscribeEvents();\r\n };\r\n fjs.parentNode.insertBefore(js, fjs);\r\n }\r\n}\r\n","<div\r\n scope=\"public_profile,email\"\r\n class=\"fb-login-button\"\r\n data-max-rows=\"1\"\r\n data-size=\"large\"\r\n data-button-type=\"login_with\"\r\n data-show-faces=\"false\"\r\n data-auto-logout-link=\"false\"\r\n data-use-continue-as=\"false\"\r\n></div>\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n MSAL_GUARD_CONFIG,\r\n MsalBroadcastService,\r\n MsalService\r\n} from '@azure/msal-angular';\r\nimport {\r\n AuthenticationResult,\r\n InteractionRequiredAuthError,\r\n InteractionStatus,\r\n PopupRequest,\r\n PublicClientApplication,\r\n SilentRequest\r\n} from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport {\r\n AuthMicrosoftOptions,\r\n MSPMsalGuardConfiguration\r\n} from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoft',\r\n templateUrl: './auth-microsoft.component.html',\r\n styleUrls: ['./auth-microsoft.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftComponent {\r\n private options?: AuthMicrosoftOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastService;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalService,\r\n @Inject(MSAL_GUARD_CONFIG)\r\n private msalGuardConfig: MSPMsalGuardConfiguration[]\r\n ) {\r\n this.options = this.config.getConfig('auth.microsoft');\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastService(\r\n this.msalService.instance,\r\n this.msalService\r\n );\r\n\r\n if (this.options?.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter(\r\n (status: InteractionStatus) => status === InteractionStatus.None\r\n ),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoft() {\r\n this.msalService\r\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const tokenAccess = response.accessToken;\r\n const tokenId = response.idToken;\r\n this.authService\r\n .loginWithToken(tokenAccess, 'microsoft', { tokenId })\r\n .subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(\r\n this.getConf().authRequest as SilentRequest\r\n );\r\n }\r\n console.log(error);\r\n })\r\n .catch((error) => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter((conf) => conf.type === 'add')[0];\r\n }\r\n}\r\n","<button\r\n class=\"microsoft-login-button\"\r\n mat-raised-button\r\n (click)=\"loginMicrosoft()\"\r\n>\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{ 'igo.auth.microsoft.login' | translate }}\r\n</button>\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { Location } from '@angular/common';\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport { IMsalService } from '@azure/msal-angular';\r\nimport {\r\n AuthenticationResult,\r\n EndSessionPopupRequest,\r\n EndSessionRequest,\r\n IPublicClientApplication,\r\n Logger,\r\n PopupRequest,\r\n RedirectRequest,\r\n SilentRequest,\r\n SsoSilentRequest,\r\n WrapperSKU\r\n} from '@azure/msal-browser';\r\nimport { Observable, from } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class MsalServiceb2c implements IMsalService {\r\n private redirectHash: string;\r\n private logger: Logger;\r\n private name = '@azure/msal-angular';\r\n private version = '2.0.0-beta.2';\r\n constructor(\r\n @Inject(MSAL_INSTANCE) public instance: IPublicClientApplication,\r\n private location: Location\r\n ) {\r\n const hash = this.location.path(true).split('#').pop();\r\n if (hash) {\r\n this.redirectHash = `#${hash}`;\r\n }\r\n this.instance.initializeWrapperLibrary(WrapperSKU.Angular, this.version);\r\n }\r\n\r\n initialize(): Observable<void> {\r\n return from(this.instance.initialize());\r\n }\r\n\r\n acquireTokenPopup(request: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenPopup(request));\r\n }\r\n acquireTokenRedirect(request: RedirectRequest): Observable<void> {\r\n return from(this.instance.acquireTokenRedirect(request));\r\n }\r\n acquireTokenSilent(\r\n silentRequest: SilentRequest\r\n ): Observable<AuthenticationResult> {\r\n return from(this.instance.acquireTokenSilent(silentRequest));\r\n }\r\n handleRedirectObservable(hash?: string): Observable<AuthenticationResult> {\r\n return from(this.instance.handleRedirectPromise(hash || this.redirectHash));\r\n }\r\n loginPopup(request?: PopupRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.loginPopup(request));\r\n }\r\n loginRedirect(request?: RedirectRequest): Observable<void> {\r\n return from(this.instance.loginRedirect(request));\r\n }\r\n logout(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logout(logoutRequest));\r\n }\r\n logoutRedirect(logoutRequest?: EndSessionRequest): Observable<void> {\r\n return from(this.instance.logoutRedirect(logoutRequest));\r\n }\r\n logoutPopup(logoutRequest?: EndSessionPopupRequest): Observable<void> {\r\n return from(this.instance.logoutPopup(logoutRequest));\r\n }\r\n ssoSilent(request: SsoSilentRequest): Observable<AuthenticationResult> {\r\n return from(this.instance.ssoSilent(request));\r\n }\r\n /**\r\n * Gets logger for msal-angular.\r\n * If no logger set, returns logger instance created with same options as msal-browser\r\n */\r\n getLogger(): Logger {\r\n if (!this.logger) {\r\n this.logger = this.instance.getLogger().clone(this.name, this.version);\r\n }\r\n return this.logger;\r\n }\r\n // Create a logger instance for msal-angular with the same options as msal-browser\r\n setLogger(logger: Logger): void {\r\n this.logger = logger.clone(this.name, this.version);\r\n this.instance.setLogger(logger);\r\n }\r\n}\r\n","/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nimport { Inject, Injectable } from '@angular/core';\r\n\r\nimport { MSAL_INSTANCE } from '@azure/msal-angular';\r\nimport {\r\n EventMessage,\r\n EventMessageUtils,\r\n IPublicClientApplication,\r\n InteractionStatus\r\n} from '@azure/msal-browser';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\n\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\n\r\n@Injectable()\r\nexport class MsalBroadcastServiceb2c {\r\n private _msalSubject: Subject<EventMessage>;\r\n public msalSubject$: Observable<EventMessage>;\r\n private _inProgress: BehaviorSubject<InteractionStatus>;\r\n public inProgress$: Observable<InteractionStatus>;\r\n\r\n constructor(\r\n @Inject(MSAL_INSTANCE) private msalInstance: IPublicClientApplication,\r\n private authService: MsalServiceb2c\r\n ) {\r\n this._msalSubject = new Subject<EventMessage>();\r\n this.msalSubject$ = this._msalSubject.asObservable();\r\n\r\n // InProgress as BehaviorSubject so most recent inProgress state will be available upon subscription\r\n this._inProgress = new BehaviorSubject<InteractionStatus>(\r\n InteractionStatus.Startup\r\n );\r\n this.inProgress$ = this._inProgress.asObservable();\r\n\r\n this.msalInstance.addEventCallback((message: EventMessage) => {\r\n this._msalSubject.next(message);\r\n const status = EventMessageUtils.getInteractionStatusFromEvent(message);\r\n if (status !== null) {\r\n this.authService\r\n .getLogger()\r\n .verbose(\r\n `BroadcastService - ${message.eventType} results in setting inProgress to ${status}`\r\n );\r\n this._inProgress.next(status);\r\n }\r\n });\r\n }\r\n}\r\n","import {\r\n ApplicationRef,\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Inject,\r\n Output\r\n} from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { MSAL_GUARD_CONFIG } from '@azure/msal-angular';\r\nimport {\r\n AuthenticationResult,\r\n InteractionRequiredAuthError,\r\n InteractionStatus,\r\n PopupRequest,\r\n PublicClientApplication,\r\n SilentRequest\r\n} from '@azure/msal-browser';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\nimport { MsalBroadcastServiceb2c } from '../shared/auth-msalBroadcastServiceb2c.service';\r\nimport { MsalServiceb2c } from '../shared/auth-msalServiceb2c.service.';\r\nimport {\r\n AuthMicrosoftb2cOptions,\r\n MSPMsalGuardConfiguration\r\n} from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-microsoftb2c',\r\n templateUrl: './auth-microsoftb2c.component.html',\r\n styleUrls: ['./auth-microsoftb2c.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AuthMicrosoftb2cComponent {\r\n private options: AuthMicrosoftb2cOptions;\r\n private readonly _destroying$ = new Subject<void>();\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n private broadcastService: MsalBroadcastServiceb2c;\r\n\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private appRef: ApplicationRef,\r\n private msalService: MsalServiceb2c,\r\n @Inject(MSAL_GUARD_CONFIG)\r\n private msalGuardConfig: MSPMsalGuardConfiguration[]\r\n ) {\r\n this.options = this.config.getConfig('auth.microsoftb2c') || {};\r\n\r\n this.msalService.instance = new PublicClientApplication({\r\n auth: this.options.browserAuthOptions,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n this.broadcastService = new MsalBroadcastServiceb2c(\r\n this.msalService.instance,\r\n this.msalService\r\n );\r\n\r\n if (this.options.browserAuthOptions.clientId) {\r\n this.broadcastService.inProgress$\r\n .pipe(\r\n filter(\r\n (status: InteractionStatus) => status === InteractionStatus.None\r\n ),\r\n takeUntil(this._destroying$)\r\n )\r\n .subscribe(() => {\r\n this.checkAccount();\r\n });\r\n } else {\r\n console.warn('Microsoft authentification needs \"clientId\" option');\r\n }\r\n }\r\n\r\n public loginMicrosoftb2c() {\r\n this.msalService\r\n .loginPopup({ ...this.getConf().authRequest } as PopupRequest)\r\n .subscribe((response: AuthenticationResult) => {\r\n this.msalService.instance.setActiveAccount(response.account);\r\n this.checkAccount();\r\n });\r\n }\r\n\r\n private checkAccount() {\r\n this.msalService.instance\r\n .acquireTokenSilent(this.getConf().authRequest as SilentRequest)\r\n .then((response: AuthenticationResult) => {\r\n const token = response.idToken;\r\n this.authService.loginWithToken(token, 'microsoftb2c').subscribe(() => {\r\n this.appRef.tick();\r\n this.login.emit(true);\r\n });\r\n })\r\n .catch(async (error) => {\r\n if (error instanceof InteractionRequiredAuthError) {\r\n // fallback to interaction when silent call fails\r\n return this.msalService.acquireTokenPopup(\r\n this.getConf().authRequest as SilentRequest\r\n );\r\n }\r\n })\r\n .catch((error) => {\r\n console.log('Silent token fails');\r\n });\r\n }\r\n\r\n private getConf(): MSPMsalGuardConfiguration {\r\n return this.msalGuardConfig.filter((conf) => conf.type === 'b2c')[0];\r\n }\r\n}\r\n","<button\r\n class=\"microsoft-login-button\"\r\n mat-raised-button\r\n (click)=\"loginMicrosoftb2c()\"\r\n>\r\n <mat-icon svgIcon=\"microsoft\"></mat-icon>\r\n {{ 'igo.auth.microsoftb2c.login' | translate }}\r\n</button>\r\n","<div *ngIf=\"visible\">\r\n <div\r\n *ngIf=\"!auth.logged && backgroundDisable\"\r\n class=\"backgroundDisable\"\r\n ></div>\r\n\r\n <div *ngIf=\"!auth.logged && showLoginDiv\" class=\"login center-block\">\r\n <h1>{{ 'igo.auth.connection' | translate }}</h1>\r\n\r\n <igo-auth-google\r\n *ngIf=\"options.google && options.google.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-google>\r\n <igo-auth-microsoft\r\n *ngIf=\"options.microsoft && options.microsoft.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-microsoft>\r\n <igo-auth-microsoftb2c\r\n *ngIf=\"options.microsoftb2c && options.microsoftb2c.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-microsoftb2c>\r\n <igo-auth-facebook\r\n *ngIf=\"options.facebook && options.facebook.enabled !== false\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-facebook>\r\n <igo-auth-intern\r\n *ngIf=\"!options.intern || options.intern.enabled !== false\"\r\n [allowAnonymous]=\"options.allowAnonymous\"\r\n (login)=\"onLogin()\"\r\n >\r\n </igo-auth-intern>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"auth.logged && showAlreadyConnectedDiv\"\r\n class=\"login center-block\"\r\n >\r\n <p>{{ 'igo.auth.welcome' | translate: user }}</p>\r\n <button mat-raised-button type=\"button\" (click)=\"logout()\">\r\n {{ 'igo.auth.signOut' | translate }}\r\n </button>\r\n </div>\r\n\r\n <div *ngIf=\"showLogoutDiv\" class=\"login center-block\">\r\n <p>{{ 'igo.auth.deconnection' | translate }}</p>\r\n <button\r\n *ngIf=\"options.homeRoute\"\r\n mat-raised-button\r\n type=\"button\"\r\n (click)=\"home()\"\r\n >\r\n {{ 'igo.auth.home' | translate }}\r\n </button>\r\n </div>\r\n</div>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Optional,\r\n Output\r\n} from '@angular/core';\r\nimport { NavigationStart, Router } from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { filter } from 'rxjs/operators';\r\n\r\nimport { AuthOptions } from '../shared/auth.interface';\r\nimport { AuthService } from '../shared/auth.service';\r\n\r\n@Component({\r\n selector: 'igo-auth-form',\r\n templateUrl: './auth-form.component.html',\r\n styleUrls: ['./auth-form.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.Default\r\n})\r\nexport class AuthFormComponent implements OnInit {\r\n @Input()\r\n get backgroundDisable(): boolean {\r\n if (this.isLogoutRoute || this.isLogoutRoute) {\r\n return false;\r\n }\r\n return this._backgroundDisable;\r\n }\r\n set backgroundDisable(value: boolean) {\r\n this._backgroundDisable = value.toString() === 'true';\r\n }\r\n private _backgroundDisable = true;\r\n\r\n @Input()\r\n get hasAlreadyConnectedDiv(): boolean {\r\n return this._hasAlreadyConnectedDiv;\r\n }\r\n set hasAlreadyConnectedDiv(value: boolean) {\r\n this._hasAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _hasAlreadyConnectedDiv = true;\r\n\r\n @Input()\r\n get hasLogoutDiv(): boolean {\r\n return this._hasLogoutDiv;\r\n }\r\n set hasLogoutDiv(value: boolean) {\r\n this._hasLogoutDiv = value.toString() === 'true';\r\n }\r\n private _hasLogoutDiv = true;\r\n\r\n @Input()\r\n get showAlreadyConnectedDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasAlreadyConnectedDiv;\r\n }\r\n return this._showAlreadyConnectedDiv;\r\n }\r\n set showAlreadyConnectedDiv(value: boolean) {\r\n this._showAlreadyConnectedDiv = value.toString() === 'true';\r\n }\r\n private _showAlreadyConnectedDiv = false;\r\n\r\n @Input()\r\n get showLogoutDiv(): boolean {\r\n if (this.isLogoutRoute) {\r\n return this.hasLogoutDiv;\r\n }\r\n return this._showLogoutDiv;\r\n }\r\n set showLogoutDiv(value: boolean) {\r\n this._showLogoutDiv = value.toString() === 'true';\r\n }\r\n private _showLogoutDiv = false;\r\n\r\n get showLoginDiv(): boolean {\r\n if (!this.isLogoutRoute) {\r\n return true;\r\n }\r\n }\r\n\r\n @Output() login: EventEmitter<boolean> = new EventEmitter<boolean>();\r\n\r\n public options?: AuthOptions;\r\n public user;\r\n\r\n public visible = true;\r\n\r\n private isLoginRoute: boolean;\r\n private isLogoutRoute: boolean;\r\n\r\n constructor(\r\n public auth: AuthService,\r\n private config: ConfigService,\r\n @Optional() private router: Router\r\n ) {\r\n this.options = this.config.getConfig('auth');\r\n this.visible = Object.getOwnPropertyNames(this.options).length !== 0;\r\n }\r\n\r\n public ngOnInit() {\r\n this.analyzeRoute();\r\n this.getName();\r\n }\r\n\r\n public onLogin() {\r\n this.auth.goToRedirectUrl();\r\n this.getName();\r\n this.login.emit(true);\r\n }\r\n\r\n public logout() {\r\n this.auth.logout().subscribe(() => {\r\n this.user = undefined;\r\n if (this.router) {\r\n if (this.options?.logoutRoute) {\r\n this.router.navigate([this.options?.logoutRoute]);\r\n } else if (this.options?.homeRoute) {\r\n this.router.navigate([this.options?.homeRoute]);\r\n }\r\n }\r\n });\r\n }\r\n\r\n public home() {\r\n if (this.router && this.options?.homeRoute) {\r\n this.router.navigate([this.options?.homeRoute]);\r\n }\r\n }\r\n\r\n private getName() {\r\n const tokenDecoded = this.auth.decodeToken();\r\n if (tokenDecoded) {\r\n this.user = {\r\n name: tokenDecoded.user.firstName || tokenDecoded.user.sourceId\r\n };\r\n }\r\n }\r\n\r\n private analyzeRoute() {\r\n if (!this.router) {\r\n return;\r\n }\r\n\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationStart))\r\n .subscribe((changeEvent: any) => {\r\n if (changeEvent.url) {\r\n const currentRoute = changeEvent.url;\r\n const logoutRoute = this.options?.logoutRoute;\r\n const loginRoute = this.options?.loginRoute;\r\n\r\n this.isLogoutRoute = currentRoute === logoutRoute;\r\n this.isLoginRoute = currentRoute === loginRoute;\r\n\r\n if (this.isLogoutRoute) {\r\n this.auth.logout();\r\n }\r\n }\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthOptions } from './auth.interface';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoggedGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.logged) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthOptions } from './auth.interface';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n if (this.authService.authenticated) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { AuthOptions } from './auth.interface';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AdminGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n const token = this.authService.decodeToken();\r\n if (token && token.user && token.user.isAdmin) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n ActivatedRouteSnapshot,\r\n Router,\r\n RouterStateSnapshot\r\n} from '@angular/router';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { map } from 'rxjs/operators';\r\n\r\nimport { AuthOptions } from './auth.interface';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProfilsGuard {\r\n constructor(\r\n private authService: AuthService,\r\n private config: ConfigService,\r\n private router: Router\r\n ) {}\r\n\r\n canActivate(_route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {\r\n return this.authService.getProfils().pipe(\r\n map((profils: { profils: string[] }) => {\r\n const authConfig = this.config.getConfig('auth') as AuthOptions;\r\n if (\r\n profils &&\r\n profils.profils &&\r\n profils.profils.some((v) => authConfig.profilsGuard.indexOf(v) !== -1)\r\n ) {\r\n return true;\r\n }\r\n\r\n this.authService.redirectUrl = state.url;\r\n\r\n if (authConfig?.loginRoute) {\r\n this.router.navigateByUrl(authConfig.loginRoute);\r\n }\r\n\r\n return false;\r\n })\r\n );\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport {\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest\r\n} from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { ConfigService } from '@igo2/core';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { Md5 } from 'ts-md5';\r\n\r\nimport {\r\n AuthByKeyOptions,\r\n AuthOptions,\r\n WithCredentialsOptions\r\n} from './auth.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n private authOptions: AuthOptions;\r\n private refreshInProgress = false;\r\n private trustHosts: string[];\r\n private hostsWithCredentials: WithCredentialsOptions[];\r\n private hostsWithAuthByKey: AuthByKeyOptions[];\r\n\r\n constructor(\r\n private config: ConfigService,\r\n private tokenService: TokenService,\r\n private http: HttpClient\r\n ) {\r\n this.authOptions = this.config.getConfig('auth') as AuthOptions;\r\n\r\n this.trustHosts = this.authOptions?.trustHosts || [];\r\n this.trustHosts.push(window.location.hostname);\r\n\r\n this.hostsWithCredentials = this.authOptions?.hostsWithCredentials || [];\r\n this.hostsWithAuthByKey = this.authOptions?.hostsByKey || [];\r\n }\r\n\r\n intercept(\r\n originalReq: HttpRequest<any>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<any>> {\r\n const withCredentials = this.handleHostsWithCredentials(originalReq.url);\r\n let req = originalReq.clone();\r\n const hostWithKey = this.handleHostsAuthByKey(originalReq.url);\r\n if (hostWithKey) {\r\n req = req.clone({\r\n params: req.params.set(hostWithKey.key, hostWithKey.value)\r\n });\r\n }\r\n if (withCredentials) {\r\n req = originalReq.clone({\r\n withCredentials\r\n });\r\n return next.handle(req);\r\n }\r\n this.refreshToken();\r\n const token = this.tokenService.get();\r\n const element = document.createElement('a');\r\n element.href = req.url;\r\n if (element.host === '') {\r\n element.href = element.href; // FIX IE11, DO NOT REMOVE\r\n }\r\n\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return next.handle(req);\r\n }\r\n\r\n const authHeader = `Bearer ${token}`;\r\n let authReq = req.clone({\r\n headers: req.headers.set('Authorization', authHeader)\r\n });\r\n\r\n const tokenDecoded: any = this.tokenService.decode();\r\n if (\r\n authReq.params.get('_i') === 'true' &&\r\n tokenDecoded &&\r\n tokenDecoded.user &&\r\n tokenDecoded.user.sourceId\r\n ) {\r\n const hashUser = Md5.hashStr(tokenDecoded.user.sourceId) as string;\r\n authReq = authReq.clone({\r\n params: authReq.params.set('_i', hashUser)\r\n });\r\n } else if (authReq.params.get('_i') === 'true') {\r\n authReq = authReq.clone({\r\n params: authReq.params.delete('_i')\r\n });\r\n }\r\n\r\n return next.handle(authReq);\r\n }\r\n\r\n interceptXhr(xhr, url: string): boolean {\r\n const withCredentials = this.handleHostsWithCredentials(url);\r\n if (withCredentials) {\r\n xhr.withCredentials = withCredentials;\r\n return true;\r\n }\r\n\r\n this.refreshToken();\r\n const element = document.createElement('a');\r\n element.href = url;\r\n\r\n const token = this.tokenService.get();\r\n if (!token || this.trustHosts.indexOf(element.hostname) === -1) {\r\n return false;\r\n }\r\n xhr.setRequestHeader('Authorization', 'Bearer ' + token);\r\n return true;\r\n }\r\n\r\n alterUrlWithKeyAuth(url: string): string {\r\n const hostWithKey = this.handleHostsAuthByKey(url);\r\n let interceptedUrl = url;\r\n if (hostWithKey) {\r\n const urlDecomposed = interceptedUrl.split(/[?&]/);\r\n let urlWithKeyAdded = urlDecomposed.shift();\r\n const paramsToKeep = urlDecomposed.filter((p) => p.length !== 0);\r\n paramsToKeep.push(`${hostWithKey.key}=${hostWithKey.value}`);\r\n if (paramsToKeep.length) {\r\n urlWithKeyAdded += '?' + paramsToKeep.join('&');\r\n }\r\n return urlWithKeyAdded;\r\n }\r\n return;\r\n }\r\n\r\n private handleHostsWithCredentials(reqUrl: string) {\r\n let withCredentials = false;\r\n for (const hostWithCredentials of this.hostsWithCredentials) {\r\n const domainRegex = new RegExp(hostWithCredentials.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n withCredentials =\r\n hostWithCredentials.withCredentials !== undefined\r\n ? hostWithCredentials.withCredentials\r\n : undefined;\r\n break;\r\n }\r\n }\r\n return withCredentials;\r\n }\r\n\r\n private handleHostsAuthByKey(reqUrl: string): { key: string; value: string } {\r\n let hostWithKey;\r\n for (const hostWithAuthByKey of this.hostsWithAuthByKey) {\r\n const domainRegex = new RegExp(hostWithAuthByKey.domainRegFilters);\r\n if (domainRegex.test(reqUrl)) {\r\n var replace = `${hostWithAuthByKey.keyProperty}=${hostWithAuthByKey.keyValue}`;\r\n var keyAdded = new RegExp(replace, 'gm');\r\n if (!keyAdded.test(reqUrl)) {\r\n hostWithKey = {\r\n key: hostWithAuthByKey.keyProperty,\r\n value: hostWithAuthByKey.keyValue\r\n };\r\n break;\r\n }\r\n }\r\n }\r\n return hostWithKey;\r\n }\r\n\r\n refreshToken() {\r\n const jwt = this.tokenService.decode();\r\n const currentTime = new Date().getTime() / 1000;\r\n\r\n if (\r\n !this.refreshInProgress &&\r\n jwt &&\r\n currentTime < jwt.exp &&\r\n currentTime > jwt.exp - 1800\r\n ) {\r\n this.refreshInProgress = true;\r\n\r\n const url = this.authOptions?.url;\r\n return this.http.post(`${url}/refresh`, {}).subscribe(\r\n (data: any) => {\r\n this.tokenService.set(data.token);\r\n this.refreshInProgress = false;\r\n },\r\n (err) => {\r\n err.error.caught = true;\r\n return err;\r\n }\r\n );\r\n }\r\n }\r\n}\r\n","import { ConfigService } from '@igo2/core';\r\n\r\nimport {\r\n MSAL_GUARD_CONFIG,\r\n MSAL_INSTANCE,\r\n MsalService\r\n} from '@azure/msal-angular';\r\nimport { InteractionType, PublicClientApplication } from '@azure/msal-browser';\r\nimport { BrowserAuthOptions } from '@azure/msal-browser';\r\n\r\nimport { MsalServiceb2c } from './auth-msalServiceb2c.service.';\r\nimport {\r\n AuthMicrosoftOptions,\r\n MSPMsalGuardConfiguration\r\n} from './auth.interface';\r\n\r\nexport function MSALConfigFactory(\r\n config: ConfigService\r\n): PublicClientApplication {\r\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\r\n\r\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\r\n msConf.authority =\r\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALConfigFactoryb2c(\r\n config: ConfigService\r\n): PublicClientApplication {\r\n const msConf = config.getConfig(\r\n 'auth.microsoftb2c.browserAuthOptions'\r\n ) as BrowserAuthOptions;\r\n msConf.redirectUri = msConf?.redirectUri || window.location.href;\r\n msConf.authority =\r\n msConf?.authority || 'https://login.microsoftonline.com/organizations';\r\n\r\n const myMsalObj = new PublicClientApplication({\r\n auth: msConf,\r\n cache: {\r\n cacheLocation: 'sessionStorage'\r\n }\r\n });\r\n\r\n return myMsalObj;\r\n}\r\n\r\nexport function MSALAngularConfigFactory(\r\n config: ConfigService\r\n): MSPMsalGuardConfiguration {\r\n const msConf = config.getConfig('auth.microsoft') as AuthMicrosoftOptions;\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: ['user.read'],\r\n loginHint: 'todo'\r\n },\r\n type: 'add'\r\n };\r\n}\r\n\r\nexport function MSALAngularConfigFactoryb2c(\r\n config: ConfigService\r\n): MSPMsalGuardConfiguration {\r\n const msConf = config.getConfig(\r\n 'auth.microsoftb2c.browserAuthOptions'\r\n ) as BrowserAuthOptions;\r\n\r\n return {\r\n interactionType: InteractionType.Popup,\r\n authRequest: {\r\n scopes: [msConf?.clientId]\r\n },\r\n type: 'b2c'\r\n };\r\n}\r\n\r\nexport function provideAuthMicrosoft(type?: string) {\r\n if (type === 'b2c') {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactoryb2c,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactoryb2c,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalServiceb2c\r\n ];\r\n } else {\r\n return [\r\n {\r\n provide: MSAL_INSTANCE,\r\n useFactory: MSALConfigFactory,\r\n deps: [ConfigService]\r\n },\r\n {\r\n provide: MSAL_GUARD_CONFIG,\r\n useFactory: MSALAngularConfigFactory,\r\n deps: [ConfigService],\r\n multi: true\r\n },\r\n MsalService\r\n ];\r\n }\r\n}\r\n","import { Directive, ElementRef } from '@angular/core';\r\n\r\nimport { AuthService } from './auth.service';\r\n\r\n@Directive({\r\n selector: '[igoProtected]'\r\n})\r\nexport class ProtectedDirective {\r\n constructor(authentication: AuthService, el: ElementRef) {\r\n if (!authentication.isAuthenticated()) {\r\n el.nativeElement.parentNode.removeChild(el.nativeElement);\r\n }\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { BaseStorage, ConfigService, StorageScope } from '@igo2/core';\r\n\r\nimport { AuthService } from './auth.service';\r\nimport { AuthStorageOptions } from './storage.interface';\r\nimport { TokenService } from './token.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthStorageService extends BaseStorage<AuthStorageOptions> {\r\n constructor(\r\n config: ConfigService,\r\n private http: HttpClient,\r\n private authService: AuthService,\r\n private tokenService: TokenService\r\n ) {\r\n super(config);\r\n\r\n this.authService.authenticate$.subscribe((isAuthenticated) => {\r\n if (isAuthenticated && this.options.url) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n set(\r\n key: string,\r\n value: string | object | boolean | number,\r\n scope: StorageScope = StorageScope.LOCAL\r\n ) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = value;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.set(key, value, scope);\r\n }\r\n\r\n remove(key: string, scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n const preference = {};\r\n preference[key] = undefined;\r\n this.http.patch(this.options.url, { preference }).subscribe();\r\n }\r\n super.remove(key, scope);\r\n }\r\n\r\n clear(scope: StorageScope = StorageScope.LOCAL) {\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http\r\n .patch(\r\n this.options.url,\r\n { preference: {} },\r\n {\r\n params: {\r\n mergePreference: 'false'\r\n }\r\n }\r\n )\r\n .subscribe();\r\n }\r\n\r\n let token: string;\r\n if (scope === StorageScope.LOCAL) {\r\n token = this.tokenService.get();\r\n }\r\n\r\n super.clear(scope);\r\n\r\n if (token) {\r\n this.tokenService.set(token);\r\n }\r\n\r\n if (\r\n scope === StorageScope.LOCAL &&\r\n this.authService.authenticated &&\r\n this.options.url\r\n ) {\r\n this.http\r\n .get(this.options.url)\r\n .subscribe((userIgo: { preference: object }) => {\r\n if (userIgo && userIgo.preference) {\r\n for (const key of Object.keys(userIgo.preference)) {\r\n const value = userIgo.preference[key];\r\n super.set(key, value);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\n\r\nconst routes: Routes = [\r\n { path: 'login', component: AuthFormComponent },\r\n { path: 'logout', component: AuthFormComponent }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: []\r\n})\r\nexport class AuthRoutingModule {}\r\n","import { CommonModule } from '@angular/common';\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\n\r\nimport { IgoLanguageModule, StorageService } from '@igo2/core';\r\n\r\nimport { MsalModule } from '@azure/msal-angular';\r\n\r\nimport { AuthFacebookComponent } from './auth-form/auth-facebook.component';\r\nimport { AuthFormComponent } from './auth-form/auth-form.component';\r\nimport { AuthGoogleComponent } from './auth-form/auth-google.component';\r\nimport { AuthInternComponent } from './auth-form/auth-intern.component';\r\nimport { AuthMicrosoftComponent } from './auth-form/auth-microsoft.component';\r\nimport { AuthMicrosoftb2cComponent } from './auth-form/auth-microsoftb2c.component';\r\nimport { provideAuthMicrosoft } from './shared/auth-microsoft.provider';\r\nimport { AuthInterceptor } from './shared/auth.interceptor';\r\nimport { ProtectedDirective } from './shared/protected.directive';\r\nimport { AuthStorageService } from './shared/storage.service';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n MatFormFieldModule,\r\n MatInputModule,\r\n MatIconModule,\r\n MatButtonModule,\r\n IgoLanguageModule,\r\n MsalModule\r\n ],\r\n declarations: [\r\n AuthFormComponent,\r\n AuthGoogleComponent,\r\n AuthInternComponent,\r\n AuthFacebookComponent,\r\n AuthMicrosoftComponent,\r\n AuthMicrosoftb2cComponent,\r\n ProtectedDirective\r\n ],\r\n exports: [AuthFormComponent, ProtectedDirective]\r\n})\r\nexport class IgoAuthModule {\r\n static forRoot(): ModuleWithProviders<IgoAuthModule> {\r\n return {\r\n ngModule: IgoAuthModule,\r\n providers: [\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n },\r\n {\r\n provide: StorageService,\r\n useClass: AuthStorageService\r\n },\r\n ...provideAuthMicrosoft('add'),\r\n ...provideAuthMicrosoft('b2c')\r\n ]\r\n };\r\n }\r\n}\r\n","/*\r\n * Public API Surface of auth\r\n */\r\n\r\nexport { AuthFormComponent } from './lib/auth-form';\r\nexport * from './lib/environment';\r\nexport * from './lib/shared/auth.service';\r\nexport * from './lib/shared/logged.guard';\r\nexport * from './lib/shared/auth.guard';\r\nexport * from './lib/shared/admin.guard';\r\nexport * from './lib/shared/profils.guard';\r\nexport * from './lib/shared/auth.interceptor';\r\nexport * from './lib/shared/auth.interface';\r\nexport * from './lib/shared/auth-microsoft.provider';\r\nexport * from './lib/shared/protected.directive';\r\nexport * from './lib/shared/token.service';\r\nexport * from './lib/shared/storage.interface';\r\nexport * from './lib/shared/storage.service';\r\nexport * from './lib/auth-routing.module';\r\nexport * from './lib/auth.module';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i2.TokenService","i3","i4","i1.AuthService","i1","i1.MsalServiceb2c","i2","i3.AuthService","i4.TokenService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@igo2/auth",
3
- "version": "16.0.0-rc.4",
3
+ "version": "16.0.0-rc.6",
4
4
  "description": "IGO Library",
5
5
  "author": "IGO Community",
6
6
  "keywords": [
@@ -28,8 +28,8 @@
28
28
  "@angular/forms": "^16.2.5",
29
29
  "@angular/material": "^16.2.4",
30
30
  "@angular/router": "^16.2.5",
31
- "@igo2/core": "^16.0.0-rc.4",
32
- "@igo2/utils": "^16.0.0-rc.4",
31
+ "@igo2/core": "^16.0.0-rc.6",
32
+ "@igo2/utils": "^16.0.0-rc.6",
33
33
  "rxjs": "^7.5.6",
34
34
  "@azure/msal-angular": "^3.0.4"
35
35
  },