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,17 @@
1
+ type Data = Record<string, any>;
2
+ export declare class Database {
3
+ data: Data;
4
+ id: string;
5
+ shards: number;
6
+ constructor(clientId: string, shards: number);
7
+ set<T>(key: string, value: T): void;
8
+ get<T>(key: string): T | undefined;
9
+ push<T>(key: string, value: T): void;
10
+ delete(key: string): boolean;
11
+ private updateData;
12
+ private getFilePath;
13
+ fetch(): void;
14
+ private save;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=Database.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.d.ts","sourceRoot":"","sources":["../../src/classes/Database.ts"],"names":[],"mappings":"AAGA,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEhC,qBAAa,QAAQ;IACb,IAAI,EAAE,IAAI,CAAM;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;gBAEV,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM5C,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAUnC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAOlC,IAAI,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI;IAUpC,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAuB5B,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,WAAW;IAInB,KAAK;IAoBL,OAAO,CAAC,IAAI;CAQZ"}
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Database = void 0;
7
+ const fs_1 = __importDefault(require("fs"));
8
+ const path_1 = __importDefault(require("path"));
9
+ class Database {
10
+ constructor(clientId, shards) {
11
+ this.data = {};
12
+ this.fetch();
13
+ this.shards = shards;
14
+ this.id = clientId;
15
+ }
16
+ set(key, value) {
17
+ if (!key)
18
+ throw new Error('"key" is empty');
19
+ const keys = key.split(".");
20
+ if (keys.length === 0)
21
+ return;
22
+ this.updateData(this.data, keys, value);
23
+ this.save();
24
+ }
25
+ get(key) {
26
+ var _a;
27
+ if (!key)
28
+ throw new Error('"key" is empty');
29
+ if (Object.keys(this.data).length === 0)
30
+ this.fetch();
31
+ return (_a = key.split(".").reduce((acc, curr) => acc === null || acc === void 0 ? void 0 : acc[curr], this.data)) !== null && _a !== void 0 ? _a : null;
32
+ }
33
+ push(key, value) {
34
+ if (!key)
35
+ throw new Error('"key" is empty');
36
+ const oldArray = this.get(key) || [];
37
+ if (!Array.isArray(oldArray))
38
+ throw new Error("Key does not point to an array");
39
+ oldArray.push(value);
40
+ this.set(key, oldArray);
41
+ }
42
+ delete(key) {
43
+ if (!key)
44
+ throw new Error('"key" is empty');
45
+ const keys = key.split(".");
46
+ if (keys.length === 0)
47
+ return false;
48
+ const lastKey = keys.pop() || "";
49
+ let currentObj = this.data;
50
+ keys.map((k) => {
51
+ if (typeof currentObj[k] === "object")
52
+ currentObj = currentObj[k];
53
+ else
54
+ throw new Error(`Key path "${key}" does not exist`);
55
+ });
56
+ if (currentObj && lastKey in currentObj) {
57
+ delete currentObj[lastKey];
58
+ this.save();
59
+ return true;
60
+ }
61
+ return false;
62
+ }
63
+ updateData(data, keys, value) {
64
+ let currentObj = data;
65
+ keys.forEach((key, index) => {
66
+ if (index === keys.length - 1)
67
+ currentObj[key] = value;
68
+ else {
69
+ if (typeof currentObj[key] !== "object")
70
+ currentObj[key] = {};
71
+ currentObj = currentObj[key];
72
+ }
73
+ });
74
+ }
75
+ getFilePath() {
76
+ return path_1.default.join(__dirname, "../datastore", `database-${this.shards}-${this.id}.json`);
77
+ }
78
+ fetch() {
79
+ try {
80
+ const directory = path_1.default.join(__dirname, "../datastore");
81
+ if (!fs_1.default.existsSync(directory)) {
82
+ fs_1.default.mkdirSync(directory, { recursive: true });
83
+ }
84
+ const filePath = this.getFilePath();
85
+ const rawData = fs_1.default.readFileSync(filePath, "utf-8");
86
+ this.data = JSON.parse(rawData) || {};
87
+ }
88
+ catch (err) {
89
+ if (err.code === "ENOENT") {
90
+ this.data = {};
91
+ }
92
+ else {
93
+ throw new Error("Failed to fetch data");
94
+ }
95
+ }
96
+ }
97
+ save() {
98
+ try {
99
+ const filePath = this.getFilePath();
100
+ fs_1.default.writeFileSync(filePath, JSON.stringify(this.data));
101
+ }
102
+ catch (error) {
103
+ throw new Error("Failed to save data");
104
+ }
105
+ }
106
+ }
107
+ exports.Database = Database;
108
+ //# sourceMappingURL=Database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Database.js","sourceRoot":"","sources":["../../src/classes/Database.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,85 @@
1
+ import { Band } from "../types/Filters";
2
+ import { Player } from "./Player";
3
+ export declare class Filters {
4
+ distortion: distortionOptions | null;
5
+ equalizer: Band[];
6
+ karaoke: karaokeOptions | null;
7
+ player: Player;
8
+ rotation: rotationOptions | null;
9
+ timescale: timescaleOptions | null;
10
+ vibrato: vibratoOptions | null;
11
+ volume: number;
12
+ private filterStatus;
13
+ constructor(player: Player);
14
+ getFilters(): {
15
+ distortion: distortionOptions;
16
+ equalizer: Band[];
17
+ karaoke: karaokeOptions;
18
+ rotation: rotationOptions;
19
+ timescale: timescaleOptions;
20
+ vibrato: vibratoOptions;
21
+ volume: number;
22
+ };
23
+ updateFilters(): Promise<this>;
24
+ private applyFilter;
25
+ private setFilterStatus;
26
+ setEqualizer(bands?: Band[]): this;
27
+ eightD(): this;
28
+ bassBoost(): this;
29
+ nightcore(): this;
30
+ slowmo(): this;
31
+ soft(): this;
32
+ tv(): this;
33
+ trebleBass(): this;
34
+ vaporwave(): this;
35
+ distort(): this;
36
+ setKaraoke(karaoke?: karaokeOptions): this;
37
+ setTimescale(timescale?: timescaleOptions): this;
38
+ setVibrato(vibrato?: vibratoOptions): this;
39
+ setRotation(rotation?: rotationOptions): this;
40
+ setDistortion(distortion?: distortionOptions): this;
41
+ clearFilters(): Promise<this>;
42
+ getFilterStatus(filter: keyof availableFilters): boolean;
43
+ }
44
+ interface timescaleOptions {
45
+ speed?: number;
46
+ pitch?: number;
47
+ rate?: number;
48
+ }
49
+ interface vibratoOptions {
50
+ frequency: number;
51
+ depth: number;
52
+ }
53
+ interface rotationOptions {
54
+ rotationHz: number;
55
+ }
56
+ interface karaokeOptions {
57
+ level?: number;
58
+ monoLevel?: number;
59
+ filterBand?: number;
60
+ filterWidth?: number;
61
+ }
62
+ interface distortionOptions {
63
+ sinOffset?: number;
64
+ sinScale?: number;
65
+ cosOffset?: number;
66
+ cosScale?: number;
67
+ tanOffset?: number;
68
+ tanScale?: number;
69
+ offset?: number;
70
+ scale?: number;
71
+ }
72
+ interface availableFilters {
73
+ bassboost: boolean;
74
+ distort: boolean;
75
+ eightD: boolean;
76
+ karaoke: boolean;
77
+ nightcore: boolean;
78
+ slowmo: boolean;
79
+ soft: boolean;
80
+ trebleBass: boolean;
81
+ tv: boolean;
82
+ vaporwave: boolean;
83
+ }
84
+ export {};
85
+ //# sourceMappingURL=Filters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.d.ts","sourceRoot":"","sources":["../../src/classes/Filters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,qBAAa,OAAO;IACZ,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACrC,SAAS,EAAE,IAAI,EAAE,CAAC;IAClB,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,YAAY,CAElB;gBAEU,MAAM,EAAE,MAAM;IAuBnB,UAAU;;;;;;;;;IAMJ,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAU3C,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,eAAe;IAKhB,YAAY,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI;IAIlC,MAAM,IAAI,IAAI;IAId,SAAS,IAAI,IAAI;IAIjB,SAAS,IAAI,IAAI;IAQjB,MAAM,IAAI,IAAI;IAQd,IAAI,IAAI,IAAI;IAIZ,EAAE,IAAI,IAAI;IAIV,UAAU,IAAI,IAAI;IAIlB,SAAS,IAAI,IAAI;IAIjB,OAAO,IAAI,IAAI;IAaf,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAO1C,YAAY,CAAC,SAAS,CAAC,EAAE,gBAAgB,GAAG,IAAI;IAIhD,UAAU,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,IAAI;IAI1C,WAAW,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,IAAI;IAI7C,aAAa,CAAC,UAAU,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAI7C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IA0BnC,eAAe,CAAC,MAAM,EAAE,MAAM,gBAAgB,GAAG,OAAO;CAG/D;AAED,UAAU,gBAAgB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED,UAAU,cAAc;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACxB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,UAAU,cAAc;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,UAAU,iBAAiB;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,gBAAgB;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;CACnB"}
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.Filters = void 0;
46
+ const equlizers = __importStar(require("../utils/equlizers"));
47
+ class Filters {
48
+ constructor(player) {
49
+ this.distortion = null;
50
+ this.equalizer = [];
51
+ this.karaoke = null;
52
+ this.player = player;
53
+ this.rotation = null;
54
+ this.timescale = null;
55
+ this.vibrato = null;
56
+ this.volume = 1.0;
57
+ this.filterStatus = {
58
+ bassboost: false,
59
+ distort: false,
60
+ eightD: false,
61
+ karaoke: false,
62
+ nightcore: false,
63
+ slowmo: false,
64
+ soft: false,
65
+ trebleBass: false,
66
+ tv: false,
67
+ vaporwave: false,
68
+ };
69
+ }
70
+ getFilters() {
71
+ const { distortion, equalizer, karaoke, rotation, timescale, vibrato, volume } = this;
72
+ return { distortion, equalizer, karaoke, rotation, timescale, vibrato, volume };
73
+ }
74
+ updateFilters() {
75
+ return __awaiter(this, void 0, void 0, function* () {
76
+ yield this.player.node.rest.request("PATCH", `/sessions/${this.player.node.sessionId}/players/${this.player.guild}?noReplace=false`, {
77
+ filters: this.getFilters(),
78
+ });
79
+ return this;
80
+ });
81
+ }
82
+ applyFilter(filter, updateFilters = true) {
83
+ this[filter.property] = filter.value;
84
+ if (updateFilters) {
85
+ this.updateFilters();
86
+ }
87
+ return this;
88
+ }
89
+ setFilterStatus(filter, status) {
90
+ this.filterStatus[filter] = status;
91
+ return this;
92
+ }
93
+ setEqualizer(bands) {
94
+ return this.applyFilter({ property: "equalizer", value: bands });
95
+ }
96
+ eightD() {
97
+ return this.setRotation({ rotationHz: 0.2 }).setFilterStatus("eightD", true);
98
+ }
99
+ bassBoost() {
100
+ return this.setEqualizer(equlizers.bassBoostEqualizer).setFilterStatus("bassboost", true);
101
+ }
102
+ nightcore() {
103
+ return this.setTimescale({
104
+ speed: 1.1,
105
+ pitch: 1.125,
106
+ rate: 1.05,
107
+ }).setFilterStatus("nightcore", true);
108
+ }
109
+ slowmo() {
110
+ return this.setTimescale({
111
+ speed: 0.7,
112
+ pitch: 1.0,
113
+ rate: 0.8,
114
+ }).setFilterStatus("slowmo", true);
115
+ }
116
+ soft() {
117
+ return this.setEqualizer(equlizers.softEqualizer).setFilterStatus("soft", true);
118
+ }
119
+ tv() {
120
+ return this.setEqualizer(equlizers.tvEqualizer).setFilterStatus("tv", true);
121
+ }
122
+ trebleBass() {
123
+ return this.setEqualizer(equlizers.trebleBassEqualizer).setFilterStatus("trebleBass", true);
124
+ }
125
+ vaporwave() {
126
+ return this.setEqualizer(equlizers.vaporwaveEqualizer).setTimescale({ pitch: 0.55 }).setFilterStatus("vaporwave", true);
127
+ }
128
+ distort() {
129
+ return this.setDistortion({
130
+ sinOffset: 0,
131
+ sinScale: 0.2,
132
+ cosOffset: 0,
133
+ cosScale: 0.2,
134
+ tanOffset: 0,
135
+ tanScale: 0.2,
136
+ offset: 0,
137
+ scale: 1.2,
138
+ }).setFilterStatus("distort", true);
139
+ }
140
+ setKaraoke(karaoke) {
141
+ return this.applyFilter({
142
+ property: "karaoke",
143
+ value: karaoke,
144
+ }).setFilterStatus("karaoke", true);
145
+ }
146
+ setTimescale(timescale) {
147
+ return this.applyFilter({ property: "timescale", value: timescale });
148
+ }
149
+ setVibrato(vibrato) {
150
+ return this.applyFilter({ property: "vibrato", value: vibrato });
151
+ }
152
+ setRotation(rotation) {
153
+ return this.applyFilter({ property: "rotation", value: rotation });
154
+ }
155
+ setDistortion(distortion) {
156
+ return this.applyFilter({ property: "distortion", value: distortion });
157
+ }
158
+ clearFilters() {
159
+ return __awaiter(this, void 0, void 0, function* () {
160
+ this.filterStatus = {
161
+ bassboost: false,
162
+ distort: false,
163
+ eightD: false,
164
+ karaoke: false,
165
+ nightcore: false,
166
+ slowmo: false,
167
+ soft: false,
168
+ trebleBass: false,
169
+ tv: false,
170
+ vaporwave: false,
171
+ };
172
+ this.player.filters = new Filters(this.player);
173
+ this.setEqualizer([]);
174
+ this.setDistortion(null);
175
+ this.setKaraoke(null);
176
+ this.setRotation(null);
177
+ this.setTimescale(null);
178
+ this.setVibrato(null);
179
+ yield this.updateFilters();
180
+ return this;
181
+ });
182
+ }
183
+ getFilterStatus(filter) {
184
+ return this.filterStatus[filter];
185
+ }
186
+ }
187
+ exports.Filters = Filters;
188
+ //# sourceMappingURL=Filters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filters.js","sourceRoot":"","sources":["../../src/classes/Filters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { WebSocket } from "ws";
2
+ import { NodeOptions, NodeStats } from "../types/Node";
3
+ import { Sonatica } from "./Sonatica";
4
+ import { Rest } from "./Rest";
5
+ import { EventOp, TrackEndEvent, TrackExceptionEvent, TrackStartEvent, TrackStuckEvent, WebSocketClosedEvent } from "../types/Op";
6
+ import { Player } from "./Player";
7
+ import { UnresolvedTrack, Track } from "../types/Player";
8
+ export declare class Node {
9
+ options: NodeOptions;
10
+ private static _sonatica;
11
+ isEnabled: boolean;
12
+ rest: Rest;
13
+ sessionId: string;
14
+ sonatica: Sonatica;
15
+ ws: WebSocket;
16
+ stats: NodeStats;
17
+ private reconnectTimeout?;
18
+ private reconnectAttempts;
19
+ private lastestOp;
20
+ get connected(): boolean;
21
+ get address(): string;
22
+ static init(sonatica: Sonatica): void;
23
+ constructor(options: NodeOptions);
24
+ connect(): void;
25
+ protected open(): void;
26
+ protected close(code: number, reason: string): void;
27
+ protected error(error: Error): void;
28
+ protected message(d: Buffer | string): Promise<boolean>;
29
+ protected handleOp(payload: EventOp): void;
30
+ protected trackStart(player: Player, track: Track, payload: TrackStartEvent): void;
31
+ protected trackEnd(player: Player, track: Track, payload: TrackEndEvent): Promise<void>;
32
+ protected trackStuck(player: Player, track: Track, payload: TrackStuckEvent): void;
33
+ protected trackError(player: Player, track: Track | UnresolvedTrack, payload: TrackExceptionEvent): void;
34
+ protected socketClosed(player: Player, payload: WebSocketClosedEvent): void;
35
+ protected queueEnd(player: Player, track: Track, payload: TrackEndEvent): Promise<void>;
36
+ private reconnect;
37
+ setEnabled(enabled: boolean): void;
38
+ destroy(): void;
39
+ private handleAutoplay;
40
+ }
41
+ //# sourceMappingURL=Node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../src/classes/Node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAO,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGvI,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAc,eAAe,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAErE,qBAAa,IAAI;IA8CG,OAAO,EAAE,WAAW;IA7CvC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAW;IAC5B,SAAS,EAAE,OAAO,CAAQ;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,QAAQ,CAAC;IACnB,EAAE,EAAE,SAAS,CAAC;IACd,KAAK,EAAE,SAAS,CAoBrB;IAEF,OAAO,CAAC,gBAAgB,CAAC,CAAiB;IAC1C,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,SAAS,CAAa;IAE9B,IAAW,SAAS,IAAI,OAAO,CAG9B;IAED,IAAW,OAAO,IAAI,MAAM,CAE3B;WAEa,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;gBAIzB,OAAO,EAAE,WAAW;IA2BhC,OAAO;IAmBd,SAAS,CAAC,IAAI;IAKd,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAK5C,SAAS,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;cAKnB,OAAO,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IA4E1C,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO;IAoCnC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe;IAM3E,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa;IAqDvE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,eAAe,GAAG,IAAI;IAIlF,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,eAAe,EAAE,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAIxG,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,GAAG,IAAI;cAI3D,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7F,OAAO,CAAC,SAAS;IAgBV,UAAU,CAAC,OAAO,EAAE,OAAO;IAI3B,OAAO;YAkBA,cAAc;CAoC5B"}