PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` const log = require('./log-shim') async function otplease (npm, opts, fn) { try { return await fn(opts) } catch (err) { if (!process.stdin.isTTY || !process.stdout.isTTY) { throw err } if (isWebOTP(err)) { log.disableProgress() const webAuth = require('./web-auth') const openUrlPrompt = require('./open-url-prompt') const openerPromise = (url, emitter) => openUrlPrompt( npm, url, 'Authenticate your account at', 'Press ENTER to open in the browser...', emitter ) const otp = await webAuth(openerPromise, err.body.authUrl, err.body.doneUrl, opts) return await fn({ ...opts, otp }) } if (isClassicOTP(err)) { const readUserInfo = require('./read-user-info.js') const otp = await readUserInfo.otp('This operation requires a one-time password.\nEnter OTP:') return await fn({ ...opts, otp }) } throw err } } function isWebOTP (err) { if (err.code === 'EOTP' && err.body) { return err.body.authUrl && err.body.doneUrl } return false } function isClassicOTP (err) { return err.code === 'EOTP' || (err.code === 'E401' && /one-time pass/.test(err.body)) } module.exports = otplease