message: Fix accessing global history on Login
diff: @@ -16,7 +16,7 @@ export interface LoginResult {
  error?: any;
  }
  -interface LoginStrategy<T = {}> {
  +interface LoginStrategy<T extends unknown> {
  prepare: (info: AuthConfig) => Promise<AuthResult>;
  perform: (request: DispatchRequest<T>) => Promise<LoginResult>;
  }
  @@ -27,9 +27,9 @@ interface DispatchRequest<T> {
  data: T;
  }
  -type NullDispatch = DispatchRequest<any>;
  +type NullDispatch = DispatchRequest<unknown>;
  -class AnonymousLogin implements LoginStrategy {
  +class AnonymousLogin implements LoginStrategy<unknown> {
  public async prepare(_info: AuthConfig) {
  return AuthResult.CONTINUE;
  }
  @@ -67,7 +67,7 @@ class WebLogin implements LoginStrategy<WebLoginData> {
  }
  }
  -class OpenshiftLogin implements LoginStrategy<any> {
  +class OpenshiftLogin implements LoginStrategy<unknown> {
  public async prepare(info: AuthConfig) {
  if (!info.authorizationEndpoint) {
  return AuthResult.FAILURE;
  @@ -88,7 +88,7 @@ class OpenshiftLogin implements LoginStrategy<any> {
  // remove the data that was passed by the OAuth login. In certain error situations this can cause the
  // page to enter a refresh loop since it tries to reload the page which then tries to reuse the bad token again.
  - history.replaceState('', document.title, window.location.pathname + window.location.search);
  + window.history.replaceState('', document.title, window.location.pathname + window.location.search);
  return {
  status: AuthResult.SUCCESS,
  @@ -98,11 +98,11 @@ class OpenshiftLogin implements LoginStrategy<any> {
  }
  export class LoginDispatcher {
  - strategyMapping: Map<AuthStrategy, LoginStrategy>;
  + strategyMapping: Map<AuthStrategy, LoginStrategy<any>>;
  info?: AuthConfig;
  constructor() {
  - this.strategyMapping = new Map<AuthStrategy, LoginStrategy>();
  + this.strategyMapping = new Map();
  this.strategyMapping.set(AuthStrategy.anonymous, new AnonymousLogin());
  this.strategyMapping.set(AuthStrategy.login, new WebLogin());
  