lavalink-client 1.2.4 → 1.2.5
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/dist/cjs/structures/LavalinkManager.d.ts +1 -1
- package/dist/cjs/structures/LavalinkManager.js +1 -1
- package/dist/cjs/structures/Node.js +1 -1
- package/dist/cjs/structures/Utils.d.ts +1 -1
- package/dist/cjs/structures/Utils.js +6 -5
- package/dist/esm/structures/LavalinkManager.d.ts +1 -1
- package/dist/esm/structures/LavalinkManager.js +1 -1
- package/dist/esm/structures/Node.js +1 -1
- package/dist/esm/structures/Utils.d.ts +1 -1
- package/dist/esm/structures/Utils.js +6 -5
- package/dist/types/structures/LavalinkManager.d.ts +1 -1
- package/dist/types/structures/Utils.d.ts +1 -1
- package/package.json +1 -1
|
@@ -16,7 +16,7 @@ export interface BotClientOptions {
|
|
|
16
16
|
/** Bot Client Username */
|
|
17
17
|
username?: string;
|
|
18
18
|
/** So users can pass entire objects / classes */
|
|
19
|
-
[x: string | number | symbol
|
|
19
|
+
[x: string | number | symbol]: unknown;
|
|
20
20
|
}
|
|
21
21
|
export interface ManagerPlayerOptions {
|
|
22
22
|
/** If the Lavalink Volume should be decremented by x number */
|
|
@@ -93,7 +93,7 @@ class LavalinkManager extends events_1.EventEmitter {
|
|
|
93
93
|
this.utils = new Utils_1.ManagerUtils(this);
|
|
94
94
|
// use the validators
|
|
95
95
|
this.applyOptions(options);
|
|
96
|
-
this.validateOptions(options);
|
|
96
|
+
this.validateOptions(this.options);
|
|
97
97
|
// create classes
|
|
98
98
|
this.nodeManager = new NodeManager_1.NodeManager(this);
|
|
99
99
|
}
|
|
@@ -99,7 +99,7 @@ class LavalinkNode {
|
|
|
99
99
|
}
|
|
100
100
|
async search(query, requestUser) {
|
|
101
101
|
const Query = this.NodeManager.LavalinkManager.utils.transformQuery(query);
|
|
102
|
-
this.NodeManager.LavalinkManager.utils.validateQueryString(this, Query.query);
|
|
102
|
+
this.NodeManager.LavalinkManager.utils.validateQueryString(this, Query.query, Query.source);
|
|
103
103
|
if (Query.source)
|
|
104
104
|
this.NodeManager.LavalinkManager.utils.validateSourceString(this, Query.source);
|
|
105
105
|
if (["bcsearch", "bandcamp"].includes(Query.source)) {
|
|
@@ -100,7 +100,7 @@ export declare class ManagerUtils {
|
|
|
100
100
|
*/
|
|
101
101
|
isUnresolvedTrackQuery(data: UnresolvedQuery | any): boolean;
|
|
102
102
|
getClosestTrack(data: UnresolvedTrack, player: Player): Promise<Track | undefined>;
|
|
103
|
-
validateQueryString(node: LavalinkNode, queryString: string): void;
|
|
103
|
+
validateQueryString(node: LavalinkNode, queryString: string, sourceString?: LavalinkSearchPlatform): void;
|
|
104
104
|
transformQuery(query: SearchQuery): {
|
|
105
105
|
query: string;
|
|
106
106
|
source: any;
|
|
@@ -180,15 +180,16 @@ class ManagerUtils {
|
|
|
180
180
|
async getClosestTrack(data, player) {
|
|
181
181
|
return getClosestTrack(data, player);
|
|
182
182
|
}
|
|
183
|
-
validateQueryString(node, queryString) {
|
|
183
|
+
validateQueryString(node, queryString, sourceString) {
|
|
184
184
|
if (!node.info)
|
|
185
185
|
throw new Error("No Lavalink Node was provided");
|
|
186
186
|
if (!node.info.sourceManagers?.length)
|
|
187
187
|
throw new Error("Lavalink Node, has no sourceManagers enabled");
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
188
|
+
if (sourceString === "speak" && queryString.length > 100)
|
|
189
|
+
// checks for blacklisted links / domains / queries
|
|
190
|
+
if (this.LavalinkManager.options?.linksBlacklist?.length > 0 && this.LavalinkManager.options?.linksBlacklist.some(v => (typeof v === "string" && (queryString.toLowerCase().includes(v.toLowerCase()) || v.toLowerCase().includes(queryString.toLowerCase()))) || (0, types_1.isRegExp)(v) && v.test(queryString))) {
|
|
191
|
+
throw new Error(`Query string contains a link / word which is blacklisted.`);
|
|
192
|
+
}
|
|
192
193
|
if (!/^https?:\/\//.test(queryString))
|
|
193
194
|
return;
|
|
194
195
|
else if (this.LavalinkManager.options?.linksAllowed === false)
|
|
@@ -16,7 +16,7 @@ export interface BotClientOptions {
|
|
|
16
16
|
/** Bot Client Username */
|
|
17
17
|
username?: string;
|
|
18
18
|
/** So users can pass entire objects / classes */
|
|
19
|
-
[x: string | number | symbol
|
|
19
|
+
[x: string | number | symbol]: unknown;
|
|
20
20
|
}
|
|
21
21
|
export interface ManagerPlayerOptions {
|
|
22
22
|
/** If the Lavalink Volume should be decremented by x number */
|
|
@@ -90,7 +90,7 @@ export class LavalinkManager extends EventEmitter {
|
|
|
90
90
|
this.utils = new ManagerUtils(this);
|
|
91
91
|
// use the validators
|
|
92
92
|
this.applyOptions(options);
|
|
93
|
-
this.validateOptions(options);
|
|
93
|
+
this.validateOptions(this.options);
|
|
94
94
|
// create classes
|
|
95
95
|
this.nodeManager = new NodeManager(this);
|
|
96
96
|
}
|
|
@@ -95,7 +95,7 @@ export class LavalinkNode {
|
|
|
95
95
|
}
|
|
96
96
|
async search(query, requestUser) {
|
|
97
97
|
const Query = this.NodeManager.LavalinkManager.utils.transformQuery(query);
|
|
98
|
-
this.NodeManager.LavalinkManager.utils.validateQueryString(this, Query.query);
|
|
98
|
+
this.NodeManager.LavalinkManager.utils.validateQueryString(this, Query.query, Query.source);
|
|
99
99
|
if (Query.source)
|
|
100
100
|
this.NodeManager.LavalinkManager.utils.validateSourceString(this, Query.source);
|
|
101
101
|
if (["bcsearch", "bandcamp"].includes(Query.source)) {
|
|
@@ -100,7 +100,7 @@ export declare class ManagerUtils {
|
|
|
100
100
|
*/
|
|
101
101
|
isUnresolvedTrackQuery(data: UnresolvedQuery | any): boolean;
|
|
102
102
|
getClosestTrack(data: UnresolvedTrack, player: Player): Promise<Track | undefined>;
|
|
103
|
-
validateQueryString(node: LavalinkNode, queryString: string): void;
|
|
103
|
+
validateQueryString(node: LavalinkNode, queryString: string, sourceString?: LavalinkSearchPlatform): void;
|
|
104
104
|
transformQuery(query: SearchQuery): {
|
|
105
105
|
query: string;
|
|
106
106
|
source: any;
|
|
@@ -176,15 +176,16 @@ export class ManagerUtils {
|
|
|
176
176
|
async getClosestTrack(data, player) {
|
|
177
177
|
return getClosestTrack(data, player);
|
|
178
178
|
}
|
|
179
|
-
validateQueryString(node, queryString) {
|
|
179
|
+
validateQueryString(node, queryString, sourceString) {
|
|
180
180
|
if (!node.info)
|
|
181
181
|
throw new Error("No Lavalink Node was provided");
|
|
182
182
|
if (!node.info.sourceManagers?.length)
|
|
183
183
|
throw new Error("Lavalink Node, has no sourceManagers enabled");
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
184
|
+
if (sourceString === "speak" && queryString.length > 100)
|
|
185
|
+
// checks for blacklisted links / domains / queries
|
|
186
|
+
if (this.LavalinkManager.options?.linksBlacklist?.length > 0 && this.LavalinkManager.options?.linksBlacklist.some(v => (typeof v === "string" && (queryString.toLowerCase().includes(v.toLowerCase()) || v.toLowerCase().includes(queryString.toLowerCase()))) || isRegExp(v) && v.test(queryString))) {
|
|
187
|
+
throw new Error(`Query string contains a link / word which is blacklisted.`);
|
|
188
|
+
}
|
|
188
189
|
if (!/^https?:\/\//.test(queryString))
|
|
189
190
|
return;
|
|
190
191
|
else if (this.LavalinkManager.options?.linksAllowed === false)
|
|
@@ -16,7 +16,7 @@ export interface BotClientOptions {
|
|
|
16
16
|
/** Bot Client Username */
|
|
17
17
|
username?: string;
|
|
18
18
|
/** So users can pass entire objects / classes */
|
|
19
|
-
[x: string | number | symbol
|
|
19
|
+
[x: string | number | symbol]: unknown;
|
|
20
20
|
}
|
|
21
21
|
export interface ManagerPlayerOptions {
|
|
22
22
|
/** If the Lavalink Volume should be decremented by x number */
|
|
@@ -100,7 +100,7 @@ export declare class ManagerUtils {
|
|
|
100
100
|
*/
|
|
101
101
|
isUnresolvedTrackQuery(data: UnresolvedQuery | any): boolean;
|
|
102
102
|
getClosestTrack(data: UnresolvedTrack, player: Player): Promise<Track | undefined>;
|
|
103
|
-
validateQueryString(node: LavalinkNode, queryString: string): void;
|
|
103
|
+
validateQueryString(node: LavalinkNode, queryString: string, sourceString?: LavalinkSearchPlatform): void;
|
|
104
104
|
transformQuery(query: SearchQuery): {
|
|
105
105
|
query: string;
|
|
106
106
|
source: any;
|
package/package.json
CHANGED