From 4e1a156f9be48eaefbd3f6dc09f302db7deaddb2 Mon Sep 17 00:00:00 2001 From: Max Isom Date: Wed, 25 Mar 2020 17:59:09 -0500 Subject: [PATCH] Bump dependencies --- package.json | 22 +++--- src/bot.ts | 2 +- src/events/guild-create.ts | 6 +- src/packages.d.ts | 22 +++++- src/services/get-songs.ts | 14 +++- src/services/player.ts | 6 +- yarn.lock | 139 +++++++++++++++++++------------------ 7 files changed, 121 insertions(+), 90 deletions(-) diff --git a/package.json b/package.json index 580f85c..e29e5e2 100644 --- a/package.json +++ b/package.json @@ -30,18 +30,19 @@ "@types/fluent-ffmpeg": "^2.1.14", "@types/fs-capacitor": "^2.0.0", "@types/node": "^13.9.1", + "@types/node-emoji": "^1.8.1", "@types/spotify-web-api-node": "^4.0.1", "@types/validator": "^12.0.1", - "@types/ws": "^7.2.2", - "@typescript-eslint/eslint-plugin": "^2.24.0", - "@typescript-eslint/parser": "^2.24.0", + "@types/ws": "^7.2.3", + "@typescript-eslint/eslint-plugin": "^2.25.0", + "@typescript-eslint/parser": "^2.25.0", "eslint": "^6.8.0", "eslint-config-xo": "^0.29.1", - "eslint-config-xo-typescript": "^0.26.0", + "eslint-config-xo-typescript": "^0.27.0", "husky": "^4.2.3", "nodemon": "^2.0.2", "reflect-metadata": "^0.1.13", - "ts-node": "^8.6.2", + "ts-node": "^8.8.1", "typescript": "^3.8.3" }, "eslintConfig": { @@ -56,7 +57,8 @@ "rules": { "new-cap": "off", "@typescript-eslint/no-unused-vars": "off", - "@typescript-eslint/no-unused-vars-experimental": "error" + "@typescript-eslint/no-unused-vars-experimental": "error", + "@typescript-eslint/prefer-readonly-parameter-types": "off" } }, "husky": { @@ -74,7 +76,7 @@ "fluent-ffmpeg": "^2.1.2", "fs-capacitor": "^6.1.0", "get-youtube-id": "^1.0.1", - "got": "^10.6.0", + "got": "^10.7.0", "hasha": "^5.2.0", "inversify": "^5.0.1", "iso8601-duration": "^1.2.0", @@ -87,8 +89,8 @@ "spotify-web-api-node": "^4.0.0", "sqlite3": "^4.1.1", "unique-random-array": "^2.0.0", - "youtube.ts": "^0.1.1", - "ytdl-core": "^2.0.0", - "ytsr": "^0.1.11" + "youtube.ts": "^0.1.3", + "ytdl-core": "^2.0.1", + "ytsr": "^0.1.12" } } diff --git a/src/bot.ts b/src/bot.ts index 4ddbfcb..de59ed2 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -91,7 +91,7 @@ export default class { await handler.execute(msg, args); } catch (error) { debug(error); - await msg.channel.send(errorMsg(error.message.toLowerCase())); + await msg.channel.send(errorMsg((error as Error).message.toLowerCase())); } }); diff --git a/src/events/guild-create.ts b/src/events/guild-create.ts index 3675b2c..e842b13 100644 --- a/src/events/guild-create.ts +++ b/src/events/guild-create.ts @@ -1,4 +1,4 @@ -import {Guild, MessageReaction, TextChannel} from 'discord.js'; +import {Guild, MessageReaction, TextChannel, User, Message} from 'discord.js'; import emoji from 'node-emoji'; import {Settings} from '../models'; @@ -45,7 +45,7 @@ export default async (guild: Guild): Promise => { await msg.react(channel.emoji); } - const reactions = await msg.awaitReactions((reaction, user) => user.id !== msg.author.id && emojiChannels.map(e => e.emoji).includes(reaction.emoji.name), {max: 1}); + const reactions = await msg.awaitReactions((reaction: MessageReaction, user: User) => user.id !== msg.author.id && emojiChannels.map(e => e.emoji).includes(reaction.emoji.name), {max: 1}); const choice = reactions.first() as MessageReaction; @@ -57,7 +57,7 @@ export default async (guild: Guild): Promise => { await owner.send(secondStep); - const prefixResponses = await msg.channel.awaitMessages(r => r.content.length === 1, {max: 1}); + const prefixResponses = await msg.channel.awaitMessages((r: Message) => r.content.length === 1, {max: 1}); const prefixCharacter = prefixResponses.first()!.content; diff --git a/src/packages.d.ts b/src/packages.d.ts index 7e199a3..14bbeed 100644 --- a/src/packages.d.ts +++ b/src/packages.d.ts @@ -1,3 +1,19 @@ -declare module 'node-emoji'; -declare module 'ytsr'; -declare module 'array-shuffle'; +declare module 'ytsr' { + interface VideoResult { + title: string; + duration: string; + link: string; + live: boolean; + type: string; + } + + interface SearchResult { + items: VideoResult[]; + } + + export default function (search: string, options: object): Promise; +} + +declare module 'array-shuffle' { + export default function (arr: T[]): T[]; +} diff --git a/src/services/get-songs.ts b/src/services/get-songs.ts index 4e8d955..8cbb60c 100644 --- a/src/services/get-songs.ts +++ b/src/services/get-songs.ts @@ -56,8 +56,16 @@ export default class { const playlist = await this.youtube.playlists.get(listId); const {items} = await this.youtube.playlists.items(listId, {maxResults: '50'}); + interface videoResult { + id: string; + contentDetails: { + videoId: string; + duration: string; + }; + } + // Unfortunately, package doesn't provide a method for this - const res: any = await got('https://www.googleapis.com/youtube/v3/videos', {searchParams: { + const {items: videos}: {items: videoResult[]} = await got('https://www.googleapis.com/youtube/v3/videos', {searchParams: { part: 'contentDetails', id: items.map(item => item.contentDetails.videoId).join(','), key: this.youtubeKey @@ -66,7 +74,7 @@ export default class { const queuedPlaylist = {title: playlist.snippet.title, source: playlist.id}; return items.map(video => { - const length = toSeconds(parse(res.items.find((i: any) => i.id === video.contentDetails.videoId).contentDetails.duration)); + const length = toSeconds(parse(videos.find((i: { id: string }) => i.id === video.contentDetails.videoId)!.contentDetails.duration)); return { title: video.snippet.title, @@ -178,7 +186,7 @@ export default class { private async spotifyToYouTube(track: SpotifyApi.TrackObjectSimplified, playlist: QueuedPlaylist | null): Promise { try { const {items} = await ytsr(`"${track.name}" "${track.artists[0].name}" offical`, {limit: 5}); - const video = items.find((item: { type: string }) => item.type === 'video'); + const video = items.find(item => item.type === 'video'); if (!video) { throw new Error('No video found for query.'); diff --git a/src/services/player.ts b/src/services/player.ts index ad25744..074fe5d 100644 --- a/src/services/player.ts +++ b/src/services/player.ts @@ -238,7 +238,9 @@ export default class { } shuffle(): void { - this.queue = [...this.queue.slice(0, this.queuePosition + 1), ...shuffle(this.queue.slice(this.queuePosition + 1))]; + const shuffledSongs = shuffle(this.queue.slice(this.queuePosition + 1)); + + this.queue = [...this.queue.slice(0, this.queuePosition + 1), ...shuffledSongs]; } clear(): void { @@ -306,7 +308,7 @@ export default class { const nextBestFormat = (formats: ytdl.videoFormat[]): ytdl.videoFormat | undefined => { if (formats[0].live) { - formats = formats.sort((a, b) => (b as any).audioBitrate - (a as any).audioBitrate); // Bad typings + formats = formats.sort((a, b) => (b as unknown as {audioBitrate: number}).audioBitrate - (a as unknown as {audioBitrate: number}).audioBitrate); // Bad typings return formats.find(format => [128, 127, 120, 96, 95, 94, 93].includes(parseInt(format.itag as unknown as string, 10))); // Bad typings } diff --git a/yarn.lock b/yarn.lock index dd1c0be..00609cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -111,7 +111,12 @@ dependencies: "@types/node" "*" -"@types/node@*", "@types/node@^13.5.3": +"@types/node-emoji@^1.8.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@types/node-emoji/-/node-emoji-1.8.1.tgz#689cb74fdf6e84309bcafce93a135dfecd01de3f" + integrity sha512-0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA== + +"@types/node@*": version "13.9.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.0.tgz#5b6ee7a77faacddd7de719017d0bc12f52f81589" integrity sha512-0ARSQootUG1RljH2HncpsY2TJBfGQIKOOi7kxzUY6z54ePu/ZD+wJA8zI2Q6v8rol2qpG/rvqsReco8zNMPvhQ== @@ -150,47 +155,47 @@ resolved "https://registry.yarnpkg.com/@types/validator/-/validator-12.0.1.tgz#73dbc7f5f730ff7131754bca682824eb3c260b79" integrity sha512-l57fIANZLMe8DArz+SDb+7ATXnDm15P7u2wHBw5mb0aSMd+UuvmvhouBF2hdLgQPDMJ39sh9g2MJO4GkZ0VAdQ== -"@types/ws@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.2.tgz#1bd2038bc80aea60f8a20b2dcf08602a72e65063" - integrity sha512-oqnI3DbGCVI9zJ/WHdFo3CUE8jQ8CVQDUIKaDtlTcNeT4zs6UCg9Gvk5QrFx2QPkRszpM6yc8o0p4aGjCsTi+w== +"@types/ws@^7.2.3": + version "7.2.3" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.2.3.tgz#a3add56077ac6cc9396b9502c7252a1635922032" + integrity sha512-VT/GK7nvDA7lfHy40G3LKM+ICqmdIsBLBHGXcWD97MtqQEjNMX+7Gudo8YGpaSlYdTX7IFThhCE8Jx09HegymQ== dependencies: "@types/node" "*" -"@typescript-eslint/eslint-plugin@^2.24.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68" - integrity sha512-wJRBeaMeT7RLQ27UQkDFOu25MqFOBus8PtOa9KaT5ZuxC1kAsd7JEHqWt4YXuY9eancX0GK9C68i5OROnlIzBA== +"@typescript-eslint/eslint-plugin@^2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.25.0.tgz#0b60917332f20dcff54d0eb9be2a9e9f4c9fbd02" + integrity sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw== dependencies: - "@typescript-eslint/experimental-utils" "2.24.0" - eslint-utils "^1.4.3" + "@typescript-eslint/experimental-utils" "2.25.0" functional-red-black-tree "^1.0.1" regexpp "^3.0.0" tsutils "^3.17.1" -"@typescript-eslint/experimental-utils@2.24.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.24.0.tgz#a5cb2ed89fedf8b59638dc83484eb0c8c35e1143" - integrity sha512-DXrwuXTdVh3ycNCMYmWhUzn/gfqu9N0VzNnahjiDJvcyhfBy4gb59ncVZVxdp5XzBC77dCncu0daQgOkbvPwBw== +"@typescript-eslint/experimental-utils@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz#13691c4fe368bd377b1e5b1e4ad660b220bf7714" + integrity sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw== dependencies: "@types/json-schema" "^7.0.3" - "@typescript-eslint/typescript-estree" "2.24.0" + "@typescript-eslint/typescript-estree" "2.25.0" eslint-scope "^5.0.0" + eslint-utils "^2.0.0" -"@typescript-eslint/parser@^2.24.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.24.0.tgz#2cf0eae6e6dd44d162486ad949c126b887f11eb8" - integrity sha512-H2Y7uacwSSg8IbVxdYExSI3T7uM1DzmOn2COGtCahCC3g8YtM1xYAPi2MAHyfPs61VKxP/J/UiSctcRgw4G8aw== +"@typescript-eslint/parser@^2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.25.0.tgz#abfb3d999084824d9a756d9b9c0f36fba03adb76" + integrity sha512-mccBLaBSpNVgp191CP5W+8U1crTyXsRziWliCqzj02kpxdjKMvFHGJbK33NroquH3zB/gZ8H511HEsJBa2fNEg== dependencies: "@types/eslint-visitor-keys" "^1.0.0" - "@typescript-eslint/experimental-utils" "2.24.0" - "@typescript-eslint/typescript-estree" "2.24.0" + "@typescript-eslint/experimental-utils" "2.25.0" + "@typescript-eslint/typescript-estree" "2.25.0" eslint-visitor-keys "^1.1.0" -"@typescript-eslint/typescript-estree@2.24.0": - version "2.24.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.24.0.tgz#38bbc8bb479790d2f324797ffbcdb346d897c62a" - integrity sha512-RJ0yMe5owMSix55qX7Mi9V6z2FDuuDpN6eR5fzRJrp+8in9UF41IGNQHbg5aMK4/PjVaEQksLvz0IA8n+Mr/FA== +"@typescript-eslint/typescript-estree@2.25.0": + version "2.25.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz#b790497556734b7476fa7dd3fa539955a5c79e2c" + integrity sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg== dependencies: debug "^4.1.1" eslint-visitor-keys "^1.1.0" @@ -835,10 +840,10 @@ escape-string-regexp@^1.0.5: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= -eslint-config-xo-typescript@^0.26.0: - version "0.26.0" - resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.26.0.tgz#c9e337d07f2b571d6fabe00b8fd31f117c9d2943" - integrity sha512-0bBfXLQX5F7JgJx5HIrSx3bGZk2D8W0uhYXB0jv6L0ztmWl4yqfCn6J4zgjUqMCsahHIjyaafBWrnc6eVaETWg== +eslint-config-xo-typescript@^0.27.0: + version "0.27.0" + resolved "https://registry.yarnpkg.com/eslint-config-xo-typescript/-/eslint-config-xo-typescript-0.27.0.tgz#9b9febe1f673af9ba936b85f5e5b8669f2505f67" + integrity sha512-aBRN8Nb6sc5oFIIuJoqr9uGCPGkVAVU2sRKN/RQ3iDt0AdrI/jgbgRQXpsAf3V8oK2013satUokRbHG6e7mrkQ== eslint-config-xo@^0.29.1: version "0.29.1" @@ -862,6 +867,13 @@ eslint-utils@^1.4.3: dependencies: eslint-visitor-keys "^1.1.0" +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + eslint-visitor-keys@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" @@ -1217,10 +1229,10 @@ globals@^12.1.0: dependencies: type-fest "^0.8.1" -got@^10.6.0: - version "10.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-10.6.0.tgz#ac3876261a4d8e5fc4f81186f79955ce7b0501dc" - integrity sha512-3LIdJNTdCFbbJc+h/EH0V5lpNpbJ6Bfwykk21lcQvQsEcrzdi/ltCyQehFHLzJ/ka0UMH4Slg0hkYvAZN9qUDg== +got@^10.7.0: + version "10.7.0" + resolved "https://registry.yarnpkg.com/got/-/got-10.7.0.tgz#62889dbcd6cca32cd6a154cc2d0c6895121d091f" + integrity sha512-aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg== dependencies: "@sindresorhus/is" "^2.0.0" "@szmarczak/http-timer" "^4.0.0" @@ -1737,7 +1749,7 @@ mimic-response@^2.0.0, mimic-response@^2.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-2.1.0.tgz#d13763d35f613d09ec37ebb30bac0469c0ee8f43" integrity sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA== -miniget@^1.6.0, miniget@^1.6.1: +miniget@^1.6.0, miniget@^1.6.1, miniget@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/miniget/-/miniget-1.7.0.tgz#a29eb79ebff479e9efafd271616981c603987875" integrity sha512-yrgaDSMRzrfYTkudB4Y6xK8pCb7oAH2bvfv6iPY2m6CedZfs9yK4b/ofh0Vzv08hCYXH/HHkoS8an6fkWtOAQA== @@ -2158,7 +2170,7 @@ prepend-http@^1.0.1: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prism-media@^1.0.1, prism-media@^1.2.0: +prism-media@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/prism-media/-/prism-media-1.2.1.tgz#168f323712bcaacb1d70ae613bf9d9dc44cf43d4" integrity sha512-R3EbKwJiYlTvGwcG1DpUt+06DsxOGS5W4AMEHT7oVOjG93MjpdhGX1whHyjnqknylLMupKAsKMEXcTNRbPe6Vw== @@ -2736,10 +2748,10 @@ tough-cookie@~2.5.0: psl "^1.1.28" punycode "^2.1.1" -ts-node@^8.6.2: - version "8.6.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.6.2.tgz#7419a01391a818fbafa6f826a33c1a13e9464e35" - integrity sha512-4mZEbofxGqLL2RImpe3zMJukvEvcO1XP8bj8ozBPySdCUXEcU5cIRwR0aM3R+VoZq7iXc8N86NC0FspGRqP4gg== +ts-node@^8.8.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.8.1.tgz#7c4d3e9ed33aa703b64b28d7f9d194768be5064d" + integrity sha512-10DE9ONho06QORKAaCBpPiFCdW+tZJuY/84tyypGtl6r+/C7Asq0dhqbRZURuUlLQtZxxDvT8eoj8cGW0ha6Bg== dependencies: arg "^4.1.0" diff "^4.0.1" @@ -2984,32 +2996,13 @@ yn@3.1.1: resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== -youtube.ts@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/youtube.ts/-/youtube.ts-0.1.1.tgz#be5473f58bbc869141039c2cc09038c1b0279bf0" - integrity sha512-zzOiI1WAENysG/XOx6p9ATD+nvJYkSM6DG7H41NEzEmx2yLvCyfRtBJAvJ+xPGYJE8rx7QMxg8C/ga4WXCHwag== +youtube.ts@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/youtube.ts/-/youtube.ts-0.1.3.tgz#b34380d867e6c76cac700ff59b961e21f634c7f5" + integrity sha512-7M1KWnE2we4PrgYBuqwMzFOwoO+dDxcA7DgURmZLiM4duolSWvfYV/e8aIRrnWrm7+u6+098T/PVdXe5mVAnlQ== dependencies: axios "^0.19.0" - ytdl-core-discord "^1.1.0" - -ytdl-core-discord@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ytdl-core-discord/-/ytdl-core-discord-1.1.0.tgz#1276ef3895b773a3eafa4fe323495b41b715b9e1" - integrity sha512-uiaZWa9UG+he1F9p7Si9H6Tieyxd9dEhLi4958mHuebudQSEEPaaJHUEbFikcpB++5ogzynVOcvdeC+LFJGgEw== - dependencies: - "@types/node" "^13.5.3" - prism-media "^1.0.1" - ytdl-core "^1.0.3" - -ytdl-core@^1.0.3: - version "1.0.9" - resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-1.0.9.tgz#938d5bf5f2baf901b04ffe41d4444fba72ba283a" - integrity sha512-HhFeLfjXU34h0FNHmSkSpKygdaYijSt8VNsC770VYBRFb+dyUKcm11cIKxu2MUSwT9znISZ0k1wFdaV/N5VW+Q== - dependencies: - html-entities "^1.1.3" - m3u8stream "^0.6.3" - miniget "^1.6.0" - sax "^1.1.3" + ytdl-core "^2.0.0" ytdl-core@^2.0.0: version "2.0.0" @@ -3021,9 +3014,19 @@ ytdl-core@^2.0.0: miniget "^1.6.0" sax "^1.1.3" -ytsr@^0.1.11: - version "0.1.11" - resolved "https://registry.yarnpkg.com/ytsr/-/ytsr-0.1.11.tgz#223041db1f610b9c4453e4be63764a775e0c74ba" - integrity sha512-f7RILud27ufqsw3+Zi0J5itQ7qOt7BzN2EhqQARFhZq9HdxrlSfwvymiO/wvzFALCR2bgyxfz/cJhWyjUlokCA== +ytdl-core@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ytdl-core/-/ytdl-core-2.0.1.tgz#10987476aea27fc87b2053aa59479f5608a6f33f" + integrity sha512-PZBcVzQpkBxi9OQh9I4QIrYNmkbM/zh4QJQuxE8I6RojLUVYkkps5iLYquE3H+pwmBXtEXQMDJfVRajgdiz+iA== + dependencies: + html-entities "^1.1.3" + m3u8stream "^0.6.3" + miniget "^1.7.0" + sax "^1.1.3" + +ytsr@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/ytsr/-/ytsr-0.1.12.tgz#a103e466bbefd166bec636f1b7cf874ba1cfe345" + integrity sha512-j+VUakSps8qTF6JBXUJuP7WXDxTxID7e3W7AdslZvMACm9id69e2XFS4iCkMr8bsa77B11JKsnyvnW6CQShk6g== dependencies: html-entities "^1.1.3"