| 'use strict'; | 
|   | 
| const FormPrompt = require('../prompts/form'); | 
|   | 
| const defaultAuthenticate = () => { | 
|   throw new Error('expected prompt to have a custom authenticate method'); | 
| }; | 
|   | 
| const factory = (authenticate = defaultAuthenticate) => { | 
|   | 
|   class AuthPrompt extends FormPrompt { | 
|     constructor(options) { | 
|       super(options); | 
|     } | 
|   | 
|     async submit() { | 
|       this.value = await authenticate.call(this, this.values, this.state); | 
|       super.base.submit.call(this); | 
|     } | 
|   | 
|     static create(authenticate) { | 
|       return factory(authenticate); | 
|     } | 
|   } | 
|   | 
|   return AuthPrompt; | 
| }; | 
|   | 
| module.exports = factory(); |