├── .eslintrc.cjs ├── .github └── workflows │ ├── audit.yaml │ └── ci.yml ├── .gitignore ├── .prettierrc.json ├── COINS.md ├── LICENSE ├── README.md ├── bitcoin-chart-cli.png ├── index.js ├── package-lock.json ├── package.json ├── src ├── CryptoCompareAPI.js ├── arguments.js ├── technical-indicator.js ├── toplist.js └── utils.js ├── test.sh └── yarn.lock /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | node: true, 4 | browser: true, 5 | commonjs: true, 6 | es6: true, 7 | }, 8 | extends: "eslint:recommended", 9 | globals: { 10 | Atomics: "readonly", 11 | SharedArrayBuffer: "readonly", 12 | }, 13 | parserOptions: { 14 | ecmaVersion: 2018, 15 | sourceType: "module" 16 | }, 17 | rules: { 18 | "linebreak-style": ["error", "unix"], 19 | "no-unused-vars": "off", 20 | }, 21 | } 22 | -------------------------------------------------------------------------------- /.github/workflows/audit.yaml: -------------------------------------------------------------------------------- 1 | name: Audit 2 | on: 3 | push: 4 | branches: [ master ] 5 | pull_request: 6 | branches: [ master ] 7 | jobs: 8 | build: 9 | runs-on: ubuntu-latest 10 | strategy: 11 | matrix: 12 | node-version: [15.x] 13 | steps: 14 | - uses: actions/checkout@v2 15 | - name: Use Node.js ${{ matrix.node-version }} 16 | uses: actions/setup-node@v2 17 | with: 18 | node-version: ${{ matrix.node-version }} 19 | - run: yarn 20 | - run: yarn audit 21 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node 2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions 3 | 4 | name: CI 5 | 6 | on: 7 | push: 8 | branches: [ master ] 9 | pull_request: 10 | branches: [ master ] 11 | 12 | jobs: 13 | build: 14 | 15 | runs-on: ubuntu-latest 16 | 17 | strategy: 18 | matrix: 19 | node-version: [14.x, 15.x] 20 | # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ 21 | steps: 22 | - uses: actions/checkout@v2 23 | - name: Use Node.js ${{ matrix.node-version }} 24 | uses: actions/setup-node@v2 25 | with: 26 | node-version: ${{ matrix.node-version }} 27 | - run: npm ci 28 | - run: npm start 29 | - run: npm test 30 | - run: npm run lint 31 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Runtime data 9 | pids 10 | *.pid 11 | *.seed 12 | *.pid.lock 13 | 14 | # Directory for instrumented libs generated by jscoverage/JSCover 15 | lib-cov 16 | 17 | # Coverage directory used by tools like istanbul 18 | coverage 19 | 20 | # nyc test coverage 21 | .nyc_output 22 | 23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 24 | .grunt 25 | 26 | # Bower dependency directory (https://bower.io/) 27 | bower_components 28 | 29 | # node-waf configuration 30 | .lock-wscript 31 | 32 | # Compiled binary addons (http://nodejs.org/api/addons.html) 33 | build/Release 34 | 35 | # Dependency directories 36 | node_modules/ 37 | jspm_packages/ 38 | 39 | # Typescript v1 declaration files 40 | typings/ 41 | 42 | # Optional npm cache directory 43 | .npm 44 | 45 | # Optional eslint cache 46 | .eslintcache 47 | 48 | # Optional REPL history 49 | .node_repl_history 50 | 51 | # Output of 'npm pack' 52 | *.tgz 53 | 54 | # Yarn Integrity file 55 | .yarn-integrity 56 | 57 | # dotenv environment variables file 58 | .env 59 | 60 | -------------------------------------------------------------------------------- /.prettierrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false 3 | } 4 | -------------------------------------------------------------------------------- /COINS.md: -------------------------------------------------------------------------------- 1 | # List of supported cryptocurrencies 2 | 3 | Last update 2017/08 4 | 5 | `bitcoin-chart-cli --list` 6 | 7 | ``` 8 | 007 coin (007) 9 | 0x (ZRX) 10 | 1337 (1337) 11 | 16BitCoin (BIT16) 12 | 1Credit (1CR) 13 | 2015 coin (2015) 14 | 23 Skidoo (CHAO) 15 | 2BACCO Coin (2BACCO) 16 | 2GiveCoin (2GIVE) 17 | 32Bitcoin (32BIT) 18 | 365Coin (365) 19 | 404Coin (404) 20 | 42 Coin (42) 21 | 8 Circuit Studios (8BT) 22 | 808 (808) 23 | 8BIT Coin (8BIT) 24 | AcesCoin (ACES) 25 | AcesCoin (AEC) 26 | AcidCoin (ACID) 27 | ACoin (ACOIN) 28 | ACT (ACT) 29 | Adelphoi (ADL) 30 | AdEx (ADX) 31 | Adshares (ADST) 32 | AdToken (ADT) 33 | AdvancedInternetBlock (AIB) 34 | Adzcoin (ADZ) 35 | Aegis (AGS) 36 | AeonCoin (AEON) 37 | Aero Coin (AERO) 38 | AeroMe (AM) 39 | Aeternity (AE) 40 | Agoras Token (AGRS) 41 | Ahoolee (AHC) 42 | Aiden (ADN) 43 | Aircoin (AIR) 44 | Alexandrite (ALEX) 45 | AlienCoin (ALN) 46 | Allsafe (ASAFE) 47 | AlpaCoin (APC) 48 | AlphaCoin (ALF) 49 | AmberCoin (AMBER) 50 | AmericanCoin (AMC) 51 | AMIS (AMIS) 52 | Ammo Rewards (AMMO) 53 | Amsterdam Coin (AMS) 54 | Amygws (AMY) 55 | Anacrypt (ANCP) 56 | AnalCoin (ANAL) 57 | Anarchists Prime (ACP) 58 | AndromedaCoin (AND) 59 | Anoncoin (ANC) 60 | AnonCoin (ANNC) 61 | Anti Bitcoin (ANTI) 62 | AntiLitecoin (ANTC) 63 | ApexCoin (APEX) 64 | Aptcoin (APT) 65 | Apx (APX) 66 | AquariusCoin (ARCO) 67 | Arab League Coin (ALC) 68 | Aragon (ANT) 69 | Arbit Coin (ARB) 70 | Arcade City (ARC) 71 | ArchCoin (ARCH) 72 | ArcticCoin (ARC*) 73 | Ardor (ARDR) 74 | Arena (ARNA) 75 | Argentum (ARG) 76 | ArgusCoin (ARGUS) 77 | AriCoin (ARI) 78 | ARK (ARK) 79 | ArkDAO (BOTS) 80 | Armory Coin (ARM) 81 | ArpaCoin (ARPA) 82 | ArtByte (ABY) 83 | ArtexCoin (ATX) 84 | Ascension Coin (ASN) 85 | Asch (XAS) 86 | Asia Coin (AC) 87 | Asiadigicoin (ADCN) 88 | Astral (AST) 89 | ATB coin (ATB) 90 | Atmos (ATMS) 91 | Atomic Coin (ATOM) 92 | AudioCoin (ADC) 93 | Augur (REP) 94 | Aurora Coin (AUR) 95 | Autoria (AUT) 96 | Autumncoin (ATM) 97 | Avatar Coin (AV) 98 | AventCoin (AVT) 99 | AvonCoin (ACN) 100 | Axiom Coin (AXIOM) 101 | AXRON (AXR) 102 | B3 Coin (B3) 103 | Babes and Nerds (BAN) 104 | BAM (BAM) 105 | BananaBits (NANAS) 106 | Bancor Network Token (BNT) 107 | BankCoin (B@) 108 | BaseballCardCoin (BBCC) 109 | Basic Attention Token (BAT) 110 | Bata (BTA) 111 | BattleCoin (BCX) 112 | BattleStake (BSTK) 113 | BeachCoin (SAND) 114 | BeardDollars (BRDD) 115 | Beats (XBTS) 116 | BeaverCoin (BVC) 117 | BelaCoin (BELA) 118 | Benjacoin (BNC) 119 | Benjamins (BEN) 120 | BenjiRolls (BENJI) 121 | BERNcash (BERN) 122 | BestChain (BEST) 123 | BetaCoin (BET) 124 | BigCoin (HUGE) 125 | BighanCoin (BHC) 126 | BigLifeCoin (LFC) 127 | BigUp (BIGUP) 128 | Bikercoins (BIC) 129 | BillaryCoin (BLRY) 130 | BioBar (BIOB) 131 | BiosCrypto (BIOS) 132 | BipCoin (BIP) 133 | BitalphaCoin (BAC) 134 | BitBar (BTB) 135 | BitBay (BAY) 136 | BitBean (BITB) 137 | BitBoss (BOSS) 138 | BitBronze (BRONZ) 139 | Bitcedi (BXC) 140 | Bitcloud (BTD) 141 | bitCNY (BITCNY) 142 | Bitcoin (BTC) 143 | Bitcoin Cash / BCC (BCH) 144 | Bitcoin Planet (BTPL) 145 | Bitcoin Scrypt (BTCS) 146 | BitcoinDark (BTCD) 147 | BitcoinFast (BCF) 148 | BitcoinPlus (XBC) 149 | BitcoinTX (BTX*) 150 | BitConnect Coin (BCCOIN) 151 | BitCredit (BCR) 152 | BitCrystal (BTCRY) 153 | BitCrystals (BCY) 154 | BitCurrency (BTCR) 155 | BitDice (CSNO) 156 | BitFinex Tokens (BFX) 157 | BitGem (BTG) 158 | BitHIRE (HIRE*) 159 | BitJob (STU) 160 | BitluckCoin (BTCL) 161 | BitLuckCoin (BTLC) 162 | BitLux (LUX) 163 | BitMark (BTM) 164 | BitMiles (BTMI) 165 | BitMoon (BM) 166 | Bitmxittz (BMXT) 167 | BitOKX (BITOK) 168 | BitQuark (BTQ) 169 | Bitquence (BQX) 170 | Bits Digit (BITSD) 171 | BitSeeds (XSEED) 172 | BitSend (BSD) 173 | Bitshares (BTS) 174 | Bitstake (XBS) 175 | BitstarCoin (BITS) 176 | BitStone (BST) 177 | BitSwift (SWIFT) 178 | BitTokens (BXT) 179 | bitUSD (BITUSD) 180 | BitVegan (VEG) 181 | BitVolt (VOLT) 182 | Bitz Coin (BITZ) 183 | BitzCoin (BTZ) 184 | BitZeny (ZNY) 185 | BlackCoin (BLK) 186 | BlackShadowCoin (BS) 187 | Blackstar (BSTAR) 188 | BlakeCoin (BLC) 189 | BlazerCoin (BLAZR) 190 | BlitzCoin (BLITZ) 191 | BlockCAT (BCAT) 192 | Blockchain Capital (BCAP) 193 | BlockNet (BLOCK) 194 | BlockPay (BLOCKPAY) 195 | Blocktix (TIX) 196 | BlueCoin (BLU) 197 | BnrtxCoin (BNX) 198 | Boats and Bitches (BNB*) 199 | Bob Coin (BOB) 200 | Bogcoin (BOG) 201 | BolivarCoin (BOLI) 202 | BombCoin (BOMB) 203 | BonesCoin (BON) 204 | Boolberry (BBR) 205 | BOOM Coin (BOOM) 206 | BoostCoin (BOST) 207 | BOScoin (BOS) 208 | BosonCoin (BOSON) 209 | BottleCaps (CAP) 210 | Bowhead Health (AHT) 211 | BowsCoin (BSC) 212 | BQCoin (BQC) 213 | BrainCoin (BRAIN) 214 | BreakoutCoin (BRK) 215 | BrickBlock (BBT) 216 | BritCoin (BRIT) 217 | BullshitCoin (BULLS) 218 | BurstCoin (BURST) 219 | BuzzCoin (BUZZ) 220 | Byteball (GBYTE) 221 | ByteCent (BYC) 222 | ByteCoin (BCN) 223 | ByteCoin (BTE) 224 | C-Bits (XCT) 225 | CabbageUnit (CAB) 226 | Cachecoin (CACH) 227 | CAIx (CAIx) 228 | Californium (CF) 229 | CaliphCoin (CALC) 230 | Camcoin (CAM) 231 | Canada eCoin (CDN) 232 | Canada eCoin (CND) 233 | Cannabis Industry Coin (XCI) 234 | CannabisCoin (CANN) 235 | CannaCoin (CCN) 236 | CapriCoin (CPC) 237 | Carboncoin (CARBON) 238 | CarpeDiemCoin (DIEM) 239 | CarterCoin (CTC) 240 | CashCoin (CASH) 241 | CashOut (CSH) 242 | CasinoCoin (CSC) 243 | Catcoin (CAT1) 244 | CBD Crystals (CBD) 245 | CCCoin (CCC) 246 | Centurion (CNT) 247 | Cerium (XCE) 248 | CETUS Coin (CETI) 249 | ChainCoin (CHC) 250 | ChanCoin (4CHN) 251 | Charity Coin (CHA) 252 | ChatCoin (CHAT) 253 | CheckCoin (CXC) 254 | ChessCoin (CHESS) 255 | ChildCoin (CHILD) 256 | ChinaCoin (CNC) 257 | Chip (CHIP) 258 | ChoofCoin (CHOOF) 259 | ChronosCoin (CRX) 260 | CinderCoin (CIN) 261 | CINNICOIN (CINNI) 262 | CircuitCoin (CIR) 263 | Circuits of Value (COVAL) 264 | Civic (CVC) 265 | CLAMS (CLAM) 266 | CleverCoin (CLV) 267 | CleverHash (CHASH) 268 | Clickcoin (CLICK) 269 | Clinton (CLINT) 270 | CloakCoin (CLOAK) 271 | Clockcoin (CKC) 272 | ClubCoin (CLUB) 273 | CludCoin (CLUD) 274 | CobraCoin (COX) 275 | CodeTract (CTT) 276 | CoEval (COE) 277 | CoffeeCoin (CFC) 278 | Cofound.it (CFI) 279 | Coin (COIN) 280 | Coin Magi (XMG) 281 | Coin to the Future (BTTF) 282 | Coin.2 (C2) 283 | CoinDash (CDT) 284 | CoinJob (XCJ) 285 | Coinmatic (CTIC) 286 | Coino (CNO) 287 | Coinomat (CNMT) 288 | Coinonat (CXT) 289 | CoinWorksCoin (LAB) 290 | ColossusCoin2.0 (CV2) 291 | CometCoin (CMT) 292 | Community Coin (COC) 293 | Community Coin (COMM) 294 | Compcoin (CMP) 295 | ConcealCoin (CNL) 296 | Condensate (RAIN) 297 | ConquestCoin (CQST) 298 | ConSpiracy Coin (CYC) 299 | CoolCoin (COOL) 300 | CoolDarkCoin (CCX) 301 | CopperLark (CLR) 302 | CoralPay (CORAL) 303 | Core Group Asset (CORE) 304 | Corion (COR) 305 | Cosmic (CSMIC) 306 | Cosmos (ATOM*) 307 | CosmosCoin (CMC) 308 | COSS (COSS) 309 | CounterParty (XCP) 310 | CovenCoin (COV) 311 | CrabCoin (CRAB) 312 | CrackCoin (CRACK) 313 | Craftcoin (CRAFT) 314 | CraftCoin (CRC) 315 | CraigsCoin (CRAIG) 316 | CrankCoin (CRNK) 317 | CraveCoin (CRAVE) 318 | Cream (CRM) 319 | Creatio (XCRE) 320 | CreativeChain (CREA) 321 | Creditbit (CRBIT) 322 | Credits (CRE) 323 | Creva Coin (CREVA) 324 | Crown Coin (CRW) 325 | CryptCoin (CRYPT) 326 | Crypti (XCR) 327 | Crypto (CTO) 328 | Crypto Escudo (CESC) 329 | CryptoABS (CABS) 330 | CryptoBuk (BUK) 331 | CryptoBullion (CBX) 332 | CryptoCarbon (CCRB) 333 | CryptoCircuits (CIRC) 334 | Cryptodex (CDX) 335 | CryptoFocus (FCS) 336 | CryptoForecast (CFT) 337 | Cryptographic Anomaly (CGA) 338 | CryptoJacks (CJ) 339 | CryptoJournal (CJC) 340 | Cryptokenz (CYT) 341 | Cryptonite (XCN) 342 | CryptoPennies (CRPS) 343 | CryptoPing (PING) 344 | CryptoSpots (CS) 345 | CryptoWorldXToken (CWXT) 346 | Cryptsy Mining Contract (MN) 347 | Cryptsy Points (POINTS) 348 | Crypviser (CVCOIN) 349 | Cubits (QBT) 350 | Curecoin (CURE) 351 | CyberCoin (CC) 352 | Cygnus (CYG) 353 | CypherPunkCoin (CYP) 354 | Darcrus (DAR) 355 | Dark (DARK) 356 | Dark Lisk (DISK) 357 | Dark Moon (MOOND) 358 | DarkBit (DB) 359 | DarkCash (DRKC) 360 | DarkCrave (DCC) 361 | DarkEther (DETH) 362 | DarkGold (DGDC) 363 | DarkKnightCoin (DKC) 364 | DarkKush (DANK) 365 | Darknet (DNET) 366 | DarkShibe (DSB) 367 | DarkToken (DT) 368 | DarkTron (DRKT) 369 | DAS (DAS) 370 | Dashcoin (DSH) 371 | Databits (DTB) 372 | DayTrader Coin (DTC) 373 | DCORP (DRP) 374 | DebitCoin (DBTC) 375 | Decent (DCT) 376 | Decentraland (MANA) 377 | deCLOUDs (DCS) 378 | Decred (DCR) 379 | DeepOnion (ONION) 380 | Degas Coin (DEA) 381 | DelightPay (DPAY) 382 | DeltaCredits (DCRE) 383 | Denarius (DNR) 384 | Dent (DENT) 385 | Dentacoin (DCN) 386 | DentalFix (DFBT) 387 | DeOxyRibose (XNA) 388 | Destiny (DES) 389 | DevCoin (DVC) 390 | Diamond (DMD) 391 | DickCoin (DCK) 392 | Diggits (DIGS) 393 | DigiByte (DGB) 394 | DigiCoin (DGC) 395 | DigiCube (CUBE) 396 | DigiEuro (DEUR) 397 | Digigems (DGMS) 398 | DigiPulse (DGT) 399 | Digital Bullion Gold (DBG) 400 | Digital Developers Fund (DDF) 401 | Digital Rupees (DRS) 402 | DigitalCash (DASH) 403 | DigitalNote (XDN) 404 | DigitalPrice (DP) 405 | Digix DAO (DGD) 406 | DIMCOIN (DIM) 407 | DimeCoin (DIME) 408 | Dinastycoin (DCY) 409 | Dirac Coin (XDQ) 410 | district0x (DNT) 411 | Dlisk (DLISK) 412 | DMarket (DMARKET) 413 | Dnotes (NOTE) 414 | Dogecoin (DOGE) 415 | DogeCoinDark (DOGED) 416 | DogeGoreCoin (DGORE) 417 | DogeParty (XDP) 418 | DollarCoin (DLC) 419 | DollarOnline (DLR) 420 | DonationCoin (DOV) 421 | DopeCoin (DOPE) 422 | Dotcoin (DOT) 423 | Doubloon (BOAT) 424 | DraculaCoin (DRA) 425 | DragonSphere (XDB) 426 | Dream8Coin (DRM8) 427 | Droidz (DRZ) 428 | DT Token (DRACO) 429 | DubaiCoin (DBIC) 430 | DubaiCoin (DBIX) 431 | DubCoin (DUB) 432 | DuckDuckCoin (DUCK) 433 | DuxCoin (DUX) 434 | Dynamic (DYN) 435 | E-CurrencyCoin (ECC) 436 | E-Dinar Coin (EDR) 437 | E-Gulden (EFL) 438 | EagleCoin (EA) 439 | EagsCoin (EAGS) 440 | EarthCoin (EAC) 441 | EB3coin (EB3) 442 | Ebitz (EBZ) 443 | EbolaShare (EBS) 444 | Eclipse (EC) 445 | EcoBit (ECOB) 446 | ECOcoin (ECO) 447 | EdgeCoin (EDGE) 448 | Edgeless (EDG) 449 | EDRCoin (EDRC) 450 | EducoinV (EDC) 451 | EggCoin (EGG) 452 | EGOcoin (EGO) 453 | Einsteinium (EMC2) 454 | EkoCoin (EKO) 455 | Elacoin (ELC) 456 | Elastic (XEL) 457 | Elektron (EKN) 458 | Elementrem (ELE) 459 | Elysium (ELS) 460 | eMark (DEM) 461 | EmberCoin (EMB) 462 | Emerald (EMD) 463 | Emercoin (EMC) 464 | EmiratesGoldCoin (EMIGR) 465 | EmporiumCoin (EMPC) 466 | Empyrean (EPY) 467 | Encrypgen (DNA) 468 | EncryptoTel (ETT) 469 | EneCoin (ENE) 470 | EnergyCoin (ENRG) 471 | Enigma (XNG) 472 | EnterCoin (ENTER) (ENTER) 473 | EOS (EOS) 474 | EqualCoin (EQUAL) 475 | EQUI (EQ) 476 | Equibit (EQB) 477 | Equilibrium Coin (EQM) 478 | EquiTrader (EQT) 479 | ERBCoin (ERB) 480 | Ergo (EFYT) 481 | ErrorCoin (ERR) 482 | Eryllium (ERY) 483 | Espers (ESP) 484 | Eternity (ENT) 485 | Ethbits (ETB) 486 | EtherDoge (DOGETH) 487 | Ethereum (ETH) 488 | Ethereum Classic (ETC) 489 | EthereumScrypt (ETHS) 490 | Etheroll (DICE) 491 | Eurocoin (EUC) 492 | EuropeCoin (ERC) 493 | Event Token (EVENT) 494 | EverGreenCoin (EGC) 495 | EveryonesCoin (EOC) 496 | EvilCoin (EVIL) 497 | ExaByte (EXB) (EXB) 498 | Exchange Union (XUC) 499 | Exclusive Coin (EXCL) 500 | ExeCoin (EXE) 501 | ExitCoin (EXIT) 502 | Expanse (EXP) 503 | ExtremeCoin (XT) 504 | EZCoin (EZC) 505 | F16Coin (F16) 506 | Factoids (FCT) 507 | FairCoin (FAIR) 508 | FameCoin (FAME) 509 | FantomCoin (FCN) 510 | FastCoin (FST) 511 | FaucetCoin (DROP) 512 | FazzCoin (FAZZ) 513 | FCoin (FX) 514 | FeatherCoin (FTC) 515 | FIBRE (FIBRE) 516 | FileCoin (FIL) 517 | FindCoin (FIND) 518 | FireCoin (FIRE) 519 | FireflyCoin (FFC) 520 | FireRoosterCoin (FRC) 521 | FirstBlood (1ST) 522 | FirstCoin (FIRST) 523 | FirstCoin (FRST) 524 | FistBump (FIST) 525 | Fitcoin (FIT) 526 | Flappy Coin (FLAP) 527 | Flash (FLX) 528 | FlavorCoin (FLVR) 529 | FlorinCoin (FLO) 530 | FlutterCoin (FLT) 531 | FlyCoin (FLY) 532 | Folding Coin (FLDC) 533 | FonzieCoin (FONZ) 534 | Forever Coin (XFC) 535 | ForexCoin (FOREX) 536 | FractalCoin (FRAC) 537 | Francs (FRN) 538 | Franko (FRK) 539 | Frankywillcoin (FRWC) 540 | Free Game Zone (FGZ) 541 | FreeCoin (FRE) 542 | FriendshipCoin (FSC2) 543 | Fuel2Coin (FC2) 544 | FujiCoin (FJC) 545 | FunCoin (FUNC) 546 | FundRequest (FND) 547 | FundYourselfNow (FYN) 548 | FunFair (FUN) 549 | Fusion (FSN) 550 | FutCoin (FUTC) 551 | FuturePoints (FTP) 552 | Fuzzballs (FUZZ) 553 | GAIA Platform (GAIA) 554 | GAKHcoin (GAKH) 555 | GalaxyCoin (GLX) 556 | Gambit coin (GAM) 557 | GameBetCoin (GBT) 558 | Gamecredits (GAME) 559 | GameLeagueCoin (GML) 560 | GameUnits (UNITS) 561 | GanjaCoin V2 (GNJ) 562 | Gapcoin (GAP) 563 | Gas (GAS) 564 | GayCoin (GAY) 565 | GBR Coin (GBRC) 566 | GCoin (GCN) 567 | Gemz Social (GEMZ) 568 | GenesysCoin (GSY) 569 | Genstake (GEN) 570 | GeoCoin (GEO) 571 | GeoFunders (GUNS) 572 | Ghost Coin (SPKTR) 573 | GhostCoin (GHC) 574 | Ghoul Coin (GHOUL) 575 | GiftNet (GIFT) 576 | Giga Hash (GHS) 577 | Giga Watt (WTT) 578 | GigCoin (GIG) 579 | Gilgam (GGS) 580 | Giotto Coin (GOT) 581 | GiveCoin (GIVE) 582 | GIZMOcoin (GIZ) 583 | Global (GLOBE) 584 | Global Currency Reserve (GCR) 585 | GlobalBoost (BSTY) 586 | GlobalCoin (GLC) 587 | GlowShares (GSX) 588 | GlyphCoin (GLYPH) 589 | Gnosis (GNO) 590 | Goat (GOAT) 591 | Gold Pressed Latinum (GPL) 592 | GoldBlocks (GB) 593 | GoldCoin (GLD) 594 | GoldenBird (XGB) 595 | Goldmaxcoin (GMX) 596 | GoldPieces (GP) 597 | GoldReserve (XGR) 598 | Golem Network Token (GNT) 599 | Golos (GOLOS) 600 | Goonies (GOON) 601 | GorillaBucks (BUCKS*) 602 | GothicCoin (GOTX) 603 | GPU Coin (GPU) 604 | Gram Coin (GRAM) 605 | GrandCoin (GDC) 606 | Grantcoin (GRT) 607 | Graviton (GRAV) 608 | GravityBit (GBIT) 609 | GreenCoin (GRE) 610 | GrexitCoin (GREXIT) 611 | GridCoin (GRC) 612 | Gridmaster (GMC) 613 | GridMaster (GRM) 614 | GridPay (GRID) 615 | Groestlcoin (GRS) 616 | Growers International (GRWI) 617 | GrownCoin (GROW) 618 | GrowthCoin (GRW) 619 | GSM Coin (GSM) 620 | GuccioneCoin (GCC) 621 | GuerillaCoin (GUE) 622 | Gulden (NLG) 623 | Guppy (GUP) 624 | Hacker Gold (HKG) 625 | Halcyon (HAL) 626 | Halloween Coin (HALLO) 627 | HamsterCoin (HAMS) 628 | HappyCoin (HPC) 629 | HappyCreatorCoin (HCC) 630 | Harbour DAO (HRB) 631 | HazeCoin (HAZE) 632 | HazMatCoin (HZT) 633 | Heat Ledger (HEAT) 634 | HeavyCoin (HVC) 635 | Hedgecoin (HEDG) 636 | HeelCoin (HEEL) 637 | Hellenic Coin (HNC) 638 | HempCoin (HMP) 639 | HexxCoin (HXX) 640 | HiCoin (XHI) 641 | High Voltage Coin (HVCO) 642 | Hitcoin (HTC) 643 | Hive (HVN) 644 | HoboNickels (HBN) 645 | HOdlcoin (HODL) 646 | Honey (HONEY) 647 | Horizon (HZ) 648 | Horse Power (HSP) 649 | HTML Coin (HTML5) 650 | Humaniq (HMQ) 651 | HunterCoin (HUC) 652 | Hush (HUSH) 653 | HyperCoin (HYPER) 654 | Hyperstake (HYP) 655 | I0coin (I0C) 656 | iBankCoin (IBANK) 657 | ICASH (ICASH) 658 | IceBergCoin (ICB) 659 | ICO OpenLedger (ICOO) 660 | Icobid (ICOB) 661 | Iconic (ICON) 662 | Iconomi (ICN) 663 | iDice (ICE) 664 | iEx.ec (RLC) 665 | ILCoin (ILC) 666 | IMMLA (IML) 667 | Impact (IMX) 668 | Impeach (IMPCH) 669 | ImperialCoin (IPC) 670 | Impulse Coin (IMPS) 671 | IncaKoin (NKA) 672 | Incent (INCNT) 673 | InceptionCoin (INCP) 674 | InCoin (IN) 675 | Incrementum (INC) 676 | Independent Money System (IMS) 677 | Indorse (IND) 678 | Infinite Coin (IFC) 679 | Infinium-8 (INF8) 680 | InflationCoin (IFLT) 681 | Influxcoin (INFX) 682 | InPay (INPAY) 683 | Insane Coin (INSN) 684 | InsaneCoin (INSANE) 685 | Insanity Coin (WOLF) 686 | Instamine Nuggets (MINE) 687 | InsureX (IXT) 688 | International Diamond Coin (XID*) 689 | Internet of People (IOP) 690 | InvestFeed (IFT) 691 | Invictus (INV) 692 | InvisibleCoin (IVZ) 693 | IOCoin (IOC) 694 | Ionomy (ION) 695 | IOTA (IOT) 696 | IOU1 (IOU) 697 | IslaCoin (ISL) 698 | IvugeoEvolutionCoin (IEC) 699 | iWallet (IW) 700 | IXcoin (IXC) 701 | JackPotCoin (JPC) 702 | JaneCoin (JANE) 703 | Janus (JNS) 704 | Jewels (JWL) 705 | JiffyCoin (JIF) 706 | JIO Token (JIO) 707 | JobsCoin (JOBS) 708 | JoinCoin (J) 709 | JokerCoin (JOK) 710 | JouleCoin (XJO) 711 | JudgeCoin (JUDGE) 712 | JumBucks Coin (JBS) 713 | JunkCoin (JKC) 714 | Karbowanec (KRB) 715 | Karmacoin (KARM) 716 | KATZcoin (KAT) 717 | Kayı (KAYI) 718 | Kencoin (KCN) 719 | Kernalcoin (KC) 720 | KeyCoin (KEY) 721 | Khancoin (KNC) 722 | KiloCoin (KLC) 723 | King93 (KING) 724 | Klingon Empire Darsek (KED) 725 | Klondike Coin (KDC) 726 | KoboCoin (KOBO) 727 | Komodo (KMD) 728 | KoreCoin (KORE) 729 | Kraken (KRAK) 730 | KRCoin (KRC) 731 | KrugerCoin (KGC) 732 | KryptCoin (KTK) 733 | Krypton (KR) 734 | KubosCoin (KUBO) 735 | Kurrent (KURT) 736 | KushCoin (KUSH) 737 | LanaCoin (LANA) 738 | Lathaan (LTH) 739 | Lazarus (LAZ) 740 | LBRY Credits (LBC) 741 | LeaCoin (LEA) 742 | Legendary Coin (LGD*) 743 | Legends Cryptocurrency (LGD) 744 | LemonCoin (LEMON) 745 | LeninCoin (LENIN) 746 | LEOcoin (LEO) 747 | LePenCoin (LEPEN) 748 | Let it Ride (LIR) 749 | Leverage Coin (LVG) 750 | LeviarCoin (XLC) 751 | LGBTQoin (LGBTQ) 752 | LibertyCoin (XLB) 753 | LibrexCoin (LXC) 754 | LightSpeedCoin (LSD) 755 | LimeCoinX (LIMX) 756 | Limited Coin (LTD) 757 | Linda (LINDA) 758 | Liquid (LQD) 759 | Liquidity Asset Tokens (LATO) 760 | Lisk (LSK) 761 | Litebar (LTB) 762 | Litecoin (LTC) 763 | LitecoinDark (LTCD) 764 | LitecoinX (LTCX) 765 | LiteCreed (LTCR) 766 | LiteDoge (LDOGE) 767 | Litestar Coin (LTS) 768 | LiviaCoin (LIV) 769 | Loco (LOC) 770 | LomoCoin (LMC) 771 | LookCoin (LOOK) 772 | LTBCoin (LTBC) 773 | LuckChain (BASH) 774 | Lucky7Coin (LK7) 775 | LuckyBlocks (LUCKY) (LUCKY) 776 | LuckyCoin (LKY) 777 | Lunyr (LUN) 778 | Lutetium Coin (LC) 779 | LycanCoin (LYC) 780 | LyraBar (LYB) 781 | MachineCoin (MAC) 782 | MacronCoin (MCRN) 783 | MaidSafe Coin (MAID) 784 | MaieutiCoin (MMXIV) 785 | MakeItViral (MIV) 786 | Maker (MKR) 787 | Manet Coin (MAT) 788 | MapCoin (MAPC) 789 | MarijuanaCoin (MAR) 790 | MarsCoin (MARS) 791 | MarsCoin (MRS) 792 | MartexCoin (MXT) 793 | Marvelous (MARV) 794 | MarxCoin (MARX) 795 | MaryJane Coin (MARYJ) 796 | Mass Coin (MC) 797 | Mass.Cloud (MASS) 798 | MasterCar (MCAR) 799 | MasterCoin (MSC) 800 | MasterMint (MM) 801 | MasterTraderCoin (MTR) 802 | MaxCoin (MAX) 803 | MayaCoin (MYC) 804 | MazaCoin (MZC) 805 | Mbitbooks (MBIT) 806 | MCAP (MCAP) 807 | MedicCoin (MDC) 808 | MediterraneanCoin (MED) 809 | MediumProject (MPRO) 810 | MegaCoin (MEC) 811 | MegaFlash (MEGA) 812 | Megastake (XMS) 813 | MeLite (MLITE) 814 | Melon (MLN) 815 | MemoryCoin (MMC) 816 | MemoryCoin (MRY) 817 | Mercury (MER) 818 | Metal (MTL) 819 | Metal Music v3 (MTLM3) 820 | MetalCoin (METAL) 821 | Midnight (MDT) 822 | MilkCoin (MUU) 823 | Milllionaire Coin (MIL) 824 | MiloCoin (MILO) 825 | MinCoin (MNC) 826 | Mind Gene (MG) 827 | MindCoin (MND) 828 | Minerals Coin (MIN) 829 | Minereum (MNE) 830 | MinersReward (MRT) 831 | Mineum (MNM) 832 | MintCoin (MINT) 833 | MIScoin (MIS) 834 | MMNXT (MMNXT) 835 | MMXVI (MMXVI) 836 | MobileGo (MGO) 837 | Mobius (MOBI) 838 | MoinCoin (MOIN) 839 | Mojocoin (MOJO) 840 | MollyCoin (TAB) 841 | Monaco (MCO) 842 | MonaCoin (MONA) 843 | Monero (XMR) 844 | Moneta (MONETA) 845 | MonetaryUnit (MUE) 846 | MonetaVerde (MCN) 847 | Monetha (MTH) 848 | MoneyCoin (MONEY) 849 | Monkey (MNY) 850 | Monster Byte Inc (MBI) 851 | MoonCoin (MOON) 852 | MorpheusCoin (MRP) 853 | Mothership (MSP) 854 | Motocoin (MOTO) 855 | MrsaCoin (MRSA) 856 | MudraCoin (MUDRA) 857 | MultiWallet Coin (MWC) 858 | Musiccoin (MUSIC) 859 | MustangCoin (MST) 860 | MyBit (MYB) 861 | Mycelium Token (MT) 862 | MyriadCoin (XMY) 863 | MysteryCoin (MYST*) 864 | NakomotoDark (NKT) 865 | NameCoin (NMC) 866 | NanoToken (NAN) 867 | Napoleon X (NPX) 868 | Nas2Coin (NAS2) 869 | Nautilus Coin (NAUT) 870 | NavCoin (NAV) 871 | Nebuchadnezzar (NEBU) 872 | NefariousCoin (NEF) 873 | NEM (XEM) 874 | NEO (NEO) 875 | NeoCoin (NEC) 876 | NeosCoin (NEOS) 877 | NeptuneClassic (NTCC) 878 | NetBit (NBIT) 879 | NetCoin (NET) 880 | Netko (NETKO) 881 | NetworkCoin (NETC) 882 | NeuCoin (NEU) 883 | Neurocoin (NRC) 884 | Neutron (NTRN) 885 | NevaCoin (NEVA) 886 | NeverDie (NDC) 887 | NewInvestCoin (NIC) 888 | NewZealandCoin (NZC) 889 | Nexium (NXC) 890 | Nexus (NXS) 891 | NiceCoin (NICE) 892 | Nimbus Coin (NMB) 893 | Nimiq Exchange Token (NET*) 894 | NineElevenTruthCoin (NTC) 895 | NinjaDoge (NDOGE) 896 | NobleCoin (NOBL) 897 | Node (NODE) 898 | NoirBits (NRB) 899 | NoirShares (NRS) 900 | NoLimitCoin (NLC) 901 | NoLimitCoin (NLC2) 902 | Noocoin (NOO) 903 | NovaCoin (NVC) 904 | NPCcoin (NPC) 905 | NubisCoin (NUBIS) 906 | NuBits (NBT) 907 | NukeCoin (NUKE) 908 | Nukecoinz (NKC) 909 | Number7 (N7) 910 | NumbersCoin (NUM) 911 | Numerai (NMR) 912 | Numismatic Collections (XNC (1)) 913 | NuShares (NSR) 914 | NVO (NVST) 915 | NXEcoin (NXE) 916 | Nxt (NXT) 917 | NXTI (NXTI) 918 | NXTTY (NXTTY) 919 | NyanCoin (NYAN) 920 | Nybble (NBL) 921 | Obits Coin (OBITS) 922 | Obscurebay (OBS) 923 | Oceanlab (OCL) 924 | Octanox (OTX) 925 | Octocoin (888) 926 | OctoCoin (OCTO) 927 | OKCash (OK) 928 | Old Dogs New Tricks (ODNT) 929 | OldSafeCoin (OLDSF) 930 | OlympCoin (OLYMP) 931 | OmegaCoin (OMA) 932 | OmiseGo (OMG) 933 | Omni (OMNI) 934 | OmniCron (OMC) 935 | Onix (ONX) 936 | Opair (XPO) 937 | OpalCoin (OPAL) 938 | OpenANX (OAX) 939 | OpenSourceCoin (OSC) 940 | OpenZen (ZNT) 941 | Opes (OPES) 942 | OptionCoin (OPTION) 943 | Opus (OPT) 944 | OrangeCoin (OC) 945 | Orbitcoin (ORB) 946 | OrlyCoin (ORLY) 947 | OroCoin (ORO) 948 | Orocrypt (OROC) 949 | OsmiumCoin (OS76) 950 | Pabyosi Coin (PCS) 951 | PabyosiCoin (PBC) 952 | PacCoin (PAC) 953 | Pakcoin (PAK) 954 | PandaCoin (PND) 955 | PantherCoin (PINKX) 956 | PAquarium (PQT) 957 | ParallelCoin (DUO) 958 | ParanoiaCoin (PARA) 959 | ParkByte (PKB) 960 | Particl (PART) 961 | Pascal Coin (PASC) 962 | Pascal Lite (PASL) 963 | Patientory (PTOY) 964 | PayCoin (PYC) 965 | PayCoin (XPY) 966 | Paycon (CON_) 967 | PayPeer (PAYP) 968 | PeaceCoin (PEC) 969 | Pebble Coin (XPB) 970 | PeerCoin (PPC) 971 | Peerplays (PPY) 972 | PenCoin (PEN) 973 | PentaCoin (PTA) 974 | Pepe (MEME) 975 | Pepe Cash (PEPECASH) 976 | Persistent Information Exchange (PIE) 977 | PesetaCoin (PTC) 978 | PesoBit (PSB) 979 | PetroDollar (XPD) 980 | Phalanx (PXL) 981 | PharmaCoin (XPH) 982 | PhilosophersStone (PHS) 983 | PhoenixCoin (PXC) 984 | Phreak (PHR) 985 | Piggy Coin (PIGGY) 986 | Pillar (PLR) 987 | PinkCoin (PINK) 988 | Pioneershares (PIO) 989 | PizzaCoin (PIZZA) 990 | PlanetCoin (PLANET) 991 | PlatiniumCoin (PNC) 992 | PLNCoin (PLNC) 993 | Pluton (PLU) 994 | Po.et (POE) 995 | PoisonIvyCoin (XPS) 996 | PokeChain (XPOKE) 997 | PolyBit (POLY) 998 | Polybius (PLBT) 999 | PoolStamp (XSP) 1000 | Populous (PPT) 1001 | PosEx (PEX) 1002 | Positron (TRON) 1003 | PostCoin (POST) 1004 | PoSWallet (POSW) 1005 | PotCoin (POT) 1006 | PowerCoin (PWR) 1007 | Premium (PRE) 1008 | Presearch (PST) 1009 | President Clinton (HILL) 1010 | President Trump (PRES) 1011 | Primalbase (PBT) 1012 | Prime-X1 (PXI) 1013 | PrimeChain (PRIME) 1014 | PrimeCoin (XPM) 1015 | Printerium (PRX) 1016 | PrismChain (PRM) 1017 | Private Instant Verified Transaction (PIVX) 1018 | Prizm (PZM) 1019 | ProCoin (XPRO) 1020 | Procom (PCM) 1021 | ProCurrency (PROC) 1022 | Project Decorum (PDC) 1023 | Propy (PRO) 1024 | ProsperCoin (PRC) 1025 | Protoshares (PTS) 1026 | PseudoCash (PSEUD) 1027 | PSIcoin (PSI) 1028 | Psilocybin (PSY) 1029 | Pulse (PULSE) 1030 | PupaCoin (PUPA) 1031 | PureVidz (VIDZ) 1032 | PutinCoin (PUT) 1033 | PXcoin (PX) 1034 | QoraCoin (QORA) 1035 | QTUM (QTUM) 1036 | Quantum (QAU) 1037 | Quantum Resistant Ledger (QRL) 1038 | QuarkCoin (QRK) 1039 | Quartz (QTZ) 1040 | Quatloo (QTL) 1041 | Quazar Coin (QCN) 1042 | QuBuck Coin (QBK) 1043 | Quebecoin (QBC) 1044 | Quicksilver coin (QSLV) 1045 | Quotient (XQN) 1046 | Qvolta (QVT) 1047 | Qwark (QWARK) 1048 | RadicalCoin (RADI) 1049 | Radium (RADS) 1050 | RadonPay (RDN) 1051 | RaiBlocks (XRB) 1052 | Ratecoin (XRA) 1053 | Ratio (RATIO) 1054 | RazorCoin (RZR) 1055 | RCoin (RCN) 1056 | REAL (REAL) 1057 | Reality Clash (RCC) 1058 | Recovery Right Tokens (RRT) 1059 | Redcoin (RED) 1060 | RedCrowCoin (RCX) 1061 | ReddCoin (RDD) 1062 | ReeCoin (REE) 1063 | RenosCoin (RNS) 1064 | Resumeo Shares (RMS) 1065 | ReturnBit (RBIT) 1066 | ReturnCoin (RNC) 1067 | Revenu (REV) 1068 | RevolverCoin (XRE) 1069 | Rialto.AI (XRL) 1070 | Ribbit Rewards (RBR) 1071 | RiceCoin (RICE) 1072 | Ride My Car (RIDE) 1073 | Riecoin (RIC) 1074 | Rimbit (RBT) 1075 | RingCoin (RING) 1076 | RipOffCoin (RIPO) 1077 | Ripple (XRP) 1078 | RiptoBuX (RBX) 1079 | Rise (RISE) 1080 | Rivetz (RVT) 1081 | RonPaulCoin (RPC) 1082 | RootCoin (ROOT) 1083 | RootProject (ROOTS) 1084 | ROS Coin (ROS) 1085 | RotoCoin (RT2) 1086 | RoundCoin (ROUND) 1087 | Royal Kingdom Coin (RKC) 1088 | RoyalCoin (ROYAL) 1089 | RoyalCoin (RYC) 1090 | RoyalCoin 2.0 (RYCN) 1091 | Rubies (RBIES) 1092 | Rublebit (RUBIT) 1093 | RubyCoin (RBY) 1094 | Russiacoin (RC) 1095 | RustCoin (RUST) 1096 | S88 Coin (S8C) 1097 | Safecoin (SFE) 1098 | SafeExchangeCoin (SAFEX) 1099 | SaffronCoin (SFR) 1100 | SaluS (SLS) 1101 | Samsara Coin (SMSR) 1102 | Santiment (SAN) 1103 | SapienceCoin (XAI) 1104 | SARCoin (SAR) 1105 | Sativa Coin (STV) 1106 | SatoshiMadness (MAD) 1107 | Saturn2Coin (SAT2) 1108 | Save and Gain (SANDG) 1109 | Save The Ocean (STO) 1110 | Scorecoin (SCORE) 1111 | Scotcoin (SCOT) 1112 | ScryptCoin (SCRPT) 1113 | ScryptToken (SCT) 1114 | SecretCoin (SCRT) 1115 | SecureCoin (SRC) 1116 | SeedShares (SEEDS) 1117 | SelenCoin (SEL) 1118 | Sense (SNS) 1119 | Sentaro (SEN) 1120 | Sequence (SEQ) 1121 | Sex Pistols (SP) 1122 | SexCoin (SXC) 1123 | ShadeCoin (SHADE) 1124 | ShadowCash (SDC) 1125 | SharkCoin (SAK) 1126 | ShieldCoin (SHLD) 1127 | Shift (SHIFT) 1128 | Shilling (SH) 1129 | ShortyCoin (SHORTY) 1130 | Siacoin (SC) 1131 | SibCoin (SIB) 1132 | Signatum (SIGT) 1133 | SilkCoin (SILK) 1134 | Singular (SIGU) 1135 | SingularDTV (SNGLS) 1136 | SixEleven (611) 1137 | Skincoin (SKIN) 1138 | SkullBuzz (SKB) 1139 | Skycoin (SKY) 1140 | SlimCoin (SLM) 1141 | Sling Coin (SLING) 1142 | SmartCash (SMART) 1143 | SmartCoin (SMC) 1144 | SmileyCoin (SMLY) 1145 | SMNX (SMNX) 1146 | SmurfCoin (SMF) 1147 | Social Media Coin (SMAC) 1148 | SocialCoin (SOCC) 1149 | SocialXbotCoin (XBOT) 1150 | SoilCoin (SOIL) 1151 | Solar DAO (SDAO) 1152 | SolarCoin (SLR) 1153 | SolarFarm (CELL) 1154 | Solarflarecoin (SFC) 1155 | Solaris (XLR) 1156 | SoleCoin (SOLE) 1157 | Song Coin (SONG) 1158 | Sonic Screw Driver Coin (SSD) 1159 | SONM (SNM) 1160 | SoonCoin (SOON) 1161 | Sosnovkino (SNK) 1162 | SoulCoin (SOUL) 1163 | SpaceCash (SCASH) 1164 | SpaceCoin (SPACE) 1165 | SpainCoin (SPA) 1166 | SpecCoin (SPEC) 1167 | Specie (SPX) 1168 | Spectre (XSPEC) 1169 | Sphere Coin (SPHR) 1170 | SpinCoin (SPC) 1171 | Spoon (SPN) 1172 | SportsCoin (SPORT) 1173 | Spots (SPOTS) 1174 | Spots (SPT) 1175 | Spreadcoin (SPR) 1176 | Sprouts (SPRTS) 1177 | Squall Coin (SQL) 1178 | SSVCoin (SSV) 1179 | Stability Shares (XSI) 1180 | StableCoin (SBC) 1181 | Stakers (STA*) 1182 | Stakerush (STHR) 1183 | StalinCoin (STALIN) 1184 | StarCoin (STAR*) 1185 | StarCoin (STR*) 1186 | StarCredits (SRC*) 1187 | StartCoin (START) 1188 | Status Network Token (SNT) 1189 | StealthCoin (XST) 1190 | SteamPunk (PNK) 1191 | Steem (STEEM) 1192 | Steem Backed Dollars (SBD) 1193 | Stellar (XLM) 1194 | Steps (STEPS) 1195 | SterlingCoin (SLG) 1196 | Storj (STORJ) 1197 | StorjCoin (SJCX) 1198 | Storm (STORM) 1199 | Stox (STX) 1200 | Stratis (STRAT) 1201 | STRESScoin (STS) 1202 | Subscriptio (SUB) 1203 | SunContract (SNC) 1204 | SunShotCoin (SSTC) 1205 | Supcoin (SUP) 1206 | SuperCoin (SUPER) 1207 | SuperNET (UNITY) 1208 | SupplyShock (M1) 1209 | Supreme (SPM) 1210 | Suretly (SUR) 1211 | SwagBucks (BUCKS) 1212 | Swarm City Token (SWT) 1213 | SwarmCoin (SWARM) 1214 | SweetStake (SWEET) 1215 | SwingCoin (SWING) 1216 | Swiscoin (SCN) 1217 | SydPakCoin (SDP) 1218 | SyncCoin (SYNC) 1219 | SynchroCoin (SYC) 1220 | Syndicate (SYNX) 1221 | Synereo (AMP) 1222 | Synergy (SNRG) 1223 | SysCoin (SYS) 1224 | TagCoin (TAG) 1225 | TajCoin (TAJ) 1226 | TakCoin (TAK) 1227 | TamaGucci (TAM) 1228 | TappingCoin (TAP) 1229 | Tatiana Coin (TAT) 1230 | TattooCoin (TSE) 1231 | TDFB (TDFB) 1232 | TeamUP (TEAM) 1233 | TechCoin (TECH) 1234 | TechShares (THS) 1235 | TeCoin (TEC) 1236 | TekCoin (TEK) 1237 | Tellurion (TELL) 1238 | Tennet (TENNET) 1239 | TenX (PAY) 1240 | TerraCoin (TRC) 1241 | TeslaCoilCoin (TESLA) 1242 | TeslaCoin (TES) 1243 | Tether (USDT) 1244 | Tetra (TRA) 1245 | Tezos (XTZ) 1246 | The Hempcoin (THC) 1247 | The Vegan Initiative (XVE) 1248 | TheChiefCoin (CHIEF) 1249 | Thecreed (TCR) 1250 | Think And Get Rich Coin (TAGR) 1251 | Tianhe (TIA) 1252 | Tierion (TNT) 1253 | Ties Network (TIE) 1254 | TigerCoin (TGC) 1255 | TileCoin (XTC) 1256 | Time (TIME) 1257 | Timereum (TME) 1258 | TimesCoin (TMC) 1259 | TitCoin (TIT) 1260 | TittieCoin (TTC) 1261 | TodayCoin (TODAY) 1262 | Token as a Service (TAAS) 1263 | TokenCard (TKN) 1264 | Tokes (TKS) 1265 | Tomahawkcoin (TOM) 1266 | TorCoin (TOR) 1267 | TotCoin (TOT) 1268 | Transfer (TX) 1269 | TrashBurn (TBCX) 1270 | Triangles Coin (TRI) 1271 | TribeToken (TRIBE) 1272 | TrickyCoin (TRICK) 1273 | Trigger (TRIG) 1274 | Troll Payment (TPG) 1275 | TrollPlay (TPAY) 1276 | TrollTokens (TKN*) 1277 | TruckCoin (TRK) 1278 | True Flip Lottery (TFL) 1279 | TrueInvestmentCoin (TIC) 1280 | TrumpCoin (TRUMP) 1281 | TrustCoin (TRST) 1282 | TrustPlus (TRUST) 1283 | Turron (TUR) 1284 | Twelve Coin (TWLV) 1285 | TwisterCoin (TWIST) 1286 | Ubiq (UBQ) 1287 | Ubiqoin (UBIQ) 1288 | Ucoin (U) 1289 | UFO Coin (UFO) 1290 | Ultimate Secure Cash (USC) 1291 | UltraCoin (UTC) 1292 | Umbrella (ULTC) 1293 | Umbrella Coin (UMC) 1294 | Unattanium (UNAT) 1295 | UnbreakableCoin (UNB) 1296 | UnCoin (UNC) 1297 | Unfed Coin (UNF) 1298 | Unify (UNIFY) 1299 | UnikoinGold (UNIKRN) 1300 | Uniqredit (UNIQ) 1301 | UnitaryStatus Dollar (USDE) 1302 | United Arab Emirates Coin (UAEC) 1303 | Unitus (UIS) 1304 | Universal Currency (UNIT) 1305 | Universe (UNI) 1306 | Unobtanium (UNO) 1307 | UPcoin (XUP) 1308 | UR (UR) 1309 | UroCoin (URO) 1310 | Useless Ethereum Token (UET) 1311 | Uther (UTH) 1312 | Utility Coin (UTIL) 1313 | VapersCoin (VPRC) 1314 | Vaporcoin (VAPOR) 1315 | VaultCoin (VLTC) 1316 | Vcash (XVC) 1317 | VectorCoin 2.0 (VEC2) 1318 | Veltor (VLT) 1319 | Verge (XVG) 1320 | VeriCoin (VRC) 1321 | Veritaseum (VERI) 1322 | Verium (VRM) 1323 | Veros (VRS) 1324 | Versa Token (VERSA) 1325 | VertCoin (VTC) 1326 | Vertex (VTX) 1327 | ViaCoin (VIA) 1328 | Viberate (VIB) 1329 | Victoriouscoin (VTY) 1330 | VidioCoin (VDO) 1331 | ViorCoin (VIOR) 1332 | VIP Tokens (VIP) 1333 | Viral Coin (VIRAL) 1334 | Virta Unique Coin (VUC) 1335 | VirtaCoin (VTA) 1336 | VirtacoinPlus (XVP) 1337 | VirtualMining Coin (VMC) 1338 | Visio (VISIO) 1339 | VOISE (VSM) 1340 | VootCoin (VOOT) 1341 | Voxels (VOX) 1342 | Voyacoin (VOYA) 1343 | vSlice (VSL) 1344 | Vsync (XVS) 1345 | Vtorrent (VTR) 1346 | Wagerr (WGR) 1347 | WarCoin (WRC) 1348 | WarpCoin (WARP) 1349 | WashingtonCoin (WASH) 1350 | Waves (WAVES) 1351 | Waves Community Token (WCT) 1352 | WavesGO (WGO) 1353 | Wavesnode.net (WNET) 1354 | WayCoin (WAY) 1355 | wBTC (WBTC) 1356 | WealthCoin (WEALTH) 1357 | WeAreSatoshi (WSX) 1358 | Wexcoin (WEX) 1359 | WhiteCoin (WC) 1360 | WhiteCoin (XWC) 1361 | Wild Beast Coin (WBB) 1362 | WineCoin (WINE) 1363 | Wings DAO (WINGS) 1364 | Wink (WINK) 1365 | WisdomCoin (WISC) 1366 | WMCoin (WMC) 1367 | Wolk (WOLK) 1368 | Wood Coin (LOG) 1369 | World Gold Coin (WGC) 1370 | World Trade Funds (XWT) 1371 | WorldCoin (WDC) 1372 | WorldPay (WOP) 1373 | X11 Coin (XC) 1374 | X2Coin (X2) 1375 | XanaxCoin (XNX) 1376 | XauCoin (XAU) 1377 | Xaurum (XAUR) 1378 | Xcash (XCASH) 1379 | XCoin (XCO) 1380 | XDE II (XDE2) 1381 | XenCoin (XNC) 1382 | XenixCoin (XEN) 1383 | XG Sports (XG) 1384 | XiaoMiCoin (MI) 1385 | XtraBYtes (XBY) 1386 | XXXCoin (XXX) 1387 | YAcCoin (YAC) 1388 | YamahaCoin (YMC) 1389 | YAYcoin (YAY) 1390 | YbCoin (YBC) 1391 | YesCoin (YES) 1392 | YobitVirtualCoin (YOVI) 1393 | YoCoin (YOC) 1394 | ZayedCoin (ZYD) 1395 | ZCash (ZEC) 1396 | ZCashDarkCoin (ZECD) 1397 | ZCC Coin (ZCC) 1398 | ZClassic (ZCL) 1399 | ZCoin (XZC) 1400 | Zcrypt (ZXT) 1401 | ZedCoins (ZED) 1402 | ZeitCoin (ZEIT) 1403 | ZenCash (ZEN) 1404 | Zennies (ZENI) 1405 | Zero (ZER) 1406 | Zeta2Coin (ZET2) 1407 | ZetaCoin (ZET) 1408 | Zilbercoin (ZBC) 1409 | ZLiteQubit (ZLQ) 1410 | Zoin (ZOI) 1411 | ZoneCoin (ZNE) 1412 | ZoomCoin (ZOOM) 1413 | ZrCoin (ZRC) 1414 | ZSEcoin (ZSE) 1415 | Zurcoin (ZUR) 1416 | ``` 1417 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Fabian Beuke 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 |

