sonatica 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.
Files changed (82) hide show
  1. package/@dist/classes/Database.d.ts +17 -0
  2. package/@dist/classes/Database.d.ts.map +1 -0
  3. package/@dist/classes/Database.js +108 -0
  4. package/@dist/classes/Database.js.map +1 -0
  5. package/@dist/classes/Filters.d.ts +85 -0
  6. package/@dist/classes/Filters.d.ts.map +1 -0
  7. package/@dist/classes/Filters.js +188 -0
  8. package/@dist/classes/Filters.js.map +1 -0
  9. package/@dist/classes/Node.d.ts +41 -0
  10. package/@dist/classes/Node.d.ts.map +1 -0
  11. package/@dist/classes/Node.js +357 -0
  12. package/@dist/classes/Node.js.map +1 -0
  13. package/@dist/classes/Player.d.ts +48 -0
  14. package/@dist/classes/Player.d.ts.map +1 -0
  15. package/@dist/classes/Player.js +299 -0
  16. package/@dist/classes/Player.js.map +1 -0
  17. package/@dist/classes/Queue.d.ts +14 -0
  18. package/@dist/classes/Queue.d.ts.map +1 -0
  19. package/@dist/classes/Queue.js +79 -0
  20. package/@dist/classes/Queue.js.map +1 -0
  21. package/@dist/classes/Rest.d.ts +9 -0
  22. package/@dist/classes/Rest.d.ts.map +1 -0
  23. package/@dist/classes/Rest.js +44 -0
  24. package/@dist/classes/Rest.js.map +1 -0
  25. package/@dist/classes/Sonatica.d.ts +26 -0
  26. package/@dist/classes/Sonatica.d.ts.map +1 -0
  27. package/@dist/classes/Sonatica.js +184 -0
  28. package/@dist/classes/Sonatica.js.map +1 -0
  29. package/@dist/classes/Utils.d.ts +4 -0
  30. package/@dist/classes/Utils.d.ts.map +1 -0
  31. package/@dist/classes/Utils.js +29 -0
  32. package/@dist/classes/Utils.js.map +1 -0
  33. package/@dist/index.d.ts +18 -0
  34. package/@dist/index.d.ts.map +1 -0
  35. package/@dist/index.js +34 -0
  36. package/@dist/index.js.map +1 -0
  37. package/@dist/sorter/leastLoadNode.d.ts +5 -0
  38. package/@dist/sorter/leastLoadNode.d.ts.map +1 -0
  39. package/@dist/sorter/leastLoadNode.js +13 -0
  40. package/@dist/sorter/leastLoadNode.js.map +1 -0
  41. package/@dist/sorter/leastUsedNodes.d.ts +5 -0
  42. package/@dist/sorter/leastUsedNodes.d.ts.map +1 -0
  43. package/@dist/sorter/leastUsedNodes.js +9 -0
  44. package/@dist/sorter/leastUsedNodes.js.map +1 -0
  45. package/@dist/types/Filters.d.ts +5 -0
  46. package/@dist/types/Filters.d.ts.map +1 -0
  47. package/@dist/types/Filters.js +3 -0
  48. package/@dist/types/Filters.js.map +1 -0
  49. package/@dist/types/Node.d.ts +37 -0
  50. package/@dist/types/Node.d.ts.map +1 -0
  51. package/@dist/types/Node.js +3 -0
  52. package/@dist/types/Node.js.map +1 -0
  53. package/@dist/types/Op.d.ts +65 -0
  54. package/@dist/types/Op.d.ts.map +1 -0
  55. package/@dist/types/Op.js +3 -0
  56. package/@dist/types/Op.js.map +1 -0
  57. package/@dist/types/Player.d.ts +39 -0
  58. package/@dist/types/Player.d.ts.map +1 -0
  59. package/@dist/types/Player.js +10 -0
  60. package/@dist/types/Player.js.map +1 -0
  61. package/@dist/types/Rest.d.ts +82 -0
  62. package/@dist/types/Rest.d.ts.map +1 -0
  63. package/@dist/types/Rest.js +3 -0
  64. package/@dist/types/Rest.js.map +1 -0
  65. package/@dist/types/Sonatica.d.ts +49 -0
  66. package/@dist/types/Sonatica.d.ts.map +1 -0
  67. package/@dist/types/Sonatica.js +3 -0
  68. package/@dist/types/Sonatica.js.map +1 -0
  69. package/@dist/utils/equlizers.d.ts +7 -0
  70. package/@dist/utils/equlizers.d.ts.map +1 -0
  71. package/@dist/utils/equlizers.js +85 -0
  72. package/@dist/utils/equlizers.js.map +1 -0
  73. package/@dist/utils/sources.d.ts +10 -0
  74. package/@dist/utils/sources.d.ts.map +1 -0
  75. package/@dist/utils/sources.js +14 -0
  76. package/@dist/utils/sources.js.map +1 -0
  77. package/@dist/utils/utils.d.ts +17 -0
  78. package/@dist/utils/utils.d.ts.map +1 -0
  79. package/@dist/utils/utils.js +119 -0
  80. package/@dist/utils/utils.js.map +1 -0
  81. package/README.md +30 -0
  82. package/package.json +43 -0
