distube 3.0.0-beta.35 → 3.0.0-beta.39
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -3
- package/dist/DisTube.d.ts +78 -57
- package/dist/DisTube.d.ts.map +1 -1
- package/dist/DisTube.js +87 -87
- package/dist/DisTube.js.map +1 -1
- package/dist/constant.d.ts +43 -10
- package/dist/constant.d.ts.map +1 -1
- package/dist/constant.js +45 -11
- package/dist/constant.js.map +1 -1
- package/dist/core/DisTubeBase.d.ts +7 -13
- package/dist/core/DisTubeBase.d.ts.map +1 -1
- package/dist/core/DisTubeBase.js +4 -9
- package/dist/core/DisTubeBase.js.map +1 -1
- package/dist/core/DisTubeHandler.d.ts +9 -4
- package/dist/core/DisTubeHandler.d.ts.map +1 -1
- package/dist/core/DisTubeHandler.js +56 -10
- package/dist/core/DisTubeHandler.js.map +1 -1
- package/dist/core/DisTubeOptions.d.ts +0 -18
- package/dist/core/DisTubeOptions.d.ts.map +1 -1
- package/dist/core/DisTubeOptions.js +4 -1
- package/dist/core/DisTubeOptions.js.map +1 -1
- package/dist/core/DisTubeStream.d.ts +5 -2
- package/dist/core/DisTubeStream.d.ts.map +1 -1
- package/dist/core/DisTubeStream.js +23 -21
- package/dist/core/DisTubeStream.js.map +1 -1
- package/dist/core/manager/BaseManager.d.ts +2 -3
- package/dist/core/manager/BaseManager.d.ts.map +1 -1
- package/dist/core/manager/BaseManager.js +3 -3
- package/dist/core/manager/BaseManager.js.map +1 -1
- package/dist/core/manager/QueueManager.d.ts +2 -2
- package/dist/core/manager/QueueManager.d.ts.map +1 -1
- package/dist/core/manager/QueueManager.js +25 -22
- package/dist/core/manager/QueueManager.js.map +1 -1
- package/dist/core/voice/DisTubeVoice.d.ts +15 -15
- package/dist/core/voice/DisTubeVoice.d.ts.map +1 -1
- package/dist/core/voice/DisTubeVoice.js +27 -16
- package/dist/core/voice/DisTubeVoice.js.map +1 -1
- package/dist/core/voice/DisTubeVoiceManager.js +1 -1
- package/dist/core/voice/DisTubeVoiceManager.js.map +1 -1
- package/dist/plugin/http.js +2 -2
- package/dist/plugin/http.js.map +1 -1
- package/dist/plugin/https.js +3 -3
- package/dist/plugin/https.js.map +1 -1
- package/dist/plugin/youtube-dl.js +3 -3
- package/dist/plugin/youtube-dl.js.map +1 -1
- package/dist/struct/CustomPlugin.d.ts +17 -14
- package/dist/struct/CustomPlugin.d.ts.map +1 -1
- package/dist/struct/CustomPlugin.js +16 -16
- package/dist/struct/CustomPlugin.js.map +1 -1
- package/dist/struct/DisTubeError.d.ts +12 -3
- package/dist/struct/DisTubeError.d.ts.map +1 -1
- package/dist/struct/DisTubeError.js +11 -12
- package/dist/struct/DisTubeError.js.map +1 -1
- package/dist/struct/ExtractorPlugin.d.ts +16 -8
- package/dist/struct/ExtractorPlugin.d.ts.map +1 -1
- package/dist/struct/ExtractorPlugin.js +13 -12
- package/dist/struct/ExtractorPlugin.js.map +1 -1
- package/dist/struct/Playlist.d.ts +2 -3
- package/dist/struct/Playlist.d.ts.map +1 -1
- package/dist/struct/Playlist.js +9 -6
- package/dist/struct/Playlist.js.map +1 -1
- package/dist/struct/Plugin.d.ts +62 -9
- package/dist/struct/Plugin.d.ts.map +1 -1
- package/dist/struct/Plugin.js +73 -14
- package/dist/struct/Plugin.js.map +1 -1
- package/dist/struct/Queue.d.ts +17 -15
- package/dist/struct/Queue.d.ts.map +1 -1
- package/dist/struct/Queue.js +31 -16
- package/dist/struct/Queue.js.map +1 -1
- package/dist/struct/SearchResult.js +2 -2
- package/dist/struct/SearchResult.js.map +1 -1
- package/dist/struct/Song.d.ts +6 -8
- package/dist/struct/Song.d.ts.map +1 -1
- package/dist/struct/Song.js +17 -15
- package/dist/struct/Song.js.map +1 -1
- package/dist/struct/__mocks__/Queue.d.ts +12 -0
- package/dist/struct/__mocks__/Queue.d.ts.map +1 -0
- package/dist/struct/__mocks__/Queue.js +22 -0
- package/dist/struct/__mocks__/Queue.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/type.d.ts +76 -20
- package/dist/type.d.ts.map +1 -1
- package/dist/type.js.map +1 -1
- package/dist/util.d.ts +1 -1
- package/dist/util.d.ts.map +1 -1
- package/dist/util.js +16 -7
- package/dist/util.js.map +1 -1
- package/package.json +30 -28
package/dist/util.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAC3C,OAAO,KAAK,EAEV,MAAM,EACN,aAAa,EACb,KAAK,EACL,WAAW,EAEX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQlD;AACD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAY3C;AACD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAG9C;AACD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CASzC;AACD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAQzD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKnE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,SAAS,CAMpD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,WAAW,CAQnE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAQ1E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,OAAO,CAYlE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,YAAY,GAAG,YAAY,CAgB5F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,KAAK,CAE1D;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,GAAG,CAAC;AAC3C,OAAO,KAAK,EAEV,MAAM,EACN,aAAa,EACb,KAAK,EACL,WAAW,EAEX,OAAO,EACP,SAAS,EACT,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AAIpB;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQlD;AACD;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAY3C;AACD;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAG9C;AACD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,KAAK,EAAE,GAAG,GAAG,OAAO,CASzC;AACD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAQzD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAKnE;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,SAAS,CAMpD;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,WAAW,CAQnE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,WAAW,CAQ1E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,OAAO,CAYlE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,YAAY,GAAG,YAAY,CAgB5F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,KAAK,CAE1D;AAED,wBAAgB,cAAc,CAAC,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAWvE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,GAAG,GAAG,MAAM,IAAI,MAAM,CAE9D;AAED,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,EAAE,EACtC,UAAU,EAAE,MAAM,QAQnB"}
|
package/dist/util.js
CHANGED
|
@@ -91,7 +91,7 @@ function checkIntents(options) {
|
|
|
91
91
|
const intents = new discord_js_1.Intents(bitfield);
|
|
92
92
|
for (const intent of requiredIntents) {
|
|
93
93
|
if (!intents.has(intent))
|
|
94
|
-
throw new _1.DisTubeError("MISSING_INTENTS", intent);
|
|
94
|
+
throw new _1.DisTubeError("MISSING_INTENTS", intent.toString());
|
|
95
95
|
}
|
|
96
96
|
}
|
|
97
97
|
exports.checkIntents = checkIntents;
|
|
@@ -172,12 +172,17 @@ function isGuildInstance(guild) {
|
|
|
172
172
|
exports.isGuildInstance = isGuildInstance;
|
|
173
173
|
function resolveGuildID(resolvable) {
|
|
174
174
|
let guildID;
|
|
175
|
-
if (typeof resolvable === "string")
|
|
175
|
+
if (typeof resolvable === "string") {
|
|
176
176
|
guildID = resolvable;
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
177
|
+
}
|
|
178
|
+
else if (typeof resolvable === "object") {
|
|
179
|
+
if (resolvable instanceof _1.Queue || resolvable instanceof _1.DisTubeVoice)
|
|
180
|
+
guildID = resolvable.id;
|
|
181
|
+
else if ("guild" in resolvable && isGuildInstance(resolvable.guild))
|
|
182
|
+
guildID = resolvable.guild.id;
|
|
183
|
+
else if ("id" in resolvable && isGuildInstance(resolvable))
|
|
184
|
+
guildID = resolvable.id;
|
|
185
|
+
}
|
|
181
186
|
if (!isSnowflake(guildID))
|
|
182
187
|
throw new _1.DisTubeError("INVALID_TYPE", "GuildIDResolvable", resolvable);
|
|
183
188
|
return guildID;
|
|
@@ -188,7 +193,11 @@ function isClientInstance(client) {
|
|
|
188
193
|
}
|
|
189
194
|
exports.isClientInstance = isClientInstance;
|
|
190
195
|
function checkInvalidKey(target, source, sourceName) {
|
|
191
|
-
|
|
196
|
+
if (typeof target !== "object" || Array.isArray(target)) {
|
|
197
|
+
throw new _1.DisTubeError("INVALID_TYPE", "object", target, sourceName);
|
|
198
|
+
}
|
|
199
|
+
const sourceKeys = Array.isArray(source) ? source : Object.keys(source);
|
|
200
|
+
const invalidKey = Object.keys(target).find(key => !sourceKeys.includes(key));
|
|
192
201
|
if (invalidKey)
|
|
193
202
|
throw new _1.DisTubeError("INVALID_KEY", sourceName, invalidKey);
|
|
194
203
|
}
|
package/dist/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { URL } from \"url\";\nimport { DisTubeError } from \".\";\nimport { Intents, SnowflakeUtil } from \"discord.js\";\nimport type { GuildIDResolvable } from \".\";\nimport type {\n BitFieldResolvable,\n Client,\n ClientOptions,\n Guild,\n GuildMember,\n IntentsString,\n Message,\n Snowflake,\n StageChannel,\n TextChannel,\n VoiceChannel,\n VoiceState,\n} from \"discord.js\";\n\nconst formatInt = (int: number) => (int < 10 ? `0${int}` : int);\n\n/**\n * Format duration to string\n * @param {number} sec Duration in seconds\n * @returns {string}\n */\nexport function formatDuration(sec: number): string {\n if (!sec || !Number(sec)) return \"00:00\";\n const seconds = Math.round(sec % 60);\n const minutes = Math.floor((sec % 3600) / 60);\n const hours = Math.floor(sec / 3600);\n if (hours > 0) return `${formatInt(hours)}:${formatInt(minutes)}:${formatInt(seconds)}`;\n if (minutes > 0) return `${formatInt(minutes)}:${formatInt(seconds)}`;\n return `00:${formatInt(seconds)}`;\n}\n/**\n * Convert formatted duration to seconds\n * @param {*} input Formatted duration string\n * @returns {number}\n */\nexport function toSecond(input: any): number {\n if (!input) return 0;\n if (typeof input !== \"string\") return Number(input) || 0;\n if (input.match(/:/g)) {\n const time = input.split(\":\").reverse();\n let s = 0;\n for (let i = 0; i < 3; i++) if (time[i]) s += Number(time[i].replace(/[^\\d.]+/g, \"\")) * Math.pow(60, i);\n if (time.length > 3) s += Number(time[3].replace(/[^\\d.]+/g, \"\")) * 24 * 60 * 60;\n return s;\n } else {\n return Number(input.replace(/[^\\d.]+/g, \"\")) || 0;\n }\n}\n/**\n * Parse number from input\n * @param {*} input Any\n * @returns {number}\n */\nexport function parseNumber(input: any): number {\n if (typeof input === \"string\") return Number(input.replace(/[^\\d.]+/g, \"\")) || 0;\n return Number(input) || 0;\n}\n/**\n * Check if the string is an URL\n * @param {string} input input\n * @returns {boolean}\n */\nexport function isURL(input: any): boolean {\n if (typeof input !== \"string\" || input.includes(\" \")) return false;\n try {\n const url = new URL(input);\n if (![\"https:\", \"http:\"].includes(url.protocol) || !url.host) return false;\n } catch {\n return false;\n }\n return true;\n}\n/**\n * Check if the Client has enough intents to using DisTube\n * @param {ClientOptions} options options\n */\nexport function checkIntents(options: ClientOptions): void {\n const requiredIntents: BitFieldResolvable<IntentsString, number>[] = [\"GUILD_VOICE_STATES\"];\n const bitfield: BitFieldResolvable<IntentsString, number> = options.intents ?? (options?.ws as any)?.intents;\n if (typeof bitfield === \"undefined\") return;\n const intents = new Intents(bitfield);\n for (const intent of requiredIntents) {\n if (!intents.has(intent)) throw new DisTubeError(\"MISSING_INTENTS\", intent);\n }\n}\n\n/**\n * Check if the voice channel is empty\n * @param {Discord.VoiceState} voiceState voiceState\n * @returns {boolean}\n */\nexport function isVoiceChannelEmpty(voiceState: VoiceState): boolean {\n const voiceChannel = voiceState.guild?.me?.voice?.channel;\n if (!voiceChannel) return false;\n const members = voiceChannel.members.filter(m => !m.user.bot);\n return !members.size;\n}\n\nexport function isSnowflake(id: any): id is Snowflake {\n try {\n return SnowflakeUtil.deconstruct(id).timestamp > SnowflakeUtil.EPOCH;\n } catch {\n return false;\n }\n}\n\nexport function isMemberInstance(member: any): member is GuildMember {\n return (\n !!member &&\n isSnowflake(member.id) &&\n isSnowflake(member.guild?.id) &&\n isSnowflake(member.user?.id) &&\n member.id === member.user.id\n );\n}\n\nexport function isTextChannelInstance(channel: any): channel is TextChannel {\n return (\n !!channel &&\n isSnowflake(channel.id) &&\n isSnowflake(channel.guild?.id) &&\n typeof channel.send === \"function\" &&\n typeof channel.awaitMessages === \"function\"\n );\n}\n\nexport function isMessageInstance(message: any): message is Message {\n // Simple check for using distube normally\n return (\n !!message &&\n isSnowflake(message.id) &&\n isSnowflake(message.guild?.id) &&\n isTextChannelInstance(message.channel) &&\n isMemberInstance(message.member) &&\n isSnowflake(message.author?.id) &&\n message.member.id === message.author.id &&\n message.guild.id === message.channel.guild.id\n );\n}\n\nexport function isSupportedVoiceChannel(channel: any): channel is VoiceChannel | StageChannel {\n return (\n !!channel &&\n channel.deleted === false &&\n isSnowflake(channel.id) &&\n isSnowflake(channel.guild?.id) &&\n typeof channel.full === \"boolean\" &&\n [\n // Djs v12\n \"voice\",\n \"stage\",\n // Djs v13\n \"GUILD_VOICE\",\n \"GUILD_STAGE_VOICE\",\n ].includes(channel.type)\n );\n}\n\nexport function isGuildInstance(guild: any): guild is Guild {\n return !!guild && isSnowflake(guild.id) && typeof guild.fetchAuditLogs === \"function\";\n}\n\nexport function resolveGuildID(resolvable: GuildIDResolvable): Snowflake {\n let guildID: string | undefined;\n if (typeof resolvable === \"string\") guildID = resolvable;\n else if (\"guild\" in resolvable && isGuildInstance(resolvable.guild)) guildID = resolvable.guild.id;\n else if (\"id\" in resolvable && isGuildInstance(resolvable)) guildID = resolvable.id;\n if (!isSnowflake(guildID)) throw new DisTubeError(\"INVALID_TYPE\", \"GuildIDResolvable\", resolvable);\n return guildID;\n}\n\nexport function isClientInstance(client: any): client is Client {\n return !!client && typeof client.login === \"function\";\n}\n\nexport function checkInvalidKey(target: Record<string, any>, source: Record<string, any>, sourceName: string) {\n const invalidKey = Object.keys(target).find(key => !Object.keys(source).includes(key));\n if (invalidKey) throw new DisTubeError(\"INVALID_KEY\", sourceName, invalidKey);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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","sourcesContent":["import { URL } from \"url\";\nimport { DisTubeError, DisTubeVoice, Queue } from \".\";\nimport { Intents, SnowflakeUtil } from \"discord.js\";\nimport type { GuildIDResolvable } from \".\";\nimport type {\n BitFieldResolvable,\n Client,\n ClientOptions,\n Guild,\n GuildMember,\n IntentsString,\n Message,\n Snowflake,\n StageChannel,\n TextChannel,\n VoiceChannel,\n VoiceState,\n} from \"discord.js\";\n\nconst formatInt = (int: number) => (int < 10 ? `0${int}` : int);\n\n/**\n * Format duration to string\n * @param {number} sec Duration in seconds\n * @returns {string}\n */\nexport function formatDuration(sec: number): string {\n if (!sec || !Number(sec)) return \"00:00\";\n const seconds = Math.round(sec % 60);\n const minutes = Math.floor((sec % 3600) / 60);\n const hours = Math.floor(sec / 3600);\n if (hours > 0) return `${formatInt(hours)}:${formatInt(minutes)}:${formatInt(seconds)}`;\n if (minutes > 0) return `${formatInt(minutes)}:${formatInt(seconds)}`;\n return `00:${formatInt(seconds)}`;\n}\n/**\n * Convert formatted duration to seconds\n * @param {*} input Formatted duration string\n * @returns {number}\n */\nexport function toSecond(input: any): number {\n if (!input) return 0;\n if (typeof input !== \"string\") return Number(input) || 0;\n if (input.match(/:/g)) {\n const time = input.split(\":\").reverse();\n let s = 0;\n for (let i = 0; i < 3; i++) if (time[i]) s += Number(time[i].replace(/[^\\d.]+/g, \"\")) * Math.pow(60, i);\n if (time.length > 3) s += Number(time[3].replace(/[^\\d.]+/g, \"\")) * 24 * 60 * 60;\n return s;\n } else {\n return Number(input.replace(/[^\\d.]+/g, \"\")) || 0;\n }\n}\n/**\n * Parse number from input\n * @param {*} input Any\n * @returns {number}\n */\nexport function parseNumber(input: any): number {\n if (typeof input === \"string\") return Number(input.replace(/[^\\d.]+/g, \"\")) || 0;\n return Number(input) || 0;\n}\n/**\n * Check if the string is an URL\n * @param {string} input input\n * @returns {boolean}\n */\nexport function isURL(input: any): boolean {\n if (typeof input !== \"string\" || input.includes(\" \")) return false;\n try {\n const url = new URL(input);\n if (![\"https:\", \"http:\"].includes(url.protocol) || !url.host) return false;\n } catch {\n return false;\n }\n return true;\n}\n/**\n * Check if the Client has enough intents to using DisTube\n * @param {ClientOptions} options options\n */\nexport function checkIntents(options: ClientOptions): void {\n const requiredIntents: BitFieldResolvable<IntentsString, number>[] = [\"GUILD_VOICE_STATES\"];\n const bitfield: BitFieldResolvable<IntentsString, number> = options.intents ?? (options?.ws as any)?.intents;\n if (typeof bitfield === \"undefined\") return;\n const intents = new Intents(bitfield);\n for (const intent of requiredIntents) {\n if (!intents.has(intent)) throw new DisTubeError(\"MISSING_INTENTS\", intent.toString());\n }\n}\n\n/**\n * Check if the voice channel is empty\n * @param {Discord.VoiceState} voiceState voiceState\n * @returns {boolean}\n */\nexport function isVoiceChannelEmpty(voiceState: VoiceState): boolean {\n const voiceChannel = voiceState.guild?.me?.voice?.channel;\n if (!voiceChannel) return false;\n const members = voiceChannel.members.filter(m => !m.user.bot);\n return !members.size;\n}\n\nexport function isSnowflake(id: any): id is Snowflake {\n try {\n return SnowflakeUtil.deconstruct(id).timestamp > SnowflakeUtil.EPOCH;\n } catch {\n return false;\n }\n}\n\nexport function isMemberInstance(member: any): member is GuildMember {\n return (\n !!member &&\n isSnowflake(member.id) &&\n isSnowflake(member.guild?.id) &&\n isSnowflake(member.user?.id) &&\n member.id === member.user.id\n );\n}\n\nexport function isTextChannelInstance(channel: any): channel is TextChannel {\n return (\n !!channel &&\n isSnowflake(channel.id) &&\n isSnowflake(channel.guild?.id) &&\n typeof channel.send === \"function\" &&\n typeof channel.awaitMessages === \"function\"\n );\n}\n\nexport function isMessageInstance(message: any): message is Message {\n // Simple check for using distube normally\n return (\n !!message &&\n isSnowflake(message.id) &&\n isSnowflake(message.guild?.id) &&\n isTextChannelInstance(message.channel) &&\n isMemberInstance(message.member) &&\n isSnowflake(message.author?.id) &&\n message.member.id === message.author.id &&\n message.guild.id === message.channel.guild.id\n );\n}\n\nexport function isSupportedVoiceChannel(channel: any): channel is VoiceChannel | StageChannel {\n return (\n !!channel &&\n channel.deleted === false &&\n isSnowflake(channel.id) &&\n isSnowflake(channel.guild?.id) &&\n typeof channel.full === \"boolean\" &&\n [\n // Djs v12\n \"voice\",\n \"stage\",\n // Djs v13\n \"GUILD_VOICE\",\n \"GUILD_STAGE_VOICE\",\n ].includes(channel.type)\n );\n}\n\nexport function isGuildInstance(guild: any): guild is Guild {\n return !!guild && isSnowflake(guild.id) && typeof guild.fetchAuditLogs === \"function\";\n}\n\nexport function resolveGuildID(resolvable: GuildIDResolvable): Snowflake {\n let guildID: string | undefined;\n if (typeof resolvable === \"string\") {\n guildID = resolvable;\n } else if (typeof resolvable === \"object\") {\n if (resolvable instanceof Queue || resolvable instanceof DisTubeVoice) guildID = resolvable.id;\n else if (\"guild\" in resolvable && isGuildInstance(resolvable.guild)) guildID = resolvable.guild.id;\n else if (\"id\" in resolvable && isGuildInstance(resolvable)) guildID = resolvable.id;\n }\n if (!isSnowflake(guildID)) throw new DisTubeError(\"INVALID_TYPE\", \"GuildIDResolvable\", resolvable);\n return guildID;\n}\n\nexport function isClientInstance(client: any): client is Client {\n return !!client && typeof client.login === \"function\";\n}\n\nexport function checkInvalidKey(\n target: Record<string, any>,\n source: Record<string, any> | string[],\n sourceName: string,\n) {\n if (typeof target !== \"object\" || Array.isArray(target)) {\n throw new DisTubeError(\"INVALID_TYPE\", \"object\", target, sourceName);\n }\n const sourceKeys = Array.isArray(source) ? source : Object.keys(source);\n const invalidKey = Object.keys(target).find(key => !sourceKeys.includes(key));\n if (invalidKey) throw new DisTubeError(\"INVALID_KEY\", sourceName, invalidKey);\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "distube",
|
|
3
|
-
"version": "3.0.0-beta.
|
|
3
|
+
"version": "3.0.0-beta.39",
|
|
4
4
|
"description": "A Discord.js module to simplify your music commands and play songs with audio filters on Discord without any API key. Support YouTube, SoundCloud, Bandcamp, Facebook, and 700+ more sites",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"typings": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
8
|
"test": "jest --config .jestrc.json",
|
|
9
|
-
"docs": "
|
|
9
|
+
"docs": "docgen -s src/*.ts src/**/*.ts -o docs/docs.json -c pages/index.yml -g -j .jsconfig.json",
|
|
10
10
|
"lint": "eslint .",
|
|
11
11
|
"lint:fix": "eslint . --fix",
|
|
12
12
|
"prettier": "prettier --write **/*.{js,ts,json,yml,yaml}",
|
|
13
13
|
"build": "tsc",
|
|
14
14
|
"build:check": "tsc --noEmit --incremental false",
|
|
15
|
-
"publish:beta": "npm publish --tag beta"
|
|
15
|
+
"publish:beta": "npm publish --tag beta",
|
|
16
|
+
"ncu": "ncu -u --dep dev,prod",
|
|
17
|
+
"_postinstall": "husky install",
|
|
18
|
+
"prepublishOnly": "pinst -d",
|
|
19
|
+
"postpublish": "pinst -e"
|
|
16
20
|
},
|
|
17
21
|
"repository": {
|
|
18
22
|
"type": "git",
|
|
@@ -42,45 +46,43 @@
|
|
|
42
46
|
"homepage": "https://distube.js.org/",
|
|
43
47
|
"dependencies": {
|
|
44
48
|
"@distube/youtube-dl": "^2.2.2",
|
|
45
|
-
"@distube/ytdl-core": "^4.9.
|
|
49
|
+
"@distube/ytdl-core": "^4.9.3",
|
|
46
50
|
"@distube/ytpl": "^1.0.12",
|
|
47
|
-
"@distube/ytsr": "^1.1.5"
|
|
51
|
+
"@distube/ytsr": "^1.1.5",
|
|
52
|
+
"prism-media": "github:distubejs/prism-media",
|
|
53
|
+
"tiny-typed-emitter": "^2.1.0"
|
|
48
54
|
},
|
|
49
55
|
"devDependencies": {
|
|
50
|
-
"@babel/core": "^7.15.
|
|
51
|
-
"@babel/
|
|
56
|
+
"@babel/core": "^7.15.5",
|
|
57
|
+
"@babel/plugin-proposal-class-properties": "^7.14.5",
|
|
58
|
+
"@babel/plugin-proposal-object-rest-spread": "^7.15.6",
|
|
59
|
+
"@babel/preset-env": "^7.15.6",
|
|
52
60
|
"@babel/preset-typescript": "^7.15.0",
|
|
53
61
|
"@commitlint/cli": "^13.1.0",
|
|
54
62
|
"@commitlint/config-conventional": "^13.1.0",
|
|
55
|
-
"@discordjs/voice": "^0.
|
|
63
|
+
"@discordjs/voice": "^0.6.0",
|
|
56
64
|
"@distube/docgen": "distubejs/docgen",
|
|
57
|
-
"@types/jest": "^
|
|
58
|
-
"@types/node": "^16.
|
|
59
|
-
"babel-jest": "^27.
|
|
60
|
-
"discord.js": "^13.0
|
|
65
|
+
"@types/jest": "^27.0.2",
|
|
66
|
+
"@types/node": "^16.9.6",
|
|
67
|
+
"babel-jest": "^27.2.1",
|
|
68
|
+
"discord.js": "^13.1.0",
|
|
61
69
|
"eslint": "^7.32.0",
|
|
62
|
-
"eslint-config-distube": "^1.
|
|
63
|
-
"husky": "^7.0.
|
|
64
|
-
"jest": "^27.
|
|
70
|
+
"eslint-config-distube": "^1.4.0",
|
|
71
|
+
"husky": "^7.0.2",
|
|
72
|
+
"jest": "^27.2.1",
|
|
73
|
+
"jsdoc-babel": "^0.5.0",
|
|
65
74
|
"lint-staged": "^11.1.2",
|
|
66
|
-
"
|
|
67
|
-
"
|
|
75
|
+
"npm-check-updates": "^11.8.5",
|
|
76
|
+
"pinst": "^2.1.6",
|
|
77
|
+
"prettier": "^2.4.1",
|
|
78
|
+
"typescript": "^4.4.3"
|
|
68
79
|
},
|
|
69
80
|
"peerDependencies": {
|
|
70
81
|
"@discordjs/opus": "*",
|
|
71
|
-
"@discordjs/voice": "
|
|
72
|
-
"discord.js": "^12.5.0||^13.0.0"
|
|
82
|
+
"@discordjs/voice": ">=0.5.6",
|
|
83
|
+
"discord.js": "^12.5.0||^13.0.0-0||^13.1.0-0||^13.2.0-0"
|
|
73
84
|
},
|
|
74
85
|
"engines": {
|
|
75
86
|
"node": ">=12.0.0"
|
|
76
|
-
},
|
|
77
|
-
"lint-staged": {
|
|
78
|
-
"*.ts": [
|
|
79
|
-
"prettier --write",
|
|
80
|
-
"eslint"
|
|
81
|
-
],
|
|
82
|
-
"*.{js,json,yml,yaml}": [
|
|
83
|
-
"prettier --write"
|
|
84
|
-
]
|
|
85
87
|
}
|
|
86
88
|
}
|