@eresearchqut/angular-password-strength-meter
Version:
[](https://github.com/eresearchqut/angular-password-strength-meter/actions/workflows/ci-workflow.yml) [ • 3.06 kB
JavaScript
import * as i0 from '@angular/core';
import { InjectionToken, inject, Injectable, makeEnvironmentProviders } from '@angular/core';
import { IPasswordStrengthMeterService } from 'angular-password-strength-meter';
import { zxcvbnOptions, zxcvbn, zxcvbnAsync } from '@zxcvbn-ts/core';
import { translations } from '@zxcvbn-ts/language-en';
const ZXCVBN_CONFIG = new InjectionToken('ZXCVBN_CONFIG');
const DEFAULT_CONFIG = {
translations: translations,
};
class PasswordStrengthMeterZXCVBNService extends IPasswordStrengthMeterService {
constructor() {
const options = inject(ZXCVBN_CONFIG, { optional: true });
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: "20.1.4", ngImport: i0, type: PasswordStrengthMeterZXCVBNService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: PasswordStrengthMeterZXCVBNService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.4", ngImport: i0, type: PasswordStrengthMeterZXCVBNService, decorators: [{
type: Injectable
}], ctorParameters: () => [] });
function provideZxvbnServiceForPSM(config) {
let providers = [
{
provide: IPasswordStrengthMeterService,
useClass: PasswordStrengthMeterZXCVBNService,
},
];
if (config) {
providers = [
{
provide: ZXCVBN_CONFIG,
useValue: config,
},
...providers,
];
}
return makeEnvironmentProviders(providers);
}
/* Public API Surface of password-strength-meter default zxcvbn service
*/
/**
* Generated bundle index. Do not edit.
*/
export { ZXCVBN_CONFIG, provideZxvbnServiceForPSM };
//# sourceMappingURL=eresearchqut-angular-password-strength-meter-zxcvbn.mjs.map