@abp/ng.core 8.3.0-rc.2 → 8.3.0

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.
@@ -1,3 +1,4 @@
1
+ import { ConfigStateService } from '../services';
1
2
  export function uuid(a) {
2
3
  return a
3
4
  ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16)
@@ -13,7 +14,10 @@ export function generateHash(value) {
13
14
  }
14
15
  return hashed;
15
16
  }
16
- export function generatePassword(length = 8) {
17
+ export function generatePassword(injector, length = 8) {
18
+ if (injector) {
19
+ length = getRequiredPasswordLength(injector);
20
+ }
17
21
  length = Math.min(Math.max(4, length), 128);
18
22
  const lowers = 'abcdefghjkmnpqrstuvwxyz';
19
23
  const uppers = 'ABCDEFGHJKMNPQRSTUVWXYZ';
@@ -31,4 +35,9 @@ export function generatePassword(length = 8) {
31
35
  }
32
36
  return password.sort(() => 0.5 - Math.random()).join('');
33
37
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLFVBQVUsSUFBSSxDQUFDLENBQU87SUFDMUIsT0FBTyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdEUsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBYTtJQUN4QyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixJQUFJLFFBQWdCLENBQUM7SUFFckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUN0QyxRQUFRLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvQixNQUFNLEdBQUcsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsTUFBTSxHQUFHLFFBQVEsQ0FBQztRQUMzQyxNQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUM7SUFDekMsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNUMsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQzNCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxRQUFRLENBQUM7SUFFakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUV4RixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gdXVpZChhPzogYW55KTogc3RyaW5nIHtcclxuICByZXR1cm4gYVxyXG4gICAgPyAoYSBeICgoTWF0aC5yYW5kb20oKSAqIDE2KSA+PiAoYSAvIDQpKSkudG9TdHJpbmcoMTYpXHJcbiAgICA6ICgnJyArIDFlNyArIC0xZTMgKyAtNGUzICsgLThlMyArIC0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLCB1dWlkKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICBsZXQgaGFzaGVkID0gMDtcclxuICBsZXQgY2hhckNvZGU6IG51bWJlcjtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgY2hhckNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgaGFzaGVkID0gKGhhc2hlZCA8PCA1KSAtIGhhc2hlZCArIGNoYXJDb2RlO1xyXG4gICAgaGFzaGVkIHw9IDA7XHJcbiAgfVxyXG4gIHJldHVybiBoYXNoZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBhc3N3b3JkKGxlbmd0aCA9IDgpIHtcclxuICBsZW5ndGggPSBNYXRoLm1pbihNYXRoLm1heCg0LCBsZW5ndGgpLCAxMjgpO1xyXG5cclxuICBjb25zdCBsb3dlcnMgPSAnYWJjZGVmZ2hqa21ucHFyc3R1dnd4eXonO1xyXG4gIGNvbnN0IHVwcGVycyA9ICdBQkNERUZHSEpLTU5QUVJTVFVWV1hZWic7XHJcbiAgY29uc3QgbnVtYmVycyA9ICcyMzQ1Njc4OSc7XHJcbiAgY29uc3Qgc3BlY2lhbHMgPSAnISpfIy8rLS4nO1xyXG4gIGNvbnN0IGFsbCA9IGxvd2VycyArIHVwcGVycyArIG51bWJlcnMgKyBzcGVjaWFscztcclxuXHJcbiAgY29uc3QgZ2V0UmFuZG9tID0gKGNoclNldDogc3RyaW5nKSA9PiBjaHJTZXRbTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hyU2V0Lmxlbmd0aCldO1xyXG5cclxuICBjb25zdCBwYXNzd29yZCA9IEFycmF5KHsgbGVuZ3RoIH0pO1xyXG4gIHBhc3N3b3JkWzBdID0gZ2V0UmFuZG9tKGxvd2Vycyk7XHJcbiAgcGFzc3dvcmRbMV0gPSBnZXRSYW5kb20odXBwZXJzKTtcclxuICBwYXNzd29yZFsyXSA9IGdldFJhbmRvbShudW1iZXJzKTtcclxuICBwYXNzd29yZFszXSA9IGdldFJhbmRvbShzcGVjaWFscyk7XHJcblxyXG4gIGZvciAobGV0IGkgPSA0OyBpIDwgbGVuZ3RoOyBpKyspIHtcclxuICAgIHBhc3N3b3JkW2ldID0gZ2V0UmFuZG9tKGFsbCk7XHJcbiAgfVxyXG5cclxuICByZXR1cm4gcGFzc3dvcmQuc29ydCgoKSA9PiAwLjUgLSBNYXRoLnJhbmRvbSgpKS5qb2luKCcnKTtcclxufVxyXG4iXX0=
38
+ function getRequiredPasswordLength(injector) {
39
+ const configState = injector.get(ConfigStateService);
40
+ const passwordRules = configState.getSettings('Identity.Password');
41
+ return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;
42
+ }
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3V0aWxzL2dlbmVyYXRvci11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFakQsTUFBTSxVQUFVLElBQUksQ0FBQyxDQUFPO0lBQzFCLE9BQU8sQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEtBQWE7SUFDeEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxRQUFnQixDQUFDO0lBRXJCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDdEMsUUFBUSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0IsTUFBTSxHQUFHLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLE1BQU0sR0FBRyxRQUFRLENBQUM7UUFDM0MsTUFBTSxJQUFJLENBQUMsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUFDLFFBQW1CLEVBQUUsTUFBTSxHQUFHLENBQUM7SUFDOUQsSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUNiLE1BQU0sR0FBRyx5QkFBeUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFFNUMsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUM7SUFDekMsTUFBTSxNQUFNLEdBQUcseUJBQXlCLENBQUM7SUFDekMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDO0lBQzNCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM1QixNQUFNLEdBQUcsR0FBRyxNQUFNLEdBQUcsTUFBTSxHQUFHLE9BQU8sR0FBRyxRQUFRLENBQUM7SUFFakQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUV4RixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsUUFBUSxDQUFDLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFbEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUM7QUFFRCxTQUFTLHlCQUF5QixDQUFDLFFBQWtCO0lBQ25ELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNyRCxNQUFNLGFBQWEsR0FBMkIsV0FBVyxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzNGLE9BQU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBQlAgfSBmcm9tICcuLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gdXVpZChhPzogYW55KTogc3RyaW5nIHtcclxuICByZXR1cm4gYVxyXG4gICAgPyAoYSBeICgoTWF0aC5yYW5kb20oKSAqIDE2KSA+PiAoYSAvIDQpKSkudG9TdHJpbmcoMTYpXHJcbiAgICA6ICgnJyArIDFlNyArIC0xZTMgKyAtNGUzICsgLThlMyArIC0xZTExKS5yZXBsYWNlKC9bMDE4XS9nLCB1dWlkKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlSGFzaCh2YWx1ZTogc3RyaW5nKTogbnVtYmVyIHtcclxuICBsZXQgaGFzaGVkID0gMDtcclxuICBsZXQgY2hhckNvZGU6IG51bWJlcjtcclxuXHJcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCB2YWx1ZS5sZW5ndGg7IGkrKykge1xyXG4gICAgY2hhckNvZGUgPSB2YWx1ZS5jaGFyQ29kZUF0KGkpO1xyXG4gICAgaGFzaGVkID0gKGhhc2hlZCA8PCA1KSAtIGhhc2hlZCArIGNoYXJDb2RlO1xyXG4gICAgaGFzaGVkIHw9IDA7XHJcbiAgfVxyXG4gIHJldHVybiBoYXNoZWQ7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBhc3N3b3JkKGluamVjdG9yPzogSW5qZWN0b3IsIGxlbmd0aCA9IDgpIHtcclxuICBpZiAoaW5qZWN0b3IpIHtcclxuICAgIGxlbmd0aCA9IGdldFJlcXVpcmVkUGFzc3dvcmRMZW5ndGgoaW5qZWN0b3IpO1xyXG4gIH1cclxuXHJcbiAgbGVuZ3RoID0gTWF0aC5taW4oTWF0aC5tYXgoNCwgbGVuZ3RoKSwgMTI4KTtcclxuXHJcbiAgY29uc3QgbG93ZXJzID0gJ2FiY2RlZmdoamttbnBxcnN0dXZ3eHl6JztcclxuICBjb25zdCB1cHBlcnMgPSAnQUJDREVGR0hKS01OUFFSU1RVVldYWVonO1xyXG4gIGNvbnN0IG51bWJlcnMgPSAnMjM0NTY3ODknO1xyXG4gIGNvbnN0IHNwZWNpYWxzID0gJyEqXyMvKy0uJztcclxuICBjb25zdCBhbGwgPSBsb3dlcnMgKyB1cHBlcnMgKyBudW1iZXJzICsgc3BlY2lhbHM7XHJcblxyXG4gIGNvbnN0IGdldFJhbmRvbSA9IChjaHJTZXQ6IHN0cmluZykgPT4gY2hyU2V0W01hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIGNoclNldC5sZW5ndGgpXTtcclxuXHJcbiAgY29uc3QgcGFzc3dvcmQgPSBBcnJheSh7IGxlbmd0aCB9KTtcclxuICBwYXNzd29yZFswXSA9IGdldFJhbmRvbShsb3dlcnMpO1xyXG4gIHBhc3N3b3JkWzFdID0gZ2V0UmFuZG9tKHVwcGVycyk7XHJcbiAgcGFzc3dvcmRbMl0gPSBnZXRSYW5kb20obnVtYmVycyk7XHJcbiAgcGFzc3dvcmRbM10gPSBnZXRSYW5kb20oc3BlY2lhbHMpO1xyXG5cclxuICBmb3IgKGxldCBpID0gNDsgaSA8IGxlbmd0aDsgaSsrKSB7XHJcbiAgICBwYXNzd29yZFtpXSA9IGdldFJhbmRvbShhbGwpO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHBhc3N3b3JkLnNvcnQoKCkgPT4gMC41IC0gTWF0aC5yYW5kb20oKSkuam9pbignJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGdldFJlcXVpcmVkUGFzc3dvcmRMZW5ndGgoaW5qZWN0b3I6IEluamVjdG9yKSB7XHJcbiAgY29uc3QgY29uZmlnU3RhdGUgPSBpbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICBjb25zdCBwYXNzd29yZFJ1bGVzOiBBQlAuRGljdGlvbmFyeTxzdHJpbmc+ID0gY29uZmlnU3RhdGUuZ2V0U2V0dGluZ3MoJ0lkZW50aXR5LlBhc3N3b3JkJyk7XHJcbiAgcmV0dXJuIE51bWJlcihwYXNzd29yZFJ1bGVzWydBYnAuSWRlbnRpdHkuUGFzc3dvcmQuUmVxdWlyZWRMZW5ndGgnXSkgfHwgODtcclxufVxyXG4iXX0=
@@ -582,7 +582,10 @@ function generateHash(value) {
582
582
  }
583
583
  return hashed;
584
584
  }
585
- function generatePassword(length = 8) {
585
+ function generatePassword(injector, length = 8) {
586
+ if (injector) {
587
+ length = getRequiredPasswordLength(injector);
588
+ }
586
589
  length = Math.min(Math.max(4, length), 128);
587
590
  const lowers = 'abcdefghjkmnpqrstuvwxyz';
588
591
  const uppers = 'ABCDEFGHJKMNPQRSTUVWXYZ';
@@ -600,6 +603,11 @@ function generatePassword(length = 8) {
600
603
  }
601
604
  return password.sort(() => 0.5 - Math.random()).join('');
602
605
  }
606
+ function getRequiredPasswordLength(injector) {
607
+ const configState = injector.get(ConfigStateService);
608
+ const passwordRules = configState.getSettings('Identity.Password');
609
+ return Number(passwordRules['Abp.Identity.Password.RequiredLength']) || 8;
610
+ }
603
611
 
604
612
  function getPathName(url) {
605
613
  const { pathname } = new URL(url, window.location.origin);