commit
082780cce2
11 changed files with 361 additions and 409 deletions
8
.github/ISSUE_TEMPLATE/bug_report.md
vendored
8
.github/ISSUE_TEMPLATE/bug_report.md
vendored
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a bug report to help us improve
|
||||
title: "[BUG] "
|
||||
title: ""
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
|
@ -13,9 +13,9 @@ assignees: ''
|
|||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
<!-- 1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error -->
|
||||
1. Click on '....'
|
||||
2. Scroll down to '....'
|
||||
3. See error -->
|
||||
|
||||
**Expected behavior**
|
||||
<!-- A clear and concise description of what you expected to happen. -->
|
||||
|
|
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
2
.github/ISSUE_TEMPLATE/feature_request.md
vendored
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: "[Feature Request] "
|
||||
title: ""
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
|
|
2
.github/ISSUE_TEMPLATE/question.md
vendored
2
.github/ISSUE_TEMPLATE/question.md
vendored
|
@ -1,7 +1,7 @@
|
|||
---
|
||||
name: Question
|
||||
about: Some questions related to this lib
|
||||
title: "[QUESTION] "
|
||||
title: ""
|
||||
labels: question
|
||||
assignees: ''
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"printWidth": 120,
|
||||
"printWidth": 400,
|
||||
"trailingComma": "none",
|
||||
"singleQuote": true,
|
||||
"tabWidth": 4
|
||||
|
|
12
package.json
12
package.json
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "discord-player",
|
||||
"version": "4.1.1",
|
||||
"version": "4.1.2",
|
||||
"description": "Complete framework to facilitate music commands using discord.js",
|
||||
"main": "lib/index.js",
|
||||
"types": "lib/index.d.ts",
|
||||
|
@ -50,11 +50,11 @@
|
|||
},
|
||||
"homepage": "https://discord-player.js.org",
|
||||
"dependencies": {
|
||||
"discord-ytdl-core": "^5.0.3",
|
||||
"discord-ytdl-core": "^5.0.4",
|
||||
"soundcloud-scraper": "^5.0.0",
|
||||
"spotify-url-info": "^2.2.0",
|
||||
"youtube-sr": "^4.0.7",
|
||||
"ytdl-core": "^4.8.0"
|
||||
"spotify-url-info": "^2.2.3",
|
||||
"youtube-sr": "^4.1.5",
|
||||
"ytdl-core": "^4.8.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "^7.13.16",
|
||||
|
@ -63,7 +63,7 @@
|
|||
"@babel/preset-typescript": "^7.13.0",
|
||||
"@discord-player/extractor": "^3.0.0",
|
||||
"@discordjs/opus": "^0.5.0",
|
||||
"@types/node": "^14.14.41",
|
||||
"@types/node": "^15.6.1",
|
||||
"@types/ws": "^7.4.1",
|
||||
"discord.js": "^12.5.3",
|
||||
"discord.js-docgen": "discordjs/docgen#ts-patch",
|
||||
|
|
266
src/Player.ts
266
src/Player.ts
|
@ -1,12 +1,6 @@
|
|||
import { EventEmitter } from 'events';
|
||||
import { Client, Collection, Snowflake, Collector, Message, VoiceChannel, VoiceState } from 'discord.js';
|
||||
import {
|
||||
LyricsData,
|
||||
PlayerOptions as PlayerOptionsType,
|
||||
PlayerProgressbarOptions,
|
||||
PlayerStats,
|
||||
QueueFilters
|
||||
} from './types/types';
|
||||
import { LyricsData, PlayerOptions as PlayerOptionsType, PlayerProgressbarOptions, PlayerStats, QueueFilters } from './types/types';
|
||||
import Util from './utils/Util';
|
||||
import AudioFilters from './utils/AudioFilters';
|
||||
import { Queue } from './Structures/Queue';
|
||||
|
@ -123,8 +117,7 @@ export class Player extends EventEmitter {
|
|||
const methods = ['validate', 'getInfo'];
|
||||
|
||||
for (const method of methods) {
|
||||
if (typeof extractor[method] !== 'function')
|
||||
throw new PlayerError('Invalid extractor supplied!', 'PlayerExtractorError');
|
||||
if (typeof extractor[method] !== 'function') throw new PlayerError('Invalid extractor supplied!', 'PlayerExtractorError');
|
||||
}
|
||||
|
||||
this.Extractors.set(extractorName, new ExtractorModel(extractorName, extractor));
|
||||
|
@ -181,9 +174,7 @@ export class Player extends EventEmitter {
|
|||
break;
|
||||
case 'spotify_song':
|
||||
{
|
||||
const matchSpotifyURL = query.match(
|
||||
/https?:\/\/(?:embed\.|open\.)(?:spotify\.com\/)(?:track\/|\?uri=spotify:track:)((\w|-){22})/
|
||||
);
|
||||
const matchSpotifyURL = query.match(/https?:\/\/(?:embed\.|open\.)(?:spotify\.com\/)(?:track\/|\?uri=spotify:track:)((\w|-){22})/);
|
||||
if (matchSpotifyURL) {
|
||||
const spotifyData = await spotify.getData(query).catch(() => {});
|
||||
if (spotifyData) {
|
||||
|
@ -192,10 +183,7 @@ export class Player extends EventEmitter {
|
|||
description: spotifyData.description ?? '',
|
||||
author: spotifyData.artists[0]?.name ?? 'Unknown Artist',
|
||||
url: spotifyData.external_urls?.spotify ?? query,
|
||||
thumbnail:
|
||||
spotifyData.album?.images[0]?.url ?? spotifyData.preview_url?.length
|
||||
? `https://i.scdn.co/image/${spotifyData.preview_url?.split('?cid=')[1]}`
|
||||
: 'https://www.scdn.co/i/_global/twitter_card-default.jpg',
|
||||
thumbnail: spotifyData.album?.images[0]?.url ?? spotifyData.preview_url?.length ? `https://i.scdn.co/image/${spotifyData.preview_url?.split('?cid=')[1]}` : 'https://www.scdn.co/i/_global/twitter_card-default.jpg',
|
||||
duration: Util.buildTimeCode(Util.parseMS(spotifyData.duration_ms)),
|
||||
views: 0,
|
||||
requestedBy: message.author,
|
||||
|
@ -204,9 +192,7 @@ export class Player extends EventEmitter {
|
|||
});
|
||||
|
||||
if (this.options.fetchBeforeQueued) {
|
||||
const searchQueryString = this.options.disableArtistSearch
|
||||
? spotifyTrack.title
|
||||
: `${spotifyTrack.title}${' - ' + spotifyTrack.author}`;
|
||||
const searchQueryString = this.options.disableArtistSearch ? spotifyTrack.title : `${spotifyTrack.title}${' - ' + spotifyTrack.author}`;
|
||||
const ytv = await YouTube.search(searchQueryString, {
|
||||
limit: 1,
|
||||
type: 'video'
|
||||
|
@ -243,9 +229,7 @@ export class Player extends EventEmitter {
|
|||
description: m.description ?? '',
|
||||
author: m.artists[0]?.name ?? 'Unknown Artist',
|
||||
url: m.external_urls?.spotify ?? query,
|
||||
thumbnail:
|
||||
playlist.images[0]?.url ??
|
||||
'https://www.scdn.co/i/_global/twitter_card-default.jpg',
|
||||
thumbnail: playlist.images[0]?.url ?? 'https://www.scdn.co/i/_global/twitter_card-default.jpg',
|
||||
duration: Util.buildTimeCode(Util.parseMS(m.duration_ms)),
|
||||
views: 0,
|
||||
requestedBy: message.author,
|
||||
|
@ -254,9 +238,7 @@ export class Player extends EventEmitter {
|
|||
});
|
||||
|
||||
if (this.options.fetchBeforeQueued) {
|
||||
const searchQueryString = this.options.disableArtistSearch
|
||||
? data.title
|
||||
: `${data.title}${' - ' + data.author}`;
|
||||
const searchQueryString = this.options.disableArtistSearch ? data.title : `${data.title}${' - ' + data.author}`;
|
||||
const ytv = await YouTube.search(searchQueryString, {
|
||||
limit: 1,
|
||||
type: 'video'
|
||||
|
@ -281,9 +263,7 @@ export class Player extends EventEmitter {
|
|||
description: m.track.description ?? '',
|
||||
author: m.track.artists[0]?.name ?? 'Unknown Artist',
|
||||
url: m.track.external_urls?.spotify ?? query,
|
||||
thumbnail:
|
||||
m.track.album?.images[0]?.url ??
|
||||
'https://www.scdn.co/i/_global/twitter_card-default.jpg',
|
||||
thumbnail: m.track.album?.images[0]?.url ?? 'https://www.scdn.co/i/_global/twitter_card-default.jpg',
|
||||
duration: Util.buildTimeCode(Util.parseMS(m.track.duration_ms)),
|
||||
views: 0,
|
||||
requestedBy: message.author,
|
||||
|
@ -292,9 +272,7 @@ export class Player extends EventEmitter {
|
|||
});
|
||||
|
||||
if (this.options.fetchBeforeQueued) {
|
||||
const searchQueryString = this.options.disableArtistSearch
|
||||
? data.title
|
||||
: `${data.title}${' - ' + data.author}`;
|
||||
const searchQueryString = this.options.disableArtistSearch ? data.title : `${data.title}${' - ' + data.author}`;
|
||||
const ytv = await YouTube.search(searchQueryString, {
|
||||
limit: 1,
|
||||
type: 'video'
|
||||
|
@ -330,9 +308,7 @@ export class Player extends EventEmitter {
|
|||
this.emit(PlayerEvents.PLAYLIST_ADD, message, queue, pl);
|
||||
} else {
|
||||
const track = tracks[0];
|
||||
const queue = (await this._createQueue(message, track).catch(
|
||||
(e) => void this.emit(PlayerEvents.ERROR, e, message)
|
||||
)) as Queue;
|
||||
const queue = (await this._createQueue(message, track).catch((e) => void this.emit(PlayerEvents.ERROR, e, message))) as Queue;
|
||||
this.emit(PlayerEvents.PLAYLIST_ADD, message, queue, pl);
|
||||
this.emit(PlayerEvents.TRACK_START, message, queue.tracks[0], queue);
|
||||
tracks.shift();
|
||||
|
@ -387,9 +363,7 @@ export class Player extends EventEmitter {
|
|||
this.emit(PlayerEvents.PLAYLIST_ADD, message, queue, playlist);
|
||||
} else {
|
||||
const track = tracks[0];
|
||||
const queue = (await this._createQueue(message, track).catch(
|
||||
(e) => void this.emit(PlayerEvents.ERROR, e, message)
|
||||
)) as Queue;
|
||||
const queue = (await this._createQueue(message, track).catch((e) => void this.emit(PlayerEvents.ERROR, e, message))) as Queue;
|
||||
this.emit(PlayerEvents.PLAYLIST_ADD, message, queue, playlist);
|
||||
this.emit(PlayerEvents.TRACK_START, message, queue.tracks[0], queue);
|
||||
tracks[0];
|
||||
|
@ -432,8 +406,7 @@ export class Player extends EventEmitter {
|
|||
res.tracks.push(r);
|
||||
}
|
||||
|
||||
if (!res.tracks.length)
|
||||
return this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.PARSE_ERROR, message);
|
||||
if (!res.tracks.length) return this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.PARSE_ERROR, message);
|
||||
res.duration = res.tracks.reduce((a, c) => a + c.durationMS, 0);
|
||||
|
||||
this.emit(PlayerEvents.PLAYLIST_PARSE_END, res, message);
|
||||
|
@ -443,9 +416,7 @@ export class Player extends EventEmitter {
|
|||
this.emit(PlayerEvents.PLAYLIST_ADD, message, queue, res);
|
||||
} else {
|
||||
const track = res.tracks[0];
|
||||
const queue = (await this._createQueue(message, track).catch(
|
||||
(e) => void this.emit(PlayerEvents.ERROR, e, message)
|
||||
)) as Queue;
|
||||
const queue = (await this._createQueue(message, track).catch((e) => void this.emit(PlayerEvents.ERROR, e, message))) as Queue;
|
||||
this.emit(PlayerEvents.PLAYLIST_ADD, message, queue, res);
|
||||
this.emit(PlayerEvents.TRACK_START, message, queue.tracks[0], queue);
|
||||
res.tracks.shift();
|
||||
|
@ -517,59 +488,32 @@ export class Player extends EventEmitter {
|
|||
if (typeof query === 'string') query = query.replace(/<(.+)>/g, '$1');
|
||||
let track;
|
||||
|
||||
if (query instanceof Track) track = query;
|
||||
if (query instanceof Track) query = query.url;
|
||||
else {
|
||||
if (ytdl.validateURL(query)) {
|
||||
const info = await ytdl.getBasicInfo(query).catch(() => {});
|
||||
if (!info) return void this.emit(PlayerEvents.NO_RESULTS, message, query);
|
||||
if (info.videoDetails.isLiveContent && !this.options.enableLive)
|
||||
return void this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.LIVE_VIDEO,
|
||||
message,
|
||||
new PlayerError('Live video is not enabled!')
|
||||
);
|
||||
const lastThumbnail = info.videoDetails.thumbnails[info.videoDetails.thumbnails.length - 1];
|
||||
for (const [_, extractor] of this.Extractors) {
|
||||
if (extractor.validate(query)) {
|
||||
const data = await extractor.handle(query);
|
||||
if (data) {
|
||||
track = new Track(this, {
|
||||
title: data.title,
|
||||
description: data.description,
|
||||
duration: Util.buildTimeCode(Util.parseMS(data.duration)),
|
||||
thumbnail: data.thumbnail,
|
||||
author: data.author,
|
||||
views: data.views,
|
||||
engine: data.engine,
|
||||
source: data.source ?? 'arbitrary',
|
||||
fromPlaylist: false,
|
||||
requestedBy: message.author,
|
||||
url: data.url
|
||||
});
|
||||
|
||||
track = new Track(this, {
|
||||
title: info.videoDetails.title,
|
||||
description: info.videoDetails.description,
|
||||
author: info.videoDetails.author.name,
|
||||
url: info.videoDetails.video_url,
|
||||
thumbnail: lastThumbnail.url,
|
||||
duration: Util.buildTimeCode(Util.parseMS(parseInt(info.videoDetails.lengthSeconds) * 1000)),
|
||||
views: parseInt(info.videoDetails.viewCount),
|
||||
requestedBy: message.author,
|
||||
fromPlaylist: false,
|
||||
source: 'youtube',
|
||||
live: Boolean(info.videoDetails.isLiveContent)
|
||||
});
|
||||
} else {
|
||||
for (const [_, extractor] of this.Extractors) {
|
||||
if (extractor.validate(query)) {
|
||||
const data = await extractor.handle(query);
|
||||
if (data) {
|
||||
track = new Track(this, {
|
||||
title: data.title,
|
||||
description: data.description,
|
||||
duration: Util.buildTimeCode(Util.parseMS(data.duration)),
|
||||
thumbnail: data.thumbnail,
|
||||
author: data.author,
|
||||
views: data.views,
|
||||
engine: data.engine,
|
||||
source: data.source ?? 'arbitrary',
|
||||
fromPlaylist: false,
|
||||
requestedBy: message.author,
|
||||
url: data.url
|
||||
});
|
||||
|
||||
if (extractor.important) break;
|
||||
}
|
||||
if (extractor.important) break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!track) track = await this._searchTracks(message, query, firstResult);
|
||||
}
|
||||
|
||||
if (!track) track = await this._searchTracks(message, query, firstResult);
|
||||
}
|
||||
|
||||
if (track) {
|
||||
|
@ -610,21 +554,9 @@ export class Player extends EventEmitter {
|
|||
setFilters(message: Message, newFilters: QueueFilters): Promise<void> {
|
||||
return new Promise((resolve) => {
|
||||
const queue = this.queues.find((g) => g.guildID === message.guild.id);
|
||||
if (!queue)
|
||||
this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.NOT_PLAYING,
|
||||
message,
|
||||
new PlayerError('Not playing')
|
||||
);
|
||||
if (!queue) this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.NOT_PLAYING, message, new PlayerError('Not playing'));
|
||||
|
||||
if (queue.playing.raw.live)
|
||||
return void this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.LIVE_VIDEO,
|
||||
message,
|
||||
new PlayerError('Cannot use setFilters on livestream')
|
||||
);
|
||||
if (queue.playing.raw.live) return void this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.LIVE_VIDEO, message, new PlayerError('Cannot use setFilters on livestream'));
|
||||
|
||||
Object.keys(newFilters).forEach((filterName) => {
|
||||
// @ts-ignore
|
||||
|
@ -650,11 +582,7 @@ export class Player extends EventEmitter {
|
|||
|
||||
if (typeof time !== 'number' && !isNaN(time)) time = parseInt(time);
|
||||
if (queue.playing.durationMS <= time) return this.skip(message);
|
||||
if (
|
||||
queue.voiceConnection.dispatcher.streamTime === time ||
|
||||
queue.voiceConnection.dispatcher.streamTime + queue.additionalStreamTime === time
|
||||
)
|
||||
return resolve();
|
||||
if (queue.voiceConnection.dispatcher.streamTime === time || queue.voiceConnection.dispatcher.streamTime + queue.additionalStreamTime === time) return resolve();
|
||||
if (time < 0) this._playStream(queue, false).then(() => resolve());
|
||||
|
||||
this._playStream(queue, false, time).then(() => resolve());
|
||||
|
@ -964,8 +892,7 @@ export class Player extends EventEmitter {
|
|||
const queue = this.getQueue(message);
|
||||
if (!queue) return;
|
||||
|
||||
const previousTracksTime =
|
||||
queue.previousTracks.length > 0 ? queue.previousTracks.reduce((p, c) => p + c.durationMS, 0) : 0;
|
||||
const previousTracksTime = queue.previousTracks.length > 0 ? queue.previousTracks.reduce((p, c) => p + c.durationMS, 0) : 0;
|
||||
const currentStreamTime = queueTime ? previousTracksTime + queue.currentStreamTime : queue.currentStreamTime;
|
||||
const totalTracksTime = queue.totalTime;
|
||||
const totalTime = queueTime ? previousTracksTime + totalTracksTime : queue.playing.durationMS;
|
||||
|
@ -989,23 +916,14 @@ export class Player extends EventEmitter {
|
|||
const queue = this.getQueue(message);
|
||||
if (!queue) return;
|
||||
|
||||
const previousTracksTime =
|
||||
queue.previousTracks.length > 0 ? queue.previousTracks.reduce((p, c) => p + c.durationMS, 0) : 0;
|
||||
const currentStreamTime = options?.queue
|
||||
? previousTracksTime + queue.currentStreamTime
|
||||
: queue.currentStreamTime;
|
||||
const previousTracksTime = queue.previousTracks.length > 0 ? queue.previousTracks.reduce((p, c) => p + c.durationMS, 0) : 0;
|
||||
const currentStreamTime = options?.queue ? previousTracksTime + queue.currentStreamTime : queue.currentStreamTime;
|
||||
const totalTracksTime = queue.totalTime;
|
||||
const totalTime = options?.queue ? previousTracksTime + totalTracksTime : queue.playing.durationMS;
|
||||
const length =
|
||||
typeof options?.length === 'number'
|
||||
? options?.length <= 0 || options?.length === Infinity
|
||||
? 15
|
||||
: options?.length
|
||||
: 15;
|
||||
const length = typeof options?.length === 'number' ? (options?.length <= 0 || options?.length === Infinity ? 15 : options?.length) : 15;
|
||||
|
||||
const index = Math.round((currentStreamTime / totalTime) * length);
|
||||
const indicator =
|
||||
typeof options?.indicator === 'string' && options?.indicator.length > 0 ? options?.indicator : '🔘';
|
||||
const indicator = typeof options?.indicator === 'string' && options?.indicator.length > 0 ? options?.indicator : '🔘';
|
||||
const line = typeof options?.line === 'string' && options?.line.length > 0 ? options?.line : '▬';
|
||||
|
||||
if (index >= 1 && index <= length) {
|
||||
|
@ -1071,10 +989,7 @@ export class Player extends EventEmitter {
|
|||
uptime: this.client.uptime,
|
||||
connections: this.client.voice.connections.size,
|
||||
// tslint:disable:no-shadowed-variable
|
||||
users: this.client.voice.connections.reduce(
|
||||
(a, c) => a + c.channel.members.filter((a) => a.user.id !== this.client.user.id).size,
|
||||
0
|
||||
),
|
||||
users: this.client.voice.connections.reduce((a, c) => a + c.channel.members.filter((a) => a.user.id !== this.client.user.id).size, 0),
|
||||
queues: this.queues.size,
|
||||
extractors: this.Extractors.size,
|
||||
versions: {
|
||||
|
@ -1164,13 +1079,7 @@ export class Player extends EventEmitter {
|
|||
*/
|
||||
_addTrackToQueue(message: Message, track: Track): Queue {
|
||||
const queue = this.getQueue(message);
|
||||
if (!queue)
|
||||
this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.NOT_PLAYING,
|
||||
message,
|
||||
new PlayerError('Player is not available in this server')
|
||||
);
|
||||
if (!queue) this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.NOT_PLAYING, message, new PlayerError('Player is not available in this server'));
|
||||
if (!track || !(track instanceof Track)) throw new PlayerError('No track specified to add to the queue');
|
||||
queue.tracks.push(track);
|
||||
return queue;
|
||||
|
@ -1185,10 +1094,7 @@ export class Player extends EventEmitter {
|
|||
*/
|
||||
_addTracksToQueue(message: Message, tracks: Track[]): Queue {
|
||||
const queue = this.getQueue(message);
|
||||
if (!queue)
|
||||
throw new PlayerError(
|
||||
'Cannot add tracks to queue because no song is currently being played on the server.'
|
||||
);
|
||||
if (!queue) throw new PlayerError('Cannot add tracks to queue because no song is currently being played on the server.');
|
||||
queue.tracks.push(...tracks);
|
||||
return queue;
|
||||
}
|
||||
|
@ -1203,15 +1109,10 @@ export class Player extends EventEmitter {
|
|||
private _createQueue(message: Message, track: Track): Promise<Queue> {
|
||||
return new Promise((resolve) => {
|
||||
const channel = message.member.voice ? message.member.voice.channel : null;
|
||||
if (!channel)
|
||||
return void this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.NOT_CONNECTED,
|
||||
message,
|
||||
new PlayerError('Voice connection is not available in this server!')
|
||||
);
|
||||
if (!channel) return void this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.NOT_CONNECTED, message, new PlayerError('Voice connection is not available in this server!'));
|
||||
|
||||
const queue = new Queue(this, message);
|
||||
queue.volume = this.options.volume || 100;
|
||||
this.queues.set(message.guild.id, queue);
|
||||
|
||||
channel
|
||||
|
@ -1224,16 +1125,13 @@ export class Player extends EventEmitter {
|
|||
queue.tracks.push(track);
|
||||
this.emit(PlayerEvents.QUEUE_CREATE, message, queue);
|
||||
resolve(queue);
|
||||
this._playTrack(queue, true);
|
||||
this._playTrack(queue, true).catch((e) => {
|
||||
this.emit(PlayerEvents.ERROR, e, queue.firstMessage, queue.playing);
|
||||
});
|
||||
})
|
||||
.catch((err) => {
|
||||
this.queues.delete(message.guild.id);
|
||||
this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.UNABLE_TO_JOIN,
|
||||
message,
|
||||
new PlayerError(err.message ?? err)
|
||||
);
|
||||
this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.UNABLE_TO_JOIN, message, new PlayerError(err.message ?? err));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
@ -1248,7 +1146,7 @@ export class Player extends EventEmitter {
|
|||
private async _playTrack(queue: Queue, firstPlay: boolean): Promise<void> {
|
||||
if (queue.stopped) return;
|
||||
|
||||
if (!queue.autoPlay && queue.tracks.length === 1 && !queue.loopMode && !queue.repeatMode && !firstPlay) {
|
||||
if (!(queue.autoPlay && ['youtube', 'spotify'].includes(queue.playing?.source)) && queue.tracks.length === 1 && !queue.loopMode && !queue.repeatMode && !firstPlay) {
|
||||
if (this.options.leaveOnEnd && !queue.stopped) {
|
||||
this.queues.delete(queue.guildID);
|
||||
const timeout = setTimeout(() => {
|
||||
|
@ -1269,7 +1167,7 @@ export class Player extends EventEmitter {
|
|||
if (queue.autoPlay && !queue.repeatMode && !firstPlay) {
|
||||
const oldTrack = queue.tracks.shift();
|
||||
|
||||
const info = oldTrack.raw.source === 'youtube' ? await ytdl.getInfo(oldTrack.url).catch((e) => {}) : null;
|
||||
const info = ['youtube', 'spotify'].includes(oldTrack?.raw.source) ? await ytdl.getInfo((oldTrack as any).backupLink ?? oldTrack.url).catch((e) => {}) : null;
|
||||
if (info) {
|
||||
const res = await Util.ytSearch(info.related_videos[0].title, {
|
||||
player: this,
|
||||
|
@ -1294,9 +1192,13 @@ export class Player extends EventEmitter {
|
|||
const track = queue.playing;
|
||||
|
||||
queue.lastSkipped = false;
|
||||
this._playStream(queue, false).then(() => {
|
||||
if (!firstPlay) this.emit(PlayerEvents.TRACK_START, queue.firstMessage, track, queue);
|
||||
});
|
||||
this._playStream(queue, false)
|
||||
.then(() => {
|
||||
if (!firstPlay) this.emit(PlayerEvents.TRACK_START, queue.firstMessage, track, queue);
|
||||
})
|
||||
.catch((e) => {
|
||||
this.emit(PlayerEvents.ERROR, e, queue.firstMessage, queue.playing);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1312,12 +1214,7 @@ export class Player extends EventEmitter {
|
|||
const ffmpeg = Util.checkFFmpeg();
|
||||
if (!ffmpeg) return;
|
||||
|
||||
const seekTime =
|
||||
typeof seek === 'number'
|
||||
? seek
|
||||
: updateFilter
|
||||
? queue.voiceConnection.dispatcher.streamTime + queue.additionalStreamTime
|
||||
: undefined;
|
||||
const seekTime = typeof seek === 'number' ? seek : updateFilter ? queue.voiceConnection.dispatcher.streamTime + queue.additionalStreamTime : undefined;
|
||||
const encoderArgsFilters: string[] = [];
|
||||
|
||||
Object.keys(queue.filters).forEach((filterName) => {
|
||||
|
@ -1337,21 +1234,14 @@ export class Player extends EventEmitter {
|
|||
|
||||
let newStream: any;
|
||||
|
||||
if (!queue.playing?.raw?.source) return void this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.VIDEO_UNAVAILABLE, queue.firstMessage, queue.playing, new PlayerError("Don't know how to play this item", 'PlayerError'));
|
||||
|
||||
// modify spotify
|
||||
if (queue.playing.raw.source === 'spotify' && !(queue.playing as any).backupLink) {
|
||||
const searchQueryString = this.options.disableArtistSearch
|
||||
? queue.playing.title
|
||||
: `${queue.playing.title}${' - ' + queue.playing.author}`;
|
||||
const searchQueryString = this.options.disableArtistSearch ? queue.playing.title : `${queue.playing.title}${' - ' + queue.playing.author}`;
|
||||
const yteqv = await YouTube.search(searchQueryString, { type: 'video', limit: 1 }).catch(() => {});
|
||||
|
||||
if (!yteqv || !yteqv.length)
|
||||
return void this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.VIDEO_UNAVAILABLE,
|
||||
queue.firstMessage,
|
||||
queue.playing,
|
||||
new PlayerError('Could not find alternative track on youtube!', 'SpotifyTrackError')
|
||||
);
|
||||
if (!yteqv || !yteqv.length) return void this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.VIDEO_UNAVAILABLE, queue.firstMessage, queue.playing, new PlayerError('Could not find alternative track on youtube!', 'SpotifyTrackError'));
|
||||
|
||||
Util.define({
|
||||
target: queue.playing,
|
||||
|
@ -1370,16 +1260,11 @@ export class Player extends EventEmitter {
|
|||
...this.options.ytdlDownloadOptions
|
||||
});
|
||||
} else {
|
||||
newStream = ytdl.arbitraryStream(
|
||||
queue.playing.raw.source === 'soundcloud'
|
||||
? await queue.playing.raw.engine.downloadProgressive()
|
||||
: queue.playing.raw.engine,
|
||||
{
|
||||
opusEncoded: true,
|
||||
encoderArgs,
|
||||
seek: seekTime / 1000
|
||||
}
|
||||
);
|
||||
newStream = ytdl.arbitraryStream(queue.playing.raw.source === 'soundcloud' ? await queue.playing.raw.engine.downloadProgressive() : queue.playing.raw.engine, {
|
||||
opusEncoded: true,
|
||||
encoderArgs,
|
||||
seek: seekTime / 1000
|
||||
});
|
||||
}
|
||||
|
||||
setTimeout(() => {
|
||||
|
@ -1405,13 +1290,7 @@ export class Player extends EventEmitter {
|
|||
|
||||
newStream.on('error', (error: Error) => {
|
||||
if (error.message.toLowerCase().includes('video unavailable')) {
|
||||
this.emit(
|
||||
PlayerEvents.ERROR,
|
||||
PlayerErrorEventCodes.VIDEO_UNAVAILABLE,
|
||||
queue.firstMessage,
|
||||
queue.playing,
|
||||
error
|
||||
);
|
||||
this.emit(PlayerEvents.ERROR, PlayerErrorEventCodes.VIDEO_UNAVAILABLE, queue.firstMessage, queue.playing, error);
|
||||
this._playTrack(queue, false);
|
||||
} else {
|
||||
this.emit(PlayerEvents.ERROR, error, queue.firstMessage, error);
|
||||
|
@ -1549,6 +1428,7 @@ export default Player;
|
|||
* @property {Boolean} [disableAutoRegister=false] If it should disable auto-registeration of `@discord-player/extractor`
|
||||
* @property {Boolean} [disableArtistSearch=false] If it should disable artist search for spotify
|
||||
* @property {Boolean} [fetchBeforeQueued=false] If it should fetch all songs loaded from spotify before playing
|
||||
* @property {Number} [volume=100] Startup player volume
|
||||
*/
|
||||
|
||||
/**
|
||||
|
@ -1616,6 +1496,8 @@ export default Player;
|
|||
* @property {Boolean} [timecodes] If it should return progres bar with time codes
|
||||
* @property {Boolean} [queue] if it should return the progress bar of the whole queue
|
||||
* @property {Number} [length] The length of progress bar to build
|
||||
* @property {String} [indicator] The progress indicator
|
||||
* @property {String} [line] The progress bar track
|
||||
*/
|
||||
|
||||
/**
|
||||
|
|
|
@ -15,6 +15,7 @@ export interface PlayerOptions {
|
|||
disableAutoRegister?: boolean;
|
||||
disableArtistSearch?: boolean;
|
||||
fetchBeforeQueued?: boolean;
|
||||
volume?: number;
|
||||
}
|
||||
|
||||
export type FiltersName = keyof QueueFilters;
|
||||
|
@ -67,19 +68,7 @@ export type QueueFilters = {
|
|||
fadein?: boolean;
|
||||
};
|
||||
|
||||
export type QueryType =
|
||||
| 'soundcloud_track'
|
||||
| 'soundcloud_playlist'
|
||||
| 'spotify_song'
|
||||
| 'spotify_album'
|
||||
| 'spotify_playlist'
|
||||
| 'youtube_video'
|
||||
| 'youtube_playlist'
|
||||
| 'vimeo'
|
||||
| 'facebook'
|
||||
| 'reverbnation'
|
||||
| 'attachment'
|
||||
| 'youtube_search';
|
||||
export type QueryType = 'soundcloud_track' | 'soundcloud_playlist' | 'spotify_song' | 'spotify_album' | 'spotify_playlist' | 'youtube_video' | 'youtube_playlist' | 'vimeo' | 'facebook' | 'reverbnation' | 'attachment' | 'youtube_search';
|
||||
|
||||
export interface ExtractorModelData {
|
||||
title: string;
|
||||
|
@ -131,17 +120,7 @@ export interface PlayerStats {
|
|||
};
|
||||
system: {
|
||||
arch: string;
|
||||
platform:
|
||||
| 'aix'
|
||||
| 'android'
|
||||
| 'darwin'
|
||||
| 'freebsd'
|
||||
| 'linux'
|
||||
| 'openbsd'
|
||||
| 'sunos'
|
||||
| 'win32'
|
||||
| 'cygwin'
|
||||
| 'netbsd';
|
||||
platform: 'aix' | 'android' | 'darwin' | 'freebsd' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';
|
||||
cpu: number;
|
||||
memory: {
|
||||
total: string;
|
||||
|
|
|
@ -70,15 +70,11 @@ const FilterList = {
|
|||
},
|
||||
|
||||
get names() {
|
||||
return Object.keys(this).filter(
|
||||
(p) => !['names', 'length'].includes(p) && typeof this[p as FiltersName] !== 'function'
|
||||
);
|
||||
return Object.keys(this).filter((p) => !['names', 'length'].includes(p) && typeof this[p as FiltersName] !== 'function');
|
||||
},
|
||||
|
||||
get length() {
|
||||
return Object.keys(this).filter(
|
||||
(p) => !['names', 'length'].includes(p) && typeof this[p as FiltersName] !== 'function'
|
||||
).length;
|
||||
return Object.keys(this).filter((p) => !['names', 'length'].includes(p) && typeof this[p as FiltersName] !== 'function').length;
|
||||
},
|
||||
|
||||
toString() {
|
||||
|
|
|
@ -36,5 +36,6 @@ export const PlayerOptions: DP_OPTIONS = {
|
|||
leaveOnEmptyCooldown: 0,
|
||||
autoSelfDeaf: true,
|
||||
enableLive: false,
|
||||
ytdlDownloadOptions: {}
|
||||
ytdlDownloadOptions: {},
|
||||
volume: 100
|
||||
};
|
||||
|
|
|
@ -53,10 +53,7 @@ export class Util {
|
|||
static alertFFmpeg(): void {
|
||||
const hasFFmpeg = Util.checkFFmpeg();
|
||||
|
||||
if (!hasFFmpeg)
|
||||
console.warn(
|
||||
'[Discord Player] FFmpeg/Avconv not found! Install via "npm install ffmpeg-static" or download from https://ffmpeg.org/download.html'
|
||||
);
|
||||
if (!hasFFmpeg) console.warn('[Discord Player] FFmpeg/Avconv not found! Install via "npm install ffmpeg-static" or download from https://ffmpeg.org/download.html');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
435
yarn.lock
435
yarn.lock
|
@ -25,10 +25,10 @@
|
|||
dependencies:
|
||||
"@babel/highlight" "^7.12.13"
|
||||
|
||||
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.13.15", "@babel/compat-data@^7.13.8":
|
||||
version "7.13.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.15.tgz#7e8eea42d0b64fda2b375b22d06c605222e848f4"
|
||||
integrity sha512-ltnibHKR1VnrU4ymHyQ/CXtNXI6yZC0oJThyW78Hft8XndANwi+9H+UIklBDraIjFEJzw8wmcM427oDd9KS5wA==
|
||||
"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58"
|
||||
integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==
|
||||
|
||||
"@babel/core@^7.13.16":
|
||||
version "7.13.16"
|
||||
|
@ -60,6 +60,15 @@
|
|||
jsesc "^2.5.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/generator@^7.14.2":
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91"
|
||||
integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==
|
||||
dependencies:
|
||||
"@babel/types" "^7.14.2"
|
||||
jsesc "^2.5.1"
|
||||
source-map "^0.5.0"
|
||||
|
||||
"@babel/helper-annotate-as-pure@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab"
|
||||
|
@ -75,14 +84,14 @@
|
|||
"@babel/helper-explode-assignable-expression" "^7.12.13"
|
||||
"@babel/types" "^7.12.13"
|
||||
|
||||
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.13.8":
|
||||
version "7.13.16"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.16.tgz#6e91dccf15e3f43e5556dffe32d860109887563c"
|
||||
integrity sha512-3gmkYIrpqsLlieFwjkGgLaSHmhnvlAYzZLlYVjlW+QwI+1zE17kGxuJGmIqDQdYp56XdmGeD+Bswx0UTyG18xA==
|
||||
"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516"
|
||||
integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.13.15"
|
||||
"@babel/compat-data" "^7.14.4"
|
||||
"@babel/helper-validator-option" "^7.12.17"
|
||||
browserslist "^4.14.5"
|
||||
browserslist "^4.16.6"
|
||||
semver "^6.3.0"
|
||||
|
||||
"@babel/helper-create-class-features-plugin@^7.13.0":
|
||||
|
@ -96,6 +105,18 @@
|
|||
"@babel/helper-replace-supers" "^7.13.0"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
|
||||
"@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42"
|
||||
integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.12.13"
|
||||
"@babel/helper-function-name" "^7.14.2"
|
||||
"@babel/helper-member-expression-to-functions" "^7.13.12"
|
||||
"@babel/helper-optimise-call-expression" "^7.12.13"
|
||||
"@babel/helper-replace-supers" "^7.14.4"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
|
||||
"@babel/helper-create-regexp-features-plugin@^7.12.13":
|
||||
version "7.12.17"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7"
|
||||
|
@ -134,6 +155,15 @@
|
|||
"@babel/template" "^7.12.13"
|
||||
"@babel/types" "^7.12.13"
|
||||
|
||||
"@babel/helper-function-name@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2"
|
||||
integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==
|
||||
dependencies:
|
||||
"@babel/helper-get-function-arity" "^7.12.13"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/types" "^7.14.2"
|
||||
|
||||
"@babel/helper-get-function-arity@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583"
|
||||
|
@ -177,6 +207,20 @@
|
|||
"@babel/traverse" "^7.13.13"
|
||||
"@babel/types" "^7.13.14"
|
||||
|
||||
"@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5"
|
||||
integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==
|
||||
dependencies:
|
||||
"@babel/helper-module-imports" "^7.13.12"
|
||||
"@babel/helper-replace-supers" "^7.13.12"
|
||||
"@babel/helper-simple-access" "^7.13.12"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
"@babel/template" "^7.12.13"
|
||||
"@babel/traverse" "^7.14.2"
|
||||
"@babel/types" "^7.14.2"
|
||||
|
||||
"@babel/helper-optimise-call-expression@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea"
|
||||
|
@ -208,7 +252,17 @@
|
|||
"@babel/traverse" "^7.13.0"
|
||||
"@babel/types" "^7.13.12"
|
||||
|
||||
"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12":
|
||||
"@babel/helper-replace-supers@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836"
|
||||
integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==
|
||||
dependencies:
|
||||
"@babel/helper-member-expression-to-functions" "^7.13.12"
|
||||
"@babel/helper-optimise-call-expression" "^7.12.13"
|
||||
"@babel/traverse" "^7.14.2"
|
||||
"@babel/types" "^7.14.4"
|
||||
|
||||
"@babel/helper-simple-access@^7.13.12":
|
||||
version "7.13.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6"
|
||||
integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==
|
||||
|
@ -234,6 +288,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
|
||||
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
|
||||
|
||||
"@babel/helper-validator-identifier@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288"
|
||||
integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==
|
||||
|
||||
"@babel/helper-validator-option@^7.12.17":
|
||||
version "7.12.17"
|
||||
resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831"
|
||||
|
@ -272,6 +331,11 @@
|
|||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.16.tgz#0f18179b0448e6939b1f3f5c4c355a3a9bcdfd37"
|
||||
integrity sha512-6bAg36mCwuqLO0hbR+z7PHuqWiCeP7Dzg73OpQwsAB1Eb8HnGEz5xYBzCfbu+YjoaJsJs+qheDxVAuqbt3ILEw==
|
||||
|
||||
"@babel/parser@^7.14.2":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18"
|
||||
integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==
|
||||
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12":
|
||||
version "7.13.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a"
|
||||
|
@ -281,10 +345,10 @@
|
|||
"@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
|
||||
"@babel/plugin-proposal-optional-chaining" "^7.13.12"
|
||||
|
||||
"@babel/plugin-proposal-async-generator-functions@^7.13.15":
|
||||
version "7.13.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.15.tgz#80e549df273a3b3050431b148c892491df1bcc5b"
|
||||
integrity sha512-VapibkWzFeoa6ubXy/NgV5U2U4MVnUlvnx6wo1XhlsaTrLYWE0UFpDQsVrmn22q5CzeloqJ8gEMHSKxuee6ZdA==
|
||||
"@babel/plugin-proposal-async-generator-functions@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e"
|
||||
integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/helper-remap-async-to-generator" "^7.13.0"
|
||||
|
@ -298,77 +362,86 @@
|
|||
"@babel/helper-create-class-features-plugin" "^7.13.0"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
"@babel/plugin-proposal-dynamic-import@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d"
|
||||
integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ==
|
||||
"@babel/plugin-proposal-class-static-block@^7.14.3":
|
||||
version "7.14.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360"
|
||||
integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ==
|
||||
dependencies:
|
||||
"@babel/helper-create-class-features-plugin" "^7.14.3"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-class-static-block" "^7.12.13"
|
||||
|
||||
"@babel/plugin-proposal-dynamic-import@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f"
|
||||
integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-export-namespace-from@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d"
|
||||
integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw==
|
||||
"@babel/plugin-proposal-export-namespace-from@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791"
|
||||
integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-json-strings@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b"
|
||||
integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q==
|
||||
"@babel/plugin-proposal-json-strings@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c"
|
||||
integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-logical-assignment-operators@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a"
|
||||
integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A==
|
||||
"@babel/plugin-proposal-logical-assignment-operators@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7"
|
||||
integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
|
||||
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3"
|
||||
integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A==
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546"
|
||||
integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-numeric-separator@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db"
|
||||
integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w==
|
||||
"@babel/plugin-proposal-numeric-separator@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e"
|
||||
integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
|
||||
|
||||
"@babel/plugin-proposal-object-rest-spread@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a"
|
||||
integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g==
|
||||
"@babel/plugin-proposal-object-rest-spread@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4"
|
||||
integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.13.8"
|
||||
"@babel/helper-compilation-targets" "^7.13.8"
|
||||
"@babel/compat-data" "^7.14.4"
|
||||
"@babel/helper-compilation-targets" "^7.14.4"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
||||
"@babel/plugin-transform-parameters" "^7.13.0"
|
||||
"@babel/plugin-transform-parameters" "^7.14.2"
|
||||
|
||||
"@babel/plugin-proposal-optional-catch-binding@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107"
|
||||
integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA==
|
||||
"@babel/plugin-proposal-optional-catch-binding@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717"
|
||||
integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
||||
|
||||
"@babel/plugin-proposal-optional-chaining@^7.13.12":
|
||||
version "7.13.12"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866"
|
||||
integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ==
|
||||
"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e"
|
||||
integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/helper-skip-transparent-expression-wrappers" "^7.12.1"
|
||||
|
@ -382,6 +455,16 @@
|
|||
"@babel/helper-create-class-features-plugin" "^7.13.0"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
"@babel/plugin-proposal-private-property-in-object@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636"
|
||||
integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.12.13"
|
||||
"@babel/helper-create-class-features-plugin" "^7.14.0"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/plugin-syntax-private-property-in-object" "^7.14.0"
|
||||
|
||||
"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba"
|
||||
|
@ -404,6 +487,13 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
|
||||
"@babel/plugin-syntax-class-static-block@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c"
|
||||
integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
|
||||
"@babel/plugin-syntax-dynamic-import@^7.8.3":
|
||||
version "7.8.3"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3"
|
||||
|
@ -467,6 +557,13 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.8.0"
|
||||
|
||||
"@babel/plugin-syntax-private-property-in-object@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b"
|
||||
integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
"@babel/plugin-syntax-top-level-await@^7.12.13":
|
||||
version "7.12.13"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178"
|
||||
|
@ -504,23 +601,23 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
|
||||
"@babel/plugin-transform-block-scoping@^7.12.13":
|
||||
version "7.13.16"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.13.16.tgz#a9c0f10794855c63b1d629914c7dcfeddd185892"
|
||||
integrity sha512-ad3PHUxGnfWF4Efd3qFuznEtZKoBp0spS+DgqzVzRPV7urEBvPLue3y2j80w4Jf2YLzZHj8TOv/Lmvdmh3b2xg==
|
||||
"@babel/plugin-transform-block-scoping@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8"
|
||||
integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
"@babel/plugin-transform-classes@^7.13.0":
|
||||
version "7.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b"
|
||||
integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g==
|
||||
"@babel/plugin-transform-classes@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a"
|
||||
integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ==
|
||||
dependencies:
|
||||
"@babel/helper-annotate-as-pure" "^7.12.13"
|
||||
"@babel/helper-function-name" "^7.12.13"
|
||||
"@babel/helper-function-name" "^7.14.2"
|
||||
"@babel/helper-optimise-call-expression" "^7.12.13"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/helper-replace-supers" "^7.13.0"
|
||||
"@babel/helper-replace-supers" "^7.14.4"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
globals "^11.1.0"
|
||||
|
||||
|
@ -531,10 +628,10 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
"@babel/plugin-transform-destructuring@^7.13.0":
|
||||
version "7.13.17"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.17.tgz#678d96576638c19d5b36b332504d3fd6e06dea27"
|
||||
integrity sha512-UAUqiLv+uRLO+xuBKKMEpC+t7YRNVRqBsWWq1yKXbBZBje/t3IXCiSinZhjn/DC3qzBfICeYd2EFGEbHsh5RLA==
|
||||
"@babel/plugin-transform-destructuring@^7.14.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed"
|
||||
integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
|
@ -590,23 +687,23 @@
|
|||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
|
||||
"@babel/plugin-transform-modules-amd@^7.13.0":
|
||||
version "7.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3"
|
||||
integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ==
|
||||
"@babel/plugin-transform-modules-amd@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0"
|
||||
integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw==
|
||||
dependencies:
|
||||
"@babel/helper-module-transforms" "^7.13.0"
|
||||
"@babel/helper-module-transforms" "^7.14.2"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
babel-plugin-dynamic-import-node "^2.3.3"
|
||||
|
||||
"@babel/plugin-transform-modules-commonjs@^7.13.8":
|
||||
version "7.13.8"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b"
|
||||
integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw==
|
||||
"@babel/plugin-transform-modules-commonjs@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161"
|
||||
integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ==
|
||||
dependencies:
|
||||
"@babel/helper-module-transforms" "^7.13.0"
|
||||
"@babel/helper-module-transforms" "^7.14.0"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/helper-simple-access" "^7.12.13"
|
||||
"@babel/helper-simple-access" "^7.13.12"
|
||||
babel-plugin-dynamic-import-node "^2.3.3"
|
||||
|
||||
"@babel/plugin-transform-modules-systemjs@^7.13.8":
|
||||
|
@ -620,12 +717,12 @@
|
|||
"@babel/helper-validator-identifier" "^7.12.11"
|
||||
babel-plugin-dynamic-import-node "^2.3.3"
|
||||
|
||||
"@babel/plugin-transform-modules-umd@^7.13.0":
|
||||
version "7.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b"
|
||||
integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw==
|
||||
"@babel/plugin-transform-modules-umd@^7.14.0":
|
||||
version "7.14.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34"
|
||||
integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw==
|
||||
dependencies:
|
||||
"@babel/helper-module-transforms" "^7.13.0"
|
||||
"@babel/helper-module-transforms" "^7.14.0"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13":
|
||||
|
@ -650,10 +747,10 @@
|
|||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
"@babel/helper-replace-supers" "^7.12.13"
|
||||
|
||||
"@babel/plugin-transform-parameters@^7.13.0":
|
||||
version "7.13.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007"
|
||||
integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw==
|
||||
"@babel/plugin-transform-parameters@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31"
|
||||
integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A==
|
||||
dependencies:
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
|
||||
|
@ -739,30 +836,33 @@
|
|||
"@babel/helper-plugin-utils" "^7.12.13"
|
||||
|
||||
"@babel/preset-env@^7.13.15":
|
||||
version "7.13.15"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.15.tgz#c8a6eb584f96ecba183d3d414a83553a599f478f"
|
||||
integrity sha512-D4JAPMXcxk69PKe81jRJ21/fP/uYdcTZ3hJDF5QX2HSI9bBxxYw/dumdR6dGumhjxlprHPE4XWoPaqzZUVy2MA==
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d"
|
||||
integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA==
|
||||
dependencies:
|
||||
"@babel/compat-data" "^7.13.15"
|
||||
"@babel/helper-compilation-targets" "^7.13.13"
|
||||
"@babel/compat-data" "^7.14.4"
|
||||
"@babel/helper-compilation-targets" "^7.14.4"
|
||||
"@babel/helper-plugin-utils" "^7.13.0"
|
||||
"@babel/helper-validator-option" "^7.12.17"
|
||||
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12"
|
||||
"@babel/plugin-proposal-async-generator-functions" "^7.13.15"
|
||||
"@babel/plugin-proposal-async-generator-functions" "^7.14.2"
|
||||
"@babel/plugin-proposal-class-properties" "^7.13.0"
|
||||
"@babel/plugin-proposal-dynamic-import" "^7.13.8"
|
||||
"@babel/plugin-proposal-export-namespace-from" "^7.12.13"
|
||||
"@babel/plugin-proposal-json-strings" "^7.13.8"
|
||||
"@babel/plugin-proposal-logical-assignment-operators" "^7.13.8"
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8"
|
||||
"@babel/plugin-proposal-numeric-separator" "^7.12.13"
|
||||
"@babel/plugin-proposal-object-rest-spread" "^7.13.8"
|
||||
"@babel/plugin-proposal-optional-catch-binding" "^7.13.8"
|
||||
"@babel/plugin-proposal-optional-chaining" "^7.13.12"
|
||||
"@babel/plugin-proposal-class-static-block" "^7.14.3"
|
||||
"@babel/plugin-proposal-dynamic-import" "^7.14.2"
|
||||
"@babel/plugin-proposal-export-namespace-from" "^7.14.2"
|
||||
"@babel/plugin-proposal-json-strings" "^7.14.2"
|
||||
"@babel/plugin-proposal-logical-assignment-operators" "^7.14.2"
|
||||
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2"
|
||||
"@babel/plugin-proposal-numeric-separator" "^7.14.2"
|
||||
"@babel/plugin-proposal-object-rest-spread" "^7.14.4"
|
||||
"@babel/plugin-proposal-optional-catch-binding" "^7.14.2"
|
||||
"@babel/plugin-proposal-optional-chaining" "^7.14.2"
|
||||
"@babel/plugin-proposal-private-methods" "^7.13.0"
|
||||
"@babel/plugin-proposal-private-property-in-object" "^7.14.0"
|
||||
"@babel/plugin-proposal-unicode-property-regex" "^7.12.13"
|
||||
"@babel/plugin-syntax-async-generators" "^7.8.4"
|
||||
"@babel/plugin-syntax-class-properties" "^7.12.13"
|
||||
"@babel/plugin-syntax-class-static-block" "^7.12.13"
|
||||
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
|
||||
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
|
||||
"@babel/plugin-syntax-json-strings" "^7.8.3"
|
||||
|
@ -772,14 +872,15 @@
|
|||
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
|
||||
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
|
||||
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
|
||||
"@babel/plugin-syntax-private-property-in-object" "^7.14.0"
|
||||
"@babel/plugin-syntax-top-level-await" "^7.12.13"
|
||||
"@babel/plugin-transform-arrow-functions" "^7.13.0"
|
||||
"@babel/plugin-transform-async-to-generator" "^7.13.0"
|
||||
"@babel/plugin-transform-block-scoped-functions" "^7.12.13"
|
||||
"@babel/plugin-transform-block-scoping" "^7.12.13"
|
||||
"@babel/plugin-transform-classes" "^7.13.0"
|
||||
"@babel/plugin-transform-block-scoping" "^7.14.4"
|
||||
"@babel/plugin-transform-classes" "^7.14.4"
|
||||
"@babel/plugin-transform-computed-properties" "^7.13.0"
|
||||
"@babel/plugin-transform-destructuring" "^7.13.0"
|
||||
"@babel/plugin-transform-destructuring" "^7.14.4"
|
||||
"@babel/plugin-transform-dotall-regex" "^7.12.13"
|
||||
"@babel/plugin-transform-duplicate-keys" "^7.12.13"
|
||||
"@babel/plugin-transform-exponentiation-operator" "^7.12.13"
|
||||
|
@ -787,14 +888,14 @@
|
|||
"@babel/plugin-transform-function-name" "^7.12.13"
|
||||
"@babel/plugin-transform-literals" "^7.12.13"
|
||||
"@babel/plugin-transform-member-expression-literals" "^7.12.13"
|
||||
"@babel/plugin-transform-modules-amd" "^7.13.0"
|
||||
"@babel/plugin-transform-modules-commonjs" "^7.13.8"
|
||||
"@babel/plugin-transform-modules-amd" "^7.14.2"
|
||||
"@babel/plugin-transform-modules-commonjs" "^7.14.0"
|
||||
"@babel/plugin-transform-modules-systemjs" "^7.13.8"
|
||||
"@babel/plugin-transform-modules-umd" "^7.13.0"
|
||||
"@babel/plugin-transform-modules-umd" "^7.14.0"
|
||||
"@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13"
|
||||
"@babel/plugin-transform-new-target" "^7.12.13"
|
||||
"@babel/plugin-transform-object-super" "^7.12.13"
|
||||
"@babel/plugin-transform-parameters" "^7.13.0"
|
||||
"@babel/plugin-transform-parameters" "^7.14.2"
|
||||
"@babel/plugin-transform-property-literals" "^7.12.13"
|
||||
"@babel/plugin-transform-regenerator" "^7.13.15"
|
||||
"@babel/plugin-transform-reserved-words" "^7.12.13"
|
||||
|
@ -806,7 +907,7 @@
|
|||
"@babel/plugin-transform-unicode-escapes" "^7.12.13"
|
||||
"@babel/plugin-transform-unicode-regex" "^7.12.13"
|
||||
"@babel/preset-modules" "^0.1.4"
|
||||
"@babel/types" "^7.13.14"
|
||||
"@babel/types" "^7.14.4"
|
||||
babel-plugin-polyfill-corejs2 "^0.2.0"
|
||||
babel-plugin-polyfill-corejs3 "^0.2.0"
|
||||
babel-plugin-polyfill-regenerator "^0.2.0"
|
||||
|
@ -863,12 +964,26 @@
|
|||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.4.4":
|
||||
version "7.13.17"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.17.tgz#48010a115c9fba7588b4437dd68c9469012b38b4"
|
||||
integrity sha512-RawydLgxbOPDlTLJNtoIypwdmAy//uQIzlKt2+iBiJaRlVuI6QLUxVAyWGNfOzp8Yu4L4lLIacoCyTNtpb4wiA==
|
||||
"@babel/traverse@^7.14.2":
|
||||
version "7.14.2"
|
||||
resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b"
|
||||
integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.12.11"
|
||||
"@babel/code-frame" "^7.12.13"
|
||||
"@babel/generator" "^7.14.2"
|
||||
"@babel/helper-function-name" "^7.14.2"
|
||||
"@babel/helper-split-export-declaration" "^7.12.13"
|
||||
"@babel/parser" "^7.14.2"
|
||||
"@babel/types" "^7.14.2"
|
||||
debug "^4.1.0"
|
||||
globals "^11.1.0"
|
||||
|
||||
"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.14", "@babel/types@^7.13.16", "@babel/types@^7.13.17", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.4.4":
|
||||
version "7.14.4"
|
||||
resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0"
|
||||
integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==
|
||||
dependencies:
|
||||
"@babel/helper-validator-identifier" "^7.14.0"
|
||||
to-fast-properties "^2.0.0"
|
||||
|
||||
"@discord-player/extractor@^3.0.0":
|
||||
|
@ -940,18 +1055,10 @@
|
|||
resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82"
|
||||
integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==
|
||||
|
||||
"@types/node-fetch@^2.5.10":
|
||||
version "2.5.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.10.tgz#9b4d4a0425562f9fcea70b12cb3fcdd946ca8132"
|
||||
integrity sha512-IpkX0AasN44hgEad0gEF/V6EgR5n69VEqPEgnmoM8GsIGro3PowbWs4tR6IhxUTyPLpOn+fiGG6nrQhcmoCuIQ==
|
||||
dependencies:
|
||||
"@types/node" "*"
|
||||
form-data "^3.0.0"
|
||||
|
||||
"@types/node@*", "@types/node@^14.14.41":
|
||||
version "14.14.41"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.41.tgz#d0b939d94c1d7bd53d04824af45f1139b8c45615"
|
||||
integrity sha512-dueRKfaJL4RTtSa7bWeTK1M+VH+Gns73oCgzvYfHZywRCoPSd8EkXBL0mZ9unPTveBn+D9phZBaxuzpwjWkW0g==
|
||||
"@types/node@*", "@types/node@^15.6.1":
|
||||
version "15.6.1"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-15.6.1.tgz#32d43390d5c62c5b6ec486a9bc9c59544de39a08"
|
||||
integrity sha512-7EIraBEyRHEe7CH+Fm1XvgqU6uwZN8Q7jppJGcqjROMT29qhAuuOxYB1uEY5UMYQKEmA5D+5tBnhdaPXSsLONA==
|
||||
|
||||
"@types/ws@^7.4.1":
|
||||
version "7.4.1"
|
||||
|
@ -1316,7 +1423,7 @@ browser-process-hrtime@^1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
|
||||
integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
|
||||
|
||||
browserslist@^4.14.5, browserslist@^4.16.4:
|
||||
browserslist@^4.16.4, browserslist@^4.16.6:
|
||||
version "4.16.6"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2"
|
||||
integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==
|
||||
|
@ -1638,7 +1745,7 @@ core-util-is@1.0.2, core-util-is@~1.0.0:
|
|||
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
|
||||
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
|
||||
|
||||
cross-fetch@^3.0.5:
|
||||
cross-fetch@~3.1.4:
|
||||
version "3.1.4"
|
||||
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.4.tgz#9723f3a3a247bf8b89039f3a380a9244e8fa2f39"
|
||||
integrity sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==
|
||||
|
@ -1793,10 +1900,10 @@ diff@^4.0.1:
|
|||
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
||||
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
||||
|
||||
discord-ytdl-core@^5.0.3:
|
||||
version "5.0.3"
|
||||
resolved "https://registry.yarnpkg.com/discord-ytdl-core/-/discord-ytdl-core-5.0.3.tgz#a31560f0bede41d6fc969377083ae958deac2b72"
|
||||
integrity sha512-q4GOEFiV19l0OcPezXnkDWualf+n96LcbTEWReceiDHdx4xxn5CXZX9PR4iDTXQR3Kv2VUkwB8RO8dI50d88vQ==
|
||||
discord-ytdl-core@^5.0.4:
|
||||
version "5.0.4"
|
||||
resolved "https://registry.yarnpkg.com/discord-ytdl-core/-/discord-ytdl-core-5.0.4.tgz#84a2af1a8e8c235b4fc109b23350d12782ab66cd"
|
||||
integrity sha512-O+G9wuCw5TERR9iHZFMYnYQbs/ZGudDc9cxa1OKSV5TdcBYrHGS1JqvE90ZvSQ6SmS4XvqtOf/Okls6yiGJ3sg==
|
||||
dependencies:
|
||||
prism-media "^1.2.9"
|
||||
|
||||
|
@ -1911,9 +2018,9 @@ ecc-jsbn@~0.1.1:
|
|||
safer-buffer "^2.1.0"
|
||||
|
||||
electron-to-chromium@^1.3.723:
|
||||
version "1.3.740"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.740.tgz#e38b7d2b848f632191b643e6dabca51be2162922"
|
||||
integrity sha512-Mi2m55JrX2BFbNZGKYR+2ItcGnR4O5HhrvgoRRyZQlaMGQULqDhoGkLWHzJoshSzi7k1PUofxcDbNhlFrDZNhg==
|
||||
version "1.3.742"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.742.tgz#7223215acbbd3a5284962ebcb6df85d88b95f200"
|
||||
integrity sha512-ihL14knI9FikJmH2XUIDdZFWJxvr14rPSdOhJ7PpS27xbz8qmaRwCwyg/bmFwjWKmWK9QyamiCZVCvXm5CH//Q==
|
||||
|
||||
emoji-regex@^7.0.1:
|
||||
version "7.0.3"
|
||||
|
@ -2244,15 +2351,6 @@ forever-agent@~0.6.1:
|
|||
resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
|
||||
integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
|
||||
|
||||
form-data@^3.0.0:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f"
|
||||
integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
form-data@~2.3.2:
|
||||
version "2.3.3"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
|
||||
|
@ -2486,7 +2584,7 @@ has@^1.0.3:
|
|||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
himalaya@^1.1.0:
|
||||
himalaya@~1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/himalaya/-/himalaya-1.1.0.tgz#31724ae9d35714cd7c6f4be94888953f3604606a"
|
||||
integrity sha512-LLase1dHCRMel68/HZTFft0N0wti0epHr3nNY7ynpLbyZpmrKMQ8YIpiOV77TM97cNpC8Wb2n6f66IRggwdWPw==
|
||||
|
@ -3961,19 +4059,19 @@ split-string@^3.0.1, split-string@^3.0.2:
|
|||
dependencies:
|
||||
extend-shallow "^3.0.0"
|
||||
|
||||
spotify-uri@^2.1.0:
|
||||
spotify-uri@~2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/spotify-uri/-/spotify-uri-2.2.0.tgz#8db641615cf6e122284874287fe39e89595922df"
|
||||
integrity sha512-uUybj02bfyfCoZ0MJ80MkqbKxtIVRJfbRGk05KJFq1li3zb7yNfN1f+TAw4wcXgp7jLWExeiw2wyPQXZ8PHtfg==
|
||||
|
||||
spotify-url-info@^2.2.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/spotify-url-info/-/spotify-url-info-2.2.0.tgz#7d14adbae65b54b918c46e2dcfdf02b1146f85c8"
|
||||
integrity sha512-GEMoMf2RF+CSPsSGstY/9c7dgViKOKJ09bFZTwrU4KzQ+JpLq+0Ho4eMCeeGmES94yjBz+GHMtBfTcp+4DxEbA==
|
||||
spotify-url-info@^2.2.3:
|
||||
version "2.2.3"
|
||||
resolved "https://registry.yarnpkg.com/spotify-url-info/-/spotify-url-info-2.2.3.tgz#2f08400479f00472fb488eff4bd3c485db99361a"
|
||||
integrity sha512-cZTE5nOnaAjIiaHG9psVYqKXWOlNUIgSU2e+bNInRaYZNgmVgOcKH0D7V1nSER3gv3h5BXvOo0EJTtrMQQo1bA==
|
||||
dependencies:
|
||||
cross-fetch "^3.0.5"
|
||||
himalaya "^1.1.0"
|
||||
spotify-uri "^2.1.0"
|
||||
cross-fetch "~3.1.4"
|
||||
himalaya "~1.1.0"
|
||||
spotify-uri "~2.2.0"
|
||||
|
||||
sprintf-js@~1.0.2:
|
||||
version "1.0.3"
|
||||
|
@ -4340,9 +4438,9 @@ type-fest@^0.8.1:
|
|||
integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==
|
||||
|
||||
typescript@^4.2.3:
|
||||
version "4.2.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.2.3.tgz#39062d8019912d43726298f09493d598048c1ce3"
|
||||
integrity sha512-qOcYwxaByStAWrBf4x0fibwZvMRG+r4cQoTjbPtUlrWjBHbmCAww1i448U0GJ+3cNNEtebDteo/cHOR3xJ4wEw==
|
||||
version "4.3.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.2.tgz#399ab18aac45802d6f2498de5054fcbbe716a805"
|
||||
integrity sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==
|
||||
|
||||
typical@^2.4.2, typical@^2.6.0, typical@^2.6.1:
|
||||
version "2.6.1"
|
||||
|
@ -4634,18 +4732,17 @@ yargs@^14.0.0:
|
|||
y18n "^4.0.0"
|
||||
yargs-parser "^15.0.1"
|
||||
|
||||
youtube-sr@^4.0.7:
|
||||
version "4.0.7"
|
||||
resolved "https://registry.yarnpkg.com/youtube-sr/-/youtube-sr-4.0.7.tgz#156137713a5df2d02c0698fd819fca2249f3a9f3"
|
||||
integrity sha512-s05pA+NgD0iPw97XtRXiy5GaEbYyIVsfArmGO5UfvSO5etrG6DxAs1uKqTFbQH4IGTqMsb82M14iB5ohkOD2Mw==
|
||||
youtube-sr@^4.1.5:
|
||||
version "4.1.5"
|
||||
resolved "https://registry.yarnpkg.com/youtube-sr/-/youtube-sr-4.1.5.tgz#f35627574a47b6d5b39dec792e8bb00f93e04809"
|
||||
integrity sha512-yLTtjy8ougH6ReCEsCRN9mxgS+rcm44421pYxown3QR9bUivNjxkYwB1+OfW+Z9V9hBE/chp9y7SBpK63vrk7g==
|
||||
dependencies:
|
||||
"@types/node-fetch" "^2.5.10"
|
||||
node-fetch "^2.6.1"
|
||||
|
||||
ytdl-core@^4.8.0:
|
||||
version "4.8.0"
|
||||
resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-4.8.0.tgz#d9f037a370a4b984f1f937e7a11b4531e8959443"
|
||||
integrity sha512-LFhhwqFojReoaME17VpsFeiamygM0W/YNG8O02mrmS2O6Em5LjCPiJYdq7Af3CmJtBEOCdptSZ3Ql+3LGWDGvg==
|
||||
ytdl-core@^4.8.2:
|
||||
version "4.8.2"
|
||||
resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-4.8.2.tgz#f034ad942c5d958f5987fc8ff0b0639664ae2fb7"
|
||||
integrity sha512-O3n++YcgZawaXJwbPmnRDgfN6b4kU0DpNdkI9Na5yM3JAdfJmoq5UHc8v9Xjgjr1RilQUUh7mhDnRRPDtKr0Kg==
|
||||
dependencies:
|
||||
m3u8stream "^0.8.3"
|
||||
miniget "^4.0.0"
|
||||
|
|
Loading…
Reference in a new issue