@@ -0,0 +1,299 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Player = void 0;
16
+ const leastLoadNode_1 = __importDefault(require("../sorter/leastLoadNode"));
17
+ const Filters_1 = require("./Filters");
18
+ const Queue_1 = require("./Queue");
19
+ const utils_1 = require("../utils/utils");
20
+ class Player {
21
+ set(key, value) {
22
+ this.data[key] = value;
23
+ }
24
+ get(key) {
25
+ return this.data[key];
26
+ }
27
+ static init(sonatica) {
28
+ this._sonatica = sonatica;
29
+ }
30
+ constructor(options) {
31
+ var _a, _b;
32
+ this.options = options;
33
+ this.queue = new Queue_1.Queue();
34
+ this.repeatMode = 0;
35
+ this.position = 0;
36
+ this.playing = false;
37
+ this.paused = false;
38
+ this.isAutoplay = false;
39
+ this.voiceChannel = null;
40
+ this.textChannel = null;
41
+ this.state = "DISCONNECTED";
42
+ this.bands = new Array(15).fill(0.0);
43
+ this.data = {};
44
+ if (!this.sonatica)
45
+ this.sonatica = Player._sonatica;
46
+ if (this.sonatica.players.has(options.guild))
47
+ return this.sonatica.players.get(options.guild);
48
+ this.guild = options.guild;
49
+ this.data = (_a = options.data) !== null && _a !== void 0 ? _a : {};
50
+ this.voiceState = Object.assign({ op: "voiceUpdate", guild_id: options.guild });
51
+ if (options.voiceChannel)
52
+ this.voiceChannel = options.voiceChannel;
53
+ if (options.textChannel)
54
+ this.textChannel = options.textChannel;
55
+ const node = this.sonatica.nodes.get(options.node);
56
+ this.node =
57
+ node ||
58
+ (0, leastLoadNode_1.default)(this.sonatica.nodes)
59
+ .filter((node) => node.options.playback)
60
+ .first();
61
+ this.sonatica.players.set(this.guild, this);
62
+ this.sonatica.emit("playerCreate", this);
63
+ this.volume = (_b = options.volume) !== null && _b !== void 0 ? _b : 80;
64
+ this.filters = new Filters_1.Filters(this);
65
+ }
66
+ search(query, requester) {
67
+ return this.sonatica.search(query, requester);
68
+ }
69
+ connect() {
70
+ if (!this.voiceChannel)
71
+ throw new RangeError("No voice channel has been set.");
72
+ this.state = "CONNECTING";
73
+ this.sonatica.options.send(this.guild, {
74
+ op: 4,
75
+ d: {
76
+ guild_id: this.guild,
77
+ channel_id: this.voiceChannel,
78
+ self_mute: this.options.selfMute || false,
79
+ self_deaf: this.options.selfDeafen || false,
80
+ },
81
+ });
82
+ this.state = "CONNECTED";
83
+ return this;
84
+ }
85
+ disconnect() {
86
+ if (this.voiceChannel === null)
87
+ return this;
88
+ this.state = "DISCONNECTING";
89
+ this.sonatica.options.send(this.guild, {
90
+ op: 4,
91
+ d: {
92
+ guild_id: this.guild,
93
+ channel_id: null,
94
+ self_mute: false,
95
+ self_deaf: false,
96
+ },
97
+ });
98
+ this.voiceChannel = null;
99
+ this.state = "DISCONNECTED";
100
+ return this;
101
+ }
102
+ destroy(disconnect = true) {
103
+ this.state = "DESTROYING";
104
+ if (disconnect)
105
+ this.disconnect();
106
+ this.node.rest.request("DELETE", `/sessions/${this.node.sessionId}/players/${this.guild}`);
107
+ this.sonatica.emit("playerDestroy", this);
108
+ this.sonatica.players.delete(this.guild);
109
+ }
110
+ setVoiceChannel(channel) {
111
+ if (typeof channel !== "string")
112
+ throw new TypeError("Channel must be a non-empty string.");
113
+ this.voiceChannel = channel;
114
+ this.connect();
115
+ return this;
116
+ }
117
+ setTextChannel(channel) {
118
+ if (typeof channel !== "string")
119
+ throw new TypeError("Channel must be a non-empty string.");
120
+ this.textChannel = channel;
121
+ return this;
122
+ }
123
+ setVolume(volume) {
124
+ return __awaiter(this, void 0, void 0, function* () {
125
+ if (isNaN(volume))
126
+ throw new TypeError("Volume must be a number.");
127
+ yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, { volume });
128
+ this.volume = volume;
129
+ return this;
130
+ });
131
+ }
132
+ setAutoplay(state) {
133
+ if (typeof state !== "boolean") {
134
+ throw new TypeError('state must be a "true" or "false".');
135
+ }
136
+ this.isAutoplay = state;
137
+ return this;
138
+ }
139
+ setRepeat(mode) {
140
+ if (typeof mode !== "number") {
141
+ throw new TypeError("mode must be a number.");
142
+ }
143
+ this.repeatMode = mode;
144
+ return this;
145
+ }
146
+ moveNode(node) {
147
+ return __awaiter(this, void 0, void 0, function* () {
148
+ var _a, _b, _c, _d;
149
+ if (!node)
150
+ node = (_a = (0, leastLoadNode_1.default)(this.sonatica.nodes)
151
+ .filter((node) => node.options.playback)
152
+ .first()) === null || _a === void 0 ? void 0 : _a.options.identifier;
153
+ if (!node || !this.sonatica.nodes.get(node))
154
+ throw new RangeError("No nodes are available.");
155
+ if (this.node.options.identifier === node)
156
+ return this;
157
+ const destroyOldNode = (node) => __awaiter(this, void 0, void 0, function* () {
158
+ this.state = "MOVING";
159
+ if (this.sonatica.nodes.get(node.options.identifier) && this.sonatica.nodes.get(node.options.identifier).connected)
160
+ yield node.rest.request("DELETE", `/sessions/${node.sessionId}/players/${this.guild}`);
161
+ setTimeout(() => (this.state = "CONNECTED"), 5000);
162
+ });
163
+ const currentNode = this.node;
164
+ const destinationNode = this.sonatica.nodes.get(node);
165
+ let position = this.position;
166
+ if (currentNode.connected) {
167
+ const fetchedPlayer = yield currentNode.rest.request("GET", `/sessions/${currentNode.sessionId}/players/${this.guild}`);
168
+ position = fetchedPlayer.track.info.position;
169
+ }
170
+ yield destinationNode.rest.request("PATCH", `/sessions/${destinationNode.sessionId}/players/${this.guild}?noReplace=false`, {
171
+ track: { encoded: (_b = this.queue.current) === null || _b === void 0 ? void 0 : _b.track, userData: (_c = this.queue.current) === null || _c === void 0 ? void 0 : _c.requester },
172
+ position: position,
173
+ volume: this.volume,
174
+ paused: this.paused,
175
+ filters: {
176
+ distortion: this.filters.distortion,
177
+ equalizer: this.filters.equalizer,
178
+ karaoke: this.filters.karaoke,
179
+ rotation: this.filters.rotation,
180
+ timescale: this.filters.timescale,
181
+ vibrato: this.filters.vibrato,
182
+ volume: this.filters.volume,
183
+ },
184
+ voice: {
185
+ token: this.voiceState.event.token,
186
+ endpoint: this.voiceState.event.endpoint,
187
+ sessionId: (_d = this.voiceState) === null || _d === void 0 ? void 0 : _d.sessionId,
188
+ },
189
+ });
190
+ this.node = destinationNode;
191
+ destroyOldNode(currentNode);
192
+ return this;
193
+ });
194
+ }
195
+ play(track) {
196
+ return __awaiter(this, void 0, void 0, function* () {
197
+ if (typeof track !== "undefined" && utils_1.TrackUtils.validate(track)) {
198
+ if (this.queue.current)
199
+ this.queue.previous = this.queue.current;
200
+ this.queue.current = track;
201
+ }
202
+ if (!this.queue.current)
203
+ throw new RangeError("No current track.");
204
+ if (utils_1.TrackUtils.isUnresolvedTrack(this.queue.current)) {
205
+ try {
206
+ this.queue.current = yield utils_1.TrackUtils.getClosestTrack(this.queue.current);
207
+ }
208
+ catch (error) {
209
+ this.sonatica.emit("trackError", this, this.queue.current, error);
210
+ if (this.queue[0])
211
+ return this.play(this.queue[0]);
212
+ return;
213
+ }
214
+ }
215
+ yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, {
216
+ track: {
217
+ encoded: this.queue.current.track,
218
+ userData: this.queue.current.requester,
219
+ },
220
+ position: this.position,
221
+ endTime: null,
222
+ volume: this.volume,
223
+ filters: {
224
+ distortion: this.filters.distortion,
225
+ equalizer: this.filters.equalizer,
226
+ karaoke: this.filters.karaoke,
227
+ rotation: this.filters.rotation,
228
+ timescale: this.filters.timescale,
229
+ vibrato: this.filters.vibrato,
230
+ volume: this.filters.volume,
231
+ },
232
+ paused: this.paused,
233
+ });
234
+ this.save();
235
+ this.position = 0;
236
+ this.playing = true;
237
+ });
238
+ }
239
+ stop(amount) {
240
+ return __awaiter(this, void 0, void 0, function* () {
241
+ if (typeof amount === "number" && amount > 1) {
242
+ if (amount > this.queue.length)
243
+ throw new RangeError("Cannot skip more than the queue length.");
244
+ this.queue.splice(0, amount - 1);
245
+ }
246
+ yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, {
247
+ encodedTrack: null,
248
+ });
249
+ return this;
250
+ });
251
+ }
252
+ pause(paused) {
253
+ return __awaiter(this, void 0, void 0, function* () {
254
+ yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, { paused: paused });
255
+ return this;
256
+ });
257
+ }
258
+ previous() {
259
+ return __awaiter(this, void 0, void 0, function* () {
260
+ this.queue.unshift(this.queue.previous);
261
+ yield this.stop();
262
+ return this;
263
+ });
264
+ }
265
+ seek(position) {
266
+ return __awaiter(this, void 0, void 0, function* () {
267
+ if (!this.queue.current)
268
+ return undefined;
269
+ position = Number(position);
270
+ if (isNaN(position)) {
271
+ throw new TypeError("Position must be a number.");
272
+ }
273
+ if (position < 0 || position > this.queue.current.duration)
274
+ position = Math.max(Math.min(position, this.queue.current.duration), 0);
275
+ this.position = position;
276
+ yield this.node.rest.request("PATCH", `/sessions/${this.node.sessionId}/players/${this.guild}?noReplace=false`, { position: position });
277
+ return this;
278
+ });
279
+ }
280
+ save() {
281
+ if (!this.sonatica.options.autoResume)
282
+ return;
283
+ this.sonatica.db.set(`players.${this.guild}`, {
284
+ guild: this.guild,
285
+ voiceChannel: this.voiceChannel,
286
+ textChannel: this.textChannel,
287
+ volume: this.volume,
288
+ data: this.data,
289
+ selfDeafen: this.options.selfDeafen,
290
+ selfMute: this.options.selfMute,
291
+ repeatMode: this.repeatMode,
292
+ isAutoplay: this.isAutoplay,
293
+ current: this.queue.current ? this.queue.current.track : null,
294
+ queue: this.queue.map((track) => track.track),
295
+ });
296
+ }
297
+ }
298
+ exports.Player = Player;
299
+ //# sourceMappingURL=Player.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Player.js","sourceRoot":"","sources":["../../src/classes/Player.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { Track, UnresolvedTrack } from "../types/Player";
2
+ export declare class Queue extends Array<Track | UnresolvedTrack> {
3
+ current: Track | UnresolvedTrack | null;
4
+ previous: Track | UnresolvedTrack | null;
5
+ get totalSize(): number;
6
+ get size(): number;
7
+ get duration(): number;
8
+ add(track: (Track | UnresolvedTrack) | (Track | UnresolvedTrack)[], offset?: number): void;
9
+ remove(position?: number): (Track | UnresolvedTrack)[];
10
+ remove(start: number, end: number): (Track | UnresolvedTrack)[];
11
+ clear(): void;
12
+ shuffle(): void;
13
+ }
14
+ //# sourceMappingURL=Queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Queue.d.ts","sourceRoot":"","sources":["../../src/classes/Queue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEzD,qBAAa,KAAM,SAAQ,KAAK,CAAC,KAAK,GAAG,eAAe,CAAC;IAChD,OAAO,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAC/C,QAAQ,EAAE,KAAK,GAAG,eAAe,GAAG,IAAI,CAAQ;IAEvD,IAAW,SAAS,IAAI,MAAM,CAE9B;IAEA,IAAW,IAAI,IAAI,MAAM,CAEzB;IAEA,IAAW,QAAQ,IAAI,MAAM,CAG7B;IAEO,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAiC1F,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IACvD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,GAAG,eAAe,CAAC,EAAE;IAiB9D,KAAK,IAAI,IAAI;IAIb,OAAO,IAAI,IAAI;CAMvB"}
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Queue = void 0;
4
+ class Queue extends Array {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.current = null;
8
+ this.previous = null;
9
+ }
10
+ get totalSize() {
11
+ return this.length + (this.current ? 1 : 0);
12
+ }
13
+ get size() {
14
+ return this.totalSize;
15
+ }
16
+ get duration() {
17
+ var _a, _b;
18
+ const current = (_b = (_a = this.current) === null || _a === void 0 ? void 0 : _a.duration) !== null && _b !== void 0 ? _b : 0;
19
+ return this.reduce((acc, cur) => acc + (cur.duration || 0), current);
20
+ }
21
+ add(track, offset) {
22
+ if (!this.current) {
23
+ if (Array.isArray(track)) {
24
+ this.current = track.shift() || null;
25
+ this.push(...track);
26
+ }
27
+ else {
28
+ this.current = track;
29
+ }
30
+ }
31
+ else {
32
+ if (typeof offset !== "undefined" && typeof offset === "number") {
33
+ if (isNaN(offset)) {
34
+ throw new RangeError("Offset must be a number.");
35
+ }
36
+ if (offset < 0 || offset > this.length) {
37
+ throw new RangeError(`Offset must be between 0 and ${this.length}.`);
38
+ }
39
+ if (Array.isArray(track)) {
40
+ this.splice(offset, 0, ...track);
41
+ }
42
+ else {
43
+ this.splice(offset, 0, track);
44
+ }
45
+ }
46
+ else {
47
+ if (Array.isArray(track)) {
48
+ this.push(...track);
49
+ }
50
+ else {
51
+ this.push(track);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ remove(startOrPosition = 0, end) {
57
+ if (typeof end !== "undefined") {
58
+ if (isNaN(Number(startOrPosition)) || isNaN(Number(end))) {
59
+ throw new RangeError(`Missing "start" or "end" parameter.`);
60
+ }
61
+ if (startOrPosition >= end || startOrPosition >= this.length) {
62
+ throw new RangeError("Invalid start or end values.");
63
+ }
64
+ return this.splice(startOrPosition, end - startOrPosition);
65
+ }
66
+ return this.splice(startOrPosition, 1);
67
+ }
68
+ clear() {
69
+ this.splice(0);
70
+ }
71
+ shuffle() {
72
+ for (let i = this.length - 1; i > 0; i--) {
73
+ const j = Math.floor(Math.random() * (i + 1));
74
+ [this[i], this[j]] = [this[j], this[i]];
75
+ }
76
+ }
77
+ }
78
+ exports.Queue = Queue;
79
+ //# sourceMappingURL=Queue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Queue.js","sourceRoot":"","sources":["../../src/classes/Queue.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { Method } from "axios";
2
+ import { Node } from "./Node";
3
+ export declare class Rest {
4
+ private readonly password;
5
+ private readonly url;
6
+ constructor(node: Node);
7
+ request(method: Method, endpoint: string, payload?: object | unknown): Promise<unknown>;
8
+ }
9
+ //# sourceMappingURL=Rest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rest.d.ts","sourceRoot":"","sources":["../../src/classes/Rest.ts"],"names":[],"mappings":"AAAA,OAAc,EAAsB,MAAM,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,IAAI;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;gBAEjB,IAAI,EAAE,IAAI;IAKT,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAkBpG"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.Rest = void 0;
16
+ const axios_1 = __importDefault(require("axios"));
17
+ class Rest {
18
+ constructor(node) {
19
+ this.url = `http${node.options.secure ? "s" : ""}://${node.options.host}:${node.options.port}/v4`;
20
+ this.password = node.options.password;
21
+ }
22
+ request(method, endpoint, payload) {
23
+ return __awaiter(this, void 0, void 0, function* () {
24
+ try {
25
+ const response = yield (0, axios_1.default)({
26
+ method,
27
+ data: payload,
28
+ cache: false,
29
+ url: this.url + endpoint,
30
+ headers: {
31
+ "Content-Type": "application/json",
32
+ Authorization: this.password,
33
+ },
34
+ });
35
+ return response.data;
36
+ }
37
+ catch (e) {
38
+ return null;
39
+ }
40
+ });
41
+ }
42
+ }
43
+ exports.Rest = Rest;
44
+ //# sourceMappingURL=Rest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Rest.js","sourceRoot":"","sources":["../../src/classes/Rest.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kDAA0D;AAG1D,MAAa,IAAI;IAIhB,YAAY,IAAU;QACrB,IAAI,CAAC,GAAG,GAAG,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;QAClG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC;IACvC,CAAC;IAEY,OAAO,CAAC,MAAc,EAAE,QAAgB,EAAE,OAA0B;;YAChF,IAAI,CAAC;gBACJ,MAAM,QAAQ,GAAG,MAAM,IAAA,eAAK,EAAC;oBAC5B,MAAM;oBACN,IAAI,EAAE,OAAO;oBACb,KAAK,EAAE,KAAK;oBACZ,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,QAAQ;oBACxB,OAAO,EAAE;wBACR,cAAc,EAAE,kBAAkB;wBAClC,aAAa,EAAE,IAAI,CAAC,QAAQ;qBAC5B;iBACqB,CAAC,CAAC;gBAEzB,OAAO,QAAQ,CAAC,IAAI,CAAC;YACtB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,OAAO,IAAI,CAAC;YACb,CAAC;QACF,CAAC;KAAA;CACD;AA3BD,oBA2BC"}
@@ -0,0 +1,26 @@
1
+ import { Collection } from "@discordjs/collection";
2
+ import { EventEmitter } from "events";
3
+ import { SonaticaOptions, SearchQuery, VoicePacket, VoiceServer, VoiceState } from "../types/Sonatica";
4
+ import { Node } from "./Node";
5
+ import { Player } from "./Player";
6
+ import { Database } from "./Database";
7
+ import { PlayerOptions } from "../types/Player";
8
+ import { SearchResult, TrackData } from "../types/Rest";
9
+ export declare class Sonatica extends EventEmitter {
10
+ readonly nodes: Collection<string, Node>;
11
+ readonly players: Collection<string, Player>;
12
+ db: Database;
13
+ options: SonaticaOptions;
14
+ private initiated;
15
+ constructor(options: SonaticaOptions);
16
+ init(clientId: string): this;
17
+ search(query: SearchQuery, requester?: unknown): Promise<SearchResult>;
18
+ decodeTracks(tracks: string[]): Promise<TrackData[]>;
19
+ decodeTrack(track: string): Promise<TrackData>;
20
+ create(options: PlayerOptions): Player;
21
+ get(guild: string): Player | undefined;
22
+ destroy(guild: string): void;
23
+ destroyNode(identifier: string): void;
24
+ updateVoiceState(payload: VoicePacket | VoiceState | VoiceServer): Promise<void>;
25
+ }
26
+ //# sourceMappingURL=Sonatica.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Sonatica.d.ts","sourceRoot":"","sources":["../../src/classes/Sonatica.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACvG,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAmC,YAAY,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAIzF,qBAAa,QAAS,SAAQ,YAAY;IACzC,SAAgB,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAoB;IACnE,SAAgB,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,CAAoB;IAChE,EAAE,EAAE,QAAQ,CAAQ;IACpB,OAAO,EAAE,eAAe,CAAC;IAEhC,OAAO,CAAC,SAAS,CAAkB;gBAEvB,OAAO,EAAE,eAAe;IAqB7B,IAAI,CAAC,QAAQ,EAAE,MAAM;IAkBf,MAAM,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,CAAC,EAAE,OAAO;IAwD9C,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAYpD,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKpD,MAAM,CAAC,OAAO,EAAE,aAAa;IAK7B,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAItC,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAI5B,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAO/B,gBAAgB,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW;CAkC7E"}