VimUnDoAN p ovC߫ >0V uW)}_W:5_ W<5_ WI 'use strict';5_WVconst 5_WV5_ WZ 'use strict';5_Waconst api = require('./');5_ Wh5_ Wi5_ Wr5_ Wconst api = require('./');5_ Wconst fs = require('mz/fs');5_  Wfs.readAuthToken(5_ W 5_Wapi.5_W 5_W .then(token => {5_ W  token => {},5_ W  token => { },5_ W  err => {5_ FWconst fs = require('mz/fs');5_ 5 FW   5_ : FW G console.log('Could not read the Access token from ~/.appreciate5_ : FW : console.log('Could not read the Access token from 5_  FW H console.log('Could not read the Access token from ', tokenFile);5_  FW E console.('Could not read the Access token from ', tokenFile);5_ FW  console.5_& FW & console.error('Error: ', err);5_* FW8 console.error('Please generate an access token f5_? FW? console.error('Please generate an Github access token f5_ > FW s console.error('Please generate an Github access token using the following URL and place it in ', tokenFile)5_! L FW'L 'using the following URL and place it in ', tokenFile)5_ "! FW< console.error('\n\t');5_!#"m FW?m console.error('\n\thttps://help.github.com/articles/creating-an-access-token-for-command-line-use/');5_"$# FWF5_#%$ FWF5_$&% FWIfindNodeModulesOnGithub(5_%'& FWJ }5_&(' FWN  5_')("FWY '// TODO: No command line arguments yet.5_(*) FWe  token => { },5_)+* FWf  token => { 5_*,+ FW~  .then(data => {5_+-,(FW ) return data.toString('utf8').5_,.-FW ( return data.toString('utf8')5_-/.3FW 3 return JSON.parse(data.toString('utf8')5_.0/ FW 5 return JSON.parse(data.toString('utf8'));5_/10 FW / JSON.parse(data.toString('utf8'));5_021 FW }5_132 FW  .then(data => {5_243 FW< let pkgJSON = JSON.parse(data.toString('utf8'));5_354 FW }, 5_465FW }, 5_576FW err => {5_687FW% console.log('could no5_798%FW% console.log('Could no5_8:9'FWF console.log('Could not find package.json in the curren5_9;:'FWB console.log('Could not package.json in the curren5_:<;FFWF console.log('Could not read package.json in the curren5_;=<#FW + console.log('Error: ', err)5_<>=FW & console.error('Error: ', err);5_=?>;FW J console.error('Could not read the Access token from ', tokenFile);5_>@?>FW M 'using the following URL and place it in ', tokenFile);5_?A@FW Q console.log('Could not read package.json in the current folder.')5_@BAFW N console.('Could not read package.json in the current folder.')5_ACBFW * console.log('Error:', err)5_BDCFW ' console.('Error:', err)5_CED,FW , console.error('Error:', err)5_DFEFWfconst api = require('./');5_EGFFWf  5_FHG FWgC console.error('Please execute this program in your  },   token => { 5_GIHBFW!B console.error('Please execute this program in your5_HJIZFW!Z console.error('Please execute this program in your Node project folder.');5_IKJ@FW"@ let pkgJSON = JSON.parse(data.toString('utf8'));5_JLK@FW#@ let pkgJSON = JSON.parse(data.toString('utf8'));5_KML*FW$1 let dependencies = api.getDirPath5_LNM*FW$* let dependencies = api.get5_MONGFW$G let dependencies = api.getProjectDependencies(pkgJSON);5_NPO1FWU%1const expandHomeDir = require('expand-home-dir');5_OQPFWWconst 5_PRQFW process.exit(1);5_QSR" FW!" process.exit(1);5_RTSFW let 5_SUTFW# let5_TVUFW# let 5_UWV@FW#@ let githubInfos = api.findNodeModulesOnGithub();5_VXWF!v!W$@ let githubInfos = api.findNodeModulesOnGithub();5_WYXF!v!W$. api.findNodeModulesOnGithub();5_XZYF!v!W5_Y[ZF!v!W5_Z\[ZF!v!W"Z console.error('Please execute this program in your Node project folder.');5_[]\ F!v!W# );5_\^]3F!v!W#5 return api.findNodeModulesOnGithub();5_]_^F!v!W# ).then5_^`_F!v!W$ ).then(githubInfos => {5__a`F!v!W consol5_`baF!v!W$ ).then(githubInfos => {5_acb% F!v!W&% githubInfo.forEach(x => {5_bdc"F!v!W) (5_ced>#F!v!W))> console.error(x.moduleName, ':', x.error);5_dfe$F!v!W+!* }5_egf&F!v!W05_fhg%F!v!W0 5_gih$F!v!Wi !* }5_hji&FvW ,#// TODO: No command line arguments.5_ikj&FvW  ,// No command line arguments.5_jlkS&FvW,S console.error('Could not read package.json in the current folder.')5_kml,&FvW,, console.error('Error:', err)5_lnm&FvW,% githubInfo.forEach(x => {5_mqn I&FvW !,Z console.log(x.moduleName, ':', x.githubInfo.user + '/' + githubInfo.repo);5_nroq &FvW , token => {5_qsr &FvW  , => {5_rts&FvW,#!/usr/bin/env node 'use strict';const fs = require('mz/fs');1const expandHomeDir = require('expand-home-dir');const api = require('./');$// No command line arguments so far.api.readAuthToken().then( () => {% fs.readFile('./package.json') .then( data => {@ let pkgJSON = JSON.parse(data.toString('utf8'));G let dependencies = api.getProjectDependencies(pkgJSON);A return api.findNodeModulesOnGithub(dependencies); }, err => {T console.error('Could not read package.json in the current folder.');- console.error('Error:', err);Z console.error('Please execute this program in your Node project folder.');, return Promise.reject(null); } ).then(githubInfos => {& githubInfos.forEach(x => { if (x.error) {> console.error(x.moduleName, ':', x.error); return; }\ console.log(x.moduleName, ':', x.githubInfo.user + '/' + x.githubInfo.repo); }); }); }, err => {9 const tokenFile = expandHomeDir('~/.appreciate');I console.error('Could not read the Access token from', tokenFile);% console.error('Error:', err);A console.error('Please generate an Github access token ' +L 'using the following URL and place it in', tokenFile);m console.error('\n\thttps://help.github.com/articles/creating-an-access-token-for-command-line-use/'); });5_sut&FvW,const api = require('./');5_tvu'F  vWconst chalk = require('chalk');5_uwv&FvW,,5_vxw'F  vW-const chalk = require('chalk');5_wyx"(F  vW.> console.error(x.moduleName, ':', x.error);5_xzy=(F  vW.M console.error(chalk.red.bold(x.moduleName, ':', x.error);5_y{z"(F  vW!#.\ console.log(x.moduleName, ':', x.githubInfo.user + '/' + x.githubInfo.repo);5_z|{""(F  vW!#.k console.log(chalk.red.bold(x.moduleName, ':', x.githubInfo.user + '/' + x.githubInfo.repo);5_{}|""(F  vW!#.h console.log(chalk..bold(x.moduleName, ':', x.githubInfo.user + '/' + x.githubInfo.repo);5_|~}"9(F  vW!#.m console.log(chalk.green.bold(x.moduleName, ':', x.githubInfo.user + '/' + x.githubInfo.repo);5_}~+(F  vW.N console.error(chalk.red.bold(x.moduleName), ':', x.error);5_~"'(F  vW!#.n console.log(chalk.green.bold(x.moduleName), ':', x.githubInfo.user + '/' + x.githubInfo.repo);5_<(F  vW.I console.error(chalk.red(x.moduleName), ':', x.error);5_?(F  vW.K console.error(chalk.red(x.moduleName), '\t:', x.error);5_"8(F  vW%!#.i console.log(chalk.green(x.moduleName), ':', x.githubInfo.user + '/' + x.githubInfo.repo);5_";(F  vW&!#.k console.log(chalk.green(x.moduleName), '\t:', x.githubInfo.user + '/' + x.githubInfo.repo);5_<(F  vW-.M console.error(chalk.red(x.moduleName), '\t:\t', x.error);5_"8(F  vW0!#.m console.log(chalk.green(x.moduleName), '\t:\t', x.githubInfo.user + '/' + x.githubInfo.repo);5_"=(F  vW3!#.o console.log(chalk.green(x.moduleName), '\t\t:\t', x.githubInfo.user + '/' + x.githubInfo.repo);5_A(F  vW5.O console.error(chalk.red(x.moduleName), '\t\t:\t', x.error);5_>(F  vW>.M console.error(chalk.red(x.moduleName), '\t\t:', x.error);5_":(F  vW@!#.m console.log(chalk.green(x.moduleName), '\t\t:', x.githubInfo.user + '/' + x.githubInfo.repo);5_(F  vWV /  .5_;)F  vWf /< console.info(chalk.grey('Reading package.json ...');5_)F  vWq /= console.info(chalk.grey('Reading package.json ...'));5_)F  vWq /8 console.info(.grey('Reading package.json ...'));5_)F  vWr /3 console.info(('Reading package.json ...'));5_/)F  vWs /2 console.info('Reading package.json ...'));5_ )F  vW! / () => {5_ )F  vW! / ) => {5_ )F  vW! / => {5_)F  vW!#/ ).then(githubInfos => {5_*F  vW!10 ).then(githubInfos => {5_*F  vW!10 ).then( => {5_(*F  vW!40( areAppreciated(token, github5_/*F  vW!800 areAppreciated(token, moduleInfos) {5_.*F  vW!80/ areAppreciated(token, moduleInfos) 5_.*F  vW!90. areAppreciated(token, moduleInfos)5_ *F  vW!;03 areAppreciated(token, moduleInfos).then5_:*F  vW!=0: return areAppreciated(token, moduleInfos).then5_5*F  vW!H05 return areAppreciated(token, moduleInfos)5_ +F  vW!S 1& githubInfos.forEach(x => {5_ +F  vW!T 1 .forEach(x => {5_%i+F  vW!$&1k console.log(chalk.green(x.moduleName), '\t:', x.githubInfo.user + '/' + x.githubInfo.repo);5_!(+F  vW! "1K console.error(chalk.red(x.moduleName), '\t:', x.error);5_!(+F  vW! "1H console.error(chalk.(x.moduleName), '\t:', x.error);5_!(+F  vW! "1N console.error(chalk.yellow(x.moduleName), '\t:', x.error);5_!(+F  vW! "1H console.error(chalk.(x.moduleName), '\t:', x.error);5_%*+F  vW!$&2 $&15_&,F  vW!%'2m console.log(chalk.green(x.moduleName), '\t:', x.githubInfo.user + '/' + x.githubInfo.repo, );5_&q,F  vW!%(2q console.log(chalk.green(x.moduleName), '\t:', x.githubInfo.user + '/' + x.githubInfo.repo, );5_&o-F  vW!%'3q console.log(chalk.green(x.moduleName), '\t:', x.githubInfo.user + '/' + x.githubInfo.repo, );5_'-F  vW!&)3 }5_'.F  vW!&)4 } else {5_(A/F&B&~vW!'*5B console.log(chalk.orange(x.moduleName), '\t:' ()55_)0F&B&~vW!()5_(s/F&B&~vW!')5~ console.log(chalk.orange(x.moduleName), '\t:' x.githubInfo.user + '/' + x.githubInfo.repo, 'is starred!');5_%/F&B&~vW!$&6 $&55_'B0F'B'lvlW!&(6~ console.log(chalk.green(x.moduleName), '\t:', x.githubInfo.user + '/' + x.githubInfo.repo, 'is starred!');5_% 0F'B'lvlW!$&6! let githubName = %&65_%L0F'B'lvlW!$&6L let githubName = x.githubInfo.user + '/' + x.githubInfo.repo5_'B0F'B'lvlW"&(6S console.log(chalk.green(x.moduleName), '\t:', , 'is starred!');5_)B0F)B)lvlW"(*6 console.log(chalk.orange(x.moduleName), '\t:' x.githubInfo.user + '/' + x.githubInfo.repo, 'is not starred!');5_)B0F)B)lvlW"(*6W console.log(chalk.orange(x.moduleName), '\t:' , 'is not starred!');5_)A0F)B)lvlW"(*6a console.log(chalk.orange(x.moduleName), '\t:' githubName, 'is not starred!');5_, 0F)B)lvlW"++-6 });5_, 0F)B)lvlW"++.6 })5_- 1F)B)lvlW"/,.8 ,.75_2F)B)lvlW"H86 return areAppreciated(token, moduleInfos);5_)&2F)B)lvlW%(*8b console.log(chalk.orange(x.moduleName), '\t:', githubName, 'is not starred!');5_)&2F)B)lvlW%(*8\ console.log(chalk.(x.moduleName), '\t:', githubName, 'is not starred!');5_2FWZ8 ).then(moduleInfos => {5_3FW]9const fs = require('mz/fs');5_4FWw: ).then(moduleInfos => {5_#5FW;# const tasks = new Listr5_/5FW;3 const tasks = new Listr(moduleInfos => 5_/5FW ;/ const tasks = new Listr(moduleInfos5_C6FW!<C const tasks = new Listr(moduleInfos.map(moduleInfo => {5_8FW!> return {5_,9FW+,M let githubName = x.githubInfo.user + '/' + x.githubInfo.repo;5_8FW >>5_49FW?C const tasks = new Listr(moduleInfos.map(moduleInfo => {5_49FW?9 const tasks = new Listr(moduleInfos.map( => {5_!9FW "?5 title: moduleInfo.githubInfo.repo5_!9FW #? title: 5_" "W!#@. task: () => isAppreciated(5_"2"W !$@2 task: () => api.isAppreciated(5_" "W!$A; task: () => api.isAppreciated(token, x)5_#"W"$B0 }api.isAppreciated(token, x)5_"!"W!$B! task: () => {5_#"W"$C#$C5_#"W"$Capi.isAppreciated(token, x)5_#"W2"$C api.isAppreciated(token, x)5_#"W3"$C# api.isAppreciated(token, x)5_# "W3"$C' api.isAppreciated(token, x)5_#"W3"$C+ api.isAppreciated(token, x)5_#"W5"$C/ api.isAppreciated(token, x)5_#:"W9"%C: return api.isAppreciated(token, x)5_#:"W^"&D: return api.isAppreciated(token, x)5_$&"Wq#%F5 .then(moduleInfo => {5_$&"Wt#%F+ .then( => {5_$6"Wx#'F6 .then(starredInfo => {5_%2"W$'H2 if (x.error) {5_'%"W&*I% }5_("W'(5_("W'(5_'%"W&+I% }5_)4"W(+L4 if (x.starred) {5_)4"W(+M4 if (x.starred) {5_<"<@vW;=N if (x.starred) {] console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {b console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); } });5_'%"<<vW&*I% }5_)">>vW(/K)*K5_)")-vW(.P if (x.starred) {] console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {b console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); }5_)")-vW(.P$ if (x.starred) {a console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {f console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); }5_)")-vW(.P( if (x.starred) {e console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {j console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); }5_)")-vW(.P, if (x.starred) {i console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');$ } else {n console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); }5_) ")-vW(.P0 if (x.starred) {m console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');( } else {r console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');! }5_.".3%vW-/P4 if (x.starred) {5 console.log('% }# });5_ #$..%vW Jconst api = require('./');5_% &$% 3vW$&M! task: () => {: return api.isAppreciated(token, x)6 .then(starredInfo => {2 if (x.error) {G return Promise.reject(x.error);% }4 if (x.starred) {q console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');, } else {v console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');% }# }); }5_ &$% %4vW ?&function makeTask(token, moduleInfo) {5_ $& &4vW @ @5_ $ vW N{: return api.isAppreciated(token, x)6 .then(starredInfo => {2 if (x.error) {G return Promise.reject(x.error);% }4 if (x.starred) {q console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');, } else {v console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');% }# }); }5_ $ vW N{6 return api.isAppreciated(token, x)2 .then(starredInfo => {. if (x.error) {C return Promise.reject(x.error);! }0 if (x.starred) {m console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');( } else {r console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');! } }); }5_ $ vW N{2 return api.isAppreciated(token, x). .then(starredInfo => {* if (x.error) {? return Promise.reject(x.error); }, if (x.starred) {i console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');$ } else {n console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); } }); }5_ $ vW N{. return api.isAppreciated(token, x)* .then(starredInfo => {& if (x.error) {; return Promise.reject(x.error); }( if (x.starred) {e console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {j console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); } }); }5_ $ vW N{* return api.isAppreciated(token, x)& .then(starredInfo => {" if (x.error) {7 return Promise.reject(x.error); }$ if (x.starred) {a console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {f console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); } }); }5_ $ vW {5_$ vW}5_ $ vW L " .then(starredInfo => { if (x.error) {3 return Promise.reject(x.error); } if (x.starred) {] console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {b console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); } });5_ $ vW L  .then(starredInfo => { if (x.error) {/ return Promise.reject(x.error); } if (x.starred) {Y console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {^ console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); } });5_ $ vW L& return api.isAppreciated(token, x) .then(starredInfo => {5_ &$ 4vW K= return api.isAppreciated(token, x) .then(starredInfo => {5_ ;$ 4vW K< return api.isAppreciated(token, x).then(starredInfo => {5_$ v W L  if (x.error) {+ return Promise.reject(x.error); } if (x.starred) {U console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); } else {Z console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!'); }5_$ v WL } });5_$ v WK } });5_ $ v WL });5_$ v W5_ $ v W  L; return api.isAppreciated(token, x).then(starredInfo => {5_$  v W K } );5_$  v WJ } 5_ $  v W! return '5_$  v W"5_Y$  v W#JY console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_!$  v W(KK5_$  v W)L" return 'Starred!';5_ $  v W)L return '';5_  $  v W,13 task: () =>  } 5_   2$  v W814L task: () =>5_   2!$  v W:14M! task: () => {5_   5$  v WA455_  5$  v WB46M }5_ 7$  v WE675_7$7?vWM68L : return api.areAppreciated(token, moduleInfos);! }).then(starredInfos => {' starredInfos.forEach(x => { if (x.error) {K console.error(chalk.red(x.moduleName), '\t:', x.error); return; } }); }).catch(err => {5_6$77vWN59C });5_6$99vWV57E });5_6$99vWW59E }));5_8$;;vWy79G return 5_9$;;vW{895_9$::vW|895_."$99vW-/E: const tasks = new Listr(moduleInfos.map(x => {5_$99vWE });5_ $ v W E  if (x.error) {/ return Promise.reject(x.error); } if (x.starred) {Y console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');" return 'Starred!'; } else {^ console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');& return 'Not starred!'; }5_30$ v W24E2 return makeTask(token, x);5_ #$ v W  E&function makeTask(token, moduleInfo) {5_ $$ v W E< return api.isAppreciated(token, x).then(starredInfo => {5_ $$ v W E; return api.isAppreciated(token, ).then(starredInfo => {5_ 5$ v W EE return api.isAppreciated(token, moduleInfo).then(starredInfo => {5_ 5$ v W! E: return api.isAppreciated(token, moduleInfo).then( => {5_  $ v WE } else {5_! $vWEZ console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');" return 'Not starred!';5_ "!$vWE5_!#"$vWF }5_"$#$vWF 5_#%$$vW" 5_$&%6$vWa#57E }));5_%'&$vWfEconst ListR = require('listr');5_&('$vWnconst ListR = require('listr');5_')(-$vWw,0E ).then(moduleInfos => {5_(*)./$vW-0G/ const spinners = new Multispinner([5_)+*..$vW-/H/ const spinners = new Multispinner([5_*,+0 $vW/1H ]);5_+-,. $vW-/H. const spinners = new Multispinner( moduleInfos5_,.-..$vW-/G: const spinners = new Multispinner( moduleInfos5_-/..9$vW-0G9 const spinners = new Multispinner(moduleInfos5_.0//$vW.0H });5_/10/ $vW.0H }) );5_021.D$vW-0GD const spinners = new Multispinner(moduleInfos.map(x => {5_132-$vW(,/H ).then(moduleInfos => {5_243. $vW,-. moduleIfo5_354. $vW,-/I -/H5_465 .vW8 Iconst api = require('./');5_576 1vW> M  L5_687 22vWV M4 return moduleInfo.user + '/' + moduleInfo.repo);5_7982 2vW14M moduleInfos.forEach(5_8:922vW13O 13N5_9;:3&3vW25O& moduleInfos.forEach(x => {5_:<;6.3vW57PD const spinners = new Multispinner(moduleInfos.map(x => { return  }));5_;=<6.3vW57N0 const spinners = new Multispinner();5_<>=793vW68N5_=?>4-3vW36O= spinners[getGithubName(x)] = getGithubName(x)5_>@?5$3vW47P$ getGithubName(x)5_?A@53vW46Q$ getGithubName(x)5_@BA53vW46Q5_ACB73vW68R }5_BDC53vW455_CED53vW46R 46Q5_DFE6*3vW58R* text: getGithubName(x)5_EGF73vW67 current: 5_FHG6+3vW57R+ text: getGithubName(x),5_GIH23vW13R let spinners = {};5_HJI23vW13R let spinner = {};5_IKJ23vW 13R let spinners = {};5_JLK23vW 13R let spinner = {};5_KML43vW 35R. spinners[getGithubName(x)] = {5_LNM43vW 35R- spinner[getGithubName(x)] = {5_MON953vW8:RY const spinners = new Multispinner(spinners, {clear: false, autoStart: true});5_NPO953vW8:RX const spinners = new Multispinner(spinner, {clear: false, autoStart: true});5_OQP9\3vW8;R\ const spinners = new Multispinner(spinnerInfo, {clear: false, autoStart: true});5_PRQ:3vW9:5_QSR9\3vW8<R\ const spinners = new Multispinner(spinnerInfo, {clear: false, autoStart: true});5_RTS#3vWWT2function makeTask(token, moduleInfo, githubName) {5_SUT#3vW^T&function makeTask(token, moduleInfo) {5_TVU3vWeT+ return Promise.reject(x.error);5_UWV3vWfT return 5_VXW3vWhU T5_WYX4vWpU return mul5_XZY4vWtU5_Y[Z5vWv5_Z\[$4vWxU$ return multiSpinners[get5_[]\ 4vWUU console.log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_\^] 4vWUN .log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_]_^ 4vWUM log(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_^`_ 4vWUL og(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5__a` 4vWUK g(chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_`ba 4  v WUJ (chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_acb4  v WUQ return (chalk.green(x.moduleName), '\t:', githubName, 'is starred!');5_bdc4PvPWUP return chalk.green(x.moduleName), '\t:', githubName, 'is starred!'); return 'Starred!';5_ced3PvPWT1 return return 'Starred!';5_dfe4PvPW return 'Starred!';5_egf3PvPWT return T5_fhg3PvPWT return '⋆';k5_gih3PvPWV console.log(chalk.yellow(x.moduleName), '\t:', githubName, 'is not starred!');5_hji2PvPWS return 'Not starred!';5_ikj2PvPWS return '';S5_jlk2PvPWS if (x.starred) {5_kml2PvPWS f (x.starred) {5_lnm2PvPWS (x.starred) {5_mon2PvPWS (x.starred) {5_npo2PvPWS return (x.starred) {5_oqp2PvPWS return x.starred) {5_psq2PvPWS return x.starred ?  return '⋆';5_qtrs1"_vPWR( return x.starred ? return '⋆';5_sut1"_vPWR' return x.starred ? eturn '⋆';5_tvu1"_vPWR& return x.starred ? turn '⋆';5_uwv1"_vPWR% return x.starred ? urn '⋆';5_vxw1"_vPWR$ return x.starred ? rn '⋆';5_wyx1"_vPWR# return x.starred ? n '⋆';5_xzy1"_vPWR" return x.starred ? '⋆';5_y{z1"_vPWR! return x.starred ? '⋆'; }5_z|{!0"_vPWQ# return x.starred ? '⋆'; }5_{}| /"_vPWP$ return x.starred ? '⋆'; } 5_|~}/"_vPWP return x.starred ? '⋆' return '✩';5_}~ ."_vPWO. return x.starred ? '⋆' return '✩';5_~ ."_vPW$O' return x.starred ? '⋆' '✩';5_;."_vPWO; return multiSpinners[githubName].error(x.error)5_ ."_vPWO< return multiSpinners[githubName].error(x.error);5_ ."_vPWO6 multiSpinners[githubName].error(x.error);5_."_vPWO) return x.starred ? '⋆' : '✩';5_."_vPWO# x.starred ? '⋆' : '✩';5_."_vPWO" x.starred ? '⋆' : '✩';5_8."_vPW%O8 multiSpinners.success(x.starred ? '⋆' : '✩';5_6."_vPW 57O moduleInfo5_6 ."_vPW 57O! moduleInfos.makeTask(5_6(."_vPW 57O( return moduleInfos.makeTask(5_6."_vPW 57O' return moduleInfos.makeTask5_6+."_vPW 57O+ return moduleInfos.map(makeTask5_7.7Av3W %68O : const tasks = new ListR(moduleInfos.map(x => {M let githubName = x.githubInfo.user + '/' + x.githubInfo.repo; return {& title: githubName,! task: () => {> return makeTask(token, x, githubName); } };# }), {collapse: false}); return tasks.run();5_7.77v3W %&67 return tasks.run();5_5.77v3W '455_5#.66v3W +46B- return moduleInfos.map(makeTask);5_59.66v3W .46B; return moduleInfos.map(x => { return makeTask);5_5M.66v3W 846BQ return moduleInfos.map(x => { return makeTask(token, x, spinners) });5_5.66v3W <46BR return moduleInfos.map(x => { return makeTask(token, x, spinners); });5_5.66v3W =46BS return PmoduleInfos.map(x => { return makeTask(token, x, spinners); });5_5].66v3W A'46B^ return Promise.all(moduleInfos.map(x => { return makeTask(token, x, spinners); });5_55.66v3W U47B_ return Promise.all(moduleInfos.map(x => { return makeTask(token, x, spinners); }));5_65.77v3W W58C9 return makeTask(token, x, spinners); }));5_6.88v3W X(575 return makeTask(token, x, spinners); 5_/0.88v3W .0D1 spinnerInfo[getGithubName(x)] = {5_0.88v3W /0( state: 'incomplete',5_/.77v3W .0C0 spinnerInfo[getGithubName(x)] = * text: getGithubName(x)5_/0.66v3W .0BF spinnerInfo[getGithubName(x)] = text: getGithubName(x)5_/0.66v3W .0BE spinnerInfo[getGithubName(x)] = ext: getGithubName(x)5_/0.66v3W .0BD spinnerInfo[getGithubName(x)] = xt: getGithubName(x)5_/0.66v3W .0BC spinnerInfo[getGithubName(x)] = t: getGithubName(x)5_/0.66v3W .0BB spinnerInfo[getGithubName(x)] = : getGithubName(x)5_/0.66v3W .0BA spinnerInfo[getGithubName(x)] = getGithubName(x)5_0.66v3W )/0 };5_ .55v3W  A3 return moduleInfo.user + '/' + moduleInfo.repo;5_ 9.55v3W * A> return moduleInfo.githubInfo.user + '/' + moduleInfo.repo;5_.55v3W A });5_.55v3W A })5_.55v3W A })5_5.55v3W 3A; return api.isAppreciated(token, moduleInfo).then(x => {5_ / v W 5B if (x.error) {5 multiSpinners[githubName].error(x.error); }9 multiSpinners.success(x.starred ? '⋆' : '✩'); }5_ / v W 6B }5_ 1 v W <D }5_2 v W =E err => {5_"3 v W G F5_4 v W G9 multiSpinners[githubName].error(x.error);5_24 v W GB multiSpinners.spinners[githubName].error(x.error);5_55 v W H5 multiSpinners.spinners[githubName] = 5_5 v W H$ .error(x.error);5_5 v W H .error(x.error);5_25 v W H= multiSpinners.spinners[githubName] = x.error;5_:5 v W HB multiSpinners.spinners[githubName].text = x.error;5_$5 v W H- multiSpinners.error(x.error);5_$5 v W H& multiSpinners.error();5_5 v W H multiSpinners.5_H5 v W HU multiSpinners.spinners[githubName].text = githubName + '/' + x.error;5_I5 v W HU multiSpinners.spinners[githubName].text = githubName + ':' + x.error;5_:5:VvW HV multiSpinners.spinners[githubName].text = githubName + ': ' + x.error;0 multiSpinners.error(githubName);5_65:VvW H6 multiSpinners.spinners[githubName].text = 5_45:VvW HC multiSpinners.spinners[githubName].text = githubName + 5_75:VvW !HD multiSpinners.spinners[githubName].text += githubName + 5_65":v6W &H7 multiSpinners.spinners[githubName].text += H5_75":v6W (HP multiSpinners.spinners[githubName].text += x.starred ? '⋆' : '✩'5_M5":v6W -HV multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆' : '✩'5_^5":v6W 0H_ multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆ Starred!' : '✩'5_j5":v6W 3Hl multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆ Starred!' : '✩ Not starred.'5_j5":v6W 4Hk multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆ Starred!' : '✩ Not starred'5_U5":v6W 7Hl multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆ Starred!' : '✩ Not starred!'5_"5":v6W ?H= multiSpinners.success(x.starred ? '⋆' : '✩');5_"5":v6W ?H$ multiSpinners.success();5_$5":v6W BI H5_ 6":v6W UI% multiSpinners.error(err);5_ 6":v6W V+I" multiSpinners.error();5_G6":v6W `,IL multiSpinners.spinners[githubName].text = githubName + ': ' err;5_l6":v6W xIl multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆ Starred.' : '✩ Not starred!'5_J6":v6W Im multiSpinners.spinners[githubName].text += ' ' + x.starred ? '⋆ Starred.' : '✩ Not starred!';5_J6":v6W -Ij multiSpinners.spinners[githubName].text += ' ' + x.starred ? ' Starred.' : '✩ Not starred!';5_=6":v6W Ik multiSpinners.spinners[githubName].text += ' ' + x.starred ? '* Starred.' : '✩ Not starred!';5_k6":v6W .Il multiSpinners.spinners[githubName].text += ' ' + (x.starred ? '* Starred.' : '✩ Not starred!';5_86":v6W /Im multiSpinners.spinners[githubName].text += ' ' + (x.starred ? '* Starred.' : '✩ Not starred!');5_?6":v6W Io multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? '* Starred.' : '✩ Not starred!');5_L6":v6W Io multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? '* Starred.' : '✩ Not starred!');5_d6":v6W I{ multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.green('* Starred.' : '✩ Not starred!');5_h6":v6W I| multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.green('* Starred.') : '✩ Not starred!');5_6":v6W 0I multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.green('* Starred.') : chalk.yellow('✩ Not starred!');5_@6":v6W 1IV multiSpinners.spinners[githubName].text = githubname + ': ' + x.error;5_86":v6W IV multiSpinners.spinners[githubName].text = githubName + ': ' + x.error;5_;6":v6W IW multiSpinners.spinners[githubName].text += githubName + ': ' + x.error;5_;6":v6W IM multiSpinners.spinners[githubName].text += + ': ' + x.error;5_;6":v6W IL multiSpinners.spinners[githubName].text += + ': ' + x.error;5_;6":v6W IK multiSpinners.spinners[githubName].text += ': ' + x.error;5_<6":v6W 2IJ multiSpinners.spinners[githubName].text += ': ' + x.error;5_I6":v6W IO multiSpinners.spinners[githubName].text = githubName + ': ' + err;5_7@6":v6W 368I@ spinnerInfo[getGithubName(x)] = getGithubName(x)5_Y6":v6W EI multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.green('* Starred.') : chalk.yellow('✩ Not starred!'));I5_\6":v6W F4I multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.green('★* Starred.') : chalk.yellow('✩ Not starred!'));5_R6":v6W hI multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.green('★ Starred.') : chalk.yellow('✩ Not starred!'));5_R6":v6W h5I multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.('★ Starred.') : chalk.yellow('✩ Not starred!'));5_6":v6W  Iconst chalk = require('chalk');5_27":v6W J5function makeTask(token, moduleInfo, multiSpinners) {5_67":v6W 57J! let spinnerInfo = {};5_67":v6W 57J let spinner = {};5_67":v6W 57J" let spinnerNames = {};5_67":v6W 57J let spinnerNames = & moduleInfos.forEach(x => {5_6+62":v6W 57I9 let spinnerNames = moduleInfos.forEach(x => {5_6+62":v6W 57I2 let spinnerNames = moduleInfos.(x => {5_6.62":v6W 57I5 let spinnerNames = moduleInfos.map(x => {A spinnerInfo[getGithubName(x)] = getGithubName(x);5_6662":v6W "57Hg let spinnerNames = moduleInfos.map(x => { spinnerInfo[getGithubName(x)] = getGithubName(x);5_6662":v6W "57H\ let spinnerNames = moduleInfos.map(x => { [getGithubName(x)] = getGithubName(x);5_6662":v6W #57HN let spinnerNames = moduleInfos.map(x => { (x)] = getGithubName(x);5_6662":v6W #57HL let spinnerNames = moduleInfos.map(x => { )] = getGithubName(x);5_6662":v6W #57HK let spinnerNames = moduleInfos.map(x => { ] = getGithubName(x);5_6662":v6W #57HJ let spinnerNames = moduleInfos.map(x => { = getGithubName(x);5_6662":v6W #57HI let spinnerNames = moduleInfos.map(x => { = getGithubName(x);5_6662":v6W $57HH let spinnerNames = moduleInfos.map(x => { getGithubName(x);5_6662":v6W $57HG let spinnerNames = moduleInfos.map(x => { getGithubName(x);5_6N62":v6W &57HN let spinnerNames = moduleInfos.map(x => { return getGithubName(x);5_6R62":v6W '58HR let spinnerNames = moduleInfos.map(x => { return getGithubName(x); });5_762":v6W (675_7 62":v6W (67 });5_7 62":v6W )68G5_762":v6W *675_7.62":v6W +68G\ const spinners = new Multispinner(spinnerInfo, {clear: false, autoStart: true});5_7.62":v6W ,68GQ const spinners = new Multispinner(, {clear: false, autoStart: true});5_6R62":v6W .58GR let spinnerNames = moduleInfos.map(x => { return getGithubName(x); });5_762":v6W /675_6 62":v6W 057GR let spinnerNames = moduleInfos.map(x => { return getGithubName(x); });5_6 62":v6W 057GO spinnerNames = moduleInfos.map(x => { return getGithubName(x); });5_6T62":v6W 158GT const spinnerNames = moduleInfos.map(x => { return getGithubName(x); });5_:262":v6W k9;H4 return makeTask(token, x, spinners);5_ 9462":v6W m68:H5_  /62":v6W I/ let githubName = getGithubName(moduleInfo);5_   /72":v6W J/ let githubName = getGithubName(moduleInfo);5_   /82":v6W K/ let githubName = getGithubName(moduleInfo),5_   92":v6W L/ let githubName = getGithubName(moduleInfo);5_  92":v6W L, githubName = getGithubName(moduleInfo);5_ 92":v6W  let 5_82":v6W 5_72":v6W 5_62":v6W J I5_ 82":v6W K const 5_482":v6W K>function makeTask(token, moduleInfo, multiSpinners, padding) {5_482":v6W K7function makeTask(token, moduleInfo, multiSpinners, ) {5_82":v6W K const padding5_=82":v6W KK multiSpinners.spinners[githubName].text += ' : ' + x.error;5_=82":v6W KJ multiSpinners.spinners[githubName].text += ' ' + x.error;5_;82":v6W KI multiSpinners.spinners[githubName].text += ' ' + x.error;5_Q82":v6W KQ multiSpinners.spinners[githubName].text += leftPad(' ' + x.error;5_782":v6W K multiSpinners.spinners[githubName].text += ' : ' + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_782":v6W K multiSpinners.spinners[githubName].text += : ' + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_782":v6W K multiSpinners.spinners[githubName].text += : ' + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_782":v6W K multiSpinners.spinners[githubName].text += ' + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_782":v6W K multiSpinners.spinners[githubName].text += ' + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_ 782":v6W K multiSpinners.spinners[githubName].text += + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_! 782":v6W K multiSpinners.spinners[githubName].text += + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_ "!782":v6W K multiSpinners.spinners[githubName].text += (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_!#"782":v6W K multiSpinners.spinners[githubName].text += (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_"$#C82":v6W K[ multiSpinners.spinners[githubName].text += leftPad(' ' + x.error, padding);5_#%$C82":v6W KZ multiSpinners.spinners[githubName].text += leftPad( ' + x.error, padding);5_$&%C82":v6W KY multiSpinners.spinners[githubName].text += leftPad(' + x.error, padding);5_%'&C82":v6W KX multiSpinners.spinners[githubName].text += leftPad( + x.error, padding);5_&('C82":v6W KW multiSpinners.spinners[githubName].text += leftPad(+ x.error, padding);5_')(C82":v6W KV multiSpinners.spinners[githubName].text += leftPad( x.error, padding);5_(*)S82":v6W KU multiSpinners.spinners[githubName].text += leftPad(x.error, padding);5_)+*82":v6W K multiSpinners.spinners[githubName].text += leftPad(x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));5_*,+'82":v6W K( const padding = maxPad - githubName;5_+-,S82":v6W KY multiSpinners.spinners[githubName].text += leftPad(x.error, padding + 1);5_,.-82":v6W K multiSpinners.spinners[githubName].text += leftPad(x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'), padding + 1);5_-/.92":v6W L padding + 1);5_.0/92":v6W L! padding + 1);5_/1092":v6W L% padding + 1);5_02192":v6W L) padding + 1);5_132 92":v6W L- padding + 1);5_243$92":v6W L1 padding + 1);5_354(92":v6W L5 padding + 1);5_465,92":v6W L9 padding + 1);5_576092":v6W L= padding + 1);5_687492":v6W LA padding + 1);5_798892":v6W LE padding + 1);5_8:9<92":v6W LI padding + 1);5_9;:?92":v6W LM padding + 1);5_:>; 492":v6W !LN multiSpinners.spinners[githubName].text = githubName + ': ' + err;5_;?<> 792":v6W !LO multiSpinners.spinners[githubName].text += githubName + ': ' + err;5_>@? ?92":v6W !LW multiSpinners.spinners[githubName].text += leftPad(githubName + ': ' + err;5_?A@ ?92":v6W !LM multiSpinners.spinners[githubName].text += leftPad( + ': ' + err;5_@BA ?92":v6W !LL multiSpinners.spinners[githubName].text += leftPad(+ ': ' + err;5_ACB ?92":v6W !LK multiSpinners.spinners[githubName].text += leftPad( ': ' + err;5_BDC ?92":v6W !LJ multiSpinners.spinners[githubName].text += leftPad(': ' + err;5_CED ?92":v6W !LI multiSpinners.spinners[githubName].text += leftPad(: ' + err;5_DFE ?92":v6W !LH multiSpinners.spinners[githubName].text += leftPad( ' + err;5_EGF ?92":v6W !LG multiSpinners.spinners[githubName].text += leftPad(' + err;5_FHG ?92":v6W !LF multiSpinners.spinners[githubName].text += leftPad( + err;5_GIH ?92":v6W !LE multiSpinners.spinners[githubName].text += leftPad(+ err;5_HJI ?92":v6W !LD multiSpinners.spinners[githubName].text += leftPad( err;5_IKJ B92":v6W !LC multiSpinners.spinners[githubName].text += leftPad(err;5_JLK ?92":v6W !LN multiSpinners.spinners[githubName].text += leftPad(err, padding);;5_KML92":v6W7 multiSpinners.spinners[githubName].text += leftPad(x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'), 5_LNM92":v6W  L#const leftPad = require('leftPad');5_MON92":v6W 8 L"const leftPad = require('leftad');5_NPO:92":v6W9;L^ const padding = Math.max.apply(null, spinnerNames.map(x => { return x.length; }));5_OQP:92":v6W 9;LW const = Math.max.apply(null, spinnerNames.map(x => { return x.length; }));5_PRQ>492":v6W$=?L= return makeTask(token, x, spinners, padding);5_QSR>492":v6W$9=?L6 return makeTask(token, x, spinners, );5_RTS:.92":v6W?9<La const maxPadding = Math.max.apply(null, spinnerNames.map(x => { return x.length; }));5_SUT;92":v6W@:=MC null, spinnerNames.map(x => { return x.length; }));5_TVU<;92":v6WB:;>N= spinnerNames.map(x => { return x.length; }));5_UWV<(92":v6WU;>O; spinnerNames.map(x => { return x.length; })5_VXW=%92":v6WV<?P' return x.length; })5_WYX9892":v6W^8;QT const spinnerNames = moduleInfos.map(x => { return getGithubName(x); });5_XZY:)92":v6W_9<R, return getGithubName(x); });5_Y[Z;92":v6W`:=S });5_Z\[B92":v6WbADT );5_[]\ M92":v6Wl!UN multiSpinners.spinners[githubName].text += leftPad(err, padding);;5_\^]992":v6Wp;?A% return x.length; >@( spinnerNames.map(x => { 9;) return getGithubName(x); 8:8 const spinnerNames = moduleInfos.map(x => { 5_]_^F92":v6W<UL padding + 1);5_^`_92":v6W$const leftPad = require('left-pad');5__a`82":v6W Tconst chalk = require('chalk');5_`ba :2":v6W 5_acb 92":v6W 5_bdc 82":v6W T}5_ced;2":v6WWfunction makePadding(spaces) {5_dfe<2 " :v6WXfunction makePadding(spaces) {5_egf?2#"#:v6W 5_fhg>2""":v6W  return 5_gih&=2!"!:v6W Y& else if (spaces === 1) return ' ';5_hji%>2""":v6W Z% else if (spaces === 1) return ' '5_ikj?2#"#:v6W5_jlk>2""":v6WZ else return 5_kml >2""":v6W#Z& else if (spaces === 1) return ' ';5_lnm >2""":v6W#Z else if () return ' ';5_mon>2""":v6W3Z! else if (spaces ) return ' ';5_npo%>2""":v6W7Z) else if (spaces % 2 == 0) return ' ';5_oqp%>2""":v6W7Z( else if (spaces % 2 == 0) return ';5_prq%>2""":v6W7Z' else if (spaces % 2 == 0) return ';5_qsr%>2""":v6W8Z& else if (spaces % 2 == 0) return ;5_rts>2""":v6WBZ else return makePadding5_sut/>2""":v6WFZ0 else return makePadding(spaces - 1) + ' ';jk5_tvu.>2""":v6WF=Z/ else return makePadding(spaces - 1) + ' ';j5_uwv>2""":v6WUZ, const padding = maxPad - githubName + 1;5_vxw7>2""":v6WWZ8 const padding = makePadding(maxPad - githubName + 1;5_wyx;>2""":v6WZZU multiSpinners.spinners[githubName].text += leftPad(x.error, padding);5_xzy;>2""":v6W[ZN multiSpinners.spinners[githubName].text += (x.error, padding);5_y{zE>2""":v6W^ZX multiSpinners.spinners[githubName].text += padding + (x.error, padding);5_z|{L>2""":v6WaZW multiSpinners.spinners[githubName].text += padding + x.error, padding);5_{}| 7>2""":v6Wc!Z multiSpinners.spinners[githubName].text += leftPad(x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'),5_|~} 7>2""":v6Wd!Z multiSpinners.spinners[githubName].text += (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'),5_}~!?>2""":v6Wj "ZH padding);5_~ ?>2""":v6Wk!Z multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'),A );5_ =2!"!:v6Wk!Y multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'),);5_$7=2!"!:v6Wp#%YM multiSpinners.spinners[githubName].text += leftPad(err, padding);5_$7=2!"!:v6Wp#%YF multiSpinners.spinners[githubName].text += (err, padding);5_$A=2!"!:v6Wr#%YP multiSpinners.spinners[githubName].text += padding + (err, padding);5_$D=2!"!:v6Wt>#%YO multiSpinners.spinners[githubName].text += padding + err, padding);5_%,=2!"!.v6W$'Y, multiSpinners.error(githubName);5_!.>2!"!.v6W? #Z. multiSpinners.success(githubName);5_?2!"!.v6W[ if (spaces === 0) return '';5_@2""".v6W\ return '';5_A2#"#.v6W]W else if (spaces % 2 == 0) return makePadding(spaces / 2) + makePadding(spaces / 2);5_AB2$"$.v6W^A return makePadding(spaces / 2) + makePadding(spaces / 2);5_C2%"%.v6W_ } else if (spaces % 2 == 0) {5_B2$"$.v6W^ }. else return makePadding(spaces - 1) + ' ';5_ A2#"#.v6W]0 } else return makePadding(spaces - 1) + ' ';5_-B2$"$.v6W^- return makePadding(spaces - 1) + ' ';5_!C2%"%.v6W_! } else if (spaces % 2 == 0) {5_D2%v%W`A return makePadding(spaces / 2) + makePadding(spaces / 2);5_ D2%v%W` ch = `5_D2%v%W`* return + makePadding(spaces / 2);5_D2%v%W`- return ch + makePadding(spaces / 2);5_D2%v%W@` return ch + ;5_D2%v%WA`! } else if (spaces % 2 == 0) {5_MD2%v%WBLO` );5_N D2%v%W MN6 console.log('Max padding = ', maxPadding);5_D2%v%W'``5_ E2%v%W(a6 console.log('Max padding = ', maxPadding);5_E2%v%W(a2 console.log('Max padding = ', maxPadding);5_E2%v%W+. console.log('Max padding = ', maxPadding);5_3D2%v%W-C`9 const padding = makePadding(maxPad - githubName + 1);5_D2%v%W5D`$ ch = makePadding(spaces / 2)5_*D2%v%WGE`- return makePadding(spaces - 1) + ' ';5_*D2%v%WQF`- return makePadding(spaces - 1) + '-';5_5D2%v%Wl46`1 console.info('Reading package.json ...');5_5D2%v%WmH46` console.info('');5_D2%v%W` } else {5_D2%v%W }5_C2%v%W_- return makePadding(spaces - 1) + ' ';5_C2%v%W_5_D2%v%W` return ch + ch;5_*D2%v%WI`* const ch = makePadding(spaces / 2)5_Z>D2%v%WY[`I console.error('Could not read the Access token from', tokenFile);5_ZRD2%v%WJY[`T console.error('Could not read the Access token from', chalk.blue(tokenFile);5_[#D2%v%WKZ\`% console.error('Error:', err);5_[ D2%v%WZ\`4 console.error('Error:', err.message || err);5_[=D2%v%WLZ\`> console.error('Error:', chalk.red(err.message || err);5_^D2%v%W]_`m console.error('\n\thttps://help.github.com/articles/creating-an-access-token-for-command-line-use/');5_^xD2%v%WM]_`x console.error(chalk.blue('\n\thttps://help.github.com/articles/creating-an-access-token-for-command-line-use/');5_]AD2%v%W\^`L 'using the following URL and place it in', tokenFile);5_]VD2%v%WN\^`W 'using the following URL and place it in', chalk.blue(tokenFile);5_"0D2%v%Wy!$`0 multiSpinners.error(githubName);5_!EE2%v%W "aM multiSpinners.spinners[githubName].text += padding + x.error;5_!VE2%v%WO "aW multiSpinners.spinners[githubName].text += padding + chalk.red(x.error;5_E2v%W aconst chalk = require('chalk');5_,F2v%W b,const cliSpinners = require('cli-spinners');5_F2v%W b1const cliSpinners = require('cli-spinners').dots;5_F2v%WP b&const = require('cli-spinners').dots;5_T*F2v%WSUb@ return makeTask(token, x, spinners, maxPadding);5_T/F2v%WSUbE return makeTask(token, x, multispinners, maxPadding);5_QF2v%WPRb] const spinners = new Multispinner(spinnerNames, {clear: false, autoStart: true});5_QF2v%WPRbU const = new Multispinner(spinnerNames, {clear: false, autoStart: true});5_QAF2v%WPSbb const multiSpinners = new Multispinner(spinnerNames, {clear: false, autoStart: true});5_QF2v%WPRcA const multiSpinners = new Multispinner(spinnerNames, 1 {clear: false, autoStart: true});5_QBF2v%WPSbb const multiSpinners = new Multispinner(spinnerNames, {clear: false, autoStart: true});5_RF2v%WQTc0 clear: false, autoStart: true});5_SF2v%WRUd" autoStart: true});5_SF2v%WQRVe autoStart: true5_HF2v%W?RGJg });5_'yF2v%WV&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!'));'(h5_'|F2v%WVS&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('☆✩ Not starred!'));5_'|F2v%WWh#!/usr/bin/env node 'use strict';const fs = require('mz/fs');-const Multispinner = require('multispinner');1const expandHomeDir = require('expand-home-dir');const chalk = require('chalk');1const dotsSpinner = require('cli-spinners').dots;const api = require('./');$function getGithubName(moduleInfo) {I return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo;}function makePadding(spaces) { if (spaces === 0) { return '';" } else if (spaces % 2 === 0) {+ const ch = makePadding(spaces / 2); return ch + ch; }) return makePadding(spaces - 1) + ' ';}=function makeTask(token, moduleInfo, multiSpinners, maxPad) {1 const githubName = getGithubName(moduleInfo);@ const padding = makePadding(maxPad - githubName.length + 1);5 return api.isAppreciated(token, moduleInfo).then( x => { if (x.error) {X multiSpinners.spinners[githubName].text += padding + chalk.red(x.error);0 multiSpinners.error(githubName); return; } multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('☆ Not starred!'));. multiSpinners.success(githubName);% return Promise.resolve(); }, err => {E multiSpinners.spinners[githubName].text += padding + err;, multiSpinners.error(githubName);' return Promise.reject(err); } );}$// No command line arguments so far.api.readAuthToken().then( token => {/ console.info('Project dependencies: ');% fs.readFile('./package.json') .then( data => {@ let pkgJSON = JSON.parse(data.toString('utf8'));G let dependencies = api.getProjectDependencies(pkgJSON);A return api.findNodeModulesOnGithub(dependencies); }, err => {T console.error('Could not read package.json in the current folder.');- console.error('Error:', err);Z console.error('Please execute this program in your Node project folder.');, return Promise.reject(null); } ).then(moduleInfos => {7 const spinnerNames = moduleInfos.map(x => {( return getGithubName(x); }); spinnerNames.sort();. const maxPadding = Math.max.apply( null,' spinnerNames.map(x => {$ return x.length; }) );B const multiSpinners = new Multispinner(spinnerNames, { clear: false, autoStart: true,+ frames: dotsSpinner.frames,. interval: dotsSpinner.interval });5 return Promise.all(moduleInfos.map(x => {E return makeTask(token, x, multiSpinners, maxPadding); })); }).catch(err => {5 console.error(chalk.red('Error: '), err); }); }, err => {9 const tokenFile = expandHomeDir('~/.appreciate');U console.error('Could not read the Access token from', chalk.blue(tokenFile));? console.error('Error:', chalk.red(err.message || err));A console.error('Please generate an Github access token ' +X 'using the following URL and place it in', chalk.blue(tokenFile));y console.error(chalk.blue('\n\thttps://help.github.com/articles/creating-an-access-token-for-command-line-use/')); });5_'ZF2v%WW5&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('☆ Not starred!'));'(h5_']F2v%WW7T&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('✭★ Starred.') : chalk.yellow('☆ Not starred!'));5_'ZF2v%WWI&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('✭ Starred.') : chalk.yellow('☆ Not starred!'));'(h5_']F2v%WWJU&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('✮✭ Starred.') : chalk.yellow('☆ Not starred!'));5_'yF2v%WWe&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('✮ Starred.') : chalk.yellow('☆ Not starred!'));'(h5_'|F2v%WWfV&(h multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('✮ Starred.') : chalk.yellow('☆☆ Not starred!'));5_'F2v%Wᓍh#!/usr/bin/env node 'use strict';const fs = require('mz/fs');-const Multispinner = require('multispinner');1const expandHomeDir = require('expand-home-dir');const chalk = require('chalk');1const dotsSpinner = require('cli-spinners').dots;const api = require('./');$function getGithubName(moduleInfo) {I return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo;}function makePadding(spaces) { if (spaces === 0) { return '';" } else if (spaces % 2 === 0) {+ const ch = makePadding(spaces / 2); return ch + ch; }) return makePadding(spaces - 1) + ' ';}=function makeTask(token, moduleInfo, multiSpinners, maxPad) {1 const githubName = getGithubName(moduleInfo);@ const padding = makePadding(maxPad - githubName.length + 1);5 return api.isAppreciated(token, moduleInfo).then( x => { if (x.error) {X multiSpinners.spinners[githubName].text += padding + chalk.red(x.error);0 multiSpinners.error(githubName); return; } multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('✮ Starred.') : chalk.yellow('☆ Not starred!'));. multiSpinners.success(githubName);% return Promise.resolve(); }, err => {E multiSpinners.spinners[githubName].text += padding + err;, multiSpinners.error(githubName);' return Promise.reject(err); } );}$// No command line arguments so far.api.readAuthToken().then( token => {/ console.info('Project dependencies: ');% fs.readFile('./package.json') .then( data => {@ let pkgJSON = JSON.parse(data.toString('utf8'));G let dependencies = api.getProjectDependencies(pkgJSON);A return api.findNodeModulesOnGithub(dependencies); }, err => {T console.error('Could not read package.json in the current folder.');- console.error('Error:', err);Z console.error('Please execute this program in your Node project folder.');, return Promise.reject(null); } ).then(moduleInfos => {7 const spinnerNames = moduleInfos.map(x => {( return getGithubName(x); }); spinnerNames.sort();. const maxPadding = Math.max.apply( null,' spinnerNames.map(x => {$ return x.length; }) );B const multiSpinners = new Multispinner(spinnerNames, { clear: false, autoStart: true,+ frames: dotsSpinner.frames,. interval: dotsSpinner.interval });5 return Promise.all(moduleInfos.map(x => {E return makeTask(token, x, multiSpinners, maxPadding); })); }).catch(err => {5 console.error(chalk.red('Error: '), err); }); }, err => {9 const tokenFile = expandHomeDir('~/.appreciate');U console.error('Could not read the Access token from', chalk.blue(tokenFile));? console.error('Error:', chalk.red(err.message || err));A console.error('Please generate an Github access token ' +X 'using the following URL and place it in', chalk.blue(tokenFile));y console.error(chalk.blue('\n\thttps://help.github.com/articles/creating-an-access-token-for-command-line-use/')); });5_GF2v%WFHh( return getGithubName(x);5_GF2v%W FIi FHh5_HF2v%W%GIk GIj5_IF2v%W+HKk }5_H&F2v%W`WGIl& return moduleInfo.5_ $F2v%W l$function getGithubName(moduleInfo) {5_H2v%W o  n5_I2v%Wo }5_KJ2KNvWXJLp' if (moduleInfo.error) {1 return moduleInfo.moduleName; }( return getGithubName(x);5_ J2KKvW〾JL( return getGithubName(x);!1 const githubName = getGithubName(moduleInfo); $function getGithubName(moduleInfo) {5_ J2KKvW l if (moduleInfo.error) {5_)K2LLvW m> // If there was an error early on with finding package5_)K2LLvW m) // If there was an error early on5_.L2..v.W nF // If there was an error early on, then the githubInfo may not/ // be present in the moduleInfo at all.5_0L2+.v.W nI // If there was an error early on, then the githubInfo may not be5_0L2+.v.W nF // If there was an error early on, then githubInfo may not be5_,L20,v0WY nE // If there was an error early on, then githubInfo may not be, // present in the moduleInfo at all.5_"L20$v0W(Z24, multiSpinners.error(githubName);13E multiSpinners.spinners[githubName].text += padding + err;-/. multiSpinners.success(githubName);,. multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('☆ Not starred!'));(*0 multiSpinners.error(githubName);')X multiSpinners.spinners[githubName].text += padding + chalk.red(x.error);"$@ const padding = makePadding(maxPad - githubName.length + 1);!#+ const githubName = getName(moduleInfo);5_L!2FLNvWKMn7 const spinnerNames = moduleInfos.map(x => {5_L,2FY[&v&WKMnF const spinnerNames = Array.from(Set(moduleInfos.map(x => {5_N2FY[&v&W[MOn });5_L'2FY[&v&WT\KNo KMn5_P2FN N  WOSp })));5_R2FN N  WQVrRSr5_N 2FP N  W]NQu" return getName(x); })));MOuJ const spinnerNames = Array.from(new Set(moduleInfos.map(x => {5_N 2FN PW}MQuM // const spinnerNames = Array.from(new Set(moduleInfos.map(x => {% // return getName(x); // })));5_R 2FR T  W^RUu" return getName(x); });QSu7 const spinnerNames = moduleInfos.map(x => {5_N2FNQvW fMOuJ const spinnerNames = Array.from(new Set(moduleInfos.map(x => {" return getName(x); })));: // const spinnerNames = moduleInfos.map(x => {5_N 2FN PW j_MQq: // const spinnerNames = moduleInfos.map(x => {% // return getName(x); // });5_O!2FN PW `NPq" return getName(x);5_O$2FN PW NPq1 return getName(x) + x.moduleName;5_O72FN PW aNPq8 return getName(x) + ' (' + x.moduleName;5_H2F%vW 4qI return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo;5_Q2F%vW :qS return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo + ' (' + ;q5_g3F%vW ;rh return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo + ' (' + moduleInfo.moduleName;5_j3F%vW =brk return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo + ' (' + moduleInfo.moduleName ');5_P!3F%vW IcOQr> return getName(x) + ' (' + x.moduleName + ')';5_K3F%vW _rl return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo + ' (' + moduleInfo.moduleName ')';5_(4F%vW cs, ' (' + moduleInfo.moduleName ')';5_4F%vW edK return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo + 5_4F%vW ge;5_3F%vW . ' (' + moduleInfo.moduleName + ')';5_J2F%vW fqJ return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo +5_ 2F vW  q function getName(moduleInfo) { if (moduleInfo.error) {M // If there was an error early on, then githubInfo may not be present$ // in the moduleInfo at all.% return moduleInfo.moduleName; }I return moduleInfo.githubInfo.user + '/' + moduleInfo.githubInfo.repo;}function makePadding(spaces) {5_(F vW%g+ const moduleName = getName(moduleInfo);5_E(F vW-gDFg" return getName(x);5_A(F vW7@Cg ).then(moduleInfos => {5_A(F vW?@Bh ).then(moduleInfos => 5_A)(F vW@Bh@ ).then(moduleInfos => return api.uniqueModuleInfos(uniqu5_A)(F vW@Bh/ ).then(moduleInfos => return api.(uniqu5_A=(F vWh@Bh= ).then(moduleInfos => return api.getUniqueRepos(uniqu5_A#(F vW@BhD ).then(moduleInfos => return api.getUniqueRepos(moduleInfo))5_A(F vW@BhC ).then(moduleInfos => retur api.getUniqueRepos(moduleInfo))5_ A(F vWi@Bh> ).then(moduleInfos => api.getUniqueRepos(moduleInfo))5_  E!(F vWDFh7 const spinnerNames = moduleInfos.map(x => {5_   E'(F vWDFh= const spinnerNames = uniquemoduleInfos.map(x => {5_   Y(F vWXZh5 return Promise.all(moduleInfos.map(x => {5_   Y%(F vWjXZh; return Promise.all(uniquemoduleInfos.map(x => {5_  A;(F vWk@Bh= ).then(moduleInfos => api.getUniqueRepos(moduleInfo))5_ -(F vWa,0h}5_/(F vWh.1jfunction checkAppreciate(5_/!(F vWy.1k!function checkAppreciate(token) {5_0(F vW/05_0(F vW/1l /1k5_0(F vW /2l return api.5_/(F vW!m.0m!function checkAppreciate(token) {5_/(F vW!o.0m#function checkIsAppreciate(token) {5_0%(F vW!/2m% return api.isAppreciated(token, {5_0$(F0$2vW!/1n% return api.isAppreciated(token, { });5_0$(F0$0(vW!/1l& return api.isAppreciated(token, );5_0B(F0$0(vW!/1lC return api.isAppreciated(token, api.getAppreciateModuleInfo());5_0B(F0$0(vW!/2lB return api.isAppreciated(token, api.getAppreciateModuleInfo())5_1(F0$0(vW!02m .then5_1(F0$0(vW!04m .then(5_2$(F0$0(vW!14o& x => { return true; },5_2(F0$0(vW!14p$ x => { return true; 5_ 2(F0$0(vW!14q x => { 5_! 3(F0$0(vW"24r if (x.5_ "!3(F0$0(vW"23 5_!#"3(F0$0(vW"24q! return true; 5_"$#3(F0$0(vW"24q return ; 5_#%$3#(F0$0(vW" 25r 24q5_$&%4(F0$0(vW"35t 35s5_%'&5(F0$0(vW"47t }5_&('9 (F0$0(vW"8:u err => { return 5_')(9(F99vW"8:u& err => { return null; 5_(*)9(F99vW"8;u err => null; 5_)+*2(F99vW""l68& return x.starred; 13 x => { 5_*,+0(F99vW"/1vB return api.isAppreciated(token, api.getAppreciateModuleInfo()) .then(5_+-,0B(F88vW"/1uI return api.isAppreciated(token, api.getAppreciateModuleInfo()) .then(5_,.-1(F19vBW"0:u  x => {" if (x.error) {$ return null; }% return x.starred; }, err => null );5_-/.1(F19vBW"0:u  x => { if (x.error) { return null; }! return x.starred; }, err => null );5_.0/d(F19vBW"cgu });5_/10h(Fhj v W"giw; return Promise.all(uniqueModuleInfos.map(x => {E return makeTask(token, x, multiSpinners, maxPadding); }));5_021f!(Fhh+v W"egu! let allModuleInfos = 5_132f!(Fhh+v W"eiu" let allModuleInfos = fgu5_243h (Fjj+v W"giw }5_354j (Fjj+v W"ikw" return Promise.all());5_465h(Fjj+v W"gkw });5_576j(Fll+v W#iky allModuleInfos5_687f!(Fll+v W#Pegy> let allModuleInfos = uniqueModuleInfos.map(x => {5_798j(Fll+v W#Uiky allModuleInfos.5_8:9jGjFll+v W#bikyG allModuleInfos.unshift(checkIsAppreciateAppreciated(token))5_9;:j7jGll+v W#qikz iky5_:<;j%kGmm+v W#xij& // Check if appreciate is 5_;=<ljGll+v W#|kmy! return Promise.all();5_<>=m jGll+v W#loy }).catch(err => {5_=?>n jGll+v W#moz .catch(err => {5_>@?m jGll+v W#loz })5_?A@njGll+v W#mn .catch(5_@BAm jGll+v W#lpz })5_ACBo jGll+v W#np| });5_BDCn)jGll+v W#mp|) .then(allModuleInfosResolved => {5_CEDojGll+v W#np~ np}5_DFEojGll+v W#np~ const appreciate5_EGFpjGll+v W$or~ if 5_FHG8 jGll+v W$ 78 err => null5_GIH7 iGkk+v W$68~ },5_HJIniGkk+v W$mo mo~5_IKJniGkk+v W$mn // First5_JLKiiGkk+v W$hj hj~5_KMLiIjGiKiIvIW$.hkQ // Place checking for musically-ut/appreciate at the top of the list.5_LNMjkGiKiIvIW$0ik // list.5_MONjkGiKiIvIW$0ik // list5_NPOq*kGiKiIvIW$Fps* if (appreciatedInfo.starred) {5_OQPqkGiKiIvIW$Ipr* if (appreciatedInfo.starred) {5_PRQrkGiKiIvIW$Jqr5_QSRr kGiKiIvIW$Jqs qs5_RTSr"kGiKiIvIW$mqs" console.log(chalk.rs5_SUTrqkGiKiIvIW$nqsq console.log(chalk.cyan('Psst ... you may star musically-ut/appreciate while you are at it. ☺');5_TVUqkGiKiIvIW$opr+ if (!appreciatedInfo.starred) {5_UWVqkGiKiIvIW$ppr pr5_VXWkEkGiKiIvIW( jlH allModuleInfos.unshift(checkIsAppreciateAppreciated(token));5_WYX3kGiKiIvIW(24 return null;5_XZY/+kGiKiIvIW( .0.function checkIsAppreciateAppreciated(token) {5_Y[Z6kGiKiIvIW($58 return x.starred;5_Z\[6lGjKjIvIW((58 return multiSpinners5_[]\7mGkKkIvIW(*68 multiSpinners5_\^]8mGkKkIvIW(-79 x.starred;5_]_^8mGkKkIvIW(/79 x.starred;5_^`_8#mGkKkIvIW(17:# starred: x.starred;5__a`8#nGlKlIvIW(4q79# starred: x.starred;5_`bas>nGlKlIvIW(Rru> const appreciatedInfo = allModuleInfosResolved[0];5_acbtnGlKlIvIW(Tst5_bdct(nGlKlIvIW(Yst) console.log(appreciatedInfo);5_cedu(nGlKlIvIW(Ztv tv5_dfeut#lKlIvIW(jtv appreciatedInfo5_egfv?t#lKlIvIW(zuwr console.log(chalk.cyan('Psst ... you may star musically-ut/appreciate while you are at it. ☺'));5_fhgvvt#lKlIvIW({uxv console.log(chalk.cyan('Psst ... you may star musically-ut/appreciate while you are at it. ☺'));5_gihv+t#lKlIvIW(uxv console.log(chalk.cyan('Psst ... you may star musically-ut/appreciate while you are at it. ☺'));5_hjiw`t#lKlIvIW(rvyc 'Psst ... you may star musically-ut/appreciate while you are at it. ☺'));5_ikjwGt#lKlIvIW(vy` 'Psst ... you may star musically-ut/appreciate while you are at it. ☺'5_jlkxt#lKlIvIW(swy6 'while you are at it. ☺'5_kmlBt#lKlIvIW(AC/ console.info('Project dependencies: ');5_lnmB9t#lKlIvIW(tAC: console.info(chalk.cyan('Project dependencies: ');5_monx.t#lKlIvIW(wy2 'while you are at it. ☺'xy5_npox1t#lKlIvIW(uwy5 'while you are at it. ✨☺'5_oqpw/t#lKlIvIW(vyJ 'Psst ... you may star musically-ut/appreciate ' +5_prqx)t#lKlIvIW(wyD chalk.underline(musically-ut/appreciate ' +5_qsrxAt#lKlIvIW(wyE chalk.underline('musically-ut/appreciate ' +5_rtsxBt#lKlIvIW(wyD chalk.underline('musically-ut/appreciate' +5_sutyt#lKlIvIW(vxz2 'while you are at it. ✨'5_tvutt#lKlIvIW)wsu* if (appreciatedInfo.starred) {5_uwvwt#ww!v!W)"vx2 'Psst ... you may star ' +5_vxwwt#ww!v!W)"vx) 'you may star ' +5_wyxw!t#ww!v!W)$vx) 'You may star ' +5_xzyw3t#ww!v!W)(xvx7 'You may also consider star ' +5_y{zwt#ww!v!W)bvx; 'You may also consider starring ' +5_z|{wt#ww!v!W)bvx8 ' may also consider starring ' +5_{}|wt#ww!v!W)byvx4 ' also consider starring ' +5_|}yt#ww!v!W)ixz3 ' while you are at it. ✨'5_}~yt#ww!v!W)qzxz '. ✨'5_xt#ww!v!W)wyE chalk.underline('musically-ut/appreciate') +5_xt#ww!v!W){wy< chalk.('musically-ut/appreciate') +5_tt#ww!v!W)|su+ if (!appreciatedInfo.starred) {5_ut#ww!v!W)}tv tv5_}~yt#ww!v!W)jxz ' ✨'5_"*2FN PW !!#q. const moduleName = getName(moduleInfo) + ;5_5C2%v%WcG465_D2%v%W)5_C2%"%.v6W_ } else {5_ =2!"!:v6Wk!Y multiSpinners.spinners[githubName].text += padding + (x.starred ? chalk.blue('★ Starred.') : chalk.yellow('✩ Not starred!');5_~!?>2""":v6Wj "Z@ ;5_;=>< 792":v6W !L7 multiSpinners.spinners[githubName].text += 5_<= 792":v6W !L> multiSpinners.spinners[githubName].text += leftPad5_:.7":v6W 9;JQ const spinners = new Multispinner(, {clear: false, autoStart: true});5_55:VvW HH= multiSpinners.spinners[githubName].text = x.error5_55:VvW HH= multiSpinners.spinners[githubName].text =x.error 5_.55v3W A }, )5_/-.88v3W z.0D0 spinnerInfo[getGithubName(x)]= {5_/-.88v3W z.0D/ spinnerInfo[getGithubName(x)] {5_qsr1"_vPWR' return x.starred ? eturn '⋆';5_ $  v W J };5_npqo &FvW , => {5_op &FvW  , => {5