├── .gitignore ├── public ├── components │ ├── lists │ │ ├── tracks │ │ │ ├── tracks.directive.html │ │ │ └── tracks.directive.js │ │ ├── playlists │ │ │ ├── playlist.directive.html │ │ │ └── playlist.directive.js │ │ ├── albums │ │ │ ├── albums.directive.html │ │ │ └── albums.directive.js │ │ └── artists │ │ │ ├── artists.directive.html │ │ │ └── artists.directive.js │ ├── socket │ │ └── socket.factory.js │ ├── artist │ │ ├── artist.directive.js │ │ └── artist.directive.html │ ├── queue │ │ ├── queue.directive.js │ │ └── queue.directive.html │ ├── player │ │ ├── playbar │ │ │ ├── playbar.directive.js │ │ │ └── playbar.directive.html │ │ ├── seekbar │ │ │ ├── seekbar.directive.html │ │ │ └── seekbar.directive.js │ │ └── player.service.js │ └── album │ │ ├── album.directive.js │ │ └── album.directive.html ├── views │ ├── browse │ │ └── browse.html │ ├── search │ │ ├── search.html │ │ └── search.controller.js │ └── lyrics │ │ └── lyrics.html ├── filters │ ├── capitalize.filter.js │ └── seconds-time.filter.js ├── res │ └── img │ │ └── empty │ │ └── artist.svg ├── css │ ├── style.css │ └── style.sass ├── apis │ └── spotify.service.js └── index.html ├── .bowerrc ├── app ├── sockets │ ├── index.js │ └── player.socket.js ├── routes │ ├── index.js │ ├── radio.routes.js │ ├── artist.routes.js │ ├── search.routes.js │ ├── album.routes.js │ ├── user.routes.js │ └── track.routes.js └── services │ └── spotify.js ├── config └── keys.js ├── Gruntfile.js ├── package.json ├── server.js ├── README.md └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | .env -------------------------------------------------------------------------------- /public/components/lists/tracks/tracks.directive.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "public/components/" 3 | } -------------------------------------------------------------------------------- /public/components/lists/playlists/playlist.directive.html: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/views/browse/browse.html: -------------------------------------------------------------------------------- 1 |

Browse