bitcoin-chart-cli

3 |

4 | 5 | npm 6 | License: MIT 7 | License: MIT 8 | Issue Count 9 | Known Vulnerabilities 10 |

11 | 12 | 13 | 14 | Bitcoin chart for the terminal as command line util.
15 | For a list of supported cryptocurrencies see coins.
16 | You might also be interested in a similar project of
17 | mine [wallstreet](https://github.com/madnight/wallstreet), which provides information about
18 | stocks instead of cryptocurrencies. 19 | 20 | ### Requirements 21 | 22 | - node 8.0 or higher 23 | - npm or yarn 24 | 25 | ### Usage 26 | 27 | ```bash 28 | # install 29 | npm install bitcoin-chart-cli -g 30 | 31 | # (alternative) install with yarn 32 | yarn global add bitcoin-chart-cli 33 | 34 | # (alternative) run without install 35 | npx bitcoin-chart-cli 36 | 37 | # run default 38 | bitcoin-chart-cli 39 | 40 | # run with options 41 | bitcoin-chart-cli --coin ETH -d 360 -w 80 -h 20 42 | 43 | # run with your own api key for higher requests limits 44 | export CRYPTOCOMPARE_API_KEY=your_api_key 45 | bitcoin-chart-cli --coin XRP -ti RSI SMA BB EMA MACD 46 | ``` 47 | 48 | ### Options 49 | 50 | ```bash 51 | bitcoin-chart-cli --help 52 | 53 | 54 | Usage: index [options] 55 | 56 | 57 | Options: 58 | 59 | -V, --version output the version number 60 | -d, --days number of days the chart will go back 61 | --hours number of hours the chart will go back 62 | --mins number of minutes the chart will go back 63 | -w, --width max terminal chart width 64 | -h, --height max terminal chart height 65 | --max max y-axis value 66 | --min min y-axis value 67 | --min-range min range between min and max y-axis value 68 | -c, --coin specify the coin e.g. ETH (default: "BTC") 69 | --currency specify the trading pair currency (default: "USD") 70 | -l, --list list all available coins 71 | -t, --toplist list of top n coins 72 | --disable-legend disable legend text 73 | -ti, --technical-indicator add a technical indicator: RSI SMA BB EMA MACD 74 | -h, --help display help for command 75 | ``` 76 | 77 | # Examples 78 | 79 | ![](https://i.imgur.com/8jXYkHc.png) 80 | 81 | ```bash 82 | bitcoin-chart-cli 83 | ``` 84 | 85 | ![](https://i.imgur.com/ijwaYXir.png) 86 | 87 | ``` 88 | Create terminal splits (tmux) with watch for live charts the unix way 89 | watch -n 60 bitcoin-chart-cli --mins 30 --width 60 90 | ``` 91 | 92 | ![](https://i.imgur.com/cTtFxy6.png) 93 | 94 | ```bash 95 | In combination with conky 96 | conky.text = [[ ${execi 120 bitcoin-chart-cli --coin ETH -w 140 -h 15} ]]; 97 | ``` 98 | 99 | ``` 100 | bitcoin-chart-cli --toplist 15 101 | Rank Name Price MktCap Volume Change/24h 102 | -------------------------------------------------------------------------- 103 | 1. Bitcoin $57844.00 1081.8B 25.7B 4.05% 104 | 2. Ethereum $3521.65 407.7B 15.0B 2.47% 105 | 3. Binance Coin $630.03 96.7B 2.2B 1.04% 106 | 4. Dogecoin $0.65 84.2B 11.5B 14.61% 107 | 5. XRP $1.60 72.6B 4.2B 0.90% 108 | 6. Tether $1.00 54.8B 80.8B -0.00% 109 | 7. Cardano $1.66 53.0B 3.0B 8.59% 110 | 8. Polkadot $40.99 40.6B 1.3B 1.20% 111 | 9. Bitcoin Cash $1341.36 25.1B 2.9B -4.85% 112 | 10. Litecoin $344.02 23.0B 4.0B 5.05% 113 | 11. Uniswap $40.36 21.1B 390.2M 0.70% 114 | 12. Chainlink $49.73 20.8B 1.2B 8.07% 115 | 13. VeChain $0.23 15.0B 1.5B 14.39% 116 | 14. Stellar $0.64 14.7B 932.3M 1.50% 117 | 15. USD Coin $1.00 14.4B 736.5M -0.05% 118 | ``` 119 | 120 | ![image](https://user-images.githubusercontent.com/10064471/117548107-56bd4f80-b033-11eb-8f48-b16d2111cb0e.png) 121 | 122 | ```bash 123 | Charts with technical indicators 124 | bitcoin-chart-cli --coin XRP -ti RSI SMA BB EMA MACD 125 | ``` 126 | -------------------------------------------------------------------------------- /bitcoin-chart-cli.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/madnight/bitcoin-chart-cli/6ed7564a7c285aca369587d112f09e24e6351aa4/bitcoin-chart-cli.png -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | import args from "./src/arguments.js" 4 | import asciichart from "asciichart" 5 | import moment from "moment" 6 | import lodash from "lodash/fp.js" 7 | import { CryptoCompareAPI } from "./src/CryptoCompareAPI.js" 8 | import { print, normalize, time, interpolate } from "./src/utils.js" 9 | import { printTopList } from "./src/toplist.js" 10 | import { 11 | printTechIndicatorChart, 12 | getTechIndicator, 13 | getTechIndicatorColors, 14 | } from "./src/technical-indicator.js" 15 | 16 | const { map, flow, sortBy, toLower, trim, pad, max, min } = lodash 17 | 18 | const printCoins = async () => 19 | flow( 20 | map(trim), 21 | sortBy(toLower), 22 | map(print) 23 | )(await CryptoCompareAPI.fetchCoinList()) 24 | 25 | const getMinRange = (max, min) => { 26 | if (max - min > args.minRange) return [] 27 | const dist = max - min 28 | const range = args.minRange / 2 - dist / 2 29 | return [max + range, min - range] 30 | } 31 | 32 | const main = async () => { 33 | const [timePast, timeName, timeApi] = time() 34 | const past = moment() 35 | .subtract(timePast, timeName) 36 | .format("YYYY-MM-DD hh:mm a") 37 | 38 | const fullHistroy = await CryptoCompareAPI.fetchCoinHistory( 39 | timeApi, 40 | args.coin, 41 | args.currency, 42 | timePast 43 | ) 44 | 45 | const history = interpolate(fullHistroy) 46 | const value = await CryptoCompareAPI.fetchCoinPrice(args.coin, args.currency) 47 | 48 | const baseLegend = `\t ${args.coin} last ${timePast} ${timeName}` 49 | const now = `. Now: ${value[args.currency]} ${args.currency}` 50 | const legend = baseLegend + ` since ${past}` + now 51 | const smallLegend = baseLegend + now 52 | 53 | const fixed = normalize(max(history)) 54 | const fixedHist = map((x) => x.toFixed(fixed))(history).map(Number) 55 | const padding = pad(2 + max(fixedHist).toString().length)("") 56 | const [maxH, minH] = getMinRange(max(fixedHist), min(fixedHist)) 57 | const chart = getTechIndicator(fullHistroy).concat([fixedHist]) 58 | try { 59 | print( 60 | asciichart.plot(chart, { 61 | height: args.maxHeight, 62 | max: args.minRange ? maxH : args.max, 63 | min: args.minRange ? minH : args.min, 64 | padding: padding, 65 | colors: getTechIndicatorColors(), 66 | format: (x) => (padding + x.toFixed(fixed)).slice(-padding.length), 67 | }) 68 | ) 69 | } catch (e) { 70 | console.log( 71 | "Couldn't plot chart. Please try different width or height settings." 72 | ) 73 | process.exit(1) 74 | } 75 | 76 | if (args.maxWidth > 40 && !args.disableLegend) { 77 | print(args.maxWidth < 65 ? smallLegend : legend) 78 | } 79 | 80 | printTechIndicatorChart(fullHistroy, padding) 81 | } 82 | 83 | if (args.showCoinList) { 84 | printCoins() 85 | } else if (args.topList) { 86 | printTopList() 87 | } else { 88 | main() 89 | } 90 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bitcoin-chart-cli", 3 | "version": "3.7.0", 4 | "license": "MIT", 5 | "author": "Fabian Beuke ", 6 | "description": "Bitcoin chart for the terminal as command line util", 7 | "main": "index.js", 8 | "type": "module", 9 | "scripts": { 10 | "start": "node index.js", 11 | "lint": "eslint .", 12 | "test": "sh test.sh" 13 | }, 14 | "bin": { 15 | "bitcoin-chart-cli": "index.js" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git+https://github.com/madnight/bitcoin-chart-cli.git" 20 | }, 21 | "keywords": [ 22 | "bitcoin", 23 | "chart", 24 | "cli" 25 | ], 26 | "bugs": { 27 | "url": "https://github.com/madnight/bitcoin-chart-cli/issues" 28 | }, 29 | "homepage": "https://github.com/madnight/bitcoin-chart-cli#readme", 30 | "dependencies": { 31 | "array-interpolatejs": "1.0.2", 32 | "asciichart": "1.5.25", 33 | "axios": "0.21.1", 34 | "chalk": "^4.1.1", 35 | "clear": "0.1.0", 36 | "commander": "^7.2.0", 37 | "fs": "^0.0.1-security", 38 | "lodash": "4.17.21", 39 | "moment": "2.29.4", 40 | "technicalindicators": "^3.1.0" 41 | }, 42 | "devDependencies": { 43 | "babel-eslint": "^7.2.3", 44 | "eslint": "^7.26.0", 45 | "eslint-config-cleanjs": "^4.0.0", 46 | "eslint-plugin-better": "^0.1.5", 47 | "eslint-plugin-fp": "^2.3.0", 48 | "eslint-plugin-import": "^2.7.0", 49 | "eslint-plugin-react": "^7.23.2" 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /src/CryptoCompareAPI.js: -------------------------------------------------------------------------------- 1 | import lodash from "lodash/fp.js" 2 | import axios from "axios" 3 | 4 | const { get, map, flow } = lodash 5 | 6 | export class CryptoCompareAPI { 7 | // API Urls 8 | static baseURL() { 9 | return "https://min-api.cryptocompare.com/data/" 10 | } 11 | 12 | static apiKey() { 13 | return process.env.CRYPTOCOMPARE_API_KEY 14 | ? `&api_key=${process.env.CRYPTOCOMPARE_API_KEY}` 15 | : "" 16 | } 17 | 18 | static History(time, coin, currency, past) { 19 | return ( 20 | `${CryptoCompareAPI.baseURL()}${time}?fsym=${coin}` + 21 | `&tsym=${currency}&limit=${past + 50}&e=CCCAGG` + 22 | CryptoCompareAPI.apiKey() 23 | ) 24 | } 25 | 26 | static Current(coin, currency) { 27 | return ( 28 | `${CryptoCompareAPI.baseURL()}` + 29 | `price?fsym=${coin}&tsyms=${currency}` + 30 | CryptoCompareAPI.apiKey() 31 | ) 32 | } 33 | 34 | static CoinList() { 35 | return ( 36 | `${CryptoCompareAPI.baseURL()}` + 37 | "all/coinlist" + 38 | CryptoCompareAPI.apiKey() 39 | ) 40 | } 41 | 42 | static async fetchCoinList() { 43 | return flow( 44 | get("data.Data"), 45 | map("FullName") 46 | )(await axios.get(CryptoCompareAPI.CoinList())) 47 | } 48 | 49 | static async fetchCoinHistory(time, coin, currency, past) { 50 | const { data } = await axios.get( 51 | CryptoCompareAPI.History(time, coin, currency, past) 52 | ) 53 | if (data.Response == "Error") { 54 | console.log(data.Message) 55 | process.exit(1) 56 | } 57 | return data.Data.map((d) => d.close) 58 | } 59 | 60 | static async fetchCoinPrice(coin, currency) { 61 | return (await axios.get(CryptoCompareAPI.Current(coin, currency))).data 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /src/arguments.js: -------------------------------------------------------------------------------- 1 | import { Command } from "commander" 2 | import _ from "lodash/fp.js" 3 | import * as fs from "fs" 4 | 5 | const { version } = JSON.parse(fs.readFileSync("./package.json", "utf8")) 6 | 7 | const program = new Command() 8 | program 9 | .version(version) 10 | .option("-d, --days ", "number of days the chart will go back", parseInt) 11 | .option("--hours ", "number of hours the chart will go back", parseInt) 12 | .option("--mins ", "number of minutes the chart will go back", parseInt) 13 | .option("-w, --width ", "max terminal chart width", parseInt) 14 | .option("-h, --height ", "max terminal chart height", parseInt) 15 | .option("--max ", "max y-axis value", parseInt) 16 | .option("--min ", "min y-axis value", parseInt) 17 | .option( 18 | "--min-range ", 19 | "min range between min and max y-axis value", 20 | parseInt 21 | ) 22 | .option("-c, --coin ", "specify the coin e.g. ETH", "BTC") 23 | .option("--currency ", "specify the trading pair currency", "USD") 24 | .option("-l, --list", "list all available coins") 25 | .option("-t, --toplist ", "list of top n coins") 26 | .option("--disable-legend", "disable legend text") 27 | .option( 28 | "-ti, --technical-indicator ", 29 | "add a technical indicator: RSI SMA BB EMA MACD" 30 | ) 31 | .parse(process.argv) 32 | 33 | const param = program.opts() 34 | 35 | export default { 36 | days: _.defaultTo(90)(param.days), 37 | mins: param.mins, 38 | hours: param.hours, 39 | coin: param.coin, 40 | max: param.max, 41 | min: param.min, 42 | technicalIndicator: param.technicalIndicator, 43 | minRange: param.minRange, 44 | currency: param.currency, 45 | maxWidth: _.defaultTo(100)(param.width), 46 | maxHeight: _.defaultTo(14)(param.height), 47 | showCoinList: param.list, 48 | topList: param.toplist, 49 | disableLegend: param.disableLegend, 50 | } 51 | -------------------------------------------------------------------------------- /src/technical-indicator.js: -------------------------------------------------------------------------------- 1 | import TI from "technicalindicators" 2 | import args from "./arguments.js" 3 | import lodash from "lodash/fp.js" 4 | import asciichart from "asciichart" 5 | import { print, time, interpolate } from "./utils.js" 6 | 7 | const { map } = lodash 8 | 9 | export const getTechIndicator = (values) => { 10 | if (!args.technicalIndicator) return [] 11 | 12 | let indicator = [] 13 | 14 | if (args.technicalIndicator.includes("BB")) { 15 | const bb = TI.BollingerBands.calculate({ 16 | period: 14, 17 | values: values, 18 | stdDev: 2, 19 | }) 20 | const lower = map("lower", bb) 21 | const upper = map("upper", bb) 22 | indicator = indicator.concat([lower, upper].map(interpolate)) 23 | } 24 | 25 | if (args.technicalIndicator.includes("SMA")) { 26 | const sma = TI.SMA.calculate({ 27 | period: 20, 28 | values: values, 29 | }) 30 | indicator = indicator.concat([sma].map(interpolate)) 31 | } 32 | 33 | if (args.technicalIndicator.includes("EMA")) { 34 | const ema = TI.EMA.calculate({ 35 | period: 10, 36 | values: values, 37 | }) 38 | indicator = indicator.concat([ema].map(interpolate)) 39 | } 40 | 41 | return indicator 42 | } 43 | 44 | export const getTechIndicatorColors = () => { 45 | if (!args.technicalIndicator) return [] 46 | 47 | let indicatorColors = [asciichart.default] 48 | 49 | if (args.technicalIndicator.includes("EMA")) { 50 | indicatorColors = [asciichart.magenta].concat(indicatorColors) 51 | } 52 | 53 | if (args.technicalIndicator.includes("SMA")) { 54 | indicatorColors = [asciichart.blue].concat(indicatorColors) 55 | } 56 | 57 | if (args.technicalIndicator.includes("BB")) { 58 | indicatorColors = [asciichart.green, asciichart.red].concat(indicatorColors) 59 | } 60 | 61 | return indicatorColors 62 | } 63 | 64 | const printLegend = (name, value) => { 65 | const [timePast, timeName, _] = time() 66 | print(`\t ${name} ${args.coin} last ${timePast} ${timeName}. Now: ${value}`) 67 | } 68 | 69 | const printRSIChart = (values, padding) => { 70 | const [timePast, timeName, _] = time() 71 | const rsiPeriod = 14 72 | const rsi = TI.RSI.calculate({ 73 | period: rsiPeriod, 74 | values: values, 75 | }) 76 | const r = interpolate(rsi) 77 | print( 78 | "\n" + 79 | asciichart.plot([r.map((_) => 30), r.map((_) => 70), r], { 80 | height: args.maxHeight / 2, 81 | max: 70, 82 | min: 30, 83 | padding: padding, 84 | colors: [asciichart.blue, asciichart.blue, asciichart.red], 85 | }) 86 | ) 87 | printLegend("RSI", r.slice(-1)[0]) 88 | } 89 | 90 | const printMACDChart = (values, padding) => { 91 | const [timePast, timeName, _] = time() 92 | const rsiPeriod = 14 93 | const m = TI.MACD.calculate({ 94 | values: values, 95 | fastPeriod: 12, 96 | slowPeriod: 26, 97 | signalPeriod: 9, 98 | SimpleMAOscillator: false, 99 | SimpleMASignal: false, 100 | }) 101 | const vals = [map("MACD", m), map("signal", m)].map(interpolate) 102 | print( 103 | "\n" + 104 | asciichart.plot(vals, { 105 | height: args.maxHeight / 2, 106 | padding: padding, 107 | colors: [asciichart.blue, asciichart.red], 108 | }) 109 | ) 110 | printLegend("MACD", vals.slice(-1)[0][0]) 111 | } 112 | 113 | export const printTechIndicatorChart = (values, padding) => { 114 | if (!args.technicalIndicator) return [] 115 | const [timePast, timeName, _] = time() 116 | if (args.technicalIndicator.includes("RSI")) { 117 | printRSIChart(values, padding) 118 | } 119 | 120 | if (args.technicalIndicator.includes("MACD")) { 121 | printMACDChart(values, padding) 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /src/toplist.js: -------------------------------------------------------------------------------- 1 | import axios from "axios" 2 | import chalk from "chalk" 3 | import args from "./arguments.js" 4 | 5 | const humanString = (i) => 6 | (parseFloat(i) / (i < 1e9 ? 1e6 : 1e9)).toFixed(1) + (i < 1e9 ? "M" : "B") 7 | 8 | const percentColor = (i) => (i.includes("-") ? chalk.red(i) : chalk.green(i)) 9 | 10 | export const printTopList = async () => { 11 | const { data } = await axios.get("https://api.coincap.io/v2/assets") 12 | 13 | process.stdout.write("Rank Name Price ") 14 | console.log("MktCap Volume Change/24h") 15 | console.log("-".repeat(74)) 16 | data.data 17 | .slice(0, args.topList) 18 | .forEach((x) => 19 | console.log( 20 | (x.rank + ".").padEnd(5), 21 | x.name.padEnd(22), 22 | ("$" + parseFloat(x.priceUsd).toFixed(2)).padStart(10), 23 | humanString(parseFloat(x.marketCapUsd).toFixed(1)).padStart(10), 24 | humanString(parseFloat(x.volumeUsd24Hr).toFixed(0)).padStart(10), 25 | percentColor( 26 | (parseFloat(x.changePercent24Hr).toFixed(2) + "%").padStart(12) 27 | ) 28 | ) 29 | ) 30 | } 31 | -------------------------------------------------------------------------------- /src/utils.js: -------------------------------------------------------------------------------- 1 | import lodash from "lodash/fp.js" 2 | import { interpolateArray } from "array-interpolatejs" 3 | import args from "./arguments.js" 4 | 5 | const { always, gt, cond, T } = lodash 6 | const { flow, remove, takeRight } = lodash 7 | const { negate, first } = lodash 8 | 9 | export const print = (string) => process.stdout.write(string + "\n") 10 | const id = always 11 | export const normalize = cond([ 12 | [gt(0.0001), id(8)], 13 | [gt(0.01), id(6)], 14 | [gt(0.1), id(3)], 15 | [gt(100), id(2)], 16 | [T, id(0)], 17 | ]) 18 | 19 | export const time = () => 20 | flow( 21 | remove(negate(first)), 22 | first 23 | )([ 24 | [args.mins, "minutes", "histominute"], 25 | [args.hours, "hours", "histohour"], 26 | [args.days, "days", "histoday"], 27 | ]) 28 | 29 | export const interpolate = (i) => 30 | interpolateArray(args.maxWidth)(takeRight(time()[0])(i)) 31 | -------------------------------------------------------------------------------- /test.sh: -------------------------------------------------------------------------------- 1 | set -xe 2 | 3 | node index.js 4 | node index.js --coin ETC 5 | node index.js --coin LTC 6 | node index.js --coin XRP 7 | node index.js --coin XMR --hours 90 8 | node index.js --coin QTUM --hours 90 9 | node index.js --coin QTUM --hours 20 10 | node index.js --coin VIA --mins 120 11 | node index.js --coin XEM --mins 30 12 | node index.js --coin XEM --mins 30 --disable-legend 13 | node index.js -d 1200 14 | node index.js --coin DASH -d 800 15 | node index.js -w 200 -h 80 16 | node index.js -w 80 -h 5 17 | node index.js --coin ETH --currency BTC -d 30 18 | node index.js --coin ETH --currency USD 19 | node index.js --coin ADA --currency USD 20 | node index.js --coin ADA --currency BTC 21 | node index.js --coin XRP -ti RSI SMA BB EMA MACD 22 | node index.js --toplist 25 23 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/code-frame@7.12.11": 6 | version "7.12.11" 7 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" 8 | integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== 9 | dependencies: 10 | "@babel/highlight" "^7.10.4" 11 | 12 | "@babel/helper-validator-identifier@^7.14.5": 13 | version "7.14.5" 14 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8" 15 | integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg== 16 | 17 | "@babel/highlight@^7.10.4": 18 | version "7.14.5" 19 | resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" 20 | integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== 21 | dependencies: 22 | "@babel/helper-validator-identifier" "^7.14.5" 23 | chalk "^2.0.0" 24 | js-tokens "^4.0.0" 25 | 26 | "@eslint/eslintrc@^0.4.2": 27 | version "0.4.2" 28 | resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179" 29 | integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg== 30 | dependencies: 31 | ajv "^6.12.4" 32 | debug "^4.1.1" 33 | espree "^7.3.0" 34 | globals "^13.9.0" 35 | ignore "^4.0.6" 36 | import-fresh "^3.2.1" 37 | js-yaml "^3.13.1" 38 | minimatch "^3.0.4" 39 | strip-json-comments "^3.1.1" 40 | 41 | "@types/json5@^0.0.29": 42 | version "0.0.29" 43 | resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" 44 | integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= 45 | 46 | "@types/node@^6.0.96": 47 | version "6.14.13" 48 | resolved "https://registry.npmjs.org/@types/node/-/node-6.14.13.tgz" 49 | integrity sha512-J1F0XJ/9zxlZel5ZlbeSuHW2OpabrUAqpFuC2sm2I3by8sERQ8+KCjNKUcq8QHuzpGMWiJpo9ZxeHrqrP2KzQw== 50 | 51 | acorn-jsx@^5.3.1: 52 | version "5.3.1" 53 | resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b" 54 | integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng== 55 | 56 | acorn@^7.4.0: 57 | version "7.4.1" 58 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" 59 | integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== 60 | 61 | ajv@^6.10.0, ajv@^6.12.4: 62 | version "6.12.6" 63 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 64 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 65 | dependencies: 66 | fast-deep-equal "^3.1.1" 67 | fast-json-stable-stringify "^2.0.0" 68 | json-schema-traverse "^0.4.1" 69 | uri-js "^4.2.2" 70 | 71 | ajv@^8.0.1: 72 | version "8.6.0" 73 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720" 74 | integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ== 75 | dependencies: 76 | fast-deep-equal "^3.1.1" 77 | json-schema-traverse "^1.0.0" 78 | require-from-string "^2.0.2" 79 | uri-js "^4.2.2" 80 | 81 | ansi-colors@^4.1.1: 82 | version "4.1.1" 83 | resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" 84 | integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== 85 | 86 | ansi-regex@^2.0.0: 87 | version "2.1.1" 88 | resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" 89 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 90 | 91 | ansi-regex@^5.0.0: 92 | version "5.0.1" 93 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 94 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 95 | 96 | ansi-styles@^2.2.1: 97 | version "2.2.1" 98 | resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz" 99 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 100 | 101 | ansi-styles@^3.2.1: 102 | version "3.2.1" 103 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 104 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 105 | dependencies: 106 | color-convert "^1.9.0" 107 | 108 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 109 | version "4.3.0" 110 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 111 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 112 | dependencies: 113 | color-convert "^2.0.1" 114 | 115 | argparse@^1.0.7: 116 | version "1.0.10" 117 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 118 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 119 | dependencies: 120 | sprintf-js "~1.0.2" 121 | 122 | array-includes@^3.1.2, array-includes@^3.1.3: 123 | version "3.1.3" 124 | resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.3.tgz" 125 | integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== 126 | dependencies: 127 | call-bind "^1.0.2" 128 | define-properties "^1.1.3" 129 | es-abstract "^1.18.0-next.2" 130 | get-intrinsic "^1.1.1" 131 | is-string "^1.0.5" 132 | 133 | array-interpolatejs@1.0.2: 134 | version "1.0.2" 135 | resolved "https://registry.npmjs.org/array-interpolatejs/-/array-interpolatejs-1.0.2.tgz" 136 | integrity sha1-HVsIi7SG4bCJcU66yGmwbH5x8j0= 137 | dependencies: 138 | lodash "^4.17.4" 139 | 140 | array.prototype.flat@^1.2.4: 141 | version "1.2.4" 142 | resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" 143 | integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== 144 | dependencies: 145 | call-bind "^1.0.0" 146 | define-properties "^1.1.3" 147 | es-abstract "^1.18.0-next.1" 148 | 149 | array.prototype.flatmap@^1.2.4: 150 | version "1.2.4" 151 | resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.2.4.tgz" 152 | integrity sha512-r9Z0zYoxqHz60vvQbWEdXIEtCwHF0yxaWfno9qzXeNHvfyl3BZqygmGzb84dsubyaXLH4husF+NFgMSdpZhk2Q== 153 | dependencies: 154 | call-bind "^1.0.0" 155 | define-properties "^1.1.3" 156 | es-abstract "^1.18.0-next.1" 157 | function-bind "^1.1.1" 158 | 159 | asciichart@1.5.25: 160 | version "1.5.25" 161 | resolved "https://registry.npmjs.org/asciichart/-/asciichart-1.5.25.tgz" 162 | integrity sha512-PNxzXIPPOtWq8T7bgzBtk9cI2lgS4SJZthUHEiQ1aoIc3lNzGfUvIvo9LiAnq26TACo9t1/4qP6KTGAUbzX9Xg== 163 | 164 | astral-regex@^2.0.0: 165 | version "2.0.0" 166 | resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" 167 | integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== 168 | 169 | axios@0.21.1: 170 | version "0.21.1" 171 | resolved "https://registry.npmjs.org/axios/-/axios-0.21.1.tgz" 172 | integrity sha512-dKQiRHxGD9PPRIUNIWvZhPTPpl1rf/OxTYKsqKUDjBwYylTvV7SjSHJb9ratfyzM6wCdLCOYLzs73qpg5c4iGA== 173 | dependencies: 174 | follow-redirects "^1.10.0" 175 | 176 | babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: 177 | version "6.26.0" 178 | resolved "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz" 179 | integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= 180 | dependencies: 181 | chalk "^1.1.3" 182 | esutils "^2.0.2" 183 | js-tokens "^3.0.2" 184 | 185 | babel-eslint@^7.2.3: 186 | version "7.2.3" 187 | resolved "https://registry.npmjs.org/babel-eslint/-/babel-eslint-7.2.3.tgz" 188 | integrity sha1-sv4tgBJkcPXBlELcdXJTqJdxCCc= 189 | dependencies: 190 | babel-code-frame "^6.22.0" 191 | babel-traverse "^6.23.1" 192 | babel-types "^6.23.0" 193 | babylon "^6.17.0" 194 | 195 | babel-messages@^6.23.0: 196 | version "6.23.0" 197 | resolved "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz" 198 | integrity sha1-8830cDhYA1sqKVHG7F7fbGLyYw4= 199 | dependencies: 200 | babel-runtime "^6.22.0" 201 | 202 | babel-runtime@^6.22.0, babel-runtime@^6.26.0: 203 | version "6.26.0" 204 | resolved "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz" 205 | integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= 206 | dependencies: 207 | core-js "^2.4.0" 208 | regenerator-runtime "^0.11.0" 209 | 210 | babel-traverse@^6.23.1: 211 | version "6.26.0" 212 | resolved "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz" 213 | integrity sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4= 214 | dependencies: 215 | babel-code-frame "^6.26.0" 216 | babel-messages "^6.23.0" 217 | babel-runtime "^6.26.0" 218 | babel-types "^6.26.0" 219 | babylon "^6.18.0" 220 | debug "^2.6.8" 221 | globals "^9.18.0" 222 | invariant "^2.2.2" 223 | lodash "^4.17.4" 224 | 225 | babel-types@^6.23.0, babel-types@^6.26.0: 226 | version "6.26.0" 227 | resolved "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz" 228 | integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= 229 | dependencies: 230 | babel-runtime "^6.26.0" 231 | esutils "^2.0.2" 232 | lodash "^4.17.4" 233 | to-fast-properties "^1.0.3" 234 | 235 | babylon@^6.17.0, babylon@^6.18.0: 236 | version "6.18.0" 237 | resolved "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz" 238 | integrity sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ== 239 | 240 | balanced-match@^1.0.0: 241 | version "1.0.2" 242 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 243 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 244 | 245 | brace-expansion@^1.1.7: 246 | version "1.1.11" 247 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 248 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 249 | dependencies: 250 | balanced-match "^1.0.0" 251 | concat-map "0.0.1" 252 | 253 | call-bind@^1.0.0, call-bind@^1.0.2: 254 | version "1.0.2" 255 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 256 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 257 | dependencies: 258 | function-bind "^1.1.1" 259 | get-intrinsic "^1.0.2" 260 | 261 | callsites@^3.0.0: 262 | version "3.1.0" 263 | resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" 264 | integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== 265 | 266 | chalk@^1.1.3: 267 | version "1.1.3" 268 | resolved "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz" 269 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 270 | dependencies: 271 | ansi-styles "^2.2.1" 272 | escape-string-regexp "^1.0.2" 273 | has-ansi "^2.0.0" 274 | strip-ansi "^3.0.0" 275 | supports-color "^2.0.0" 276 | 277 | chalk@^2.0.0: 278 | version "2.4.2" 279 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 280 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 281 | dependencies: 282 | ansi-styles "^3.2.1" 283 | escape-string-regexp "^1.0.5" 284 | supports-color "^5.3.0" 285 | 286 | chalk@^4.0.0, chalk@^4.1.1: 287 | version "4.1.1" 288 | resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz" 289 | integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg== 290 | dependencies: 291 | ansi-styles "^4.1.0" 292 | supports-color "^7.1.0" 293 | 294 | clear@0.1.0: 295 | version "0.1.0" 296 | resolved "https://registry.npmjs.org/clear/-/clear-0.1.0.tgz" 297 | integrity sha512-qMjRnoL+JDPJHeLePZJuao6+8orzHMGP04A8CdwCNsKhRbOnKRjefxONR7bwILT3MHecxKBjHkKL/tkZ8r4Uzw== 298 | 299 | color-convert@^1.9.0: 300 | version "1.9.3" 301 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 302 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 303 | dependencies: 304 | color-name "1.1.3" 305 | 306 | color-convert@^2.0.1: 307 | version "2.0.1" 308 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 309 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 310 | dependencies: 311 | color-name "~1.1.4" 312 | 313 | color-name@1.1.3: 314 | version "1.1.3" 315 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 316 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 317 | 318 | color-name@~1.1.4: 319 | version "1.1.4" 320 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 321 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 322 | 323 | commander@^7.2.0: 324 | version "7.2.0" 325 | resolved "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz" 326 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 327 | 328 | concat-map@0.0.1: 329 | version "0.0.1" 330 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 331 | integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== 332 | 333 | core-js@^2.4.0: 334 | version "2.6.11" 335 | resolved "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz" 336 | integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== 337 | 338 | create-eslint-index@^1.0.0: 339 | version "1.0.0" 340 | resolved "https://registry.npmjs.org/create-eslint-index/-/create-eslint-index-1.0.0.tgz" 341 | integrity sha1-2VQ3LYbVeS/NZ+nyt5GxqxYkEbs= 342 | dependencies: 343 | lodash.get "^4.3.0" 344 | 345 | cross-spawn@^7.0.2: 346 | version "7.0.3" 347 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" 348 | integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== 349 | dependencies: 350 | path-key "^3.1.0" 351 | shebang-command "^2.0.0" 352 | which "^2.0.1" 353 | 354 | debug@^2.6.8, debug@^2.6.9: 355 | version "2.6.9" 356 | resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" 357 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 358 | dependencies: 359 | ms "2.0.0" 360 | 361 | debug@^3.2.7: 362 | version "3.2.7" 363 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 364 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 365 | dependencies: 366 | ms "^2.1.1" 367 | 368 | debug@^4.0.1, debug@^4.1.1: 369 | version "4.3.1" 370 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" 371 | integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== 372 | dependencies: 373 | ms "2.1.2" 374 | 375 | deep-is@^0.1.3: 376 | version "0.1.3" 377 | resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" 378 | integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= 379 | 380 | define-properties@^1.1.3: 381 | version "1.1.3" 382 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 383 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 384 | dependencies: 385 | object-keys "^1.0.12" 386 | 387 | doctrine@^2.1.0: 388 | version "2.1.0" 389 | resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" 390 | integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== 391 | dependencies: 392 | esutils "^2.0.2" 393 | 394 | doctrine@^3.0.0: 395 | version "3.0.0" 396 | resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" 397 | integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== 398 | dependencies: 399 | esutils "^2.0.2" 400 | 401 | emoji-regex@^8.0.0: 402 | version "8.0.0" 403 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 404 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 405 | 406 | enquirer@^2.3.5: 407 | version "2.3.6" 408 | resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d" 409 | integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg== 410 | dependencies: 411 | ansi-colors "^4.1.1" 412 | 413 | error-ex@^1.3.1: 414 | version "1.3.2" 415 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" 416 | integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== 417 | dependencies: 418 | is-arrayish "^0.2.1" 419 | 420 | es-abstract@^1.18.0-next.1: 421 | version "1.18.0" 422 | resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0.tgz" 423 | integrity sha512-LJzK7MrQa8TS0ja2w3YNLzUgJCGPdPOV1yVvezjNnS89D+VR08+Szt2mz3YB2Dck/+w5tfIq/RoUAFqJJGM2yw== 424 | dependencies: 425 | call-bind "^1.0.2" 426 | es-to-primitive "^1.2.1" 427 | function-bind "^1.1.1" 428 | get-intrinsic "^1.1.1" 429 | has "^1.0.3" 430 | has-symbols "^1.0.2" 431 | is-callable "^1.2.3" 432 | is-negative-zero "^2.0.1" 433 | is-regex "^1.1.2" 434 | is-string "^1.0.5" 435 | object-inspect "^1.9.0" 436 | object-keys "^1.1.1" 437 | object.assign "^4.1.2" 438 | string.prototype.trimend "^1.0.4" 439 | string.prototype.trimstart "^1.0.4" 440 | unbox-primitive "^1.0.0" 441 | 442 | es-abstract@^1.18.0-next.2: 443 | version "1.18.3" 444 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" 445 | integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== 446 | dependencies: 447 | call-bind "^1.0.2" 448 | es-to-primitive "^1.2.1" 449 | function-bind "^1.1.1" 450 | get-intrinsic "^1.1.1" 451 | has "^1.0.3" 452 | has-symbols "^1.0.2" 453 | is-callable "^1.2.3" 454 | is-negative-zero "^2.0.1" 455 | is-regex "^1.1.3" 456 | is-string "^1.0.6" 457 | object-inspect "^1.10.3" 458 | object-keys "^1.1.1" 459 | object.assign "^4.1.2" 460 | string.prototype.trimend "^1.0.4" 461 | string.prototype.trimstart "^1.0.4" 462 | unbox-primitive "^1.0.1" 463 | 464 | es-to-primitive@^1.2.1: 465 | version "1.2.1" 466 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 467 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 468 | dependencies: 469 | is-callable "^1.1.4" 470 | is-date-object "^1.0.1" 471 | is-symbol "^1.0.2" 472 | 473 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 474 | version "1.0.5" 475 | resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" 476 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 477 | 478 | escape-string-regexp@^4.0.0: 479 | version "4.0.0" 480 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" 481 | integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== 482 | 483 | eslint-ast-utils@^1.0.0: 484 | version "1.1.0" 485 | resolved "https://registry.npmjs.org/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz" 486 | integrity sha512-otzzTim2/1+lVrlH19EfQQJEhVJSu0zOb9ygb3iapN6UlyaDtyRq4b5U1FuW0v1lRa9Fp/GJyHkSwm6NqABgCA== 487 | dependencies: 488 | lodash.get "^4.4.2" 489 | lodash.zip "^4.2.0" 490 | 491 | eslint-config-cleanjs@^4.0.0: 492 | version "4.0.0" 493 | resolved "https://registry.npmjs.org/eslint-config-cleanjs/-/eslint-config-cleanjs-4.0.0.tgz" 494 | integrity sha1-9rFOMp+2gLuyfPU5ggJB6s62G50= 495 | 496 | eslint-import-resolver-node@^0.3.4: 497 | version "0.3.4" 498 | resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" 499 | integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== 500 | dependencies: 501 | debug "^2.6.9" 502 | resolve "^1.13.1" 503 | 504 | eslint-module-utils@^2.6.1: 505 | version "2.6.1" 506 | resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" 507 | integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== 508 | dependencies: 509 | debug "^3.2.7" 510 | pkg-dir "^2.0.0" 511 | 512 | eslint-plugin-better@^0.1.5: 513 | version "0.1.5" 514 | resolved "https://registry.npmjs.org/eslint-plugin-better/-/eslint-plugin-better-0.1.5.tgz" 515 | integrity sha1-nlB4MbbgLbv3UlAz0bzY6o2znOg= 516 | 517 | eslint-plugin-fp@^2.3.0: 518 | version "2.3.0" 519 | resolved "https://registry.npmjs.org/eslint-plugin-fp/-/eslint-plugin-fp-2.3.0.tgz" 520 | integrity sha1-N20qEIcQ6YGYC9w4deO5kg2gSJw= 521 | dependencies: 522 | create-eslint-index "^1.0.0" 523 | eslint-ast-utils "^1.0.0" 524 | lodash "^4.13.1" 525 | req-all "^0.1.0" 526 | 527 | eslint-plugin-import@^2.7.0: 528 | version "2.23.4" 529 | resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.4.tgz#8dceb1ed6b73e46e50ec9a5bb2411b645e7d3d97" 530 | integrity sha512-6/wP8zZRsnQFiR3iaPFgh5ImVRM1WN5NUWfTIRqwOdeiGJlBcSk82o1FEVq8yXmy4lkIzTo7YhHCIxlU/2HyEQ== 531 | dependencies: 532 | array-includes "^3.1.3" 533 | array.prototype.flat "^1.2.4" 534 | debug "^2.6.9" 535 | doctrine "^2.1.0" 536 | eslint-import-resolver-node "^0.3.4" 537 | eslint-module-utils "^2.6.1" 538 | find-up "^2.0.0" 539 | has "^1.0.3" 540 | is-core-module "^2.4.0" 541 | minimatch "^3.0.4" 542 | object.values "^1.1.3" 543 | pkg-up "^2.0.0" 544 | read-pkg-up "^3.0.0" 545 | resolve "^1.20.0" 546 | tsconfig-paths "^3.9.0" 547 | 548 | eslint-plugin-react@^7.23.2: 549 | version "7.23.2" 550 | resolved "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.23.2.tgz" 551 | integrity sha512-AfjgFQB+nYszudkxRkTFu0UR1zEQig0ArVMPloKhxwlwkzaw/fBiH0QWcBBhZONlXqQC51+nfqFrkn4EzHcGBw== 552 | dependencies: 553 | array-includes "^3.1.3" 554 | array.prototype.flatmap "^1.2.4" 555 | doctrine "^2.1.0" 556 | has "^1.0.3" 557 | jsx-ast-utils "^2.4.1 || ^3.0.0" 558 | minimatch "^3.0.4" 559 | object.entries "^1.1.3" 560 | object.fromentries "^2.0.4" 561 | object.values "^1.1.3" 562 | prop-types "^15.7.2" 563 | resolve "^2.0.0-next.3" 564 | string.prototype.matchall "^4.0.4" 565 | 566 | eslint-scope@^5.1.1: 567 | version "5.1.1" 568 | resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" 569 | integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== 570 | dependencies: 571 | esrecurse "^4.3.0" 572 | estraverse "^4.1.1" 573 | 574 | eslint-utils@^2.1.0: 575 | version "2.1.0" 576 | resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" 577 | integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== 578 | dependencies: 579 | eslint-visitor-keys "^1.1.0" 580 | 581 | eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: 582 | version "1.3.0" 583 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" 584 | integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== 585 | 586 | eslint-visitor-keys@^2.0.0: 587 | version "2.1.0" 588 | resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" 589 | integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== 590 | 591 | eslint@^7.26.0: 592 | version "7.28.0" 593 | resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.28.0.tgz#435aa17a0b82c13bb2be9d51408b617e49c1e820" 594 | integrity sha512-UMfH0VSjP0G4p3EWirscJEQ/cHqnT/iuH6oNZOB94nBjWbMnhGEPxsZm1eyIW0C/9jLI0Fow4W5DXLjEI7mn1g== 595 | dependencies: 596 | "@babel/code-frame" "7.12.11" 597 | "@eslint/eslintrc" "^0.4.2" 598 | ajv "^6.10.0" 599 | chalk "^4.0.0" 600 | cross-spawn "^7.0.2" 601 | debug "^4.0.1" 602 | doctrine "^3.0.0" 603 | enquirer "^2.3.5" 604 | escape-string-regexp "^4.0.0" 605 | eslint-scope "^5.1.1" 606 | eslint-utils "^2.1.0" 607 | eslint-visitor-keys "^2.0.0" 608 | espree "^7.3.1" 609 | esquery "^1.4.0" 610 | esutils "^2.0.2" 611 | fast-deep-equal "^3.1.3" 612 | file-entry-cache "^6.0.1" 613 | functional-red-black-tree "^1.0.1" 614 | glob-parent "^5.1.2" 615 | globals "^13.6.0" 616 | ignore "^4.0.6" 617 | import-fresh "^3.0.0" 618 | imurmurhash "^0.1.4" 619 | is-glob "^4.0.0" 620 | js-yaml "^3.13.1" 621 | json-stable-stringify-without-jsonify "^1.0.1" 622 | levn "^0.4.1" 623 | lodash.merge "^4.6.2" 624 | minimatch "^3.0.4" 625 | natural-compare "^1.4.0" 626 | optionator "^0.9.1" 627 | progress "^2.0.0" 628 | regexpp "^3.1.0" 629 | semver "^7.2.1" 630 | strip-ansi "^6.0.0" 631 | strip-json-comments "^3.1.0" 632 | table "^6.0.9" 633 | text-table "^0.2.0" 634 | v8-compile-cache "^2.0.3" 635 | 636 | espree@^7.3.0, espree@^7.3.1: 637 | version "7.3.1" 638 | resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" 639 | integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== 640 | dependencies: 641 | acorn "^7.4.0" 642 | acorn-jsx "^5.3.1" 643 | eslint-visitor-keys "^1.3.0" 644 | 645 | esprima@^4.0.0: 646 | version "4.0.1" 647 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 648 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 649 | 650 | esquery@^1.4.0: 651 | version "1.4.0" 652 | resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" 653 | integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== 654 | dependencies: 655 | estraverse "^5.1.0" 656 | 657 | esrecurse@^4.3.0: 658 | version "4.3.0" 659 | resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" 660 | integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== 661 | dependencies: 662 | estraverse "^5.2.0" 663 | 664 | estraverse@^4.1.1: 665 | version "4.3.0" 666 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" 667 | integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== 668 | 669 | estraverse@^5.1.0, estraverse@^5.2.0: 670 | version "5.2.0" 671 | resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" 672 | integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== 673 | 674 | esutils@^2.0.2: 675 | version "2.0.3" 676 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 677 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 678 | 679 | fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: 680 | version "3.1.3" 681 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 682 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 683 | 684 | fast-json-stable-stringify@^2.0.0: 685 | version "2.1.0" 686 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 687 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 688 | 689 | fast-levenshtein@^2.0.6: 690 | version "2.0.6" 691 | resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" 692 | integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= 693 | 694 | file-entry-cache@^6.0.1: 695 | version "6.0.1" 696 | resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" 697 | integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== 698 | dependencies: 699 | flat-cache "^3.0.4" 700 | 701 | find-up@^2.0.0, find-up@^2.1.0: 702 | version "2.1.0" 703 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" 704 | integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= 705 | dependencies: 706 | locate-path "^2.0.0" 707 | 708 | flat-cache@^3.0.4: 709 | version "3.0.4" 710 | resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" 711 | integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== 712 | dependencies: 713 | flatted "^3.1.0" 714 | rimraf "^3.0.2" 715 | 716 | flatted@^3.1.0: 717 | version "3.1.1" 718 | resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" 719 | integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== 720 | 721 | follow-redirects@^1.10.0: 722 | version "1.15.6" 723 | resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b" 724 | integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA== 725 | 726 | fs.realpath@^1.0.0: 727 | version "1.0.0" 728 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 729 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 730 | 731 | fs@^0.0.1-security: 732 | version "0.0.1-security" 733 | resolved "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz" 734 | integrity sha1-invTcYa23d84E/I4WLV+yq9eQdQ= 735 | 736 | function-bind@^1.1.1: 737 | version "1.1.1" 738 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 739 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 740 | 741 | functional-red-black-tree@^1.0.1: 742 | version "1.0.1" 743 | resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" 744 | integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= 745 | 746 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 747 | version "1.1.1" 748 | resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz" 749 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 750 | dependencies: 751 | function-bind "^1.1.1" 752 | has "^1.0.3" 753 | has-symbols "^1.0.1" 754 | 755 | glob-parent@^5.1.2: 756 | version "5.1.2" 757 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" 758 | integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== 759 | dependencies: 760 | is-glob "^4.0.1" 761 | 762 | glob@^7.1.3: 763 | version "7.1.7" 764 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 765 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 766 | dependencies: 767 | fs.realpath "^1.0.0" 768 | inflight "^1.0.4" 769 | inherits "2" 770 | minimatch "^3.0.4" 771 | once "^1.3.0" 772 | path-is-absolute "^1.0.0" 773 | 774 | globals@^13.6.0, globals@^13.9.0: 775 | version "13.9.0" 776 | resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb" 777 | integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA== 778 | dependencies: 779 | type-fest "^0.20.2" 780 | 781 | globals@^9.18.0: 782 | version "9.18.0" 783 | resolved "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz" 784 | integrity sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ== 785 | 786 | graceful-fs@^4.1.2: 787 | version "4.2.6" 788 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" 789 | integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== 790 | 791 | has-ansi@^2.0.0: 792 | version "2.0.0" 793 | resolved "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz" 794 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 795 | dependencies: 796 | ansi-regex "^2.0.0" 797 | 798 | has-bigints@^1.0.1: 799 | version "1.0.1" 800 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 801 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 802 | 803 | has-flag@^3.0.0: 804 | version "3.0.0" 805 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 806 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 807 | 808 | has-flag@^4.0.0: 809 | version "4.0.0" 810 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 811 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 812 | 813 | has-symbols@^1.0.1, has-symbols@^1.0.2: 814 | version "1.0.2" 815 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 816 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 817 | 818 | has@^1.0.3: 819 | version "1.0.3" 820 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 821 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 822 | dependencies: 823 | function-bind "^1.1.1" 824 | 825 | hosted-git-info@^2.1.4: 826 | version "2.8.9" 827 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" 828 | integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== 829 | 830 | ignore@^4.0.6: 831 | version "4.0.6" 832 | resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" 833 | integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== 834 | 835 | import-fresh@^3.0.0, import-fresh@^3.2.1: 836 | version "3.3.0" 837 | resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" 838 | integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== 839 | dependencies: 840 | parent-module "^1.0.0" 841 | resolve-from "^4.0.0" 842 | 843 | imurmurhash@^0.1.4: 844 | version "0.1.4" 845 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 846 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 847 | 848 | inflight@^1.0.4: 849 | version "1.0.6" 850 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 851 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 852 | dependencies: 853 | once "^1.3.0" 854 | wrappy "1" 855 | 856 | inherits@2: 857 | version "2.0.4" 858 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 859 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 860 | 861 | internal-slot@^1.0.3: 862 | version "1.0.3" 863 | resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz" 864 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 865 | dependencies: 866 | get-intrinsic "^1.1.0" 867 | has "^1.0.3" 868 | side-channel "^1.0.4" 869 | 870 | invariant@^2.2.2: 871 | version "2.2.4" 872 | resolved "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz" 873 | integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== 874 | dependencies: 875 | loose-envify "^1.0.0" 876 | 877 | is-arrayish@^0.2.1: 878 | version "0.2.1" 879 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 880 | integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= 881 | 882 | is-bigint@^1.0.1: 883 | version "1.0.2" 884 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" 885 | integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== 886 | 887 | is-boolean-object@^1.1.0: 888 | version "1.1.1" 889 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" 890 | integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== 891 | dependencies: 892 | call-bind "^1.0.2" 893 | 894 | is-callable@^1.1.4, is-callable@^1.2.3: 895 | version "1.2.3" 896 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" 897 | integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== 898 | 899 | is-core-module@^2.2.0, is-core-module@^2.4.0: 900 | version "2.4.0" 901 | resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz" 902 | integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== 903 | dependencies: 904 | has "^1.0.3" 905 | 906 | is-date-object@^1.0.1: 907 | version "1.0.4" 908 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" 909 | integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== 910 | 911 | is-extglob@^2.1.1: 912 | version "2.1.1" 913 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 914 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 915 | 916 | is-fullwidth-code-point@^3.0.0: 917 | version "3.0.0" 918 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 919 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 920 | 921 | is-glob@^4.0.0, is-glob@^4.0.1: 922 | version "4.0.1" 923 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" 924 | integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== 925 | dependencies: 926 | is-extglob "^2.1.1" 927 | 928 | is-negative-zero@^2.0.1: 929 | version "2.0.1" 930 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 931 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 932 | 933 | is-number-object@^1.0.4: 934 | version "1.0.5" 935 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" 936 | integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== 937 | 938 | is-regex@^1.1.2, is-regex@^1.1.3: 939 | version "1.1.3" 940 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" 941 | integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== 942 | dependencies: 943 | call-bind "^1.0.2" 944 | has-symbols "^1.0.2" 945 | 946 | is-string@^1.0.5, is-string@^1.0.6: 947 | version "1.0.6" 948 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" 949 | integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== 950 | 951 | is-symbol@^1.0.2, is-symbol@^1.0.3: 952 | version "1.0.4" 953 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 954 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 955 | dependencies: 956 | has-symbols "^1.0.2" 957 | 958 | isexe@^2.0.0: 959 | version "2.0.0" 960 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 961 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 962 | 963 | "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^3.0.2: 964 | version "3.0.2" 965 | resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz" 966 | integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= 967 | 968 | js-tokens@^4.0.0: 969 | version "4.0.0" 970 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 971 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 972 | 973 | js-yaml@^3.13.1: 974 | version "3.14.1" 975 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 976 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 977 | dependencies: 978 | argparse "^1.0.7" 979 | esprima "^4.0.0" 980 | 981 | json-parse-better-errors@^1.0.1: 982 | version "1.0.2" 983 | resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 984 | integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== 985 | 986 | json-schema-traverse@^0.4.1: 987 | version "0.4.1" 988 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 989 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 990 | 991 | json-schema-traverse@^1.0.0: 992 | version "1.0.0" 993 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" 994 | integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== 995 | 996 | json-stable-stringify-without-jsonify@^1.0.1: 997 | version "1.0.1" 998 | resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" 999 | integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= 1000 | 1001 | json5@^1.0.1: 1002 | version "1.0.2" 1003 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" 1004 | integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== 1005 | dependencies: 1006 | minimist "^1.2.0" 1007 | 1008 | "jsx-ast-utils@^2.4.1 || ^3.0.0": 1009 | version "3.2.0" 1010 | resolved "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-3.2.0.tgz" 1011 | integrity sha512-EIsmt3O3ljsU6sot/J4E1zDRxfBNrhjyf/OKjlydwgEimQuznlM4Wv7U+ueONJMyEn1WRE0K8dhi3dVAXYT24Q== 1012 | dependencies: 1013 | array-includes "^3.1.2" 1014 | object.assign "^4.1.2" 1015 | 1016 | levn@^0.4.1: 1017 | version "0.4.1" 1018 | resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" 1019 | integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== 1020 | dependencies: 1021 | prelude-ls "^1.2.1" 1022 | type-check "~0.4.0" 1023 | 1024 | load-json-file@^4.0.0: 1025 | version "4.0.0" 1026 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" 1027 | integrity sha1-L19Fq5HjMhYjT9U62rZo607AmTs= 1028 | dependencies: 1029 | graceful-fs "^4.1.2" 1030 | parse-json "^4.0.0" 1031 | pify "^3.0.0" 1032 | strip-bom "^3.0.0" 1033 | 1034 | locate-path@^2.0.0: 1035 | version "2.0.0" 1036 | resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" 1037 | integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= 1038 | dependencies: 1039 | p-locate "^2.0.0" 1040 | path-exists "^3.0.0" 1041 | 1042 | lodash.clonedeep@^4.5.0: 1043 | version "4.5.0" 1044 | resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" 1045 | integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= 1046 | 1047 | lodash.get@^4.3.0, lodash.get@^4.4.2: 1048 | version "4.4.2" 1049 | resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" 1050 | integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= 1051 | 1052 | lodash.merge@^4.6.2: 1053 | version "4.6.2" 1054 | resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" 1055 | integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== 1056 | 1057 | lodash.truncate@^4.4.2: 1058 | version "4.4.2" 1059 | resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" 1060 | integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= 1061 | 1062 | lodash.zip@^4.2.0: 1063 | version "4.2.0" 1064 | resolved "https://registry.npmjs.org/lodash.zip/-/lodash.zip-4.2.0.tgz" 1065 | integrity sha1-7GZi5IlkCO1KtsVCo5kLcswIACA= 1066 | 1067 | lodash@4.17.21, lodash@^4.13.1, lodash@^4.17.4: 1068 | version "4.17.21" 1069 | resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" 1070 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 1071 | 1072 | loose-envify@^1.0.0, loose-envify@^1.4.0: 1073 | version "1.4.0" 1074 | resolved "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz" 1075 | integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== 1076 | dependencies: 1077 | js-tokens "^3.0.0 || ^4.0.0" 1078 | 1079 | lru-cache@^6.0.0: 1080 | version "6.0.0" 1081 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" 1082 | integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== 1083 | dependencies: 1084 | yallist "^4.0.0" 1085 | 1086 | minimatch@^3.0.4: 1087 | version "3.1.2" 1088 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" 1089 | integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== 1090 | dependencies: 1091 | brace-expansion "^1.1.7" 1092 | 1093 | minimist@^1.2.0: 1094 | version "1.2.7" 1095 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" 1096 | integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== 1097 | 1098 | moment@2.29.4: 1099 | version "2.29.4" 1100 | resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" 1101 | integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== 1102 | 1103 | ms@2.0.0: 1104 | version "2.0.0" 1105 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 1106 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 1107 | 1108 | ms@2.1.2: 1109 | version "2.1.2" 1110 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" 1111 | integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== 1112 | 1113 | ms@^2.1.1: 1114 | version "2.1.3" 1115 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1116 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1117 | 1118 | natural-compare@^1.4.0: 1119 | version "1.4.0" 1120 | resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" 1121 | integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= 1122 | 1123 | normalize-package-data@^2.3.2: 1124 | version "2.5.0" 1125 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" 1126 | integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== 1127 | dependencies: 1128 | hosted-git-info "^2.1.4" 1129 | resolve "^1.10.0" 1130 | semver "2 || 3 || 4 || 5" 1131 | validate-npm-package-license "^3.0.1" 1132 | 1133 | object-assign@^4.1.1: 1134 | version "4.1.1" 1135 | resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" 1136 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 1137 | 1138 | object-inspect@^1.10.3, object-inspect@^1.9.0: 1139 | version "1.10.3" 1140 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" 1141 | integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== 1142 | 1143 | object-keys@^1.0.12, object-keys@^1.1.1: 1144 | version "1.1.1" 1145 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 1146 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 1147 | 1148 | object.assign@^4.1.2: 1149 | version "4.1.2" 1150 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 1151 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 1152 | dependencies: 1153 | call-bind "^1.0.0" 1154 | define-properties "^1.1.3" 1155 | has-symbols "^1.0.1" 1156 | object-keys "^1.1.1" 1157 | 1158 | object.entries@^1.1.3: 1159 | version "1.1.3" 1160 | resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.3.tgz" 1161 | integrity sha512-ym7h7OZebNS96hn5IJeyUmaWhaSM4SVtAPPfNLQEI2MYWCO2egsITb9nab2+i/Pwibx+R0mtn+ltKJXRSeTMGg== 1162 | dependencies: 1163 | call-bind "^1.0.0" 1164 | define-properties "^1.1.3" 1165 | es-abstract "^1.18.0-next.1" 1166 | has "^1.0.3" 1167 | 1168 | object.fromentries@^2.0.4: 1169 | version "2.0.4" 1170 | resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.4.tgz" 1171 | integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ== 1172 | dependencies: 1173 | call-bind "^1.0.2" 1174 | define-properties "^1.1.3" 1175 | es-abstract "^1.18.0-next.2" 1176 | has "^1.0.3" 1177 | 1178 | object.values@^1.1.3: 1179 | version "1.1.3" 1180 | resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.3.tgz" 1181 | integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== 1182 | dependencies: 1183 | call-bind "^1.0.2" 1184 | define-properties "^1.1.3" 1185 | es-abstract "^1.18.0-next.2" 1186 | has "^1.0.3" 1187 | 1188 | once@^1.3.0: 1189 | version "1.4.0" 1190 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 1191 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 1192 | dependencies: 1193 | wrappy "1" 1194 | 1195 | optionator@^0.9.1: 1196 | version "0.9.1" 1197 | resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" 1198 | integrity sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw== 1199 | dependencies: 1200 | deep-is "^0.1.3" 1201 | fast-levenshtein "^2.0.6" 1202 | levn "^0.4.1" 1203 | prelude-ls "^1.2.1" 1204 | type-check "^0.4.0" 1205 | word-wrap "^1.2.3" 1206 | 1207 | p-limit@^1.1.0: 1208 | version "1.3.0" 1209 | resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" 1210 | integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== 1211 | dependencies: 1212 | p-try "^1.0.0" 1213 | 1214 | p-locate@^2.0.0: 1215 | version "2.0.0" 1216 | resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" 1217 | integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= 1218 | dependencies: 1219 | p-limit "^1.1.0" 1220 | 1221 | p-try@^1.0.0: 1222 | version "1.0.0" 1223 | resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" 1224 | integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= 1225 | 1226 | parent-module@^1.0.0: 1227 | version "1.0.1" 1228 | resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 1229 | integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== 1230 | dependencies: 1231 | callsites "^3.0.0" 1232 | 1233 | parse-json@^4.0.0: 1234 | version "4.0.0" 1235 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" 1236 | integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= 1237 | dependencies: 1238 | error-ex "^1.3.1" 1239 | json-parse-better-errors "^1.0.1" 1240 | 1241 | path-exists@^3.0.0: 1242 | version "3.0.0" 1243 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" 1244 | integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= 1245 | 1246 | path-is-absolute@^1.0.0: 1247 | version "1.0.1" 1248 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 1249 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 1250 | 1251 | path-key@^3.1.0: 1252 | version "3.1.1" 1253 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1254 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1255 | 1256 | path-parse@^1.0.6: 1257 | version "1.0.7" 1258 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1259 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1260 | 1261 | path-type@^3.0.0: 1262 | version "3.0.0" 1263 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" 1264 | integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== 1265 | dependencies: 1266 | pify "^3.0.0" 1267 | 1268 | pify@^3.0.0: 1269 | version "3.0.0" 1270 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 1271 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 1272 | 1273 | pkg-dir@^2.0.0: 1274 | version "2.0.0" 1275 | resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" 1276 | integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= 1277 | dependencies: 1278 | find-up "^2.1.0" 1279 | 1280 | pkg-up@^2.0.0: 1281 | version "2.0.0" 1282 | resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" 1283 | integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= 1284 | dependencies: 1285 | find-up "^2.1.0" 1286 | 1287 | prelude-ls@^1.2.1: 1288 | version "1.2.1" 1289 | resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" 1290 | integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== 1291 | 1292 | progress@^2.0.0: 1293 | version "2.0.3" 1294 | resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" 1295 | integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== 1296 | 1297 | prop-types@^15.7.2: 1298 | version "15.7.2" 1299 | resolved "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz" 1300 | integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== 1301 | dependencies: 1302 | loose-envify "^1.4.0" 1303 | object-assign "^4.1.1" 1304 | react-is "^16.8.1" 1305 | 1306 | punycode@^2.1.0: 1307 | version "2.1.1" 1308 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 1309 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 1310 | 1311 | react-is@^16.8.1: 1312 | version "16.13.1" 1313 | resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" 1314 | integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== 1315 | 1316 | read-pkg-up@^3.0.0: 1317 | version "3.0.0" 1318 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" 1319 | integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= 1320 | dependencies: 1321 | find-up "^2.0.0" 1322 | read-pkg "^3.0.0" 1323 | 1324 | read-pkg@^3.0.0: 1325 | version "3.0.0" 1326 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" 1327 | integrity sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k= 1328 | dependencies: 1329 | load-json-file "^4.0.0" 1330 | normalize-package-data "^2.3.2" 1331 | path-type "^3.0.0" 1332 | 1333 | regenerator-runtime@^0.11.0: 1334 | version "0.11.1" 1335 | resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz" 1336 | integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== 1337 | 1338 | regexp.prototype.flags@^1.3.1: 1339 | version "1.3.1" 1340 | resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz" 1341 | integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== 1342 | dependencies: 1343 | call-bind "^1.0.2" 1344 | define-properties "^1.1.3" 1345 | 1346 | regexpp@^3.1.0: 1347 | version "3.1.0" 1348 | resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" 1349 | integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== 1350 | 1351 | req-all@^0.1.0: 1352 | version "0.1.0" 1353 | resolved "https://registry.npmjs.org/req-all/-/req-all-0.1.0.tgz" 1354 | integrity sha1-EwBR4qzligLqy/ydRIV3pzapJzo= 1355 | 1356 | require-from-string@^2.0.2: 1357 | version "2.0.2" 1358 | resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" 1359 | integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== 1360 | 1361 | resolve-from@^4.0.0: 1362 | version "4.0.0" 1363 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" 1364 | integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== 1365 | 1366 | resolve@^1.10.0, resolve@^1.13.1, resolve@^1.20.0: 1367 | version "1.20.0" 1368 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 1369 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 1370 | dependencies: 1371 | is-core-module "^2.2.0" 1372 | path-parse "^1.0.6" 1373 | 1374 | resolve@^2.0.0-next.3: 1375 | version "2.0.0-next.3" 1376 | resolved "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.3.tgz" 1377 | integrity sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q== 1378 | dependencies: 1379 | is-core-module "^2.2.0" 1380 | path-parse "^1.0.6" 1381 | 1382 | rimraf@^3.0.2: 1383 | version "3.0.2" 1384 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 1385 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 1386 | dependencies: 1387 | glob "^7.1.3" 1388 | 1389 | "semver@2 || 3 || 4 || 5": 1390 | version "5.7.2" 1391 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" 1392 | integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== 1393 | 1394 | semver@^7.2.1: 1395 | version "7.5.4" 1396 | resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" 1397 | integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== 1398 | dependencies: 1399 | lru-cache "^6.0.0" 1400 | 1401 | shebang-command@^2.0.0: 1402 | version "2.0.0" 1403 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 1404 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 1405 | dependencies: 1406 | shebang-regex "^3.0.0" 1407 | 1408 | shebang-regex@^3.0.0: 1409 | version "3.0.0" 1410 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 1411 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 1412 | 1413 | side-channel@^1.0.4: 1414 | version "1.0.4" 1415 | resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" 1416 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1417 | dependencies: 1418 | call-bind "^1.0.0" 1419 | get-intrinsic "^1.0.2" 1420 | object-inspect "^1.9.0" 1421 | 1422 | slice-ansi@^4.0.0: 1423 | version "4.0.0" 1424 | resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" 1425 | integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== 1426 | dependencies: 1427 | ansi-styles "^4.0.0" 1428 | astral-regex "^2.0.0" 1429 | is-fullwidth-code-point "^3.0.0" 1430 | 1431 | spdx-correct@^3.0.0: 1432 | version "3.1.1" 1433 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" 1434 | integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== 1435 | dependencies: 1436 | spdx-expression-parse "^3.0.0" 1437 | spdx-license-ids "^3.0.0" 1438 | 1439 | spdx-exceptions@^2.1.0: 1440 | version "2.3.0" 1441 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 1442 | integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== 1443 | 1444 | spdx-expression-parse@^3.0.0: 1445 | version "3.0.1" 1446 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" 1447 | integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== 1448 | dependencies: 1449 | spdx-exceptions "^2.1.0" 1450 | spdx-license-ids "^3.0.0" 1451 | 1452 | spdx-license-ids@^3.0.0: 1453 | version "3.0.9" 1454 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz#8a595135def9592bda69709474f1cbeea7c2467f" 1455 | integrity sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ== 1456 | 1457 | sprintf-js@~1.0.2: 1458 | version "1.0.3" 1459 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 1460 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 1461 | 1462 | string-width@^4.2.0: 1463 | version "4.2.2" 1464 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" 1465 | integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== 1466 | dependencies: 1467 | emoji-regex "^8.0.0" 1468 | is-fullwidth-code-point "^3.0.0" 1469 | strip-ansi "^6.0.0" 1470 | 1471 | string.prototype.matchall@^4.0.4: 1472 | version "4.0.4" 1473 | resolved "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.4.tgz" 1474 | integrity sha512-pknFIWVachNcyqRfaQSeu/FUfpvJTe4uskUSZ9Wc1RijsPuzbZ8TyYT8WCNnntCjUEqQ3vUHMAfVj2+wLAisPQ== 1475 | dependencies: 1476 | call-bind "^1.0.2" 1477 | define-properties "^1.1.3" 1478 | es-abstract "^1.18.0-next.2" 1479 | has-symbols "^1.0.1" 1480 | internal-slot "^1.0.3" 1481 | regexp.prototype.flags "^1.3.1" 1482 | side-channel "^1.0.4" 1483 | 1484 | string.prototype.trimend@^1.0.4: 1485 | version "1.0.4" 1486 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 1487 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 1488 | dependencies: 1489 | call-bind "^1.0.2" 1490 | define-properties "^1.1.3" 1491 | 1492 | string.prototype.trimstart@^1.0.4: 1493 | version "1.0.4" 1494 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 1495 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 1496 | dependencies: 1497 | call-bind "^1.0.2" 1498 | define-properties "^1.1.3" 1499 | 1500 | strip-ansi@^3.0.0: 1501 | version "3.0.1" 1502 | resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" 1503 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 1504 | dependencies: 1505 | ansi-regex "^2.0.0" 1506 | 1507 | strip-ansi@^6.0.0: 1508 | version "6.0.0" 1509 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" 1510 | integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== 1511 | dependencies: 1512 | ansi-regex "^5.0.0" 1513 | 1514 | strip-bom@^3.0.0: 1515 | version "3.0.0" 1516 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" 1517 | integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= 1518 | 1519 | strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: 1520 | version "3.1.1" 1521 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" 1522 | integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== 1523 | 1524 | supports-color@^2.0.0: 1525 | version "2.0.0" 1526 | resolved "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz" 1527 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 1528 | 1529 | supports-color@^5.3.0: 1530 | version "5.5.0" 1531 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 1532 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 1533 | dependencies: 1534 | has-flag "^3.0.0" 1535 | 1536 | supports-color@^7.1.0: 1537 | version "7.2.0" 1538 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 1539 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 1540 | dependencies: 1541 | has-flag "^4.0.0" 1542 | 1543 | table@^6.0.9: 1544 | version "6.7.1" 1545 | resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" 1546 | integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== 1547 | dependencies: 1548 | ajv "^8.0.1" 1549 | lodash.clonedeep "^4.5.0" 1550 | lodash.truncate "^4.4.2" 1551 | slice-ansi "^4.0.0" 1552 | string-width "^4.2.0" 1553 | strip-ansi "^6.0.0" 1554 | 1555 | technicalindicators@^3.1.0: 1556 | version "3.1.0" 1557 | resolved "https://registry.npmjs.org/technicalindicators/-/technicalindicators-3.1.0.tgz" 1558 | integrity sha512-f16mOc+Y05hNy/of+UbGxhxQQmxUztCiluhsqC5QLUYz4WowUgKde9m6nIjK1Kay0wGHigT0IkOabpp0+22UfA== 1559 | dependencies: 1560 | "@types/node" "^6.0.96" 1561 | 1562 | text-table@^0.2.0: 1563 | version "0.2.0" 1564 | resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" 1565 | integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= 1566 | 1567 | to-fast-properties@^1.0.3: 1568 | version "1.0.3" 1569 | resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz" 1570 | integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= 1571 | 1572 | tsconfig-paths@^3.9.0: 1573 | version "3.9.0" 1574 | resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" 1575 | integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== 1576 | dependencies: 1577 | "@types/json5" "^0.0.29" 1578 | json5 "^1.0.1" 1579 | minimist "^1.2.0" 1580 | strip-bom "^3.0.0" 1581 | 1582 | type-check@^0.4.0, type-check@~0.4.0: 1583 | version "0.4.0" 1584 | resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 1585 | integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== 1586 | dependencies: 1587 | prelude-ls "^1.2.1" 1588 | 1589 | type-fest@^0.20.2: 1590 | version "0.20.2" 1591 | resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" 1592 | integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== 1593 | 1594 | unbox-primitive@^1.0.0, unbox-primitive@^1.0.1: 1595 | version "1.0.1" 1596 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 1597 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 1598 | dependencies: 1599 | function-bind "^1.1.1" 1600 | has-bigints "^1.0.1" 1601 | has-symbols "^1.0.2" 1602 | which-boxed-primitive "^1.0.2" 1603 | 1604 | uri-js@^4.2.2: 1605 | version "4.4.1" 1606 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 1607 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 1608 | dependencies: 1609 | punycode "^2.1.0" 1610 | 1611 | v8-compile-cache@^2.0.3: 1612 | version "2.3.0" 1613 | resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" 1614 | integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== 1615 | 1616 | validate-npm-package-license@^3.0.1: 1617 | version "3.0.4" 1618 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" 1619 | integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== 1620 | dependencies: 1621 | spdx-correct "^3.0.0" 1622 | spdx-expression-parse "^3.0.0" 1623 | 1624 | which-boxed-primitive@^1.0.2: 1625 | version "1.0.2" 1626 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 1627 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 1628 | dependencies: 1629 | is-bigint "^1.0.1" 1630 | is-boolean-object "^1.1.0" 1631 | is-number-object "^1.0.4" 1632 | is-string "^1.0.5" 1633 | is-symbol "^1.0.3" 1634 | 1635 | which@^2.0.1: 1636 | version "2.0.2" 1637 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 1638 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 1639 | dependencies: 1640 | isexe "^2.0.0" 1641 | 1642 | word-wrap@^1.2.3: 1643 | version "1.2.4" 1644 | resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.4.tgz#cb4b50ec9aca570abd1f52f33cd45b6c61739a9f" 1645 | integrity sha512-2V81OA4ugVo5pRo46hAoD2ivUJx8jXmWXfUkY4KFNw0hEptvN0QfH3K4nHiwzGeKl5rFKedV48QVoqYavy4YpA== 1646 | 1647 | wrappy@1: 1648 | version "1.0.2" 1649 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 1650 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 1651 | 1652 | yallist@^4.0.0: 1653 | version "4.0.0" 1654 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" 1655 | integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== 1656 | --------------------------------------------------------------------------------