UNPKG

10.9 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports.register = exports.login = exports.loginOrRegisterIfLoggedOut = undefined;
7
8var _regenerator;
9
10function _load_regenerator() {
11 return _regenerator = _interopRequireDefault(require('babel-runtime/regenerator'));
12}
13
14var _asyncToGenerator2;
15
16function _load_asyncToGenerator() {
17 return _asyncToGenerator2 = _interopRequireDefault(require('babel-runtime/helpers/asyncToGenerator'));
18}
19
20var loginOrRegisterIfLoggedOut = exports.loginOrRegisterIfLoggedOut = function () {
21 var _ref = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee() {
22 var questions, _ref2, action;
23
24 return (_regenerator || _load_regenerator()).default.wrap(function _callee$(_context) {
25 while (1) {
26 switch (_context.prev = _context.next) {
27 case 0:
28 _context.next = 2;
29 return (_xdl || _load_xdl()).User.getCurrentUserAsync();
30
31 case 2:
32 if (!_context.sent) {
33 _context.next = 4;
34 break;
35 }
36
37 return _context.abrupt('return');
38
39 case 4:
40
41 console.log((_chalk || _load_chalk()).default.yellow('\nAn Expo user account is required to proceed.\n'));
42
43 questions = [{
44 type: 'list',
45 name: 'action',
46 message: 'How would you like to authenticate?',
47 choices: [{
48 name: 'Make a new Expo account',
49 value: 'register'
50 }, {
51 name: 'Log in with an existing Expo account',
52 value: 'existingUser'
53 }, {
54 name: 'Cancel',
55 value: 'cancel'
56 }]
57 }];
58 _context.next = 8;
59 return (0, (_prompt || _load_prompt()).default)(questions);
60
61 case 8:
62 _ref2 = _context.sent;
63 action = _ref2.action;
64
65 if (!(action === 'register')) {
66 _context.next = 15;
67 break;
68 }
69
70 _context.next = 13;
71 return register();
72
73 case 13:
74 _context.next = 21;
75 break;
76
77 case 15:
78 if (!(action === 'existingUser')) {
79 _context.next = 20;
80 break;
81 }
82
83 _context.next = 18;
84 return login({});
85
86 case 18:
87 _context.next = 21;
88 break;
89
90 case 20:
91 throw new (_CommandError || _load_CommandError()).default('BAD_CHOICE', 'Not logged in.');
92
93 case 21:
94 case 'end':
95 return _context.stop();
96 }
97 }
98 }, _callee, this);
99 }));
100
101 return function loginOrRegisterIfLoggedOut() {
102 return _ref.apply(this, arguments);
103 };
104}();
105
106var login = exports.login = function () {
107 var _ref3 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee2(options) {
108 var user, question, _ref4, action;
109
110 return (_regenerator || _load_regenerator()).default.wrap(function _callee2$(_context2) {
111 while (1) {
112 switch (_context2.prev = _context2.next) {
113 case 0:
114 _context2.next = 2;
115 return (_xdl || _load_xdl()).User.getCurrentUserAsync();
116
117 case 2:
118 user = _context2.sent;
119
120 if (options.nonInteractive) {
121 _context2.next = 15;
122 break;
123 }
124
125 if (!user) {
126 _context2.next = 12;
127 break;
128 }
129
130 question = [{
131 type: 'confirm',
132 name: 'action',
133 message: 'You are already logged in as ' + (_chalk || _load_chalk()).default.green(user.username) + '. Log in as new user?'
134 }];
135 _context2.next = 8;
136 return (0, (_prompt || _load_prompt()).default)(question);
137
138 case 8:
139 _ref4 = _context2.sent;
140 action = _ref4.action;
141
142 if (action) {
143 _context2.next = 12;
144 break;
145 }
146
147 return _context2.abrupt('return');
148
149 case 12:
150 return _context2.abrupt('return', _usernamePasswordAuth(options.username, options.password));
151
152 case 15:
153 if (!(options.username && options.password)) {
154 _context2.next = 19;
155 break;
156 }
157
158 return _context2.abrupt('return', _usernamePasswordAuth(options.username, options.password));
159
160 case 19:
161 throw new (_CommandError || _load_CommandError()).default('NON_INTERACTIVE', 'Username and password not provided in non-interactive mode.');
162
163 case 20:
164 case 'end':
165 return _context2.stop();
166 }
167 }
168 }, _callee2, this);
169 }));
170
171 return function login(_x) {
172 return _ref3.apply(this, arguments);
173 };
174}();
175
176var _usernamePasswordAuth = function () {
177 var _ref5 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee3(username, password) {
178 var questions, answers, data, user;
179 return (_regenerator || _load_regenerator()).default.wrap(function _callee3$(_context3) {
180 while (1) {
181 switch (_context3.prev = _context3.next) {
182 case 0:
183 questions = [];
184
185 if (!username) {
186 questions.push({
187 type: 'input',
188 name: 'username',
189 message: 'Username/Email Address:',
190 validate: function validate(val) {
191 if (val.trim() === '') {
192 return false;
193 }
194 return true;
195 }
196 });
197 }
198
199 if (!password) {
200 questions.push({
201 type: 'password',
202 name: 'password',
203 message: 'Password:',
204 validate: function validate(val) {
205 if (val.trim() === '') {
206 return false;
207 }
208 return true;
209 }
210 });
211 }
212
213 _context3.next = 5;
214 return (0, (_prompt || _load_prompt()).default)(questions);
215
216 case 5:
217 answers = _context3.sent;
218 data = {
219 username: username || answers.username,
220 password: password || answers.password
221 };
222 _context3.next = 9;
223 return (_xdl || _load_xdl()).User.loginAsync('user-pass', data);
224
225 case 9:
226 user = _context3.sent;
227
228 if (!user) {
229 _context3.next = 15;
230 break;
231 }
232
233 console.log('\nSuccess. You are now logged in as ' + (_chalk || _load_chalk()).default.green(user.username) + '.');
234 return _context3.abrupt('return', user);
235
236 case 15:
237 throw new Error('Unexpected Error: No user returned from the API');
238
239 case 16:
240 case 'end':
241 return _context3.stop();
242 }
243 }
244 }, _callee3, this);
245 }));
246
247 return function _usernamePasswordAuth(_x2, _x3) {
248 return _ref5.apply(this, arguments);
249 };
250}();
251
252var register = exports.register = function () {
253 var _ref6 = (0, (_asyncToGenerator2 || _load_asyncToGenerator()).default)( /*#__PURE__*/(_regenerator || _load_regenerator()).default.mark(function _callee4() {
254 var questions, answers, registeredUser;
255 return (_regenerator || _load_regenerator()).default.wrap(function _callee4$(_context4) {
256 while (1) {
257 switch (_context4.prev = _context4.next) {
258 case 0:
259 console.log('\nThanks for signing up for Expo!\nJust a few questions:\n');
260
261 questions = [{
262 type: 'input',
263 name: 'email',
264 message: 'E-mail:',
265 filter: function filter(val) {
266 return val.trim();
267 },
268 validate: function validate(val) {
269 if (val.trim() === '') {
270 return false;
271 }
272 return true;
273 }
274 }, {
275 type: 'input',
276 name: 'username',
277 message: 'Username:',
278 filter: function filter(val) {
279 return val.trim();
280 },
281 validate: function validate(val) {
282 if (val.trim() === '') {
283 return false;
284 }
285 return true;
286 }
287 }, {
288 type: 'password',
289 name: 'password',
290 message: 'Password:',
291 filter: function filter(val) {
292 return val.trim();
293 },
294 validate: function validate(val) {
295 if (val.trim() === '') {
296 return 'Please create a password';
297 }
298 return true;
299 }
300 }, {
301 type: 'password',
302 name: 'passwordRepeat',
303 message: 'Confirm Password:',
304 validate: function validate(val, answers) {
305 if (val.trim() === '') {
306 return false;
307 }
308 if (val.trim() !== answers.password.trim()) {
309 return 'Passwords don\'t match!';
310 }
311 return true;
312 }
313 }];
314 _context4.next = 4;
315 return (0, (_prompt || _load_prompt()).default)(questions);
316
317 case 4:
318 answers = _context4.sent;
319 _context4.next = 7;
320 return (_xdl || _load_xdl()).User.registerAsync(answers);
321
322 case 7:
323 registeredUser = _context4.sent;
324
325 console.log('\nThanks for signing up!');
326 return _context4.abrupt('return', registeredUser);
327
328 case 10:
329 case 'end':
330 return _context4.stop();
331 }
332 }
333 }, _callee4, this);
334 }));
335
336 return function register() {
337 return _ref6.apply(this, arguments);
338 };
339}();
340
341var _chalk;
342
343function _load_chalk() {
344 return _chalk = _interopRequireDefault(require('chalk'));
345}
346
347var _xdl;
348
349function _load_xdl() {
350 return _xdl = require('xdl');
351}
352
353var _CommandError;
354
355function _load_CommandError() {
356 return _CommandError = _interopRequireDefault(require('./CommandError'));
357}
358
359var _prompt;
360
361function _load_prompt() {
362 return _prompt = _interopRequireDefault(require('./prompt'));
363}
364
365function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
366
367// const EXP_CLIENT_ID = 'Zso9S1J7xpRYzT4QNlanGYLL5aBrqy1l';
368(_xdl || _load_xdl()).User.initialize();
369//# sourceMappingURL=__sourcemaps__/accounts.js.map