| 'use strict'; | 
|   | 
| const AuthPrompt = require('../types/auth'); | 
|   | 
| function defaultAuthenticate(value, state) { | 
|   if (value.username === this.options.username && value.password === this.options.password) { | 
|     return true; | 
|   } | 
|   return false; | 
| } | 
|   | 
| const factory = (authenticate = defaultAuthenticate) => { | 
|   const choices = [ | 
|     { name: 'username', message: 'username' }, | 
|     { | 
|       name: 'password', | 
|       message: 'password', | 
|       format(input) { | 
|         if (this.options.showPassword) { | 
|           return input; | 
|         } | 
|         let color = this.state.submitted ? this.styles.primary : this.styles.muted; | 
|         return color(this.symbols.asterisk.repeat(input.length)); | 
|       } | 
|     } | 
|   ]; | 
|   | 
|   class BasicAuthPrompt extends AuthPrompt.create(authenticate) { | 
|     constructor(options) { | 
|       super({ ...options, choices }); | 
|     } | 
|   | 
|     static create(authenticate) { | 
|       return factory(authenticate); | 
|     } | 
|   } | 
|   | 
|   return BasicAuthPrompt; | 
| }; | 
|   | 
| module.exports = factory(); |