UNPKG

9.58 kBSource Map (JSON)View Raw
1{"version":3,"sources":["accounts.js"],"names":["getCurrentUserAsync","user","warn","nonInteractive","name","questions","type","message","choices","value","action","register","login","loginOrRegisterIfLoggedOut","options","parent","question","green","username","_usernamePasswordAuth","password","push","validate","val","trim","answers","data","loginAsync","console","log","Error","filter","registerAsync","registeredUser","initialize"],"mappings":"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","file":"../accounts.js","sourcesContent":["/**\n * @flow\n */\n\nimport chalk from 'chalk';\nimport program from 'commander';\n\nimport { User as UserManager } from 'xdl';\nimport type { LoginType, User } from 'xdl/build/User';\nimport CommandError from './CommandError';\nimport prompt from './prompt';\nimport log from './log';\n\nUserManager.initialize();\n\ntype CommandOptions = {\n username?: string,\n password?: string,\n};\n\nexport async function loginOrRegisterIfLoggedOut() {\n let user = await UserManager.getCurrentUserAsync();\n if (user) {\n return user;\n }\n\n log.warn('An Expo user account is required to proceed.');\n\n if (program.nonInteractive) {\n throw new CommandError(\n 'NOT_LOGGED_IN',\n `Not logged in. Use \\`${program.name} login -u username -p password\\` to log in.`\n );\n }\n\n const questions = [\n {\n type: 'list',\n name: 'action',\n message: 'How would you like to authenticate?',\n choices: [\n {\n name: 'Make a new Expo account',\n value: 'register',\n },\n {\n name: 'Log in with an existing Expo account',\n value: 'existingUser',\n },\n {\n name: 'Cancel',\n value: 'cancel',\n },\n ],\n },\n ];\n\n const { action } = await prompt(questions);\n\n if (action === 'register') {\n return register();\n } else if (action === 'existingUser') {\n return login({});\n } else {\n throw new CommandError('BAD_CHOICE', 'Not logged in.');\n }\n}\n\nexport async function login(options: CommandOptions) {\n const user = await UserManager.getCurrentUserAsync();\n const nonInteractive = options.parent && options.parent.nonInteractive;\n if (!nonInteractive) {\n if (user) {\n const question = [\n {\n type: 'confirm',\n name: 'action',\n message: `You are already logged in as ${chalk.green(\n user.username\n )}. Log in as new user?`,\n },\n ];\n\n const { action } = await prompt(question);\n if (!action) {\n // If user chooses to stay logged in, return\n return;\n }\n }\n return _usernamePasswordAuth(options.username, options.password);\n } else if (options.username && options.password) {\n return _usernamePasswordAuth(options.username, options.password);\n } else {\n throw new CommandError(\n 'NON_INTERACTIVE',\n 'Username and password not provided in non-interactive mode.'\n );\n }\n}\n\nasync function _usernamePasswordAuth(username?: string, password?: string): Promise<User> {\n const questions = [];\n if (!username) {\n questions.push({\n type: 'input',\n name: 'username',\n message: 'Username/Email Address:',\n validate(val) {\n if (val.trim() === '') {\n return false;\n }\n return true;\n },\n });\n }\n\n if (!password) {\n questions.push({\n type: 'password',\n name: 'password',\n message: 'Password:',\n validate(val) {\n if (val.trim() === '') {\n return false;\n }\n return true;\n },\n });\n }\n\n const answers = await prompt(questions);\n\n const data = {\n username: username || answers.username,\n password: password || answers.password,\n };\n\n let user = await UserManager.loginAsync('user-pass', data);\n\n if (user) {\n console.log(`\\nSuccess. You are now logged in as ${chalk.green(user.username)}.`);\n return user;\n } else {\n throw new Error('Unexpected Error: No user returned from the API');\n }\n}\n\nexport async function register(): Promise<User> {\n console.log(\n `\nThanks for signing up for Expo!\nJust a few questions:\n`\n );\n\n let questions = [\n {\n type: 'input',\n name: 'email',\n message: 'E-mail:',\n filter: val => val.trim(),\n validate(val) {\n if (val.trim() === '') {\n return false;\n }\n return true;\n },\n },\n {\n type: 'input',\n name: 'username',\n message: 'Username:',\n filter: val => val.trim(),\n validate(val) {\n if (val.trim() === '') {\n return false;\n }\n return true;\n },\n },\n {\n type: 'password',\n name: 'password',\n message: 'Password:',\n filter: val => val.trim(),\n validate(val) {\n if (val.trim() === '') {\n return 'Please create a password';\n }\n return true;\n },\n },\n {\n type: 'password',\n name: 'passwordRepeat',\n message: 'Confirm Password:',\n validate(val, answers) {\n if (val.trim() === '') {\n return false;\n }\n if (val.trim() !== answers.password.trim()) {\n return `Passwords don't match!`;\n }\n return true;\n },\n },\n ];\n let answers = await prompt(questions);\n let registeredUser = await UserManager.registerAsync(answers);\n console.log('\\nThanks for signing up!');\n return registeredUser;\n}\n"],"sourceRoot":"/exp@57.1.1/src"}
\No newline at end of file