for-modules 1.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/LICENSE +21 -0
- package/NOTICE.txt +12 -0
- package/README.md +1 -0
- package/babel.config.json +6 -0
- package/dist/Structures/Filters.d.ts +109 -0
- package/dist/Structures/Filters.js +296 -0
- package/dist/Structures/Manager.d.ts +192 -0
- package/dist/Structures/Manager.js +580 -0
- package/dist/Structures/Node.d.ts +140 -0
- package/dist/Structures/Node.js +588 -0
- package/dist/Structures/Player.d.ts +250 -0
- package/dist/Structures/Player.js +750 -0
- package/dist/Structures/Queue.d.ts +38 -0
- package/dist/Structures/Queue.js +180 -0
- package/dist/Structures/Rest.d.ts +60 -0
- package/dist/Structures/Rest.js +246 -0
- package/dist/Structures/Utils.d.ts +174 -0
- package/dist/Structures/Utils.js +318 -0
- package/dist/Utils/FiltersEqualizers.d.ts +12 -0
- package/dist/Utils/FiltersEqualizers.js +227 -0
- package/dist/Utils/ManagerCheck.d.ts +2 -0
- package/dist/Utils/ManagerCheck.js +75 -0
- package/dist/Utils/NodeCheck.d.ts +2 -0
- package/dist/Utils/NodeCheck.js +54 -0
- package/dist/Utils/PlayerCheck.d.ts +2 -0
- package/dist/Utils/PlayerCheck.js +38 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +127 -0
- package/eslint.config.d.ts +2 -0
- package/eslint.config.js +12 -0
- package/package.json +51 -0
- package/renovate.json +6 -0
- package/tsconfig.json +25 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
import { Track, UnresolvedTrack } from "./Player";
|
2
|
+
/**
|
3
|
+
* The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks.
|
4
|
+
*/
|
5
|
+
export declare class Queue extends Array<Track | UnresolvedTrack> {
|
6
|
+
/** The total duration of the queue. */
|
7
|
+
get duration(): number;
|
8
|
+
/** The total size of tracks in the queue including the current track. */
|
9
|
+
get totalSize(): number;
|
10
|
+
/** The size of tracks in the queue. */
|
11
|
+
get size(): number;
|
12
|
+
/** The current track */
|
13
|
+
current: Track | UnresolvedTrack | null;
|
14
|
+
/** The previous track */
|
15
|
+
previous: Track | UnresolvedTrack | null;
|
16
|
+
/**
|
17
|
+
* Adds a track to the queue.
|
18
|
+
* @param track
|
19
|
+
* @param [offset=null]
|
20
|
+
*/
|
21
|
+
add(track: (Track | UnresolvedTrack) | (Track | UnresolvedTrack)[], offset?: number): void;
|
22
|
+
/**
|
23
|
+
* Removes a track from the queue. Defaults to the first track, returning the removed track, EXCLUDING THE `current` TRACK.
|
24
|
+
* @param [position=0]
|
25
|
+
*/
|
26
|
+
remove(position?: number): (Track | UnresolvedTrack)[];
|
27
|
+
/**
|
28
|
+
* Removes an amount of tracks using a exclusive start and end exclusive index, returning the removed tracks, EXCLUDING THE `current` TRACK.
|
29
|
+
* @param start
|
30
|
+
* @param end
|
31
|
+
*/
|
32
|
+
remove(start: number, end: number): (Track | UnresolvedTrack)[];
|
33
|
+
/** Clears the queue. */
|
34
|
+
clear(): void;
|
35
|
+
/** Shuffles the queue. */
|
36
|
+
shuffle(): void;
|
37
|
+
equalizedShuffle(): void;
|
38
|
+
}
|
@@ -0,0 +1,180 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.Queue = void 0;
|
7
|
+
var _Utils = require("./Utils");
|
8
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
9
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
10
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
11
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
12
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
13
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
15
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
16
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
17
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
18
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
19
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
20
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
21
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
22
|
+
function _wrapNativeSuper(t) { var r = "function" == typeof Map ? new Map() : void 0; return _wrapNativeSuper = function _wrapNativeSuper(t) { if (null === t || !_isNativeFunction(t)) return t; if ("function" != typeof t) throw new TypeError("Super expression must either be null or a function"); if (void 0 !== r) { if (r.has(t)) return r.get(t); r.set(t, Wrapper); } function Wrapper() { return _construct(t, arguments, _getPrototypeOf(this).constructor); } return Wrapper.prototype = Object.create(t.prototype, { constructor: { value: Wrapper, enumerable: !1, writable: !0, configurable: !0 } }), _setPrototypeOf(Wrapper, t); }, _wrapNativeSuper(t); }
|
23
|
+
function _construct(t, e, r) { if (_isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments); var o = [null]; o.push.apply(o, e); var p = new (t.bind.apply(t, o))(); return r && _setPrototypeOf(p, r.prototype), p; }
|
24
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
25
|
+
function _isNativeFunction(t) { try { return -1 !== Function.toString.call(t).indexOf("[native code]"); } catch (n) { return "function" == typeof t; } }
|
26
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
27
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
28
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
29
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
30
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
31
|
+
/**
|
32
|
+
* The player's queue, the `current` property is the currently playing track, think of the rest as the up-coming tracks.
|
33
|
+
*/
|
34
|
+
var Queue = exports.Queue = /*#__PURE__*/function (_Array) {
|
35
|
+
function Queue() {
|
36
|
+
var _this;
|
37
|
+
_classCallCheck(this, Queue);
|
38
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
39
|
+
args[_key] = arguments[_key];
|
40
|
+
}
|
41
|
+
_this = _callSuper(this, Queue, [].concat(args));
|
42
|
+
/** The current track */
|
43
|
+
_defineProperty(_this, "current", null);
|
44
|
+
/** The previous track */
|
45
|
+
_defineProperty(_this, "previous", null);
|
46
|
+
return _this;
|
47
|
+
}
|
48
|
+
_inherits(Queue, _Array);
|
49
|
+
return _createClass(Queue, [{
|
50
|
+
key: "duration",
|
51
|
+
get: /** The total duration of the queue. */
|
52
|
+
function get() {
|
53
|
+
var _this$current$duratio, _this$current;
|
54
|
+
var current = (_this$current$duratio = (_this$current = this.current) === null || _this$current === void 0 ? void 0 : _this$current.duration) !== null && _this$current$duratio !== void 0 ? _this$current$duratio : 0;
|
55
|
+
return this.reduce(function (acc, cur) {
|
56
|
+
return acc + (cur.duration || 0);
|
57
|
+
}, current);
|
58
|
+
}
|
59
|
+
|
60
|
+
/** The total size of tracks in the queue including the current track. */
|
61
|
+
}, {
|
62
|
+
key: "totalSize",
|
63
|
+
get: function get() {
|
64
|
+
return this.length + (this.current ? 1 : 0);
|
65
|
+
}
|
66
|
+
|
67
|
+
/** The size of tracks in the queue. */
|
68
|
+
}, {
|
69
|
+
key: "size",
|
70
|
+
get: function get() {
|
71
|
+
return this.length;
|
72
|
+
}
|
73
|
+
}, {
|
74
|
+
key: "add",
|
75
|
+
value:
|
76
|
+
/**
|
77
|
+
* Adds a track to the queue.
|
78
|
+
* @param track
|
79
|
+
* @param [offset=null]
|
80
|
+
*/
|
81
|
+
function add(track, offset) {
|
82
|
+
if (!_Utils.TrackUtils.validate(track)) {
|
83
|
+
throw new RangeError('Track must be a "Track" or "Track[]".');
|
84
|
+
}
|
85
|
+
if (!this.current) {
|
86
|
+
if (Array.isArray(track)) {
|
87
|
+
this.current = track.shift() || null;
|
88
|
+
this.push.apply(this, _toConsumableArray(track));
|
89
|
+
} else {
|
90
|
+
this.current = track;
|
91
|
+
}
|
92
|
+
} else {
|
93
|
+
if (typeof offset !== "undefined" && typeof offset === "number") {
|
94
|
+
if (isNaN(offset)) {
|
95
|
+
throw new RangeError("Offset must be a number.");
|
96
|
+
}
|
97
|
+
if (offset < 0 || offset > this.length) {
|
98
|
+
throw new RangeError("Offset must be between 0 and ".concat(this.length, "."));
|
99
|
+
}
|
100
|
+
if (Array.isArray(track)) {
|
101
|
+
this.splice.apply(this, [offset, 0].concat(_toConsumableArray(track)));
|
102
|
+
} else {
|
103
|
+
this.splice(offset, 0, track);
|
104
|
+
}
|
105
|
+
} else {
|
106
|
+
if (Array.isArray(track)) {
|
107
|
+
this.push.apply(this, _toConsumableArray(track));
|
108
|
+
} else {
|
109
|
+
this.push(track);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
}
|
113
|
+
}
|
114
|
+
|
115
|
+
/**
|
116
|
+
* Removes a track from the queue. Defaults to the first track, returning the removed track, EXCLUDING THE `current` TRACK.
|
117
|
+
* @param [position=0]
|
118
|
+
*/
|
119
|
+
}, {
|
120
|
+
key: "remove",
|
121
|
+
value: function remove() {
|
122
|
+
var startOrPosition = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
123
|
+
var end = arguments.length > 1 ? arguments[1] : undefined;
|
124
|
+
if (typeof end !== "undefined") {
|
125
|
+
if (isNaN(Number(startOrPosition)) || isNaN(Number(end))) {
|
126
|
+
throw new RangeError("Missing \"start\" or \"end\" parameter.");
|
127
|
+
}
|
128
|
+
if (startOrPosition >= end || startOrPosition >= this.length) {
|
129
|
+
throw new RangeError("Invalid start or end values.");
|
130
|
+
}
|
131
|
+
return this.splice(startOrPosition, end - startOrPosition);
|
132
|
+
}
|
133
|
+
return this.splice(startOrPosition, 1);
|
134
|
+
}
|
135
|
+
|
136
|
+
/** Clears the queue. */
|
137
|
+
}, {
|
138
|
+
key: "clear",
|
139
|
+
value: function clear() {
|
140
|
+
this.splice(0);
|
141
|
+
}
|
142
|
+
|
143
|
+
/** Shuffles the queue. */
|
144
|
+
}, {
|
145
|
+
key: "shuffle",
|
146
|
+
value: function shuffle() {
|
147
|
+
for (var i = this.length - 1; i > 0; i--) {
|
148
|
+
var j = Math.floor(Math.random() * (i + 1));
|
149
|
+
var _ref = [this[j], this[i]];
|
150
|
+
this[i] = _ref[0];
|
151
|
+
this[j] = _ref[1];
|
152
|
+
}
|
153
|
+
}
|
154
|
+
}, {
|
155
|
+
key: "equalizedShuffle",
|
156
|
+
value: function equalizedShuffle() {
|
157
|
+
var userTracks = new Map();
|
158
|
+
this.forEach(function (track) {
|
159
|
+
var user = track.requester.id;
|
160
|
+
if (!userTracks.has(user)) {
|
161
|
+
userTracks.set(user, []);
|
162
|
+
}
|
163
|
+
userTracks.get(user).push(track);
|
164
|
+
});
|
165
|
+
var shuffledQueue = [];
|
166
|
+
while (shuffledQueue.length < this.length) {
|
167
|
+
userTracks.forEach(function (tracks) {
|
168
|
+
var track = tracks.shift();
|
169
|
+
if (track) {
|
170
|
+
shuffledQueue.push(track);
|
171
|
+
}
|
172
|
+
});
|
173
|
+
}
|
174
|
+
this.clear();
|
175
|
+
this.add(shuffledQueue);
|
176
|
+
console.log(this);
|
177
|
+
}
|
178
|
+
}]);
|
179
|
+
}(/*#__PURE__*/_wrapNativeSuper(Array));
|
180
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfVXRpbHMiLCJyZXF1aXJlIiwiX3R5cGVvZiIsIm8iLCJTeW1ib2wiLCJpdGVyYXRvciIsImNvbnN0cnVjdG9yIiwicHJvdG90eXBlIiwiX3RvQ29uc3VtYWJsZUFycmF5IiwiciIsIl9hcnJheVdpdGhvdXRIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXkiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVTcHJlYWQiLCJUeXBlRXJyb3IiLCJhIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImlzQXJyYXkiLCJsZW5ndGgiLCJlIiwibiIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsImtleSIsIl9jcmVhdGVDbGFzcyIsIl9jYWxsU3VwZXIiLCJfZ2V0UHJvdG90eXBlT2YiLCJfcG9zc2libGVDb25zdHJ1Y3RvclJldHVybiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiYXBwbHkiLCJfYXNzZXJ0VGhpc0luaXRpYWxpemVkIiwiUmVmZXJlbmNlRXJyb3IiLCJfaW5oZXJpdHMiLCJjcmVhdGUiLCJ2YWx1ZSIsIl9zZXRQcm90b3R5cGVPZiIsIl93cmFwTmF0aXZlU3VwZXIiLCJNYXAiLCJfaXNOYXRpdmVGdW5jdGlvbiIsImhhcyIsImdldCIsInNldCIsIldyYXBwZXIiLCJfY29uc3RydWN0IiwiYXJndW1lbnRzIiwicHVzaCIsInAiLCJiaW5kIiwiQm9vbGVhbiIsInZhbHVlT2YiLCJGdW5jdGlvbiIsImluZGV4T2YiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImdldFByb3RvdHlwZU9mIiwiX2RlZmluZVByb3BlcnR5IiwiaSIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiUXVldWUiLCJleHBvcnRzIiwiX0FycmF5IiwiX3RoaXMiLCJfbGVuIiwiYXJncyIsIl9rZXkiLCJjb25jYXQiLCJfdGhpcyRjdXJyZW50JGR1cmF0aW8iLCJfdGhpcyRjdXJyZW50IiwiY3VycmVudCIsImR1cmF0aW9uIiwicmVkdWNlIiwiYWNjIiwiY3VyIiwiYWRkIiwidHJhY2siLCJvZmZzZXQiLCJUcmFja1V0aWxzIiwidmFsaWRhdGUiLCJSYW5nZUVycm9yIiwic2hpZnQiLCJpc05hTiIsInNwbGljZSIsInJlbW92ZSIsInN0YXJ0T3JQb3NpdGlvbiIsInVuZGVmaW5lZCIsImVuZCIsImNsZWFyIiwic2h1ZmZsZSIsImoiLCJNYXRoIiwiZmxvb3IiLCJyYW5kb20iLCJfcmVmIiwiZXF1YWxpemVkU2h1ZmZsZSIsInVzZXJUcmFja3MiLCJmb3JFYWNoIiwidXNlciIsInJlcXVlc3RlciIsImlkIiwic2h1ZmZsZWRRdWV1ZSIsInRyYWNrcyIsImNvbnNvbGUiLCJsb2ciXSwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RydWN0dXJlcy9RdWV1ZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUcmFjaywgVW5yZXNvbHZlZFRyYWNrIH0gZnJvbSBcIi4vUGxheWVyXCI7XG5pbXBvcnQgeyBUcmFja1V0aWxzIH0gZnJvbSBcIi4vVXRpbHNcIjtcblxuLyoqXG4gKiBUaGUgcGxheWVyJ3MgcXVldWUsIHRoZSBgY3VycmVudGAgcHJvcGVydHkgaXMgdGhlIGN1cnJlbnRseSBwbGF5aW5nIHRyYWNrLCB0aGluayBvZiB0aGUgcmVzdCBhcyB0aGUgdXAtY29taW5nIHRyYWNrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFF1ZXVlIGV4dGVuZHMgQXJyYXk8VHJhY2sgfCBVbnJlc29sdmVkVHJhY2s+IHtcblx0LyoqIFRoZSB0b3RhbCBkdXJhdGlvbiBvZiB0aGUgcXVldWUuICovXG5cdHB1YmxpYyBnZXQgZHVyYXRpb24oKTogbnVtYmVyIHtcblx0XHRjb25zdCBjdXJyZW50ID0gdGhpcy5jdXJyZW50Py5kdXJhdGlvbiA/PyAwO1xuXHRcdHJldHVybiB0aGlzLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIChjdXIuZHVyYXRpb24gfHwgMCksIGN1cnJlbnQpO1xuXHR9XG5cblx0LyoqIFRoZSB0b3RhbCBzaXplIG9mIHRyYWNrcyBpbiB0aGUgcXVldWUgaW5jbHVkaW5nIHRoZSBjdXJyZW50IHRyYWNrLiAqL1xuXHRwdWJsaWMgZ2V0IHRvdGFsU2l6ZSgpOiBudW1iZXIge1xuXHRcdHJldHVybiB0aGlzLmxlbmd0aCArICh0aGlzLmN1cnJlbnQgPyAxIDogMCk7XG5cdH1cblxuXHQvKiogVGhlIHNpemUgb2YgdHJhY2tzIGluIHRoZSBxdWV1ZS4gKi9cblx0cHVibGljIGdldCBzaXplKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMubGVuZ3RoO1xuXHR9XG5cblx0LyoqIFRoZSBjdXJyZW50IHRyYWNrICovXG5cdHB1YmxpYyBjdXJyZW50OiBUcmFjayB8IFVucmVzb2x2ZWRUcmFjayB8IG51bGwgPSBudWxsO1xuXG5cdC8qKiBUaGUgcHJldmlvdXMgdHJhY2sgKi9cblx0cHVibGljIHByZXZpb3VzOiBUcmFjayB8IFVucmVzb2x2ZWRUcmFjayB8IG51bGwgPSBudWxsO1xuXG5cdC8qKlxuXHQgKiBBZGRzIGEgdHJhY2sgdG8gdGhlIHF1ZXVlLlxuXHQgKiBAcGFyYW0gdHJhY2tcblx0ICogQHBhcmFtIFtvZmZzZXQ9bnVsbF1cblx0ICovXG5cdHB1YmxpYyBhZGQodHJhY2s6IChUcmFjayB8IFVucmVzb2x2ZWRUcmFjaykgfCAoVHJhY2sgfCBVbnJlc29sdmVkVHJhY2spW10sIG9mZnNldD86IG51bWJlcik6IHZvaWQge1xuXHRcdGlmICghVHJhY2tVdGlscy52YWxpZGF0ZSh0cmFjaykpIHtcblx0XHRcdHRocm93IG5ldyBSYW5nZUVycm9yKCdUcmFjayBtdXN0IGJlIGEgXCJUcmFja1wiIG9yIFwiVHJhY2tbXVwiLicpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5jdXJyZW50KSB7XG5cdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh0cmFjaykpIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50ID0gdHJhY2suc2hpZnQoKSB8fCBudWxsO1xuXHRcdFx0XHR0aGlzLnB1c2goLi4udHJhY2spO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5jdXJyZW50ID0gdHJhY2s7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGlmICh0eXBlb2Ygb2Zmc2V0ICE9PSBcInVuZGVmaW5lZFwiICYmIHR5cGVvZiBvZmZzZXQgPT09IFwibnVtYmVyXCIpIHtcblx0XHRcdFx0aWYgKGlzTmFOKG9mZnNldCkpIHtcblx0XHRcdFx0XHR0aHJvdyBuZXcgUmFuZ2VFcnJvcihcIk9mZnNldCBtdXN0IGJlIGEgbnVtYmVyLlwiKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmIChvZmZzZXQgPCAwIHx8IG9mZnNldCA+IHRoaXMubGVuZ3RoKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IFJhbmdlRXJyb3IoYE9mZnNldCBtdXN0IGJlIGJldHdlZW4gMCBhbmQgJHt0aGlzLmxlbmd0aH0uYCk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRpZiAoQXJyYXkuaXNBcnJheSh0cmFjaykpIHtcblx0XHRcdFx0XHR0aGlzLnNwbGljZShvZmZzZXQsIDAsIC4uLnRyYWNrKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnNwbGljZShvZmZzZXQsIDAsIHRyYWNrKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aWYgKEFycmF5LmlzQXJyYXkodHJhY2spKSB7XG5cdFx0XHRcdFx0dGhpcy5wdXNoKC4uLnRyYWNrKTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0aGlzLnB1c2godHJhY2spO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJlbW92ZXMgYSB0cmFjayBmcm9tIHRoZSBxdWV1ZS4gRGVmYXVsdHMgdG8gdGhlIGZpcnN0IHRyYWNrLCByZXR1cm5pbmcgdGhlIHJlbW92ZWQgdHJhY2ssIEVYQ0xVRElORyBUSEUgYGN1cnJlbnRgIFRSQUNLLlxuXHQgKiBAcGFyYW0gW3Bvc2l0aW9uPTBdXG5cdCAqL1xuXHRwdWJsaWMgcmVtb3ZlKHBvc2l0aW9uPzogbnVtYmVyKTogKFRyYWNrIHwgVW5yZXNvbHZlZFRyYWNrKVtdO1xuXG5cdC8qKlxuXHQgKiBSZW1vdmVzIGFuIGFtb3VudCBvZiB0cmFja3MgdXNpbmcgYSBleGNsdXNpdmUgc3RhcnQgYW5kIGVuZCBleGNsdXNpdmUgaW5kZXgsIHJldHVybmluZyB0aGUgcmVtb3ZlZCB0cmFja3MsIEVYQ0xVRElORyBUSEUgYGN1cnJlbnRgIFRSQUNLLlxuXHQgKiBAcGFyYW0gc3RhcnRcblx0ICogQHBhcmFtIGVuZFxuXHQgKi9cblx0cHVibGljIHJlbW92ZShzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcik6IChUcmFjayB8IFVucmVzb2x2ZWRUcmFjaylbXTtcblxuXHRwdWJsaWMgcmVtb3ZlKHN0YXJ0T3JQb3NpdGlvbiA9IDAsIGVuZD86IG51bWJlcik6IChUcmFjayB8IFVucmVzb2x2ZWRUcmFjaylbXSB7XG5cdFx0aWYgKHR5cGVvZiBlbmQgIT09IFwidW5kZWZpbmVkXCIpIHtcblx0XHRcdGlmIChpc05hTihOdW1iZXIoc3RhcnRPclBvc2l0aW9uKSkgfHwgaXNOYU4oTnVtYmVyKGVuZCkpKSB7XG5cdFx0XHRcdHRocm93IG5ldyBSYW5nZUVycm9yKGBNaXNzaW5nIFwic3RhcnRcIiBvciBcImVuZFwiIHBhcmFtZXRlci5gKTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKHN0YXJ0T3JQb3NpdGlvbiA+PSBlbmQgfHwgc3RhcnRPclBvc2l0aW9uID49IHRoaXMubGVuZ3RoKSB7XG5cdFx0XHRcdHRocm93IG5ldyBSYW5nZUVycm9yKFwiSW52YWxpZCBzdGFydCBvciBlbmQgdmFsdWVzLlwiKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHRoaXMuc3BsaWNlKHN0YXJ0T3JQb3NpdGlvbiwgZW5kIC0gc3RhcnRPclBvc2l0aW9uKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5zcGxpY2Uoc3RhcnRPclBvc2l0aW9uLCAxKTtcblx0fVxuXG5cdC8qKiBDbGVhcnMgdGhlIHF1ZXVlLiAqL1xuXHRwdWJsaWMgY2xlYXIoKTogdm9pZCB7XG5cdFx0dGhpcy5zcGxpY2UoMCk7XG5cdH1cblxuXHQvKiogU2h1ZmZsZXMgdGhlIHF1ZXVlLiAqL1xuXHRwdWJsaWMgc2h1ZmZsZSgpOiB2b2lkIHtcblx0XHRmb3IgKGxldCBpID0gdGhpcy5sZW5ndGggLSAxOyBpID4gMDsgaS0tKSB7XG5cdFx0XHRjb25zdCBqID0gTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogKGkgKyAxKSk7XG5cdFx0XHRbdGhpc1tpXSwgdGhpc1tqXV0gPSBbdGhpc1tqXSwgdGhpc1tpXV07XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGVxdWFsaXplZFNodWZmbGUoKSB7XG5cdFx0Y29uc3QgdXNlclRyYWNrcyA9IG5ldyBNYXA8c3RyaW5nLCBBcnJheTxUcmFjayB8IFVucmVzb2x2ZWRUcmFjaz4+KCk7XG5cblx0XHR0aGlzLmZvckVhY2goKHRyYWNrKSA9PiB7XG5cdFx0XHRjb25zdCB1c2VyID0gdHJhY2sucmVxdWVzdGVyLmlkO1xuXG5cdFx0XHRpZiAoIXVzZXJUcmFja3MuaGFzKHVzZXIpKSB7XG5cdFx0XHRcdHVzZXJUcmFja3Muc2V0KHVzZXIsIFtdKTtcblx0XHRcdH1cblxuXHRcdFx0dXNlclRyYWNrcy5nZXQodXNlcikucHVzaCh0cmFjayk7XG5cdFx0fSk7XG5cblx0XHRjb25zdCBzaHVmZmxlZFF1ZXVlOiBBcnJheTxUcmFjayB8IFVucmVzb2x2ZWRUcmFjaz4gPSBbXTtcblxuXHRcdHdoaWxlIChzaHVmZmxlZFF1ZXVlLmxlbmd0aCA8IHRoaXMubGVuZ3RoKSB7XG5cdFx0XHR1c2VyVHJhY2tzLmZvckVhY2goKHRyYWNrcykgPT4ge1xuXHRcdFx0XHRjb25zdCB0cmFjayA9IHRyYWNrcy5zaGlmdCgpO1xuXHRcdFx0XHRpZiAodHJhY2spIHtcblx0XHRcdFx0XHRzaHVmZmxlZFF1ZXVlLnB1c2godHJhY2spO1xuXHRcdFx0XHR9XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHR0aGlzLmNsZWFyKCk7XG5cdFx0dGhpcy5hZGQoc2h1ZmZsZWRRdWV1ZSk7XG5cdFx0Y29uc29sZS5sb2codGhpcyk7XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsTUFBQSxHQUFBQyxPQUFBO0FBQXFDLFNBQUFDLFFBQUFDLENBQUEsc0NBQUFELE9BQUEsd0JBQUFFLE1BQUEsdUJBQUFBLE1BQUEsQ0FBQUMsUUFBQSxhQUFBRixDQUFBLGtCQUFBQSxDQUFBLGdCQUFBQSxDQUFBLFdBQUFBLENBQUEseUJBQUFDLE1BQUEsSUFBQUQsQ0FBQSxDQUFBRyxXQUFBLEtBQUFGLE1BQUEsSUFBQUQsQ0FBQSxLQUFBQyxNQUFBLENBQUFHLFNBQUEscUJBQUFKLENBQUEsS0FBQUQsT0FBQSxDQUFBQyxDQUFBO0FBQUEsU0FBQUssbUJBQUFDLENBQUEsV0FBQUMsa0JBQUEsQ0FBQUQsQ0FBQSxLQUFBRSxnQkFBQSxDQUFBRixDQUFBLEtBQUFHLDJCQUFBLENBQUFILENBQUEsS0FBQUksa0JBQUE7QUFBQSxTQUFBQSxtQkFBQSxjQUFBQyxTQUFBO0FBQUEsU0FBQUYsNEJBQUFILENBQUEsRUFBQU0sQ0FBQSxRQUFBTixDQUFBLDJCQUFBQSxDQUFBLFNBQUFPLGlCQUFBLENBQUFQLENBQUEsRUFBQU0sQ0FBQSxPQUFBRSxDQUFBLE1BQUFDLFFBQUEsQ0FBQUMsSUFBQSxDQUFBVixDQUFBLEVBQUFXLEtBQUEsNkJBQUFILENBQUEsSUFBQVIsQ0FBQSxDQUFBSCxXQUFBLEtBQUFXLENBQUEsR0FBQVIsQ0FBQSxDQUFBSCxXQUFBLENBQUFlLElBQUEsYUFBQUosQ0FBQSxjQUFBQSxDQUFBLEdBQUFLLEtBQUEsQ0FB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
|
@@ -0,0 +1,60 @@
|
|
1
|
+
import { Node } from "./Node";
|
2
|
+
/** Handles the requests sent to the Lavalink REST API. */
|
3
|
+
export declare class Rest {
|
4
|
+
/** The Node that this Rest instance is connected to. */
|
5
|
+
private node;
|
6
|
+
/** The ID of the current session. */
|
7
|
+
private sessionId;
|
8
|
+
/** The password for the Node. */
|
9
|
+
private readonly password;
|
10
|
+
/** The URL of the Node. */
|
11
|
+
private readonly url;
|
12
|
+
constructor(node: Node);
|
13
|
+
/**
|
14
|
+
* Sets the session ID.
|
15
|
+
* @returns {string} Returns the session ID.
|
16
|
+
*/
|
17
|
+
setSessionId(sessionId: string): string;
|
18
|
+
/** Retrieves all the players that are currently running on the node. */
|
19
|
+
getAllPlayers(): Promise<unknown>;
|
20
|
+
/** Sends a PATCH request to update player related data. */
|
21
|
+
updatePlayer(options: playOptions): Promise<unknown>;
|
22
|
+
/** Sends a DELETE request to the server to destroy the player. */
|
23
|
+
destroyPlayer(guildId: string): Promise<unknown>;
|
24
|
+
private request;
|
25
|
+
get(endpoint: string): Promise<unknown>;
|
26
|
+
patch(endpoint: string, body: unknown): Promise<unknown>;
|
27
|
+
post(endpoint: string, body: unknown): Promise<unknown>;
|
28
|
+
delete(endpoint: string): Promise<unknown>;
|
29
|
+
}
|
30
|
+
interface playOptions {
|
31
|
+
guildId: string;
|
32
|
+
data: {
|
33
|
+
/** The base64 encoded track. */
|
34
|
+
encodedTrack?: string;
|
35
|
+
/** The track ID. */
|
36
|
+
identifier?: string;
|
37
|
+
/** The track time to start at. */
|
38
|
+
startTime?: number;
|
39
|
+
/** The track time to end at. */
|
40
|
+
endTime?: number;
|
41
|
+
/** The player volume level. */
|
42
|
+
volume?: number;
|
43
|
+
/** The player position in a track. */
|
44
|
+
position?: number;
|
45
|
+
/** Whether the player is paused. */
|
46
|
+
paused?: boolean;
|
47
|
+
/** The audio effects. */
|
48
|
+
filters?: object;
|
49
|
+
/** voice payload. */
|
50
|
+
voice?: {
|
51
|
+
token: string;
|
52
|
+
sessionId: string;
|
53
|
+
endpoint: string;
|
54
|
+
};
|
55
|
+
/** Whether to not replace the track if a play payload is sent. */
|
56
|
+
noReplace?: boolean;
|
57
|
+
};
|
58
|
+
}
|
59
|
+
export type Method = "GET" | "POST" | "PATCH" | "DELETE";
|
60
|
+
export {};
|