@wavezfm/api 0.1.4 → 0.1.7
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 +233 -147
- package/dist/core/i18n.js +4 -4
- package/dist/core/i18n.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/realtime/roomBot.js +166 -48
- package/dist/realtime/roomBot.js.map +1 -1
- package/dist/resources/roomBot.d.ts +7 -1
- package/dist/resources/roomBot.js +19 -0
- package/dist/resources/roomBot.js.map +1 -1
- package/dist/types.d.ts +29 -2
- package/dist/utils/chat.d.ts +1 -0
- package/dist/utils/chat.js +14 -0
- package/dist/utils/chat.js.map +1 -0
- package/dist/utils/roomQueue.js +1 -6
- package/dist/utils/roomQueue.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,10 +17,10 @@ bun add @wavezfm/api
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
19
|
```ts
|
|
20
|
-
import { createApiClient } from
|
|
20
|
+
import { createApiClient } from "@wavezfm/api";
|
|
21
21
|
|
|
22
22
|
const client = createApiClient({
|
|
23
|
-
baseURL:
|
|
23
|
+
baseURL: "https://api.wavez.fm",
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
const rooms = await client.room.list();
|
|
@@ -31,244 +31,237 @@ console.log(rooms.data);
|
|
|
31
31
|
|
|
32
32
|
```ts
|
|
33
33
|
createApiClient({
|
|
34
|
-
baseURL:
|
|
35
|
-
timeout: 15_000,
|
|
36
|
-
logging: false,
|
|
37
|
-
headers: {
|
|
38
|
-
credentials:
|
|
39
|
-
locale:
|
|
40
|
-
})
|
|
34
|
+
baseURL: "https://api.wavez.fm",
|
|
35
|
+
timeout: 15_000,
|
|
36
|
+
logging: false,
|
|
37
|
+
headers: { "X-App-Version": "1.0.0" },
|
|
38
|
+
credentials: "include",
|
|
39
|
+
locale: "en",
|
|
40
|
+
});
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
The client accepts
|
|
43
|
+
The client accepts:
|
|
44
44
|
|
|
45
|
-
- `https://api.
|
|
46
|
-
- `https://wavezfm.example.com/api`
|
|
47
|
-
- `https://wavezfm.example.com`
|
|
45
|
+
- `https://api.wavez.fm`
|
|
48
46
|
|
|
49
|
-
If you use a dedicated API origin such as `api.
|
|
47
|
+
If you use a dedicated API origin such as `api.wavez.fm`, the SDK keeps root paths like `/rooms`.
|
|
50
48
|
If you pass the main site origin, the SDK still falls back to `/api`.
|
|
51
49
|
|
|
52
50
|
You can localize SDK-generated errors with `locale` or override specific messages with `messages`:
|
|
53
51
|
|
|
54
52
|
```ts
|
|
55
53
|
const client = createApiClient({
|
|
56
|
-
baseURL:
|
|
57
|
-
locale:
|
|
54
|
+
baseURL: "https://api.wavez.fm",
|
|
55
|
+
locale: "en",
|
|
58
56
|
messages: {
|
|
59
|
-
roomBotCreatePrefixLengthInvalid:
|
|
57
|
+
roomBotCreatePrefixLengthInvalid: "Custom prefix length message.",
|
|
60
58
|
},
|
|
61
59
|
});
|
|
62
60
|
```
|
|
63
61
|
|
|
64
|
-
##
|
|
62
|
+
## API Surfaces
|
|
65
63
|
|
|
66
|
-
|
|
64
|
+
This SDK exposes three distinct surfaces. They do not authenticate the same way.
|
|
67
65
|
|
|
68
|
-
|
|
69
|
-
const client = createApiClient({
|
|
70
|
-
baseURL: 'https://wavezfm.example.com/api',
|
|
71
|
-
});
|
|
66
|
+
### Site / Browser API
|
|
72
67
|
|
|
73
|
-
|
|
74
|
-
email: 'user@example.com',
|
|
75
|
-
password: 'secret',
|
|
76
|
-
});
|
|
68
|
+
Use this for the normal site routes:
|
|
77
69
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
70
|
+
- auth
|
|
71
|
+
- settings
|
|
72
|
+
- users
|
|
73
|
+
- rooms
|
|
74
|
+
- playlists
|
|
75
|
+
- chat
|
|
76
|
+
- billing
|
|
77
|
+
- shop
|
|
83
78
|
|
|
84
|
-
|
|
79
|
+
Auth mode:
|
|
85
80
|
|
|
86
|
-
|
|
81
|
+
- browser session cookies
|
|
82
|
+
- same protections used by the site
|
|
87
83
|
|
|
88
|
-
|
|
89
|
-
const client = createApiClient({
|
|
90
|
-
baseURL: 'https://wavezfm.example.com/api',
|
|
91
|
-
});
|
|
84
|
+
This is also where bot tokens are created with `client.room.createBotToken(...)`.
|
|
92
85
|
|
|
93
|
-
|
|
94
|
-
botName: 'Night Shift Bot',
|
|
95
|
-
commandPrefix: '!',
|
|
96
|
-
permissions: ['read_state', 'read_chat', 'send_chat', 'manage_room'],
|
|
97
|
-
});
|
|
86
|
+
### Room Bot HTTP API
|
|
98
87
|
|
|
99
|
-
|
|
88
|
+
Use this for backend automation scoped to one room:
|
|
100
89
|
|
|
101
|
-
|
|
102
|
-
|
|
90
|
+
- room state
|
|
91
|
+
- room event history
|
|
92
|
+
- bot chat send/read
|
|
93
|
+
- queue actions
|
|
94
|
+
- moderation and room management
|
|
103
95
|
|
|
104
|
-
|
|
105
|
-
console.log(state.data.bot);
|
|
106
|
-
```
|
|
96
|
+
Auth mode:
|
|
107
97
|
|
|
108
|
-
|
|
98
|
+
- room bot token with `client.api.setRoomBotToken(...)`
|
|
109
99
|
|
|
110
|
-
|
|
111
|
-
- it is only available in that creation response
|
|
112
|
-
- store it securely on your backend after creation
|
|
113
|
-
- later, load it back with `client.api.setRoomBotToken(...)`
|
|
100
|
+
### Room Bot Realtime API
|
|
114
101
|
|
|
115
|
-
|
|
102
|
+
Use this for low-latency bot behavior:
|
|
116
103
|
|
|
117
|
-
|
|
118
|
-
|
|
104
|
+
- chat listeners
|
|
105
|
+
- queue/playback/vote listeners
|
|
106
|
+
- command reactions
|
|
119
107
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
108
|
+
Auth mode:
|
|
109
|
+
|
|
110
|
+
- room bot token over WebSocket
|
|
111
|
+
|
|
112
|
+
## Site / Browser API
|
|
113
|
+
|
|
114
|
+
WavezFM uses session cookies for most user-authenticated routes.
|
|
115
|
+
|
|
116
|
+
```ts
|
|
117
|
+
const client = createApiClient({
|
|
118
|
+
baseURL: "https://api.wavez.fm",
|
|
125
119
|
});
|
|
126
120
|
|
|
127
|
-
|
|
128
|
-
|
|
121
|
+
await client.auth.login({
|
|
122
|
+
email: "user@example.com",
|
|
123
|
+
password: "secret",
|
|
129
124
|
});
|
|
130
125
|
|
|
131
|
-
await
|
|
126
|
+
const me = await client.auth.me();
|
|
127
|
+
if (me.data) {
|
|
128
|
+
console.log(me.data.displayUsername ?? me.data.username);
|
|
129
|
+
}
|
|
132
130
|
```
|
|
133
131
|
|
|
134
|
-
|
|
132
|
+
For server-side integrations, prefer the room-bot surfaces below. Regular user routes are browser-first.
|
|
133
|
+
|
|
134
|
+
### Site Resources
|
|
135
135
|
|
|
136
|
-
All resources are exposed from the pre-configured client:
|
|
136
|
+
All site resources are exposed from the pre-configured client:
|
|
137
137
|
|
|
138
138
|
```ts
|
|
139
|
-
const client = createApiClient({ baseURL:
|
|
139
|
+
const client = createApiClient({ baseURL: "https://api.wavez.fm" });
|
|
140
140
|
```
|
|
141
141
|
|
|
142
|
-
|
|
142
|
+
#### Auth
|
|
143
143
|
|
|
144
144
|
```ts
|
|
145
145
|
await client.auth.login({ email, password });
|
|
146
146
|
await client.auth.register({ email, password, name, username });
|
|
147
|
-
const me = await client.auth.me();
|
|
147
|
+
const me = await client.auth.me();
|
|
148
148
|
await client.auth.getPendingTwoFactor();
|
|
149
149
|
await client.auth.sendPendingTwoFactorCode();
|
|
150
|
-
await client.auth.verifyPendingTwoFactor({ code:
|
|
150
|
+
await client.auth.verifyPendingTwoFactor({ code: "123456" });
|
|
151
151
|
```
|
|
152
152
|
|
|
153
|
-
|
|
153
|
+
#### Settings
|
|
154
154
|
|
|
155
155
|
```ts
|
|
156
156
|
await client.settings.get();
|
|
157
157
|
await client.settings.update({
|
|
158
|
-
bio:
|
|
159
|
-
presenceStatus:
|
|
158
|
+
bio: "Late-night selector",
|
|
159
|
+
presenceStatus: "busy",
|
|
160
160
|
showChatBadge: true,
|
|
161
161
|
});
|
|
162
162
|
await client.settings.getTwoFactor();
|
|
163
|
-
await client.settings.startEmailTwoFactor({ password:
|
|
164
|
-
await client.settings.startAuthenticatorTwoFactor({ password:
|
|
165
|
-
await client.settings.disableTwoFactor({ password:
|
|
163
|
+
await client.settings.startEmailTwoFactor({ password: "secret" });
|
|
164
|
+
await client.settings.startAuthenticatorTwoFactor({ password: "secret" });
|
|
165
|
+
await client.settings.disableTwoFactor({ password: "secret" });
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
-
|
|
168
|
+
#### Users
|
|
169
169
|
|
|
170
170
|
```ts
|
|
171
|
-
await client.user.getById(
|
|
172
|
-
await client.user.getByUsername(
|
|
173
|
-
await client.user.getBadges(
|
|
171
|
+
await client.user.getById("user-id");
|
|
172
|
+
await client.user.getByUsername("haru");
|
|
173
|
+
await client.user.getBadges("user-id");
|
|
174
174
|
await client.user.listAllBadges();
|
|
175
175
|
```
|
|
176
176
|
|
|
177
|
-
|
|
177
|
+
#### Rooms
|
|
178
178
|
|
|
179
179
|
```ts
|
|
180
180
|
await client.room.list();
|
|
181
181
|
await client.room.featured();
|
|
182
|
-
await client.room.getBySlug(
|
|
183
|
-
await client.room.getWaitlist(
|
|
184
|
-
await client.room.create({ slug:
|
|
185
|
-
await client.room.join(
|
|
186
|
-
await client.room.favorite(
|
|
187
|
-
await client.room.getManagement(
|
|
188
|
-
const createdBot = await client.room.createBotToken('room-id', {
|
|
189
|
-
botName: 'Night Shift Bot',
|
|
190
|
-
commandPrefix: '!',
|
|
191
|
-
permissions: ['read_state', 'read_chat', 'send_chat', 'manage_room'],
|
|
192
|
-
});
|
|
193
|
-
|
|
194
|
-
client.api.setRoomBotToken(createdBot.data.token);
|
|
182
|
+
await client.room.getBySlug("wavezfm-lounge");
|
|
183
|
+
await client.room.getWaitlist("wavezfm-lounge");
|
|
184
|
+
await client.room.create({ slug: "my-room", name: "My Room" });
|
|
185
|
+
await client.room.join("wavezfm-lounge");
|
|
186
|
+
await client.room.favorite("room-id");
|
|
187
|
+
await client.room.getManagement("room-id");
|
|
195
188
|
```
|
|
196
189
|
|
|
197
|
-
|
|
190
|
+
#### Playlists
|
|
198
191
|
|
|
199
192
|
```ts
|
|
200
193
|
await client.playlist.list();
|
|
201
|
-
await client.playlist.create(
|
|
202
|
-
await client.playlist.update(
|
|
203
|
-
await client.playlist.getTracks(
|
|
204
|
-
await client.playlist.previewUrl(
|
|
205
|
-
await client.playlist.addTrack(
|
|
206
|
-
source:
|
|
207
|
-
sourceId:
|
|
194
|
+
await client.playlist.create("My Playlist");
|
|
195
|
+
await client.playlist.update("playlist-id", { name: "Late Night Set" });
|
|
196
|
+
await client.playlist.getTracks("playlist-id");
|
|
197
|
+
await client.playlist.previewUrl("https://youtube.com/watch?v=dQw4w9WgXcQ");
|
|
198
|
+
await client.playlist.addTrack("playlist-id", {
|
|
199
|
+
source: "youtube",
|
|
200
|
+
sourceId: "dQw4w9WgXcQ",
|
|
208
201
|
});
|
|
209
|
-
await client.playlist.reorderTracks(
|
|
202
|
+
await client.playlist.reorderTracks("playlist-id", ["track-a", "track-b"]);
|
|
210
203
|
await client.playlist.startSpotifyImport({
|
|
211
|
-
playlistId:
|
|
212
|
-
url:
|
|
204
|
+
playlistId: "playlist-id",
|
|
205
|
+
url: "https://open.spotify.com/playlist/...",
|
|
213
206
|
});
|
|
214
207
|
```
|
|
215
208
|
|
|
216
|
-
|
|
209
|
+
#### Sources
|
|
217
210
|
|
|
218
211
|
```ts
|
|
219
|
-
await client.source.searchYouTube(
|
|
220
|
-
await client.source.searchSoundCloud(
|
|
221
|
-
await client.source.searchAll(
|
|
212
|
+
await client.source.searchYouTube("lofi hip hop", 10);
|
|
213
|
+
await client.source.searchSoundCloud("nightcore", 10);
|
|
214
|
+
await client.source.searchAll("ambient");
|
|
222
215
|
```
|
|
223
216
|
|
|
224
|
-
|
|
217
|
+
#### Chat
|
|
225
218
|
|
|
226
219
|
```ts
|
|
227
|
-
await client.chat.getMessages(
|
|
228
|
-
await client.chat.getMessagesBySlug(
|
|
229
|
-
await client.chat.updateMessage(
|
|
230
|
-
content:
|
|
220
|
+
await client.chat.getMessages("room-id", 0, 50);
|
|
221
|
+
await client.chat.getMessagesBySlug("wavezfm-lounge", 0, 50);
|
|
222
|
+
await client.chat.updateMessage("room-id", "message-id", {
|
|
223
|
+
content: "edited message",
|
|
231
224
|
});
|
|
232
|
-
await client.chat.pinMessage(
|
|
233
|
-
await client.chat.clearChat(
|
|
225
|
+
await client.chat.pinMessage("room-id", "message-id");
|
|
226
|
+
await client.chat.clearChat("room-id");
|
|
234
227
|
```
|
|
235
228
|
|
|
236
|
-
|
|
229
|
+
#### Friends / Fans
|
|
237
230
|
|
|
238
231
|
```ts
|
|
239
232
|
await client.friend.list();
|
|
240
233
|
await client.friend.pending();
|
|
241
|
-
await client.friend.sendRequest(
|
|
242
|
-
await client.friend.acceptRequest(
|
|
243
|
-
await client.friend.follow(
|
|
234
|
+
await client.friend.sendRequest("user-id");
|
|
235
|
+
await client.friend.acceptRequest("request-id");
|
|
236
|
+
await client.friend.follow("user-id");
|
|
244
237
|
await client.friend.followers();
|
|
245
238
|
```
|
|
246
239
|
|
|
247
|
-
|
|
240
|
+
#### Shop
|
|
248
241
|
|
|
249
242
|
```ts
|
|
250
243
|
await client.shop.getCatalog();
|
|
251
244
|
await client.shop.getWallet();
|
|
252
|
-
await client.shop.purchase({ itemId:
|
|
253
|
-
await client.shop.equip(
|
|
245
|
+
await client.shop.purchase({ itemId: "badge-id" });
|
|
246
|
+
await client.shop.equip("avatar-id");
|
|
254
247
|
await client.shop.getInventory();
|
|
255
248
|
```
|
|
256
249
|
|
|
257
|
-
|
|
250
|
+
#### Billing
|
|
258
251
|
|
|
259
252
|
```ts
|
|
260
|
-
await client.billing.createSubscriptionCheckout({ cycle:
|
|
253
|
+
await client.billing.createSubscriptionCheckout({ cycle: "monthly" });
|
|
261
254
|
await client.billing.createDiamondCheckout({ quantity: 1000 });
|
|
262
|
-
await client.billing.createRoomDonationCheckout(
|
|
255
|
+
await client.billing.createRoomDonationCheckout("room-id", { amountCents: 500 });
|
|
263
256
|
await client.billing.createGlobalDonationCheckout({ amountCents: 1000 });
|
|
264
257
|
await client.billing.createDiamondGiftCheckout({
|
|
265
|
-
recipientUsername:
|
|
258
|
+
recipientUsername: "haru",
|
|
266
259
|
quantity: 500,
|
|
267
260
|
});
|
|
268
261
|
await client.billing.listPendingGifts();
|
|
269
262
|
```
|
|
270
263
|
|
|
271
|
-
|
|
264
|
+
#### System
|
|
272
265
|
|
|
273
266
|
```ts
|
|
274
267
|
await client.system.status();
|
|
@@ -276,32 +269,122 @@ await client.system.publicStats();
|
|
|
276
269
|
await client.system.health();
|
|
277
270
|
```
|
|
278
271
|
|
|
279
|
-
|
|
272
|
+
## Room Bot HTTP API
|
|
273
|
+
|
|
274
|
+
Room bot tokens are created from the site/session surface, then used on the bot surface.
|
|
275
|
+
|
|
276
|
+
```ts
|
|
277
|
+
const client = createApiClient({
|
|
278
|
+
baseURL: "https://api.wavez.fm",
|
|
279
|
+
});
|
|
280
|
+
|
|
281
|
+
const created = await client.room.createBotToken("room-id", {
|
|
282
|
+
botName: "Night Shift Bot",
|
|
283
|
+
commandPrefix: "!",
|
|
284
|
+
permissions: ["read_state", "read_chat", "send_chat", "manage_room"],
|
|
285
|
+
});
|
|
286
|
+
|
|
287
|
+
const roomBotToken = created.data.token;
|
|
288
|
+
|
|
289
|
+
// Store this in your backend or environment store.
|
|
290
|
+
client.api.setRoomBotToken(roomBotToken);
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
Important:
|
|
294
|
+
|
|
295
|
+
- the plain bot token is returned by `client.room.createBotToken(...)`
|
|
296
|
+
- it is only available in that creation response
|
|
297
|
+
- store it securely on your backend after creation
|
|
298
|
+
- later, load it back with `client.api.setRoomBotToken(...)`
|
|
299
|
+
|
|
300
|
+
### Bot Resources
|
|
280
301
|
|
|
281
302
|
```ts
|
|
282
303
|
client.api.setRoomBotToken(process.env.WAVEZ_ROOM_BOT_TOKEN!);
|
|
283
304
|
|
|
284
|
-
await client.roomBot.getState(
|
|
285
|
-
await client.roomBot.
|
|
286
|
-
await client.roomBot.
|
|
287
|
-
await client.roomBot.
|
|
305
|
+
await client.roomBot.getState("room-id");
|
|
306
|
+
await client.roomBot.getQueueStatus("room-id");
|
|
307
|
+
await client.roomBot.getMessages("room-id");
|
|
308
|
+
await client.roomBot.getEvents("room-id", {
|
|
309
|
+
limit: 25,
|
|
310
|
+
types: ["user_joined", "waitlist_join", "left"],
|
|
311
|
+
});
|
|
312
|
+
await client.roomBot.addToQueue("room-id", "user-id");
|
|
313
|
+
await client.roomBot.sendMessage("room-id", {
|
|
314
|
+
content: "!lockqueue",
|
|
315
|
+
});
|
|
316
|
+
await client.roomBot.updateSettings("room-id", {
|
|
288
317
|
queueLocked: true,
|
|
289
318
|
commandAnnouncement: {
|
|
290
|
-
commandId:
|
|
291
|
-
actorUsername:
|
|
319
|
+
commandId: "lockqueue",
|
|
320
|
+
actorUsername: "Night Shift Bot",
|
|
292
321
|
},
|
|
293
322
|
});
|
|
294
323
|
```
|
|
295
324
|
|
|
325
|
+
`roomBot.getEvents()` is the normalized HTTP history surface.
|
|
326
|
+
|
|
327
|
+
Returned `event` values:
|
|
328
|
+
|
|
329
|
+
- `user_joined`
|
|
330
|
+
- `waitlist_join`
|
|
331
|
+
- `left`
|
|
332
|
+
|
|
333
|
+
Accepted filter aliases in `types` for backward compatibility:
|
|
334
|
+
|
|
335
|
+
- `queue_joined` -> `waitlist_join`
|
|
336
|
+
- `user_left` -> `left`
|
|
337
|
+
|
|
338
|
+
## Room Bot Realtime API
|
|
339
|
+
|
|
340
|
+
```ts
|
|
341
|
+
import {
|
|
342
|
+
createRoomBotRealtimeClient,
|
|
343
|
+
formatMentionText,
|
|
344
|
+
} from "@wavezfm/api";
|
|
345
|
+
|
|
346
|
+
const bot = createRoomBotRealtimeClient({
|
|
347
|
+
baseURL: "https://api.wavez.fm",
|
|
348
|
+
botToken: process.env.WAVEZ_ROOM_BOT_TOKEN!,
|
|
349
|
+
roomId: "room-id",
|
|
350
|
+
locale: "en",
|
|
351
|
+
autoReconnect: true,
|
|
352
|
+
});
|
|
353
|
+
|
|
354
|
+
bot.on("message_created", (packet) => {
|
|
355
|
+
console.log(packet.payload);
|
|
356
|
+
});
|
|
357
|
+
|
|
358
|
+
bot.on("queue_joined", (packet) => {
|
|
359
|
+
console.log(packet.payload);
|
|
360
|
+
});
|
|
361
|
+
|
|
362
|
+
await bot.connect();
|
|
363
|
+
bot.sendChat({
|
|
364
|
+
content: `${formatMentionText("Agente MIB")} estou em modo AFK agora.`,
|
|
365
|
+
});
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
The realtime helper automatically retries abnormal disconnects such as WebSocket close code `1006` by default. Fatal closes like revoked or invalid auth are not retried.
|
|
369
|
+
|
|
370
|
+
Important:
|
|
371
|
+
|
|
372
|
+
- realtime packet names are the raw WebSocket event names
|
|
373
|
+
- examples: `message_created`, `user_left`, `queue_joined`, `track_started`
|
|
374
|
+
- they are not normalized to the HTTP history names
|
|
375
|
+
|
|
296
376
|
## Error Handling
|
|
297
377
|
|
|
298
378
|
All methods throw `ApiError` on failure.
|
|
299
379
|
|
|
300
380
|
```ts
|
|
301
|
-
import { ApiError } from
|
|
381
|
+
import { ApiError } from "@wavezfm/api";
|
|
302
382
|
|
|
303
383
|
try {
|
|
304
|
-
await client.auth.login({
|
|
384
|
+
await client.auth.login({
|
|
385
|
+
email: "bad@example.com",
|
|
386
|
+
password: "bad",
|
|
387
|
+
});
|
|
305
388
|
} catch (error) {
|
|
306
389
|
if (error instanceof ApiError) {
|
|
307
390
|
console.log(error.message);
|
|
@@ -315,9 +398,9 @@ try {
|
|
|
315
398
|
## Token Management
|
|
316
399
|
|
|
317
400
|
```ts
|
|
318
|
-
const client = createApiClient({ baseURL:
|
|
401
|
+
const client = createApiClient({ baseURL: "https://api.wavez.fm" });
|
|
319
402
|
|
|
320
|
-
client.api.setAuthToken(
|
|
403
|
+
client.api.setAuthToken("optional-bearer-token");
|
|
321
404
|
client.api.setRoomBotToken(process.env.WAVEZ_ROOM_BOT_TOKEN!);
|
|
322
405
|
|
|
323
406
|
client.api.getAuthToken();
|
|
@@ -329,11 +412,11 @@ client.api.getRoomBotToken();
|
|
|
329
412
|
For maximum tree-shaking, import only what you need:
|
|
330
413
|
|
|
331
414
|
```ts
|
|
332
|
-
import { createApi } from
|
|
333
|
-
import { createRoomResource } from
|
|
334
|
-
import { createRoomBotResource } from
|
|
415
|
+
import { createApi } from "@wavezfm/api";
|
|
416
|
+
import { createRoomResource } from "@wavezfm/api/resources/room";
|
|
417
|
+
import { createRoomBotResource } from "@wavezfm/api/resources/room-bot";
|
|
335
418
|
|
|
336
|
-
const api = createApi({ baseURL:
|
|
419
|
+
const api = createApi({ baseURL: "https://api.wavez.fm" });
|
|
337
420
|
const room = createRoomResource(api);
|
|
338
421
|
const roomBot = createRoomBotResource(api);
|
|
339
422
|
```
|
|
@@ -348,13 +431,16 @@ import type {
|
|
|
348
431
|
MediaSearchResult,
|
|
349
432
|
ChatMessage,
|
|
350
433
|
RoomBotState,
|
|
434
|
+
RoomPresenceEventType,
|
|
435
|
+
RoomPresenceEventFilterType,
|
|
351
436
|
WsPacket,
|
|
352
|
-
} from
|
|
437
|
+
} from "@wavezfm/api";
|
|
353
438
|
```
|
|
354
439
|
|
|
355
440
|
## Notes
|
|
356
441
|
|
|
357
|
-
-
|
|
358
|
-
- room-bot routes are
|
|
442
|
+
- site/session routes are browser-first because the backend uses cookies and same-origin protections
|
|
443
|
+
- room-bot HTTP routes are backend-first and scoped to one room
|
|
444
|
+
- room-bot realtime uses raw WebSocket packet names
|
|
359
445
|
- the package is tree-shakable through factory exports in `resources/*`
|
|
360
446
|
- the realtime helper expects native `WebSocket` or a custom `websocketFactory`
|
package/dist/core/i18n.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const DEFAULT_LOCALE = "en";
|
|
1
|
+
const DEFAULT_LOCALE = "en-US";
|
|
2
2
|
const DEFAULT_MESSAGES = {
|
|
3
|
-
en: {
|
|
3
|
+
"en-US": {
|
|
4
4
|
fetchUnavailable: "Fetch API is unavailable. Provide `fetch` to createApi(...) or use a runtime with native fetch.",
|
|
5
5
|
baseUrlRequired: "`baseURL` is required to create the client.",
|
|
6
6
|
requestTimedOut: "Request timed out.",
|
|
@@ -84,8 +84,8 @@ function interpolateMessage(template, values) {
|
|
|
84
84
|
}
|
|
85
85
|
export function createSdkMessageFormatter(locale = DEFAULT_LOCALE, overrides = {}) {
|
|
86
86
|
const dictionary = {
|
|
87
|
-
...DEFAULT_MESSAGES
|
|
88
|
-
...(DEFAULT_MESSAGES[locale] ?? DEFAULT_MESSAGES
|
|
87
|
+
...DEFAULT_MESSAGES["en-US"],
|
|
88
|
+
...(DEFAULT_MESSAGES[locale] ?? DEFAULT_MESSAGES["en-US"]),
|
|
89
89
|
...overrides,
|
|
90
90
|
};
|
|
91
91
|
return (key, values) => interpolateMessage(dictionary[key], values);
|
package/dist/core/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/core/i18n.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAmB,
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/core/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -13,8 +13,9 @@ export { createBillingResource } from "./resources/billing.js";
|
|
|
13
13
|
export { createSystemResource } from "./resources/system.js";
|
|
14
14
|
export { createRoomBotResource } from "./resources/roomBot.js";
|
|
15
15
|
export { parseRoomQueueSnapshot } from "./utils/roomQueue.js";
|
|
16
|
+
export { formatMentionText } from "./utils/chat.js";
|
|
16
17
|
export { createRoomBotRealtimeClient } from "./realtime/roomBot.js";
|
|
17
|
-
export type { ApiClientConfig, ApiLike, ApiQuery, ApiQueryValue, ApiRequestOptions, ApiSuccessResponse, AuthMode, AuthUser, BadgeAssignment, ChatMessage, CheckoutSessionResponse, InventoryResponse, InventoryCatalogEntry, InventoryCatalogItem, MediaSearchResult, PlaylistSummary, PlaylistTrack, RoomBotPermission, RoomQueueEntry, RoomQueuePlayback, RoomQueueSnapshot, RoomQueueStatusResponse, RoomQueueUser, RoomQueueViewerStatus, RoomBotMessageReplyInput, RoomBotRealtimeClient, RoomBotRealtimeOptions, RoomBotSendMessageInput, RoomBotState, RoomBotToken, RoomSummary, WavezApiLocale, WavezApiMessageKey, WavezApiMessages, WavezApiMessageValues, StoreCatalogResponse, StoreCatalogItem, StoreCatalogSection, SystemDonationGoal, SystemPublicStats, SystemStatus, TwoFactorStatus, UserSettings, UserProfile, WalletBalance, WebSocketLike, WsPacket, } from "./types.js";
|
|
18
|
+
export type { ApiClientConfig, ApiLike, ApiQuery, ApiQueryValue, ApiRequestOptions, ApiSuccessResponse, AuthMode, AuthUser, BadgeAssignment, ChatMessage, CheckoutSessionResponse, InventoryResponse, InventoryCatalogEntry, InventoryCatalogItem, MediaSearchResult, PlaylistSummary, PlaylistTrack, RoomBotPermission, RoomQueueEntry, RoomQueuePlayback, RoomQueueSnapshot, RoomQueueStatusResponse, RoomQueueUser, RoomQueueViewerStatus, RoomBotMessageReplyInput, RoomBotEventsResponse, RoomPresenceEventFilterType, RoomBotQueueAddResponse, RoomBotRealtimeClient, RoomBotRealtimeOptions, RoomBotSendMessageInput, RoomBotState, RoomBotToken, RoomPresenceEvent, RoomPresenceEventType, RoomSummary, WavezApiLocale, WavezApiMessageKey, WavezApiMessages, WavezApiMessageValues, StoreCatalogResponse, StoreCatalogItem, StoreCatalogSection, SystemDonationGoal, SystemPublicStats, SystemStatus, TwoFactorStatus, UserSettings, UserProfile, WalletBalance, WebSocketLike, WsPacket, } from "./types.js";
|
|
18
19
|
import type { ApiClientConfig } from "./types.js";
|
|
19
20
|
export declare function createApiClient(config: ApiClientConfig): {
|
|
20
21
|
api: import("./core/api.js").WavezApi;
|
|
@@ -348,7 +349,13 @@ export declare function createApiClient(config: ApiClientConfig): {
|
|
|
348
349
|
history: boolean;
|
|
349
350
|
messages: unknown[];
|
|
350
351
|
}>>;
|
|
352
|
+
getEvents(roomId: string, options?: {
|
|
353
|
+
limit?: number;
|
|
354
|
+
since?: string | null;
|
|
355
|
+
types?: import("./types.js").RoomPresenceEventFilterType[];
|
|
356
|
+
}): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotEventsResponse>>;
|
|
351
357
|
sendMessage(roomId: string, input: import("./types.js").RoomBotSendMessageInput): Promise<import("./types.js").ApiSuccessResponse<Record<string, unknown>>>;
|
|
358
|
+
addToQueue(roomId: string, userId: string): Promise<import("./types.js").ApiSuccessResponse<import("./types.js").RoomBotQueueAddResponse>>;
|
|
352
359
|
deleteMessage(roomId: string, messageId: string, message?: Record<string, unknown>): Promise<import("./types.js").ApiSuccessResponse<{
|
|
353
360
|
success: true;
|
|
354
361
|
}>>;
|
package/dist/index.js
CHANGED
|
@@ -13,6 +13,7 @@ export { createBillingResource } from "./resources/billing.js";
|
|
|
13
13
|
export { createSystemResource } from "./resources/system.js";
|
|
14
14
|
export { createRoomBotResource } from "./resources/roomBot.js";
|
|
15
15
|
export { parseRoomQueueSnapshot } from "./utils/roomQueue.js";
|
|
16
|
+
export { formatMentionText } from "./utils/chat.js";
|
|
16
17
|
export { createRoomBotRealtimeClient } from "./realtime/roomBot.js";
|
|
17
18
|
import { createApi } from "./core/api.js";
|
|
18
19
|
import { createAuthResource } from "./resources/auth.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAyDpE,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,MAAM,UAAU,eAAe,CAAC,MAAuB;IACnD,MAAM,GAAG,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAE9B,OAAO;QACH,GAAG;QACH,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC;QACrC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC;QACrC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,IAAI,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAC7B,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC;QACnC,MAAM,EAAE,oBAAoB,CAAC,GAAG,CAAC;QACjC,OAAO,EAAE,qBAAqB,CAAC,GAAG,CAAC;KACtC,CAAC;AACN,CAAC"}
|
package/dist/realtime/roomBot.js
CHANGED
|
@@ -1,4 +1,19 @@
|
|
|
1
1
|
import { createSdkMessageFormatter } from "../core/i18n.js";
|
|
2
|
+
const ROOM_BOT_NON_RECONNECTABLE_CLOSE_CODES = new Set([
|
|
3
|
+
1002,
|
|
4
|
+
1003,
|
|
5
|
+
1007,
|
|
6
|
+
1008,
|
|
7
|
+
1009,
|
|
8
|
+
4401,
|
|
9
|
+
4403,
|
|
10
|
+
4404,
|
|
11
|
+
4408,
|
|
12
|
+
4410,
|
|
13
|
+
]);
|
|
14
|
+
const DEFAULT_RECONNECT_DELAY_MS = 1_500;
|
|
15
|
+
const DEFAULT_RECONNECT_MAX_DELAY_MS = 12_000;
|
|
16
|
+
const RECONNECT_BACKOFF_FACTOR = 1.8;
|
|
2
17
|
function createRequestId() {
|
|
3
18
|
return `req_${Date.now().toString(36)}_${Math.random()
|
|
4
19
|
.toString(36)
|
|
@@ -7,6 +22,24 @@ function createRequestId() {
|
|
|
7
22
|
function createTimestamp() {
|
|
8
23
|
return new Date().toISOString();
|
|
9
24
|
}
|
|
25
|
+
function getCloseCode(event) {
|
|
26
|
+
if (event &&
|
|
27
|
+
typeof event === "object" &&
|
|
28
|
+
"code" in event &&
|
|
29
|
+
typeof event.code === "number") {
|
|
30
|
+
return event.code;
|
|
31
|
+
}
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
function getCloseReason(event) {
|
|
35
|
+
if (event &&
|
|
36
|
+
typeof event === "object" &&
|
|
37
|
+
"reason" in event &&
|
|
38
|
+
typeof event.reason === "string") {
|
|
39
|
+
return event.reason;
|
|
40
|
+
}
|
|
41
|
+
return "";
|
|
42
|
+
}
|
|
10
43
|
function normalizeWsBaseURL(baseURL) {
|
|
11
44
|
const url = new URL(baseURL);
|
|
12
45
|
url.protocol = url.protocol === "https:" ? "wss:" : "ws:";
|
|
@@ -50,6 +83,10 @@ export function createRoomBotRealtimeClient(options) {
|
|
|
50
83
|
wsUrl.searchParams.set("botToken", options.botToken);
|
|
51
84
|
let socket = null;
|
|
52
85
|
let detachListeners = [];
|
|
86
|
+
let reconnectTimeout = null;
|
|
87
|
+
let reconnectAttempt = 0;
|
|
88
|
+
let manualDisconnect = false;
|
|
89
|
+
let connectPromise = null;
|
|
53
90
|
const emit = (event, packet) => {
|
|
54
91
|
const handlers = listeners.get(event);
|
|
55
92
|
if (!handlers || handlers.size === 0) {
|
|
@@ -76,14 +113,57 @@ export function createRoomBotRealtimeClient(options) {
|
|
|
76
113
|
}
|
|
77
114
|
socket.send(JSON.stringify(packet));
|
|
78
115
|
};
|
|
79
|
-
const
|
|
116
|
+
const clearReconnectTimeout = () => {
|
|
117
|
+
if (reconnectTimeout === null) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
clearTimeout(reconnectTimeout);
|
|
121
|
+
reconnectTimeout = null;
|
|
122
|
+
};
|
|
123
|
+
const cleanupSocket = (targetSocket) => {
|
|
124
|
+
if (targetSocket && socket && targetSocket !== socket) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
80
127
|
for (const detach of detachListeners) {
|
|
81
128
|
detach();
|
|
82
129
|
}
|
|
83
130
|
detachListeners = [];
|
|
84
|
-
socket?.close(code, reason);
|
|
85
131
|
socket = null;
|
|
86
132
|
};
|
|
133
|
+
const shouldReconnect = (closeCode) => (options.autoReconnect ?? true) &&
|
|
134
|
+
!manualDisconnect &&
|
|
135
|
+
!ROOM_BOT_NON_RECONNECTABLE_CLOSE_CODES.has(closeCode ?? -1);
|
|
136
|
+
const scheduleReconnect = (closeCode, closeReason) => {
|
|
137
|
+
if (!shouldReconnect(closeCode) || reconnectTimeout !== null) {
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
const delayMs = Math.min(options.reconnectMaxDelayMs ?? DEFAULT_RECONNECT_MAX_DELAY_MS, Math.round((options.reconnectDelayMs ?? DEFAULT_RECONNECT_DELAY_MS) *
|
|
141
|
+
Math.pow(RECONNECT_BACKOFF_FACTOR, reconnectAttempt)));
|
|
142
|
+
reconnectAttempt += 1;
|
|
143
|
+
if (options.logging) {
|
|
144
|
+
console.warn("[WavezFM Room Bot WS] reconnect scheduled", {
|
|
145
|
+
closeCode,
|
|
146
|
+
closeReason,
|
|
147
|
+
delayMs,
|
|
148
|
+
reconnectAttempt,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
reconnectTimeout = setTimeout(() => {
|
|
152
|
+
reconnectTimeout = null;
|
|
153
|
+
void connect().catch((error) => {
|
|
154
|
+
if (options.logging) {
|
|
155
|
+
console.error("[WavezFM Room Bot WS] reconnect failed", error);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}, delayMs);
|
|
159
|
+
};
|
|
160
|
+
const disconnect = (code, reason) => {
|
|
161
|
+
manualDisconnect = true;
|
|
162
|
+
clearReconnectTimeout();
|
|
163
|
+
const activeSocket = socket;
|
|
164
|
+
cleanupSocket(activeSocket);
|
|
165
|
+
activeSocket?.close(code, reason);
|
|
166
|
+
};
|
|
87
167
|
const handleMessage = (event) => {
|
|
88
168
|
const rawData = event &&
|
|
89
169
|
typeof event === "object" &&
|
|
@@ -114,58 +194,96 @@ export function createRoomBotRealtimeClient(options) {
|
|
|
114
194
|
sendPacket("join_room", { roomId: options.roomId }, "join_room");
|
|
115
195
|
}
|
|
116
196
|
};
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
197
|
+
const connect = async () => {
|
|
198
|
+
if (socket && socket.readyState === 1) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
if (connectPromise) {
|
|
202
|
+
return connectPromise;
|
|
203
|
+
}
|
|
204
|
+
manualDisconnect = false;
|
|
205
|
+
clearReconnectTimeout();
|
|
206
|
+
if (socket) {
|
|
207
|
+
const activeSocket = socket;
|
|
208
|
+
cleanupSocket(activeSocket);
|
|
209
|
+
activeSocket.close();
|
|
210
|
+
}
|
|
211
|
+
const nextSocket = socketFactory(wsUrl.toString(), options.protocols);
|
|
212
|
+
socket = nextSocket;
|
|
213
|
+
connectPromise = new Promise((resolve, reject) => {
|
|
214
|
+
if (!nextSocket) {
|
|
215
|
+
reject(new Error(formatMessage("roomBotWebsocketCreateFailed")));
|
|
120
216
|
return;
|
|
121
217
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
socket = socketFactory(wsUrl.toString(), options.protocols);
|
|
126
|
-
await new Promise((resolve, reject) => {
|
|
127
|
-
if (!socket) {
|
|
128
|
-
reject(new Error(formatMessage("roomBotWebsocketCreateFailed")));
|
|
218
|
+
let settled = false;
|
|
219
|
+
const finishResolve = () => {
|
|
220
|
+
if (settled) {
|
|
129
221
|
return;
|
|
130
222
|
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
149
|
-
|
|
223
|
+
settled = true;
|
|
224
|
+
reconnectAttempt = 0;
|
|
225
|
+
resolve();
|
|
226
|
+
};
|
|
227
|
+
const finishReject = (error) => {
|
|
228
|
+
if (settled) {
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
settled = true;
|
|
232
|
+
reject(error);
|
|
233
|
+
};
|
|
234
|
+
const openHandler = (event) => {
|
|
235
|
+
emit("open", {
|
|
236
|
+
type: "ack",
|
|
237
|
+
event: "open",
|
|
238
|
+
version: "v1",
|
|
239
|
+
timestamp: createTimestamp(),
|
|
240
|
+
payload: { event },
|
|
241
|
+
});
|
|
242
|
+
finishResolve();
|
|
243
|
+
};
|
|
244
|
+
const errorHandler = (event) => {
|
|
245
|
+
emit("socket_error", {
|
|
246
|
+
type: "error",
|
|
247
|
+
event: "socket_error",
|
|
248
|
+
version: "v1",
|
|
249
|
+
timestamp: createTimestamp(),
|
|
250
|
+
payload: { event },
|
|
251
|
+
});
|
|
252
|
+
if (!settled) {
|
|
253
|
+
finishReject(event instanceof Error
|
|
150
254
|
? event
|
|
151
255
|
: new Error(formatMessage("roomBotWebsocketConnectFailed")));
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
const closeHandler = (event) => {
|
|
259
|
+
const closeCode = getCloseCode(event);
|
|
260
|
+
const closeReason = getCloseReason(event);
|
|
261
|
+
emit("close", {
|
|
262
|
+
type: "event",
|
|
263
|
+
event: "close",
|
|
264
|
+
version: "v1",
|
|
265
|
+
timestamp: createTimestamp(),
|
|
266
|
+
payload: { event },
|
|
267
|
+
});
|
|
268
|
+
cleanupSocket(nextSocket);
|
|
269
|
+
scheduleReconnect(closeCode, closeReason);
|
|
270
|
+
if (!settled) {
|
|
271
|
+
finishReject(new Error(formatMessage("roomBotWebsocketConnectFailed")));
|
|
272
|
+
}
|
|
273
|
+
};
|
|
274
|
+
detachListeners = [
|
|
275
|
+
addSocketListener(nextSocket, "open", openHandler, formatMessage),
|
|
276
|
+
addSocketListener(nextSocket, "message", handleMessage, formatMessage),
|
|
277
|
+
addSocketListener(nextSocket, "close", closeHandler, formatMessage),
|
|
278
|
+
addSocketListener(nextSocket, "error", errorHandler, formatMessage),
|
|
279
|
+
];
|
|
280
|
+
}).finally(() => {
|
|
281
|
+
connectPromise = null;
|
|
282
|
+
});
|
|
283
|
+
return connectPromise;
|
|
284
|
+
};
|
|
285
|
+
return {
|
|
286
|
+
connect,
|
|
169
287
|
disconnect,
|
|
170
288
|
send(event, payload, requestId = createRequestId()) {
|
|
171
289
|
sendPacket(event, (payload ?? {}), requestId);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomBot.js","sourceRoot":"","sources":["../../src/realtime/roomBot.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roomBot.js","sourceRoot":"","sources":["../../src/realtime/roomBot.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ApiLike, ApiSuccessResponse, RoomQueueSnapshot, RoomBotSendMessageInput, RoomBotState } from "../types.js";
|
|
1
|
+
import type { ApiLike, ApiSuccessResponse, RoomBotEventsResponse, RoomBotQueueAddResponse, RoomQueueSnapshot, RoomBotSendMessageInput, RoomPresenceEventFilterType, RoomBotState } from "../types.js";
|
|
2
2
|
export declare function createRoomBotResource(api: ApiLike): {
|
|
3
3
|
getState(roomId: string): Promise<ApiSuccessResponse<RoomBotState>>;
|
|
4
4
|
getQueueStatus(roomId: string, options?: {
|
|
@@ -10,7 +10,13 @@ export declare function createRoomBotResource(api: ApiLike): {
|
|
|
10
10
|
history: boolean;
|
|
11
11
|
messages: unknown[];
|
|
12
12
|
}>>;
|
|
13
|
+
getEvents(roomId: string, options?: {
|
|
14
|
+
limit?: number;
|
|
15
|
+
since?: string | null;
|
|
16
|
+
types?: RoomPresenceEventFilterType[];
|
|
17
|
+
}): Promise<ApiSuccessResponse<RoomBotEventsResponse>>;
|
|
13
18
|
sendMessage(roomId: string, input: RoomBotSendMessageInput): Promise<ApiSuccessResponse<Record<string, unknown>>>;
|
|
19
|
+
addToQueue(roomId: string, userId: string): Promise<ApiSuccessResponse<RoomBotQueueAddResponse>>;
|
|
14
20
|
deleteMessage(roomId: string, messageId: string, message?: Record<string, unknown>): Promise<ApiSuccessResponse<{
|
|
15
21
|
success: true;
|
|
16
22
|
}>>;
|
|
@@ -23,9 +23,28 @@ export function createRoomBotResource(api) {
|
|
|
23
23
|
},
|
|
24
24
|
});
|
|
25
25
|
},
|
|
26
|
+
getEvents(roomId, options) {
|
|
27
|
+
const query = {};
|
|
28
|
+
if (typeof options?.limit === "number" && Number.isFinite(options.limit)) {
|
|
29
|
+
query.limit = Math.max(1, Math.floor(options.limit));
|
|
30
|
+
}
|
|
31
|
+
if (typeof options?.since === "string" && options.since.trim().length > 0) {
|
|
32
|
+
query.since = options.since.trim();
|
|
33
|
+
}
|
|
34
|
+
if (Array.isArray(options?.types) && options.types.length > 0) {
|
|
35
|
+
query.types = Array.from(new Set(options.types)).join(",");
|
|
36
|
+
}
|
|
37
|
+
return api.get(`/bot/rooms/${encodeURIComponent(roomId)}/events`, {
|
|
38
|
+
authMode: "room-bot",
|
|
39
|
+
query: Object.keys(query).length > 0 ? query : undefined,
|
|
40
|
+
});
|
|
41
|
+
},
|
|
26
42
|
sendMessage(roomId, input) {
|
|
27
43
|
return api.post(`/bot/rooms/${encodeURIComponent(roomId)}/messages`, input, { authMode: "room-bot" });
|
|
28
44
|
},
|
|
45
|
+
addToQueue(roomId, userId) {
|
|
46
|
+
return api.post(`/bot/rooms/${encodeURIComponent(roomId)}/queue`, { userId }, { authMode: "room-bot" });
|
|
47
|
+
},
|
|
29
48
|
deleteMessage(roomId, messageId, message) {
|
|
30
49
|
return api.delete(`/bot/rooms/${encodeURIComponent(roomId)}/messages/${encodeURIComponent(messageId)}`, {
|
|
31
50
|
authMode: "room-bot",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomBot.js","sourceRoot":"","sources":["../../src/resources/roomBot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"roomBot.js","sourceRoot":"","sources":["../../src/resources/roomBot.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export type ApiQuery = Record<string, ApiQueryValue>;
|
|
|
4
4
|
export type AuthMode = "session" | "auth-token" | "room-bot" | "none";
|
|
5
5
|
export type ApiParseMode = "json" | "text" | "void";
|
|
6
6
|
export type FetchImplementation = typeof fetch;
|
|
7
|
-
export type WavezApiLocale = "en" | "pt-BR";
|
|
7
|
+
export type WavezApiLocale = "en-US" | "pt-BR";
|
|
8
8
|
export type WavezApiMessageKey = "fetchUnavailable" | "baseUrlRequired" | "requestTimedOut" | "roomPermissionManageRoom" | "roomNotFound" | "roomBotInvalid" | "roomBotScopeMismatch" | "roomBotOwnerMissing" | "roomBotOwnerBanned" | "roomBotPermissionDenied" | "roomBotForbidden" | "roomBotTokenRequired" | "roomBotMuted" | "roomBotWebsocketFactoryRequired" | "roomBotWebsocketListenerUnsupported" | "roomBotWebsocketNotConnected" | "roomBotWebsocketCreateFailed" | "roomBotWebsocketConnectFailed" | "roomBotCreateNameLengthInvalid" | "roomBotCreateAvatarUrlInvalid" | "roomBotCreateAvatarUrlDirectImageRequired" | "roomBotCreatePermissionsArrayRequired" | "roomBotCreatePermissionInvalid" | "roomBotCreatePermissionRequired" | "roomBotCreatePrefixLengthInvalid" | "roomBotCreatePrefixWhitespaceInvalid" | "roomBotCreateExpiryNumberInvalid" | "roomBotCreateExpiryRangeInvalid";
|
|
9
9
|
export type WavezApiMessageValues = Record<string, string | number | boolean | null | undefined>;
|
|
10
10
|
export type WavezApiMessages = Partial<Record<WavezApiMessageKey, string>>;
|
|
@@ -171,7 +171,6 @@ export interface RoomQueuePlayback {
|
|
|
171
171
|
artist?: string | null;
|
|
172
172
|
currentDjId?: string | null;
|
|
173
173
|
currentDjUsername?: string | null;
|
|
174
|
-
paused: boolean;
|
|
175
174
|
durationSeconds: number | null;
|
|
176
175
|
remainingSeconds: number | null;
|
|
177
176
|
[key: string]: unknown;
|
|
@@ -324,6 +323,11 @@ export interface RoomBotState {
|
|
|
324
323
|
roomId: string;
|
|
325
324
|
actorUserId: string;
|
|
326
325
|
roomRole?: string;
|
|
326
|
+
actorPlatformRole?: string | null;
|
|
327
|
+
actorPlatformRoles?: string[];
|
|
328
|
+
actorCustomGlobalRoles?: Array<Record<string, unknown>>;
|
|
329
|
+
actorGlobalPermissions?: Record<string, unknown>;
|
|
330
|
+
actorIsPlatformSuperuser?: boolean;
|
|
327
331
|
name: string;
|
|
328
332
|
avatarUrl?: string | null;
|
|
329
333
|
commandPrefix: string;
|
|
@@ -335,6 +339,26 @@ export interface RoomBotState {
|
|
|
335
339
|
snapshot: Record<string, unknown>;
|
|
336
340
|
customEmojis: unknown[];
|
|
337
341
|
}
|
|
342
|
+
export type RoomPresenceEventType = "user_joined" | "left" | "waitlist_join";
|
|
343
|
+
export type RoomPresenceEventFilterType = RoomPresenceEventType | "user_left" | "queue_joined";
|
|
344
|
+
export interface RoomPresenceEvent {
|
|
345
|
+
id: string;
|
|
346
|
+
roomId: string;
|
|
347
|
+
event: RoomPresenceEventType;
|
|
348
|
+
occurredAt: string;
|
|
349
|
+
payload: Record<string, unknown>;
|
|
350
|
+
}
|
|
351
|
+
export interface RoomBotEventsResponse {
|
|
352
|
+
bot: RoomBotState["bot"];
|
|
353
|
+
events: RoomPresenceEvent[];
|
|
354
|
+
}
|
|
355
|
+
export interface RoomBotQueueAddResponse {
|
|
356
|
+
bot: RoomBotState["bot"];
|
|
357
|
+
queue: string[];
|
|
358
|
+
alreadyQueued: boolean;
|
|
359
|
+
targetUserId: string;
|
|
360
|
+
publicPosition: number | null;
|
|
361
|
+
}
|
|
338
362
|
export interface RoomBotMessageReplyInput {
|
|
339
363
|
id: string;
|
|
340
364
|
}
|
|
@@ -420,6 +444,9 @@ export interface RoomBotRealtimeOptions {
|
|
|
420
444
|
botToken: string;
|
|
421
445
|
roomId: string;
|
|
422
446
|
autoJoinRoom?: boolean;
|
|
447
|
+
autoReconnect?: boolean;
|
|
448
|
+
reconnectDelayMs?: number;
|
|
449
|
+
reconnectMaxDelayMs?: number;
|
|
423
450
|
logging?: boolean;
|
|
424
451
|
protocols?: string | string[];
|
|
425
452
|
locale?: WavezApiLocale;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function formatMentionText(value: string): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
function escapeMentionName(value) {
|
|
2
|
+
return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"');
|
|
3
|
+
}
|
|
4
|
+
export function formatMentionText(value) {
|
|
5
|
+
const mentionName = value.trim().replace(/\s+/g, " ");
|
|
6
|
+
if (!mentionName) {
|
|
7
|
+
return "@";
|
|
8
|
+
}
|
|
9
|
+
if (/[\s"\\]/.test(mentionName)) {
|
|
10
|
+
return `@"${escapeMentionName(mentionName)}"`;
|
|
11
|
+
}
|
|
12
|
+
return `@${mentionName}`;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=chat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/utils/chat.ts"],"names":[],"mappings":"AAAA,SAAS,iBAAiB,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEtD,IAAI,CAAC,WAAW,EAAE,CAAC;QACf,OAAO,GAAG,CAAC;IACf,CAAC;IAED,IAAI,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,OAAO,KAAK,iBAAiB,CAAC,WAAW,CAAC,GAAG,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,WAAW,EAAE,CAAC;AAC7B,CAAC"}
|
package/dist/utils/roomQueue.js
CHANGED
|
@@ -107,7 +107,6 @@ function normalizePlayback(source) {
|
|
|
107
107
|
: typeof source.djUsername === "string"
|
|
108
108
|
? source.djUsername
|
|
109
109
|
: null,
|
|
110
|
-
paused: readBoolean(source.paused),
|
|
111
110
|
durationSeconds,
|
|
112
111
|
remainingSeconds,
|
|
113
112
|
};
|
|
@@ -124,13 +123,9 @@ function deriveRemainingPlaybackSeconds(playback) {
|
|
|
124
123
|
if (durationMs === null || durationMs <= 0) {
|
|
125
124
|
return null;
|
|
126
125
|
}
|
|
127
|
-
const paused = readBoolean(playback.paused);
|
|
128
|
-
const pauseOffsetMs = Math.max(0, readNumber(playback.pauseOffsetMs) ?? 0);
|
|
129
126
|
const serverTimeMs = readNumber(playback.serverTimeMs) ?? Date.now();
|
|
130
127
|
const startedAtServerMs = readNumber(playback.startedAtServerMs) ?? serverTimeMs;
|
|
131
|
-
const elapsedMs =
|
|
132
|
-
? pauseOffsetMs
|
|
133
|
-
: Math.max(0, serverTimeMs - startedAtServerMs);
|
|
128
|
+
const elapsedMs = Math.max(0, serverTimeMs - startedAtServerMs);
|
|
134
129
|
return Math.max(0, Math.floor((durationMs - elapsedMs) / 1000));
|
|
135
130
|
}
|
|
136
131
|
function deriveViewerFromEntries(entries, currentDj, sourceViewer, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roomQueue.js","sourceRoot":"","sources":["../../src/utils/roomQueue.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roomQueue.js","sourceRoot":"","sources":["../../src/utils/roomQueue.ts"],"names":[],"mappings":"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"}
|