| 123456789101112131415161718192021222324252627 | 'use strict'const BB = require('bluebird')const optCheck = require('figgy-pudding')({  prompt: {default: 'This operation requires a one-time password.\nEnter OTP:'},  otp: {}})const readUserInfo = require('./read-user-info.js')module.exports = otpleasefunction otplease (opts, fn) {  opts = opts.concat ? opts : optCheck(opts)  return BB.try(() => {    return fn(opts)  }).catch(err => {    if (err.code !== 'EOTP' && !(err.code === 'E401' && /one-time pass/.test(err.body))) {      throw err    } else if (!process.stdin.isTTY || !process.stdout.isTTY) {      throw err    } else {      return readUserInfo.otp(        optCheck(opts).prompt      ).then(otp => fn(opts.concat({otp})))    }  })}
 |