@tixyel/streamelements 7.6.5 → 7.6.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 +4 -4
- package/dist/index.d.ts +291 -266
- package/dist/index.es.js +319 -288
- package/dist/index.es.js.map +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/index.umd.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -19,11 +19,11 @@ Add the following to your HTML:
|
|
|
19
19
|
<script>
|
|
20
20
|
const { Client, Simulation, logger } = window.Tixyel;
|
|
21
21
|
|
|
22
|
-
const client = new Client({ id:
|
|
22
|
+
const client = new Client({ id: "my-widget" });
|
|
23
23
|
|
|
24
|
-
client.on(
|
|
25
|
-
client.on(
|
|
26
|
-
client.on(
|
|
24
|
+
client.on("load", (event) => {});
|
|
25
|
+
client.on("event", (provider, event) => {});
|
|
26
|
+
client.on("session", (session) => {});
|
|
27
27
|
</script>
|
|
28
28
|
```
|
|
29
29
|
|
package/dist/index.d.ts
CHANGED
|
@@ -7,240 +7,6 @@
|
|
|
7
7
|
import { ComfyJSInstance, OnErrorHandler, OnCommandHandler, OnChatHandler, OnWhisperHandler, OnMessageDeletedHandler, OnJoinHandler, OnPartHandler, OnHostedHandler, OnRaidHandler, OnSubHandler, OnResubHandler, OnSubGiftHandler, OnSubMysteryGiftHandler, OnGiftSubContinueHandler, OnCheerHandler, OnChatModeHandler, OnRewardHandler, OnConnectedHandler, OnReconnectHandler } from 'comfy.js';
|
|
8
8
|
export { ComfyJSInstance } from 'comfy.js';
|
|
9
9
|
|
|
10
|
-
type Provider$1 = 'twitch' | 'youtube' | 'kick' | 'facebook' | 'streamelements';
|
|
11
|
-
type ClientProviderEvents = {
|
|
12
|
-
streamelements: StreamElements.Event.Provider.StreamElements.Events;
|
|
13
|
-
twitch: StreamElements.Event.Provider.Twitch.Events;
|
|
14
|
-
youtube: StreamElements.Event.Provider.YouTube.Events;
|
|
15
|
-
kick: StreamElements.Event.Provider.Kick.Events;
|
|
16
|
-
facebook: StreamElements.Event.Provider.Facebook.Events;
|
|
17
|
-
};
|
|
18
|
-
type ClientCustomEventPayload<TProvider extends string = string> = {
|
|
19
|
-
provider: TProvider;
|
|
20
|
-
};
|
|
21
|
-
type ClientCustomProviderEvents = Record<string, ClientCustomEventPayload>;
|
|
22
|
-
type ClientCustomEventsWithoutInternalProviders<CustomEvents> = Omit<CustomEvents, keyof ClientProviderEvents>;
|
|
23
|
-
type ValidateCustomProviderEvents<CustomEvents> = CustomEvents extends Record<string, unknown> ? {
|
|
24
|
-
[K in keyof ClientCustomEventsWithoutInternalProviders<CustomEvents> & string]: ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] extends ClientCustomEventPayload<K> ? ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] : never;
|
|
25
|
-
} : {};
|
|
26
|
-
type ClientAllProviderEvents<CustomEvents = {}> = ClientProviderEvents & ValidateCustomProviderEvents<CustomEvents>;
|
|
27
|
-
type ClientEvents<CustomEvents = {}> = {
|
|
28
|
-
[K in keyof ClientAllProviderEvents<CustomEvents> & string]: {
|
|
29
|
-
provider: K;
|
|
30
|
-
data: ClientAllProviderEvents<CustomEvents>[K];
|
|
31
|
-
};
|
|
32
|
-
}[keyof ClientAllProviderEvents<CustomEvents> & string];
|
|
33
|
-
type ClientEventTuple<CustomEvents = {}> = {
|
|
34
|
-
[K in keyof ClientAllProviderEvents<CustomEvents> & string]: [
|
|
35
|
-
provider: K,
|
|
36
|
-
event: ClientAllProviderEvents<CustomEvents>[K]
|
|
37
|
-
];
|
|
38
|
-
}[keyof ClientAllProviderEvents<CustomEvents> & string];
|
|
39
|
-
|
|
40
|
-
declare namespace StreamElementsEvents {
|
|
41
|
-
namespace Tip {
|
|
42
|
-
type Data = {
|
|
43
|
-
listener: 'tip-latest';
|
|
44
|
-
event: Event;
|
|
45
|
-
};
|
|
46
|
-
type Event = {
|
|
47
|
-
amount: number;
|
|
48
|
-
avatar: string;
|
|
49
|
-
name: string;
|
|
50
|
-
displayName: string;
|
|
51
|
-
providerId: string;
|
|
52
|
-
_id: string;
|
|
53
|
-
sessionTop: boolean;
|
|
54
|
-
type: 'tip';
|
|
55
|
-
originalEventName: 'tip-latest';
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
namespace KVStore {
|
|
59
|
-
type Data = {
|
|
60
|
-
listener: 'kvstore:update';
|
|
61
|
-
event: Event;
|
|
62
|
-
};
|
|
63
|
-
type Event = {
|
|
64
|
-
data: {
|
|
65
|
-
key: `customWidget.${string}`;
|
|
66
|
-
value: string | number | boolean | Record<string, any>;
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
namespace BotCounter {
|
|
71
|
-
type Data = {
|
|
72
|
-
listener: 'bot:counter';
|
|
73
|
-
event: Event;
|
|
74
|
-
};
|
|
75
|
-
type Event = {
|
|
76
|
-
counter: string;
|
|
77
|
-
value: number;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
namespace AlertService {
|
|
81
|
-
type Data = {
|
|
82
|
-
listener: 'alertService:toggleSound';
|
|
83
|
-
event: Event;
|
|
84
|
-
};
|
|
85
|
-
type Event = {
|
|
86
|
-
muted: boolean;
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
namespace EventSkip {
|
|
90
|
-
type Data = {
|
|
91
|
-
listener: 'event:skip';
|
|
92
|
-
event: Event;
|
|
93
|
-
};
|
|
94
|
-
type Event = {};
|
|
95
|
-
}
|
|
96
|
-
namespace EventTest {
|
|
97
|
-
export type Data = {
|
|
98
|
-
listener: 'event:test';
|
|
99
|
-
event: Event;
|
|
100
|
-
};
|
|
101
|
-
export type Event = widgetButton | emulatedEvents<EventType> | Session;
|
|
102
|
-
type items = {
|
|
103
|
-
name: string;
|
|
104
|
-
price: number;
|
|
105
|
-
quantity: number;
|
|
106
|
-
};
|
|
107
|
-
type widgetButton = {
|
|
108
|
-
listener: 'widget-button';
|
|
109
|
-
field: string;
|
|
110
|
-
value: string | number | boolean;
|
|
111
|
-
};
|
|
112
|
-
type EventType = 'follower' | 'subscriber' | 'tip' | 'cheer' | 'raid';
|
|
113
|
-
type EventTier = 'prime' | '1000' | '2000' | '3000';
|
|
114
|
-
type emulatedEvents<T extends EventType> = {
|
|
115
|
-
listener: `${T}-latest`;
|
|
116
|
-
event: {
|
|
117
|
-
type: T;
|
|
118
|
-
name: string;
|
|
119
|
-
amount: number;
|
|
120
|
-
count: number;
|
|
121
|
-
message?: string;
|
|
122
|
-
gifted?: boolean;
|
|
123
|
-
bulkGifted?: boolean;
|
|
124
|
-
sender?: string;
|
|
125
|
-
subExtension?: boolean;
|
|
126
|
-
items: items[];
|
|
127
|
-
tier: EventTier;
|
|
128
|
-
month: string;
|
|
129
|
-
isTest: true;
|
|
130
|
-
};
|
|
131
|
-
};
|
|
132
|
-
type Session = SessionCount | SessionTotal | SessionTop | SessionGoal | SessionRecent | SessionPoints;
|
|
133
|
-
type SessionCount = {
|
|
134
|
-
listener: `${EventType}-count`;
|
|
135
|
-
event: {
|
|
136
|
-
type: EventType;
|
|
137
|
-
name: string;
|
|
138
|
-
count: number;
|
|
139
|
-
items: items[];
|
|
140
|
-
tier: EventTier;
|
|
141
|
-
month: string;
|
|
142
|
-
isTest: true;
|
|
143
|
-
};
|
|
144
|
-
};
|
|
145
|
-
type SessionTotal = {
|
|
146
|
-
listener: `${EventType}-total`;
|
|
147
|
-
event: {
|
|
148
|
-
type: EventType;
|
|
149
|
-
name: string;
|
|
150
|
-
amount: number;
|
|
151
|
-
count: number;
|
|
152
|
-
items: items[];
|
|
153
|
-
tier: EventTier;
|
|
154
|
-
month: string;
|
|
155
|
-
isTest: true;
|
|
156
|
-
};
|
|
157
|
-
};
|
|
158
|
-
type SessionTop = {
|
|
159
|
-
listener: `${EventType}-top`;
|
|
160
|
-
event: {
|
|
161
|
-
type: EventType;
|
|
162
|
-
name: string;
|
|
163
|
-
amount: number;
|
|
164
|
-
count: number;
|
|
165
|
-
items: items[];
|
|
166
|
-
tier: EventTier;
|
|
167
|
-
month: string;
|
|
168
|
-
isTest: true;
|
|
169
|
-
};
|
|
170
|
-
};
|
|
171
|
-
type SessionGoal = {
|
|
172
|
-
listener: `${EventType}-goal`;
|
|
173
|
-
event: {
|
|
174
|
-
type: EventType;
|
|
175
|
-
name: string;
|
|
176
|
-
amount: number;
|
|
177
|
-
count: number;
|
|
178
|
-
items: items[];
|
|
179
|
-
tier: EventTier;
|
|
180
|
-
month: string;
|
|
181
|
-
isTest: true;
|
|
182
|
-
};
|
|
183
|
-
};
|
|
184
|
-
type SessionRecent = {
|
|
185
|
-
listener: `${EventType}-recent`;
|
|
186
|
-
event: {
|
|
187
|
-
event: SessionRecentEvent[];
|
|
188
|
-
};
|
|
189
|
-
};
|
|
190
|
-
type SessionRecentEvent = {
|
|
191
|
-
type: EventType;
|
|
192
|
-
name: string;
|
|
193
|
-
amount: number;
|
|
194
|
-
count: number;
|
|
195
|
-
tier: EventTier;
|
|
196
|
-
isTest: true;
|
|
197
|
-
};
|
|
198
|
-
type SessionPoints = {
|
|
199
|
-
listener: `${EventType}-points`;
|
|
200
|
-
event: {
|
|
201
|
-
type: EventType;
|
|
202
|
-
name: string;
|
|
203
|
-
amount: number;
|
|
204
|
-
count: number;
|
|
205
|
-
items: items[];
|
|
206
|
-
tier: EventTier;
|
|
207
|
-
month: string;
|
|
208
|
-
isTest: true;
|
|
209
|
-
};
|
|
210
|
-
};
|
|
211
|
-
export {};
|
|
212
|
-
}
|
|
213
|
-
interface BaseEvent {
|
|
214
|
-
provider: Provider$1;
|
|
215
|
-
flagged: boolean;
|
|
216
|
-
channel: string;
|
|
217
|
-
createdAt: string;
|
|
218
|
-
_id: string;
|
|
219
|
-
expiresAt: string;
|
|
220
|
-
updatedAt: string;
|
|
221
|
-
activityId: string;
|
|
222
|
-
sessionEventsCount: number;
|
|
223
|
-
isMock?: boolean;
|
|
224
|
-
}
|
|
225
|
-
namespace Event {
|
|
226
|
-
type Data = {
|
|
227
|
-
listener: 'event';
|
|
228
|
-
event: Event;
|
|
229
|
-
};
|
|
230
|
-
type Event = Tip;
|
|
231
|
-
interface Tip extends BaseEvent {
|
|
232
|
-
type: 'tip';
|
|
233
|
-
data: {
|
|
234
|
-
amount: string;
|
|
235
|
-
currency: string;
|
|
236
|
-
username: string;
|
|
237
|
-
message: string;
|
|
238
|
-
avatar: string;
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
|
|
244
10
|
type TwitchEmote = {
|
|
245
11
|
type: 'twitch';
|
|
246
12
|
name: string;
|
|
@@ -510,20 +276,20 @@ declare namespace TwitchEvents {
|
|
|
510
276
|
time: number;
|
|
511
277
|
tags: Partial<MapNumberValuesToString<Twitch.IRC>> & {
|
|
512
278
|
'badge-info': string;
|
|
513
|
-
|
|
279
|
+
badges: string;
|
|
514
280
|
'client-nonce': string;
|
|
515
|
-
|
|
281
|
+
color: string;
|
|
516
282
|
'display-name': string;
|
|
517
|
-
|
|
283
|
+
emotes: string;
|
|
518
284
|
'first-msg': '1' | '0';
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
285
|
+
flags: string;
|
|
286
|
+
id: string;
|
|
287
|
+
mod: '1' | '0';
|
|
522
288
|
'returning-chatter': '1' | '0';
|
|
523
289
|
'room-id': string;
|
|
524
|
-
|
|
290
|
+
subscriber: '1' | '0';
|
|
525
291
|
'tmi-sent-ts': string;
|
|
526
|
-
|
|
292
|
+
turbo: '1' | '0';
|
|
527
293
|
'user-id': string;
|
|
528
294
|
'user-type': '' | 'mod' | 'admin' | 'global_mod' | 'staff';
|
|
529
295
|
};
|
|
@@ -1693,6 +1459,252 @@ declare namespace StreamElements {
|
|
|
1693
1459
|
}
|
|
1694
1460
|
}
|
|
1695
1461
|
|
|
1462
|
+
type Provider$1 = 'twitch' | 'youtube' | 'kick' | 'facebook' | 'streamelements';
|
|
1463
|
+
type ClientProviderEvents = {
|
|
1464
|
+
streamelements: StreamElements.Event.Provider.StreamElements.Events;
|
|
1465
|
+
twitch: StreamElements.Event.Provider.Twitch.Events;
|
|
1466
|
+
youtube: StreamElements.Event.Provider.YouTube.Events;
|
|
1467
|
+
kick: StreamElements.Event.Provider.Kick.Events;
|
|
1468
|
+
facebook: StreamElements.Event.Provider.Facebook.Events;
|
|
1469
|
+
};
|
|
1470
|
+
type ClientCustomEventPayload<TProvider extends string = string> = {
|
|
1471
|
+
provider: TProvider;
|
|
1472
|
+
};
|
|
1473
|
+
type ClientCustomProviderEvents = Record<string, ClientCustomEventPayload>;
|
|
1474
|
+
type ClientCustomEventsWithoutInternalProviders<CustomEvents> = Omit<CustomEvents, keyof ClientProviderEvents>;
|
|
1475
|
+
type ValidateCustomProviderEvents<CustomEvents> = CustomEvents extends Record<string, unknown> ? {
|
|
1476
|
+
[K in keyof ClientCustomEventsWithoutInternalProviders<CustomEvents> & string]: ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] extends ClientCustomEventPayload<K> ? ClientCustomEventsWithoutInternalProviders<CustomEvents>[K] : never;
|
|
1477
|
+
} : {};
|
|
1478
|
+
type ClientAllProviderEvents<CustomEvents = {}> = ClientProviderEvents & ValidateCustomProviderEvents<CustomEvents>;
|
|
1479
|
+
type ClientEvents<CustomEvents = {}> = {
|
|
1480
|
+
[K in keyof ClientAllProviderEvents<CustomEvents> & string]: {
|
|
1481
|
+
provider: K;
|
|
1482
|
+
data: ClientAllProviderEvents<CustomEvents>[K];
|
|
1483
|
+
};
|
|
1484
|
+
}[keyof ClientAllProviderEvents<CustomEvents> & string];
|
|
1485
|
+
type ClientEventTuple<CustomEvents = {}> = {
|
|
1486
|
+
[K in keyof ClientAllProviderEvents<CustomEvents> & string]: [
|
|
1487
|
+
provider: K,
|
|
1488
|
+
event: ClientAllProviderEvents<CustomEvents>[K]
|
|
1489
|
+
];
|
|
1490
|
+
}[keyof ClientAllProviderEvents<CustomEvents> & string];
|
|
1491
|
+
|
|
1492
|
+
declare namespace StreamElementsEvents {
|
|
1493
|
+
namespace Tip {
|
|
1494
|
+
type Data = {
|
|
1495
|
+
listener: 'tip-latest';
|
|
1496
|
+
event: Event;
|
|
1497
|
+
};
|
|
1498
|
+
type Event = {
|
|
1499
|
+
amount: number;
|
|
1500
|
+
avatar: string;
|
|
1501
|
+
name: string;
|
|
1502
|
+
displayName: string;
|
|
1503
|
+
providerId: string;
|
|
1504
|
+
_id: string;
|
|
1505
|
+
sessionTop: boolean;
|
|
1506
|
+
type: 'tip';
|
|
1507
|
+
originalEventName: 'tip-latest';
|
|
1508
|
+
};
|
|
1509
|
+
}
|
|
1510
|
+
namespace KVStore {
|
|
1511
|
+
type Data = {
|
|
1512
|
+
listener: 'kvstore:update';
|
|
1513
|
+
event: Event;
|
|
1514
|
+
};
|
|
1515
|
+
type Event = {
|
|
1516
|
+
data: {
|
|
1517
|
+
key: `customWidget.${string}`;
|
|
1518
|
+
value: string | number | boolean | Record<string, any>;
|
|
1519
|
+
};
|
|
1520
|
+
};
|
|
1521
|
+
}
|
|
1522
|
+
namespace BotCounter {
|
|
1523
|
+
type Data = {
|
|
1524
|
+
listener: 'bot:counter';
|
|
1525
|
+
event: Event;
|
|
1526
|
+
};
|
|
1527
|
+
type Event = {
|
|
1528
|
+
counter: string;
|
|
1529
|
+
value: number;
|
|
1530
|
+
};
|
|
1531
|
+
}
|
|
1532
|
+
namespace AlertService {
|
|
1533
|
+
type Data = {
|
|
1534
|
+
listener: 'alertService:toggleSound';
|
|
1535
|
+
event: Event;
|
|
1536
|
+
};
|
|
1537
|
+
type Event = {
|
|
1538
|
+
muted: boolean;
|
|
1539
|
+
};
|
|
1540
|
+
}
|
|
1541
|
+
namespace EventSkip {
|
|
1542
|
+
type Data = {
|
|
1543
|
+
listener: 'event:skip';
|
|
1544
|
+
event: Event;
|
|
1545
|
+
};
|
|
1546
|
+
type Event = {};
|
|
1547
|
+
}
|
|
1548
|
+
namespace EventTest {
|
|
1549
|
+
export type Data = {
|
|
1550
|
+
listener: 'event:test';
|
|
1551
|
+
event: Event;
|
|
1552
|
+
};
|
|
1553
|
+
export type Event = widgetButton | emulatedEvents<EventType> | Session;
|
|
1554
|
+
type items = {
|
|
1555
|
+
name: string;
|
|
1556
|
+
price: number;
|
|
1557
|
+
quantity: number;
|
|
1558
|
+
};
|
|
1559
|
+
type widgetButton = {
|
|
1560
|
+
listener: 'widget-button';
|
|
1561
|
+
field: string;
|
|
1562
|
+
value: string | number | boolean;
|
|
1563
|
+
};
|
|
1564
|
+
type EventType = 'follower' | 'subscriber' | 'tip' | 'cheer' | 'raid';
|
|
1565
|
+
type EventTier = 'prime' | '1000' | '2000' | '3000';
|
|
1566
|
+
type emulatedEvents<T extends EventType> = {
|
|
1567
|
+
listener: `${T}-latest`;
|
|
1568
|
+
event: {
|
|
1569
|
+
type: T;
|
|
1570
|
+
name: string;
|
|
1571
|
+
amount: number;
|
|
1572
|
+
count: number;
|
|
1573
|
+
message?: string;
|
|
1574
|
+
gifted?: boolean;
|
|
1575
|
+
bulkGifted?: boolean;
|
|
1576
|
+
sender?: string;
|
|
1577
|
+
subExtension?: boolean;
|
|
1578
|
+
items: items[];
|
|
1579
|
+
tier: EventTier;
|
|
1580
|
+
month: string;
|
|
1581
|
+
isTest: true;
|
|
1582
|
+
};
|
|
1583
|
+
};
|
|
1584
|
+
type Session = SessionCount | SessionTotal | SessionTop | SessionGoal | SessionRecent | SessionPoints;
|
|
1585
|
+
type SessionCount = {
|
|
1586
|
+
listener: `${EventType}-count`;
|
|
1587
|
+
event: {
|
|
1588
|
+
type: EventType;
|
|
1589
|
+
name: string;
|
|
1590
|
+
count: number;
|
|
1591
|
+
items: items[];
|
|
1592
|
+
tier: EventTier;
|
|
1593
|
+
month: string;
|
|
1594
|
+
isTest: true;
|
|
1595
|
+
};
|
|
1596
|
+
};
|
|
1597
|
+
type SessionTotal = {
|
|
1598
|
+
listener: `${EventType}-total`;
|
|
1599
|
+
event: {
|
|
1600
|
+
type: EventType;
|
|
1601
|
+
name: string;
|
|
1602
|
+
amount: number;
|
|
1603
|
+
count: number;
|
|
1604
|
+
items: items[];
|
|
1605
|
+
tier: EventTier;
|
|
1606
|
+
month: string;
|
|
1607
|
+
isTest: true;
|
|
1608
|
+
};
|
|
1609
|
+
};
|
|
1610
|
+
type SessionTop = {
|
|
1611
|
+
listener: `${EventType}-top`;
|
|
1612
|
+
event: {
|
|
1613
|
+
type: EventType;
|
|
1614
|
+
name: string;
|
|
1615
|
+
amount: number;
|
|
1616
|
+
count: number;
|
|
1617
|
+
items: items[];
|
|
1618
|
+
tier: EventTier;
|
|
1619
|
+
month: string;
|
|
1620
|
+
isTest: true;
|
|
1621
|
+
};
|
|
1622
|
+
};
|
|
1623
|
+
type SessionGoal = {
|
|
1624
|
+
listener: `${EventType}-goal`;
|
|
1625
|
+
event: {
|
|
1626
|
+
type: EventType;
|
|
1627
|
+
name: string;
|
|
1628
|
+
amount: number;
|
|
1629
|
+
count: number;
|
|
1630
|
+
items: items[];
|
|
1631
|
+
tier: EventTier;
|
|
1632
|
+
month: string;
|
|
1633
|
+
isTest: true;
|
|
1634
|
+
};
|
|
1635
|
+
};
|
|
1636
|
+
type SessionRecent = {
|
|
1637
|
+
listener: `${EventType}-recent`;
|
|
1638
|
+
event: {
|
|
1639
|
+
event: SessionRecentEvent[];
|
|
1640
|
+
};
|
|
1641
|
+
};
|
|
1642
|
+
type SessionRecentEvent = {
|
|
1643
|
+
type: EventType;
|
|
1644
|
+
name: string;
|
|
1645
|
+
amount: number;
|
|
1646
|
+
count: number;
|
|
1647
|
+
tier: EventTier;
|
|
1648
|
+
isTest: true;
|
|
1649
|
+
};
|
|
1650
|
+
type SessionPoints = {
|
|
1651
|
+
listener: `${EventType}-points`;
|
|
1652
|
+
event: {
|
|
1653
|
+
type: EventType;
|
|
1654
|
+
name: string;
|
|
1655
|
+
amount: number;
|
|
1656
|
+
count: number;
|
|
1657
|
+
items: items[];
|
|
1658
|
+
tier: EventTier;
|
|
1659
|
+
month: string;
|
|
1660
|
+
isTest: true;
|
|
1661
|
+
};
|
|
1662
|
+
};
|
|
1663
|
+
export {};
|
|
1664
|
+
}
|
|
1665
|
+
interface BaseEvent {
|
|
1666
|
+
provider: Provider$1;
|
|
1667
|
+
flagged: boolean;
|
|
1668
|
+
channel: string;
|
|
1669
|
+
createdAt: string;
|
|
1670
|
+
_id: string;
|
|
1671
|
+
expiresAt: string;
|
|
1672
|
+
updatedAt: string;
|
|
1673
|
+
activityId: string;
|
|
1674
|
+
sessionEventsCount: number;
|
|
1675
|
+
isMock?: boolean;
|
|
1676
|
+
}
|
|
1677
|
+
namespace Event {
|
|
1678
|
+
type Data = {
|
|
1679
|
+
listener: 'event';
|
|
1680
|
+
event: Event;
|
|
1681
|
+
};
|
|
1682
|
+
type Event = Tip;
|
|
1683
|
+
interface Tip extends BaseEvent {
|
|
1684
|
+
type: 'tip';
|
|
1685
|
+
data: {
|
|
1686
|
+
amount: string;
|
|
1687
|
+
currency: string;
|
|
1688
|
+
username: string;
|
|
1689
|
+
message: string;
|
|
1690
|
+
avatar: string;
|
|
1691
|
+
};
|
|
1692
|
+
}
|
|
1693
|
+
}
|
|
1694
|
+
}
|
|
1695
|
+
|
|
1696
|
+
type JSONPrimitive = string | number | boolean | null;
|
|
1697
|
+
type JSONSerializable = JSONPrimitive | JSONSerializable[] | {
|
|
1698
|
+
[k: string]: JSONSerializable | undefined;
|
|
1699
|
+
};
|
|
1700
|
+
type JSONObject = {
|
|
1701
|
+
[key: string]: JSONSerializable | undefined;
|
|
1702
|
+
};
|
|
1703
|
+
|
|
1704
|
+
type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
|
|
1705
|
+
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
|
|
1706
|
+
}[Keys];
|
|
1707
|
+
|
|
1696
1708
|
interface CommandOptions {
|
|
1697
1709
|
prefix?: string;
|
|
1698
1710
|
name: string;
|
|
@@ -1788,19 +1800,13 @@ declare class EventProvider<EventMap extends Record<string, any[]> = Record<stri
|
|
|
1788
1800
|
removeAllListeners<K extends keyof EventMap>(eventName: K): this;
|
|
1789
1801
|
}
|
|
1790
1802
|
|
|
1791
|
-
type JSONPrimitive = string | number | boolean | null;
|
|
1792
|
-
type JSONSerializable = JSONPrimitive | JSONSerializable[] | {
|
|
1793
|
-
[k: string]: JSONSerializable | undefined;
|
|
1794
|
-
};
|
|
1795
|
-
type JSONObject = {
|
|
1796
|
-
[key: string]: JSONSerializable | undefined;
|
|
1797
|
-
};
|
|
1798
|
-
|
|
1799
1803
|
type UseStorageEvents<T> = {
|
|
1800
|
-
load: [T
|
|
1801
|
-
update: [T];
|
|
1804
|
+
load: [T];
|
|
1805
|
+
update: [T, from: string];
|
|
1806
|
+
save: [T];
|
|
1802
1807
|
};
|
|
1803
1808
|
type UseStorageOptions<T> = {
|
|
1809
|
+
/** The unique identifier for the storage instance. */
|
|
1804
1810
|
id?: string;
|
|
1805
1811
|
data: T;
|
|
1806
1812
|
};
|
|
@@ -1809,6 +1815,7 @@ declare class useStorage<T extends JSONObject> extends EventProvider<UseStorageE
|
|
|
1809
1815
|
/** The unique identifier for the storage instance. */
|
|
1810
1816
|
id: string;
|
|
1811
1817
|
loaded: boolean;
|
|
1818
|
+
private initial;
|
|
1812
1819
|
data: T;
|
|
1813
1820
|
constructor(options: UseStorageOptions<T>);
|
|
1814
1821
|
/**
|
|
@@ -1831,14 +1838,6 @@ declare class useStorage<T extends JSONObject> extends EventProvider<UseStorageE
|
|
|
1831
1838
|
* Clears all data from the storage.
|
|
1832
1839
|
*/
|
|
1833
1840
|
clear(): void;
|
|
1834
|
-
/**
|
|
1835
|
-
* Sets a value in the storage at the specified path.
|
|
1836
|
-
* @param obj The object to set the value in
|
|
1837
|
-
* @param path The path to set the value at
|
|
1838
|
-
* @param value The value to set
|
|
1839
|
-
* @returns The updated object
|
|
1840
|
-
*/
|
|
1841
|
-
static setByPath<P extends string, T extends object>(obj: T, path: P, value: PathValue<T, P>): void;
|
|
1842
1841
|
on<K extends keyof UseStorageEvents<T>>(eventName: K, callback: (this: useStorage<T>, ...args: UseStorageEvents<T>[K]) => void): this;
|
|
1843
1842
|
}
|
|
1844
1843
|
|
|
@@ -1928,10 +1927,6 @@ declare class Client<CustomEvents = {}> extends EventProvider<ClientMapEvents<Cu
|
|
|
1928
1927
|
on<K extends keyof ClientMapEvents<CustomEvents>>(eventName: K, callback: (this: Client<CustomEvents>, ...args: ClientMapEvents<CustomEvents>[K]) => void): this;
|
|
1929
1928
|
}
|
|
1930
1929
|
|
|
1931
|
-
type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
|
|
1932
|
-
[K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
|
|
1933
|
-
}[Keys];
|
|
1934
|
-
|
|
1935
1930
|
interface ButtonOptions {
|
|
1936
1931
|
field: string | ((field: string, value: string | boolean | number) => boolean);
|
|
1937
1932
|
template?: string;
|
|
@@ -2508,6 +2503,36 @@ declare class ObjectHelper {
|
|
|
2508
2503
|
* @returns An array of keys from the object, typed as an array of strings.
|
|
2509
2504
|
*/
|
|
2510
2505
|
keys<K extends string, V>(obj: Record<K, V>): K[];
|
|
2506
|
+
/**
|
|
2507
|
+
* Updates a value in a nested object at the specified path, with an option to create missing intermediate objects.
|
|
2508
|
+
* @param obj - The target object to update.
|
|
2509
|
+
* @param path - The path to the property being updated.
|
|
2510
|
+
* @param value - The value to set at the specified path.
|
|
2511
|
+
* @param createMissing - Whether to create missing intermediate objects along the path if they don't exist.
|
|
2512
|
+
* @returns The updated object with the new value set at the specified path.
|
|
2513
|
+
* @example
|
|
2514
|
+
* ```javascript
|
|
2515
|
+
* const obj1 = { a: { b: 1 }, c: 2 };
|
|
2516
|
+
* updateViaPath(obj1, 'a.d', 9999, false);
|
|
2517
|
+
* console.log(obj1);
|
|
2518
|
+
* // Output: { a: { b: 1, d: 9999 }, c: 2 }
|
|
2519
|
+
*
|
|
2520
|
+
* const obj2 = { a: { b: 1 }, c: 2 };
|
|
2521
|
+
* updateViaPath(obj2, 'a.e.f', 8888, true);
|
|
2522
|
+
* console.log(obj2);
|
|
2523
|
+
* // Output: { a: { b: 1, e: { f: 8888 } }, c: 2 }
|
|
2524
|
+
* ```
|
|
2525
|
+
* @returns The updated object with the new value set at the specified path.
|
|
2526
|
+
*/
|
|
2527
|
+
updateViaPath<P extends string, T extends object>(obj: T, path: P, value: PathValue<T, P>, createMissing?: boolean): T;
|
|
2528
|
+
/**
|
|
2529
|
+
* Compares two values for differences, with an option to use JSON stringification for comparison.
|
|
2530
|
+
* @param a - The first value to compare.
|
|
2531
|
+
* @param b - The second value to compare.
|
|
2532
|
+
* @param method - The method to use for comparison, either 'json' for JSON stringification or 'default' for a recursive comparison.
|
|
2533
|
+
* @returns A boolean indicating whether the two values are different based on the specified comparison method.
|
|
2534
|
+
*/
|
|
2535
|
+
isDiff(a: any, b: any, method?: 'json' | 'default'): boolean;
|
|
2511
2536
|
}
|
|
2512
2537
|
|
|
2513
2538
|
type BadgeOptions = Twitch.tags[] | Twitch.tags | `${Twitch.tags}/${string}` | `${Twitch.tags}/${string}`[];
|
|
@@ -3036,7 +3061,7 @@ declare class UtilsHelper {
|
|
|
3036
3061
|
userId: string;
|
|
3037
3062
|
name: string;
|
|
3038
3063
|
broadcasterId?: string;
|
|
3039
|
-
}, session: StreamElements.Session.Data, checkWithAPI?: boolean): Promise<
|
|
3064
|
+
}, session: StreamElements.Session.Data, checkWithAPI?: boolean): Promise<1 | 2 | 3>;
|
|
3040
3065
|
/**
|
|
3041
3066
|
* Identifies a user based on the received event and session data, returning their ID, name, role, badges, and top status.
|
|
3042
3067
|
* @param receivedEvent - The event received from the provider (Twitch or YouTube) containing user information.
|
|
@@ -3577,7 +3602,7 @@ interface FakeUserPoolOptions {
|
|
|
3577
3602
|
};
|
|
3578
3603
|
}
|
|
3579
3604
|
type FakeUserPoolEvents = {
|
|
3580
|
-
|
|
3605
|
+
warn: [warning: Error];
|
|
3581
3606
|
};
|
|
3582
3607
|
declare class FakeUserPool extends EventProvider<FakeUserPoolEvents> {
|
|
3583
3608
|
readonly users: FakeUser[];
|