/usr/share/cagefs-skeleton/lib/node_modules/npm/lib/utils
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 false } return err.body.authUrl && err.body.doneUrl } function isClassicOTP (err) { return err.code === 'EOTP' || (err.code === 'E401' && /one-time pass/.test(err.body)) } module.exports = otplease
.
Edit
..
Edit
ansi-trim.js
Edit
audit-error.js
Edit
cmd-list.js
Edit
completion
Edit
completion.sh
Edit
config
Edit
did-you-mean.js
Edit
display.js
Edit
error-message.js
Edit
exit-handler.js
Edit
explain-dep.js
Edit
explain-eresolve.js
Edit
format-bytes.js
Edit
format-search-stream.js
Edit
get-identity.js
Edit
is-windows.js
Edit
log-file.js
Edit
log-shim.js
Edit
npm-usage.js
Edit
open-url-prompt.js
Edit
open-url.js
Edit
otplease.js
Edit
ping.js
Edit
pulse-till-done.js
Edit
queryable.js
Edit
read-user-info.js
Edit
reify-finish.js
Edit
reify-output.js
Edit
replace-info.js
Edit
tar.js
Edit
timers.js
Edit
update-notifier.js
Edit
validate-lockfile.js
Edit
web-auth.js
Edit