distube 2.8.15 → 3.0.0-0
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 +32 -98
- package/dist/DisTube.d.ts +522 -0
- package/dist/DisTube.d.ts.map +1 -0
- package/dist/DisTube.js +794 -0
- package/dist/DisTube.js.map +1 -0
- package/dist/constant.d.ts +130 -0
- package/dist/constant.d.ts.map +1 -0
- package/dist/constant.js +150 -0
- package/dist/constant.js.map +1 -0
- package/dist/core/DisTubeBase.d.ts +55 -0
- package/dist/core/DisTubeBase.d.ts.map +1 -0
- package/dist/core/DisTubeBase.js +76 -0
- package/dist/core/DisTubeBase.js.map +1 -0
- package/dist/core/DisTubeHandler.d.ts +84 -0
- package/dist/core/DisTubeHandler.d.ts.map +1 -0
- package/dist/core/DisTubeHandler.js +311 -0
- package/dist/core/DisTubeHandler.js.map +1 -0
- package/dist/core/DisTubeOptions.d.ts +26 -0
- package/dist/core/DisTubeOptions.d.ts.map +1 -0
- package/dist/core/DisTubeOptions.js +93 -0
- package/dist/core/DisTubeOptions.js.map +1 -0
- package/dist/core/DisTubeStream.d.ts +52 -0
- package/dist/core/DisTubeStream.d.ts.map +1 -0
- package/dist/core/DisTubeStream.js +109 -0
- package/dist/core/DisTubeStream.js.map +1 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +19 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/manager/BaseManager.d.ts +18 -0
- package/dist/core/manager/BaseManager.d.ts.map +1 -0
- package/dist/core/manager/BaseManager.js +44 -0
- package/dist/core/manager/BaseManager.js.map +1 -0
- package/dist/core/manager/QueueManager.d.ts +60 -0
- package/dist/core/manager/QueueManager.d.ts.map +1 -0
- package/dist/core/manager/QueueManager.js +202 -0
- package/dist/core/manager/QueueManager.js.map +1 -0
- package/dist/core/manager/index.d.ts +3 -0
- package/dist/core/manager/index.d.ts.map +1 -0
- package/dist/core/manager/index.js +15 -0
- package/dist/core/manager/index.js.map +1 -0
- package/dist/core/voice/DJSAdapter.d.ts +4 -0
- package/dist/core/voice/DJSAdapter.d.ts.map +1 -0
- package/dist/core/voice/DJSAdapter.js +61 -0
- package/dist/core/voice/DJSAdapter.js.map +1 -0
- package/dist/core/voice/DisTubeVoice.d.ts +83 -0
- package/dist/core/voice/DisTubeVoice.d.ts.map +1 -0
- package/dist/core/voice/DisTubeVoice.js +236 -0
- package/dist/core/voice/DisTubeVoice.js.map +1 -0
- package/dist/core/voice/DisTubeVoiceManager.d.ts +41 -0
- package/dist/core/voice/DisTubeVoiceManager.d.ts.map +1 -0
- package/dist/core/voice/DisTubeVoiceManager.js +67 -0
- package/dist/core/voice/DisTubeVoiceManager.js.map +1 -0
- package/dist/core/voice/index.d.ts +4 -0
- package/dist/core/voice/index.d.ts.map +1 -0
- package/dist/core/voice/index.js +16 -0
- package/dist/core/voice/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +23 -0
- package/dist/index.js.map +1 -0
- package/dist/plugin/http.d.ts +8 -0
- package/dist/plugin/http.d.ts.map +1 -0
- package/dist/plugin/http.js +20 -0
- package/dist/plugin/http.js.map +1 -0
- package/dist/plugin/https.d.ts +14 -0
- package/dist/plugin/https.d.ts.map +1 -0
- package/dist/plugin/https.js +50 -0
- package/dist/plugin/https.js.map +1 -0
- package/dist/plugin/index.d.ts +4 -0
- package/dist/plugin/index.d.ts.map +1 -0
- package/dist/plugin/index.js +16 -0
- package/dist/plugin/index.js.map +1 -0
- package/dist/plugin/youtube-dl.d.ts +11 -0
- package/dist/plugin/youtube-dl.d.ts.map +1 -0
- package/dist/plugin/youtube-dl.js +75 -0
- package/dist/plugin/youtube-dl.js.map +1 -0
- package/dist/struct/CustomPlugin.d.ts +27 -0
- package/dist/struct/CustomPlugin.d.ts.map +1 -0
- package/dist/struct/CustomPlugin.js +35 -0
- package/dist/struct/CustomPlugin.js.map +1 -0
- package/dist/struct/DisTubeError.d.ts +54 -0
- package/dist/struct/DisTubeError.d.ts.map +1 -0
- package/dist/struct/DisTubeError.js +72 -0
- package/dist/struct/DisTubeError.js.map +1 -0
- package/dist/struct/ExtractorPlugin.d.ts +29 -0
- package/dist/struct/ExtractorPlugin.d.ts.map +1 -0
- package/dist/struct/ExtractorPlugin.js +32 -0
- package/dist/struct/ExtractorPlugin.js.map +1 -0
- package/dist/struct/Playlist.d.ts +42 -0
- package/dist/struct/Playlist.d.ts.map +1 -0
- package/dist/struct/Playlist.js +104 -0
- package/dist/struct/Playlist.js.map +1 -0
- package/dist/struct/Plugin.d.ts +82 -0
- package/dist/struct/Plugin.d.ts.map +1 -0
- package/dist/struct/Plugin.js +108 -0
- package/dist/struct/Plugin.js.map +1 -0
- package/dist/struct/Queue.d.ts +217 -0
- package/dist/struct/Queue.d.ts.map +1 -0
- package/dist/struct/Queue.js +480 -0
- package/dist/struct/Queue.js.map +1 -0
- package/dist/struct/SearchResult.d.ts +28 -0
- package/dist/struct/SearchResult.d.ts.map +1 -0
- package/dist/struct/SearchResult.js +79 -0
- package/dist/struct/SearchResult.js.map +1 -0
- package/dist/struct/Song.d.ts +68 -0
- package/dist/struct/Song.d.ts.map +1 -0
- package/dist/struct/Song.js +229 -0
- package/dist/struct/Song.js.map +1 -0
- package/dist/struct/TaskQueue.d.ts +33 -0
- package/dist/struct/TaskQueue.d.ts.map +1 -0
- package/dist/struct/TaskQueue.js +58 -0
- package/dist/struct/TaskQueue.js.map +1 -0
- package/dist/struct/index.d.ts +10 -0
- package/dist/struct/index.d.ts.map +1 -0
- package/dist/struct/index.js +22 -0
- package/dist/struct/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/type.d.ts +159 -0
- package/dist/type.d.ts.map +1 -0
- package/dist/type.js +3 -0
- package/dist/type.js.map +1 -0
- package/dist/util.d.ts +47 -0
- package/dist/util.d.ts.map +1 -0
- package/dist/util.js +205 -0
- package/dist/util.js.map +1 -0
- package/package.json +53 -25
- package/.eslintrc.json +0 -150
- package/.gitattributes +0 -2
- package/.github/FUNDING.yml +0 -1
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -17
- package/.github/ISSUE_TEMPLATE/config.yml +0 -8
- package/.github/workflows/npm-publish.yml +0 -17
- package/jsdoc.json +0 -97
- package/src/DisTube.js +0 -1121
- package/src/Playlist.js +0 -107
- package/src/Queue.js +0 -120
- package/src/SearchResult.js +0 -81
- package/src/Song.js +0 -135
- package/src/duration.js +0 -39
- package/tsconfig.json +0 -24
- package/typings/DisTube.d.ts +0 -635
- package/typings/Playlist.d.ts +0 -73
- package/typings/Queue.d.ts +0 -106
- package/typings/SearchResult.d.ts +0 -59
- package/typings/Song.d.ts +0 -104
- package/typings/duration.d.ts +0 -2
package/dist/util.js.map
ADDED
|
@@ -0,0 +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, 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,16 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "distube",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-0",
|
|
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
|
-
"main": "
|
|
6
|
-
"typings": "
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"typings": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
8
|
-
"
|
|
9
|
-
"
|
|
8
|
+
"test": "jest --config .jestrc.json",
|
|
9
|
+
"docs": "docgen -s src/*.ts src/**/*.ts -o docs/docs.json -c pages/index.yml -g -j .jsconfig.json",
|
|
10
|
+
"lint": "eslint .",
|
|
11
|
+
"lint:fix": "eslint . --fix",
|
|
12
|
+
"prettier": "prettier --write **/*.{js,ts,json,yml,yaml}",
|
|
13
|
+
"build": "tsc",
|
|
14
|
+
"build:check": "tsc --noEmit --incremental false",
|
|
15
|
+
"publish:stable": "npm publish",
|
|
16
|
+
"ncu": "ncu -u --dep dev,prod",
|
|
17
|
+
"_postinstall": "husky install",
|
|
18
|
+
"prepublishOnly": "pinst -d",
|
|
19
|
+
"postpublish": "pinst -e"
|
|
10
20
|
},
|
|
11
21
|
"repository": {
|
|
12
22
|
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/
|
|
23
|
+
"url": "git+https://github.com/skick1234/DisTube.git"
|
|
14
24
|
},
|
|
15
25
|
"keywords": [
|
|
16
26
|
"youtube",
|
|
@@ -20,41 +30,59 @@
|
|
|
20
30
|
"bot",
|
|
21
31
|
"distube",
|
|
22
32
|
"queue",
|
|
23
|
-
"search",
|
|
24
|
-
"loop",
|
|
25
|
-
"repeat",
|
|
26
33
|
"musicbot",
|
|
27
|
-
"module",
|
|
28
|
-
"nodejs",
|
|
29
34
|
"discord-music-bot",
|
|
30
35
|
"music-bot",
|
|
31
36
|
"discord-js"
|
|
32
37
|
],
|
|
33
|
-
"author": "Skick (https://github.com/
|
|
38
|
+
"author": "Skick (https://github.com/skick1234/)",
|
|
34
39
|
"license": "MIT",
|
|
35
40
|
"bugs": {
|
|
36
|
-
"url": "https://github.com/
|
|
41
|
+
"url": "https://github.com/skick1234/DisTube/issues"
|
|
37
42
|
},
|
|
38
43
|
"funding": {
|
|
39
44
|
"url": "https://patreon.com/DisTube"
|
|
40
45
|
},
|
|
41
46
|
"homepage": "https://distube.js.org/",
|
|
42
47
|
"dependencies": {
|
|
43
|
-
"@distube/youtube-dl": "^
|
|
44
|
-
"@distube/ytdl": "^
|
|
45
|
-
"@distube/ytpl": "^1.
|
|
46
|
-
"@distube/ytsr": "^1.1.
|
|
47
|
-
"
|
|
48
|
+
"@distube/youtube-dl": "^2.2.2",
|
|
49
|
+
"@distube/ytdl-core": "^4.9.3",
|
|
50
|
+
"@distube/ytpl": "^1.1.1",
|
|
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
|
-
"@
|
|
51
|
-
"@
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
"typescript": "^
|
|
56
|
+
"@babel/core": "^7.15.8",
|
|
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.8",
|
|
60
|
+
"@babel/preset-typescript": "^7.15.0",
|
|
61
|
+
"@commitlint/cli": "^13.2.1",
|
|
62
|
+
"@commitlint/config-conventional": "^13.2.0",
|
|
63
|
+
"@discordjs/voice": "^0.6.0",
|
|
64
|
+
"@distube/docgen": "github:distubejs/docgen",
|
|
65
|
+
"@types/jest": "^27.0.2",
|
|
66
|
+
"@types/node": "^16.11.0",
|
|
67
|
+
"babel-jest": "^27.2.5",
|
|
68
|
+
"discord.js": "^13.2.0",
|
|
69
|
+
"eslint": "^7.32.0",
|
|
70
|
+
"eslint-config-distube": "^1.4.0",
|
|
71
|
+
"husky": "^7.0.2",
|
|
72
|
+
"jest": "^27.2.5",
|
|
73
|
+
"jsdoc-babel": "^0.5.0",
|
|
74
|
+
"lint-staged": "^11.2.3",
|
|
75
|
+
"npm-check-updates": "^11.8.5",
|
|
76
|
+
"pinst": "^2.1.6",
|
|
77
|
+
"prettier": "^2.4.1",
|
|
78
|
+
"typescript": "^4.4.4"
|
|
79
|
+
},
|
|
80
|
+
"peerDependencies": {
|
|
81
|
+
"@discordjs/opus": "*",
|
|
82
|
+
"@discordjs/voice": ">=0.5.6",
|
|
83
|
+
"discord.js": "^12.5.0||13.x"
|
|
55
84
|
},
|
|
56
85
|
"engines": {
|
|
57
|
-
"
|
|
58
|
-
"node": ">=12"
|
|
86
|
+
"node": ">=12.0.0"
|
|
59
87
|
}
|
|
60
88
|
}
|
package/.eslintrc.json
DELETED
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"extends": "eslint:recommended",
|
|
3
|
-
"parserOptions": {
|
|
4
|
-
"ecmaVersion": 11,
|
|
5
|
-
"sourceType": "module"
|
|
6
|
-
},
|
|
7
|
-
"env": {
|
|
8
|
-
"es6": true,
|
|
9
|
-
"node": true
|
|
10
|
-
},
|
|
11
|
-
"rules": {
|
|
12
|
-
"no-await-in-loop": "warn",
|
|
13
|
-
"no-compare-neg-zero": "error",
|
|
14
|
-
"no-extra-parens": ["warn", "all", {
|
|
15
|
-
"nestedBinaryExpressions": false
|
|
16
|
-
}],
|
|
17
|
-
"no-template-curly-in-string": "error",
|
|
18
|
-
"no-unsafe-negation": "error",
|
|
19
|
-
"valid-jsdoc": ["warn", {
|
|
20
|
-
"requireReturn": false,
|
|
21
|
-
"requireReturnDescription": false,
|
|
22
|
-
"prefer": {
|
|
23
|
-
"return": "returns",
|
|
24
|
-
"arg": "param"
|
|
25
|
-
},
|
|
26
|
-
"preferType": {
|
|
27
|
-
"String": "string",
|
|
28
|
-
"Number": "number",
|
|
29
|
-
"Boolean": "boolean",
|
|
30
|
-
"Symbol": "symbol",
|
|
31
|
-
"object": "Object",
|
|
32
|
-
"function": "Function",
|
|
33
|
-
"array": "Array",
|
|
34
|
-
"date": "Date",
|
|
35
|
-
"error": "Error",
|
|
36
|
-
"null": "void"
|
|
37
|
-
}
|
|
38
|
-
}],
|
|
39
|
-
|
|
40
|
-
"accessor-pairs": "warn",
|
|
41
|
-
"array-callback-return": "error",
|
|
42
|
-
"complexity": "warn",
|
|
43
|
-
"consistent-return": "error",
|
|
44
|
-
"curly": ["error", "multi-line"],
|
|
45
|
-
"dot-location": ["error", "property"],
|
|
46
|
-
"dot-notation": "error",
|
|
47
|
-
"eqeqeq": "error",
|
|
48
|
-
"no-empty": "warn",
|
|
49
|
-
"no-empty-function": "warn",
|
|
50
|
-
"no-floating-decimal": "error",
|
|
51
|
-
"no-implied-eval": "error",
|
|
52
|
-
"no-invalid-this": "error",
|
|
53
|
-
"no-lone-blocks": "error",
|
|
54
|
-
"no-multi-spaces": "error",
|
|
55
|
-
"no-new-func": "error",
|
|
56
|
-
"no-new-wrappers": "error",
|
|
57
|
-
"no-new": "error",
|
|
58
|
-
"no-octal-escape": "error",
|
|
59
|
-
"no-return-assign": "error",
|
|
60
|
-
"no-return-await": "error",
|
|
61
|
-
"no-self-compare": "error",
|
|
62
|
-
"no-sequences": "error",
|
|
63
|
-
"no-throw-literal": "error",
|
|
64
|
-
"no-unmodified-loop-condition": "error",
|
|
65
|
-
"no-unused-expressions": "error",
|
|
66
|
-
"no-useless-call": "error",
|
|
67
|
-
"no-useless-concat": "error",
|
|
68
|
-
"no-useless-escape": "error",
|
|
69
|
-
"no-useless-return": "error",
|
|
70
|
-
"no-void": "error",
|
|
71
|
-
"no-warning-comments": "warn",
|
|
72
|
-
"prefer-promise-reject-errors": "error",
|
|
73
|
-
"require-await": "warn",
|
|
74
|
-
"wrap-iife": "error",
|
|
75
|
-
"yoda": "error",
|
|
76
|
-
|
|
77
|
-
"no-label-var": "error",
|
|
78
|
-
"no-shadow": "error",
|
|
79
|
-
"no-undef-init": "error",
|
|
80
|
-
|
|
81
|
-
"callback-return": "error",
|
|
82
|
-
"handle-callback-err": "error",
|
|
83
|
-
"no-mixed-requires": "error",
|
|
84
|
-
"no-new-require": "error",
|
|
85
|
-
"no-path-concat": "error",
|
|
86
|
-
|
|
87
|
-
"array-bracket-spacing": "error",
|
|
88
|
-
"block-spacing": "error",
|
|
89
|
-
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
|
|
90
|
-
"capitalized-comments": ["error", "always", { "ignoreConsecutiveComments": true }],
|
|
91
|
-
"comma-dangle": ["error", "always-multiline"],
|
|
92
|
-
"comma-spacing": "error",
|
|
93
|
-
"comma-style": "error",
|
|
94
|
-
"computed-property-spacing": "error",
|
|
95
|
-
"consistent-this": ["error", "$this"],
|
|
96
|
-
"eol-last": "error",
|
|
97
|
-
"func-names": "error",
|
|
98
|
-
"func-name-matching": "error",
|
|
99
|
-
"func-style": ["error", "declaration", { "allowArrowFunctions": true }],
|
|
100
|
-
"indent": ["error", 2, { "SwitchCase": 1 }],
|
|
101
|
-
"key-spacing": "error",
|
|
102
|
-
"keyword-spacing": "error",
|
|
103
|
-
"max-depth": "error",
|
|
104
|
-
"max-nested-callbacks": ["error", { "max": 4 }],
|
|
105
|
-
"max-statements-per-line": ["error", { "max": 3 }],
|
|
106
|
-
"new-cap": "off",
|
|
107
|
-
"newline-per-chained-call": ["error", { "ignoreChainWithDepth": 3 }],
|
|
108
|
-
"no-array-constructor": "error",
|
|
109
|
-
"no-lonely-if": "error",
|
|
110
|
-
"no-mixed-operators": "error",
|
|
111
|
-
"no-multiple-empty-lines": ["error", { "max": 2, "maxEOF": 1, "maxBOF": 0 }],
|
|
112
|
-
"no-new-object": "error",
|
|
113
|
-
"no-spaced-func": "error",
|
|
114
|
-
"no-trailing-spaces": "error",
|
|
115
|
-
"no-unneeded-ternary": "error",
|
|
116
|
-
"no-whitespace-before-property": "error",
|
|
117
|
-
"nonblock-statement-body-position": "error",
|
|
118
|
-
"object-curly-spacing": ["error", "always"],
|
|
119
|
-
"operator-assignment": "error",
|
|
120
|
-
"operator-linebreak": ["error", "after"],
|
|
121
|
-
"padded-blocks": ["error", "never"],
|
|
122
|
-
"quote-props": ["error", "as-needed"],
|
|
123
|
-
"quotes": ["error", "double", { "avoidEscape": true, "allowTemplateLiterals": true }],
|
|
124
|
-
"semi-spacing": "error",
|
|
125
|
-
"space-before-blocks": "error",
|
|
126
|
-
"space-in-parens": "error",
|
|
127
|
-
"space-infix-ops": "error",
|
|
128
|
-
"space-unary-ops": "error",
|
|
129
|
-
"spaced-comment": "error",
|
|
130
|
-
"template-tag-spacing": "error",
|
|
131
|
-
"unicode-bom": "error",
|
|
132
|
-
|
|
133
|
-
"arrow-body-style": "error",
|
|
134
|
-
"arrow-parens": ["error", "as-needed"],
|
|
135
|
-
"arrow-spacing": "error",
|
|
136
|
-
"no-duplicate-imports": "error",
|
|
137
|
-
"no-useless-computed-key": "error",
|
|
138
|
-
"no-useless-constructor": "error",
|
|
139
|
-
"prefer-arrow-callback": "error",
|
|
140
|
-
"prefer-numeric-literals": "error",
|
|
141
|
-
"prefer-rest-params": "error",
|
|
142
|
-
"prefer-spread": "error",
|
|
143
|
-
"prefer-template": "error",
|
|
144
|
-
"rest-spread-spacing": "error",
|
|
145
|
-
"template-curly-spacing": "error",
|
|
146
|
-
"yield-star-spacing": "error",
|
|
147
|
-
"no-var": "error"
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
|
package/.gitattributes
DELETED
package/.github/FUNDING.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
patreon: DisTube
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Create a report to help us improve (Check the FAQ in readme and created issues first)
|
|
4
|
-
title: ''
|
|
5
|
-
labels: bug
|
|
6
|
-
assignees: ''
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
**Please describe your problem in as much detail as possible:**
|
|
11
|
-
|
|
12
|
-
**Further information:**
|
|
13
|
-
|
|
14
|
-
- DisTube version:
|
|
15
|
-
- discord.js version:
|
|
16
|
-
- Node.js version:
|
|
17
|
-
- Operating system:
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
blank_issues_enabled: false
|
|
2
|
-
contact_links:
|
|
3
|
-
- name: Discussions
|
|
4
|
-
url: https://github.com/skick1234/DisTube/discussions
|
|
5
|
-
about: Suggest an idea for this project or ask a question here
|
|
6
|
-
- name: Discord Support Server
|
|
7
|
-
url: https://discord.gg/feaDd9h
|
|
8
|
-
about: Like Discussions but on Discord
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
name: DisTube
|
|
2
|
-
on:
|
|
3
|
-
release:
|
|
4
|
-
types: [created]
|
|
5
|
-
jobs:
|
|
6
|
-
build:
|
|
7
|
-
runs-on: ubuntu-latest
|
|
8
|
-
steps:
|
|
9
|
-
- uses: actions/checkout@v2
|
|
10
|
-
- uses: actions/setup-node@v1
|
|
11
|
-
with:
|
|
12
|
-
node-version: '12.x'
|
|
13
|
-
registry-url: 'https://registry.npmjs.org'
|
|
14
|
-
- run: npm install
|
|
15
|
-
- run: npm publish --access public
|
|
16
|
-
env:
|
|
17
|
-
NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
|
package/jsdoc.json
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"tags": {
|
|
3
|
-
"allowUnknownTags": true
|
|
4
|
-
},
|
|
5
|
-
"source": {
|
|
6
|
-
"include": ["README.md", "src"],
|
|
7
|
-
"includePattern": ".js$",
|
|
8
|
-
"excludePattern": "(node_modules/|docs)"
|
|
9
|
-
},
|
|
10
|
-
"plugins": [
|
|
11
|
-
"plugins/markdown"
|
|
12
|
-
],
|
|
13
|
-
"templates": {
|
|
14
|
-
"cleverLinks": false,
|
|
15
|
-
"monospaceLinks": false,
|
|
16
|
-
"default": {
|
|
17
|
-
"outputSourceFiles": false
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
"opts": {
|
|
21
|
-
"destination": "../distubejs.github.io/",
|
|
22
|
-
"readme": "README.md",
|
|
23
|
-
"encoding": "utf8",
|
|
24
|
-
"private": true,
|
|
25
|
-
"recurse": true,
|
|
26
|
-
"template": "node_modules/clean-jsdoc-theme",
|
|
27
|
-
"theme_opts": {
|
|
28
|
-
"title": "DisTube",
|
|
29
|
-
"theme": "dark",
|
|
30
|
-
"filter": false,
|
|
31
|
-
"menu": [{
|
|
32
|
-
"title": "NPM",
|
|
33
|
-
"link": "https://www.npmjs.com/package/distube",
|
|
34
|
-
"target": "_blank"
|
|
35
|
-
},
|
|
36
|
-
{
|
|
37
|
-
"title": "GitHub",
|
|
38
|
-
"link": "https://github.com/skick1234/DisTube/",
|
|
39
|
-
"target": "_blank"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"title": "Frequently Asked Questions",
|
|
43
|
-
"link": "https://github.com/skick1234/DisTube/wiki/Frequently-Asked-Questions",
|
|
44
|
-
"target": "_blank"
|
|
45
|
-
}
|
|
46
|
-
],
|
|
47
|
-
"meta": [{
|
|
48
|
-
"name": "author",
|
|
49
|
-
"content": "Skick"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"name": "description",
|
|
53
|
-
"content": "A Discord.js v12 module to manage music commands and play song on Discord without any API key."
|
|
54
|
-
},
|
|
55
|
-
{
|
|
56
|
-
"itemprop": "name",
|
|
57
|
-
"content": "DisTube"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"itemprop": "image",
|
|
61
|
-
"content": "https://cdn.jsdelivr.net/gh/skick1234/MaBu-CDN@4.6.10/DisTube/img/banner.png"
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
"property": "og:url",
|
|
65
|
-
"content": "https://DisTube.js.org"
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"property": "og:type",
|
|
69
|
-
"content": "website"
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
"property": "og:title",
|
|
73
|
-
"content": "DisTube"
|
|
74
|
-
},
|
|
75
|
-
{
|
|
76
|
-
"property": "og:description",
|
|
77
|
-
"content": "A Discord.js v12 module to manage music commands and play song on Discord without any API key."
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
"property": "og:image",
|
|
81
|
-
"content": "https://cdn.jsdelivr.net/gh/skick1234/MaBu-CDN@4.6.10/DisTube/img/banner.png"
|
|
82
|
-
}
|
|
83
|
-
],
|
|
84
|
-
"create_style": "::-webkit-scrollbar { display: none }",
|
|
85
|
-
"add_script_path": [{
|
|
86
|
-
"src": "https://arc.io/widget.min.js#2srirM1z"
|
|
87
|
-
}],
|
|
88
|
-
"add_style_path": [{
|
|
89
|
-
"rel": "shortcut icon",
|
|
90
|
-
"type": "image/png",
|
|
91
|
-
"href": "https://cdn.jsdelivr.net/gh/skick1234/MaBu-CDN@4.6.10/DisTube/img/favicon.png"
|
|
92
|
-
}],
|
|
93
|
-
"search": true,
|
|
94
|
-
"footer": "Powered by <a href='https://js.org' target='_blank'>js.org</a>, <a href='https://jsdoc.app/' target='_blank'>JSDoc</a>, <a href='https://github.com/ankitskvmdam/clean-jsdoc-theme' target='_blank'>clean-jsdoc-theme</a> and Love."
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|