mirror of https://github.com/zulip/zulip.git
ts: Convert password_quality module to TypeScript.
This commit is contained in:
parent
5a65a47b21
commit
fdedced521
|
@ -92,6 +92,7 @@
|
||||||
"@types/terser-webpack-plugin": "^4.1.0",
|
"@types/terser-webpack-plugin": "^4.1.0",
|
||||||
"@types/webpack": "^4.4.32",
|
"@types/webpack": "^4.4.32",
|
||||||
"@types/webpack-dev-server": "^3.1.6",
|
"@types/webpack-dev-server": "^3.1.6",
|
||||||
|
"@types/zxcvbn": "^4.4.1",
|
||||||
"@typescript-eslint/eslint-plugin": "^4.0.1",
|
"@typescript-eslint/eslint-plugin": "^4.0.1",
|
||||||
"@typescript-eslint/parser": "^4.0.1",
|
"@typescript-eslint/parser": "^4.0.1",
|
||||||
"babel-plugin-rewire-ts": "^1.4.0",
|
"babel-plugin-rewire-ts": "^1.4.0",
|
||||||
|
|
|
@ -9,7 +9,11 @@ import {$t} from "./i18n";
|
||||||
// Return a boolean indicating whether the password is acceptable.
|
// Return a boolean indicating whether the password is acceptable.
|
||||||
// Also updates a Bootstrap progress bar control (a jQuery object)
|
// Also updates a Bootstrap progress bar control (a jQuery object)
|
||||||
// if provided.
|
// if provided.
|
||||||
export function password_quality(password, bar, password_field) {
|
export function password_quality(
|
||||||
|
password: string,
|
||||||
|
bar: JQuery | undefined,
|
||||||
|
password_field: JQuery,
|
||||||
|
): boolean {
|
||||||
const min_length = password_field.data("minLength");
|
const min_length = password_field.data("minLength");
|
||||||
const min_guesses = password_field.data("minGuesses");
|
const min_guesses = password_field.data("minGuesses");
|
||||||
|
|
||||||
|
@ -17,7 +21,7 @@ export function password_quality(password, bar, password_field) {
|
||||||
const acceptable = password.length >= min_length && result.guesses >= min_guesses;
|
const acceptable = password.length >= min_length && result.guesses >= min_guesses;
|
||||||
|
|
||||||
if (bar !== undefined) {
|
if (bar !== undefined) {
|
||||||
const t = result.crack_times_seconds.offline_slow_hashing_1e4_per_second;
|
const t = Number(result.crack_times_seconds.offline_slow_hashing_1e4_per_second);
|
||||||
let bar_progress = Math.min(1, Math.log(1 + t) / 22);
|
let bar_progress = Math.min(1, Math.log(1 + t) / 22);
|
||||||
|
|
||||||
// Even if zxcvbn loves your short password, the bar should be
|
// Even if zxcvbn loves your short password, the bar should be
|
||||||
|
@ -36,7 +40,7 @@ export function password_quality(password, bar, password_field) {
|
||||||
return acceptable;
|
return acceptable;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function password_warning(password, password_field) {
|
export function password_warning(password: string, password_field: JQuery): string {
|
||||||
const min_length = password_field.data("minLength");
|
const min_length = password_field.data("minLength");
|
||||||
|
|
||||||
if (password.length < min_length) {
|
if (password.length < min_length) {
|
|
@ -48,4 +48,4 @@ API_FEATURE_LEVEL = 77
|
||||||
# historical commits sharing the same major version, in which case a
|
# historical commits sharing the same major version, in which case a
|
||||||
# minor version bump suffices.
|
# minor version bump suffices.
|
||||||
|
|
||||||
PROVISION_VERSION = "153.1"
|
PROVISION_VERSION = "153.2"
|
||||||
|
|
|
@ -1775,6 +1775,11 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/zxcvbn@^4.4.1":
|
||||||
|
version "4.4.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/zxcvbn/-/zxcvbn-4.4.1.tgz#46e42cbdcee681b22181478feaf4af2bc4c1abd2"
|
||||||
|
integrity sha512-3NoqvZC2W5gAC5DZbTpCeJ251vGQmgcWIHQJGq2J240HY6ErQ9aWKkwfoKJlHLx+A83WPNTZ9+3cd2ILxbvr1w==
|
||||||
|
|
||||||
"@typescript-eslint/eslint-plugin@^4.0.1":
|
"@typescript-eslint/eslint-plugin@^4.0.1":
|
||||||
version "4.28.2"
|
version "4.28.2"
|
||||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz#7a8320f00141666813d0ae43b49ee8244f7cf92a"
|
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.28.2.tgz#7a8320f00141666813d0ae43b49ee8244f7cf92a"
|
||||||
|
|
Loading…
Reference in New Issue