kazagumo-bun 3.4.0-e β 3.4.2
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/README.md +34 -236
- package/bun.lock +287 -0
- package/package.json +5 -3
- package/src/Index.ts +4 -4
- package/src/Kazagumo.ts +16 -14
- package/src/Managers/KazagumoPlayer.ts +13 -11
- package/src/Managers/Supports/KazagumoQueue.ts +3 -3
- package/src/Managers/Supports/KazagumoTrack.ts +6 -5
- package/src/Modules/Interfaces.ts +7 -7
- package/src/Modules/Plugins.ts +1 -1
- package/src/Modules/Utils.ts +2 -2
- package/src/Plugins/PlayerMoved.ts +3 -2
- package/.prettierrc +0 -5
- package/LICENSE.md +0 -22
- package/appveyor.yml +0 -24
- package/tslint.json +0 -3
package/README.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# Kazagumo-Bun
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
[](https://paypal.me/l0g4n7)
|
|
5
|
-
[](https://www.npmjs.com/package/kazagumo-bun)
|
|
6
|
-

|
|
3
|
+
<p align="center"><a href="https://github.com/sponsors/LuigiColantuono"><img src="https://img.shields.io/github/sponsors/LuigiColantuono?style=social"></a> <a href="https://paypal.me/l0g4n7"><img src="https://img.shields.io/badge/π-Support-ff69b4"></a> <img src="https://img.shields.io/npm/v/kazagumo-bun"> <img src="https://img.shields.io/npm/dm/kazagumo-bun?label=downloads"> <img src="https://img.shields.io/npm/l/kazagumo-bun"> <img src="https://img.shields.io/github/repo-size/LuigiColantuono/Kazagumo-Bun"> <a href="https://github.com/LuigiColantuono/Kazagumo-Bun"><img src="https://img.shields.io/badge/Bun-Networking-black?logo=bun"></a></p>
|
|
7
4
|
|
|
8
5
|
#### A [Shoukaku-Bun](https://github.com/LuigiColantuono/Shoukaku-Bun) wrapper with built in queue system
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
<img width="" height="450" alt="Kazagumo Β© Azur Lane" src="https://i.imgur.com/jfVSvHj.png" />
|
|
9
|
+
<p>
|
|
10
|
+
|
|
11
11
|
> Kazagumo Β© Azur Lane
|
|
12
12
|
|
|
13
13
|
## Features:
|
|
@@ -16,255 +16,53 @@
|
|
|
16
16
|
β Easy to use
|
|
17
17
|
β Plugin system
|
|
18
18
|
β Uses shoukaku v4 + capable of Lavalink v4
|
|
19
|
-
β Stable
|
|
19
|
+
β Stable & Updated: Based on the rock-solid Shoukaku v4.2.0 logic.
|
|
20
|
+
β Bun-Native
|
|
21
|
+
β High-Performance
|
|
20
22
|
|
|
21
|
-
##
|
|
22
|
-
β οΈPlease check [Environment](#environment) that Kazagumo 3.2.0 is verified working on. It's recommended to use the latest version of lavalink. If you encounter any problem, try using previous [version](https://www.npmjs.com/package/kazagumo/v/3.1.2). If issue still persist, please [open an issue](https://github.com/Takiyo0/Kazagumo/issues) or ask me in [Discord](https://discord.gg/nPPW2Gzqg2) (I will answer if I have time) β οΈ
|
|
23
|
+
## π¦ Bundle Size Comparison
|
|
23
24
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
## Installation
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
bun add kazagumo-bun
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Environment
|
|
36
|
-
The new lavalink system that separate YouTube plugins made configuration a bit harder. I will list all working environment that's known working.
|
|
37
|
-
|
|
38
|
-
| Environment | Case 1 | Case 2 | Case 3 |
|
|
39
|
-
|----------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------|
|
|
40
|
-
| Lavalink Version | v4.0.7 | v4.0.7 | v4.0.7 |
|
|
41
|
-
| Youtube Plugin Version | v1.7.2 | v1.7.2 | none |
|
|
42
|
-
| [LavaSrc](https://google.com) Plugin Version | v4.1.1 | v4.1.1 | v4.1.1 |
|
|
43
|
-
| Kazagumo Version | v3.2.0 | v3.2.0 | v3.2.0 |
|
|
44
|
-
| Shoukaku Version | v4.1.0 (built-in v3.2.0) | v4.1.0 (built-in v3.2.0) | v4.1.0 (built-in v3.2.0) |
|
|
45
|
-
| Youtube Plugin Config | youtube.oauth.enabled = true<br>youtube.oauth.accessToken = "filled"<br>youtube.oauth.clients = MUSIC,ANDROID_TESTSUITE,WEB | youtube.oauth.enabled = true<br>youtube.oauth.accessToken = "filled"<br>youtube.oauth.clients = MUSIC,ANDROID_TESTSUITE,WEB,TVHTML5EMBEDDED | none |
|
|
46
|
-
| Lavalink Config | server.sources.youtube = false<br>server.sources.youtubeSearchEnabled = false | server.sources.youtube = false<br>server.sources.youtubeSearchEnabled = false | server.sources.youtube = true<br>server.sources.youtubeSearchEnabled = true |
|
|
47
|
-
| LavaSrc Config | lavasrc.sources.youtube = true | lavasrc.sources.youtube = true | lavasrc.sources.youtube = true |
|
|
48
|
-
| **Result** | | | |
|
|
49
|
-
| YouTube Playlist Load* | β
| β | β
|
|
|
50
|
-
| YouTube Track Load | β
| β
| β |
|
|
51
|
-
| YouTube Search | β
| β
| β
|
|
|
52
|
-
| LavaSrc Spotify Playlist Load | β
| β
| β
|
|
|
53
|
-
| LavaSrc Spotify Track Load | β
| β
| β
|
|
|
54
|
-
| LavaSrc Spotify Search (spsearch:query)** | β
| β
| β
|
|
|
55
|
-
| **Summary** | β
works just fine | β cannot load youtube playlist | β cannot play any track youtube related. including spotify |
|
|
56
|
-
|
|
57
|
-
Note:
|
|
58
|
-
- `*` = youtube playlist load with YouTube plugin requires oauth enabled and accessToken filled and `TVHTML5EMBEDDED` to be removed from oauth clients, since it's the default config
|
|
59
|
-
- `**` = to do that, you need to add `source` option into `SearchOptions`. Example: `kazagumo.search(query, {source: "spsearch:"});` (β οΈyou need to include `:` in the last of `spsearch` or anything to replace source)
|
|
25
|
+
| Package | Size | Dependencies | Total Install |
|
|
26
|
+
|---------|------|--------------|---------------|
|
|
27
|
+
| Kazagumo | 85 kB | **WS** | **~751 kB** |
|
|
28
|
+
| Kazagumo-Bun | 67.3 kB | **NONE** | **~140 kB** |
|
|
60
29
|
|
|
61
|
-
|
|
62
|
-
- Official [spotify plugin](https://npmjs.com/package/kazagumo-spotify)
|
|
63
|
-
> npm i kazagumo-spotify
|
|
64
|
-
- Additional [apple plugin](https://www.npmjs.com/package/kazagumo-apple)
|
|
65
|
-
> npm i kazagumo-apple
|
|
66
|
-
- Additional [filter plugin](https://www.npmjs.com/package/kazagumo-filter)
|
|
67
|
-
> npm i kazagumo-filter
|
|
68
|
-
- Additional [nicovideo.jp plugin](https://www.npmjs.com/package/kazagumo-nico)
|
|
69
|
-
> npm i kazagumo-nico
|
|
70
|
-
- Additional [deezer plugin](https://www.npmjs.com/package/kazagumo-deezer)
|
|
71
|
-
> npm i kazagumo-deezer
|
|
72
|
-
- Stone-Deezer [deezer plugin](https://www.npmjs.com/package/stone-deezer)
|
|
73
|
-
> npm i stone-deezer
|
|
30
|
+
**~81% smaller install size!**
|
|
74
31
|
|
|
75
|
-
##
|
|
76
|
-
> Basically you can follow this [Official Step](https://lavalink.dev/getting-started/index.html)
|
|
32
|
+
## π΅ The Story
|
|
77
33
|
|
|
34
|
+
Built out of frustration with constant WebSocket upgrade warnings that were
|
|
35
|
+
making my Discord music bot laggy. After migrating to Bun, I realized the
|
|
36
|
+
entire Shoukaku stack could be rewritten to be faster and lighter.
|
|
78
37
|
|
|
79
|
-
|
|
80
|
-
```javascript
|
|
81
|
-
// You can get ShoukakuPlayer from here
|
|
82
|
-
+ <KazagumoPlayer>.shoukaku
|
|
83
|
-
+ this.player.players.get("69696969696969").shoukaku
|
|
38
|
+
**Result?** Zero warnings. Noticeably faster. Way more fun to work with.
|
|
84
39
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
+ this.player.search("pretender Officialι«η·dism") // Kazagumo
|
|
88
|
-
|
|
89
|
-
// Create a player
|
|
90
|
-
- this.player.getNode().joinChannel(...) // Shoukaku
|
|
91
|
-
+ this.player.createPlayer(...) // Kazagumo
|
|
92
|
-
|
|
93
|
-
// Add a track to the queue. MUST BE A kazagumoTrack, you can get from <KazagumoPlayer>.search()
|
|
94
|
-
+ this.player.players.get("69696969696969").queue.add(kazagumoTrack) // Kazagumo
|
|
40
|
+
If this solved your problems too, [consider supporting the project](https://paypal.me/l0g4n7)!
|
|
41
|
+
Even a coffee helps keep the motivation high! β
|
|
95
42
|
|
|
96
|
-
|
|
97
|
-
- this.player.players.get("69696969696969").playTrack(shoukakuTrack) // Shoukaku
|
|
98
|
-
+ this.player.players.get("69696969696969").play() // Kazagumo, take the first song on queue
|
|
99
|
-
+ this.player.players.get("69696969696969").play(kazagumoTrack) // Kazagumo, will unshift current song and forceplay this song
|
|
100
|
-
|
|
101
|
-
// Play previous song
|
|
102
|
-
+ this.player.players.get("69696969696969").play(this.player.players.get("69696969696969").getPrevious()) // Kazagumo, make sure it's not undefined first
|
|
43
|
+
## Installation
|
|
103
44
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// Set filters. Access shoukakuPlayer from <KazagumoPlayer>.player
|
|
109
|
-
- this.player.players.get("69696969696969").setFilters({lowPass: {smoothing: 2}}) // Shoukaku
|
|
110
|
-
+ this.player.players.get("69696969696969").shoukaku.setFilters({lowPass: {smoothing: 2}}) // Kazagumo
|
|
45
|
+
```bash
|
|
46
|
+
bun add kazagumo-bun
|
|
47
|
+
```
|
|
111
48
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
49
|
+
## [Official Kazagumo Documentation](https://github.com/Takiyo0/Kazagumo)
|
|
50
|
+
Please read the docs first before asking methods
|
|
51
|
+
> Kazagumo; https://takiyo0.github.io/Kazagumo
|
|
52
|
+
> [Shoukaku](https://github.com/Deivu/Shoukaku) by [Deivu](https://github.com/Deivu); https://deivu.github.io/Shoukaku
|
|
115
53
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
+ this.player.players.get("69696969696969").skip() // skip on kazagumo. easier to find :v
|
|
119
|
-
```
|
|
54
|
+
## Performance
|
|
55
|
+
<img width="380" height="" alt="B R U C I U S π΅" src="https://i.imgur.com/zZsPzm6.png" />
|
|
120
56
|
|
|
121
57
|
## Support
|
|
122
|
-
β οΈ Please read the docs first before asking question β οΈ
|
|
123
58
|
> Kazagumo support server: https://discord.gg/nPPW2Gzqg2 (anywhere lmao)
|
|
124
|
-
> Shoukaku support server: https://discord.gg/FVqbtGu (#development)
|
|
125
|
-
>
|
|
59
|
+
> Shoukaku support server: https://discord.gg/FVqbtGu (#development)
|
|
126
60
|
> Brucius support server: https://discord.gg/XqJw52d35R
|
|
127
|
-
>
|
|
128
|
-
> Report if you found a bug here https://github.com/Takiyo0/Kazagumo/issues/new/choose
|
|
129
|
-
|
|
130
|
-
## Enable playerMoved event
|
|
131
|
-
```javascript
|
|
132
|
-
import { Kazagumo, Payload, Plugins } from "kazagumo";
|
|
133
|
-
|
|
134
|
-
const kazagumo = new Kazagumo({
|
|
135
|
-
...,
|
|
136
|
-
plugins: [new Plugins.PlayerMoved(client)]
|
|
137
|
-
}, Connector, Nodes, ShoukakuOptions)
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
## Example bot
|
|
141
|
-
```javascript
|
|
142
|
-
const {Client, GatewayIntentBits} = require('discord.js');
|
|
143
|
-
const {Guilds, GuildVoiceStates, GuildMessages, MessageContent} = GatewayIntentBits;
|
|
144
|
-
const {Connectors} = require("shoukaku");
|
|
145
|
-
const {Kazagumo, KazagumoTrack} = require("../dist");
|
|
146
61
|
|
|
147
|
-
const Nodes = [{
|
|
148
|
-
name: 'owo',
|
|
149
|
-
url: 'localhost:2333',
|
|
150
|
-
auth: 'youshallnotpass',
|
|
151
|
-
secure: false
|
|
152
|
-
}];
|
|
153
|
-
const client = new Client({intents: [Guilds, GuildVoiceStates, GuildMessages, MessageContent]});
|
|
154
|
-
const kazagumo = new Kazagumo({
|
|
155
|
-
defaultSearchEngine: "youtube",
|
|
156
|
-
// MAKE SURE YOU HAVE THIS
|
|
157
|
-
send: (guildId, payload) => {
|
|
158
|
-
const guild = client.guilds.cache.get(guildId);
|
|
159
|
-
if (guild) guild.shard.send(payload);
|
|
160
|
-
}
|
|
161
|
-
}, new Connectors.DiscordJS(client), Nodes);
|
|
162
|
-
|
|
163
|
-
client.on("ready", () => console.log(client.user.tag + " Ready!"));
|
|
164
|
-
|
|
165
|
-
kazagumo.shoukaku.on('ready', (name) => console.log(`Lavalink ${name}: Ready!`));
|
|
166
|
-
kazagumo.shoukaku.on('error', (name, error) => console.error(`Lavalink ${name}: Error Caught,`, error));
|
|
167
|
-
kazagumo.shoukaku.on('close', (name, code, reason) => console.warn(`Lavalink ${name}: Closed, Code ${code}, Reason ${reason || 'No reason'}`));
|
|
168
|
-
kazagumo.shoukaku.on('debug', (name, info) => console.debug(`Lavalink ${name}: Debug,`, info));
|
|
169
|
-
kazagumo.shoukaku.on('disconnect', (name, count) => {
|
|
170
|
-
const players = [...kazagumo.shoukaku.players.values()].filter(p => p.node.name === name);
|
|
171
|
-
players.map(player => {
|
|
172
|
-
kazagumo.destroyPlayer(player.guildId);
|
|
173
|
-
player.destroy();
|
|
174
|
-
});
|
|
175
|
-
console.warn(`Lavalink ${name}: Disconnected`);
|
|
176
|
-
});
|
|
177
|
-
|
|
178
|
-
kazagumo.on("playerStart", (player, track) => {
|
|
179
|
-
client.channels.cache.get(player.textId)?.send({content: `Now playing **${track.title}** by **${track.author}**`})
|
|
180
|
-
.then(x => player.data.set("message", x));
|
|
181
|
-
});
|
|
182
|
-
|
|
183
|
-
kazagumo.on("playerEnd", (player) => {
|
|
184
|
-
player.data.get("message")?.edit({content: `Finished playing`});
|
|
185
|
-
});
|
|
186
|
-
|
|
187
|
-
kazagumo.on("playerEmpty", player => {
|
|
188
|
-
client.channels.cache.get(player.textId)?.send({content: `Destroyed player due to inactivity.`})
|
|
189
|
-
.then(x => player.data.set("message", x));
|
|
190
|
-
player.destroy();
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
client.on("messageCreate", async msg => {
|
|
194
|
-
if (msg.author.bot) return;
|
|
195
|
-
|
|
196
|
-
if (msg.content.startsWith("!play")) {
|
|
197
|
-
const args = msg.content.split(" ");
|
|
198
|
-
const query = args.slice(1).join(" ");
|
|
199
|
-
|
|
200
|
-
const {channel} = msg.member.voice;
|
|
201
|
-
if (!channel) return msg.reply("You need to be in a voice channel to use this command!");
|
|
202
|
-
|
|
203
|
-
let player = await kazagumo.createPlayer({
|
|
204
|
-
guildId: msg.guild.id,
|
|
205
|
-
textId: msg.channel.id,
|
|
206
|
-
voiceId: channel.id,
|
|
207
|
-
volume: 40
|
|
208
|
-
})
|
|
209
|
-
|
|
210
|
-
let result = await kazagumo.search(query, {requester: msg.author});
|
|
211
|
-
if (!result.tracks.length) return msg.reply("No results found!");
|
|
212
|
-
|
|
213
|
-
if (result.type === "PLAYLIST") player.queue.add(result.tracks); // do this instead of using for loop if you want queueUpdate not spammy
|
|
214
|
-
else player.queue.add(result.tracks[0]);
|
|
215
|
-
|
|
216
|
-
if (!player.playing && !player.paused) player.play();
|
|
217
|
-
return msg.reply({content: result.type === "PLAYLIST" ? `Queued ${result.tracks.length} from ${result.playlistName}` : `Queued ${result.tracks[0].title}`});
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
if (msg.content.startsWith("!skip")) {
|
|
221
|
-
let player = kazagumo.players.get(msg.guild.id);
|
|
222
|
-
if (!player) return msg.reply("No player found!");
|
|
223
|
-
player.skip();
|
|
224
|
-
log(msg.guild.id);
|
|
225
|
-
return msg.reply({content: `Skipped to **${player.queue[0]?.title}** by **${player.queue[0]?.author}**`});
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
if (msg.content.startsWith("!forceplay")) {
|
|
229
|
-
let player = kazagumo.players.get(msg.guild.id);
|
|
230
|
-
if (!player) return msg.reply("No player found!");
|
|
231
|
-
const args = msg.content.split(" ");
|
|
232
|
-
const query = args.slice(1).join(" ");
|
|
233
|
-
let result = await kazagumo.search(query, {requester: msg.author});
|
|
234
|
-
if (!result.tracks.length) return msg.reply("No results found!");
|
|
235
|
-
player.play(new KazagumoTrack(result.tracks[0].getRaw(), msg.author));
|
|
236
|
-
return msg.reply({content: `Forced playing **${result.tracks[0].title}** by **${result.tracks[0].author}**`});
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
if (msg.content.startsWith("!previous")) {
|
|
240
|
-
let player = kazagumo.players.get(msg.guild.id);
|
|
241
|
-
if (!player) return msg.reply("No player found!");
|
|
242
|
-
const previous = player.getPrevious(); // we get the previous track without removing it first
|
|
243
|
-
if (!previous) return msg.reply("No previous track found!");
|
|
244
|
-
await player.play(player.getPrevious(true)); // now we remove the previous track and play it
|
|
245
|
-
return msg.reply("Previous!");
|
|
246
|
-
}
|
|
247
|
-
})
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
client.login('');
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
## Known issue
|
|
254
|
-
###### This part should be in kazagumo-spotify but whatever
|
|
255
|
-
- Force playing song from spotify module (player.play(result.tracks[0]); `result.tracks[0]` is from spotify) is currently not working. **ONLY WHEN YOU DO player.play(thing), NOT player.play() OR player.queue.add(new KazagumoTrack(...))** Please use this workaround
|
|
256
|
-
```js
|
|
257
|
-
const { KazagumoTrack } = require("kazagumo"); // CommonJS
|
|
258
|
-
import { KazagumoTrack } from "kazagumo"; // ES6; don't laugh if it's wrong
|
|
259
|
-
|
|
260
|
-
let track = result.tracks[0] // the spotify track
|
|
261
|
-
let convertedTrack = new KazagumoTrack(track.getRaw()._raw, track.author);
|
|
262
|
-
player.play(convertedTrack);
|
|
263
|
-
```
|
|
264
62
|
|
|
265
63
|
## Contributors
|
|
266
64
|
> - Deivu as the owner of Shoukaku
|
|
267
65
|
> Github: https://github.com/Deivu
|
|
268
66
|
>
|
|
269
|
-
> -
|
|
270
|
-
> Github: https://github.com/
|
|
67
|
+
> - Luigi Colantuono as the owner of this project
|
|
68
|
+
> Github: https://github.com/LuigiColantuono
|
package/bun.lock
ADDED
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lockfileVersion": 1,
|
|
3
|
+
"configVersion": 1,
|
|
4
|
+
"workspaces": {
|
|
5
|
+
"": {
|
|
6
|
+
"name": "kazagumo-bun",
|
|
7
|
+
"dependencies": {
|
|
8
|
+
"shoukaku-bun": "latest",
|
|
9
|
+
},
|
|
10
|
+
"devDependencies": {
|
|
11
|
+
"@types/bun": "latest",
|
|
12
|
+
"discord.js": "^14.25.1",
|
|
13
|
+
"eslint": "^9.39.2",
|
|
14
|
+
"globals": "^17.2.0",
|
|
15
|
+
"typescript": "^5.9.3",
|
|
16
|
+
"typescript-eslint": "^8.54.0",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
},
|
|
20
|
+
"packages": {
|
|
21
|
+
"@discordjs/builders": ["@discordjs/builders@1.13.1", "", { "dependencies": { "@discordjs/formatters": "^0.6.2", "@discordjs/util": "^1.2.0", "@sapphire/shapeshift": "^4.0.0", "discord-api-types": "^0.38.33", "fast-deep-equal": "^3.1.3", "ts-mixer": "^6.0.4", "tslib": "^2.6.3" } }, "sha512-cOU0UDHc3lp/5nKByDxkmRiNZBpdp0kx55aarbiAfakfKJHlxv/yFW1zmIqCAmwH5CRlrH9iMFKJMpvW4DPB+w=="],
|
|
22
|
+
|
|
23
|
+
"@discordjs/collection": ["@discordjs/collection@1.5.3", "", {}, "sha512-SVb428OMd3WO1paV3rm6tSjM4wC+Kecaa1EUGX7vc6/fddvw/6lg90z4QtCqm21zvVe92vMMDt9+DkIvjXImQQ=="],
|
|
24
|
+
|
|
25
|
+
"@discordjs/formatters": ["@discordjs/formatters@0.6.2", "", { "dependencies": { "discord-api-types": "^0.38.33" } }, "sha512-y4UPwWhH6vChKRkGdMB4odasUbHOUwy7KL+OVwF86PvT6QVOwElx+TiI1/6kcmcEe+g5YRXJFiXSXUdabqZOvQ=="],
|
|
26
|
+
|
|
27
|
+
"@discordjs/rest": ["@discordjs/rest@2.6.0", "", { "dependencies": { "@discordjs/collection": "^2.1.1", "@discordjs/util": "^1.1.1", "@sapphire/async-queue": "^1.5.3", "@sapphire/snowflake": "^3.5.3", "@vladfrangu/async_event_emitter": "^2.4.6", "discord-api-types": "^0.38.16", "magic-bytes.js": "^1.10.0", "tslib": "^2.6.3", "undici": "6.21.3" } }, "sha512-RDYrhmpB7mTvmCKcpj+pc5k7POKszS4E2O9TYc+U+Y4iaCP+r910QdO43qmpOja8LRr1RJ0b3U+CqVsnPqzf4w=="],
|
|
28
|
+
|
|
29
|
+
"@discordjs/util": ["@discordjs/util@1.2.0", "", { "dependencies": { "discord-api-types": "^0.38.33" } }, "sha512-3LKP7F2+atl9vJFhaBjn4nOaSWahZ/yWjOvA4e5pnXkt2qyXRCHLxoBQy81GFtLGCq7K9lPm9R517M1U+/90Qg=="],
|
|
30
|
+
|
|
31
|
+
"@discordjs/ws": ["@discordjs/ws@1.2.3", "", { "dependencies": { "@discordjs/collection": "^2.1.0", "@discordjs/rest": "^2.5.1", "@discordjs/util": "^1.1.0", "@sapphire/async-queue": "^1.5.2", "@types/ws": "^8.5.10", "@vladfrangu/async_event_emitter": "^2.2.4", "discord-api-types": "^0.38.1", "tslib": "^2.6.2", "ws": "^8.17.0" } }, "sha512-wPlQDxEmlDg5IxhJPuxXr3Vy9AjYq5xCvFWGJyD7w7Np8ZGu+Mc+97LCoEc/+AYCo2IDpKioiH0/c/mj5ZR9Uw=="],
|
|
32
|
+
|
|
33
|
+
"@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.1", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ=="],
|
|
34
|
+
|
|
35
|
+
"@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="],
|
|
36
|
+
|
|
37
|
+
"@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="],
|
|
38
|
+
|
|
39
|
+
"@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="],
|
|
40
|
+
|
|
41
|
+
"@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="],
|
|
42
|
+
|
|
43
|
+
"@eslint/eslintrc": ["@eslint/eslintrc@3.3.3", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ=="],
|
|
44
|
+
|
|
45
|
+
"@eslint/js": ["@eslint/js@9.39.2", "", {}, "sha512-q1mjIoW1VX4IvSocvM/vbTiveKC4k9eLrajNEuSsmjymSDEbpGddtpfOoN7YGAqBK3NG+uqo8ia4PDTt8buCYA=="],
|
|
46
|
+
|
|
47
|
+
"@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="],
|
|
48
|
+
|
|
49
|
+
"@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="],
|
|
50
|
+
|
|
51
|
+
"@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="],
|
|
52
|
+
|
|
53
|
+
"@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="],
|
|
54
|
+
|
|
55
|
+
"@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="],
|
|
56
|
+
|
|
57
|
+
"@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="],
|
|
58
|
+
|
|
59
|
+
"@sapphire/async-queue": ["@sapphire/async-queue@1.5.5", "", {}, "sha512-cvGzxbba6sav2zZkH8GPf2oGk9yYoD5qrNWdu9fRehifgnFZJMV+nuy2nON2roRO4yQQ+v7MK/Pktl/HgfsUXg=="],
|
|
60
|
+
|
|
61
|
+
"@sapphire/shapeshift": ["@sapphire/shapeshift@4.0.0", "", { "dependencies": { "fast-deep-equal": "^3.1.3", "lodash": "^4.17.21" } }, "sha512-d9dUmWVA7MMiKobL3VpLF8P2aeanRTu6ypG2OIaEv/ZHH/SUQ2iHOVyi5wAPjQ+HmnMuL0whK9ez8I/raWbtIg=="],
|
|
62
|
+
|
|
63
|
+
"@sapphire/snowflake": ["@sapphire/snowflake@3.5.3", "", {}, "sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ=="],
|
|
64
|
+
|
|
65
|
+
"@types/bun": ["@types/bun@1.3.7", "", { "dependencies": { "bun-types": "1.3.7" } }, "sha512-lmNuMda+Z9b7tmhA0tohwy8ZWFSnmQm1UDWXtH5r9F7wZCfkeO3Jx7wKQ1EOiKq43yHts7ky6r8SDJQWRNupkA=="],
|
|
66
|
+
|
|
67
|
+
"@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="],
|
|
68
|
+
|
|
69
|
+
"@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="],
|
|
70
|
+
|
|
71
|
+
"@types/node": ["@types/node@25.0.10", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-zWW5KPngR/yvakJgGOmZ5vTBemDoSqF3AcV/LrO5u5wTWyEAVVh+IT39G4gtyAkh3CtTZs8aX/yRM82OfzHJRg=="],
|
|
72
|
+
|
|
73
|
+
"@types/ws": ["@types/ws@8.18.1", "", { "dependencies": { "@types/node": "*" } }, "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg=="],
|
|
74
|
+
|
|
75
|
+
"@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.54.0", "", { "dependencies": { "@eslint-community/regexpp": "^4.12.2", "@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/type-utils": "8.54.0", "@typescript-eslint/utils": "8.54.0", "@typescript-eslint/visitor-keys": "8.54.0", "ignore": "^7.0.5", "natural-compare": "^1.4.0", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.54.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-hAAP5io/7csFStuOmR782YmTthKBJ9ND3WVL60hcOjvtGFb+HJxH4O5huAcmcZ9v9G8P+JETiZ/G1B8MALnWZQ=="],
|
|
76
|
+
|
|
77
|
+
"@typescript-eslint/parser": ["@typescript-eslint/parser@8.54.0", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/types": "8.54.0", "@typescript-eslint/typescript-estree": "8.54.0", "@typescript-eslint/visitor-keys": "8.54.0", "debug": "^4.4.3" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-BtE0k6cjwjLZoZixN0t5AKP0kSzlGu7FctRXYuPAm//aaiZhmfq1JwdYpYr1brzEspYyFeF+8XF5j2VK6oalrA=="],
|
|
78
|
+
|
|
79
|
+
"@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.54.0", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.54.0", "@typescript-eslint/types": "^8.54.0", "debug": "^4.4.3" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-YPf+rvJ1s7MyiWM4uTRhE4DvBXrEV+d8oC3P9Y2eT7S+HBS0clybdMIPnhiATi9vZOYDc7OQ1L/i6ga6NFYK/g=="],
|
|
80
|
+
|
|
81
|
+
"@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.54.0", "", { "dependencies": { "@typescript-eslint/types": "8.54.0", "@typescript-eslint/visitor-keys": "8.54.0" } }, "sha512-27rYVQku26j/PbHYcVfRPonmOlVI6gihHtXFbTdB5sb6qA0wdAQAbyXFVarQ5t4HRojIz64IV90YtsjQSSGlQg=="],
|
|
82
|
+
|
|
83
|
+
"@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.54.0", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-dRgOyT2hPk/JwxNMZDsIXDgyl9axdJI3ogZ2XWhBPsnZUv+hPesa5iuhdYt2gzwA9t8RE5ytOJ6xB0moV0Ujvw=="],
|
|
84
|
+
|
|
85
|
+
"@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.54.0", "", { "dependencies": { "@typescript-eslint/types": "8.54.0", "@typescript-eslint/typescript-estree": "8.54.0", "@typescript-eslint/utils": "8.54.0", "debug": "^4.4.3", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-hiLguxJWHjjwL6xMBwD903ciAwd7DmK30Y9Axs/etOkftC3ZNN9K44IuRD/EB08amu+Zw6W37x9RecLkOo3pMA=="],
|
|
86
|
+
|
|
87
|
+
"@typescript-eslint/types": ["@typescript-eslint/types@8.54.0", "", {}, "sha512-PDUI9R1BVjqu7AUDsRBbKMtwmjWcn4J3le+5LpcFgWULN3LvHC5rkc9gCVxbrsrGmO1jfPybN5s6h4Jy+OnkAA=="],
|
|
88
|
+
|
|
89
|
+
"@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.54.0", "", { "dependencies": { "@typescript-eslint/project-service": "8.54.0", "@typescript-eslint/tsconfig-utils": "8.54.0", "@typescript-eslint/types": "8.54.0", "@typescript-eslint/visitor-keys": "8.54.0", "debug": "^4.4.3", "minimatch": "^9.0.5", "semver": "^7.7.3", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.4.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-BUwcskRaPvTk6fzVWgDPdUndLjB87KYDrN5EYGetnktoeAvPtO4ONHlAZDnj5VFnUANg0Sjm7j4usBlnoVMHwA=="],
|
|
90
|
+
|
|
91
|
+
"@typescript-eslint/utils": ["@typescript-eslint/utils@8.54.0", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.9.1", "@typescript-eslint/scope-manager": "8.54.0", "@typescript-eslint/types": "8.54.0", "@typescript-eslint/typescript-estree": "8.54.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-9Cnda8GS57AQakvRyG0PTejJNlA2xhvyNtEVIMlDWOOeEyBkYWhGPnfrIAnqxLMTSTo6q8g12XVjjev5l1NvMA=="],
|
|
92
|
+
|
|
93
|
+
"@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.54.0", "", { "dependencies": { "@typescript-eslint/types": "8.54.0", "eslint-visitor-keys": "^4.2.1" } }, "sha512-VFlhGSl4opC0bprJiItPQ1RfUhGDIBokcPwaFH4yiBCaNPeld/9VeXbiPO1cLyorQi1G1vL+ecBk1x8o1axORA=="],
|
|
94
|
+
|
|
95
|
+
"@vladfrangu/async_event_emitter": ["@vladfrangu/async_event_emitter@2.4.7", "", {}, "sha512-Xfe6rpCTxSxfbswi/W/Pz7zp1WWSNn4A0eW4mLkQUewCrXXtMj31lCg+iQyTkh/CkusZSq9eDflu7tjEDXUY6g=="],
|
|
96
|
+
|
|
97
|
+
"acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="],
|
|
98
|
+
|
|
99
|
+
"acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="],
|
|
100
|
+
|
|
101
|
+
"ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="],
|
|
102
|
+
|
|
103
|
+
"ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="],
|
|
104
|
+
|
|
105
|
+
"argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="],
|
|
106
|
+
|
|
107
|
+
"balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="],
|
|
108
|
+
|
|
109
|
+
"brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="],
|
|
110
|
+
|
|
111
|
+
"bun-types": ["bun-types@1.3.7", "", { "dependencies": { "@types/node": "*" } }, "sha512-qyschsA03Qz+gou+apt6HNl6HnI+sJJLL4wLDke4iugsE6584CMupOtTY1n+2YC9nGVrEKUlTs99jjRLKgWnjQ=="],
|
|
112
|
+
|
|
113
|
+
"callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="],
|
|
114
|
+
|
|
115
|
+
"chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
|
|
116
|
+
|
|
117
|
+
"color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="],
|
|
118
|
+
|
|
119
|
+
"color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="],
|
|
120
|
+
|
|
121
|
+
"concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="],
|
|
122
|
+
|
|
123
|
+
"cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="],
|
|
124
|
+
|
|
125
|
+
"debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="],
|
|
126
|
+
|
|
127
|
+
"deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="],
|
|
128
|
+
|
|
129
|
+
"discord-api-types": ["discord-api-types@0.38.37", "", {}, "sha512-Cv47jzY1jkGkh5sv0bfHYqGgKOWO1peOrGMkDFM4UmaGMOTgOW8QSexhvixa9sVOiz8MnVOBryWYyw/CEVhj7w=="],
|
|
130
|
+
|
|
131
|
+
"discord.js": ["discord.js@14.25.1", "", { "dependencies": { "@discordjs/builders": "^1.13.0", "@discordjs/collection": "1.5.3", "@discordjs/formatters": "^0.6.2", "@discordjs/rest": "^2.6.0", "@discordjs/util": "^1.2.0", "@discordjs/ws": "^1.2.3", "@sapphire/snowflake": "3.5.3", "discord-api-types": "^0.38.33", "fast-deep-equal": "3.1.3", "lodash.snakecase": "4.1.1", "magic-bytes.js": "^1.10.0", "tslib": "^2.6.3", "undici": "6.21.3" } }, "sha512-2l0gsPOLPs5t6GFZfQZKnL1OJNYFcuC/ETWsW4VtKVD/tg4ICa9x+jb9bkPffkMdRpRpuUaO/fKkHCBeiCKh8g=="],
|
|
132
|
+
|
|
133
|
+
"escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="],
|
|
134
|
+
|
|
135
|
+
"eslint": ["eslint@9.39.2", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.2", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-LEyamqS7W5HB3ujJyvi0HQK/dtVINZvd5mAAp9eT5S/ujByGjiZLCzPcHVzuXbpJDJF/cxwHlfceVUDZ2lnSTw=="],
|
|
136
|
+
|
|
137
|
+
"eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="],
|
|
138
|
+
|
|
139
|
+
"eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="],
|
|
140
|
+
|
|
141
|
+
"espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="],
|
|
142
|
+
|
|
143
|
+
"esquery": ["esquery@1.7.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g=="],
|
|
144
|
+
|
|
145
|
+
"esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="],
|
|
146
|
+
|
|
147
|
+
"estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="],
|
|
148
|
+
|
|
149
|
+
"esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="],
|
|
150
|
+
|
|
151
|
+
"fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="],
|
|
152
|
+
|
|
153
|
+
"fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="],
|
|
154
|
+
|
|
155
|
+
"fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="],
|
|
156
|
+
|
|
157
|
+
"fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="],
|
|
158
|
+
|
|
159
|
+
"file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="],
|
|
160
|
+
|
|
161
|
+
"find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="],
|
|
162
|
+
|
|
163
|
+
"flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="],
|
|
164
|
+
|
|
165
|
+
"flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="],
|
|
166
|
+
|
|
167
|
+
"glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="],
|
|
168
|
+
|
|
169
|
+
"globals": ["globals@17.2.0", "", {}, "sha512-tovnCz/fEq+Ripoq+p/gN1u7l6A7wwkoBT9pRCzTHzsD/LvADIzXZdjmRymh5Ztf0DYC3Rwg5cZRYjxzBmzbWg=="],
|
|
170
|
+
|
|
171
|
+
"has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="],
|
|
172
|
+
|
|
173
|
+
"ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="],
|
|
174
|
+
|
|
175
|
+
"import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="],
|
|
176
|
+
|
|
177
|
+
"imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="],
|
|
178
|
+
|
|
179
|
+
"is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="],
|
|
180
|
+
|
|
181
|
+
"is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="],
|
|
182
|
+
|
|
183
|
+
"isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
|
|
184
|
+
|
|
185
|
+
"js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
|
|
186
|
+
|
|
187
|
+
"json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="],
|
|
188
|
+
|
|
189
|
+
"json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="],
|
|
190
|
+
|
|
191
|
+
"json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="],
|
|
192
|
+
|
|
193
|
+
"keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="],
|
|
194
|
+
|
|
195
|
+
"levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="],
|
|
196
|
+
|
|
197
|
+
"locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="],
|
|
198
|
+
|
|
199
|
+
"lodash": ["lodash@4.17.23", "", {}, "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w=="],
|
|
200
|
+
|
|
201
|
+
"lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="],
|
|
202
|
+
|
|
203
|
+
"lodash.snakecase": ["lodash.snakecase@4.1.1", "", {}, "sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw=="],
|
|
204
|
+
|
|
205
|
+
"magic-bytes.js": ["magic-bytes.js@1.13.0", "", {}, "sha512-afO2mnxW7GDTXMm5/AoN1WuOcdoKhtgXjIvHmobqTD1grNplhGdv3PFOyjCVmrnOZBIT/gD/koDKpYG+0mvHcg=="],
|
|
206
|
+
|
|
207
|
+
"minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="],
|
|
208
|
+
|
|
209
|
+
"ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="],
|
|
210
|
+
|
|
211
|
+
"natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="],
|
|
212
|
+
|
|
213
|
+
"optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="],
|
|
214
|
+
|
|
215
|
+
"p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="],
|
|
216
|
+
|
|
217
|
+
"p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="],
|
|
218
|
+
|
|
219
|
+
"parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="],
|
|
220
|
+
|
|
221
|
+
"path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="],
|
|
222
|
+
|
|
223
|
+
"path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="],
|
|
224
|
+
|
|
225
|
+
"picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="],
|
|
226
|
+
|
|
227
|
+
"prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="],
|
|
228
|
+
|
|
229
|
+
"punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="],
|
|
230
|
+
|
|
231
|
+
"resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="],
|
|
232
|
+
|
|
233
|
+
"semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="],
|
|
234
|
+
|
|
235
|
+
"shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="],
|
|
236
|
+
|
|
237
|
+
"shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="],
|
|
238
|
+
|
|
239
|
+
"shoukaku-bun": ["shoukaku-bun@4.2.0-d", "", {}, "sha512-pHeLQ2cbOjVhXMlYwyeJi1wrdZaUADdctfofmFvtY1U/wfZ5n78yrCmMzvqNxlDK0WfCuyksW99ROaIiI44LHA=="],
|
|
240
|
+
|
|
241
|
+
"strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="],
|
|
242
|
+
|
|
243
|
+
"supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="],
|
|
244
|
+
|
|
245
|
+
"tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="],
|
|
246
|
+
|
|
247
|
+
"ts-api-utils": ["ts-api-utils@2.4.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA=="],
|
|
248
|
+
|
|
249
|
+
"ts-mixer": ["ts-mixer@6.0.4", "", {}, "sha512-ufKpbmrugz5Aou4wcr5Wc1UUFWOLhq+Fm6qa6P0w0K5Qw2yhaUoiWszhCVuNQyNwrlGiscHOmqYoAox1PtvgjA=="],
|
|
250
|
+
|
|
251
|
+
"tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="],
|
|
252
|
+
|
|
253
|
+
"type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="],
|
|
254
|
+
|
|
255
|
+
"typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="],
|
|
256
|
+
|
|
257
|
+
"typescript-eslint": ["typescript-eslint@8.54.0", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.54.0", "@typescript-eslint/parser": "8.54.0", "@typescript-eslint/typescript-estree": "8.54.0", "@typescript-eslint/utils": "8.54.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-CKsJ+g53QpsNPqbzUsfKVgd3Lny4yKZ1pP4qN3jdMOg/sisIDLGyDMezycquXLE5JsEU0wp3dGNdzig0/fmSVQ=="],
|
|
258
|
+
|
|
259
|
+
"undici": ["undici@6.21.3", "", {}, "sha512-gBLkYIlEnSp8pFbT64yFgGE6UIB9tAkhukC23PmMDCe5Nd+cRqKxSjw5y54MK2AZMgZfJWMaNE4nYUHgi1XEOw=="],
|
|
260
|
+
|
|
261
|
+
"undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="],
|
|
262
|
+
|
|
263
|
+
"uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="],
|
|
264
|
+
|
|
265
|
+
"which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="],
|
|
266
|
+
|
|
267
|
+
"word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="],
|
|
268
|
+
|
|
269
|
+
"ws": ["ws@8.19.0", "", { "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "optionalPeers": ["bufferutil", "utf-8-validate"] }, "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg=="],
|
|
270
|
+
|
|
271
|
+
"yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="],
|
|
272
|
+
|
|
273
|
+
"@discordjs/rest/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="],
|
|
274
|
+
|
|
275
|
+
"@discordjs/ws/@discordjs/collection": ["@discordjs/collection@2.1.1", "", {}, "sha512-LiSusze9Tc7qF03sLCujF5iZp7K+vRNEDBZ86FT9aQAv3vxMLihUvKvpsCWiQ2DJq1tVckopKm1rxomgNUc9hg=="],
|
|
276
|
+
|
|
277
|
+
"@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="],
|
|
278
|
+
|
|
279
|
+
"@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="],
|
|
280
|
+
|
|
281
|
+
"@typescript-eslint/eslint-plugin/ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="],
|
|
282
|
+
|
|
283
|
+
"@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="],
|
|
284
|
+
|
|
285
|
+
"@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="],
|
|
286
|
+
}
|
|
287
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "kazagumo-bun",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.2",
|
|
4
4
|
"description": "Bun-native high-performance Kazagumo fork. Node legacy purged.",
|
|
5
5
|
"main": "src/Index.ts",
|
|
6
6
|
"types": "src/Index.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"test": "bun test",
|
|
13
13
|
"lint": "eslint ."
|
|
14
14
|
},
|
|
15
|
-
"author": "
|
|
15
|
+
"author": "Luigi Colantuono",
|
|
16
16
|
"contributors": [
|
|
17
17
|
{
|
|
18
18
|
"name": "Luigi Colantuono",
|
|
@@ -38,7 +38,9 @@
|
|
|
38
38
|
"devDependencies": {
|
|
39
39
|
"@types/bun": "latest",
|
|
40
40
|
"discord.js": "^14.25.1",
|
|
41
|
+
"eslint": "^9.39.2",
|
|
42
|
+
"globals": "^17.2.0",
|
|
41
43
|
"typescript": "^5.9.3",
|
|
42
|
-
"eslint": "^
|
|
44
|
+
"typescript-eslint": "^8.54.0"
|
|
43
45
|
}
|
|
44
46
|
}
|
package/src/Index.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
import { KazagumoTrack } from './Managers/Supports/KazagumoTrack';
|
|
3
|
-
import { KazagumoQueue } from './Managers/Supports/KazagumoQueue';
|
|
4
|
-
import { KazagumoPlayer } from './Managers/KazagumoPlayer';
|
|
5
|
-
import Plugins from './Modules/Plugins';
|
|
2
|
+
import { KazagumoTrack } from './Managers/Supports/KazagumoTrack.ts';
|
|
3
|
+
import { KazagumoQueue } from './Managers/Supports/KazagumoQueue.ts';
|
|
4
|
+
import { KazagumoPlayer } from './Managers/KazagumoPlayer.ts';
|
|
5
|
+
import Plugins from './Modules/Plugins.ts';
|
|
6
6
|
// import KazagumoPlayer from "./Managers/KazagumoPlayer";
|
|
7
7
|
// import { KazagumoOptions } from "./Modules/Interfaces";
|
|
8
8
|
|
package/src/Kazagumo.ts
CHANGED
|
@@ -1,39 +1,41 @@
|
|
|
1
|
-
import { EventEmitter } from './Modules/EventEmitter';
|
|
2
|
-
import {
|
|
1
|
+
import { EventEmitter } from './Modules/EventEmitter.ts';
|
|
2
|
+
import type {
|
|
3
3
|
CreatePlayerOptions,
|
|
4
|
-
Events,
|
|
5
|
-
KazagumoError,
|
|
6
4
|
KazagumoOptions as KazagumoOptionsOwO,
|
|
7
5
|
KazagumoSearchOptions,
|
|
8
6
|
KazagumoSearchResult,
|
|
9
7
|
PlayerMovedChannels,
|
|
10
8
|
PlayerMovedState,
|
|
11
|
-
SearchResultTypes
|
|
9
|
+
SearchResultTypes} from './Modules/Interfaces';
|
|
10
|
+
import {
|
|
11
|
+
Events,
|
|
12
|
+
KazagumoError,
|
|
12
13
|
SourceIDs,
|
|
13
14
|
} from './Modules/Interfaces';
|
|
14
|
-
import {
|
|
15
|
-
Connection,
|
|
15
|
+
import type {
|
|
16
16
|
Connector,
|
|
17
|
-
LoadType,
|
|
18
17
|
Node,
|
|
19
18
|
NodeOption,
|
|
20
|
-
Player,
|
|
21
19
|
PlayerUpdate,
|
|
22
|
-
Shoukaku,
|
|
23
20
|
ShoukakuOptions,
|
|
24
21
|
Track,
|
|
25
22
|
TrackExceptionEvent,
|
|
26
23
|
TrackStuckEvent,
|
|
27
24
|
VoiceChannelOptions,
|
|
28
|
-
WebSocketClosedEvent
|
|
25
|
+
WebSocketClosedEvent} from 'shoukaku-bun';
|
|
26
|
+
import {
|
|
27
|
+
Connection,
|
|
28
|
+
LoadType,
|
|
29
|
+
Player,
|
|
30
|
+
Shoukaku,
|
|
29
31
|
Constants,
|
|
30
32
|
} from 'shoukaku-bun';
|
|
31
33
|
const { State, VoiceState } = Constants;
|
|
32
34
|
type VoiceStateType = (typeof VoiceState)[keyof typeof VoiceState];
|
|
33
35
|
|
|
34
|
-
import { KazagumoPlayer } from './Managers/KazagumoPlayer';
|
|
35
|
-
import { KazagumoTrack } from './Managers/Supports/KazagumoTrack';
|
|
36
|
-
import { KazagumoQueue } from './Managers/Supports/KazagumoQueue';
|
|
36
|
+
import { KazagumoPlayer } from './Managers/KazagumoPlayer.ts';
|
|
37
|
+
import { KazagumoTrack } from './Managers/Supports/KazagumoTrack.ts';
|
|
38
|
+
import type { KazagumoQueue } from './Managers/Supports/KazagumoQueue.ts';
|
|
37
39
|
|
|
38
40
|
export interface KazagumoEvents {
|
|
39
41
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Kazagumo } from '../Kazagumo';
|
|
2
|
-
import { KazagumoQueue } from './Supports/KazagumoQueue';
|
|
3
|
-
import {
|
|
1
|
+
import type { Kazagumo } from '../Kazagumo.ts';
|
|
2
|
+
import { KazagumoQueue } from './Supports/KazagumoQueue.ts';
|
|
3
|
+
import type {
|
|
4
4
|
FilterOptions,
|
|
5
5
|
Node,
|
|
6
6
|
Player,
|
|
@@ -9,16 +9,17 @@ import {
|
|
|
9
9
|
TrackStuckEvent,
|
|
10
10
|
WebSocketClosedEvent,
|
|
11
11
|
} from 'shoukaku-bun';
|
|
12
|
-
import {
|
|
13
|
-
Events,
|
|
14
|
-
KazagumoError,
|
|
12
|
+
import type {
|
|
15
13
|
KazagumoPlayerOptions,
|
|
16
14
|
KazagumoSearchOptions,
|
|
17
15
|
KazagumoSearchResult,
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
PlayOptions} from '../Modules/Interfaces';
|
|
17
|
+
import {
|
|
18
|
+
Events,
|
|
19
|
+
KazagumoError,
|
|
20
|
+
PlayerState
|
|
20
21
|
} from '../Modules/Interfaces';
|
|
21
|
-
import { KazagumoTrack } from './Supports/KazagumoTrack';
|
|
22
|
+
import { KazagumoTrack } from './Supports/KazagumoTrack.ts';
|
|
22
23
|
|
|
23
24
|
export class KazagumoPlayer {
|
|
24
25
|
/**
|
|
@@ -168,7 +169,7 @@ export class KazagumoPlayer {
|
|
|
168
169
|
this.shoukaku.on('update', (data: PlayerUpdate) => this.emit(Events.PlayerUpdate, this, data));
|
|
169
170
|
this.shoukaku.on('stuck', (data: TrackStuckEvent) => this.emit(Events.PlayerStuck, this, data));
|
|
170
171
|
this.shoukaku.on('resumed', () => this.emit(Events.PlayerResumed, this));
|
|
171
|
-
// @ts-
|
|
172
|
+
// @ts-expect-error: Shoukaku Events doesn't have QueueUpdate but it's emitted manually
|
|
172
173
|
this.shoukaku.on(Events.QueueUpdate, (referencePlayer: KazagumoPlayer, queue: KazagumoQueue) =>
|
|
173
174
|
this.kazagumo.emit(Events.QueueUpdate, referencePlayer, queue),
|
|
174
175
|
);
|
|
@@ -319,7 +320,8 @@ export class KazagumoPlayer {
|
|
|
319
320
|
this.emit(Events.PlayerResolveError, this, current, errorMessage);
|
|
320
321
|
this.emit(Events.Debug, `Player ${this.guildId} resolve error: ${errorMessage}`);
|
|
321
322
|
this.queue.current = null;
|
|
322
|
-
this.queue.size
|
|
323
|
+
if (this.queue.size) await this.play();
|
|
324
|
+
else this.emit(Events.PlayerEmpty, this);
|
|
323
325
|
return this;
|
|
324
326
|
}
|
|
325
327
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { KazagumoTrack } from './KazagumoTrack';
|
|
2
|
-
import { Events, KazagumoError } from '../../Modules/Interfaces';
|
|
3
|
-
import { KazagumoPlayer } from '../KazagumoPlayer';
|
|
1
|
+
import type { KazagumoTrack } from './KazagumoTrack.ts';
|
|
2
|
+
import { Events, KazagumoError } from '../../Modules/Interfaces.ts';
|
|
3
|
+
import type { KazagumoPlayer } from '../KazagumoPlayer.ts';
|
|
4
4
|
|
|
5
5
|
export class KazagumoQueue extends Array<KazagumoTrack> {
|
|
6
6
|
constructor(private readonly kazagumoPlayer: KazagumoPlayer) {
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
-
import { Kazagumo } from '../../Kazagumo';
|
|
1
|
+
import type { Kazagumo } from '../../Kazagumo.ts';
|
|
2
|
+
import type {
|
|
3
|
+
RawTrack,
|
|
4
|
+
ResolveOptions} from '../../Modules/Interfaces';
|
|
2
5
|
import {
|
|
3
6
|
escapeRegExp,
|
|
4
7
|
Events,
|
|
5
8
|
KazagumoError,
|
|
6
|
-
RawTrack,
|
|
7
|
-
ResolveOptions,
|
|
8
9
|
SourceIDs,
|
|
9
10
|
SupportedSources,
|
|
10
11
|
} from '../../Modules/Interfaces';
|
|
11
|
-
import { Track } from 'shoukaku-bun';
|
|
12
|
-
import { KazagumoPlayer } from '../KazagumoPlayer';
|
|
12
|
+
import type { Track } from 'shoukaku-bun';
|
|
13
|
+
import type { KazagumoPlayer } from '../KazagumoPlayer.ts';
|
|
13
14
|
|
|
14
15
|
export class KazagumoTrack {
|
|
15
16
|
/**
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Kazagumo } from '../Kazagumo';
|
|
2
|
-
import { KazagumoPlayer, KazagumoQueue } from '../Index';
|
|
3
|
-
import { KazagumoTrack } from '../Managers/Supports/KazagumoTrack';
|
|
4
|
-
import { Constructor } from './Utils';
|
|
5
|
-
import { Track } from 'shoukaku-bun';
|
|
1
|
+
import type { Kazagumo } from '../Kazagumo.ts';
|
|
2
|
+
import type { KazagumoPlayer, KazagumoQueue } from '../Index.ts';
|
|
3
|
+
import type { KazagumoTrack } from '../Managers/Supports/KazagumoTrack.ts';
|
|
4
|
+
import type { Constructor } from './Utils.ts';
|
|
5
|
+
import type { Track } from 'shoukaku-bun';
|
|
6
6
|
|
|
7
7
|
export interface KazagumoOptions {
|
|
8
8
|
/** Default search engine if no engine was provided. Default to youtube. If defaultSource is provided, this will be ignored */
|
|
@@ -182,11 +182,11 @@ export enum PlayerState {
|
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
export class KazagumoPlugin {
|
|
185
|
-
public load(
|
|
185
|
+
public load(_kazagumo: Kazagumo): void {
|
|
186
186
|
throw new KazagumoError(1, 'Plugin must implement load()');
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
-
public unload(
|
|
189
|
+
public unload(_kazagumo: Kazagumo): void {
|
|
190
190
|
throw new KazagumoError(1, 'Plugin must implement unload()');
|
|
191
191
|
}
|
|
192
192
|
}
|
package/src/Modules/Plugins.ts
CHANGED
package/src/Modules/Utils.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Track } from 'shoukaku-bun';
|
|
2
|
-
import { KazagumoTrack } from '../Managers/Supports/KazagumoTrack';
|
|
1
|
+
import type { Track } from 'shoukaku-bun';
|
|
2
|
+
import type { KazagumoTrack } from '../Managers/Supports/KazagumoTrack.ts';
|
|
3
3
|
|
|
4
4
|
export class KazagumoUtils {
|
|
5
5
|
static convertKazagumoTrackToTrack(track: KazagumoTrack | Track): Track {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { Kazagumo
|
|
2
|
-
import {
|
|
1
|
+
import type { Kazagumo} from '../Index.ts';
|
|
2
|
+
import { Events } from '../Index.ts';
|
|
3
|
+
import { KazagumoPlugin as Plugin } from '../Modules/Interfaces.ts';
|
|
3
4
|
|
|
4
5
|
export class KazagumoPlugin extends Plugin {
|
|
5
6
|
/**
|
package/.prettierrc
DELETED
package/LICENSE.md
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
The MIT License (MIT)
|
|
3
|
-
|
|
4
|
-
Copyright (c) 2021 Takiyo Takahashi
|
|
5
|
-
|
|
6
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
-
in the Software without restriction, including without limitation the rights
|
|
9
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
-
furnished to do so, subject to the following conditions:
|
|
12
|
-
|
|
13
|
-
The above copyright notice and this permission notice shall be included in all
|
|
14
|
-
copies or substantial portions of the Software.
|
|
15
|
-
|
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
-
SOFTWARE.
|
package/appveyor.yml
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Test against the latest version of this Node.js version
|
|
2
|
-
environment:
|
|
3
|
-
nodejs_version: "16"
|
|
4
|
-
|
|
5
|
-
# Install scripts. (runs after repo cloning)
|
|
6
|
-
install:
|
|
7
|
-
# Get the latest stable version of Node.js or io.js
|
|
8
|
-
- ps: Install-Product node $env:nodejs_version
|
|
9
|
-
# install modules
|
|
10
|
-
- npm install
|
|
11
|
-
|
|
12
|
-
# Post-install test scripts.
|
|
13
|
-
test_script:
|
|
14
|
-
# Output useful info for debugging.
|
|
15
|
-
- node --version
|
|
16
|
-
- npm --version
|
|
17
|
-
# run tests
|
|
18
|
-
- npm run lint
|
|
19
|
-
- npm run format
|
|
20
|
-
- npm run build
|
|
21
|
-
- npm run build:docs
|
|
22
|
-
|
|
23
|
-
# Don't actually build.
|
|
24
|
-
build: off
|
package/tslint.json
DELETED