-------------------------------------------------------------------------------- /app/sockets/index.js: -------------------------------------------------------------------------------- 1 | module.exports = function(io) { 2 | require('./player.socket')(io); 3 | }; -------------------------------------------------------------------------------- /public/components/lists/albums/albums.directive.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
-------------------------------------------------------------------------------- /public/components/lists/artists/artists.directive.html: -------------------------------------------------------------------------------- 1 |
2 | 3 |
-------------------------------------------------------------------------------- /public/components/socket/socket.factory.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.factory('Socket', ['socketFactory', function(socketFactory) { 5 | return socketFactory(); 6 | }]); -------------------------------------------------------------------------------- /public/filters/capitalize.filter.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.filter('capitalize', function() { 5 | return function(token) { 6 | return token.charAt(0).toUpperCase() + token.slice(1); 7 | }; 8 | }); -------------------------------------------------------------------------------- /config/keys.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | spotify: { 3 | clientId: process.env.SPOTIFY_CLIENT_ID, 4 | clientSecret: process.env.SPOTIFY_CLIENT_SECRET, 5 | redirectUri: '/api/auth/callback' 6 | }, 7 | google: { 8 | apiKey: process.env.GOOGLE_SERVER_KEY 9 | } 10 | }; -------------------------------------------------------------------------------- /public/components/artist/artist.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('artist', [function() { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | data: '=' 9 | }, 10 | templateUrl: 'components/artist/artist.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/components/lists/albums/albums.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('albums', [function() { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | data: '=' 9 | }, 10 | templateUrl: 'components/lists/albums/albums.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/components/lists/tracks/tracks.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('tracks', [function() { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | data: '=' 9 | }, 10 | templateUrl: 'components/lists/tracks/tracks.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/components/lists/artists/artists.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('artists', [function() { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | data: '=' 9 | }, 10 | templateUrl: 'components/lists/artists/artists.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/components/lists/playlists/playlist.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('playlist', [function() { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | data: '=' 9 | }, 10 | templateUrl: 'components/lists/playlist/playlist.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/components/queue/queue.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('queue', ['Player', function(Player) { 5 | return { 6 | restrict: 'E', 7 | link: function(scope) { 8 | scope.Player = Player; 9 | }, 10 | templateUrl: 'components/queue/queue.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/views/search/search.html: -------------------------------------------------------------------------------- 1 |
2 |

Artists

3 | 4 |
5 | 6 |
7 |

Albums

8 | 9 |
-------------------------------------------------------------------------------- /public/views/lyrics/lyrics.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |

Lyrics:

4 | 5 |

{{track.lyrics}}

6 | 7 | 8 | 9 |

10 | Sourced from 11 | MetroLyrics 12 |

13 |
14 |
-------------------------------------------------------------------------------- /public/components/player/playbar/playbar.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('playbar', ['$document', 'Player', function($document, Player) { 5 | return { 6 | restrict: 'E', 7 | link: function(scope) { 8 | scope.Player = Player; 9 | }, 10 | templateUrl: 'components/player/playbar/playbar.directive.html' 11 | }; 12 | }]); -------------------------------------------------------------------------------- /public/views/search/search.controller.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.controller('SearchCtrl', ['$scope', '$stateParams', '$http', function($scope, $stateParams, $http) { 5 | $http({ 6 | url: '/api/search', 7 | method: 'GET', 8 | params: { 9 | q: $stateParams.q, 10 | limit: 8 11 | } 12 | }).then(function(response) { 13 | $scope.results = response.data; 14 | console.log(response.data); 15 | }); 16 | }]); -------------------------------------------------------------------------------- /app/routes/index.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var path = require('path'); 4 | 5 | router.use('/users', require('./user.routes')); 6 | router.use('/search', require('./search.routes')); 7 | router.use('/albums', require('./album.routes')); 8 | router.use('/artists', require('./artist.routes')); 9 | router.use('/tracks', require('./track.routes')); 10 | router.use('/radio', require('./radio.routes')); 11 | 12 | module.exports = router; -------------------------------------------------------------------------------- /app/routes/radio.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var spotify = require.main.require('./app/services/spotify'); 4 | 5 | router.get('/', function(req, res) { 6 | spotify.getRecommendations({ 7 | seed_artists: req.params.seed_artists || null, 8 | seed_genres: req.params.seed_genres || null, 9 | seed_tracks: req.params.seed_tracks || null 10 | }).then(function(data) { 11 | return res.status(200).json(data); 12 | }) 13 | }); 14 | 15 | module.exports = router; -------------------------------------------------------------------------------- /app/routes/artist.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var spotify = require.main.require('./app/services/spotify'); 4 | 5 | router.get('/:artistId/top-tracks', function(req, res) { 6 | spotify.getArtistTopTracks(req.params.artistId, req.countryCode) 7 | .then(function(data) { 8 | res.status(data.statusCode).json(data.body); 9 | }, function(err) { 10 | res.status(err.statusCode).json(err); 11 | }); 12 | }); 13 | 14 | module.exports = router; -------------------------------------------------------------------------------- /public/components/artist/artist.directive.html: -------------------------------------------------------------------------------- 1 |
6 | 7 | 8 | 9 |

{{data.name}}

10 |

{{data.followers.total}} {{data.followers.total == 1 ? 'follower' : 'followers'}}

11 |
-------------------------------------------------------------------------------- /app/services/spotify.js: -------------------------------------------------------------------------------- 1 | var SpotifyWebApi = require('spotify-web-api-node'); 2 | var keys = require.main.require('./config/keys'); 3 | 4 | var spotify = new SpotifyWebApi({ 5 | clientId: keys.spotify.clientId, 6 | clientSecret: keys.spotify.clientSecret, 7 | redirectUri: keys.spotify.redirectUri 8 | }); 9 | 10 | spotify.clientCredentialsGrant().then(function(data) { 11 | // expires in: data.body['expires_in'] 12 | spotify.setAccessToken(data.body['access_token']); 13 | }, function(err) { 14 | console.log('Something went wrong when retrieving an access token', err); 15 | }); 16 | 17 | module.exports = spotify; -------------------------------------------------------------------------------- /public/filters/seconds-time.filter.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.filter('secondsToTimeString', function() { 5 | return function(input) { 6 | if (isNaN(input)) return null; 7 | 8 | input = Math.floor(input); 9 | var hours = Math.floor(input / 3600); 10 | var minutes = Math.floor((input - (hours * 3600)) / 60); 11 | var seconds = input - (hours * 3600) - (minutes * 60); 12 | 13 | if (seconds < 10) { seconds = "0" + seconds; } 14 | if (hours != 0 && minutes < 10) { minutes = "0" + minutes; } 15 | return (hours == 0 ? '' : hours+':')+minutes+':'+seconds; 16 | }; 17 | }); -------------------------------------------------------------------------------- /app/routes/search.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var spotify = require.main.require('./app/services/spotify'); 4 | 5 | router.get('/', function(req, res) { 6 | spotify.search( 7 | req.query.q, 8 | ['track', 'album', 'artist', 'playlist'], 9 | { 10 | limit: req.query.limit || 30, 11 | offset: req.query.offset || 0 12 | } 13 | ) 14 | .then(function(data) { 15 | res.status(200).json(data.body); 16 | }, function(err) { 17 | res.status(400).json(err); 18 | }); 19 | }); 20 | 21 | module.exports = router; -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 3 | // Project configuration. 4 | grunt.initConfig({ 5 | pkg: grunt.file.readJSON('package.json'), 6 | sass: { // Task 7 | dist: { // Target 8 | options: { // Target options 9 | style: 'expanded' 10 | }, 11 | files: { // Dictionary of files 12 | 'style.css': 'style.scss' 13 | } 14 | } 15 | } 16 | }); 17 | 18 | // Load the plugin that provides the "uglify" task. 19 | grunt.loadNpmTasks('grunt-contrib-sass'); 20 | 21 | // Default task(s). 22 | grunt.registerTask('default', ['sass']); 23 | 24 | }; -------------------------------------------------------------------------------- /public/components/player/seekbar/seekbar.directive.html: -------------------------------------------------------------------------------- 1 |
5 |
6 | 7 |
11 | 12 | 16 | {{audio.currentTime | secondsToTimeString}} 17 | 18 | 19 | 20 | 21 | 25 | {{audio.duration | secondsToTimeString}} 26 | 27 |
-------------------------------------------------------------------------------- /app/routes/album.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var spotify = require.main.require('./app/services/spotify'); 4 | 5 | router.get('/:albumId', (req, res) => { 6 | spotify.getAlbum(req.params.albumId) 7 | .then(data => { 8 | res.status(data.statusCode).json(data.body); 9 | }, err => { 10 | res.status(err.statusCode).json(err); 11 | }); 12 | }); 13 | 14 | router.get('/:albumId/tracks', (req, res) => { 15 | spotify.getAlbumTracks(req.params.albumId) 16 | .then(data => { 17 | res.status(data.statusCode).json(data.body); 18 | }, err => { 19 | res.status(err.statusCode).json(err); 20 | }); 21 | }); 22 | 23 | module.exports = router; -------------------------------------------------------------------------------- /app/routes/user.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var spotify = require.main.require('./app/services/spotify'); 4 | 5 | router.get('/:user/playlists/:playlistId', function(req, res) { 6 | spotify.getPlaylist(req.params.user, req.params.playlistId) 7 | .then(function(data) { 8 | res.status(200).json(data.body); 9 | }, function(err) { 10 | res.status(400).json(err); 11 | }); 12 | }); 13 | 14 | router.get('/:user/playlists/:playlistId/tracks', function(req, res) { 15 | spotify.getPlaylistTracks(req.params.user, req.params.playlistId) 16 | .then(function(data) { 17 | res.status(200).json(data.body); 18 | }, function(err) { 19 | res.status(400).json(err); 20 | }); 21 | }); 22 | 23 | module.exports = router; -------------------------------------------------------------------------------- /public/components/album/album.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('album', [function() { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | data: '=' 9 | }, 10 | templateUrl: 'components/album/album.directive.html', 11 | controller: ['$scope', 'Spotify', 'Player', function($scope, Spotify, Player) { 12 | $scope.Player = Player; 13 | 14 | $scope.plause = function() { 15 | if (Player.queue.source.id && Player.queue.source.id == $scope.data.id) { 16 | Player.plause(); 17 | } else { 18 | $scope.playAlbum($scope.data.id); 19 | } 20 | }; 21 | 22 | $scope.playAlbum = function(albumID) { 23 | Spotify.getAlbum(albumID).then(function(response) { 24 | Player.play(response.data); 25 | }); 26 | }; 27 | }] 28 | }; 29 | }]); -------------------------------------------------------------------------------- /public/res/img/empty/artist.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /public/components/player/seekbar/seekbar.directive.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.directive('seekbar', ['$document', 'Player', function($document) { 5 | return { 6 | restrict: 'E', 7 | scope: { 8 | audio: '=' 9 | }, 10 | link: function(scope, element, attrs) { 11 | scope.audio.addEventListener('timeupdate', function() { 12 | scope.$apply(); 13 | }); 14 | 15 | scope.audio.addEventListener('progress', function() { 16 | if (!scope.audio.buffers) scope.audio.buffers = []; 17 | 18 | if (scope.audio.duration > 0) { 19 | for (var i = 0; i < scope.audio.buffered.length; i++) { 20 | scope.audio.buffers[i] = { 21 | length: Math.round( 22 | (scope.audio.buffered.end(i) - scope.audio.buffered.start(i)) / scope.audio.duration * 100 23 | ), 24 | offset: Math.round( 25 | scope.audio.buffered.start(i) / scope.audio.duration * 100 26 | ) 27 | }; 28 | } 29 | } 30 | }); 31 | }, 32 | templateUrl: 'components/player/seekbar/seekbar.directive.html' 33 | }; 34 | }]); -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "Jukebox", 3 | "version": "0.0.2", 4 | "description": "A music server that streams mp3 files based on YouTube videos and Spotify data", 5 | "main": "index.js", 6 | "scripts": { 7 | "start": "node server.js", 8 | "test": "echo \"Error: no test specified\" && exit 1" 9 | }, 10 | "author": "Alex Wohlbruck (alexwohlbruck@gmail.com)", 11 | "license": "ISC", 12 | "dependencies": { 13 | "bluebird": "^3.5.0", 14 | "body-parser": "^1.16.1", 15 | "cheerio": "^1.0.0-rc.2", 16 | "combined-stream": "^1.0.5", 17 | "cookie-parser": "^1.4.3", 18 | "country-data": "0.0.31", 19 | "dotenv": "^10.0.0", 20 | "express": "^4.14.1", 21 | "express-geoip": "^2.2.0", 22 | "googleapis": "^16.1.0", 23 | "method-override": "^2.3.7", 24 | "request": "^2.81.0", 25 | "request-promise": "^4.2.1", 26 | "socket.io": "^2.0.1", 27 | "spotify-web-api-node": "^2.3.6", 28 | "ytdl-core": "^4.11.5" 29 | }, 30 | "devDependencies": { 31 | "grunt": "^1.0.1", 32 | "grunt-cli": "^1.2.0", 33 | "grunt-contrib-sass": "^1.0.0", 34 | "grunt-contrib-uglify": "^3.0.1", 35 | "morgan": "^1.8.0", 36 | "nodemon": "^1.11.0" 37 | } 38 | } -------------------------------------------------------------------------------- /public/components/album/album.directive.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | {{data.name}} 16 | 17 | 23 | 24 | 25 | {{Player.queue.source.id == data.id && !Player.el.paused ? 'pause' : 'play_arrow'}} 26 | 27 | 28 | 29 | 30 |

{{data.name}}

31 |
32 |
-------------------------------------------------------------------------------- /server.js: -------------------------------------------------------------------------------- 1 | require('dotenv').config(); 2 | var express = require('express'); 3 | var app = express(); 4 | var server = require('http').createServer(app); 5 | var io = require('socket.io')(server); 6 | 7 | var env = process.env.NODE_ENV; 8 | var cookieParser = require('cookie-parser'); 9 | var bodyParser = require('body-parser'); 10 | var methodOverride = require('method-override'); 11 | var expressGeoIP = require('express-geoip'); 12 | 13 | global.Promise = require('bluebird'); 14 | 15 | require('dotenv').config() 16 | 17 | if (env === 'development') { 18 | var morgan = require('morgan'); 19 | app.use(morgan('dev')); 20 | } 21 | 22 | app.use(cookieParser()); 23 | app.use(bodyParser.json()); 24 | app.use(bodyParser.json({ type: 'application/vnd.api+json' })); 25 | app.use(bodyParser.urlencoded({ extended: true })); 26 | app.use(methodOverride('X-HTTP-Method-Override')); 27 | app.use(expressGeoIP('US').getCountryCodeMiddleware); 28 | 29 | app.use('/api', require('./app/routes')); 30 | app.use('/', express.static('public')); 31 | 32 | require('./app/sockets')(io); 33 | 34 | var port = process.env.PORT || 8080; 35 | server.listen(port, function () { 36 | console.log('App listening on port '+port+'!'); 37 | }); -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Setup process: 2 | 3 | Step 1: Go to [heroku](https://dashboard.heroku.com/apps) and create a new app. 4 | 5 | Step 2: Link your github fork of this project to the app (In the setup page or deployment menu) - Use `main` branch for auto updates 6 | 7 | Step 3: Go to the settings and fill out the following enviromental variables/config vars 8 | 9 | ``` 10 | SPOTIFY_CLIENT_ID = xxxxxxxxxxxxxxxxxxxxx 11 | SPOTIFY_CLIENT_SECRET = xxxxxxxxxxxxxxxxxxxxx 12 | GOOGLE_SERVER_KEY = xxxxxxxxxxxxxxxxxxxxx 13 | ``` 14 | To get the Google server key, head to the [Google Cloud Platform website](https://console.cloud.google.com/), create a project and go to the APIs and Services page. Then Enable the `Youtube Data API V3`. You should be able to generate a server API key, which will be the value to put in your .env file. 15 | 16 | Then, log in to the [Spotify Developer Console](https://developer.spotify.com/dashboard), and create a new app. Once created, you should get Client ID and Client Secret keys, which are the other two values for your `.env` file. 17 | 18 | Step 4: Go back to the settings and install the nodejs buildpack. 19 | 20 | Step 5: Deploy the webapp. 21 | 22 | Make an [issue](https://github.com/alexwohlbruck/jukebox/issues) if you have problems with anything. 23 | 24 | 25 | This is a README.md file made by LaganYT for the self hosting of the Jukebox Redux project. 26 | -------------------------------------------------------------------------------- /public/components/queue/queue.directive.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |

Up next

4 | 5 | 6 | playlist_add 7 | 8 | 9 | 10 | share 11 | 12 | 13 | 14 | clear_all 15 | 16 | 17 | 18 | close 19 | 20 |
21 |
22 | 23 |
24 | 29 |
30 | 31 | 32 | 33 | 34 | 35 |
36 |

{{$index - Player.queue.nowPlaying.index}}

37 | 38 |
39 |

{{track.name}}

40 |

{{track.artists[0].name}}

41 |
42 |
43 |
44 |
-------------------------------------------------------------------------------- /public/components/player/playbar/playbar.directive.html: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 |
15 | 16 | 17 |
18 |
19 |

{{Player.queue.source.tracks.items[Player.queue.nowPlaying.index].name}}

20 | 21 |

22 | {{Player.queue.source.tracks.items[0].artists[0].name}} 23 | - 24 | {{Player.queue.source.name}} 25 |

26 |
27 | 28 |
29 | 30 | loop 31 | 32 | 33 | 34 | skip_previous 35 | 36 | 37 | 38 | {{Player.el.paused ? 'play_arrow' : 'pause'}} 39 | 40 | 41 | 42 | skip_next 43 | 44 | 45 | 46 | shuffle 47 | 48 |
49 | 50 |
51 | 52 | music_note 53 | 54 |
55 |
56 |
57 |
-------------------------------------------------------------------------------- /public/components/player/player.service.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.service('Player', ['$rootScope', 'Socket', '$http', '$mdToast', function($rootScope, Socket, $http, $mdToast) { 5 | var Player = this; 6 | 7 | this.el = document.getElementById('song'); 8 | 9 | this.pinnedQueue = true; 10 | 11 | this.queue = { 12 | source: { 13 | id: null, 14 | type: null, 15 | tracks: [], 16 | /* other spotify data */ 17 | }, 18 | nowPlaying: { 19 | index: 0, 20 | paused: true, 21 | track: null, 22 | progress: 0 23 | } 24 | }; 25 | 26 | this.latency = 100; 27 | this.maxLatency = 250; 28 | 29 | var pingTime, pongTime, latency, showedSlowConnectionToast = false; 30 | 31 | // Ping each client to test connection speed 32 | setInterval(function() { 33 | pingTime = new Date(); 34 | Socket.emit('connection:ping'); 35 | }, (5 * 1000)); 36 | 37 | // Recieve pong and save response time 38 | Socket.on('connection:pong', function() { 39 | pongTime = new Date(); 40 | Player.latency = latency = (pongTime - pingTime) / 2; 41 | 42 | if (latency > 1000 && !showedSlowConnectionToast) { 43 | $mdToast.show($mdToast.simple().textContent('Connection too slow for synced music')); 44 | showedSlowConnectionToast = true; 45 | } 46 | }); 47 | 48 | 49 | Socket.on('queue:update', function(newQueue) { 50 | Player.udpateQueue(newQueue); 51 | Player.updateStreamUrl(); 52 | Player.updateVibrantSwatches(); 53 | }); 54 | 55 | this.play = function(source) { 56 | Socket.emit('queue:set', source); 57 | }; 58 | 59 | Socket.on('queue:set', function(source) { 60 | Player.queue.source = source; 61 | Player.updateStreamUrl(); 62 | Player.updateVibrantSwatches(); 63 | }); 64 | 65 | 66 | this.plause = function() { 67 | Socket.emit('playback:plause'); 68 | }; 69 | 70 | Socket.on('playback:play', function() { 71 | setTimeout(function() { 72 | Player.el.play(); 73 | }, (Player.maxLatency - Player.latency)); 74 | }); 75 | 76 | Socket.on('playback:pause', function() { 77 | setTimeout(function() { 78 | Player.el.pause(); 79 | }, (Player.maxLatency - Player.latency)); 80 | }); 81 | 82 | this.skip = function(direction) { 83 | Socket.emit('playback:skip.' + direction); 84 | }; 85 | 86 | Socket.on('playback:skip.next', function() { 87 | Player.queue.nowPlaying.index++; 88 | Player.updateStreamUrl(); 89 | Player.updateVibrantSwatches(); 90 | }); 91 | 92 | Socket.on('playback:skip.prev', function() { 93 | Player.queue.nowPlaying.index--; 94 | Player.updateStreamUrl(); 95 | Player.updateVibrantSwatches(); 96 | }); 97 | 98 | this.updateVibrantSwatches = function() { 99 | // Nested RAF to wait for Vibrant to load 100 | window.requestAnimationFrame(function() { 101 | window.requestAnimationFrame(function() { 102 | Player.queue.nowPlaying.theme = Player.queue.nowPlaying.swatches.Vibrant.getBodyTextColor() == '#000' ? 'light' : 'dark'; 103 | }); 104 | }); 105 | }; 106 | 107 | this.updateStreamUrl = function() { 108 | var track = Player.queue.source.tracks.items[Player.queue.nowPlaying.index]; 109 | Player.queue.nowPlaying.streamUrl = '/api/tracks/mp3?artist='+track.artists[0].name+'&track='+track.name; 110 | }; 111 | 112 | Player.el.addEventListener('canplay', function() { 113 | console.log('canplay'); 114 | Socket.emit('playback:canplay'); 115 | }); 116 | 117 | Socket.on('playback:ended', function() { 118 | Player.el.skip('next'); 119 | }); 120 | }]); -------------------------------------------------------------------------------- /app/sockets/player.socket.js: -------------------------------------------------------------------------------- 1 | module.exports = function(io) { 2 | var Player = { 3 | queue: { 4 | source: { 5 | id: null, 6 | type: null, 7 | tracks: [], 8 | /* other spotify data */ 9 | }, 10 | nowPlaying: { 11 | index: 0, 12 | paused: true, 13 | track: null, 14 | progress: 0 15 | }, 16 | }, 17 | 18 | setQueue(source) { 19 | this.queue.source = source; 20 | io.emit('queue:set', source); 21 | }, 22 | 23 | updateQueue(newQueue) { 24 | this.queue = Object.assign(this.queue, newQueue); 25 | }, 26 | 27 | plause() { 28 | io.emit(this.queue.nowPlaying ? 'playback:play' : 'playback:pause'); 29 | this.queue.nowPlaying = !this.queue.nowPlaying; 30 | }, 31 | 32 | skip(direction) { 33 | if (!this.queue.source.tracks || !this.queue.source.tracks.items) return false; 34 | 35 | if (direction == 'next' && this.queue.nowPlaying.index < this.queue.source.tracks.items.length - 1) { 36 | this.queue.nowPlaying.index++; 37 | io.emit('playback:skip.next'); 38 | } else if (direction == 'prev' && this.queue.nowPlaying.index > 0) { 39 | this.queue.nowPlaying.index--; 40 | io.emit('playback:skip.prev'); 41 | } 42 | }, 43 | 44 | setVolume() { 45 | 46 | }, 47 | 48 | toggleShuffle(state) { 49 | 50 | }, 51 | 52 | toggleRepeat(state) { 53 | 54 | }, 55 | 56 | seek(to) { 57 | 58 | }, 59 | 60 | // canPlay 61 | }; 62 | 63 | io.on('connection', client => { 64 | 65 | var clientsThatCanPlay = 0, canPlayTimeout; 66 | 67 | client.on('connection:ping', () => client.emit('connection:pong')); 68 | 69 | // TODO: Inefficient and verbose -- needs refactoring 70 | client.on('playback:canplay', data => { 71 | io.clients((error, clients) => { 72 | 73 | var totalClients = clients.length; 74 | 75 | if (clientsThatCanPlay == 0) { 76 | canPlayTimeout = setTimeout(function() { 77 | // TODO: Boot slow loading devices 78 | console.log((totalClients - clientsThatCanPlay) + ' are taking too long, playing now'); 79 | client.emit('playback:play'); 80 | }, 3000); 81 | } 82 | 83 | clientsThatCanPlay++; 84 | 85 | console.log(clientsThatCanPlay + '/' + totalClients + ' can play'); 86 | 87 | if (clientsThatCanPlay >= totalClients) { 88 | clientsThatCanPlay = 0; 89 | clearTimeout(canPlayTimeout); 90 | 91 | client.emit('playback:play', data); 92 | } 93 | }); 94 | }); 95 | 96 | client.on('queue:update', newQueue => { 97 | Player.updateQueue(newQueue); 98 | io.emit('queue:update', Player.queue); 99 | }); 100 | 101 | client.on('queue:set', source => { 102 | Player.setQueue(source); 103 | }); 104 | 105 | client.on('playback:plause', () => Player.plause()); 106 | 107 | client.on('playback:skip.next', () => Player.skip('next')); 108 | client.on('playback:skip.prev', () => Player.skip('prev')); 109 | 110 | client.on('track:play.index', data => client.broadcast.emit('track:play.index', data)); 111 | 112 | client.on('track:ended', () => client.broadcast.emit('track:ended')); 113 | }); 114 | }; -------------------------------------------------------------------------------- /app/routes/track.routes.js: -------------------------------------------------------------------------------- 1 | var express = require('express'); 2 | var router = express.Router(); 3 | var keys = require.main.require('./config/keys'); 4 | var spotify = require.main.require('./app/services/spotify'); 5 | var google = require('googleapis'); 6 | var youtube = google.youtube('v3'); 7 | var ytdl = require('ytdl-core'); 8 | var request = require('request-promise'); 9 | var cheerio = require('cheerio'); 10 | 11 | router.get('/search', function(req, res) { 12 | 13 | spotify.searchTracks(req.query.q).then(function(data) { 14 | return res.status(200).json(data); 15 | }).catch(function(err) { 16 | console.log(err); 17 | return res.status(400).json(err); 18 | }); 19 | 20 | }); 21 | 22 | router.get('/mp3', function(req, res) { 23 | 24 | if (!req.query.artist || !req.query.track) return res.json({message: "Provide an artist and a track name"}); 25 | 26 | youtube.search.list({ 27 | part: 'snippet', 28 | q: req.query.artist + ' - ' + req.query.track, 29 | auth: keys.google.apiKey, 30 | maxResults: 1, 31 | type: 'video' 32 | }, function(err, data) { 33 | if (err) return res.status(err.statusCode).json(err); 34 | if (data.items.length == 0) return res.status(404).json({message: "Couldn't find track"}); 35 | 36 | var videoId = data.items[0].id.videoId; 37 | var url = 'https://www.youtube.com/watch?v='+videoId; 38 | 39 | var range = '0-'; 40 | 41 | if (req.headers.range) { 42 | range = req.headers.range.replace(/bytes=/, ""); 43 | } 44 | 45 | var audio = ytdl(url, { 46 | filter: 'audioonly', 47 | range: range 48 | }); 49 | 50 | audio.on('response', function(data) { 51 | var totalSize = data.headers['content-length']; 52 | 53 | var parts = range.split("-"); 54 | var partialstart = parts[0]; 55 | var partialend = parts[1]; 56 | 57 | var start = parseInt(partialstart, 10); 58 | var end = partialend ? parseInt(partialend, 10) : totalSize - 1; 59 | 60 | var chunkSize = (end - start) + 1; 61 | 62 | res.writeHead(200, { 63 | 'Content-Type': 'audio/webm', 64 | 'Content-Range': 'bytes ' + start + '-' + end + '/' + totalSize, 65 | 'Content-Length': chunkSize, 66 | 'Content-Disposition': 'inline; filename="'+req.query.track.replace(/[^a-zA-Z0-9 ]/g, "")+'.mp3"', 67 | 'Accept-Ranges': 'bytes' 68 | }); 69 | }); 70 | 71 | audio.pipe(res); 72 | }); 73 | }); 74 | 75 | // Get lyics for a song 76 | var metrolyrics = { 77 | base: 'http://www.metrolyrics.com/', 78 | formatString: function(string) { 79 | return string 80 | .split(" - feat.")[0].split(" - ft.")[0] // Remove artist feature tag*/ 81 | .replace(/ *\([^)]*\) */g, "") // Remove text in parenthesis 82 | .replace(/[^a-zA-Z0-9 ]/g, "") // Remove non alpha chars 83 | .toLowerCase() 84 | .split(' ') 85 | .join('-'); 86 | }, 87 | getUrl: function(track) { 88 | return this.base + this.formatString(track.name) + '-lyrics-' + this.formatString(track.artists[0].name) + '.html'; 89 | }, 90 | messages: { 91 | notFound: "No lyrics available" 92 | } 93 | }; 94 | router.get('/lyrics', function(req, res) { 95 | if (!req.query.track_id) return res.status(404).json({message: "No track id given"}); 96 | 97 | var response = {}; 98 | 99 | spotify.getTrack(req.query.track_id).then(function(data) { 100 | var url = response.url = metrolyrics.getUrl(data.body); 101 | 102 | return request(url); 103 | }) 104 | .then(function(html) { 105 | var $ = cheerio.load(html); 106 | 107 | var lyrics = response.lyrics = $('#lyrics-body-text .verse').map(function(i, el) { 108 | return $(this).text(); 109 | }).get().join('\n\n').trim(); 110 | 111 | if (lyrics == '') 112 | return res.status(404).json({message: metrolyrics.messages.notFound}); 113 | 114 | return res.status(200).json(response); 115 | }) 116 | .catch(function(err) { 117 | if (err.statusCode == 404) { 118 | // These results are a big mess (It's html for the 404 page) 119 | err.error = undefined; 120 | err.message = metrolyrics.messages.notFound; 121 | err.response.body = undefined; 122 | } 123 | return res.status(err.statusCode || 400).json(err); 124 | }); 125 | }); 126 | 127 | module.exports = router; -------------------------------------------------------------------------------- /public/css/style.css: -------------------------------------------------------------------------------- 1 | @font-face {font-family: Circular;src: url(https://sp-bootstrap.global.ssl.fastly.net/8.0.0/fonts/circular-book.woff2);font-weight: 300;}@font-face {font-family: Circular;src: url(https://sp-bootstrap.global.ssl.fastly.net/8.0.0/fonts/circular-bold.woff2);font-weight: 500;}@font-face {font-family: Circular;src: url(https://sp-bootstrap.global.ssl.fastly.net/8.0.0/fonts/circular-black.woff2);font-weight: 700;}.md-display-1, .md-display-2, .md-display-3, .md-headline, .md-display-4 {font-weight: 500;font-family: Circular, Robot, Sans-Serif !important;}.md-display-4 {font-weight: 700 !important;}queue .tracks {padding: 18px 0px;}queue .tracks .track .index {margin-right: 16px;color: white;font-weight: 500;}queue .people {position: absolute;width: 100%;transform: translateY(-50%);z-index: 2;}queue .people .person {margin: 0px 3px;}albums .container, artists .container {perspective: 2000px;}album .container {position: relative;cursor: pointer;transition: ease-in-out transform 200ms;}album .container:focus {outline: 0;}album .container:hover {transform: translateZ(-20px) rotate3d(1, 0, 0, 3deg);}album .md-fab {position: absolute;right: 0;top: 95px;background: rgba(255, 255, 255, 0.8) !important;transition: cubic-bezier(0.34, 0, 0.09, 1) transform 300ms !important;transform: scale(1);}album .md-fab:hover {background: rgba(255, 255, 255, 0.8);}album .md-fab.ng-hide {transform: scale(0);}album .md-fab md-icon {color: rgba(0, 0, 0, 0.6) !important;}artist .container {position: relative;cursor: pointer;width: 100px;margin: 0px 5px;transition: ease-in-out transform 200ms;}artist .container:focus {outline: 0;}artist .container:hover {transform: translateZ(-20px) rotate3d(1, 0, 0, 3deg);}artist .name {text-align: center;margin-bottom: 5px;line-height: 17px;}artist .followers {margin-top: 0px;text-align: center;}.md-avatar {border-radius: 50%;object-fit: cover;}.md-avatar.square {border-radius: 0px !important;}.md-avatar.small {width: 25px;height: 25px;}.md-avatar.large {width: 40px;height: 40px;}.md-avatar.x-large {width: 80px;height: 80px;}.md-avatar.ring {border: 5px solid #3a3a3a;}md-input-container.no-error .md-errors-spacer {display: none;}playbar md-card {margin: 0;height: 100px;transition: ease-in-out background 500ms;}playbar .cover {width: 100px;}playbar .controls {position: relative;}playbar .controls p, playbar .controls span, playbar .controls a {transition: ease-in-out color 500ms;}playbar .controls .left {margin-right: auto;}playbar .controls .left .title, playbar .controls .left .detail {margin: 0;}playbar .controls .center {position: absolute;left: 50%;transform: translateX(-50%);}playbar .controls .right {margin-left: auto;}seekbar {position: relative;}seekbar .buffer {position: absolute;height: 23px;background: rgba(255, 255, 255, 0.08);}seekbar .container {background: rgba(0, 0, 0, 0.5);}seekbar .container .time {color: rgba(255, 255, 255, 0.8);font-weight: 500;font-size: 9pt;padding: 0px 10px;position: relative;}seekbar .container body {background: #18d;margin: 0;}seekbar .container input[type=range] {z-index: 1;-webkit-appearance: none;width: 100%;margin: 0px 0;background: none;}seekbar .container input[type=range]:focus {outline: none;}seekbar .container input[type=range]::-webkit-slider-runnable-track {width: 100%;height: 23px;cursor: pointer;box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;background: transparent;border-radius: 0px;border: 0px solid #000000;}seekbar .container input[type=range]::-webkit-slider-thumb {box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;border: 0px solid #000000;height: 23px;width: 10px;border-radius: 0px;background: rgba(255, 255, 255, 0.8);cursor: pointer;-webkit-appearance: none;margin-top: 0px;}seekbar .container input[type=range]::-moz-range-track {width: 100%;height: 23px;cursor: pointer;box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;background: transparent;border-radius: 0px;border: 0px solid #000000;}seekbar .container input[type=range]::-moz-range-thumb {box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;border: 0px solid #000000;height: 23px;width: 10px;border-radius: 0px;background: rgba(255, 255, 255, 0.8);cursor: pointer;}seekbar .container input[type=range]::-ms-track {width: 100%;height: 23px;cursor: pointer;background: transparent;border-color: transparent;color: transparent;}seekbar .container input[type=range]::-ms-fill-lower, seekbar .container input[type=range]::-ms-fill-upper {background: transparent;border: 0px solid #000000;border-radius: 0px;box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;}seekbar .container input[type=range]::-ms-thumb {box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d;border: 0px solid #000000;width: 10px;border-radius: 0px;background: rgba(255, 255, 255, 0.8);cursor: pointer;height: 23px;} -------------------------------------------------------------------------------- /public/apis/spotify.service.js: -------------------------------------------------------------------------------- 1 | /* global angular */ 2 | var app = angular.module('jukebox'); 3 | 4 | app.service('Spotify', ['$http', function($http) { 5 | this.getTrack = function() { 6 | // TODO 7 | }; 8 | 9 | this.getTracks = function() { 10 | // TODO 11 | }; 12 | 13 | this.getAlbum = function(albumId) { 14 | return $http.get('/api/albums/' + albumId); 15 | }; 16 | 17 | this.getAlbums = function() { 18 | // TODO 19 | }; 20 | 21 | this.getArtist = function() { 22 | // TODO 23 | }; 24 | 25 | this.getArtists = function() { 26 | // TODO 27 | }; 28 | 29 | this.search = function() { 30 | // TODO 31 | }; 32 | 33 | this.searchAlbums = function() { 34 | // TODO 35 | }; 36 | 37 | this.searchArtists = function() { 38 | // TODO 39 | }; 40 | 41 | this.searchTracks = function() { 42 | // TODO 43 | }; 44 | 45 | this.searchPlaylists = function() { 46 | // TODO 47 | }; 48 | 49 | this.getArtistAlbums = function() { 50 | // TODO 51 | }; 52 | 53 | this.getAlbumTracks = function(albumId) { 54 | return $http.get('/api/albums/' + albumId + '/tracks'); 55 | }; 56 | 57 | this.getArtistTopTracks = function() { 58 | // TODO 59 | }; 60 | 61 | this.getArtistRelatedArtists = function() { 62 | // TODO 63 | }; 64 | 65 | this.getUser = function() { 66 | // TODO 67 | }; 68 | 69 | this.getMe = function() { 70 | // TODO 71 | }; 72 | 73 | this.getUserPlaylists = function() { 74 | // TODO 75 | }; 76 | 77 | this.getPlaylist = function() { 78 | // TODO 79 | }; 80 | 81 | this.getPlaylistTracks = function() { 82 | // TODO 83 | }; 84 | 85 | this.createPlaylist = function() { 86 | // TODO 87 | }; 88 | 89 | this.followPlaylist = function() { 90 | // TODO 91 | }; 92 | 93 | this.unfollowPlaylist = function() { 94 | // TODO 95 | }; 96 | 97 | this.changePlaylistDetails = function() { 98 | // TODO 99 | }; 100 | 101 | this.addTracksToPlaylist = function() { 102 | // TODO 103 | }; 104 | 105 | this.removeTracksFromPlaylist = function() { 106 | // TODO 107 | }; 108 | 109 | this.removeTracksFromPlaylistByPosition = function() { 110 | // TODO 111 | }; 112 | 113 | this.replaceTracksInPlaylist = function() { 114 | // TODO 115 | }; 116 | 117 | this.reorderTracksInPlaylist = function() { 118 | // TODO 119 | }; 120 | 121 | this.getAudioFeaturesForTrack = function() { 122 | // TODO 123 | }; 124 | 125 | this.getAudioFeaturesForTracks = function() { 126 | // TODO 127 | }; 128 | 129 | this.getRecommendations = function() { 130 | // TODO 131 | }; 132 | 133 | this.getAvailableGenreSeeds = function() { 134 | // TODO 135 | }; 136 | 137 | this.clientCredentialsGrant = function() { 138 | // TODO 139 | }; 140 | 141 | this.authorizationCodeGrant = function() { 142 | // TODO 143 | }; 144 | 145 | this.refreshAccessToken = function() { 146 | // TODO 147 | }; 148 | 149 | this.createAuthorizeURL = function() { 150 | // TODO 151 | }; 152 | 153 | this.getMySavedTracks = function() { 154 | // TODO 155 | }; 156 | 157 | this.containsMySavedTracks = function() { 158 | // TODO 159 | }; 160 | 161 | this.removeFromMySavedTracks = function() { 162 | // TODO 163 | }; 164 | 165 | this.addToMySavedTracks = function() { 166 | // TODO 167 | }; 168 | 169 | this.removeFromMySavedAlbums = function() { 170 | // TODO 171 | }; 172 | 173 | this.addToMySavedAlbums = function() { 174 | // TODO 175 | }; 176 | 177 | this.getMySavedAlbums = function() { 178 | // TODO 179 | }; 180 | 181 | this.containsMySavedAlbums = function() { 182 | // TODO 183 | }; 184 | 185 | this.getMyTopArtists = function() { 186 | // TODO 187 | }; 188 | 189 | this.getMyTopTracks = function() { 190 | // TODO 191 | }; 192 | 193 | this.followUsers = function() { 194 | // TODO 195 | }; 196 | 197 | this.followArtists = function() { 198 | // TODO 199 | }; 200 | 201 | this.unfollowUsers = function() { 202 | // TODO 203 | }; 204 | 205 | this.unfollowArtists = function() { 206 | // TODO 207 | }; 208 | 209 | this.isFollowingUsers = function() { 210 | // TODO 211 | }; 212 | 213 | this.getFollowedArtists = function() { 214 | // TODO 215 | }; 216 | 217 | this.areFollowingPlaylist = function() { 218 | // TODO 219 | }; 220 | 221 | this.isFollowingArtists = function() { 222 | // TODO 223 | }; 224 | 225 | this.getNewReleases = function() { 226 | // TODO 227 | }; 228 | 229 | this.getFeaturedPlaylists = function() { 230 | // TODO 231 | }; 232 | 233 | this.getCategories = function() { 234 | // TODO 235 | }; 236 | 237 | this.getCategory = function() { 238 | // TODO 239 | }; 240 | 241 | this.getPlaylistsForCategory = function() { 242 | // TODO 243 | }; 244 | }]); -------------------------------------------------------------------------------- /public/css/style.sass: -------------------------------------------------------------------------------- 1 | // Draft styles 2 | 3 | @font-face 4 | font-family: Circular 5 | src: url(https://sp-bootstrap.global.ssl.fastly.net/8.0.0/fonts/circular-book.woff2) 6 | font-weight: 300 7 | 8 | @font-face 9 | font-family: Circular 10 | src: url(https://sp-bootstrap.global.ssl.fastly.net/8.0.0/fonts/circular-bold.woff2) 11 | font-weight: 500 12 | 13 | @font-face 14 | font-family: Circular 15 | src: url(https://sp-bootstrap.global.ssl.fastly.net/8.0.0/fonts/circular-black.woff2) 16 | font-weight: 700 17 | 18 | 19 | .md-display-1, .md-display-2, .md-display-3, .md-headline, .md-display-4 20 | font-weight: 500 21 | font-family: Circular, Robot, Sans-Serif !important 22 | 23 | .md-display-4 24 | font-weight: 700 !important 25 | 26 | queue 27 | .tracks 28 | padding: 18px 0px 29 | 30 | .track 31 | .index 32 | margin-right: 16px 33 | color: white 34 | font-weight: 500 35 | 36 | .people 37 | position: absolute 38 | width: 100% 39 | transform: translateY(-50%) 40 | z-index: 2 41 | 42 | .person 43 | margin: 0px 3px 44 | 45 | albums, artists 46 | .container 47 | perspective: 2000px 48 | 49 | album 50 | .container 51 | position: relative 52 | cursor: pointer 53 | transition: ease-in-out transform 200ms 54 | 55 | &:focus 56 | outline: 0 57 | 58 | &:hover 59 | transform: translateZ(-20px) rotate3d(1, 0, 0, 3deg) 60 | 61 | .md-fab 62 | position: absolute 63 | right: 0 64 | top: 95px 65 | background: rgba(255, 255, 255, .8) !important 66 | transition: cubic-bezier(0.34, 0, 0.09, 1) transform 300ms !important 67 | transform: scale(1) 68 | 69 | &:hover 70 | background: rgba(255, 255, 255, .8) 71 | 72 | &.ng-hide 73 | transform: scale(0) 74 | 75 | md-icon 76 | color: rgba(0, 0, 0, .6) !important 77 | 78 | artist 79 | .container 80 | position: relative 81 | cursor: pointer 82 | width: 100px 83 | margin: 0px 5px 84 | transition: ease-in-out transform 200ms 85 | 86 | &:focus 87 | outline: 0 88 | 89 | &:hover 90 | transform: translateZ(-20px) rotate3d(1, 0, 0, 3deg) 91 | 92 | .name 93 | text-align: center 94 | margin-bottom: 5px 95 | line-height: 17px 96 | 97 | .followers 98 | margin-top: 0px 99 | text-align: center 100 | 101 | .md-avatar 102 | border-radius: 50% 103 | object-fit: cover 104 | 105 | &.square 106 | border-radius: 0px !important 107 | 108 | &.small 109 | width: 25px 110 | height: 25px 111 | 112 | &.large 113 | width: 40px 114 | height: 40px 115 | 116 | &.x-large 117 | width: 80px 118 | height: 80px 119 | 120 | &.ring 121 | border: 5px solid #3a3a3a 122 | 123 | md-input-container.no-error 124 | .md-errors-spacer 125 | display: none 126 | 127 | // Final styles 128 | 129 | playbar 130 | md-card 131 | margin: 0 132 | height: 100px 133 | transition: ease-in-out background 500ms 134 | 135 | .cover 136 | width: 100px 137 | 138 | .controls 139 | position: relative 140 | 141 | p, span, a 142 | transition: ease-in-out color 500ms 143 | 144 | .left 145 | margin-right: auto 146 | 147 | .title, .detail 148 | margin: 0 149 | 150 | .center 151 | position: absolute 152 | left: 50% 153 | transform: translateX(-50%) 154 | 155 | .right 156 | margin-left: auto 157 | 158 | 159 | seekbar 160 | position: relative 161 | 162 | .buffer 163 | position: absolute 164 | height: 23px 165 | background: rgba(255, 255, 255, 0.08) 166 | 167 | .container 168 | background: rgba(0, 0, 0, 0.5) 169 | 170 | .time 171 | color: rgba(255, 255, 255, 0.8) 172 | font-weight: 500 173 | font-size: 9pt 174 | padding: 0px 10px 175 | position: relative 176 | 177 | body 178 | background: #18d 179 | margin: 0 180 | 181 | input[type=range] 182 | z-index: 1 183 | -webkit-appearance: none 184 | width: 100% 185 | margin: 0px 0 186 | background: none 187 | 188 | &:focus 189 | outline: none 190 | &::-webkit-slider-runnable-track 191 | width: 100% 192 | height: 23px 193 | cursor: pointer 194 | box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d 195 | background: transparent 196 | border-radius: 0px 197 | border: 0px solid #000000 198 | &::-webkit-slider-thumb 199 | box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d 200 | border: 0px solid #000000 201 | height: 23px 202 | width: 10px 203 | border-radius: 0px 204 | background: rgba(255, 255, 255, 0.8) 205 | cursor: pointer 206 | -webkit-appearance: none 207 | margin-top: 0px 208 | &::-moz-range-track 209 | width: 100% 210 | height: 23px 211 | cursor: pointer 212 | box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d 213 | background: transparent 214 | border-radius: 0px 215 | border: 0px solid #000000 216 | &::-moz-range-thumb 217 | box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d 218 | border: 0px solid #000000 219 | height: 23px 220 | width: 10px 221 | border-radius: 0px 222 | background: rgba(255, 255, 255, 0.8) 223 | cursor: pointer 224 | &::-ms-track 225 | width: 100% 226 | height: 23px 227 | cursor: pointer 228 | background: transparent 229 | border-color: transparent 230 | color: transparent 231 | &::-ms-fill-lower, &::-ms-fill-upper 232 | background: transparent 233 | border: 0px solid #000000 234 | border-radius: 0px 235 | box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d 236 | &::-ms-thumb 237 | box-shadow: 0px 0px 0px #000000, 0px 0px 0px #0d0d0d 238 | border: 0px solid #000000 239 | width: 10px 240 | border-radius: 0px 241 | background: rgba(255, 255, 255, 0.8) 242 | cursor: pointer 243 | height: 23px -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Jukebox Redux 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 19 | 20 |
21 | 22 | 23 |
24 |

Jukebox

25 | 26 |

Latency: {{Player.latency}}

27 | 28 |
29 |
30 | 31 | 32 | 33 | 34 |
35 | 36 | 37 | search 38 | 39 | 40 | 45 | 46 | queue_music 47 | 48 |
49 |
50 |
51 | 52 | 53 | 54 | 55 | 56 | 74 | 75 | 76 |
77 | 78 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.1" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 8 | integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== 9 | 10 | accepts@~1.3.4, accepts@~1.3.7: 11 | version "1.3.7" 12 | resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" 13 | integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== 14 | dependencies: 15 | mime-types "~2.1.24" 16 | negotiator "0.6.2" 17 | 18 | after@0.8.2: 19 | version "0.8.2" 20 | resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" 21 | integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= 22 | 23 | ajv@^6.12.3: 24 | version "6.12.6" 25 | resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" 26 | integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== 27 | dependencies: 28 | fast-deep-equal "^3.1.1" 29 | fast-json-stable-stringify "^2.0.0" 30 | json-schema-traverse "^0.4.1" 31 | uri-js "^4.2.2" 32 | 33 | ansi-align@^2.0.0: 34 | version "2.0.0" 35 | resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-2.0.0.tgz#c36aeccba563b89ceb556f3690f0b1d9e3547f7f" 36 | integrity sha1-w2rsy6VjuJzrVW82kPCx2eNUf38= 37 | dependencies: 38 | string-width "^2.0.0" 39 | 40 | ansi-regex@^2.0.0: 41 | version "2.1.1" 42 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 43 | integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= 44 | 45 | ansi-regex@^3.0.0: 46 | version "3.0.0" 47 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" 48 | integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= 49 | 50 | ansi-styles@^2.2.1: 51 | version "2.2.1" 52 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 53 | integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= 54 | 55 | ansi-styles@^3.2.1: 56 | version "3.2.1" 57 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 58 | integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== 59 | dependencies: 60 | color-convert "^1.9.0" 61 | 62 | ansi-styles@^4.1.0: 63 | version "4.3.0" 64 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 65 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 66 | dependencies: 67 | color-convert "^2.0.1" 68 | 69 | anymatch@^2.0.0: 70 | version "2.0.0" 71 | resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" 72 | integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== 73 | dependencies: 74 | micromatch "^3.1.4" 75 | normalize-path "^2.1.1" 76 | 77 | argparse@^1.0.7: 78 | version "1.0.10" 79 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 80 | integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== 81 | dependencies: 82 | sprintf-js "~1.0.2" 83 | 84 | arr-diff@^4.0.0: 85 | version "4.0.0" 86 | resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" 87 | integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= 88 | 89 | arr-flatten@^1.1.0: 90 | version "1.1.0" 91 | resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" 92 | integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== 93 | 94 | arr-union@^3.1.0: 95 | version "3.1.0" 96 | resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" 97 | integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= 98 | 99 | array-each@^1.0.1: 100 | version "1.0.1" 101 | resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" 102 | integrity sha1-p5SvDAWrF1KEbudTofIRoFugxE8= 103 | 104 | array-flatten@1.1.1: 105 | version "1.1.1" 106 | resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" 107 | integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= 108 | 109 | array-slice@^1.0.0: 110 | version "1.1.0" 111 | resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" 112 | integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== 113 | 114 | array-unique@^0.3.2: 115 | version "0.3.2" 116 | resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" 117 | integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= 118 | 119 | arraybuffer.slice@~0.0.7: 120 | version "0.0.7" 121 | resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" 122 | integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== 123 | 124 | asn1@~0.2.3: 125 | version "0.2.6" 126 | resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" 127 | integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== 128 | dependencies: 129 | safer-buffer "~2.1.0" 130 | 131 | assert-plus@1.0.0, assert-plus@^1.0.0: 132 | version "1.0.0" 133 | resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" 134 | integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= 135 | 136 | assign-symbols@^1.0.0: 137 | version "1.0.0" 138 | resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" 139 | integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= 140 | 141 | async-each@^1.0.1: 142 | version "1.0.3" 143 | resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" 144 | integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== 145 | 146 | async@^0.9.0: 147 | version "0.9.2" 148 | resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" 149 | integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= 150 | 151 | async@^1.5.2: 152 | version "1.5.2" 153 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 154 | integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= 155 | 156 | async@^2.1.1: 157 | version "2.6.3" 158 | resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" 159 | integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== 160 | dependencies: 161 | lodash "^4.17.14" 162 | 163 | async@~2.1.4: 164 | version "2.1.5" 165 | resolved "https://registry.yarnpkg.com/async/-/async-2.1.5.tgz#e587c68580994ac67fc56ff86d3ac56bdbe810bc" 166 | integrity sha1-5YfGhYCZSsZ/xW/4bTrFa9voELw= 167 | dependencies: 168 | lodash "^4.14.0" 169 | 170 | async@~3.2.0: 171 | version "3.2.2" 172 | resolved "https://registry.yarnpkg.com/async/-/async-3.2.2.tgz#2eb7671034bb2194d45d30e31e24ec7e7f9670cd" 173 | integrity sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g== 174 | 175 | asynckit@^0.4.0: 176 | version "0.4.0" 177 | resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" 178 | integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= 179 | 180 | atob@^2.1.2: 181 | version "2.1.2" 182 | resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" 183 | integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== 184 | 185 | aws-sign2@~0.7.0: 186 | version "0.7.0" 187 | resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" 188 | integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= 189 | 190 | aws4@^1.8.0: 191 | version "1.11.0" 192 | resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" 193 | integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== 194 | 195 | backo2@1.0.2: 196 | version "1.0.2" 197 | resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" 198 | integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= 199 | 200 | balanced-match@^1.0.0: 201 | version "1.0.2" 202 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 203 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 204 | 205 | base64-arraybuffer@0.1.4: 206 | version "0.1.4" 207 | resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz#9818c79e059b1355f97e0428a017c838e90ba812" 208 | integrity sha1-mBjHngWbE1X5fgQooBfIOOkLqBI= 209 | 210 | base64id@2.0.0: 211 | version "2.0.0" 212 | resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" 213 | integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== 214 | 215 | base@^0.11.1: 216 | version "0.11.2" 217 | resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" 218 | integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== 219 | dependencies: 220 | cache-base "^1.0.1" 221 | class-utils "^0.3.5" 222 | component-emitter "^1.2.1" 223 | define-property "^1.0.0" 224 | isobject "^3.0.1" 225 | mixin-deep "^1.2.0" 226 | pascalcase "^0.1.1" 227 | 228 | basic-auth@~2.0.1: 229 | version "2.0.1" 230 | resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" 231 | integrity sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg== 232 | dependencies: 233 | safe-buffer "5.1.2" 234 | 235 | bcrypt-pbkdf@^1.0.0: 236 | version "1.0.2" 237 | resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" 238 | integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= 239 | dependencies: 240 | tweetnacl "^0.14.3" 241 | 242 | binary-extensions@^1.0.0: 243 | version "1.13.1" 244 | resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" 245 | integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== 246 | 247 | bindings@^1.5.0: 248 | version "1.5.0" 249 | resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" 250 | integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== 251 | dependencies: 252 | file-uri-to-path "1.0.0" 253 | 254 | blob@0.0.5: 255 | version "0.0.5" 256 | resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" 257 | integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== 258 | 259 | bluebird@^3.5.0: 260 | version "3.7.2" 261 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 262 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 263 | 264 | body-parser@1.19.0, body-parser@^1.16.1: 265 | version "1.19.0" 266 | resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" 267 | integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== 268 | dependencies: 269 | bytes "3.1.0" 270 | content-type "~1.0.4" 271 | debug "2.6.9" 272 | depd "~1.1.2" 273 | http-errors "1.7.2" 274 | iconv-lite "0.4.24" 275 | on-finished "~2.3.0" 276 | qs "6.7.0" 277 | raw-body "2.4.0" 278 | type-is "~1.6.17" 279 | 280 | boolbase@^1.0.0: 281 | version "1.0.0" 282 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 283 | integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= 284 | 285 | boxen@^1.2.1: 286 | version "1.3.0" 287 | resolved "https://registry.yarnpkg.com/boxen/-/boxen-1.3.0.tgz#55c6c39a8ba58d9c61ad22cd877532deb665a20b" 288 | integrity sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw== 289 | dependencies: 290 | ansi-align "^2.0.0" 291 | camelcase "^4.0.0" 292 | chalk "^2.0.1" 293 | cli-boxes "^1.0.0" 294 | string-width "^2.0.0" 295 | term-size "^1.2.0" 296 | widest-line "^2.0.0" 297 | 298 | brace-expansion@^1.1.7: 299 | version "1.1.11" 300 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 301 | integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== 302 | dependencies: 303 | balanced-match "^1.0.0" 304 | concat-map "0.0.1" 305 | 306 | braces@^2.3.1, braces@^2.3.2: 307 | version "2.3.2" 308 | resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" 309 | integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== 310 | dependencies: 311 | arr-flatten "^1.1.0" 312 | array-unique "^0.3.2" 313 | extend-shallow "^2.0.1" 314 | fill-range "^4.0.0" 315 | isobject "^3.0.1" 316 | repeat-element "^1.1.2" 317 | snapdragon "^0.8.1" 318 | snapdragon-node "^2.0.1" 319 | split-string "^3.0.2" 320 | to-regex "^3.0.1" 321 | 322 | braces@^3.0.1: 323 | version "3.0.2" 324 | resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" 325 | integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== 326 | dependencies: 327 | fill-range "^7.0.1" 328 | 329 | buffer-crc32@~0.2.3: 330 | version "0.2.13" 331 | resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" 332 | integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= 333 | 334 | buffer-equal-constant-time@1.0.1: 335 | version "1.0.1" 336 | resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819" 337 | integrity sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk= 338 | 339 | bytes@3.1.0: 340 | version "3.1.0" 341 | resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" 342 | integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== 343 | 344 | cache-base@^1.0.1: 345 | version "1.0.1" 346 | resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" 347 | integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== 348 | dependencies: 349 | collection-visit "^1.0.0" 350 | component-emitter "^1.2.1" 351 | get-value "^2.0.6" 352 | has-value "^1.0.0" 353 | isobject "^3.0.1" 354 | set-value "^2.0.0" 355 | to-object-path "^0.3.0" 356 | union-value "^1.0.0" 357 | unset-value "^1.0.0" 358 | 359 | call-bind@^1.0.0: 360 | version "1.0.2" 361 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 362 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 363 | dependencies: 364 | function-bind "^1.1.1" 365 | get-intrinsic "^1.0.2" 366 | 367 | camelcase@^4.0.0: 368 | version "4.1.0" 369 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" 370 | integrity sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0= 371 | 372 | capture-stack-trace@^1.0.0: 373 | version "1.0.1" 374 | resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz#a6c0bbe1f38f3aa0b92238ecb6ff42c344d4135d" 375 | integrity sha512-mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw== 376 | 377 | caseless@~0.12.0: 378 | version "0.12.0" 379 | resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" 380 | integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= 381 | 382 | chalk@^1.0.0: 383 | version "1.1.3" 384 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 385 | integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= 386 | dependencies: 387 | ansi-styles "^2.2.1" 388 | escape-string-regexp "^1.0.2" 389 | has-ansi "^2.0.0" 390 | strip-ansi "^3.0.0" 391 | supports-color "^2.0.0" 392 | 393 | chalk@^2.0.1: 394 | version "2.4.2" 395 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" 396 | integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== 397 | dependencies: 398 | ansi-styles "^3.2.1" 399 | escape-string-regexp "^1.0.5" 400 | supports-color "^5.3.0" 401 | 402 | chalk@~4.1.0: 403 | version "4.1.2" 404 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 405 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 406 | dependencies: 407 | ansi-styles "^4.1.0" 408 | supports-color "^7.1.0" 409 | 410 | cheerio-select@^1.5.0: 411 | version "1.5.0" 412 | resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823" 413 | integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg== 414 | dependencies: 415 | css-select "^4.1.3" 416 | css-what "^5.0.1" 417 | domelementtype "^2.2.0" 418 | domhandler "^4.2.0" 419 | domutils "^2.7.0" 420 | 421 | cheerio@^1.0.0-rc.2: 422 | version "1.0.0-rc.10" 423 | resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e" 424 | integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw== 425 | dependencies: 426 | cheerio-select "^1.5.0" 427 | dom-serializer "^1.3.2" 428 | domhandler "^4.2.0" 429 | htmlparser2 "^6.1.0" 430 | parse5 "^6.0.1" 431 | parse5-htmlparser2-tree-adapter "^6.0.1" 432 | tslib "^2.2.0" 433 | 434 | chokidar@^2.1.8: 435 | version "2.1.8" 436 | resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" 437 | integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== 438 | dependencies: 439 | anymatch "^2.0.0" 440 | async-each "^1.0.1" 441 | braces "^2.3.2" 442 | glob-parent "^3.1.0" 443 | inherits "^2.0.3" 444 | is-binary-path "^1.0.0" 445 | is-glob "^4.0.0" 446 | normalize-path "^3.0.0" 447 | path-is-absolute "^1.0.0" 448 | readdirp "^2.2.1" 449 | upath "^1.1.1" 450 | optionalDependencies: 451 | fsevents "^1.2.7" 452 | 453 | ci-info@^1.5.0: 454 | version "1.6.0" 455 | resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497" 456 | integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A== 457 | 458 | class-utils@^0.3.5: 459 | version "0.3.6" 460 | resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" 461 | integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== 462 | dependencies: 463 | arr-union "^3.1.0" 464 | define-property "^0.2.5" 465 | isobject "^3.0.0" 466 | static-extend "^0.1.1" 467 | 468 | cli-boxes@^1.0.0: 469 | version "1.0.0" 470 | resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" 471 | integrity sha1-T6kXw+WclKAEzWH47lCdplFocUM= 472 | 473 | collection-visit@^1.0.0: 474 | version "1.0.0" 475 | resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" 476 | integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= 477 | dependencies: 478 | map-visit "^1.0.0" 479 | object-visit "^1.0.0" 480 | 481 | color-convert@^1.9.0: 482 | version "1.9.3" 483 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" 484 | integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== 485 | dependencies: 486 | color-name "1.1.3" 487 | 488 | color-convert@^2.0.1: 489 | version "2.0.1" 490 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 491 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 492 | dependencies: 493 | color-name "~1.1.4" 494 | 495 | color-name@1.1.3: 496 | version "1.1.3" 497 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" 498 | integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= 499 | 500 | color-name@~1.1.4: 501 | version "1.1.4" 502 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 503 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 504 | 505 | colors@^1.1.2: 506 | version "1.4.0" 507 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" 508 | integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== 509 | 510 | colors@~1.1.2: 511 | version "1.1.2" 512 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 513 | integrity sha1-FopHAXVran9RoSzgyXv6KMCE7WM= 514 | 515 | combined-stream@^1.0.5, combined-stream@^1.0.6, combined-stream@~1.0.6: 516 | version "1.0.8" 517 | resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" 518 | integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== 519 | dependencies: 520 | delayed-stream "~1.0.0" 521 | 522 | commander@~2.19.0: 523 | version "2.19.0" 524 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" 525 | integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== 526 | 527 | component-bind@1.0.0: 528 | version "1.0.0" 529 | resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" 530 | integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= 531 | 532 | component-emitter@1.2.1: 533 | version "1.2.1" 534 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" 535 | integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= 536 | 537 | component-emitter@^1.2.0, component-emitter@^1.2.1, component-emitter@~1.3.0: 538 | version "1.3.0" 539 | resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" 540 | integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== 541 | 542 | component-inherit@0.0.3: 543 | version "0.0.3" 544 | resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" 545 | integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= 546 | 547 | concat-map@0.0.1: 548 | version "0.0.1" 549 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 550 | integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= 551 | 552 | configstore@^3.0.0: 553 | version "3.1.5" 554 | resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.5.tgz#e9af331fadc14dabd544d3e7e76dc446a09a530f" 555 | integrity sha512-nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA== 556 | dependencies: 557 | dot-prop "^4.2.1" 558 | graceful-fs "^4.1.2" 559 | make-dir "^1.0.0" 560 | unique-string "^1.0.0" 561 | write-file-atomic "^2.0.0" 562 | xdg-basedir "^3.0.0" 563 | 564 | content-disposition@0.5.3: 565 | version "0.5.3" 566 | resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" 567 | integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== 568 | dependencies: 569 | safe-buffer "5.1.2" 570 | 571 | content-type@~1.0.4: 572 | version "1.0.4" 573 | resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" 574 | integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== 575 | 576 | cookie-parser@^1.4.3: 577 | version "1.4.6" 578 | resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.6.tgz#3ac3a7d35a7a03bbc7e365073a26074824214594" 579 | integrity sha512-z3IzaNjdwUC2olLIB5/ITd0/setiaFMLYiZJle7xg5Fe9KWAceil7xszYfHHBtDFYLSgJduS2Ty0P1uJdPDJeA== 580 | dependencies: 581 | cookie "0.4.1" 582 | cookie-signature "1.0.6" 583 | 584 | cookie-signature@1.0.6: 585 | version "1.0.6" 586 | resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" 587 | integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= 588 | 589 | cookie@0.4.0: 590 | version "0.4.0" 591 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" 592 | integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== 593 | 594 | cookie@0.4.1, cookie@~0.4.1: 595 | version "0.4.1" 596 | resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.1.tgz#afd713fe26ebd21ba95ceb61f9a8116e50a537d1" 597 | integrity sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA== 598 | 599 | cookiejar@^2.0.6: 600 | version "2.1.3" 601 | resolved "https://registry.yarnpkg.com/cookiejar/-/cookiejar-2.1.3.tgz#fc7a6216e408e74414b90230050842dacda75acc" 602 | integrity sha512-JxbCBUdrfr6AQjOXrxoTvAMJO4HBTUIlBzslcJPAz+/KT8yk53fXun51u+RenNYvad/+Vc2DIz5o9UxlCDymFQ== 603 | 604 | copy-descriptor@^0.1.0: 605 | version "0.1.1" 606 | resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" 607 | integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= 608 | 609 | core-util-is@1.0.2: 610 | version "1.0.2" 611 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 612 | integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= 613 | 614 | core-util-is@~1.0.0: 615 | version "1.0.3" 616 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" 617 | integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== 618 | 619 | country-data@0.0.31: 620 | version "0.0.31" 621 | resolved "https://registry.yarnpkg.com/country-data/-/country-data-0.0.31.tgz#80966b8e1d147fa6d6a589d32933f8793774956d" 622 | integrity sha1-gJZrjh0Uf6bWpYnTKTP4eTd0lW0= 623 | dependencies: 624 | currency-symbol-map "~2" 625 | underscore ">1.4.4" 626 | 627 | create-error-class@^3.0.0: 628 | version "3.0.2" 629 | resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" 630 | integrity sha1-Br56vvlHo/FKMP1hBnHUAbyot7Y= 631 | dependencies: 632 | capture-stack-trace "^1.0.0" 633 | 634 | cross-spawn@^0.2.3: 635 | version "0.2.9" 636 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-0.2.9.tgz#bd67f96c07efb6303b7fe94c1e979f88478e0a39" 637 | integrity sha1-vWf5bAfvtjA7f+lMHpefiEeOCjk= 638 | dependencies: 639 | lru-cache "^2.5.0" 640 | 641 | cross-spawn@^5.0.1: 642 | version "5.1.0" 643 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" 644 | integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= 645 | dependencies: 646 | lru-cache "^4.0.1" 647 | shebang-command "^1.2.0" 648 | which "^1.2.9" 649 | 650 | crypto-random-string@^1.0.0: 651 | version "1.0.0" 652 | resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" 653 | integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= 654 | 655 | css-select@^4.1.3: 656 | version "4.1.3" 657 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.1.3.tgz#a70440f70317f2669118ad74ff105e65849c7067" 658 | integrity sha512-gT3wBNd9Nj49rAbmtFHj1cljIAOLYSX1nZ8CB7TBO3INYckygm5B7LISU/szY//YmdiSLbJvDLOx9VnMVpMBxA== 659 | dependencies: 660 | boolbase "^1.0.0" 661 | css-what "^5.0.0" 662 | domhandler "^4.2.0" 663 | domutils "^2.6.0" 664 | nth-check "^2.0.0" 665 | 666 | css-what@^5.0.0, css-what@^5.0.1: 667 | version "5.1.0" 668 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe" 669 | integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw== 670 | 671 | currency-symbol-map@~2: 672 | version "2.2.0" 673 | resolved "https://registry.yarnpkg.com/currency-symbol-map/-/currency-symbol-map-2.2.0.tgz#2b3c1872ff1ac2ce595d8273e58e1fff0272aea2" 674 | integrity sha1-KzwYcv8aws5ZXYJz5Y4f/wJyrqI= 675 | 676 | dargs@^4.0.0: 677 | version "4.1.0" 678 | resolved "https://registry.yarnpkg.com/dargs/-/dargs-4.1.0.tgz#03a9dbb4b5c2f139bf14ae53f0b8a2a6a86f4e17" 679 | integrity sha1-A6nbtLXC8Tm/FK5T8LiipqhvThc= 680 | dependencies: 681 | number-is-nan "^1.0.0" 682 | 683 | dashdash@^1.12.0: 684 | version "1.14.1" 685 | resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" 686 | integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= 687 | dependencies: 688 | assert-plus "^1.0.0" 689 | 690 | dateformat@~3.0.3: 691 | version "3.0.3" 692 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae" 693 | integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q== 694 | 695 | debug@2.6.9, debug@^2.2.0, debug@^2.3.3: 696 | version "2.6.9" 697 | resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" 698 | integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== 699 | dependencies: 700 | ms "2.0.0" 701 | 702 | debug@^3.2.6: 703 | version "3.2.7" 704 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" 705 | integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== 706 | dependencies: 707 | ms "^2.1.1" 708 | 709 | debug@~3.1.0: 710 | version "3.1.0" 711 | resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" 712 | integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== 713 | dependencies: 714 | ms "2.0.0" 715 | 716 | debug@~4.1.0: 717 | version "4.1.1" 718 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" 719 | integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== 720 | dependencies: 721 | ms "^2.1.1" 722 | 723 | decode-uri-component@^0.2.0: 724 | version "0.2.0" 725 | resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" 726 | integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= 727 | 728 | deep-extend@^0.6.0: 729 | version "0.6.0" 730 | resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" 731 | integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== 732 | 733 | define-property@^0.2.5: 734 | version "0.2.5" 735 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" 736 | integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= 737 | dependencies: 738 | is-descriptor "^0.1.0" 739 | 740 | define-property@^1.0.0: 741 | version "1.0.0" 742 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" 743 | integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= 744 | dependencies: 745 | is-descriptor "^1.0.0" 746 | 747 | define-property@^2.0.2: 748 | version "2.0.2" 749 | resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" 750 | integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== 751 | dependencies: 752 | is-descriptor "^1.0.2" 753 | isobject "^3.0.1" 754 | 755 | delayed-stream@~1.0.0: 756 | version "1.0.0" 757 | resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" 758 | integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= 759 | 760 | depd@~1.1.2: 761 | version "1.1.2" 762 | resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" 763 | integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= 764 | 765 | depd@~2.0.0: 766 | version "2.0.0" 767 | resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" 768 | integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== 769 | 770 | destroy@~1.0.4: 771 | version "1.0.4" 772 | resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" 773 | integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= 774 | 775 | detect-file@^1.0.0: 776 | version "1.0.0" 777 | resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" 778 | integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= 779 | 780 | dom-serializer@^1.0.1, dom-serializer@^1.3.2: 781 | version "1.3.2" 782 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91" 783 | integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig== 784 | dependencies: 785 | domelementtype "^2.0.1" 786 | domhandler "^4.2.0" 787 | entities "^2.0.0" 788 | 789 | domelementtype@^2.0.1, domelementtype@^2.2.0: 790 | version "2.2.0" 791 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" 792 | integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== 793 | 794 | domhandler@^4.0.0, domhandler@^4.2.0: 795 | version "4.2.2" 796 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" 797 | integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== 798 | dependencies: 799 | domelementtype "^2.2.0" 800 | 801 | domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0: 802 | version "2.8.0" 803 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 804 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 805 | dependencies: 806 | dom-serializer "^1.0.1" 807 | domelementtype "^2.2.0" 808 | domhandler "^4.2.0" 809 | 810 | dot-prop@^4.2.1: 811 | version "4.2.1" 812 | resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.1.tgz#45884194a71fc2cda71cbb4bceb3a4dd2f433ba4" 813 | integrity sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ== 814 | dependencies: 815 | is-obj "^1.0.0" 816 | 817 | dotenv@^10.0.0: 818 | version "10.0.0" 819 | resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-10.0.0.tgz#3d4227b8fb95f81096cdd2b66653fb2c7085ba81" 820 | integrity sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q== 821 | 822 | duplexer3@^0.1.4: 823 | version "0.1.4" 824 | resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" 825 | integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= 826 | 827 | duplexer@^0.1.1: 828 | version "0.1.2" 829 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" 830 | integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== 831 | 832 | ecc-jsbn@~0.1.1: 833 | version "0.1.2" 834 | resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" 835 | integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= 836 | dependencies: 837 | jsbn "~0.1.0" 838 | safer-buffer "^2.1.0" 839 | 840 | ecdsa-sig-formatter@1.0.11: 841 | version "1.0.11" 842 | resolved "https://registry.yarnpkg.com/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz#ae0f0fa2d85045ef14a817daa3ce9acd0489e5bf" 843 | integrity sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ== 844 | dependencies: 845 | safe-buffer "^5.0.1" 846 | 847 | ee-first@1.1.1: 848 | version "1.1.1" 849 | resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" 850 | integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= 851 | 852 | encodeurl@~1.0.2: 853 | version "1.0.2" 854 | resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" 855 | integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= 856 | 857 | engine.io-client@~3.5.0: 858 | version "3.5.2" 859 | resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.5.2.tgz#0ef473621294004e9ceebe73cef0af9e36f2f5fa" 860 | integrity sha512-QEqIp+gJ/kMHeUun7f5Vv3bteRHppHH/FMBQX/esFj/fuYfjyUKWGMo3VCvIP/V8bE9KcjHmRZrhIz2Z9oNsDA== 861 | dependencies: 862 | component-emitter "~1.3.0" 863 | component-inherit "0.0.3" 864 | debug "~3.1.0" 865 | engine.io-parser "~2.2.0" 866 | has-cors "1.1.0" 867 | indexof "0.0.1" 868 | parseqs "0.0.6" 869 | parseuri "0.0.6" 870 | ws "~7.4.2" 871 | xmlhttprequest-ssl "~1.6.2" 872 | yeast "0.1.2" 873 | 874 | engine.io-parser@~2.2.0: 875 | version "2.2.1" 876 | resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.1.tgz#57ce5611d9370ee94f99641b589f94c97e4f5da7" 877 | integrity sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg== 878 | dependencies: 879 | after "0.8.2" 880 | arraybuffer.slice "~0.0.7" 881 | base64-arraybuffer "0.1.4" 882 | blob "0.0.5" 883 | has-binary2 "~1.0.2" 884 | 885 | engine.io@~3.5.0: 886 | version "3.5.0" 887 | resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.5.0.tgz#9d6b985c8a39b1fe87cd91eb014de0552259821b" 888 | integrity sha512-21HlvPUKaitDGE4GXNtQ7PLP0Sz4aWLddMPw2VTyFz1FVZqu/kZsJUO8WNpKuE/OCL7nkfRaOui2ZCJloGznGA== 889 | dependencies: 890 | accepts "~1.3.4" 891 | base64id "2.0.0" 892 | cookie "~0.4.1" 893 | debug "~4.1.0" 894 | engine.io-parser "~2.2.0" 895 | ws "~7.4.2" 896 | 897 | entities@^2.0.0: 898 | version "2.2.0" 899 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 900 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 901 | 902 | escape-html@~1.0.3: 903 | version "1.0.3" 904 | resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" 905 | integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= 906 | 907 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 908 | version "1.0.5" 909 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 910 | integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= 911 | 912 | esprima@^4.0.0: 913 | version "4.0.1" 914 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" 915 | integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== 916 | 917 | etag@~1.8.1: 918 | version "1.8.1" 919 | resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" 920 | integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= 921 | 922 | eventemitter2@~0.4.13: 923 | version "0.4.14" 924 | resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" 925 | integrity sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas= 926 | 927 | execa@^0.7.0: 928 | version "0.7.0" 929 | resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" 930 | integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= 931 | dependencies: 932 | cross-spawn "^5.0.1" 933 | get-stream "^3.0.0" 934 | is-stream "^1.1.0" 935 | npm-run-path "^2.0.0" 936 | p-finally "^1.0.0" 937 | signal-exit "^3.0.0" 938 | strip-eof "^1.0.0" 939 | 940 | exit@~0.1.2: 941 | version "0.1.2" 942 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" 943 | integrity sha1-BjJjj42HfMghB9MKD/8aF8uhzQw= 944 | 945 | expand-brackets@^2.1.4: 946 | version "2.1.4" 947 | resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" 948 | integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= 949 | dependencies: 950 | debug "^2.3.3" 951 | define-property "^0.2.5" 952 | extend-shallow "^2.0.1" 953 | posix-character-classes "^0.1.0" 954 | regex-not "^1.0.0" 955 | snapdragon "^0.8.1" 956 | to-regex "^3.0.1" 957 | 958 | expand-tilde@^2.0.0, expand-tilde@^2.0.2: 959 | version "2.0.2" 960 | resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" 961 | integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= 962 | dependencies: 963 | homedir-polyfill "^1.0.1" 964 | 965 | express-geoip@^2.2.0: 966 | version "2.4.0" 967 | resolved "https://registry.yarnpkg.com/express-geoip/-/express-geoip-2.4.0.tgz#7e583f160a2478f193a62597962fd4e7796731b8" 968 | integrity sha512-gXKJjBtXc3e3JfUK8vU+GSbVcASFLNxho0lp0kZlQph3Lz1O3HQfxsmXc1jkSqi+mkMlXfi0lMEF/+ZbQi+yrA== 969 | dependencies: 970 | geoip-lite "^1.3.4" 971 | 972 | express@^4.14.1: 973 | version "4.17.1" 974 | resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" 975 | integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== 976 | dependencies: 977 | accepts "~1.3.7" 978 | array-flatten "1.1.1" 979 | body-parser "1.19.0" 980 | content-disposition "0.5.3" 981 | content-type "~1.0.4" 982 | cookie "0.4.0" 983 | cookie-signature "1.0.6" 984 | debug "2.6.9" 985 | depd "~1.1.2" 986 | encodeurl "~1.0.2" 987 | escape-html "~1.0.3" 988 | etag "~1.8.1" 989 | finalhandler "~1.1.2" 990 | fresh "0.5.2" 991 | merge-descriptors "1.0.1" 992 | methods "~1.1.2" 993 | on-finished "~2.3.0" 994 | parseurl "~1.3.3" 995 | path-to-regexp "0.1.7" 996 | proxy-addr "~2.0.5" 997 | qs "6.7.0" 998 | range-parser "~1.2.1" 999 | safe-buffer "5.1.2" 1000 | send "0.17.1" 1001 | serve-static "1.14.1" 1002 | setprototypeof "1.1.1" 1003 | statuses "~1.5.0" 1004 | type-is "~1.6.18" 1005 | utils-merge "1.0.1" 1006 | vary "~1.1.2" 1007 | 1008 | extend-shallow@^2.0.1: 1009 | version "2.0.1" 1010 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" 1011 | integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= 1012 | dependencies: 1013 | is-extendable "^0.1.0" 1014 | 1015 | extend-shallow@^3.0.0, extend-shallow@^3.0.2: 1016 | version "3.0.2" 1017 | resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" 1018 | integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= 1019 | dependencies: 1020 | assign-symbols "^1.0.0" 1021 | is-extendable "^1.0.1" 1022 | 1023 | extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: 1024 | version "3.0.2" 1025 | resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" 1026 | integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== 1027 | 1028 | extglob@^2.0.4: 1029 | version "2.0.4" 1030 | resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" 1031 | integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== 1032 | dependencies: 1033 | array-unique "^0.3.2" 1034 | define-property "^1.0.0" 1035 | expand-brackets "^2.1.4" 1036 | extend-shallow "^2.0.1" 1037 | fragment-cache "^0.2.1" 1038 | regex-not "^1.0.0" 1039 | snapdragon "^0.8.1" 1040 | to-regex "^3.0.1" 1041 | 1042 | extsprintf@1.3.0: 1043 | version "1.3.0" 1044 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" 1045 | integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= 1046 | 1047 | extsprintf@^1.2.0: 1048 | version "1.4.1" 1049 | resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" 1050 | integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== 1051 | 1052 | fast-deep-equal@^3.1.1: 1053 | version "3.1.3" 1054 | resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" 1055 | integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== 1056 | 1057 | fast-json-stable-stringify@^2.0.0: 1058 | version "2.1.0" 1059 | resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" 1060 | integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== 1061 | 1062 | fd-slicer@~1.1.0: 1063 | version "1.1.0" 1064 | resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" 1065 | integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= 1066 | dependencies: 1067 | pend "~1.2.0" 1068 | 1069 | figures@^1.0.1: 1070 | version "1.7.0" 1071 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 1072 | integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4= 1073 | dependencies: 1074 | escape-string-regexp "^1.0.5" 1075 | object-assign "^4.1.0" 1076 | 1077 | file-uri-to-path@1.0.0: 1078 | version "1.0.0" 1079 | resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" 1080 | integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== 1081 | 1082 | fill-range@^4.0.0: 1083 | version "4.0.0" 1084 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" 1085 | integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= 1086 | dependencies: 1087 | extend-shallow "^2.0.1" 1088 | is-number "^3.0.0" 1089 | repeat-string "^1.6.1" 1090 | to-regex-range "^2.1.0" 1091 | 1092 | fill-range@^7.0.1: 1093 | version "7.0.1" 1094 | resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" 1095 | integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== 1096 | dependencies: 1097 | to-regex-range "^5.0.1" 1098 | 1099 | finalhandler@~1.1.2: 1100 | version "1.1.2" 1101 | resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" 1102 | integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== 1103 | dependencies: 1104 | debug "2.6.9" 1105 | encodeurl "~1.0.2" 1106 | escape-html "~1.0.3" 1107 | on-finished "~2.3.0" 1108 | parseurl "~1.3.3" 1109 | statuses "~1.5.0" 1110 | unpipe "~1.0.0" 1111 | 1112 | findup-sync@^4.0.0: 1113 | version "4.0.0" 1114 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-4.0.0.tgz#956c9cdde804052b881b428512905c4a5f2cdef0" 1115 | integrity sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ== 1116 | dependencies: 1117 | detect-file "^1.0.0" 1118 | is-glob "^4.0.0" 1119 | micromatch "^4.0.2" 1120 | resolve-dir "^1.0.1" 1121 | 1122 | findup-sync@~0.3.0: 1123 | version "0.3.0" 1124 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" 1125 | integrity sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY= 1126 | dependencies: 1127 | glob "~5.0.0" 1128 | 1129 | fined@^1.2.0: 1130 | version "1.2.0" 1131 | resolved "https://registry.yarnpkg.com/fined/-/fined-1.2.0.tgz#d00beccf1aa2b475d16d423b0238b713a2c4a37b" 1132 | integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== 1133 | dependencies: 1134 | expand-tilde "^2.0.2" 1135 | is-plain-object "^2.0.3" 1136 | object.defaults "^1.1.0" 1137 | object.pick "^1.2.0" 1138 | parse-filepath "^1.0.1" 1139 | 1140 | flagged-respawn@^1.0.1: 1141 | version "1.0.1" 1142 | resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" 1143 | integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== 1144 | 1145 | for-in@^1.0.1, for-in@^1.0.2: 1146 | version "1.0.2" 1147 | resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" 1148 | integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= 1149 | 1150 | for-own@^1.0.0: 1151 | version "1.0.0" 1152 | resolved "https://registry.yarnpkg.com/for-own/-/for-own-1.0.0.tgz#c63332f415cedc4b04dbfe70cf836494c53cb44b" 1153 | integrity sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs= 1154 | dependencies: 1155 | for-in "^1.0.1" 1156 | 1157 | forever-agent@~0.6.1: 1158 | version "0.6.1" 1159 | resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" 1160 | integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= 1161 | 1162 | form-data@1.0.0-rc4: 1163 | version "1.0.0-rc4" 1164 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.0-rc4.tgz#05ac6bc22227b43e4461f488161554699d4f8b5e" 1165 | integrity sha1-BaxrwiIntD5EYfSIFhVUaZ1Pi14= 1166 | dependencies: 1167 | async "^1.5.2" 1168 | combined-stream "^1.0.5" 1169 | mime-types "^2.1.10" 1170 | 1171 | form-data@~2.3.2: 1172 | version "2.3.3" 1173 | resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" 1174 | integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== 1175 | dependencies: 1176 | asynckit "^0.4.0" 1177 | combined-stream "^1.0.6" 1178 | mime-types "^2.1.12" 1179 | 1180 | formidable@^1.0.17: 1181 | version "1.2.6" 1182 | resolved "https://registry.yarnpkg.com/formidable/-/formidable-1.2.6.tgz#d2a51d60162bbc9b4a055d8457a7c75315d1a168" 1183 | integrity sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ== 1184 | 1185 | forwarded@0.2.0: 1186 | version "0.2.0" 1187 | resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" 1188 | integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== 1189 | 1190 | fragment-cache@^0.2.1: 1191 | version "0.2.1" 1192 | resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" 1193 | integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= 1194 | dependencies: 1195 | map-cache "^0.2.2" 1196 | 1197 | fresh@0.5.2: 1198 | version "0.5.2" 1199 | resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" 1200 | integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= 1201 | 1202 | fs.realpath@^1.0.0: 1203 | version "1.0.0" 1204 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 1205 | integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= 1206 | 1207 | fsevents@^1.2.7: 1208 | version "1.2.13" 1209 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" 1210 | integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== 1211 | dependencies: 1212 | bindings "^1.5.0" 1213 | nan "^2.12.1" 1214 | 1215 | function-bind@^1.1.1: 1216 | version "1.1.1" 1217 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 1218 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 1219 | 1220 | geoip-lite@^1.3.4: 1221 | version "1.4.2" 1222 | resolved "https://registry.yarnpkg.com/geoip-lite/-/geoip-lite-1.4.2.tgz#f41dc50086cce3bc31a6d2d578cad1c37f9f17b3" 1223 | integrity sha512-1rUNqar68+ldSSlSMdpLZPAM+NRokIDzB2lpQFRHSOaDVqtmy25jTAWe0lM2GqWFeaA35RiLhF8GF0vvL+qOKA== 1224 | dependencies: 1225 | async "^2.1.1" 1226 | colors "^1.1.2" 1227 | iconv-lite "^0.4.13" 1228 | ip-address "^5.8.9" 1229 | lazy "^1.0.11" 1230 | rimraf "^2.5.2" 1231 | yauzl "^2.9.2" 1232 | 1233 | get-intrinsic@^1.0.2: 1234 | version "1.1.1" 1235 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 1236 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 1237 | dependencies: 1238 | function-bind "^1.1.1" 1239 | has "^1.0.3" 1240 | has-symbols "^1.0.1" 1241 | 1242 | get-stream@^3.0.0: 1243 | version "3.0.0" 1244 | resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" 1245 | integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= 1246 | 1247 | get-value@^2.0.3, get-value@^2.0.6: 1248 | version "2.0.6" 1249 | resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" 1250 | integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= 1251 | 1252 | getobject@~1.0.0: 1253 | version "1.0.2" 1254 | resolved "https://registry.yarnpkg.com/getobject/-/getobject-1.0.2.tgz#25ec87a50370f6dcc3c6ba7ef43c4c16215c4c89" 1255 | integrity sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg== 1256 | 1257 | getpass@^0.1.1: 1258 | version "0.1.7" 1259 | resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" 1260 | integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= 1261 | dependencies: 1262 | assert-plus "^1.0.0" 1263 | 1264 | glob-parent@^3.1.0: 1265 | version "3.1.0" 1266 | resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" 1267 | integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= 1268 | dependencies: 1269 | is-glob "^3.1.0" 1270 | path-dirname "^1.0.0" 1271 | 1272 | glob@^7.1.3: 1273 | version "7.2.0" 1274 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" 1275 | integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== 1276 | dependencies: 1277 | fs.realpath "^1.0.0" 1278 | inflight "^1.0.4" 1279 | inherits "2" 1280 | minimatch "^3.0.4" 1281 | once "^1.3.0" 1282 | path-is-absolute "^1.0.0" 1283 | 1284 | glob@~5.0.0: 1285 | version "5.0.15" 1286 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" 1287 | integrity sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E= 1288 | dependencies: 1289 | inflight "^1.0.4" 1290 | inherits "2" 1291 | minimatch "2 || 3" 1292 | once "^1.3.0" 1293 | path-is-absolute "^1.0.0" 1294 | 1295 | glob@~7.1.6: 1296 | version "7.1.7" 1297 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" 1298 | integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== 1299 | dependencies: 1300 | fs.realpath "^1.0.0" 1301 | inflight "^1.0.4" 1302 | inherits "2" 1303 | minimatch "^3.0.4" 1304 | once "^1.3.0" 1305 | path-is-absolute "^1.0.0" 1306 | 1307 | global-dirs@^0.1.0: 1308 | version "0.1.1" 1309 | resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" 1310 | integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= 1311 | dependencies: 1312 | ini "^1.3.4" 1313 | 1314 | global-modules@^1.0.0: 1315 | version "1.0.0" 1316 | resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" 1317 | integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== 1318 | dependencies: 1319 | global-prefix "^1.0.1" 1320 | is-windows "^1.0.1" 1321 | resolve-dir "^1.0.0" 1322 | 1323 | global-prefix@^1.0.1: 1324 | version "1.0.2" 1325 | resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" 1326 | integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= 1327 | dependencies: 1328 | expand-tilde "^2.0.2" 1329 | homedir-polyfill "^1.0.1" 1330 | ini "^1.3.4" 1331 | is-windows "^1.0.1" 1332 | which "^1.2.14" 1333 | 1334 | google-auth-library@~0.10.0: 1335 | version "0.10.0" 1336 | resolved "https://registry.yarnpkg.com/google-auth-library/-/google-auth-library-0.10.0.tgz#6e15babee85fd1dd14d8d128a295b6838d52136e" 1337 | integrity sha1-bhW6vuhf0d0U2NEoopW2g41SE24= 1338 | dependencies: 1339 | gtoken "^1.2.1" 1340 | jws "^3.1.4" 1341 | lodash.noop "^3.0.1" 1342 | request "^2.74.0" 1343 | 1344 | google-p12-pem@^0.1.0: 1345 | version "0.1.2" 1346 | resolved "https://registry.yarnpkg.com/google-p12-pem/-/google-p12-pem-0.1.2.tgz#33c46ab021aa734fa0332b3960a9a3ffcb2f3177" 1347 | integrity sha1-M8RqsCGqc0+gMys5YKmj/8svMXc= 1348 | dependencies: 1349 | node-forge "^0.7.1" 1350 | 1351 | googleapis@^16.1.0: 1352 | version "16.1.0" 1353 | resolved "https://registry.yarnpkg.com/googleapis/-/googleapis-16.1.0.tgz#0f19f2d70572d918881a0f626e3b1a2fa8629576" 1354 | integrity sha1-Dxny1wVy2RiIGg9ibjsaL6hilXY= 1355 | dependencies: 1356 | async "~2.1.4" 1357 | google-auth-library "~0.10.0" 1358 | string-template "~1.0.0" 1359 | 1360 | got@^6.7.1: 1361 | version "6.7.1" 1362 | resolved "https://registry.yarnpkg.com/got/-/got-6.7.1.tgz#240cd05785a9a18e561dc1b44b41c763ef1e8db0" 1363 | integrity sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA= 1364 | dependencies: 1365 | create-error-class "^3.0.0" 1366 | duplexer3 "^0.1.4" 1367 | get-stream "^3.0.0" 1368 | is-redirect "^1.0.0" 1369 | is-retry-allowed "^1.0.0" 1370 | is-stream "^1.0.0" 1371 | lowercase-keys "^1.0.0" 1372 | safe-buffer "^5.0.1" 1373 | timed-out "^4.0.0" 1374 | unzip-response "^2.0.1" 1375 | url-parse-lax "^1.0.0" 1376 | 1377 | graceful-fs@^4.1.11, graceful-fs@^4.1.2: 1378 | version "4.2.8" 1379 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" 1380 | integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== 1381 | 1382 | grunt-cli@^1.2.0, grunt-cli@~1.4.2: 1383 | version "1.4.3" 1384 | resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.4.3.tgz#22c9f1a3d2780bf9b0d206e832e40f8f499175ff" 1385 | integrity sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ== 1386 | dependencies: 1387 | grunt-known-options "~2.0.0" 1388 | interpret "~1.1.0" 1389 | liftup "~3.0.1" 1390 | nopt "~4.0.1" 1391 | v8flags "~3.2.0" 1392 | 1393 | grunt-contrib-sass@^1.0.0: 1394 | version "1.0.0" 1395 | resolved "https://registry.yarnpkg.com/grunt-contrib-sass/-/grunt-contrib-sass-1.0.0.tgz#806838251cbc0e1a94d64d515cdd34cf674d701b" 1396 | integrity sha1-gGg4JRy8DhqU1k1RXN00z2dNcBs= 1397 | dependencies: 1398 | async "^0.9.0" 1399 | chalk "^1.0.0" 1400 | cross-spawn "^0.2.3" 1401 | dargs "^4.0.0" 1402 | which "^1.0.5" 1403 | 1404 | grunt-contrib-uglify@^3.0.1: 1405 | version "3.4.0" 1406 | resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-3.4.0.tgz#8a51ab330be05ef62b11b2833abd3e955e85af03" 1407 | integrity sha512-UXsTpeP0pytpTYlmll3RDndsRXfdwmrf1tI/AtD/PrArQAzGmKMvj83aVt3D8egWlE6KqPjsJBLCCvfC52LI/A== 1408 | dependencies: 1409 | chalk "^1.0.0" 1410 | maxmin "^2.1.0" 1411 | uglify-js "~3.4.0" 1412 | uri-path "^1.0.0" 1413 | 1414 | grunt-known-options@~2.0.0: 1415 | version "2.0.0" 1416 | resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-2.0.0.tgz#cac641e897f9a0a680b8c9839803d35f3325103c" 1417 | integrity sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA== 1418 | 1419 | grunt-legacy-log-utils@~2.1.0: 1420 | version "2.1.0" 1421 | resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz#49a8c7dc74051476dcc116c32faf9db8646856ef" 1422 | integrity sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw== 1423 | dependencies: 1424 | chalk "~4.1.0" 1425 | lodash "~4.17.19" 1426 | 1427 | grunt-legacy-log@~3.0.0: 1428 | version "3.0.0" 1429 | resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz#1c6eaf92371ea415af31ea84ce50d434ef6d39c4" 1430 | integrity sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA== 1431 | dependencies: 1432 | colors "~1.1.2" 1433 | grunt-legacy-log-utils "~2.1.0" 1434 | hooker "~0.2.3" 1435 | lodash "~4.17.19" 1436 | 1437 | grunt-legacy-util@~2.0.1: 1438 | version "2.0.1" 1439 | resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz#0f929d13a2faf9988c9917c82bff609e2d9ba255" 1440 | integrity sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w== 1441 | dependencies: 1442 | async "~3.2.0" 1443 | exit "~0.1.2" 1444 | getobject "~1.0.0" 1445 | hooker "~0.2.3" 1446 | lodash "~4.17.21" 1447 | underscore.string "~3.3.5" 1448 | which "~2.0.2" 1449 | 1450 | grunt@^1.0.1: 1451 | version "1.4.1" 1452 | resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.4.1.tgz#7d1e17db1f9c8108777f7273d6b9359755576f50" 1453 | integrity sha512-ZXIYXTsAVrA7sM+jZxjQdrBOAg7DyMUplOMhTaspMRExei+fD0BTwdWXnn0W5SXqhb/Q/nlkzXclSi3IH55PIA== 1454 | dependencies: 1455 | dateformat "~3.0.3" 1456 | eventemitter2 "~0.4.13" 1457 | exit "~0.1.2" 1458 | findup-sync "~0.3.0" 1459 | glob "~7.1.6" 1460 | grunt-cli "~1.4.2" 1461 | grunt-known-options "~2.0.0" 1462 | grunt-legacy-log "~3.0.0" 1463 | grunt-legacy-util "~2.0.1" 1464 | iconv-lite "~0.4.13" 1465 | js-yaml "~3.14.0" 1466 | minimatch "~3.0.4" 1467 | mkdirp "~1.0.4" 1468 | nopt "~3.0.6" 1469 | rimraf "~3.0.2" 1470 | 1471 | gtoken@^1.2.1: 1472 | version "1.2.3" 1473 | resolved "https://registry.yarnpkg.com/gtoken/-/gtoken-1.2.3.tgz#5509571b8afd4322e124cf66cf68115284c476d8" 1474 | integrity sha512-wQAJflfoqSgMWrSBk9Fg86q+sd6s7y6uJhIvvIPz++RElGlMtEqsdAR2oWwZ/WTEtp7P9xFbJRrT976oRgzJ/w== 1475 | dependencies: 1476 | google-p12-pem "^0.1.0" 1477 | jws "^3.0.0" 1478 | mime "^1.4.1" 1479 | request "^2.72.0" 1480 | 1481 | gzip-size@^3.0.0: 1482 | version "3.0.0" 1483 | resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" 1484 | integrity sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA= 1485 | dependencies: 1486 | duplexer "^0.1.1" 1487 | 1488 | har-schema@^2.0.0: 1489 | version "2.0.0" 1490 | resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" 1491 | integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= 1492 | 1493 | har-validator@~5.1.3: 1494 | version "5.1.5" 1495 | resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" 1496 | integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== 1497 | dependencies: 1498 | ajv "^6.12.3" 1499 | har-schema "^2.0.0" 1500 | 1501 | has-ansi@^2.0.0: 1502 | version "2.0.0" 1503 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 1504 | integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= 1505 | dependencies: 1506 | ansi-regex "^2.0.0" 1507 | 1508 | has-binary2@~1.0.2: 1509 | version "1.0.3" 1510 | resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" 1511 | integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== 1512 | dependencies: 1513 | isarray "2.0.1" 1514 | 1515 | has-cors@1.1.0: 1516 | version "1.1.0" 1517 | resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" 1518 | integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= 1519 | 1520 | has-flag@^3.0.0: 1521 | version "3.0.0" 1522 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" 1523 | integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= 1524 | 1525 | has-flag@^4.0.0: 1526 | version "4.0.0" 1527 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1528 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1529 | 1530 | has-symbols@^1.0.1: 1531 | version "1.0.2" 1532 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 1533 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 1534 | 1535 | has-value@^0.3.1: 1536 | version "0.3.1" 1537 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" 1538 | integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= 1539 | dependencies: 1540 | get-value "^2.0.3" 1541 | has-values "^0.1.4" 1542 | isobject "^2.0.0" 1543 | 1544 | has-value@^1.0.0: 1545 | version "1.0.0" 1546 | resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" 1547 | integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= 1548 | dependencies: 1549 | get-value "^2.0.6" 1550 | has-values "^1.0.0" 1551 | isobject "^3.0.0" 1552 | 1553 | has-values@^0.1.4: 1554 | version "0.1.4" 1555 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" 1556 | integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= 1557 | 1558 | has-values@^1.0.0: 1559 | version "1.0.0" 1560 | resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" 1561 | integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= 1562 | dependencies: 1563 | is-number "^3.0.0" 1564 | kind-of "^4.0.0" 1565 | 1566 | has@^1.0.3: 1567 | version "1.0.3" 1568 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 1569 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 1570 | dependencies: 1571 | function-bind "^1.1.1" 1572 | 1573 | homedir-polyfill@^1.0.1: 1574 | version "1.0.3" 1575 | resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" 1576 | integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== 1577 | dependencies: 1578 | parse-passwd "^1.0.0" 1579 | 1580 | hooker@~0.2.3: 1581 | version "0.2.3" 1582 | resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" 1583 | integrity sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk= 1584 | 1585 | htmlparser2@^6.1.0: 1586 | version "6.1.0" 1587 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" 1588 | integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A== 1589 | dependencies: 1590 | domelementtype "^2.0.1" 1591 | domhandler "^4.0.0" 1592 | domutils "^2.5.2" 1593 | entities "^2.0.0" 1594 | 1595 | http-errors@1.7.2: 1596 | version "1.7.2" 1597 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" 1598 | integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== 1599 | dependencies: 1600 | depd "~1.1.2" 1601 | inherits "2.0.3" 1602 | setprototypeof "1.1.1" 1603 | statuses ">= 1.5.0 < 2" 1604 | toidentifier "1.0.0" 1605 | 1606 | http-errors@~1.7.2: 1607 | version "1.7.3" 1608 | resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" 1609 | integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== 1610 | dependencies: 1611 | depd "~1.1.2" 1612 | inherits "2.0.4" 1613 | setprototypeof "1.1.1" 1614 | statuses ">= 1.5.0 < 2" 1615 | toidentifier "1.0.0" 1616 | 1617 | http-signature@~1.2.0: 1618 | version "1.2.0" 1619 | resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" 1620 | integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= 1621 | dependencies: 1622 | assert-plus "^1.0.0" 1623 | jsprim "^1.2.2" 1624 | sshpk "^1.7.0" 1625 | 1626 | iconv-lite@0.4.24, iconv-lite@^0.4.13, iconv-lite@~0.4.13: 1627 | version "0.4.24" 1628 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" 1629 | integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== 1630 | dependencies: 1631 | safer-buffer ">= 2.1.2 < 3" 1632 | 1633 | ignore-by-default@^1.0.1: 1634 | version "1.0.1" 1635 | resolved "https://registry.yarnpkg.com/ignore-by-default/-/ignore-by-default-1.0.1.tgz#48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09" 1636 | integrity sha1-SMptcvbGo68Aqa1K5odr44ieKwk= 1637 | 1638 | import-lazy@^2.1.0: 1639 | version "2.1.0" 1640 | resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" 1641 | integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= 1642 | 1643 | imurmurhash@^0.1.4: 1644 | version "0.1.4" 1645 | resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" 1646 | integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= 1647 | 1648 | indexof@0.0.1: 1649 | version "0.0.1" 1650 | resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" 1651 | integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= 1652 | 1653 | inflight@^1.0.4: 1654 | version "1.0.6" 1655 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 1656 | integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= 1657 | dependencies: 1658 | once "^1.3.0" 1659 | wrappy "1" 1660 | 1661 | inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: 1662 | version "2.0.4" 1663 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 1664 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 1665 | 1666 | inherits@2.0.3: 1667 | version "2.0.3" 1668 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 1669 | integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= 1670 | 1671 | ini@^1.3.4, ini@~1.3.0: 1672 | version "1.3.8" 1673 | resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" 1674 | integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== 1675 | 1676 | interpret@~1.1.0: 1677 | version "1.1.0" 1678 | resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" 1679 | integrity sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ= 1680 | 1681 | ip-address@^5.8.9: 1682 | version "5.9.4" 1683 | resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-5.9.4.tgz#4660ac261ad61bd397a860a007f7e98e4eaee386" 1684 | integrity sha512-dHkI3/YNJq4b/qQaz+c8LuarD3pY24JqZWfjB8aZx1gtpc2MDILu9L9jpZe1sHpzo/yWFweQVn+U//FhazUxmw== 1685 | dependencies: 1686 | jsbn "1.1.0" 1687 | lodash "^4.17.15" 1688 | sprintf-js "1.1.2" 1689 | 1690 | ipaddr.js@1.9.1: 1691 | version "1.9.1" 1692 | resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" 1693 | integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== 1694 | 1695 | is-absolute@^1.0.0: 1696 | version "1.0.0" 1697 | resolved "https://registry.yarnpkg.com/is-absolute/-/is-absolute-1.0.0.tgz#395e1ae84b11f26ad1795e73c17378e48a301576" 1698 | integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== 1699 | dependencies: 1700 | is-relative "^1.0.0" 1701 | is-windows "^1.0.1" 1702 | 1703 | is-accessor-descriptor@^0.1.6: 1704 | version "0.1.6" 1705 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" 1706 | integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= 1707 | dependencies: 1708 | kind-of "^3.0.2" 1709 | 1710 | is-accessor-descriptor@^1.0.0: 1711 | version "1.0.0" 1712 | resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" 1713 | integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== 1714 | dependencies: 1715 | kind-of "^6.0.0" 1716 | 1717 | is-binary-path@^1.0.0: 1718 | version "1.0.1" 1719 | resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" 1720 | integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= 1721 | dependencies: 1722 | binary-extensions "^1.0.0" 1723 | 1724 | is-buffer@^1.1.5: 1725 | version "1.1.6" 1726 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 1727 | integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== 1728 | 1729 | is-ci@^1.0.10: 1730 | version "1.2.1" 1731 | resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-1.2.1.tgz#e3779c8ee17fccf428488f6e281187f2e632841c" 1732 | integrity sha512-s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg== 1733 | dependencies: 1734 | ci-info "^1.5.0" 1735 | 1736 | is-core-module@^2.2.0: 1737 | version "2.8.0" 1738 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.0.tgz#0321336c3d0925e497fd97f5d95cb114a5ccd548" 1739 | integrity sha512-vd15qHsaqrRL7dtH6QNuy0ndJmRDrS9HAM1CAiSifNUFv4x1a0CCVsj18hJ1mShxIG6T2i1sO78MkP56r0nYRw== 1740 | dependencies: 1741 | has "^1.0.3" 1742 | 1743 | is-data-descriptor@^0.1.4: 1744 | version "0.1.4" 1745 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" 1746 | integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= 1747 | dependencies: 1748 | kind-of "^3.0.2" 1749 | 1750 | is-data-descriptor@^1.0.0: 1751 | version "1.0.0" 1752 | resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" 1753 | integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== 1754 | dependencies: 1755 | kind-of "^6.0.0" 1756 | 1757 | is-descriptor@^0.1.0: 1758 | version "0.1.6" 1759 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" 1760 | integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== 1761 | dependencies: 1762 | is-accessor-descriptor "^0.1.6" 1763 | is-data-descriptor "^0.1.4" 1764 | kind-of "^5.0.0" 1765 | 1766 | is-descriptor@^1.0.0, is-descriptor@^1.0.2: 1767 | version "1.0.2" 1768 | resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" 1769 | integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== 1770 | dependencies: 1771 | is-accessor-descriptor "^1.0.0" 1772 | is-data-descriptor "^1.0.0" 1773 | kind-of "^6.0.2" 1774 | 1775 | is-extendable@^0.1.0, is-extendable@^0.1.1: 1776 | version "0.1.1" 1777 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" 1778 | integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= 1779 | 1780 | is-extendable@^1.0.1: 1781 | version "1.0.1" 1782 | resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" 1783 | integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== 1784 | dependencies: 1785 | is-plain-object "^2.0.4" 1786 | 1787 | is-extglob@^2.1.0, is-extglob@^2.1.1: 1788 | version "2.1.1" 1789 | resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" 1790 | integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= 1791 | 1792 | is-fullwidth-code-point@^2.0.0: 1793 | version "2.0.0" 1794 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" 1795 | integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= 1796 | 1797 | is-glob@^3.1.0: 1798 | version "3.1.0" 1799 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" 1800 | integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= 1801 | dependencies: 1802 | is-extglob "^2.1.0" 1803 | 1804 | is-glob@^4.0.0: 1805 | version "4.0.3" 1806 | resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" 1807 | integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== 1808 | dependencies: 1809 | is-extglob "^2.1.1" 1810 | 1811 | is-installed-globally@^0.1.0: 1812 | version "0.1.0" 1813 | resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" 1814 | integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= 1815 | dependencies: 1816 | global-dirs "^0.1.0" 1817 | is-path-inside "^1.0.0" 1818 | 1819 | is-npm@^1.0.0: 1820 | version "1.0.0" 1821 | resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" 1822 | integrity sha1-8vtjpl5JBbQGyGBydloaTceTufQ= 1823 | 1824 | is-number@^3.0.0: 1825 | version "3.0.0" 1826 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" 1827 | integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= 1828 | dependencies: 1829 | kind-of "^3.0.2" 1830 | 1831 | is-number@^7.0.0: 1832 | version "7.0.0" 1833 | resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" 1834 | integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== 1835 | 1836 | is-obj@^1.0.0: 1837 | version "1.0.1" 1838 | resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" 1839 | integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= 1840 | 1841 | is-path-inside@^1.0.0: 1842 | version "1.0.1" 1843 | resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" 1844 | integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= 1845 | dependencies: 1846 | path-is-inside "^1.0.1" 1847 | 1848 | is-plain-object@^2.0.3, is-plain-object@^2.0.4: 1849 | version "2.0.4" 1850 | resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" 1851 | integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== 1852 | dependencies: 1853 | isobject "^3.0.1" 1854 | 1855 | is-redirect@^1.0.0: 1856 | version "1.0.0" 1857 | resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" 1858 | integrity sha1-HQPd7VO9jbDzDCbk+V02/HyH3CQ= 1859 | 1860 | is-relative@^1.0.0: 1861 | version "1.0.0" 1862 | resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" 1863 | integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== 1864 | dependencies: 1865 | is-unc-path "^1.0.0" 1866 | 1867 | is-retry-allowed@^1.0.0: 1868 | version "1.2.0" 1869 | resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" 1870 | integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== 1871 | 1872 | is-stream@^1.0.0, is-stream@^1.1.0: 1873 | version "1.1.0" 1874 | resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" 1875 | integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= 1876 | 1877 | is-typedarray@~1.0.0: 1878 | version "1.0.0" 1879 | resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" 1880 | integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= 1881 | 1882 | is-unc-path@^1.0.0: 1883 | version "1.0.0" 1884 | resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" 1885 | integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== 1886 | dependencies: 1887 | unc-path-regex "^0.1.2" 1888 | 1889 | is-windows@^1.0.1, is-windows@^1.0.2: 1890 | version "1.0.2" 1891 | resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" 1892 | integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== 1893 | 1894 | isarray@1.0.0, isarray@~1.0.0: 1895 | version "1.0.0" 1896 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 1897 | integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= 1898 | 1899 | isarray@2.0.1: 1900 | version "2.0.1" 1901 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" 1902 | integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= 1903 | 1904 | isexe@^2.0.0: 1905 | version "2.0.0" 1906 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1907 | integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= 1908 | 1909 | isobject@^2.0.0: 1910 | version "2.1.0" 1911 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" 1912 | integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= 1913 | dependencies: 1914 | isarray "1.0.0" 1915 | 1916 | isobject@^3.0.0, isobject@^3.0.1: 1917 | version "3.0.1" 1918 | resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" 1919 | integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= 1920 | 1921 | isstream@~0.1.2: 1922 | version "0.1.2" 1923 | resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" 1924 | integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= 1925 | 1926 | js-yaml@~3.14.0: 1927 | version "3.14.1" 1928 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" 1929 | integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== 1930 | dependencies: 1931 | argparse "^1.0.7" 1932 | esprima "^4.0.0" 1933 | 1934 | jsbn@1.1.0: 1935 | version "1.1.0" 1936 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" 1937 | integrity sha1-sBMHyym2GKHtJux56RH4A8TaAEA= 1938 | 1939 | jsbn@~0.1.0: 1940 | version "0.1.1" 1941 | resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" 1942 | integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= 1943 | 1944 | json-schema-traverse@^0.4.1: 1945 | version "0.4.1" 1946 | resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" 1947 | integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== 1948 | 1949 | json-schema@0.2.3: 1950 | version "0.2.3" 1951 | resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" 1952 | integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= 1953 | 1954 | json-stringify-safe@~5.0.1: 1955 | version "5.0.1" 1956 | resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" 1957 | integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= 1958 | 1959 | jsprim@^1.2.2: 1960 | version "1.4.1" 1961 | resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" 1962 | integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= 1963 | dependencies: 1964 | assert-plus "1.0.0" 1965 | extsprintf "1.3.0" 1966 | json-schema "0.2.3" 1967 | verror "1.10.0" 1968 | 1969 | jwa@^1.4.1: 1970 | version "1.4.1" 1971 | resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a" 1972 | integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA== 1973 | dependencies: 1974 | buffer-equal-constant-time "1.0.1" 1975 | ecdsa-sig-formatter "1.0.11" 1976 | safe-buffer "^5.0.1" 1977 | 1978 | jws@^3.0.0, jws@^3.1.4: 1979 | version "3.2.2" 1980 | resolved "https://registry.yarnpkg.com/jws/-/jws-3.2.2.tgz#001099f3639468c9414000e99995fa52fb478304" 1981 | integrity sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA== 1982 | dependencies: 1983 | jwa "^1.4.1" 1984 | safe-buffer "^5.0.1" 1985 | 1986 | kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: 1987 | version "3.2.2" 1988 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 1989 | integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= 1990 | dependencies: 1991 | is-buffer "^1.1.5" 1992 | 1993 | kind-of@^4.0.0: 1994 | version "4.0.0" 1995 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" 1996 | integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= 1997 | dependencies: 1998 | is-buffer "^1.1.5" 1999 | 2000 | kind-of@^5.0.0: 2001 | version "5.1.0" 2002 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" 2003 | integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== 2004 | 2005 | kind-of@^6.0.0, kind-of@^6.0.2: 2006 | version "6.0.3" 2007 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" 2008 | integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== 2009 | 2010 | latest-version@^3.0.0: 2011 | version "3.1.0" 2012 | resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-3.1.0.tgz#a205383fea322b33b5ae3b18abee0dc2f356ee15" 2013 | integrity sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU= 2014 | dependencies: 2015 | package-json "^4.0.0" 2016 | 2017 | lazy@^1.0.11: 2018 | version "1.0.11" 2019 | resolved "https://registry.yarnpkg.com/lazy/-/lazy-1.0.11.tgz#daa068206282542c088288e975c297c1ae77b690" 2020 | integrity sha1-2qBoIGKCVCwIgojpdcKXwa53tpA= 2021 | 2022 | liftup@~3.0.1: 2023 | version "3.0.1" 2024 | resolved "https://registry.yarnpkg.com/liftup/-/liftup-3.0.1.tgz#1cb81aff0f368464ed3a5f1a7286372d6b1a60ce" 2025 | integrity sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw== 2026 | dependencies: 2027 | extend "^3.0.2" 2028 | findup-sync "^4.0.0" 2029 | fined "^1.2.0" 2030 | flagged-respawn "^1.0.1" 2031 | is-plain-object "^2.0.4" 2032 | object.map "^1.0.1" 2033 | rechoir "^0.7.0" 2034 | resolve "^1.19.0" 2035 | 2036 | lodash.noop@^3.0.1: 2037 | version "3.0.1" 2038 | resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" 2039 | integrity sha1-OBiPTWUKOkdCWEObluxFsyYXEzw= 2040 | 2041 | lodash@^4.14.0, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@~4.17.19, lodash@~4.17.21: 2042 | version "4.17.21" 2043 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" 2044 | integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== 2045 | 2046 | lowercase-keys@^1.0.0: 2047 | version "1.0.1" 2048 | resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" 2049 | integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== 2050 | 2051 | lru-cache@^2.5.0: 2052 | version "2.7.3" 2053 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" 2054 | integrity sha1-bUUk6LlV+V1PW1iFHOId1y+06VI= 2055 | 2056 | lru-cache@^4.0.1: 2057 | version "4.1.5" 2058 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" 2059 | integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== 2060 | dependencies: 2061 | pseudomap "^1.0.2" 2062 | yallist "^2.1.2" 2063 | 2064 | m3u8stream@^0.8.3: 2065 | version "0.8.4" 2066 | resolved "https://registry.yarnpkg.com/m3u8stream/-/m3u8stream-0.8.4.tgz#15b49d0c2b510755ea43c1e53f85d7aaa4dc65c2" 2067 | integrity sha512-sco80Db+30RvcaIOndenX6E6oQNgTiBKeJbFPc+yDXwPQIkryfboEbCvXPlBRq3mQTCVPQO93TDVlfRwqpD35w== 2068 | dependencies: 2069 | miniget "^4.0.0" 2070 | sax "^1.2.4" 2071 | 2072 | make-dir@^1.0.0: 2073 | version "1.3.0" 2074 | resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" 2075 | integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== 2076 | dependencies: 2077 | pify "^3.0.0" 2078 | 2079 | make-iterator@^1.0.0: 2080 | version "1.0.1" 2081 | resolved "https://registry.yarnpkg.com/make-iterator/-/make-iterator-1.0.1.tgz#29b33f312aa8f547c4a5e490f56afcec99133ad6" 2082 | integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== 2083 | dependencies: 2084 | kind-of "^6.0.2" 2085 | 2086 | map-cache@^0.2.0, map-cache@^0.2.2: 2087 | version "0.2.2" 2088 | resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" 2089 | integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= 2090 | 2091 | map-visit@^1.0.0: 2092 | version "1.0.0" 2093 | resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" 2094 | integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= 2095 | dependencies: 2096 | object-visit "^1.0.0" 2097 | 2098 | maxmin@^2.1.0: 2099 | version "2.1.0" 2100 | resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-2.1.0.tgz#4d3b220903d95eee7eb7ac7fa864e72dc09a3166" 2101 | integrity sha1-TTsiCQPZXu5+t6x/qGTnLcCaMWY= 2102 | dependencies: 2103 | chalk "^1.0.0" 2104 | figures "^1.0.1" 2105 | gzip-size "^3.0.0" 2106 | pretty-bytes "^3.0.0" 2107 | 2108 | media-typer@0.3.0: 2109 | version "0.3.0" 2110 | resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" 2111 | integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= 2112 | 2113 | merge-descriptors@1.0.1: 2114 | version "1.0.1" 2115 | resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" 2116 | integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= 2117 | 2118 | method-override@^2.3.7: 2119 | version "2.3.10" 2120 | resolved "https://registry.yarnpkg.com/method-override/-/method-override-2.3.10.tgz#e3daf8d5dee10dd2dce7d4ae88d62bbee77476b4" 2121 | integrity sha1-49r41d7hDdLc59SuiNYrvud0drQ= 2122 | dependencies: 2123 | debug "2.6.9" 2124 | methods "~1.1.2" 2125 | parseurl "~1.3.2" 2126 | vary "~1.1.2" 2127 | 2128 | methods@^1.1.1, methods@~1.1.2: 2129 | version "1.1.2" 2130 | resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" 2131 | integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= 2132 | 2133 | micromatch@^3.1.10, micromatch@^3.1.4: 2134 | version "3.1.10" 2135 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" 2136 | integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== 2137 | dependencies: 2138 | arr-diff "^4.0.0" 2139 | array-unique "^0.3.2" 2140 | braces "^2.3.1" 2141 | define-property "^2.0.2" 2142 | extend-shallow "^3.0.2" 2143 | extglob "^2.0.4" 2144 | fragment-cache "^0.2.1" 2145 | kind-of "^6.0.2" 2146 | nanomatch "^1.2.9" 2147 | object.pick "^1.3.0" 2148 | regex-not "^1.0.0" 2149 | snapdragon "^0.8.1" 2150 | to-regex "^3.0.2" 2151 | 2152 | micromatch@^4.0.2: 2153 | version "4.0.4" 2154 | resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" 2155 | integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== 2156 | dependencies: 2157 | braces "^3.0.1" 2158 | picomatch "^2.2.3" 2159 | 2160 | mime-db@1.51.0: 2161 | version "1.51.0" 2162 | resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.51.0.tgz#d9ff62451859b18342d960850dc3cfb77e63fb0c" 2163 | integrity sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g== 2164 | 2165 | mime-types@^2.1.10, mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24: 2166 | version "2.1.34" 2167 | resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.34.tgz#5a712f9ec1503511a945803640fafe09d3793c24" 2168 | integrity sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A== 2169 | dependencies: 2170 | mime-db "1.51.0" 2171 | 2172 | mime@1.6.0, mime@^1.3.4, mime@^1.4.1: 2173 | version "1.6.0" 2174 | resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" 2175 | integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== 2176 | 2177 | miniget@^4.0.0: 2178 | version "4.2.1" 2179 | resolved "https://registry.yarnpkg.com/miniget/-/miniget-4.2.1.tgz#11a1c24817a059e292378eb9cff4328d9240c665" 2180 | integrity sha512-O/DduzDR6f+oDtVype9S/Qu5hhnx73EDYGyZKwU/qN82lehFZdfhoa4DT51SpsO+8epYrB3gcRmws56ROfTIoQ== 2181 | 2182 | "minimatch@2 || 3", minimatch@^3.0.4, minimatch@~3.0.4: 2183 | version "3.0.4" 2184 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 2185 | integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== 2186 | dependencies: 2187 | brace-expansion "^1.1.7" 2188 | 2189 | minimist@^1.2.0: 2190 | version "1.2.5" 2191 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 2192 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 2193 | 2194 | mixin-deep@^1.2.0: 2195 | version "1.3.2" 2196 | resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" 2197 | integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== 2198 | dependencies: 2199 | for-in "^1.0.2" 2200 | is-extendable "^1.0.1" 2201 | 2202 | mkdirp@~1.0.4: 2203 | version "1.0.4" 2204 | resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" 2205 | integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== 2206 | 2207 | morgan@^1.8.0: 2208 | version "1.10.0" 2209 | resolved "https://registry.yarnpkg.com/morgan/-/morgan-1.10.0.tgz#091778abc1fc47cd3509824653dae1faab6b17d7" 2210 | integrity sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ== 2211 | dependencies: 2212 | basic-auth "~2.0.1" 2213 | debug "2.6.9" 2214 | depd "~2.0.0" 2215 | on-finished "~2.3.0" 2216 | on-headers "~1.0.2" 2217 | 2218 | ms@2.0.0: 2219 | version "2.0.0" 2220 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" 2221 | integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= 2222 | 2223 | ms@2.1.1: 2224 | version "2.1.1" 2225 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" 2226 | integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== 2227 | 2228 | ms@^2.1.1: 2229 | version "2.1.3" 2230 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 2231 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 2232 | 2233 | nan@^2.12.1: 2234 | version "2.15.0" 2235 | resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" 2236 | integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== 2237 | 2238 | nanomatch@^1.2.9: 2239 | version "1.2.13" 2240 | resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" 2241 | integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== 2242 | dependencies: 2243 | arr-diff "^4.0.0" 2244 | array-unique "^0.3.2" 2245 | define-property "^2.0.2" 2246 | extend-shallow "^3.0.2" 2247 | fragment-cache "^0.2.1" 2248 | is-windows "^1.0.2" 2249 | kind-of "^6.0.2" 2250 | object.pick "^1.3.0" 2251 | regex-not "^1.0.0" 2252 | snapdragon "^0.8.1" 2253 | to-regex "^3.0.1" 2254 | 2255 | negotiator@0.6.2: 2256 | version "0.6.2" 2257 | resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" 2258 | integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== 2259 | 2260 | node-forge@^0.7.1: 2261 | version "0.7.6" 2262 | resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" 2263 | integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== 2264 | 2265 | nodemon@^1.11.0: 2266 | version "1.19.4" 2267 | resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-1.19.4.tgz#56db5c607408e0fdf8920d2b444819af1aae0971" 2268 | integrity sha512-VGPaqQBNk193lrJFotBU8nvWZPqEZY2eIzymy2jjY0fJ9qIsxA0sxQ8ATPl0gZC645gijYEc1jtZvpS8QWzJGQ== 2269 | dependencies: 2270 | chokidar "^2.1.8" 2271 | debug "^3.2.6" 2272 | ignore-by-default "^1.0.1" 2273 | minimatch "^3.0.4" 2274 | pstree.remy "^1.1.7" 2275 | semver "^5.7.1" 2276 | supports-color "^5.5.0" 2277 | touch "^3.1.0" 2278 | undefsafe "^2.0.2" 2279 | update-notifier "^2.5.0" 2280 | 2281 | nopt@~1.0.10: 2282 | version "1.0.10" 2283 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" 2284 | integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4= 2285 | dependencies: 2286 | abbrev "1" 2287 | 2288 | nopt@~3.0.6: 2289 | version "3.0.6" 2290 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 2291 | integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= 2292 | dependencies: 2293 | abbrev "1" 2294 | 2295 | nopt@~4.0.1: 2296 | version "4.0.3" 2297 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" 2298 | integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== 2299 | dependencies: 2300 | abbrev "1" 2301 | osenv "^0.1.4" 2302 | 2303 | normalize-path@^2.1.1: 2304 | version "2.1.1" 2305 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" 2306 | integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= 2307 | dependencies: 2308 | remove-trailing-separator "^1.0.1" 2309 | 2310 | normalize-path@^3.0.0: 2311 | version "3.0.0" 2312 | resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" 2313 | integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== 2314 | 2315 | npm-run-path@^2.0.0: 2316 | version "2.0.2" 2317 | resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" 2318 | integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= 2319 | dependencies: 2320 | path-key "^2.0.0" 2321 | 2322 | nth-check@^2.0.0: 2323 | version "2.0.1" 2324 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.0.1.tgz#2efe162f5c3da06a28959fbd3db75dbeea9f0fc2" 2325 | integrity sha512-it1vE95zF6dTT9lBsYbxvqh0Soy4SPowchj0UBGj/V6cTPnXXtQOPUbhZ6CmGzAD/rW22LQK6E96pcdJXk4A4w== 2326 | dependencies: 2327 | boolbase "^1.0.0" 2328 | 2329 | number-is-nan@^1.0.0: 2330 | version "1.0.1" 2331 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 2332 | integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= 2333 | 2334 | oauth-sign@~0.9.0: 2335 | version "0.9.0" 2336 | resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" 2337 | integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== 2338 | 2339 | object-assign@^4.1.0: 2340 | version "4.1.1" 2341 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 2342 | integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= 2343 | 2344 | object-copy@^0.1.0: 2345 | version "0.1.0" 2346 | resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" 2347 | integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= 2348 | dependencies: 2349 | copy-descriptor "^0.1.0" 2350 | define-property "^0.2.5" 2351 | kind-of "^3.0.3" 2352 | 2353 | object-inspect@^1.9.0: 2354 | version "1.11.0" 2355 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" 2356 | integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== 2357 | 2358 | object-visit@^1.0.0: 2359 | version "1.0.1" 2360 | resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" 2361 | integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= 2362 | dependencies: 2363 | isobject "^3.0.0" 2364 | 2365 | object.defaults@^1.1.0: 2366 | version "1.1.0" 2367 | resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" 2368 | integrity sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8= 2369 | dependencies: 2370 | array-each "^1.0.1" 2371 | array-slice "^1.0.0" 2372 | for-own "^1.0.0" 2373 | isobject "^3.0.0" 2374 | 2375 | object.map@^1.0.1: 2376 | version "1.0.1" 2377 | resolved "https://registry.yarnpkg.com/object.map/-/object.map-1.0.1.tgz#cf83e59dc8fcc0ad5f4250e1f78b3b81bd801d37" 2378 | integrity sha1-z4Plncj8wK1fQlDh94s7gb2AHTc= 2379 | dependencies: 2380 | for-own "^1.0.0" 2381 | make-iterator "^1.0.0" 2382 | 2383 | object.pick@^1.2.0, object.pick@^1.3.0: 2384 | version "1.3.0" 2385 | resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" 2386 | integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= 2387 | dependencies: 2388 | isobject "^3.0.1" 2389 | 2390 | on-finished@~2.3.0: 2391 | version "2.3.0" 2392 | resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" 2393 | integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= 2394 | dependencies: 2395 | ee-first "1.1.1" 2396 | 2397 | on-headers@~1.0.2: 2398 | version "1.0.2" 2399 | resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" 2400 | integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== 2401 | 2402 | once@^1.3.0: 2403 | version "1.4.0" 2404 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 2405 | integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= 2406 | dependencies: 2407 | wrappy "1" 2408 | 2409 | os-homedir@^1.0.0: 2410 | version "1.0.2" 2411 | resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" 2412 | integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= 2413 | 2414 | os-tmpdir@^1.0.0: 2415 | version "1.0.2" 2416 | resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" 2417 | integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= 2418 | 2419 | osenv@^0.1.4: 2420 | version "0.1.5" 2421 | resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" 2422 | integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== 2423 | dependencies: 2424 | os-homedir "^1.0.0" 2425 | os-tmpdir "^1.0.0" 2426 | 2427 | p-finally@^1.0.0: 2428 | version "1.0.0" 2429 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 2430 | integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= 2431 | 2432 | package-json@^4.0.0: 2433 | version "4.0.1" 2434 | resolved "https://registry.yarnpkg.com/package-json/-/package-json-4.0.1.tgz#8869a0401253661c4c4ca3da6c2121ed555f5eed" 2435 | integrity sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0= 2436 | dependencies: 2437 | got "^6.7.1" 2438 | registry-auth-token "^3.0.1" 2439 | registry-url "^3.0.3" 2440 | semver "^5.1.0" 2441 | 2442 | parse-filepath@^1.0.1: 2443 | version "1.0.2" 2444 | resolved "https://registry.yarnpkg.com/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" 2445 | integrity sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE= 2446 | dependencies: 2447 | is-absolute "^1.0.0" 2448 | map-cache "^0.2.0" 2449 | path-root "^0.1.1" 2450 | 2451 | parse-passwd@^1.0.0: 2452 | version "1.0.0" 2453 | resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" 2454 | integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= 2455 | 2456 | parse5-htmlparser2-tree-adapter@^6.0.1: 2457 | version "6.0.1" 2458 | resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" 2459 | integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA== 2460 | dependencies: 2461 | parse5 "^6.0.1" 2462 | 2463 | parse5@^6.0.1: 2464 | version "6.0.1" 2465 | resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" 2466 | integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== 2467 | 2468 | parseqs@0.0.6: 2469 | version "0.0.6" 2470 | resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.6.tgz#8e4bb5a19d1cdc844a08ac974d34e273afa670d5" 2471 | integrity sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w== 2472 | 2473 | parseuri@0.0.6: 2474 | version "0.0.6" 2475 | resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.6.tgz#e1496e829e3ac2ff47f39a4dd044b32823c4a25a" 2476 | integrity sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow== 2477 | 2478 | parseurl@~1.3.2, parseurl@~1.3.3: 2479 | version "1.3.3" 2480 | resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" 2481 | integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== 2482 | 2483 | pascalcase@^0.1.1: 2484 | version "0.1.1" 2485 | resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" 2486 | integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= 2487 | 2488 | path-dirname@^1.0.0: 2489 | version "1.0.2" 2490 | resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" 2491 | integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= 2492 | 2493 | path-is-absolute@^1.0.0: 2494 | version "1.0.1" 2495 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 2496 | integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= 2497 | 2498 | path-is-inside@^1.0.1: 2499 | version "1.0.2" 2500 | resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" 2501 | integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= 2502 | 2503 | path-key@^2.0.0: 2504 | version "2.0.1" 2505 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" 2506 | integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= 2507 | 2508 | path-parse@^1.0.6: 2509 | version "1.0.7" 2510 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 2511 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 2512 | 2513 | path-root-regex@^0.1.0: 2514 | version "0.1.2" 2515 | resolved "https://registry.yarnpkg.com/path-root-regex/-/path-root-regex-0.1.2.tgz#bfccdc8df5b12dc52c8b43ec38d18d72c04ba96d" 2516 | integrity sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0= 2517 | 2518 | path-root@^0.1.1: 2519 | version "0.1.1" 2520 | resolved "https://registry.yarnpkg.com/path-root/-/path-root-0.1.1.tgz#9a4a6814cac1c0cd73360a95f32083c8ea4745b7" 2521 | integrity sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc= 2522 | dependencies: 2523 | path-root-regex "^0.1.0" 2524 | 2525 | path-to-regexp@0.1.7: 2526 | version "0.1.7" 2527 | resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" 2528 | integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= 2529 | 2530 | pend@~1.2.0: 2531 | version "1.2.0" 2532 | resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" 2533 | integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= 2534 | 2535 | performance-now@^2.1.0: 2536 | version "2.1.0" 2537 | resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" 2538 | integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= 2539 | 2540 | picomatch@^2.2.3: 2541 | version "2.3.0" 2542 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" 2543 | integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== 2544 | 2545 | pify@^3.0.0: 2546 | version "3.0.0" 2547 | resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" 2548 | integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= 2549 | 2550 | posix-character-classes@^0.1.0: 2551 | version "0.1.1" 2552 | resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" 2553 | integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= 2554 | 2555 | prepend-http@^1.0.1: 2556 | version "1.0.4" 2557 | resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" 2558 | integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= 2559 | 2560 | pretty-bytes@^3.0.0: 2561 | version "3.0.1" 2562 | resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf" 2563 | integrity sha1-J9AAjXeAY6C0gRuzXHnxvV1fvM8= 2564 | dependencies: 2565 | number-is-nan "^1.0.0" 2566 | 2567 | process-nextick-args@~2.0.0: 2568 | version "2.0.1" 2569 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" 2570 | integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== 2571 | 2572 | proxy-addr@~2.0.5: 2573 | version "2.0.7" 2574 | resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" 2575 | integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== 2576 | dependencies: 2577 | forwarded "0.2.0" 2578 | ipaddr.js "1.9.1" 2579 | 2580 | pseudomap@^1.0.2: 2581 | version "1.0.2" 2582 | resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" 2583 | integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= 2584 | 2585 | psl@^1.1.28: 2586 | version "1.8.0" 2587 | resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" 2588 | integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== 2589 | 2590 | pstree.remy@^1.1.7: 2591 | version "1.1.8" 2592 | resolved "https://registry.yarnpkg.com/pstree.remy/-/pstree.remy-1.1.8.tgz#c242224f4a67c21f686839bbdb4ac282b8373d3a" 2593 | integrity sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w== 2594 | 2595 | punycode@^2.1.0, punycode@^2.1.1: 2596 | version "2.1.1" 2597 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 2598 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 2599 | 2600 | qs@6.7.0: 2601 | version "6.7.0" 2602 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" 2603 | integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== 2604 | 2605 | qs@^6.1.0: 2606 | version "6.10.1" 2607 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" 2608 | integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== 2609 | dependencies: 2610 | side-channel "^1.0.4" 2611 | 2612 | qs@~6.5.2: 2613 | version "6.5.2" 2614 | resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" 2615 | integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== 2616 | 2617 | range-parser@~1.2.1: 2618 | version "1.2.1" 2619 | resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" 2620 | integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== 2621 | 2622 | raw-body@2.4.0: 2623 | version "2.4.0" 2624 | resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" 2625 | integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== 2626 | dependencies: 2627 | bytes "3.1.0" 2628 | http-errors "1.7.2" 2629 | iconv-lite "0.4.24" 2630 | unpipe "1.0.0" 2631 | 2632 | rc@^1.0.1, rc@^1.1.6: 2633 | version "1.2.8" 2634 | resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" 2635 | integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== 2636 | dependencies: 2637 | deep-extend "^0.6.0" 2638 | ini "~1.3.0" 2639 | minimist "^1.2.0" 2640 | strip-json-comments "~2.0.1" 2641 | 2642 | readable-stream@^2.0.2, readable-stream@^2.0.5: 2643 | version "2.3.7" 2644 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" 2645 | integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== 2646 | dependencies: 2647 | core-util-is "~1.0.0" 2648 | inherits "~2.0.3" 2649 | isarray "~1.0.0" 2650 | process-nextick-args "~2.0.0" 2651 | safe-buffer "~5.1.1" 2652 | string_decoder "~1.1.1" 2653 | util-deprecate "~1.0.1" 2654 | 2655 | readdirp@^2.2.1: 2656 | version "2.2.1" 2657 | resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" 2658 | integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== 2659 | dependencies: 2660 | graceful-fs "^4.1.11" 2661 | micromatch "^3.1.10" 2662 | readable-stream "^2.0.2" 2663 | 2664 | rechoir@^0.7.0: 2665 | version "0.7.1" 2666 | resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.7.1.tgz#9478a96a1ca135b5e88fc027f03ee92d6c645686" 2667 | integrity sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg== 2668 | dependencies: 2669 | resolve "^1.9.0" 2670 | 2671 | regex-not@^1.0.0, regex-not@^1.0.2: 2672 | version "1.0.2" 2673 | resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" 2674 | integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== 2675 | dependencies: 2676 | extend-shallow "^3.0.2" 2677 | safe-regex "^1.1.0" 2678 | 2679 | registry-auth-token@^3.0.1: 2680 | version "3.4.0" 2681 | resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.4.0.tgz#d7446815433f5d5ed6431cd5dca21048f66b397e" 2682 | integrity sha512-4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A== 2683 | dependencies: 2684 | rc "^1.1.6" 2685 | safe-buffer "^5.0.1" 2686 | 2687 | registry-url@^3.0.3: 2688 | version "3.1.0" 2689 | resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" 2690 | integrity sha1-PU74cPc93h138M+aOBQyRE4XSUI= 2691 | dependencies: 2692 | rc "^1.0.1" 2693 | 2694 | remove-trailing-separator@^1.0.1: 2695 | version "1.1.0" 2696 | resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" 2697 | integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= 2698 | 2699 | repeat-element@^1.1.2: 2700 | version "1.1.4" 2701 | resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" 2702 | integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== 2703 | 2704 | repeat-string@^1.6.1: 2705 | version "1.6.1" 2706 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 2707 | integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= 2708 | 2709 | request-promise-core@1.1.4: 2710 | version "1.1.4" 2711 | resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" 2712 | integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== 2713 | dependencies: 2714 | lodash "^4.17.19" 2715 | 2716 | request-promise@^4.2.1: 2717 | version "4.2.6" 2718 | resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.6.tgz#7e7e5b9578630e6f598e3813c0f8eb342a27f0a2" 2719 | integrity sha512-HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ== 2720 | dependencies: 2721 | bluebird "^3.5.0" 2722 | request-promise-core "1.1.4" 2723 | stealthy-require "^1.1.1" 2724 | tough-cookie "^2.3.3" 2725 | 2726 | request@^2.72.0, request@^2.74.0, request@^2.81.0: 2727 | version "2.88.2" 2728 | resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" 2729 | integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== 2730 | dependencies: 2731 | aws-sign2 "~0.7.0" 2732 | aws4 "^1.8.0" 2733 | caseless "~0.12.0" 2734 | combined-stream "~1.0.6" 2735 | extend "~3.0.2" 2736 | forever-agent "~0.6.1" 2737 | form-data "~2.3.2" 2738 | har-validator "~5.1.3" 2739 | http-signature "~1.2.0" 2740 | is-typedarray "~1.0.0" 2741 | isstream "~0.1.2" 2742 | json-stringify-safe "~5.0.1" 2743 | mime-types "~2.1.19" 2744 | oauth-sign "~0.9.0" 2745 | performance-now "^2.1.0" 2746 | qs "~6.5.2" 2747 | safe-buffer "^5.1.2" 2748 | tough-cookie "~2.5.0" 2749 | tunnel-agent "^0.6.0" 2750 | uuid "^3.3.2" 2751 | 2752 | resolve-dir@^1.0.0, resolve-dir@^1.0.1: 2753 | version "1.0.1" 2754 | resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" 2755 | integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= 2756 | dependencies: 2757 | expand-tilde "^2.0.0" 2758 | global-modules "^1.0.0" 2759 | 2760 | resolve-url@^0.2.1: 2761 | version "0.2.1" 2762 | resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" 2763 | integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= 2764 | 2765 | resolve@^1.19.0, resolve@^1.9.0: 2766 | version "1.20.0" 2767 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" 2768 | integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== 2769 | dependencies: 2770 | is-core-module "^2.2.0" 2771 | path-parse "^1.0.6" 2772 | 2773 | ret@~0.1.10: 2774 | version "0.1.15" 2775 | resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" 2776 | integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== 2777 | 2778 | rimraf@^2.5.2: 2779 | version "2.7.1" 2780 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" 2781 | integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== 2782 | dependencies: 2783 | glob "^7.1.3" 2784 | 2785 | rimraf@~3.0.2: 2786 | version "3.0.2" 2787 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" 2788 | integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== 2789 | dependencies: 2790 | glob "^7.1.3" 2791 | 2792 | safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: 2793 | version "5.1.2" 2794 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" 2795 | integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== 2796 | 2797 | safe-buffer@^5.0.1, safe-buffer@^5.1.2: 2798 | version "5.2.1" 2799 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2800 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2801 | 2802 | safe-regex@^1.1.0: 2803 | version "1.1.0" 2804 | resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" 2805 | integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= 2806 | dependencies: 2807 | ret "~0.1.10" 2808 | 2809 | "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: 2810 | version "2.1.2" 2811 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 2812 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 2813 | 2814 | sax@^1.1.3, sax@^1.2.4: 2815 | version "1.2.4" 2816 | resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" 2817 | integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== 2818 | 2819 | semver-diff@^2.0.0: 2820 | version "2.1.0" 2821 | resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" 2822 | integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= 2823 | dependencies: 2824 | semver "^5.0.3" 2825 | 2826 | semver@^5.0.3, semver@^5.1.0, semver@^5.7.1: 2827 | version "5.7.1" 2828 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" 2829 | integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== 2830 | 2831 | send@0.17.1: 2832 | version "0.17.1" 2833 | resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" 2834 | integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== 2835 | dependencies: 2836 | debug "2.6.9" 2837 | depd "~1.1.2" 2838 | destroy "~1.0.4" 2839 | encodeurl "~1.0.2" 2840 | escape-html "~1.0.3" 2841 | etag "~1.8.1" 2842 | fresh "0.5.2" 2843 | http-errors "~1.7.2" 2844 | mime "1.6.0" 2845 | ms "2.1.1" 2846 | on-finished "~2.3.0" 2847 | range-parser "~1.2.1" 2848 | statuses "~1.5.0" 2849 | 2850 | serve-static@1.14.1: 2851 | version "1.14.1" 2852 | resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" 2853 | integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== 2854 | dependencies: 2855 | encodeurl "~1.0.2" 2856 | escape-html "~1.0.3" 2857 | parseurl "~1.3.3" 2858 | send "0.17.1" 2859 | 2860 | set-value@^2.0.0, set-value@^2.0.1: 2861 | version "2.0.1" 2862 | resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" 2863 | integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== 2864 | dependencies: 2865 | extend-shallow "^2.0.1" 2866 | is-extendable "^0.1.1" 2867 | is-plain-object "^2.0.3" 2868 | split-string "^3.0.1" 2869 | 2870 | setprototypeof@1.1.1: 2871 | version "1.1.1" 2872 | resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" 2873 | integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== 2874 | 2875 | shebang-command@^1.2.0: 2876 | version "1.2.0" 2877 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" 2878 | integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= 2879 | dependencies: 2880 | shebang-regex "^1.0.0" 2881 | 2882 | shebang-regex@^1.0.0: 2883 | version "1.0.0" 2884 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" 2885 | integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= 2886 | 2887 | side-channel@^1.0.4: 2888 | version "1.0.4" 2889 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 2890 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 2891 | dependencies: 2892 | call-bind "^1.0.0" 2893 | get-intrinsic "^1.0.2" 2894 | object-inspect "^1.9.0" 2895 | 2896 | signal-exit@^3.0.0, signal-exit@^3.0.2: 2897 | version "3.0.6" 2898 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.6.tgz#24e630c4b0f03fea446a2bd299e62b4a6ca8d0af" 2899 | integrity sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ== 2900 | 2901 | snapdragon-node@^2.0.1: 2902 | version "2.1.1" 2903 | resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" 2904 | integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== 2905 | dependencies: 2906 | define-property "^1.0.0" 2907 | isobject "^3.0.0" 2908 | snapdragon-util "^3.0.1" 2909 | 2910 | snapdragon-util@^3.0.1: 2911 | version "3.0.1" 2912 | resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" 2913 | integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== 2914 | dependencies: 2915 | kind-of "^3.2.0" 2916 | 2917 | snapdragon@^0.8.1: 2918 | version "0.8.2" 2919 | resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" 2920 | integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== 2921 | dependencies: 2922 | base "^0.11.1" 2923 | debug "^2.2.0" 2924 | define-property "^0.2.5" 2925 | extend-shallow "^2.0.1" 2926 | map-cache "^0.2.2" 2927 | source-map "^0.5.6" 2928 | source-map-resolve "^0.5.0" 2929 | use "^3.1.0" 2930 | 2931 | socket.io-adapter@~1.1.0: 2932 | version "1.1.2" 2933 | resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" 2934 | integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== 2935 | 2936 | socket.io-client@2.4.0: 2937 | version "2.4.0" 2938 | resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.4.0.tgz#aafb5d594a3c55a34355562fc8aea22ed9119a35" 2939 | integrity sha512-M6xhnKQHuuZd4Ba9vltCLT9oa+YvTsP8j9NcEiLElfIg8KeYPyhWOes6x4t+LTAC8enQbE/995AdTem2uNyKKQ== 2940 | dependencies: 2941 | backo2 "1.0.2" 2942 | component-bind "1.0.0" 2943 | component-emitter "~1.3.0" 2944 | debug "~3.1.0" 2945 | engine.io-client "~3.5.0" 2946 | has-binary2 "~1.0.2" 2947 | indexof "0.0.1" 2948 | parseqs "0.0.6" 2949 | parseuri "0.0.6" 2950 | socket.io-parser "~3.3.0" 2951 | to-array "0.1.4" 2952 | 2953 | socket.io-parser@~3.3.0: 2954 | version "3.3.2" 2955 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.2.tgz#ef872009d0adcf704f2fbe830191a14752ad50b6" 2956 | integrity sha512-FJvDBuOALxdCI9qwRrO/Rfp9yfndRtc1jSgVgV8FDraihmSP/MLGD5PEuJrNfjALvcQ+vMDM/33AWOYP/JSjDg== 2957 | dependencies: 2958 | component-emitter "~1.3.0" 2959 | debug "~3.1.0" 2960 | isarray "2.0.1" 2961 | 2962 | socket.io-parser@~3.4.0: 2963 | version "3.4.1" 2964 | resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.1.tgz#b06af838302975837eab2dc980037da24054d64a" 2965 | integrity sha512-11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A== 2966 | dependencies: 2967 | component-emitter "1.2.1" 2968 | debug "~4.1.0" 2969 | isarray "2.0.1" 2970 | 2971 | socket.io@^2.0.1: 2972 | version "2.4.1" 2973 | resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.4.1.tgz#95ad861c9a52369d7f1a68acf0d4a1b16da451d2" 2974 | integrity sha512-Si18v0mMXGAqLqCVpTxBa8MGqriHGQh8ccEOhmsmNS3thNCGBwO8WGrwMibANsWtQQ5NStdZwHqZR3naJVFc3w== 2975 | dependencies: 2976 | debug "~4.1.0" 2977 | engine.io "~3.5.0" 2978 | has-binary2 "~1.0.2" 2979 | socket.io-adapter "~1.1.0" 2980 | socket.io-client "2.4.0" 2981 | socket.io-parser "~3.4.0" 2982 | 2983 | source-map-resolve@^0.5.0: 2984 | version "0.5.3" 2985 | resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" 2986 | integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== 2987 | dependencies: 2988 | atob "^2.1.2" 2989 | decode-uri-component "^0.2.0" 2990 | resolve-url "^0.2.1" 2991 | source-map-url "^0.4.0" 2992 | urix "^0.1.0" 2993 | 2994 | source-map-url@^0.4.0: 2995 | version "0.4.1" 2996 | resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" 2997 | integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== 2998 | 2999 | source-map@^0.5.6: 3000 | version "0.5.7" 3001 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 3002 | integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= 3003 | 3004 | source-map@~0.6.1: 3005 | version "0.6.1" 3006 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 3007 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 3008 | 3009 | split-string@^3.0.1, split-string@^3.0.2: 3010 | version "3.1.0" 3011 | resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" 3012 | integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== 3013 | dependencies: 3014 | extend-shallow "^3.0.0" 3015 | 3016 | spotify-web-api-node@^2.3.6: 3017 | version "2.5.0" 3018 | resolved "https://registry.yarnpkg.com/spotify-web-api-node/-/spotify-web-api-node-2.5.0.tgz#b4982deeb235ede38d9cff9389ab24ed45ff19c1" 3019 | integrity sha512-SoTYlIjFPE8zj/cH+eBDKfj7oKuM8tfxclGhN6tw8zGn4tNP2Ej1UutStdRFtMmYYBb7VccvD3gXJjabfcZhag== 3020 | dependencies: 3021 | superagent "^2.0.0" 3022 | 3023 | sprintf-js@1.1.2, sprintf-js@^1.0.3: 3024 | version "1.1.2" 3025 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" 3026 | integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== 3027 | 3028 | sprintf-js@~1.0.2: 3029 | version "1.0.3" 3030 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 3031 | integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= 3032 | 3033 | sshpk@^1.7.0: 3034 | version "1.16.1" 3035 | resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" 3036 | integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== 3037 | dependencies: 3038 | asn1 "~0.2.3" 3039 | assert-plus "^1.0.0" 3040 | bcrypt-pbkdf "^1.0.0" 3041 | dashdash "^1.12.0" 3042 | ecc-jsbn "~0.1.1" 3043 | getpass "^0.1.1" 3044 | jsbn "~0.1.0" 3045 | safer-buffer "^2.0.2" 3046 | tweetnacl "~0.14.0" 3047 | 3048 | static-extend@^0.1.1: 3049 | version "0.1.2" 3050 | resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" 3051 | integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= 3052 | dependencies: 3053 | define-property "^0.2.5" 3054 | object-copy "^0.1.0" 3055 | 3056 | "statuses@>= 1.5.0 < 2", statuses@~1.5.0: 3057 | version "1.5.0" 3058 | resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" 3059 | integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= 3060 | 3061 | stealthy-require@^1.1.1: 3062 | version "1.1.1" 3063 | resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" 3064 | integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= 3065 | 3066 | string-template@~1.0.0: 3067 | version "1.0.0" 3068 | resolved "https://registry.yarnpkg.com/string-template/-/string-template-1.0.0.tgz#9e9f2233dc00f218718ec379a28a5673ecca8b96" 3069 | integrity sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y= 3070 | 3071 | string-width@^2.0.0, string-width@^2.1.1: 3072 | version "2.1.1" 3073 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" 3074 | integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== 3075 | dependencies: 3076 | is-fullwidth-code-point "^2.0.0" 3077 | strip-ansi "^4.0.0" 3078 | 3079 | string_decoder@~1.1.1: 3080 | version "1.1.1" 3081 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 3082 | integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== 3083 | dependencies: 3084 | safe-buffer "~5.1.0" 3085 | 3086 | strip-ansi@^3.0.0: 3087 | version "3.0.1" 3088 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 3089 | integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= 3090 | dependencies: 3091 | ansi-regex "^2.0.0" 3092 | 3093 | strip-ansi@^4.0.0: 3094 | version "4.0.0" 3095 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" 3096 | integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= 3097 | dependencies: 3098 | ansi-regex "^3.0.0" 3099 | 3100 | strip-eof@^1.0.0: 3101 | version "1.0.0" 3102 | resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" 3103 | integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= 3104 | 3105 | strip-json-comments@~2.0.1: 3106 | version "2.0.1" 3107 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" 3108 | integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= 3109 | 3110 | superagent@^2.0.0: 3111 | version "2.3.0" 3112 | resolved "https://registry.yarnpkg.com/superagent/-/superagent-2.3.0.tgz#703529a0714e57e123959ddefbce193b2e50d115" 3113 | integrity sha1-cDUpoHFOV+EjlZ3e+84ZOy5Q0RU= 3114 | dependencies: 3115 | component-emitter "^1.2.0" 3116 | cookiejar "^2.0.6" 3117 | debug "^2.2.0" 3118 | extend "^3.0.0" 3119 | form-data "1.0.0-rc4" 3120 | formidable "^1.0.17" 3121 | methods "^1.1.1" 3122 | mime "^1.3.4" 3123 | qs "^6.1.0" 3124 | readable-stream "^2.0.5" 3125 | 3126 | supports-color@^2.0.0: 3127 | version "2.0.0" 3128 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 3129 | integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= 3130 | 3131 | supports-color@^5.3.0, supports-color@^5.5.0: 3132 | version "5.5.0" 3133 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" 3134 | integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== 3135 | dependencies: 3136 | has-flag "^3.0.0" 3137 | 3138 | supports-color@^7.1.0: 3139 | version "7.2.0" 3140 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 3141 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 3142 | dependencies: 3143 | has-flag "^4.0.0" 3144 | 3145 | term-size@^1.2.0: 3146 | version "1.2.0" 3147 | resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" 3148 | integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= 3149 | dependencies: 3150 | execa "^0.7.0" 3151 | 3152 | timed-out@^4.0.0: 3153 | version "4.0.1" 3154 | resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" 3155 | integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= 3156 | 3157 | to-array@0.1.4: 3158 | version "0.1.4" 3159 | resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" 3160 | integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= 3161 | 3162 | to-object-path@^0.3.0: 3163 | version "0.3.0" 3164 | resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" 3165 | integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= 3166 | dependencies: 3167 | kind-of "^3.0.2" 3168 | 3169 | to-regex-range@^2.1.0: 3170 | version "2.1.1" 3171 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" 3172 | integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= 3173 | dependencies: 3174 | is-number "^3.0.0" 3175 | repeat-string "^1.6.1" 3176 | 3177 | to-regex-range@^5.0.1: 3178 | version "5.0.1" 3179 | resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" 3180 | integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== 3181 | dependencies: 3182 | is-number "^7.0.0" 3183 | 3184 | to-regex@^3.0.1, to-regex@^3.0.2: 3185 | version "3.0.2" 3186 | resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" 3187 | integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== 3188 | dependencies: 3189 | define-property "^2.0.2" 3190 | extend-shallow "^3.0.2" 3191 | regex-not "^1.0.2" 3192 | safe-regex "^1.1.0" 3193 | 3194 | toidentifier@1.0.0: 3195 | version "1.0.0" 3196 | resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" 3197 | integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== 3198 | 3199 | touch@^3.1.0: 3200 | version "3.1.0" 3201 | resolved "https://registry.yarnpkg.com/touch/-/touch-3.1.0.tgz#fe365f5f75ec9ed4e56825e0bb76d24ab74af83b" 3202 | integrity sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA== 3203 | dependencies: 3204 | nopt "~1.0.10" 3205 | 3206 | tough-cookie@^2.3.3, tough-cookie@~2.5.0: 3207 | version "2.5.0" 3208 | resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" 3209 | integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== 3210 | dependencies: 3211 | psl "^1.1.28" 3212 | punycode "^2.1.1" 3213 | 3214 | tslib@^2.2.0: 3215 | version "2.3.1" 3216 | resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" 3217 | integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== 3218 | 3219 | tunnel-agent@^0.6.0: 3220 | version "0.6.0" 3221 | resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" 3222 | integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= 3223 | dependencies: 3224 | safe-buffer "^5.0.1" 3225 | 3226 | tweetnacl@^0.14.3, tweetnacl@~0.14.0: 3227 | version "0.14.5" 3228 | resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" 3229 | integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= 3230 | 3231 | type-is@~1.6.17, type-is@~1.6.18: 3232 | version "1.6.18" 3233 | resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" 3234 | integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== 3235 | dependencies: 3236 | media-typer "0.3.0" 3237 | mime-types "~2.1.24" 3238 | 3239 | uglify-js@~3.4.0: 3240 | version "3.4.10" 3241 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f" 3242 | integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw== 3243 | dependencies: 3244 | commander "~2.19.0" 3245 | source-map "~0.6.1" 3246 | 3247 | unc-path-regex@^0.1.2: 3248 | version "0.1.2" 3249 | resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" 3250 | integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= 3251 | 3252 | undefsafe@^2.0.2: 3253 | version "2.0.5" 3254 | resolved "https://registry.yarnpkg.com/undefsafe/-/undefsafe-2.0.5.tgz#38733b9327bdcd226db889fb723a6efd162e6e2c" 3255 | integrity sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA== 3256 | 3257 | underscore.string@~3.3.5: 3258 | version "3.3.5" 3259 | resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.5.tgz#fc2ad255b8bd309e239cbc5816fd23a9b7ea4023" 3260 | integrity sha512-g+dpmgn+XBneLmXXo+sGlW5xQEt4ErkS3mgeN2GFbremYeMBSJKr9Wf2KJplQVaiPY/f7FN6atosWYNm9ovrYg== 3261 | dependencies: 3262 | sprintf-js "^1.0.3" 3263 | util-deprecate "^1.0.2" 3264 | 3265 | underscore@>1.4.4: 3266 | version "1.13.1" 3267 | resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.1.tgz#0c1c6bd2df54b6b69f2314066d65b6cde6fcf9d1" 3268 | integrity sha512-hzSoAVtJF+3ZtiFX0VgfFPHEDRm7Y/QPjGyNo4TVdnDTdft3tr8hEkD25a1jC+TjTuE7tkHGKkhwCgs9dgBB2g== 3269 | 3270 | union-value@^1.0.0: 3271 | version "1.0.1" 3272 | resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" 3273 | integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== 3274 | dependencies: 3275 | arr-union "^3.1.0" 3276 | get-value "^2.0.6" 3277 | is-extendable "^0.1.1" 3278 | set-value "^2.0.1" 3279 | 3280 | unique-string@^1.0.0: 3281 | version "1.0.0" 3282 | resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" 3283 | integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= 3284 | dependencies: 3285 | crypto-random-string "^1.0.0" 3286 | 3287 | unpipe@1.0.0, unpipe@~1.0.0: 3288 | version "1.0.0" 3289 | resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" 3290 | integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= 3291 | 3292 | unset-value@^1.0.0: 3293 | version "1.0.0" 3294 | resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" 3295 | integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= 3296 | dependencies: 3297 | has-value "^0.3.1" 3298 | isobject "^3.0.0" 3299 | 3300 | unzip-response@^2.0.1: 3301 | version "2.0.1" 3302 | resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" 3303 | integrity sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c= 3304 | 3305 | upath@^1.1.1: 3306 | version "1.2.0" 3307 | resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" 3308 | integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== 3309 | 3310 | update-notifier@^2.5.0: 3311 | version "2.5.0" 3312 | resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-2.5.0.tgz#d0744593e13f161e406acb1d9408b72cad08aff6" 3313 | integrity sha512-gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw== 3314 | dependencies: 3315 | boxen "^1.2.1" 3316 | chalk "^2.0.1" 3317 | configstore "^3.0.0" 3318 | import-lazy "^2.1.0" 3319 | is-ci "^1.0.10" 3320 | is-installed-globally "^0.1.0" 3321 | is-npm "^1.0.0" 3322 | latest-version "^3.0.0" 3323 | semver-diff "^2.0.0" 3324 | xdg-basedir "^3.0.0" 3325 | 3326 | uri-js@^4.2.2: 3327 | version "4.4.1" 3328 | resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" 3329 | integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== 3330 | dependencies: 3331 | punycode "^2.1.0" 3332 | 3333 | uri-path@^1.0.0: 3334 | version "1.0.0" 3335 | resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32" 3336 | integrity sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI= 3337 | 3338 | urix@^0.1.0: 3339 | version "0.1.0" 3340 | resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" 3341 | integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= 3342 | 3343 | url-parse-lax@^1.0.0: 3344 | version "1.0.0" 3345 | resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" 3346 | integrity sha1-evjzA2Rem9eaJy56FKxovAYJ2nM= 3347 | dependencies: 3348 | prepend-http "^1.0.1" 3349 | 3350 | use@^3.1.0: 3351 | version "3.1.1" 3352 | resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" 3353 | integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== 3354 | 3355 | util-deprecate@^1.0.2, util-deprecate@~1.0.1: 3356 | version "1.0.2" 3357 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 3358 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 3359 | 3360 | utils-merge@1.0.1: 3361 | version "1.0.1" 3362 | resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" 3363 | integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= 3364 | 3365 | uuid@^3.3.2: 3366 | version "3.4.0" 3367 | resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" 3368 | integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== 3369 | 3370 | v8flags@~3.2.0: 3371 | version "3.2.0" 3372 | resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" 3373 | integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== 3374 | dependencies: 3375 | homedir-polyfill "^1.0.1" 3376 | 3377 | vary@~1.1.2: 3378 | version "1.1.2" 3379 | resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" 3380 | integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= 3381 | 3382 | verror@1.10.0: 3383 | version "1.10.0" 3384 | resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" 3385 | integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= 3386 | dependencies: 3387 | assert-plus "^1.0.0" 3388 | core-util-is "1.0.2" 3389 | extsprintf "^1.2.0" 3390 | 3391 | which@^1.0.5, which@^1.2.14, which@^1.2.9: 3392 | version "1.3.1" 3393 | resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" 3394 | integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== 3395 | dependencies: 3396 | isexe "^2.0.0" 3397 | 3398 | which@~2.0.2: 3399 | version "2.0.2" 3400 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 3401 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 3402 | dependencies: 3403 | isexe "^2.0.0" 3404 | 3405 | widest-line@^2.0.0: 3406 | version "2.0.1" 3407 | resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" 3408 | integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== 3409 | dependencies: 3410 | string-width "^2.1.1" 3411 | 3412 | wrappy@1: 3413 | version "1.0.2" 3414 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 3415 | integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= 3416 | 3417 | write-file-atomic@^2.0.0: 3418 | version "2.4.3" 3419 | resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" 3420 | integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== 3421 | dependencies: 3422 | graceful-fs "^4.1.11" 3423 | imurmurhash "^0.1.4" 3424 | signal-exit "^3.0.2" 3425 | 3426 | ws@~7.4.2: 3427 | version "7.4.6" 3428 | resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" 3429 | integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== 3430 | 3431 | xdg-basedir@^3.0.0: 3432 | version "3.0.0" 3433 | resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" 3434 | integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= 3435 | 3436 | xmlhttprequest-ssl@~1.6.2: 3437 | version "1.6.3" 3438 | resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.6.3.tgz#03b713873b01659dfa2c1c5d056065b27ddc2de6" 3439 | integrity sha512-3XfeQE/wNkvrIktn2Kf0869fC0BN6UpydVasGIeSm2B1Llihf7/0UfZM+eCkOw3P7bP4+qPgqhm7ZoxuJtFU0Q== 3440 | 3441 | yallist@^2.1.2: 3442 | version "2.1.2" 3443 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" 3444 | integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= 3445 | 3446 | yauzl@^2.9.2: 3447 | version "2.10.0" 3448 | resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" 3449 | integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= 3450 | dependencies: 3451 | buffer-crc32 "~0.2.3" 3452 | fd-slicer "~1.1.0" 3453 | 3454 | yeast@0.1.2: 3455 | version "0.1.2" 3456 | resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" 3457 | integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= 3458 | 3459 | ytdl-core@^4.9.1: 3460 | version "4.9.1" 3461 | resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-4.9.1.tgz#f587e2bd8329b5133c0bac4ce5ee1f3c7a1175a9" 3462 | integrity sha512-6Jbp5RDhUEozlaJQAR+l8oV8AHsx3WUXxSyPxzE6wOIAaLql7Hjiy0ZM58wZoyj1YEenlEPjEqcJIjKYKxvHtQ== 3463 | dependencies: 3464 | m3u8stream "^0.8.3" 3465 | miniget "^4.0.0" 3466 | sax "^1.1.3" 3467 | --------------------------------------------------------------------------------