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.
@@ -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 | undefined]: unknown;
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
- // checks for blacklisted links / domains / queries
189
- 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))) {
190
- throw new Error(`Query string contains a link / word which is blacklisted.`);
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 | undefined]: unknown;
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
- // checks for blacklisted links / domains / queries
185
- 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))) {
186
- throw new Error(`Query string contains a link / word which is blacklisted.`);
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 | undefined]: unknown;
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lavalink-client",
3
- "version": "1.2.4",
3
+ "version": "1.2.5",
4
4
  "description": "Easy, flexible and feature-rich lavalink@v4 Client. Both for Beginners and Proficients.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",