join.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704
  1. // Generated by IcedCoffeeScript 1.7.1-c
  2. (function() {
  3. var ArgumentParser, Base, Command, E, PackageJson, Prompter, SC, add_option_dict, checkers, constants, dict_union, env, iced, log, make_esc, prompt_yn, read, req, rng, session, triplesec, __iced_k, __iced_k_noop, _ref,
  4. __hasProp = {}.hasOwnProperty,
  5. __extends = function(child, parent) { for (var key in parent) { if (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; };
  6. iced = require('iced-runtime').iced;
  7. __iced_k = __iced_k_noop = function() {};
  8. Base = require('./base').Base;
  9. log = require('../log');
  10. ArgumentParser = require('argparse').ArgumentParser;
  11. add_option_dict = require('./argparse').add_option_dict;
  12. PackageJson = require('../package').PackageJson;
  13. E = require('../err').E;
  14. _ref = require('../prompter'), prompt_yn = _ref.prompt_yn, Prompter = _ref.Prompter;
  15. checkers = require('../checkers').checkers;
  16. make_esc = require('iced-error').make_esc;
  17. triplesec = require('triplesec');
  18. rng = require('crypto').rng;
  19. constants = require('../constants').constants;
  20. SC = constants.security;
  21. req = require('../req');
  22. env = require('../env').env;
  23. read = require('read');
  24. session = require('../session');
  25. dict_union = require('../util').dict_union;
  26. exports.Command = Command = (function(_super) {
  27. __extends(Command, _super);
  28. function Command() {
  29. return Command.__super__.constructor.apply(this, arguments);
  30. }
  31. Command.prototype.OPTS = {
  32. e: {
  33. aliases: ['email'],
  34. help: 'the email address to signup'
  35. },
  36. u: {
  37. aliases: ['username'],
  38. help: 'the username to signup as'
  39. }
  40. };
  41. Command.prototype.use_session = function() {
  42. return true;
  43. };
  44. Command.prototype.add_subcommand_parser = function(scp) {
  45. var name, opts, sub;
  46. opts = {
  47. aliases: ["signup"],
  48. help: "establish a new account on keybase.io"
  49. };
  50. name = "join";
  51. sub = scp.addParser(name, opts);
  52. return opts.aliases.concat([name]);
  53. };
  54. Command.prototype.prompt = function(cb) {
  55. var e, err, p, seq, u, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  56. __iced_k = __iced_k_noop;
  57. ___iced_passed_deferral = iced.findDeferral(arguments);
  58. seq = {
  59. email: {
  60. prompt: "Your email",
  61. checker: checkers.email
  62. },
  63. invite: {
  64. prompt: "Invitation code (leave blank if you don't have one)",
  65. thrower: function(k, s) {
  66. if ((s.match(/^\s*$/)) != null) {
  67. return new E.CleanCancelError(k);
  68. } else {
  69. return null;
  70. }
  71. }
  72. },
  73. username: {
  74. prompt: "Your desired username",
  75. checker: checkers.username
  76. },
  77. passphrase: {
  78. prompt: "Your login passphrase",
  79. passphrase: true,
  80. checker: checkers.passphrase,
  81. confirm: {
  82. prompt: "Repeat to confirm"
  83. }
  84. }
  85. };
  86. if (!this.prompter) {
  87. if ((u = env().get_username()) != null) {
  88. seq.username.defval = u;
  89. }
  90. if ((p = env().get_passphrase()) != null) {
  91. seq.passphrase.defval = p;
  92. }
  93. if ((e = env().get_email()) != null) {
  94. seq.email.defval = e;
  95. }
  96. this.prompter = new Prompter(seq);
  97. }
  98. (function(_this) {
  99. return (function(__iced_k) {
  100. __iced_deferrals = new iced.Deferrals(__iced_k, {
  101. parent: ___iced_passed_deferral,
  102. filename: "/home/jacko/node-client/src/command/join.iced",
  103. funcname: "Command.prompt"
  104. });
  105. _this.prompter.run(__iced_deferrals.defer({
  106. assign_fn: (function() {
  107. return function() {
  108. return err = arguments[0];
  109. };
  110. })(),
  111. lineno: 73
  112. }));
  113. __iced_deferrals._fulfill();
  114. });
  115. })(this)((function(_this) {
  116. return function() {
  117. if (typeof err === "undefined" || err === null) {
  118. _this.data = _this.prompter.data();
  119. }
  120. return cb(err);
  121. };
  122. })(this));
  123. };
  124. Command.prototype.gen_pwh = function(cb) {
  125. var err, passphrase, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  126. __iced_k = __iced_k_noop;
  127. ___iced_passed_deferral = iced.findDeferral(arguments);
  128. passphrase = this.data.passphrase;
  129. (function(_this) {
  130. return (function(__iced_k) {
  131. if (!_this.pp_last || (_this.pp_last !== passphrase)) {
  132. (function(__iced_k) {
  133. __iced_deferrals = new iced.Deferrals(__iced_k, {
  134. parent: ___iced_passed_deferral,
  135. filename: "/home/jacko/node-client/src/command/join.iced",
  136. funcname: "Command.gen_pwh"
  137. });
  138. session.gen_pwh({
  139. passphrase: passphrase
  140. }, __iced_deferrals.defer({
  141. assign_fn: (function(__slot_1, __slot_2, __slot_3) {
  142. return function() {
  143. err = arguments[0];
  144. __slot_1.pwh = arguments[1];
  145. __slot_2.salt = arguments[2];
  146. return __slot_3.pwh_version = arguments[3];
  147. };
  148. })(_this, _this, _this),
  149. lineno: 82
  150. }));
  151. __iced_deferrals._fulfill();
  152. })(function() {
  153. return __iced_k(typeof err === "undefined" || err === null ? _this.pp_last = passphrase : void 0);
  154. });
  155. } else {
  156. return __iced_k();
  157. }
  158. });
  159. })(this)((function(_this) {
  160. return function() {
  161. return cb(err);
  162. };
  163. })(this));
  164. };
  165. Command.prototype.post = function(cb) {
  166. var args, body, err, retry, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  167. __iced_k = __iced_k_noop;
  168. ___iced_passed_deferral = iced.findDeferral(arguments);
  169. args = {
  170. salt: this.salt.toString('hex'),
  171. pwh: this.pwh.toString('hex'),
  172. username: this.data.username,
  173. email: this.data.email,
  174. invitation_id: this.data.invite,
  175. pwh_version: this.pwh_version
  176. };
  177. (function(_this) {
  178. return (function(__iced_k) {
  179. __iced_deferrals = new iced.Deferrals(__iced_k, {
  180. parent: ___iced_passed_deferral,
  181. filename: "/home/jacko/node-client/src/command/join.iced",
  182. funcname: "Command.post"
  183. });
  184. req.post({
  185. endpoint: "signup",
  186. args: args
  187. }, __iced_deferrals.defer({
  188. assign_fn: (function() {
  189. return function() {
  190. err = arguments[0];
  191. return body = arguments[1];
  192. };
  193. })(),
  194. lineno: 97
  195. }));
  196. __iced_deferrals._fulfill();
  197. });
  198. })(this)((function(_this) {
  199. return function() {
  200. retry = false;
  201. if ((typeof err !== "undefined" && err !== null) && (err instanceof E.KeybaseError)) {
  202. switch (body.status.name) {
  203. case 'BAD_SIGNUP_EMAIL_TAKEN':
  204. log.error("Email address '" + _this.data.email + "' already registered");
  205. retry = true;
  206. _this.prompter.clear('email');
  207. err = null;
  208. break;
  209. case 'BAD_SIGNUP_USERNAME_TAKEN':
  210. log.error("Username '" + _this.data.username + "' already registered");
  211. retry = true;
  212. _this.prompter.clear('username');
  213. err = null;
  214. break;
  215. case 'INPUT_ERROR':
  216. if (err.fields.username) {
  217. log.error("Username '" + _this.data.username + "' was rejected by the server");
  218. retry = true;
  219. _this.prompter.clear('username');
  220. err = null;
  221. }
  222. break;
  223. case 'BAD_INVITATION_CODE':
  224. log.error("Bad invitation code '" + _this.data.invite + "' given");
  225. retry = true;
  226. _this.prompter.clear('invite');
  227. err = null;
  228. }
  229. }
  230. if (err == null) {
  231. _this.uid = body.uid;
  232. session.set_id(body.session);
  233. session.set_csrf(body.csrf_token);
  234. } else if (!retry) {
  235. log.error("Unexpected error: " + err);
  236. }
  237. return cb(err, retry);
  238. };
  239. })(this));
  240. };
  241. Command.prototype.write_out = function(cb) {
  242. var esc, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  243. __iced_k = __iced_k_noop;
  244. ___iced_passed_deferral = iced.findDeferral(arguments);
  245. esc = make_esc(cb, "Join::write_out");
  246. (function(_this) {
  247. return (function(__iced_k) {
  248. __iced_deferrals = new iced.Deferrals(__iced_k, {
  249. parent: ___iced_passed_deferral,
  250. filename: "/home/jacko/node-client/src/command/join.iced",
  251. funcname: "Command.write_out"
  252. });
  253. _this.write_config(esc(__iced_deferrals.defer({
  254. lineno: 135
  255. })));
  256. __iced_deferrals._fulfill();
  257. });
  258. })(this)((function(_this) {
  259. return function() {
  260. (function(__iced_k) {
  261. __iced_deferrals = new iced.Deferrals(__iced_k, {
  262. parent: ___iced_passed_deferral,
  263. filename: "/home/jacko/node-client/src/command/join.iced",
  264. funcname: "Command.write_out"
  265. });
  266. session.write(esc(__iced_deferrals.defer({
  267. lineno: 136
  268. })));
  269. __iced_deferrals._fulfill();
  270. })(function() {
  271. return cb(null);
  272. });
  273. };
  274. })(this));
  275. };
  276. Command.prototype.write_config = function(cb) {
  277. var c, err, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  278. __iced_k = __iced_k_noop;
  279. ___iced_passed_deferral = iced.findDeferral(arguments);
  280. c = env().config;
  281. c.set("user.email", this.data.email);
  282. c.set("user.salt", this.salt.toString('hex'));
  283. c.set("user.name", this.data.username);
  284. c.set("user.id", this.uid);
  285. (function(_this) {
  286. return (function(__iced_k) {
  287. __iced_deferrals = new iced.Deferrals(__iced_k, {
  288. parent: ___iced_passed_deferral,
  289. filename: "/home/jacko/node-client/src/command/join.iced",
  290. funcname: "Command.write_config"
  291. });
  292. c.write(__iced_deferrals.defer({
  293. assign_fn: (function() {
  294. return function() {
  295. return err = arguments[0];
  296. };
  297. })(),
  298. lineno: 147
  299. }));
  300. __iced_deferrals._fulfill();
  301. });
  302. })(this)((function(_this) {
  303. return function() {
  304. return cb(err);
  305. };
  306. })(this));
  307. };
  308. Command.prototype.check_registered = function(cb) {
  309. var err, opts, rereg, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  310. __iced_k = __iced_k_noop;
  311. ___iced_passed_deferral = iced.findDeferral(arguments);
  312. err = null;
  313. (function(_this) {
  314. return (function(__iced_k) {
  315. if ((env().config.get("user.id")) != null) {
  316. opts = {
  317. prompt: "Already registered; do you want to reregister?",
  318. defval: false
  319. };
  320. (function(__iced_k) {
  321. __iced_deferrals = new iced.Deferrals(__iced_k, {
  322. parent: ___iced_passed_deferral,
  323. filename: "/home/jacko/node-client/src/command/join.iced",
  324. funcname: "Command.check_registered"
  325. });
  326. prompt_yn(opts, __iced_deferrals.defer({
  327. assign_fn: (function() {
  328. return function() {
  329. err = arguments[0];
  330. return rereg = arguments[1];
  331. };
  332. })(),
  333. lineno: 158
  334. }));
  335. __iced_deferrals._fulfill();
  336. })(function() {
  337. return __iced_k((err == null) && !rereg ? err = new E.CancelError("registration canceled") : void 0);
  338. });
  339. } else {
  340. return __iced_k();
  341. }
  342. });
  343. })(this)((function(_this) {
  344. return function() {
  345. return cb(err);
  346. };
  347. })(this));
  348. };
  349. Command.prototype.request_invite = function(cb) {
  350. var d2, esc, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  351. __iced_k = __iced_k_noop;
  352. ___iced_passed_deferral = iced.findDeferral(arguments);
  353. esc = make_esc(cb, "request_invite");
  354. (function(_this) {
  355. return (function(__iced_k) {
  356. __iced_deferrals = new iced.Deferrals(__iced_k, {
  357. parent: ___iced_passed_deferral,
  358. filename: "/home/jacko/node-client/src/command/join.iced",
  359. funcname: "Command.request_invite"
  360. });
  361. _this.ri_prompt_for_ok(esc(__iced_deferrals.defer({
  362. lineno: 167
  363. })));
  364. __iced_deferrals._fulfill();
  365. });
  366. })(this)((function(_this) {
  367. return function() {
  368. (function(__iced_k) {
  369. __iced_deferrals = new iced.Deferrals(__iced_k, {
  370. parent: ___iced_passed_deferral,
  371. filename: "/home/jacko/node-client/src/command/join.iced",
  372. funcname: "Command.request_invite"
  373. });
  374. _this.ri_prompt_for_data(esc(__iced_deferrals.defer({
  375. assign_fn: (function() {
  376. return function() {
  377. return d2 = arguments[0];
  378. };
  379. })(),
  380. lineno: 168
  381. })));
  382. __iced_deferrals._fulfill();
  383. })(function() {
  384. (function(__iced_k) {
  385. __iced_deferrals = new iced.Deferrals(__iced_k, {
  386. parent: ___iced_passed_deferral,
  387. filename: "/home/jacko/node-client/src/command/join.iced",
  388. funcname: "Command.request_invite"
  389. });
  390. _this.ri_post_request(d2, esc(__iced_deferrals.defer({
  391. lineno: 169
  392. })));
  393. __iced_deferrals._fulfill();
  394. })(function() {
  395. return cb(null);
  396. });
  397. });
  398. };
  399. })(this));
  400. };
  401. Command.prototype.ri_prompt_for_ok = function(cb) {
  402. var err, go, opts, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  403. __iced_k = __iced_k_noop;
  404. ___iced_passed_deferral = iced.findDeferral(arguments);
  405. opts = {
  406. prompt: "Would you like to be added to the invite list?",
  407. defval: true
  408. };
  409. (function(_this) {
  410. return (function(__iced_k) {
  411. __iced_deferrals = new iced.Deferrals(__iced_k, {
  412. parent: ___iced_passed_deferral,
  413. filename: "/home/jacko/node-client/src/command/join.iced",
  414. funcname: "Command.ri_prompt_for_ok"
  415. });
  416. prompt_yn(opts, __iced_deferrals.defer({
  417. assign_fn: (function() {
  418. return function() {
  419. err = arguments[0];
  420. return go = arguments[1];
  421. };
  422. })(),
  423. lineno: 178
  424. }));
  425. __iced_deferrals._fulfill();
  426. });
  427. })(this)((function(_this) {
  428. return function() {
  429. if ((typeof err === "undefined" || err === null) && !go) {
  430. err = new E.CancelError("invitation request canceled");
  431. }
  432. return cb(err);
  433. };
  434. })(this));
  435. };
  436. Command.prototype.ri_prompt_for_data = function(cb) {
  437. var err, prompter, ret, seq, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  438. __iced_k = __iced_k_noop;
  439. ___iced_passed_deferral = iced.findDeferral(arguments);
  440. seq = {
  441. full_name: {
  442. prompt: "Your name"
  443. },
  444. notes: {
  445. prompt: "Any comments for the team"
  446. }
  447. };
  448. prompter = new Prompter(seq);
  449. (function(_this) {
  450. return (function(__iced_k) {
  451. __iced_deferrals = new iced.Deferrals(__iced_k, {
  452. parent: ___iced_passed_deferral,
  453. filename: "/home/jacko/node-client/src/command/join.iced",
  454. funcname: "Command.ri_prompt_for_data"
  455. });
  456. prompter.run(__iced_deferrals.defer({
  457. assign_fn: (function() {
  458. return function() {
  459. return err = arguments[0];
  460. };
  461. })(),
  462. lineno: 192
  463. }));
  464. __iced_deferrals._fulfill();
  465. });
  466. })(this)((function(_this) {
  467. return function() {
  468. ret = null;
  469. if (typeof err === "undefined" || err === null) {
  470. ret = prompter.data();
  471. }
  472. return cb(err, ret);
  473. };
  474. })(this));
  475. };
  476. Command.prototype.ri_post_request = function(d2, cb) {
  477. var args, err, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  478. __iced_k = __iced_k_noop;
  479. ___iced_passed_deferral = iced.findDeferral(arguments);
  480. args = dict_union(d2, this.prompter.data());
  481. (function(_this) {
  482. return (function(__iced_k) {
  483. __iced_deferrals = new iced.Deferrals(__iced_k, {
  484. parent: ___iced_passed_deferral,
  485. filename: "/home/jacko/node-client/src/command/join.iced",
  486. funcname: "Command.ri_post_request"
  487. });
  488. req.post({
  489. endpoint: "invitation_request",
  490. args: args
  491. }, __iced_deferrals.defer({
  492. assign_fn: (function() {
  493. return function() {
  494. return err = arguments[0];
  495. };
  496. })(),
  497. lineno: 201
  498. }));
  499. __iced_deferrals._fulfill();
  500. });
  501. })(this)((function(_this) {
  502. return function() {
  503. if (typeof err === "undefined" || err === null) {
  504. log.info("Success! You're on our list. Thanks for your interest!");
  505. }
  506. return cb(err);
  507. };
  508. })(this));
  509. };
  510. Command.prototype.run = function(cb) {
  511. var err, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  512. __iced_k = __iced_k_noop;
  513. ___iced_passed_deferral = iced.findDeferral(arguments);
  514. (function(_this) {
  515. return (function(__iced_k) {
  516. __iced_deferrals = new iced.Deferrals(__iced_k, {
  517. parent: ___iced_passed_deferral,
  518. filename: "/home/jacko/node-client/src/command/join.iced",
  519. funcname: "Command.run"
  520. });
  521. _this.run2(__iced_deferrals.defer({
  522. assign_fn: (function() {
  523. return function() {
  524. return err = arguments[0];
  525. };
  526. })(),
  527. lineno: 209
  528. }));
  529. __iced_deferrals._fulfill();
  530. });
  531. })(this)((function(_this) {
  532. return function() {
  533. (function(__iced_k) {
  534. if ((typeof err !== "undefined" && err !== null) && (err instanceof E.CleanCancelError)) {
  535. (function(__iced_k) {
  536. __iced_deferrals = new iced.Deferrals(__iced_k, {
  537. parent: ___iced_passed_deferral,
  538. filename: "/home/jacko/node-client/src/command/join.iced",
  539. funcname: "Command.run"
  540. });
  541. _this.request_invite(__iced_deferrals.defer({
  542. assign_fn: (function() {
  543. return function() {
  544. return err = arguments[0];
  545. };
  546. })(),
  547. lineno: 211
  548. }));
  549. __iced_deferrals._fulfill();
  550. })(__iced_k);
  551. } else {
  552. return __iced_k();
  553. }
  554. })(function() {
  555. return cb(err);
  556. });
  557. };
  558. })(this));
  559. };
  560. Command.prototype.run2 = function(cb) {
  561. var esc, retry, ___iced_passed_deferral, __iced_deferrals, __iced_k;
  562. __iced_k = __iced_k_noop;
  563. ___iced_passed_deferral = iced.findDeferral(arguments);
  564. esc = make_esc(cb, "Join::run");
  565. retry = true;
  566. (function(_this) {
  567. return (function(__iced_k) {
  568. __iced_deferrals = new iced.Deferrals(__iced_k, {
  569. parent: ___iced_passed_deferral,
  570. filename: "/home/jacko/node-client/src/command/join.iced",
  571. funcname: "Command.run2"
  572. });
  573. _this.check_registered(esc(__iced_deferrals.defer({
  574. lineno: 219
  575. })));
  576. __iced_deferrals._fulfill();
  577. });
  578. })(this)((function(_this) {
  579. return function() {
  580. (function(__iced_k) {
  581. var _results, _while;
  582. _results = [];
  583. _while = function(__iced_k) {
  584. var _break, _continue, _next;
  585. _break = function() {
  586. return __iced_k(_results);
  587. };
  588. _continue = function() {
  589. return iced.trampoline(function() {
  590. return _while(__iced_k);
  591. });
  592. };
  593. _next = function(__iced_next_arg) {
  594. _results.push(__iced_next_arg);
  595. return _continue();
  596. };
  597. if (!retry) {
  598. return _break();
  599. } else {
  600. (function(__iced_k) {
  601. __iced_deferrals = new iced.Deferrals(__iced_k, {
  602. parent: ___iced_passed_deferral,
  603. filename: "/home/jacko/node-client/src/command/join.iced",
  604. funcname: "Command.run2"
  605. });
  606. _this.prompt(esc(__iced_deferrals.defer({
  607. lineno: 221
  608. })));
  609. __iced_deferrals._fulfill();
  610. })(function() {
  611. (function(__iced_k) {
  612. __iced_deferrals = new iced.Deferrals(__iced_k, {
  613. parent: ___iced_passed_deferral,
  614. filename: "/home/jacko/node-client/src/command/join.iced",
  615. funcname: "Command.run2"
  616. });
  617. _this.gen_pwh(esc(__iced_deferrals.defer({
  618. lineno: 222
  619. })));
  620. __iced_deferrals._fulfill();
  621. })(function() {
  622. (function(__iced_k) {
  623. __iced_deferrals = new iced.Deferrals(__iced_k, {
  624. parent: ___iced_passed_deferral,
  625. filename: "/home/jacko/node-client/src/command/join.iced",
  626. funcname: "Command.run2"
  627. });
  628. _this.post(esc(__iced_deferrals.defer({
  629. assign_fn: (function() {
  630. return function() {
  631. return retry = arguments[0];
  632. };
  633. })(),
  634. lineno: 223
  635. })));
  636. __iced_deferrals._fulfill();
  637. })(_next);
  638. });
  639. });
  640. }
  641. };
  642. _while(__iced_k);
  643. })(function() {
  644. (function(__iced_k) {
  645. __iced_deferrals = new iced.Deferrals(__iced_k, {
  646. parent: ___iced_passed_deferral,
  647. filename: "/home/jacko/node-client/src/command/join.iced",
  648. funcname: "Command.run2"
  649. });
  650. _this.write_out(esc(__iced_deferrals.defer({
  651. lineno: 224
  652. })));
  653. __iced_deferrals._fulfill();
  654. })(function() {
  655. log.info("Success! You are now signed up.");
  656. log.console.log("\nWelcome to keybase.io! You now need to associate a public key with your\naccount. If you have a key already then:\n\n keybase push <key-id> # if you know the ID of the key --- OR ---\n keybase push # to select from a menu\n\nIf you need a public key, we'll happily generate one for you:\n\n keybase gen --push # Generate a new key and push public part to server\n\nEnjoy!");
  657. return cb(null);
  658. });
  659. });
  660. };
  661. })(this));
  662. };
  663. return Command;
  664. })(Base);
  665. }).call(this);