checkValidity(value) {
    const passwordLength = value.length;

    const { charactersPoolSize, errors } = this.performChecks(value);
    const entropy = this.calculatePasswordEntropy(passwordLength, charactersPoolSize);
    const blackListCheck = this.settings.blackList?.length || this.settings.customBlacklistedWords ?
      this.checkBlackList(value)
      : null;

    const isValid = this.isValid();
    if (!isValid) {
      errors.push({
        message: 'Password is not strong enough',
        level: this.settings.required ? 'error' : 'warning'
      });
    }

    // If there were found some words from the black list
    if (blackListCheck && blackListCheck !== true) {
      this.handleBlackListCheckResult(blackListCheck, errors);
      // Select the mininal entropy based on the dictionary check or symbolic check
      this.entropy = Math.min(entropy, blackListCheck.entropy);
    }
    else {
      this.entropy = entropy;
    }

    return !errors.length;
  }
Performs checks to validate password security
@param {string} value - The password value to be checked.
@returns {boolean} - Returns TRUE if password is strong enough, FALSE if it is not.