UNPKG

@gocredible/angular-password-strength-meter

Version:

[![CI](https://github.com/GoCredible/password-strength-meter/actions/workflows/ci-workflow.yml/badge.svg)](https://github.com/GoCredible/password-strength-meter/actions/workflows/ci-workflow.yml) [![npm version](https://badge.fury.io/js/angular-password-s

63 lines 7.04 kB
import { Inject, Injectable, Optional } from '@angular/core'; import { zxcvbn, zxcvbnAsync, zxcvbnOptions } from '@zxcvbn-ts/core'; import { translations } from '@zxcvbn-ts/language-en'; import { IPasswordStrengthMeterService, } from '@gocredible/angular-password-strength-meter'; import { ZXCVBN_CONFIG, } from './password-strength-meter.types'; import * as i0 from "@angular/core"; export const DEFAULT_CONFIG = { translations: translations, }; export class PasswordStrengthMeterZXCVBNService extends IPasswordStrengthMeterService { constructor(options) { super(); if (options) { zxcvbnOptions.setOptions(options); } else { zxcvbnOptions.setOptions(DEFAULT_CONFIG); } } /** * this will return the password strength score in number * 0 - too guessable * 1 - very guessable * 2 - somewhat guessable * 3 - safely unguessable * 4 - very unguessable * * @param password - Password */ score(password) { const result = zxcvbn(password); return result.score; } /** * this will return the password strength score with feedback messages * return type FeedbackResult * * @param password - Password */ scoreWithFeedback(password) { const result = zxcvbn(password); return { score: result.score, feedback: result.feedback }; } async scoreAsync(password) { const result = await zxcvbnAsync(password); return result.score; } async scoreWithFeedbackAsync(password) { const result = await zxcvbnAsync(password); return { score: result.score, feedback: result.feedback }; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PasswordStrengthMeterZXCVBNService, deps: [{ token: ZXCVBN_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); } static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PasswordStrengthMeterZXCVBNService }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: PasswordStrengthMeterZXCVBNService, decorators: [{ type: Injectable }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [ZXCVBN_CONFIG] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXItenhjdmJuLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wYXNzd29yZC1zdHJlbmd0aC1tZXRlci96eGN2Ym4vc3JjL3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLXp4Y3Zibi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUVMLDZCQUE2QixHQUM5QixNQUFNLDZDQUE2QyxDQUFDO0FBQ3JELE9BQU8sRUFDTCxhQUFhLEdBRWQsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFFekMsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFvQjtJQUM3QyxZQUFZLEVBQUUsWUFBWTtDQUMzQixDQUFDO0FBR0YsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLDZCQUE2QjtJQUNuRixZQUdFLE9BQXdCO1FBRXhCLEtBQUssRUFBRSxDQUFDO1FBRVIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLGFBQWEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQzthQUFNLENBQUM7WUFDTixhQUFhLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsS0FBSyxDQUFDLFFBQWdCO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsaUJBQWlCLENBQUMsUUFBZ0I7UUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFRCxLQUFLLENBQUMsVUFBVSxDQUFDLFFBQWdCO1FBQy9CLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQztJQUN0QixDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUFDLFFBQWdCO1FBQzNDLE1BQU0sTUFBTSxHQUFHLE1BQU0sV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzVELENBQUM7K0dBakRVLGtDQUFrQyxrQkFHbkMsYUFBYTttSEFIWixrQ0FBa0M7OzRGQUFsQyxrQ0FBa0M7a0JBRDlDLFVBQVU7OzBCQUdOLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHp4Y3ZibiwgenhjdmJuQXN5bmMsIHp4Y3Zibk9wdGlvbnMgfSBmcm9tICdAenhjdmJuLXRzL2NvcmUnO1xuaW1wb3J0IHsgdHJhbnNsYXRpb25zIH0gZnJvbSAnQHp4Y3Zibi10cy9sYW5ndWFnZS1lbic7XG5pbXBvcnQge1xuICBGZWVkYmFja1Jlc3VsdCxcbiAgSVBhc3N3b3JkU3RyZW5ndGhNZXRlclNlcnZpY2UsXG59IGZyb20gJ0Bnb2NyZWRpYmxlL2FuZ3VsYXItcGFzc3dvcmQtc3RyZW5ndGgtbWV0ZXInO1xuaW1wb3J0IHtcbiAgWlhDVkJOX0NPTkZJRyxcbiAgWnh2Ym5Db25maWdUeXBlLFxufSBmcm9tICcuL3Bhc3N3b3JkLXN0cmVuZ3RoLW1ldGVyLnR5cGVzJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09ORklHOiBaeHZibkNvbmZpZ1R5cGUgPSB7XG4gIHRyYW5zbGF0aW9uczogdHJhbnNsYXRpb25zLFxufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBhc3N3b3JkU3RyZW5ndGhNZXRlclpYQ1ZCTlNlcnZpY2UgZXh0ZW5kcyBJUGFzc3dvcmRTdHJlbmd0aE1ldGVyU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChaWENWQk5fQ09ORklHKVxuICAgIG9wdGlvbnM6IFp4dmJuQ29uZmlnVHlwZVxuICApIHtcbiAgICBzdXBlcigpO1xuXG4gICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgIHp4Y3Zibk9wdGlvbnMuc2V0T3B0aW9ucyhvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgenhjdmJuT3B0aW9ucy5zZXRPcHRpb25zKERFRkFVTFRfQ09ORklHKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIHRoaXMgd2lsbCByZXR1cm4gdGhlIHBhc3N3b3JkIHN0cmVuZ3RoIHNjb3JlIGluIG51bWJlclxuICAgKiAgMCAtIHRvbyBndWVzc2FibGVcbiAgICogIDEgLSB2ZXJ5IGd1ZXNzYWJsZVxuICAgKiAgMiAtIHNvbWV3aGF0IGd1ZXNzYWJsZVxuICAgKiAgMyAtIHNhZmVseSB1bmd1ZXNzYWJsZVxuICAgKiAgNCAtIHZlcnkgdW5ndWVzc2FibGVcbiAgICpcbiAgICogIEBwYXJhbSBwYXNzd29yZCAtIFBhc3N3b3JkXG4gICAqL1xuICBzY29yZShwYXNzd29yZDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICBjb25zdCByZXN1bHQgPSB6eGN2Ym4ocGFzc3dvcmQpO1xuICAgIHJldHVybiByZXN1bHQuc2NvcmU7XG4gIH1cblxuICAvKipcbiAgICogdGhpcyB3aWxsIHJldHVybiB0aGUgcGFzc3dvcmQgc3RyZW5ndGggc2NvcmUgd2l0aCBmZWVkYmFjayBtZXNzYWdlc1xuICAgKiByZXR1cm4gdHlwZSBGZWVkYmFja1Jlc3VsdFxuICAgKlxuICAgKiBAcGFyYW0gcGFzc3dvcmQgLSBQYXNzd29yZFxuICAgKi9cbiAgc2NvcmVXaXRoRmVlZGJhY2socGFzc3dvcmQ6IHN0cmluZyk6IEZlZWRiYWNrUmVzdWx0IHtcbiAgICBjb25zdCByZXN1bHQgPSB6eGN2Ym4ocGFzc3dvcmQpO1xuICAgIHJldHVybiB7IHNjb3JlOiByZXN1bHQuc2NvcmUsIGZlZWRiYWNrOiByZXN1bHQuZmVlZGJhY2sgfTtcbiAgfVxuXG4gIGFzeW5jIHNjb3JlQXN5bmMocGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8bnVtYmVyPiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgenhjdmJuQXN5bmMocGFzc3dvcmQpO1xuICAgIHJldHVybiByZXN1bHQuc2NvcmU7XG4gIH1cblxuICBhc3luYyBzY29yZVdpdGhGZWVkYmFja0FzeW5jKHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPEZlZWRiYWNrUmVzdWx0PiB7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgenhjdmJuQXN5bmMocGFzc3dvcmQpO1xuICAgIHJldHVybiB7IHNjb3JlOiByZXN1bHQuc2NvcmUsIGZlZWRiYWNrOiByZXN1bHQuZmVlZGJhY2sgfTtcbiAgfVxufVxuIl19