@yuniruyuni/n8n-nodes-twitch 0.1.7 → 0.1.9
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/dist/credentials/TwitchOAuth2Api.credentials.d.ts +1 -11
- package/dist/credentials/TwitchOAuth2Api.credentials.js +4 -395
- package/dist/credentials/TwitchOAuth2Api.credentials.js.map +1 -1
- package/dist/nodes/Twitch/Twitch.node.js +0 -2
- package/dist/nodes/Twitch/Twitch.node.js.map +1 -1
- package/dist/nodes/Twitch/resources/Announcement.js +43 -51
- package/dist/nodes/Twitch/resources/Announcement.js.map +1 -1
- package/dist/nodes/Twitch/resources/Ban.js +36 -47
- package/dist/nodes/Twitch/resources/Ban.js.map +1 -1
- package/dist/nodes/Twitch/resources/BitsLeaderboard.js +54 -68
- package/dist/nodes/Twitch/resources/BitsLeaderboard.js.map +1 -1
- package/dist/nodes/Twitch/resources/Channel.js +15 -1
- package/dist/nodes/Twitch/resources/Channel.js.map +1 -1
- package/dist/nodes/Twitch/resources/ChatMessage.js +26 -34
- package/dist/nodes/Twitch/resources/ChatMessage.js.map +1 -1
- package/dist/nodes/Twitch/resources/Chatter.js +1 -1
- package/dist/nodes/Twitch/resources/Chatter.js.map +1 -1
- package/dist/nodes/Twitch/resources/Cheermote.js +1 -1
- package/dist/nodes/Twitch/resources/Cheermote.js.map +1 -1
- package/dist/nodes/Twitch/resources/Clip.js +91 -104
- package/dist/nodes/Twitch/resources/Clip.js.map +1 -1
- package/dist/nodes/Twitch/resources/CustomReward.js +316 -289
- package/dist/nodes/Twitch/resources/CustomReward.js.map +1 -1
- package/dist/nodes/Twitch/resources/Emote.js +1 -1
- package/dist/nodes/Twitch/resources/Emote.js.map +1 -1
- package/dist/nodes/Twitch/resources/Game.js +68 -74
- package/dist/nodes/Twitch/resources/Game.js.map +1 -1
- package/dist/nodes/Twitch/resources/Moderator.js +75 -15
- package/dist/nodes/Twitch/resources/Moderator.js.map +1 -1
- package/dist/nodes/Twitch/resources/Poll.js +174 -167
- package/dist/nodes/Twitch/resources/Poll.js.map +1 -1
- package/dist/nodes/Twitch/resources/Prediction.js +143 -139
- package/dist/nodes/Twitch/resources/Prediction.js.map +1 -1
- package/dist/nodes/Twitch/resources/Raid.js +48 -56
- package/dist/nodes/Twitch/resources/Raid.js.map +1 -1
- package/dist/nodes/Twitch/resources/Redemption.js +136 -114
- package/dist/nodes/Twitch/resources/Redemption.js.map +1 -1
- package/dist/nodes/Twitch/resources/Schedule.js +226 -186
- package/dist/nodes/Twitch/resources/Schedule.js.map +1 -1
- package/dist/nodes/Twitch/resources/Search.js +24 -23
- package/dist/nodes/Twitch/resources/Search.js.map +1 -1
- package/dist/nodes/Twitch/resources/Stream.js +13 -15
- package/dist/nodes/Twitch/resources/Stream.js.map +1 -1
- package/dist/nodes/Twitch/resources/Subscription.js +61 -29
- package/dist/nodes/Twitch/resources/Subscription.js.map +1 -1
- package/dist/nodes/Twitch/resources/Team.js +63 -57
- package/dist/nodes/Twitch/resources/Team.js.map +1 -1
- package/dist/nodes/Twitch/resources/User.js +13 -15
- package/dist/nodes/Twitch/resources/User.js.map +1 -1
- package/dist/nodes/Twitch/resources/Video.js +129 -125
- package/dist/nodes/Twitch/resources/Video.js.map +1 -1
- package/dist/nodes/Twitch/resources/Whisper.js +32 -28
- package/dist/nodes/Twitch/resources/Whisper.js.map +1 -1
- package/dist/nodes/Twitch/shared/updateDisplayOptions.d.ts +2 -0
- package/dist/nodes/Twitch/shared/updateDisplayOptions.js +12 -0
- package/dist/nodes/Twitch/shared/updateDisplayOptions.js.map +1 -0
- package/dist/package.json +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/nodes/Twitch/resources/CommonFields.d.ts +0 -2
- package/dist/nodes/Twitch/resources/CommonFields.js +0 -241
- package/dist/nodes/Twitch/resources/CommonFields.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { IAuthenticateGeneric, Icon,
|
|
1
|
+
import type { IAuthenticateGeneric, Icon, ICredentialType, INodeProperties } from 'n8n-workflow';
|
|
2
2
|
export declare class TwitchOAuth2Api implements ICredentialType {
|
|
3
3
|
name: string;
|
|
4
4
|
extends: string[];
|
|
@@ -7,14 +7,4 @@ export declare class TwitchOAuth2Api implements ICredentialType {
|
|
|
7
7
|
documentationUrl: string;
|
|
8
8
|
authenticate: IAuthenticateGeneric;
|
|
9
9
|
properties: INodeProperties[];
|
|
10
|
-
preAuthentication(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<{
|
|
11
|
-
clientId: import("n8n-workflow").CredentialInformation;
|
|
12
|
-
clientSecret: import("n8n-workflow").CredentialInformation;
|
|
13
|
-
grantType: import("n8n-workflow").CredentialInformation;
|
|
14
|
-
authUrl: import("n8n-workflow").CredentialInformation;
|
|
15
|
-
accessTokenUrl: import("n8n-workflow").CredentialInformation;
|
|
16
|
-
scope: string | number | true | import("n8n-workflow").IDataObject;
|
|
17
|
-
authQueryParameters: import("n8n-workflow").CredentialInformation;
|
|
18
|
-
authentication: import("n8n-workflow").CredentialInformation;
|
|
19
|
-
}>;
|
|
20
10
|
}
|
|
@@ -40,387 +40,11 @@ class TwitchOAuth2Api {
|
|
|
40
40
|
{
|
|
41
41
|
displayName: 'Scope',
|
|
42
42
|
name: 'scope',
|
|
43
|
-
type: '
|
|
43
|
+
type: 'string',
|
|
44
44
|
default: 'user:read:email',
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
name: 'scopeSelection',
|
|
49
|
-
type: 'multiOptions',
|
|
50
|
-
default: ['user:read:email'],
|
|
51
|
-
description: 'Select the Twitch scopes required for your application. See <a href="https://dev.twitch.tv/docs/authentication/scopes/" target="_blank">Twitch Scopes</a> for details.',
|
|
52
|
-
options: [
|
|
53
|
-
{
|
|
54
|
-
name: 'analytics:read:extensions',
|
|
55
|
-
value: 'analytics:read:extensions',
|
|
56
|
-
description: 'View analytics data for the Twitch Extensions owned by the authenticated account',
|
|
57
|
-
},
|
|
58
|
-
{
|
|
59
|
-
name: 'analytics:read:games',
|
|
60
|
-
value: 'analytics:read:games',
|
|
61
|
-
description: 'View analytics data for the games owned by the authenticated account',
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: 'bits:read',
|
|
65
|
-
value: 'bits:read',
|
|
66
|
-
description: 'View Bits information for a channel',
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
name: 'channel:bot',
|
|
70
|
-
value: 'channel:bot',
|
|
71
|
-
description: 'Perform bot actions in a channel',
|
|
72
|
-
},
|
|
73
|
-
{
|
|
74
|
-
name: 'channel:manage:ads',
|
|
75
|
-
value: 'channel:manage:ads',
|
|
76
|
-
description: 'Manage ads schedule on a channel',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
name: 'channel:read:ads',
|
|
80
|
-
value: 'channel:read:ads',
|
|
81
|
-
description: 'Read the ads schedule and details on your channel',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
name: 'channel:manage:broadcast',
|
|
85
|
-
value: 'channel:manage:broadcast',
|
|
86
|
-
description: 'Manage a channel\'s broadcast configuration, including updating channel configuration and managing stream markers and stream tags',
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
name: 'channel:read:charity',
|
|
90
|
-
value: 'channel:read:charity',
|
|
91
|
-
description: 'Read charity campaign details and user donations on your channel',
|
|
92
|
-
},
|
|
93
|
-
{
|
|
94
|
-
name: 'channel:manage:clips',
|
|
95
|
-
value: 'channel:manage:clips',
|
|
96
|
-
description: 'Manage Clips for a channel',
|
|
97
|
-
},
|
|
98
|
-
{
|
|
99
|
-
name: 'channel:edit:commercial',
|
|
100
|
-
value: 'channel:edit:commercial',
|
|
101
|
-
description: 'Run commercials on a channel',
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: 'channel:read:editors',
|
|
105
|
-
value: 'channel:read:editors',
|
|
106
|
-
description: 'View a list of users with the editor role for a channel',
|
|
107
|
-
},
|
|
108
|
-
{
|
|
109
|
-
name: 'channel:manage:extensions',
|
|
110
|
-
value: 'channel:manage:extensions',
|
|
111
|
-
description: 'Manage a channel\'s Extension configuration, including activating Extensions',
|
|
112
|
-
},
|
|
113
|
-
{
|
|
114
|
-
name: 'channel:read:goals',
|
|
115
|
-
value: 'channel:read:goals',
|
|
116
|
-
description: 'View Creator Goals for a channel',
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
name: 'channel:read:guest_star',
|
|
120
|
-
value: 'channel:read:guest_star',
|
|
121
|
-
description: 'Read Guest Star details for your channel',
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
name: 'channel:manage:guest_star',
|
|
125
|
-
value: 'channel:manage:guest_star',
|
|
126
|
-
description: 'Manage Guest Star for your channel',
|
|
127
|
-
},
|
|
128
|
-
{
|
|
129
|
-
name: 'channel:read:hype_train',
|
|
130
|
-
value: 'channel:read:hype_train',
|
|
131
|
-
description: 'View Hype Train information for a channel',
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
name: 'channel:moderate',
|
|
135
|
-
value: 'channel:moderate',
|
|
136
|
-
description: 'Perform moderation actions in a channel',
|
|
137
|
-
},
|
|
138
|
-
{
|
|
139
|
-
name: 'channel:manage:moderators',
|
|
140
|
-
value: 'channel:manage:moderators',
|
|
141
|
-
description: 'Add or remove the moderator role from users in your channel',
|
|
142
|
-
},
|
|
143
|
-
{
|
|
144
|
-
name: 'channel:read:polls',
|
|
145
|
-
value: 'channel:read:polls',
|
|
146
|
-
description: 'View a channel\'s polls',
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
name: 'channel:manage:polls',
|
|
150
|
-
value: 'channel:manage:polls',
|
|
151
|
-
description: 'Manage a channel\'s polls',
|
|
152
|
-
},
|
|
153
|
-
{
|
|
154
|
-
name: 'channel:read:predictions',
|
|
155
|
-
value: 'channel:read:predictions',
|
|
156
|
-
description: 'View a channel\'s Channel Points Predictions',
|
|
157
|
-
},
|
|
158
|
-
{
|
|
159
|
-
name: 'channel:manage:predictions',
|
|
160
|
-
value: 'channel:manage:predictions',
|
|
161
|
-
description: 'Manage a channel\'s Channel Points Predictions',
|
|
162
|
-
},
|
|
163
|
-
{
|
|
164
|
-
name: 'channel:manage:raids',
|
|
165
|
-
value: 'channel:manage:raids',
|
|
166
|
-
description: 'Manage a channel raiding another channel',
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
name: 'channel:read:redemptions',
|
|
170
|
-
value: 'channel:read:redemptions',
|
|
171
|
-
description: 'View Channel Points custom rewards and their redemptions on a channel',
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
name: 'channel:manage:redemptions',
|
|
175
|
-
value: 'channel:manage:redemptions',
|
|
176
|
-
description: 'Manage Channel Points custom rewards and their redemptions on a channel',
|
|
177
|
-
},
|
|
178
|
-
{
|
|
179
|
-
name: 'channel:manage:schedule',
|
|
180
|
-
value: 'channel:manage:schedule',
|
|
181
|
-
description: 'Manage a channel\'s stream schedule',
|
|
182
|
-
},
|
|
183
|
-
{
|
|
184
|
-
name: 'channel:read:stream_key',
|
|
185
|
-
value: 'channel:read:stream_key',
|
|
186
|
-
description: 'View an authorized user\'s stream key',
|
|
187
|
-
},
|
|
188
|
-
{
|
|
189
|
-
name: 'channel:read:subscriptions',
|
|
190
|
-
value: 'channel:read:subscriptions',
|
|
191
|
-
description: 'View a list of all subscribers to a channel and check if a user is subscribed to a channel',
|
|
192
|
-
},
|
|
193
|
-
{
|
|
194
|
-
name: 'channel:manage:videos',
|
|
195
|
-
value: 'channel:manage:videos',
|
|
196
|
-
description: 'Manage a channel\'s videos, including deleting videos',
|
|
197
|
-
},
|
|
198
|
-
{
|
|
199
|
-
name: 'channel:read:vips',
|
|
200
|
-
value: 'channel:read:vips',
|
|
201
|
-
description: 'View a list of users with the VIP role in a channel',
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
name: 'channel:manage:vips',
|
|
205
|
-
value: 'channel:manage:vips',
|
|
206
|
-
description: 'Add or remove the VIP role from users in your channel',
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
name: 'moderator:manage:announcements',
|
|
210
|
-
value: 'moderator:manage:announcements',
|
|
211
|
-
description: 'Send announcements in channels where you have the moderator role',
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
name: 'moderator:manage:automod',
|
|
215
|
-
value: 'moderator:manage:automod',
|
|
216
|
-
description: 'Manage messages held for review by AutoMod in channels where you are a moderator',
|
|
217
|
-
},
|
|
218
|
-
{
|
|
219
|
-
name: 'moderator:read:automod_settings',
|
|
220
|
-
value: 'moderator:read:automod_settings',
|
|
221
|
-
description: 'View a broadcaster\'s AutoMod settings',
|
|
222
|
-
},
|
|
223
|
-
{
|
|
224
|
-
name: 'moderator:manage:automod_settings',
|
|
225
|
-
value: 'moderator:manage:automod_settings',
|
|
226
|
-
description: 'Manage a broadcaster\'s AutoMod settings',
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
name: 'moderator:read:banned_users',
|
|
230
|
-
value: 'moderator:read:banned_users',
|
|
231
|
-
description: 'View a broadcaster\'s list of banned users',
|
|
232
|
-
},
|
|
233
|
-
{
|
|
234
|
-
name: 'moderator:manage:banned_users',
|
|
235
|
-
value: 'moderator:manage:banned_users',
|
|
236
|
-
description: 'Ban and unban users',
|
|
237
|
-
},
|
|
238
|
-
{
|
|
239
|
-
name: 'moderator:read:blocked_terms',
|
|
240
|
-
value: 'moderator:read:blocked_terms',
|
|
241
|
-
description: 'View a broadcaster\'s list of blocked terms',
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
name: 'moderator:manage:blocked_terms',
|
|
245
|
-
value: 'moderator:manage:blocked_terms',
|
|
246
|
-
description: 'Manage a broadcaster\'s list of blocked terms',
|
|
247
|
-
},
|
|
248
|
-
{
|
|
249
|
-
name: 'moderator:read:chat_messages',
|
|
250
|
-
value: 'moderator:read:chat_messages',
|
|
251
|
-
description: 'View chat messages in channels where you have the moderator role',
|
|
252
|
-
},
|
|
253
|
-
{
|
|
254
|
-
name: 'moderator:manage:chat_messages',
|
|
255
|
-
value: 'moderator:manage:chat_messages',
|
|
256
|
-
description: 'Delete chat messages in channels where you have the moderator role',
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
name: 'moderator:read:chat_settings',
|
|
260
|
-
value: 'moderator:read:chat_settings',
|
|
261
|
-
description: 'View a broadcaster\'s chat room settings',
|
|
262
|
-
},
|
|
263
|
-
{
|
|
264
|
-
name: 'moderator:manage:chat_settings',
|
|
265
|
-
value: 'moderator:manage:chat_settings',
|
|
266
|
-
description: 'Manage a broadcaster\'s chat room settings',
|
|
267
|
-
},
|
|
268
|
-
{
|
|
269
|
-
name: 'moderator:read:chatters',
|
|
270
|
-
value: 'moderator:read:chatters',
|
|
271
|
-
description: 'View the chatters in a broadcaster\'s chat room',
|
|
272
|
-
},
|
|
273
|
-
{
|
|
274
|
-
name: 'moderator:read:followers',
|
|
275
|
-
value: 'moderator:read:followers',
|
|
276
|
-
description: 'View a broadcaster\'s followers',
|
|
277
|
-
},
|
|
278
|
-
{
|
|
279
|
-
name: 'moderator:read:shield_mode',
|
|
280
|
-
value: 'moderator:read:shield_mode',
|
|
281
|
-
description: 'View a broadcaster\'s Shield Mode status',
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
name: 'moderator:manage:shield_mode',
|
|
285
|
-
value: 'moderator:manage:shield_mode',
|
|
286
|
-
description: 'Manage a broadcaster\'s Shield Mode status',
|
|
287
|
-
},
|
|
288
|
-
{
|
|
289
|
-
name: 'moderator:read:shoutouts',
|
|
290
|
-
value: 'moderator:read:shoutouts',
|
|
291
|
-
description: 'View a broadcaster\'s shoutouts',
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
name: 'moderator:manage:shoutouts',
|
|
295
|
-
value: 'moderator:manage:shoutouts',
|
|
296
|
-
description: 'Manage a broadcaster\'s shoutouts',
|
|
297
|
-
},
|
|
298
|
-
{
|
|
299
|
-
name: 'moderator:read:unban_requests',
|
|
300
|
-
value: 'moderator:read:unban_requests',
|
|
301
|
-
description: 'View a broadcaster\'s unban requests',
|
|
302
|
-
},
|
|
303
|
-
{
|
|
304
|
-
name: 'moderator:manage:unban_requests',
|
|
305
|
-
value: 'moderator:manage:unban_requests',
|
|
306
|
-
description: 'Manage a broadcaster\'s unban requests',
|
|
307
|
-
},
|
|
308
|
-
{
|
|
309
|
-
name: 'moderator:read:warnings',
|
|
310
|
-
value: 'moderator:read:warnings',
|
|
311
|
-
description: 'View warnings in channels where you have the moderator role',
|
|
312
|
-
},
|
|
313
|
-
{
|
|
314
|
-
name: 'moderator:manage:warnings',
|
|
315
|
-
value: 'moderator:manage:warnings',
|
|
316
|
-
description: 'Warn users in channels where you have the moderator role',
|
|
317
|
-
},
|
|
318
|
-
{
|
|
319
|
-
name: 'clips:edit',
|
|
320
|
-
value: 'clips:edit',
|
|
321
|
-
description: 'Manage Clips for a channel',
|
|
322
|
-
},
|
|
323
|
-
{
|
|
324
|
-
name: 'editor:manage:clips',
|
|
325
|
-
value: 'editor:manage:clips',
|
|
326
|
-
description: 'Manage Clips for a channel using editor role',
|
|
327
|
-
},
|
|
328
|
-
{
|
|
329
|
-
name: 'moderation:read',
|
|
330
|
-
value: 'moderation:read',
|
|
331
|
-
description: 'View channels that the user has moderator privileges in',
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
name: 'user:bot',
|
|
335
|
-
value: 'user:bot',
|
|
336
|
-
description: 'Perform bot actions as a user',
|
|
337
|
-
},
|
|
338
|
-
{
|
|
339
|
-
name: 'user:manage:blocked_users',
|
|
340
|
-
value: 'user:manage:blocked_users',
|
|
341
|
-
description: 'Manage the list of blocked users',
|
|
342
|
-
},
|
|
343
|
-
{
|
|
344
|
-
name: 'user:read:blocked_users',
|
|
345
|
-
value: 'user:read:blocked_users',
|
|
346
|
-
description: 'View the list of blocked users',
|
|
347
|
-
},
|
|
348
|
-
{
|
|
349
|
-
name: 'user:read:broadcast',
|
|
350
|
-
value: 'user:read:broadcast',
|
|
351
|
-
description: 'View a user\'s broadcasting configuration, including Extension configurations',
|
|
352
|
-
},
|
|
353
|
-
{
|
|
354
|
-
name: 'user:read:chat',
|
|
355
|
-
value: 'user:read:chat',
|
|
356
|
-
description: 'View live chat messages sent in your channel using EventSub',
|
|
357
|
-
},
|
|
358
|
-
{
|
|
359
|
-
name: 'user:manage:chat_color',
|
|
360
|
-
value: 'user:manage:chat_color',
|
|
361
|
-
description: 'Update the color used for the user\'s name in chat',
|
|
362
|
-
},
|
|
363
|
-
{
|
|
364
|
-
name: 'user:read:email',
|
|
365
|
-
value: 'user:read:email',
|
|
366
|
-
description: 'View a user\'s email address',
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
name: 'user:read:emotes',
|
|
370
|
-
value: 'user:read:emotes',
|
|
371
|
-
description: 'View emotes available to a user',
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
name: 'user:read:follows',
|
|
375
|
-
value: 'user:read:follows',
|
|
376
|
-
description: 'View the list of channels a user follows',
|
|
377
|
-
},
|
|
378
|
-
{
|
|
379
|
-
name: 'user:read:moderated_channels',
|
|
380
|
-
value: 'user:read:moderated_channels',
|
|
381
|
-
description: 'View channels that the user has moderator privileges in',
|
|
382
|
-
},
|
|
383
|
-
{
|
|
384
|
-
name: 'user:read:subscriptions',
|
|
385
|
-
value: 'user:read:subscriptions',
|
|
386
|
-
description: 'View if an authorized user is subscribed to specific channels',
|
|
387
|
-
},
|
|
388
|
-
{
|
|
389
|
-
name: 'user:read:whispers',
|
|
390
|
-
value: 'user:read:whispers',
|
|
391
|
-
description: 'View whispers sent to a user',
|
|
392
|
-
},
|
|
393
|
-
{
|
|
394
|
-
name: 'user:manage:whispers',
|
|
395
|
-
value: 'user:manage:whispers',
|
|
396
|
-
description: 'Send whispers on behalf of a user',
|
|
397
|
-
},
|
|
398
|
-
{
|
|
399
|
-
name: 'user:write:chat',
|
|
400
|
-
value: 'user:write:chat',
|
|
401
|
-
description: 'Send live chat messages using IRC or the Twitch API',
|
|
402
|
-
},
|
|
403
|
-
{
|
|
404
|
-
name: 'chat:read',
|
|
405
|
-
value: 'chat:read',
|
|
406
|
-
description: 'View chat messages sent in a chatroom using an IRC connection',
|
|
407
|
-
},
|
|
408
|
-
{
|
|
409
|
-
name: 'chat:edit',
|
|
410
|
-
value: 'chat:edit',
|
|
411
|
-
description: 'Send chat messages to a chatroom using an IRC connection',
|
|
412
|
-
},
|
|
413
|
-
{
|
|
414
|
-
name: 'whispers:read',
|
|
415
|
-
value: 'whispers:read',
|
|
416
|
-
description: 'Receive whisper messages for your user using PubSub',
|
|
417
|
-
},
|
|
418
|
-
{
|
|
419
|
-
name: 'whispers:edit',
|
|
420
|
-
value: 'whispers:edit',
|
|
421
|
-
description: 'Send whisper messages using PubSub',
|
|
422
|
-
},
|
|
423
|
-
],
|
|
45
|
+
description: 'Space-separated Twitch scopes required for your application. See <a href="https://dev.twitch.tv/docs/authentication/scopes/" target="_blank">Twitch Scopes</a> for details.',
|
|
46
|
+
placeholder: 'user:read:email channel:read:subscriptions moderator:read:chatters',
|
|
47
|
+
hint: 'Enter scopes separated by spaces (e.g., "user:read:email channel:read:subscriptions")',
|
|
424
48
|
},
|
|
425
49
|
{
|
|
426
50
|
displayName: 'Auth URI Query Parameters',
|
|
@@ -436,21 +60,6 @@ class TwitchOAuth2Api {
|
|
|
436
60
|
},
|
|
437
61
|
];
|
|
438
62
|
}
|
|
439
|
-
async preAuthentication(credentials) {
|
|
440
|
-
const scope = Array.isArray(credentials.scopeSelection)
|
|
441
|
-
? credentials.scopeSelection.join(' ')
|
|
442
|
-
: credentials.scopeSelection || 'user:read:email';
|
|
443
|
-
return {
|
|
444
|
-
clientId: credentials.clientId,
|
|
445
|
-
clientSecret: credentials.clientSecret,
|
|
446
|
-
grantType: credentials.grantType,
|
|
447
|
-
authUrl: credentials.authUrl,
|
|
448
|
-
accessTokenUrl: credentials.accessTokenUrl,
|
|
449
|
-
scope,
|
|
450
|
-
authQueryParameters: credentials.authQueryParameters,
|
|
451
|
-
authentication: credentials.authentication,
|
|
452
|
-
};
|
|
453
|
-
}
|
|
454
63
|
}
|
|
455
64
|
exports.TwitchOAuth2Api = TwitchOAuth2Api;
|
|
456
65
|
//# sourceMappingURL=TwitchOAuth2Api.credentials.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwitchOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/TwitchOAuth2Api.credentials.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TwitchOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/TwitchOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAOA,MAAa,eAAe;IAA5B;QACC,SAAI,GAAG,iBAAiB,CAAC;QAEzB,YAAO,GAAG,CAAC,WAAW,CAAC,CAAC;QAExB,gBAAW,GAAG,mBAAmB,CAAC;QAElC,SAAI,GAAS,EAAE,KAAK,EAAE,0BAA0B,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC;QAE1F,qBAAgB,GAAG,iEAAiE,CAAC;QAErF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,WAAW,EAAE,4BAA4B;iBACzC;aACD;SACD,CAAC;QAEF,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mBAAmB;aAC5B;YACD;gBACC,WAAW,EAAE,mBAAmB;gBAChC,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,uCAAuC;gBAChD,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,kBAAkB;gBAC/B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,mCAAmC;gBAC5C,QAAQ,EAAE,IAAI;aACd;YACD;gBACC,WAAW,EAAE,OAAO;gBACpB,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,iBAAiB;gBAC1B,WAAW,EAAE,6KAA6K;gBAC1L,WAAW,EAAE,oEAAoE;gBACjF,IAAI,EAAE,uFAAuF;aAC7F;YACD;gBACC,WAAW,EAAE,2BAA2B;gBACxC,IAAI,EAAE,qBAAqB;gBAC3B,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,oBAAoB;aAC7B;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,gBAAgB;gBACtB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;aACf;SACD,CAAC;IACH,CAAC;CAAA;AA/DD,0CA+DC"}
|
|
@@ -26,7 +26,6 @@ const Team_1 = require("./resources/Team");
|
|
|
26
26
|
const User_1 = require("./resources/User");
|
|
27
27
|
const Video_1 = require("./resources/Video");
|
|
28
28
|
const Whisper_1 = require("./resources/Whisper");
|
|
29
|
-
const CommonFields_1 = require("./resources/CommonFields");
|
|
30
29
|
class Twitch {
|
|
31
30
|
constructor() {
|
|
32
31
|
this.description = {
|
|
@@ -138,7 +137,6 @@ class Twitch {
|
|
|
138
137
|
...User_1.userFields,
|
|
139
138
|
...Video_1.videoFields,
|
|
140
139
|
...Whisper_1.whisperFields,
|
|
141
|
-
...CommonFields_1.commonFields,
|
|
142
140
|
],
|
|
143
141
|
};
|
|
144
142
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Twitch.node.js","sourceRoot":"","sources":["../../../nodes/Twitch/Twitch.node.ts"],"names":[],"mappings":";;;AAAA,+CAA8F;AAG9F,2DAAsF;AACtF,yCAA2D;AAC3D,iEAA+F;AAC/F,iDAAuE;AACvE,yDAAmF;AACnF,iDAAuE;AACvE,qDAA6E;AAC7E,2CAA8D;AAC9D,2DAAsF;AACtF,6CAAiE;AACjE,2CAA8D;AAC9D,qDAA6E;AAC7E,2CAA8D;AAC9D,uDAAgF;AAChF,2CAA8D;AAC9D,uDAAgF;AAChF,mDAA0E;AAC1E,+CAAoE;AACpE,+CAAoE;AACpE,2DAAsF;AACtF,2CAA8D;AAC9D,2CAA8D;AAC9D,6CAAiE;AACjE,iDAAuE;
|
|
1
|
+
{"version":3,"file":"Twitch.node.js","sourceRoot":"","sources":["../../../nodes/Twitch/Twitch.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,47 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.announcementFields = exports.announcementOperations = void 0;
|
|
4
4
|
const userIdConverter_1 = require("../shared/userIdConverter");
|
|
5
|
+
const updateDisplayOptions_1 = require("../shared/updateDisplayOptions");
|
|
6
|
+
const sendFields = [
|
|
7
|
+
{
|
|
8
|
+
displayName: 'Message',
|
|
9
|
+
name: 'message',
|
|
10
|
+
type: 'string',
|
|
11
|
+
default: '',
|
|
12
|
+
required: true,
|
|
13
|
+
placeholder: 'e.g. Important announcement!',
|
|
14
|
+
description: 'The announcement message (max 500 characters)',
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
displayName: 'Color',
|
|
18
|
+
name: 'color',
|
|
19
|
+
type: 'options',
|
|
20
|
+
options: [
|
|
21
|
+
{
|
|
22
|
+
name: 'Blue',
|
|
23
|
+
value: 'blue',
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
name: 'Green',
|
|
27
|
+
value: 'green',
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
name: 'Orange',
|
|
31
|
+
value: 'orange',
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
name: 'Primary',
|
|
35
|
+
value: 'primary',
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
name: 'Purple',
|
|
39
|
+
value: 'purple',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
default: 'primary',
|
|
43
|
+
description: 'The color of the announcement',
|
|
44
|
+
},
|
|
45
|
+
];
|
|
5
46
|
exports.announcementOperations = [
|
|
6
47
|
{
|
|
7
48
|
displayName: 'Operation',
|
|
@@ -59,58 +100,9 @@ exports.announcementOperations = [
|
|
|
59
100
|
},
|
|
60
101
|
],
|
|
61
102
|
default: 'send',
|
|
62
|
-
}
|
|
103
|
+
},
|
|
63
104
|
];
|
|
64
105
|
exports.announcementFields = [
|
|
65
|
-
{
|
|
66
|
-
displayName: 'Message',
|
|
67
|
-
name: 'message',
|
|
68
|
-
type: 'string',
|
|
69
|
-
displayOptions: {
|
|
70
|
-
show: {
|
|
71
|
-
resource: ['announcement'],
|
|
72
|
-
operation: ['send'],
|
|
73
|
-
},
|
|
74
|
-
},
|
|
75
|
-
default: '',
|
|
76
|
-
required: true,
|
|
77
|
-
placeholder: 'e.g. Important announcement!',
|
|
78
|
-
description: 'The announcement message (max 500 characters)',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
displayName: 'Color',
|
|
82
|
-
name: 'color',
|
|
83
|
-
type: 'options',
|
|
84
|
-
displayOptions: {
|
|
85
|
-
show: {
|
|
86
|
-
resource: ['announcement'],
|
|
87
|
-
operation: ['send'],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
options: [
|
|
91
|
-
{
|
|
92
|
-
name: 'Blue',
|
|
93
|
-
value: 'blue',
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
name: 'Green',
|
|
97
|
-
value: 'green',
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
name: 'Orange',
|
|
101
|
-
value: 'orange',
|
|
102
|
-
},
|
|
103
|
-
{
|
|
104
|
-
name: 'Primary',
|
|
105
|
-
value: 'primary',
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
name: 'Purple',
|
|
109
|
-
value: 'purple',
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
default: 'primary',
|
|
113
|
-
description: 'The color of the announcement',
|
|
114
|
-
},
|
|
106
|
+
...(0, updateDisplayOptions_1.updateDisplayOptions)({ show: { resource: ['announcement'], operation: ['send'] } }, sendFields),
|
|
115
107
|
];
|
|
116
108
|
//# sourceMappingURL=Announcement.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Announcement.js","sourceRoot":"","sources":["../../../../nodes/Twitch/resources/Announcement.ts"],"names":[],"mappings":";;;AACA,+DAAoE;
|
|
1
|
+
{"version":3,"file":"Announcement.js","sourceRoot":"","sources":["../../../../nodes/Twitch/resources/Announcement.ts"],"names":[],"mappings":";;;AACA,+DAAoE;AACpE,yEAAsE;AAGtE,MAAM,UAAU,GAAsB;IACrC;QACC,WAAW,EAAE,SAAS;QACtB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,OAAO,EAAE,EAAE;QACX,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,8BAA8B;QAC3C,WAAW,EAAE,+CAA+C;KAC5D;IACD;QACC,WAAW,EAAE,OAAO;QACpB,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,SAAS;QACf,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;aACb;YACD;gBACC,IAAI,EAAE,OAAO;gBACb,KAAK,EAAE,OAAO;aACd;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aACf;YACD;gBACC,IAAI,EAAE,SAAS;gBACf,KAAK,EAAE,SAAS;aAChB;YACD;gBACC,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,QAAQ;aACf;SACD;QACD,OAAO,EAAE,SAAS;QAClB,WAAW,EAAE,+BAA+B;KAC5C;CACD,CAAC;AAEW,QAAA,sBAAsB,GAAsB;IACxD;QACC,WAAW,EAAE,WAAW;QACxB,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,SAAS;QACf,gBAAgB,EAAE,IAAI;QACtB,cAAc,EAAE;YACf,IAAI,EAAE;gBACL,QAAQ,EAAE,CAAC,cAAc,CAAC;aAC1B;SACD;QACD,OAAO,EAAE;YACR;gBACC,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,MAAM;gBACb,MAAM,EAAE,sBAAsB;gBAC9B,WAAW,EAAE,sDAAsD;gBACnE,OAAO,EAAE;oBACR,OAAO,EAAE;wBACR,MAAM,EAAE,MAAM;wBACd,GAAG,EAAE,qBAAqB;qBAC1B;oBACD,IAAI,EAAE;wBACL,OAAO,EAAE;4BACR,KAAK,WAAiB,cAAc;gCACnC,MAAM,kBAAkB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAW,CAAC;gCAC5E,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAW,CAAC;gCACxE,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAW,CAAC;gCAC3D,MAAM,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAW,CAAC;gCAGlE,MAAM,aAAa,GAAG,MAAM,yCAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;gCACnF,MAAM,WAAW,GAAG,MAAM,yCAAuB,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;gCAE/E,cAAc,CAAC,EAAE,GAAG;oCACnB,cAAc,EAAE,aAAa;oCAC7B,YAAY,EAAE,WAAW;iCACzB,CAAC;gCAEF,cAAc,CAAC,IAAI,GAAG;oCACrB,OAAO;oCACP,KAAK;iCACL,CAAC;gCAEF,OAAO,cAAc,CAAC;4BACvB,CAAC;yBACD;qBACD;oBACD,MAAM,EAAE;wBACP,WAAW,EAAE;4BACZ;gCACC,IAAI,EAAE,cAAc;gCACpB,UAAU,EAAE;oCACX,QAAQ,EAAE,MAAM;iCAChB;6BACD;yBACD;qBACD;iBACD;aACD;SACD;QACD,OAAO,EAAE,MAAM;KACf;CACD,CAAC;AAEW,QAAA,kBAAkB,GAAsB;IACpD,GAAG,IAAA,2CAAoB,EAAC,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC;CAClG,CAAC"}
|